This website requires JavaScript.
a2c63cc77f
docs(REWORK_PLAN): M5 done, PRable
#1
david raistrick
2026-07-01 19:26:23 -04:00
e22f412c52
fix(docker): drop image: field so compose never pulls service image
david raistrick
2026-07-01 19:22:31 -04:00
4406fd2045
docs: ENCOUNTER_BUILDER + TESTING guides for LLM session handoff
david raistrick
2026-07-01 19:16:12 -04:00
81c0b26b71
fix(docker): copy tailwind+postcss config so CSS compiles in build
david raistrick
2026-07-01 19:07:21 -04:00
da25f46e3e
fix(docker): single container (caddy+node), ESM adapters fix blank page
david raistrick
2026-07-01 19:03:59 -04:00
c1d982b4a4
fix(BUG-8): ws adapter auto-reconnect after drop
david raistrick
2026-07-01 18:26:42 -04:00
afdd72e829
fix(analyzer): match new 'round N starting' marker
david raistrick
2026-07-01 17:36:17 -04:00
58ae04b400
fix(BUG-15): DisplayView no longer re-sorts participants by initiative
david raistrick
2026-07-01 17:31:40 -04:00
d73405753a
fix(replay): round markers align with turn-line round labels
david raistrick
2026-07-01 17:21:55 -04:00
3b07fc27b0
docs(TODO): add BUG-13 (reorder cross-pointer), BUG-14 (addParticipant post-drag)
david raistrick
2026-07-01 17:19:31 -04:00
af165f4491
fix(replay): no-op + pointer-crossing reorder picks
david raistrick
2026-07-01 17:14:06 -04:00
dbd0c75792
fix(BUG-12): campaign selection follows activeDisplay
david raistrick
2026-07-01 17:05:00 -04:00
750ee99080
feat: display campaign createdAt in UI card
david raistrick
2026-07-01 16:41:17 -04:00
313a897e4b
docs: TODO update — 1-list model done, BUG-6 fixed, FEAT-3 backlog
david raistrick
2026-07-01 16:08:05 -04:00
3ea67019d2
refactor: App.js 3 sites to shared 1-list contract
david raistrick
2026-07-01 16:05:18 -04:00
7c3ec105d5
refactor: App.js 1-list display + start/resume (no re-sort)
david raistrick
2026-07-01 16:03:38 -04:00
d1cbe7091a
refactor: App.js imports shared turn funcs (DRY), delete duplicates
david raistrick
2026-07-01 16:02:35 -04:00
5d3a0607ef
refactor: 1-list turn order model (turnOrderIds === participants.map(id))
david raistrick
2026-07-01 16:00:00 -04:00
94b62dc5ab
feat(replay+parser): log order+init, detect unexplained order shifts
david raistrick
2026-07-01 15:37:56 -04:00
fcddb58b8b
test: 3-list invariant net (display === turnOrderIds === nextTurn)
david raistrick
2026-07-01 15:32:30 -04:00
7467a8d30f
feat(M5): docker-compose full stack (caddy + node backend + sqlite)
david raistrick
2026-07-01 14:39:47 -04:00
5521a2f6c6
docs: mark M4 BUG-5 done, move M6 undo to TODO backlog
david raistrick
2026-07-01 14:33:00 -04:00
494327ff17
fix(BUG-5): unify turn-advance core (DRY), 500 rounds skip-free
david raistrick
2026-07-01 14:22:02 -04:00
c72b88f8bb
WIP turn.js: computeTurnOrderAfterRemoval bumps round on wrap
david raistrick
2026-07-01 12:00:23 -04:00
0473eacc1d
WIP: BUG-5 slot-array fix + FEAT-1 dead-not-skipped + skip parser
david raistrick
2026-07-01 11:42:43 -04:00
c6d3b7e1a6
docs: move dead-not-skipped (FEAT-1) to TODO backlog, M4 = BUG-5 fix
david raistrick
2026-06-30 16:33:02 -04:00
e0f75cfb6c
update todo
david raistrick
2026-06-30 16:30:26 -04:00
b62996dcbf
TODO: backlog of bugs + long-term items, milestones live in REWORK_PLAN
david raistrick
2026-06-30 16:28:18 -04:00
260fb314bc
docs: separate REWORK_PLAN (infra/milestones) from TODO (bugs)
david raistrick
2026-06-30 16:26:10 -04:00
fb7fbb2263
remove hallucinated JUMP_TURN_TO feature
david raistrick
2026-06-30 16:22:13 -04:00
435e109070
tests: removeParticipant edge cases (5 green)
david raistrick
2026-06-30 14:05:29 -04:00
b024fa08bb
tests: scenario rotation integrity check (every 10 rounds)
david raistrick
2026-06-30 14:04:27 -04:00
49ea39ea93
TODO: BUG-4 broader - all 5 activeDisplay setDoc calls clobber fields
david raistrick
2026-06-30 14:02:32 -04:00
b2fd06ed17
tests: JUMP_TURN_TO RED (3 tests, 2 fail - feature missing)
david raistrick
2026-06-30 14:00:50 -04:00
e514a48d6e
tests: BUG-8 ws reconnect RED, BUG-7 reorder no-undo doc, ws _test accessor
david raistrick
2026-06-30 13:59:58 -04:00
c90fc6ffb0
tests: M4 dead-participant skip RED (4 tests, turn.dead-skip.test.js)
david raistrick
2026-06-30 13:57:55 -04:00
d979b03f2e
tests: BUG-4 RED locked (hide-HP clobbers activeDisplay), add write recorder
david raistrick
2026-06-30 13:55:14 -04:00
be481767f0
tests: undo roundtrip (10 green) + reorderParticipants BUG-7 candidate
david raistrick
2026-06-30 13:50:48 -04:00
bac94d85ff
tests: reorderParticipants characterization + BUG-6 RED
david raistrick
2026-06-30 13:49:38 -04:00
08c6146cf7
tests: turn.combat.test.js (deterministic RED for BUG-5), deprecate audits
david raistrick
2026-06-30 12:33:56 -04:00
d48ecf1460
todo: BUG-4 hide-player-HP breaks display (preexisting)
david raistrick
2026-06-29 17:12:22 -04:00
c314d1975e
chore: move audit tools tests/audit, add scratch/ gitignored
david raistrick
2026-06-29 17:11:46 -04:00
a8e88cf0f0
tooling: audit-state pause+resume paired, guard advance-while-paused
david raistrick
2026-06-29 16:36:43 -04:00
d35a730e12
fix(turn): BUG-2 addParticipant rejects duplicate id
david raistrick
2026-06-29 16:25:39 -04:00
912c493974
docs: rewrite DEVELOPMENT.md (current state), add scripts/README.md
david raistrick
2026-06-29 16:23:34 -04:00
40fc4e596b
TODO: BUG-1 symptom chain (4 faces, 1 root cause), fix test paths
david raistrick
2026-06-29 16:22:38 -04:00
80b454d087
tooling: audit-state.js expanded bug-finder (9 invariant classes)
david raistrick
2026-06-29 16:21:54 -04:00
2756b7b3eb
tests: skip dup-id test (BUG-2, see TODO), enable clean push
david raistrick
2026-06-29 16:03:03 -04:00
f81308a0df
tests: consolidate into tests/ dirs, fix import paths
david raistrick
2026-06-29 16:02:22 -04:00
33e0e52789
tests: pause-add rotation corruption + dup-id, log bugs to TODO
david raistrick
2026-06-29 15:52:17 -04:00
13490fe3de
tests: round-rotation audit, dup-id fail, replay rewrite
david raistrick
2026-06-29 15:49:39 -04:00
7866dec83b
replay: loop by real rounds, visible damage each turn, faster default
david raistrick
2026-06-29 15:21:48 -04:00
891fc696d9
docs: add glossary (turn vs round, participants, views, backend)
david raistrick
2026-06-29 15:19:18 -04:00
9fd0f3ec38
M3: fix path-shape drift via adapter contract + identity tests
david raistrick
2026-06-29 15:13:03 -04:00
6630fd9158
M3: add combat replay script + TODO for M4 skip/dead fixes
david raistrick
2026-06-29 14:36:02 -04:00
1d4c561c09
M3: add full 100-round combat scenario test
david raistrick
2026-06-29 13:51:32 -04:00
84a8b78acd
M2: refactor DisplayView to storage adapter (red test first)
david raistrick
2026-06-29 13:13:46 -04:00
52866784b2
M2: replace shape-specific backend with generic KV doc store (firebase mirror)
david raistrick
2026-06-29 13:00:24 -04:00
35cd1581e3
Reapply "M3: stub db sentinel in ws/memory mode so legacy guards pass"
david raistrick
2026-06-29 12:36:16 -04:00
ed67535b1f
Reapply "M2: fix ws adapter for browser WebSocket + firebase path prefix"
david raistrick
2026-06-29 12:36:16 -04:00
17245dfa1b
Reapply "M2: gate storage init on STORAGE mode (firebase vs ws/memory)"
david raistrick
2026-06-29 12:36:16 -04:00
e843acdf8a
Revert "M2: gate storage init on STORAGE mode (firebase vs ws/memory)"
david raistrick
2026-06-29 12:03:57 -04:00
74b4c2c42d
Revert "M2: fix ws adapter for browser WebSocket + firebase path prefix"
david raistrick
2026-06-29 12:03:57 -04:00
d1ee69a70a
Revert "M3: stub db sentinel in ws/memory mode so legacy guards pass"
david raistrick
2026-06-29 12:03:57 -04:00
a5a4df78f0
M3: stub db sentinel in ws/memory mode so legacy guards pass
david raistrick
2026-06-29 11:30:08 -04:00
b095e37bfe
M3: remove project dev-serve skill (moving to generic global skill)
david raistrick
2026-06-29 11:25:13 -04:00
54e8df9ffa
M3: add dev-serve skill (boot stack + headed browser for human testing)
david raistrick
2026-06-29 11:24:23 -04:00
e743d40e8d
M2: fix ws adapter for browser WebSocket + firebase path prefix
david raistrick
2026-06-28 22:43:30 -04:00
3e84f28325
M2: gate storage init on STORAGE mode (firebase vs ws/memory)
david raistrick
2026-06-28 21:11:56 -04:00
812298fa73
M2: refactor all firebase write sites to storage adapter
david raistrick
2026-06-28 21:05:39 -04:00
5bb9e5fc19
M2: refactor hooks to storage adapter (subscribe)
david raistrick
2026-06-28 19:03:44 -04:00
35b5a1d238
test: logs + deathSave characterization (6 tests)
david raistrick
2026-06-28 19:00:08 -04:00
d581e60ba3
test: combat characterization (9 tests)
david raistrick
2026-06-28 18:52:49 -04:00
4158a1634d
test: participant characterization (9 tests)
david raistrick
2026-06-28 18:50:42 -04:00
0c1196aee1
test: encounter characterization (6 tests)
david raistrick
2026-06-28 18:30:57 -04:00
672f042b60
chore: alphabetize package.json deps after install/uninstall churn
david raistrick
2026-06-28 18:29:09 -04:00
b6555648ee
test: campaign characterization (7 tests)
david raistrick
2026-06-28 18:12:27 -04:00
84dd17e174
test: Firebase mock harness + createCampaign characterization
david raistrick
2026-06-28 17:59:50 -04:00
12b24eb707
M2 (C): storage barrel re-export, App.js imports swapped
david raistrick
2026-06-28 17:51:39 -04:00
2ee2bba93b
M2 (TDD): storage contract test + memory impl
david raistrick
2026-06-28 17:18:14 -04:00
9457f48b23
ci: local pre-push hook instead of GH Actions (private repo)
david raistrick
2026-06-28 17:16:23 -04:00
fa19913e23
ci: add GitHub Actions workflow + dev docs + test:all script
david raistrick
2026-06-28 17:14:51 -04:00
0e76fb2fc7
M1: backend (Express+ws+better-sqlite3) + integration tests
david raistrick
2026-06-28 17:01:53 -04:00
e06adaa081
M1: shared turn logic + characterization tests (39 green)
david raistrick
2026-06-28 16:57:43 -04:00
d679c9d1e9
docs: restore approved milestone plan (backend=M1, drop FSM-extract milestone)
david raistrick
2026-06-28 16:53:18 -04:00
ad7979d8fd
docs: add rework plan (backend-first, test-ecosystem baseline)
david raistrick
2026-06-28 16:47:48 -04:00
33b27775b4
Bump version to v0.3
v0.3
robert and Claude Sonnet 4.6
2026-06-27 20:15:20 -04:00
d96d3a6cf2
Guard against undefined values in combat log undo payloads
v.03
robert and Claude Sonnet 4.6
2026-06-27 17:19:52 -04:00
439f48871e
Fix mid-round activation causing participants to be skipped in round 2+
robert and Claude Sonnet 4.6
2026-06-27 16:57:08 -04:00
35990f588e
Add per-entry undo buttons to combat log, bump to v0.2.5
robert and Claude Sonnet 4.6
2026-06-27 16:45:07 -04:00
b11fbe4715
Update README to reflect current feature set
robert and Claude Sonnet 4.6
2026-06-27 11:59:36 -04:00
7b52480329
Add wake lock toggle to prevent screen sleep on player display
robert and Claude Sonnet 4.6
2026-06-27 11:56:11 -04:00
58cc588726
Add fullscreen button to player display view
robert and Claude Sonnet 4.6
2026-06-27 11:53:56 -04:00
e200f59b7e
Hide inactive monsters from player display view
robert and Claude Sonnet 4.6
2026-06-26 14:39:59 -04:00
bb65709e26
Added shield to list of conditions.
robert
2026-05-16 15:29:27 -04:00
33d831af54
Fix race condition causing permissions error on /display page
robert and Claude Sonnet 4.6
2026-05-16 10:53:03 -04:00
4150267925
Add combat action log at /logs
robert and Claude Sonnet 4.6
2026-05-16 10:25:17 -04:00
e23cea205a
Add HP toggle, new conditions, fix turn order sync bug
robert and Claude Sonnet 4.6
2026-05-16 10:00:17 -04:00
6cd25dadaa
Alchemist Fire and Bardic Inspiration conditions, sort alphabetically.
robert
2026-05-16 09:37:11 -04:00
90cfb36b56
Adds a 'Hide player HP' toggle in the Combat Controls panel (on by default) that suppresses health bars for player characters in the DisplayView. Setting is persisted in the activeDisplay Firestore doc so it survives page reloads and takes effect in real time on the player screen.
robert
2026-05-16 09:30:35 -04:00