Commit Graph

66 Commits

Author SHA1 Message Date
Liam 1fee214785 fix(web): make deploys safe for the native better-sqlite3 dependency
Restore the dependency-change guard that got overwritten on main, and harden
the deploy + worker shutdown so a flaky better-sqlite3 rebuild can no longer
take the site down.

Root cause of the recurring outages: tssbot-web is the only stack with a
native module (better-sqlite3) that must be downloaded/compiled on every
`npm ci`. The deploy ran `npm ci` unconditionally (the skip guard had been
reverted), with no timeout, and `npm ci` deletes node_modules first -- so a
single hung/failed native rebuild left the site unstartable, and a PM2
cluster restart on top wedged the daemon.

webhook.cjs:
- Restore the npm-ci skip guard: only reinstall when package.json /
  package-lock.json actually changed (previousHead captured before the pull),
  so code-only pushes never rebuild better-sqlite3. Defaults to installing on
  any uncertainty, and still installs if node_modules is incomplete.
- Add per-step timeouts to run() (DEPLOY_STEP_TIMEOUT_MS, and a tighter
  DEPLOY_INSTALL_TIMEOUT_MS for npm ci) so a stalled step is killed instead of
  hanging for hours with node_modules already deleted.
- Gate the deploy on better-sqlite3 actually loading (child-process load, not
  just require.resolve): force a reinstall when its native binary is missing,
  and abort before pm2 reload if it is still broken after install.

server.cjs:
- On shutdown, closeIdleConnections() + delayed closeAllConnections() so a
  worker stop/reload can't hang the full kill_timeout on idle keep-alives or a
  stuck upstream request.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 22:23:57 +00:00
Clippii 37df155485 bugfixing :D 2026-06-29 17:26:10 +01:00
Clippii deeb46ce8e sum more SEO changes 2026-06-29 17:01:53 +01:00
Clippii acd84b0c75 sum more SEO changes 2026-06-29 16:53:03 +01:00
Clippii 56d0283db4 SEO changes 2026-06-29 16:44:57 +01:00
Clippii 8b24b12ffb aa 2026-06-28 16:22:09 +01:00
Clippii 109eeebfb1 updates to api protections 2026-06-28 16:01:57 +01:00
Clippii 2737cc7c03 rape 2026-06-28 12:56:48 +01:00
Clippii e9567e367b fixes; locked down api (allegedly, idk, i let claude vibe it) and vandilised pedophiles profiles 2026-06-28 11:44:52 +01:00
Heidi b8d50d56b7 ai generated solutions to our ai generated problems 2026-06-22 20:01:36 +01:00
Heidi 237a9a69fc ai generated solutions to our ai generated problems 2026-06-22 19:51:13 +01:00
FURRO404 1eb0f1ffc8 add stuff for tournaments 2026-06-20 21:12:39 -07:00
Heidi 25f2c5a0f8 ai generated solutions to our ai generated problems 2026-06-20 01:03:04 +01:00
Heidi 6337046212 ai generated solutions to our ai generated problems 2026-06-20 00:53:54 +01:00
Heidi 50439720dd ai generated solutions to our ai generated problems 2026-06-20 00:50:28 +01:00
Heidi 22bff51147 ai generated solutions to our ai generated problems 2026-06-20 00:43:44 +01:00
Heidi fb773489f5 ai generated solutions to our ai generated problems 2026-06-20 00:38:24 +01:00
Heidi f631ea12a8 ai generated solutions to our ai generated problems 2026-06-20 00:27:30 +01:00
Heidi 7f1e6d0bef ai generated solutions to our ai generated problems 2026-06-20 00:20:48 +01:00
Heidi e7a172f52f ai generated solutions to our ai generated problems 2026-06-20 00:14:16 +01:00
Heidi a05ccf8bbc ai generated solutions to our ai generated problems 2026-06-20 00:05:56 +01:00
Heidi a60999a54e ai generated solutions to our ai generated problems 2026-06-20 00:05:10 +01:00
Heidi bccd2bf405 ai generated solutions to our ai generated problems 2026-06-19 23:36:45 +01:00
Heidi 9263d6f8eb ai generated solutions to our ai generated problems 2026-06-19 23:33:01 +01:00
FURRO404 fb08e99e5d replay canvas 2026-06-18 20:10:47 -07:00
FURRO404 ae7adcce18 fix(web): allow ?lang and /logs through prod API proxy allowlist 2026-06-18 00:43:39 -07:00
FURRO404 177ddd408d feat(web): serve vehicle icons statically + deploy symlink + dev guard for logs/lang 2026-06-18 00:38:00 -07:00
Heidi 08b6d01fc8 ai generated solutions to our ai generated problems 2026-06-17 23:34:22 +01:00
Heidi 9ad5cc0639 ai generated solutions to our ai generated problems 2026-06-15 09:09:54 +01:00
Heidi 5bd8cab0ce ai generated solutions to our ai generated problems 2026-06-15 08:59:15 +01:00
Heidi 0db73d669d ai generated solutions to our ai generated problems 2026-06-15 07:53:33 +01:00
FURRO404 3436c91fdc fuck it we ball 2026-05-30 08:44:28 -07:00
FURRO404 64c72d2ecb update nav and footer for setup docs page 2026-05-30 07:03:45 -07:00
Heidi b3eb9c2e19 SEO chat gippity style 2026-05-30 01:00:25 +01:00
Heidi 4b0ebf421e ai generated solutions to our ai generated problems 2026-05-27 15:24:14 +01:00
Heidi 4ab411a853 ai generated solutions to our ai generated problems 2026-05-27 15:13:40 +01:00
Heidi ac0dcf7522 ai generated solutions to our ai generated problems 2026-05-27 15:09:38 +01:00
Heidi e59bb87512 ai generated solutions to our ai generated problems 2026-05-27 15:00:16 +01:00
Heidi 69fc002961 meow && add song of the day! 2026-05-27 14:49:26 +01:00
Heidi 3a2cd9b1aa fix 2026-05-16 17:01:22 +01:00
Heidi 1cc500e428 fix 2026-05-16 12:20:14 +01:00
Heidi 4feac9a1fc fix 2026-05-16 11:58:24 +01:00
Heidi 4819cd2cab fix 2026-05-16 11:18:15 +01:00
Heidi 2123027e49 fix milton keynes 2026-05-16 11:05:25 +01:00
Heidi a13266d06c security stuff 2026-05-16 10:40:15 +01:00
Heidi 5c648b0c40 security stuff 2026-05-16 10:38:34 +01:00
Heidi e44b263f2e update osm 2026-05-16 09:35:51 +01:00
Heidi f36bdf3738 update osm 2026-05-16 09:02:39 +01:00
Heidi 878e2a6a47 update osm 2026-05-16 08:55:12 +01:00
Heidi 752b5f9eb8 update viewers page 2026-05-16 08:12:02 +01:00