Commit Graph
10 Commits
Author SHA1 Message Date
ginnoir d625216018 feat(engine): track manualCompletionCounts on action complete 2026-06-12 00:19:24 -05:00
ginnoir f7ad9e7ecd test(engine): guard offline-loop safety and harden purity test
CI / verify (push) Successful in 1m13s
CI / verify (pull_request) Successful in 58s
- save.test.ts: add regression test proving loop actions do NOT start
  or yield during offline catch-up (applyOfflineProgress replays
  tickGame directly; maybeStartLoopAction is never called, so an
  enabled loop with no active action stays idle and yields 0).

- purity.test.ts: extend FORBIDDEN list to catch environment APIs
  (Date.now(), localStorage., indexedDB., idb-keyval import, document.,
  window., requestAnimationFrame()) in addition to the existing
  React/react-dom/zustand import guards. Patterns are scoped to call
  sites and member-access forms so prose comments (e.g. save.ts's
  "Date scheduling" doc comment) do not false-positive. lz-string is
  intentionally omitted — it is a pure compression library.

- NavRail.tsx: add sr-only "New story" span alongside the aria-hidden
  pulse dot so screen readers can perceive the unread-story badge.
2026-06-11 22:40:38 -05:00
ginnoir 0de61d3e41 feat(engine): loop idle runner with enabledLoopActionIds 2026-06-11 20:44:20 -05:00
ginnoir b54805637c feat(content): migrate stub actions to kind/group model 2026-06-11 20:23:49 -05:00
ginnoir 9196c77e25 feat(save): persist story flags and node progress in v1 2026-06-11 18:52:16 -05:00
ginnoir 1c5fcc80ad chore: pass PR1 verification gate (format, lint, coverage)
CI / verify (pull_request) Successful in 50s
CI / verify (push) Successful in 48s
2026-06-11 18:23:43 -05:00
ginnoir 964e9260fa feat(save): persist action queue in v1 save payload 2026-06-11 18:19:49 -05:00
ginnoir f514eeedf8 feat(engine): costs on start, unlock checks, queue completion advancement 2026-06-11 18:19:16 -05:00
ginnoir ee3d463c9c feat(content): add action costs and multi-yield schema 2026-06-11 18:16:26 -05:00
ginnoir ec8f857845 feat: bootstrap walking skeleton 2026-06-11 17:06:52 -05:00