ginnoir
29bc4d4bc5
feat(state): runtime automation and recipe commands
2026-06-12 00:51:17 -05:00
ginnoir
4b5372cdf9
feat(state): automation fields on action view model
2026-06-12 00:49:09 -05:00
ginnoir
d625216018
feat(engine): track manualCompletionCounts on action complete
2026-06-12 00:19:24 -05:00
ginnoir
880abe5888
fix(ui): restore boot-intro continue and fix story tree a11y
...
Finding 1 (critical): atBootIntro was derived from tree.length === 0 in
StoryView.tsx, but buildStoryTree always returns all topology-root nodes,
so tree.length is always > 0 and the Continue button never rendered.
Fix: add atBootIntro: boolean to StoryView (viewModel), computed by
finding the boot-trigger node id without hardcoding the literal string,
then comparing to the current node. StoryView.tsx reads it from the store.
Also add a viewModel test covering both true and false cases.
Finding 2: onSelect in StoryView.tsx called useGameStore.getState()
directly, bypassing the runtime command layer. Fix: add
GameRuntime.selectStoryNode(id) and wire onSelect through gameRuntime.
Finding 3: aria-pressed on story tree nodes wrongly signals toggle-button
semantics. Fix: replace with aria-current={isSelected ? 'true' : undefined}.
Optional: hoist h-[calc(100dvh-6rem)] to SHELL_HEIGHT const in StoryView.tsx.
2026-06-11 22:25:51 -05:00
ginnoir
91348ed42f
refactor(ui): finalize review fixes for action cards and view model
...
- Guard ActionCard click-outside listener behind open state
- Add aria-expanded to ActionGroup collapse toggle
- Use optional chaining and drop non-null assertions in column projection
2026-06-11 22:16:40 -05:00
ginnoir
bbded8a266
feat(ui): action columns with collapsible groups
2026-06-11 21:32:13 -05:00
ginnoir
08d186f42e
refactor: clean up unused panel overlay state and methods
2026-06-11 21:29:44 -05:00
ginnoir
ed9607e9e8
refactor(state): address HMR and defensive slicing recommendations for runtime
2026-06-11 21:23:18 -05:00
ginnoir
b29b17c6cb
refactor(state): fix code quality findings for runtime and story log
2026-06-11 21:20:52 -05:00
ginnoir
239b2506ec
feat(state): runtime performAction and nav story signals
2026-06-11 21:16:27 -05:00
ginnoir
adf730702d
refactor(state): address review recommendations for store and prefs
2026-06-11 21:14:04 -05:00
ginnoir
09e2d06b87
refactor(state): fix code quality findings for nav panel store and prefs
2026-06-11 21:12:20 -05:00
ginnoir
9b2793b264
feat(state): nav panel store and expanded prefs
2026-06-11 21:10:07 -05:00
ginnoir
73d836fe96
feat(state): project actions into columns and story tree
2026-06-11 21:01:42 -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
c1b38e36aa
fix(content): guard optional durationMs and cover loop validation
2026-06-11 20:17:50 -05:00
ginnoir
c76265d648
docs: document story engine and PR2 playable loop
CI / verify (push) Failing after 58s
CI / verify (pull_request) Failing after 41s
2026-06-11 19:00:49 -05:00
ginnoir
9a7eb3065a
feat(state): wire story triggers and choices through runtime
2026-06-11 18:55:42 -05:00
ginnoir
a230a46850
feat(state): story trigger orchestration and auto-open rules
2026-06-11 18:55:08 -05:00
ginnoir
a69585e89c
feat(state): store story panel and prefs UI state
2026-06-11 18:54:34 -05:00
ginnoir
8d83f9899b
fix(state): prefs test localStorage mock typing
2026-06-11 18:54:07 -05:00
ginnoir
f29b05bd70
feat(state): view model action availability and story passage
2026-06-11 18:53:50 -05:00
ginnoir
b88399ac14
feat(state): localStorage player prefs for story and action display
2026-06-11 18:52:39 -05:00
ginnoir
9196c77e25
feat(save): persist story flags and node progress in v1
2026-06-11 18:52:16 -05:00
ginnoir
d2692bcc3c
feat(engine): add story fields to GameState
2026-06-11 18:47:18 -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
fce561b8e5
feat(state): wire enqueueAction through runtime and view model
2026-06-11 18:21:12 -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
ea2fb0afab
feat(engine): add action queue state and enqueue APIs
2026-06-11 18:18:17 -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