dune-tools/character-builder/frontend
Vantz Stockwell 25083d5572 Defend against stale skill-tree JSON cache
A friend on Chrome hit "C.subtrees is not iterable" — Chrome was serving
the previous skill-tree JSON shape ({nodes, edges} at top level) out of
the disk cache while running the new bundle that expects {subtrees}.
Hard reload fixed his session but other users could hit the same.

Three layers of defense:
1. backend/data.controller.ts: Cache-Control switches from
   'public, max-age=3600' to 'no-cache, must-revalidate' so the browser
   always revalidates JSON files against the server.
2. frontend/data.ts: every data fetch gets ?v=2 + cache:'no-cache' to
   bust any existing browser/CDN entry.
3. frontend/data.ts loadSkillTree(): if the response still has the legacy
   shape (no subtrees, but nodes array), wrap it in a single anonymous
   subtree so the UI doesn't crash on iteration.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 08:33:30 -04:00
..
public/icons Skill tree: subtrees, loadout slots, label fix 2026-05-23 08:21:09 -04:00
src Defend against stale skill-tree JSON cache 2026-05-23 08:33:30 -04:00
index.html Add Dune Awakening character builder + initial project scaffolding 2026-05-23 07:30:37 -04:00
package.json Add Dune Awakening character builder + initial project scaffolding 2026-05-23 07:30:37 -04:00
tsconfig.app.json Add Dune Awakening character builder + initial project scaffolding 2026-05-23 07:30:37 -04:00
tsconfig.json Add Dune Awakening character builder + initial project scaffolding 2026-05-23 07:30:37 -04:00
tsconfig.node.json Add Dune Awakening character builder + initial project scaffolding 2026-05-23 07:30:37 -04:00
vite.config.ts Add Dune Awakening character builder + initial project scaffolding 2026-05-23 07:30:37 -04:00