Commit Graph

225 Commits

Author SHA1 Message Date
deploy-migration 8b5aa1db67 add native Dockerfile for tssbot-web (replacing nixpacks) 2026-07-02 14:14:09 +00:00
deploy-migration 4a24df395e add native Dockerfile for backend (replacing nixpacks) 2026-07-02 14:01:17 +00:00
notsotoothless 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
notsotoothless 2c34e9ad4a fix: case-insensitive dead-vehicle matching on website
Spectra sends kills with uppercase roman numerals (V/VI) but player
lineup CDKs use lowercase (v/vi). Normalize to lowercase in
deadVehicleKey, logVehicle, and logLookups so dead-vehicle fading
works on the website event log.
2026-06-30 14:06:34 +00:00
clippii 37df155485 bugfixing :D 2026-06-29 17:26:10 +01:00
clippii 682cf6d678 fix lint errors 2026-06-29 17:03:29 +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
FURRO404 bd5c33dd4f remove extra line in swiss 2026-06-29 07:06:09 -07:00
notsotoothless 0b4e6b0103 webhook: skip npm ci when dependency files are unchanged
Deploys ran `npm ci` unconditionally, which wipes node_modules and
rebuilds native modules (better-sqlite3) on every push — ~20 min even
for a frontend-only change with no dependency changes.

Gate the clean install on package.json / package-lock.json actually
changing between the pre-pull HEAD and the new HEAD. As a safety net,
still install whenever the build's required modules (@vitejs/plugin-react,
@rollup/rollup-linux-x64-*) are missing from node_modules, so a skipped
install can never leave an incomplete tree. Frontend-only deploys now
skip straight to the build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 13:56:35 +00:00
FURRO404 2ccb17f608 swiss cheese 2026-06-29 06:21:50 -07:00
notsotoothless 592743d092 pm2: add crash-loop governor (max_restarts/min_uptime/exp_backoff) to all apps
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 12:58:02 +00:00
FURRO404 d717ef2189 meow 2026-06-29 05:47:53 -07:00
FURRO404 2cbe059f00 mrrrp 2026-06-29 05:08:37 -07:00
FURRO404 cd1743e78a meowwww 2026-06-29 04:51:34 -07:00
clippii 2885dbed19 meow 2026-06-29 00:03:21 +01:00
clippii 88d6bbe68b moon cricket 2026-06-28 22:50:47 +01:00
clippii 0c764a773d moon cricket 2026-06-28 20:57:57 +01:00
clippii badfe77f41 moon cricket 2026-06-28 20:51:18 +01:00
clippii b4061f007c moon cricket 2026-06-28 20:46:45 +01:00
Clippii 44abd3f225 Update App.jsx 2026-06-28 17:13:31 +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 a274313ad1 rape:2 2026-06-28 13:00:30 +01:00
clippii 2737cc7c03 rape 2026-06-28 12:56:48 +01:00
clippii 92c7185036 meow 2026-06-28 12:22:42 +01:00
clippii 61b99423e1 new stuff 2026-06-28 12:20:58 +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
clippii 931dd0141c Merge branch 'main' of https://github.com/Clippii/tssbot.web 2026-06-27 22:06:56 +01:00
clippii 594510cac5 new blogpost 2026-06-27 22:06:09 +01:00
clippii e3f3220245 slop 2026-06-23 04:01:19 +01:00
clippii 8b8f645ec0 slop 2026-06-23 03:56:48 +01:00
clippii ffd68f0e13 slop 2026-06-23 03:53:10 +01:00
clippii 07a943ab7c slop 2026-06-23 03:48:19 +01:00
clippii 5fa6339ecc slop 2026-06-23 03:36:44 +01:00
clippii 0795bced60 slop 2026-06-23 03:31:15 +01:00
clippii 285bddb968 slop 2026-06-23 03:16:58 +01:00
clippii 1c02c51387 slop 2026-06-23 03:09:54 +01:00
clippii 5288f8293e ai generated solutions to our ai generated problems 2026-06-22 22:25:34 +01:00
clippii dd259081c1 ai generated solutions to our ai generated problems 2026-06-22 22:05:46 +01:00
clippii 604660e463 change default theme to dark 2026-06-22 20:28:09 +01:00
clippii 0f141da652 change default theme to dark 2026-06-22 20:23:31 +01:00
clippii 4dd0153526 change default theme to dark 2026-06-22 20:08:55 +01:00
clippii b8d50d56b7 ai generated solutions to our ai generated problems 2026-06-22 20:01:36 +01:00
clippii 237a9a69fc ai generated solutions to our ai generated problems 2026-06-22 19:51:13 +01:00
FURRO404 a3947f3662 stupid ahh embed 2026-06-21 08:06:38 -07:00
FURRO404 9851fa1e4b how is it always wrong lmao 2026-06-21 07:35:22 -07:00
FURRO404 38c11d83ee tss web 3d viewer 2026-06-21 07:29:45 -07:00
FURRO404 2e75909f2d Add 3D replay view design spec
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 07:17:15 -07:00