This website requires JavaScript.
23aa99ba0a
Merge pull request 'Tablet controls, participant action states, and Android shortcut fixes' (#9 ) from chore/test-and-cleanup into main
main
robert
2026-07-15 15:08:22 -04:00
dc0a1f1633
fix: preserve user-renamable Android shortcuts
#9
chore/test-and-cleanup
david raistrick
2026-07-15 13:49:52 -04:00
119d252d02
feat: improve tablet screen controls and participant action states
david raistrick
2026-07-15 12:24:51 -04:00
30712f0e1e
chore: strengthen lint coverage and update project housekeeping
david raistrick
2026-07-14 22:38:44 -04:00
7d0ea883b0
fix: drop useless string concat in devTools KEY to unblock CI build
robert and Claude Opus 4.8
2026-07-08 23:07:04 -04:00
5c062bf944
Merge pull request 'Generic (non-5e) ruleset mode + UI polish + combat switch fix' (#7 ) from feat/generic-ruleset into main
robert
2026-07-08 22:54:03 -04:00
b5b339a5dd
feat: temp HP, character isNpc, initiative box
#7
feat/generic-ruleset
david raistrick
2026-07-08 21:36:26 -04:00
eef11c3b6e
fix: scope selectedEncounter + scrollY localStorage per campaign
david raistrick
2026-07-08 20:00:13 -04:00
2c6dfdafc8
fix: guard player display from cross-encounter conflicts
david raistrick
2026-07-08 19:56:00 -04:00
c05a283cf0
feat: encounter card 'IN PROGRESS' badge + red ring for active combat
david raistrick
2026-07-08 19:41:35 -04:00
69ab0c35c0
fix: move revive/mark dead to stats row, bump stat font size
david raistrick
2026-07-08 19:39:32 -04:00
91e23856b4
feat: tablet-friendly encounter layout
david raistrick
2026-07-08 19:28:05 -04:00
fd03ae48c8
Character writeback on encounter end
david raistrick
2026-07-08 16:33:21 -04:00
96770099f6
Persist campaign/encounter selection + scroll position across reload
david raistrick
2026-07-08 14:12:35 -04:00
ebd91ca42a
Inline editable fields (init/hp/maxhp/ac) with editing overlay
david raistrick
2026-07-08 14:05:55 -04:00
41c1e48874
Wake lock persistence, button reposition, docs, dev LAN support
david raistrick
2026-07-08 13:19:10 -04:00
863e8b3719
Add AC field (character, monster/npc, participant edit); layout polish
david raistrick
2026-07-08 12:23:19 -04:00
4a92c667c5
Fix dev bulk-delete button gate + reposition inside campaigns
david raistrick
2026-07-08 11:46:56 -04:00
6f11edab94
HP formula stored on participant, loads in edit modal
david raistrick
2026-07-07 17:24:36 -04:00
2dfa155469
Add /display manifest for Android home-screen install
david raistrick
2026-07-07 16:44:29 -04:00
0fa3928bf8
Track encounter start/end timestamps; display on card
david raistrick
2026-07-07 16:41:34 -04:00
9870d4df0d
Fix addParticipants: slot by initiative instead of append
david raistrick
2026-07-07 16:07:20 -04:00
43b1f6ce41
WIP: add ttrpg-encounter-builder skill + server-mode API docs
david raistrick
2026-07-07 15:42:02 -04:00
907484fc7f
Character drag reorder via players array
david raistrick
2026-07-07 15:40:58 -04:00
9dbbb88730
Campaign drag reorder: fix sort in fetchDetails path
david raistrick
2026-07-07 15:37:04 -04:00
1078062b53
Campaign drag reorder via order field
david raistrick
2026-07-07 15:24:12 -04:00
94126567e7
Encounter drag reorder via order field
david raistrick
2026-07-07 15:18:08 -04:00
f3ed971592
Merge remote-tracking branch 'upstream/main' into feat/generic-ruleset
david raistrick
2026-07-07 14:53:42 -04:00
95db6fdfdc
Character section rollup: clickable title, count, persisted collapse
david raistrick
2026-07-07 14:31:04 -04:00
a5b6d61e83
Generic ruleset UI + campaign/encounter tags + switch-during-combat fix
david raistrick
2026-07-07 14:28:32 -04:00
76f5dc09ab
Trigger Portainer stack webhooks after image push
robert and Claude Opus 4.8
2026-07-07 13:57:47 -04:00
c2bb5cca29
Generic (non-5e) ruleset mode: negative HP, down status, mark dead/revive
david raistrick
2026-07-07 13:32:26 -04:00
7955bed4a9
Add Jenkins CI and Portainer stack for image deployment
robert and Claude Opus 4.8
2026-07-07 12:43:46 -04:00
66f3cc1380
Adding Jenkinsfile to simplify my deployment.
robert
2026-07-07 12:13:16 -04:00
19de9fcf75
Merge pull request 'Player display animations, death visual, upstream merge' (#5 ) from single-source into main
robert
2026-07-07 11:21:23 -04:00
c41a8aa994
Merge branch 'main' into single-source
#5
single-source
robert
2026-07-07 11:21:12 -04:00
02344eb3f5
Bump Docker base images to node 22; mock firestore comment cleanup
david raistrick
2026-07-06 23:49:47 -04:00
e191aa5ad2
Merge pull request 'Fix white /logs page in firebase mode: emulate offset in adapter' (#6 ) from white-log-page into main
keen
2026-07-06 23:32:37 -04:00
c544bc305a
Merge branch 'pr-6' into single-source
david raistrick
2026-07-06 23:24:25 -04:00
835a4663f7
Docker build cache: .dockerignore, cache mount, layer reorder, restart script
david raistrick
2026-07-06 23:22:19 -04:00
995347d255
Fix white /logs page in firebase mode: emulate offset in adapter
#6
white-log-page
robert and Claude Fable 5
2026-07-06 22:50:29 -04:00
9159755846
Scope player card transitions: ring/shadow fast, fade/transform slow
david raistrick
2026-07-06 22:48:10 -04:00
dbe018825b
Merge remote-tracking branch 'upstream/main' into single-source
david raistrick
2026-07-06 22:39:57 -04:00
3b75ec9b3d
Animate player display inactive transitions and death state
david raistrick
2026-07-06 22:38:33 -04:00
3646a9cf8e
Merge pull request 'D&D 5e death-save state machine, undo/redo fixes, dev bulk delete' (#4 ) from single-source into main
robert
2026-07-06 22:14:05 -04:00
6991375afc
Move Crit button inline with HP controls; fix death save button icon alignment
#4
robert and Claude Fable 5
2026-07-06 22:13:31 -04:00
77570097f8
Merge branch 'main' into single-source
robert
2026-07-06 22:01:24 -04:00
055895875a
Dev-only bulk delete all campaigns; deleteCollection SQL bulk + gates
david raistrick
2026-07-06 19:06:52 -04:00
532af1ecc4
Populate campaign players array in combat replay and scenario
david raistrick
2026-07-06 18:48:29 -04:00
47056788e8
Add Crit Damage button for dying/stable participants
david raistrick
2026-07-06 18:38:49 -04:00
6fe4a27dd5
Show stable regain hint in DM view for stable+unconscious participants
david raistrick
2026-07-06 18:34:50 -04:00
bf1fccfd3b
Exclude pause/resume from undo; fix verify round-wrap false positive
david raistrick
2026-07-06 18:30:51 -04:00
2c997de0da
Fix undo/redo forward-state restore, harden test infra, skip-guard
david raistrick
2026-07-06 18:09:28 -04:00
c80ac6882f
Exercise death-save edge cases in combat replay and scenario tests
david raistrick
2026-07-06 17:10:01 -04:00
1d4ec873dc
Implement D&D 5e death-save state machine and cleanup combat ordering
david raistrick
2026-07-06 16:39:11 -04:00
2569cc4497
Builds replayable combat logs with first-class undo/redo, unified verification tooling, fast indexed log queries, and stricter CI.
david raistrick
2026-07-06 10:31:46 -04:00
8354d21fc6
Merge pull request 'Single source of truth: combat logic, storage parity, slot ordering' (#3 ) from single-source into main
robert
2026-07-05 00:07:56 -04:00
9f8b09c7d9
feat(ui): first-class undo/redo buttons in combat controls
#3
david raistrick
2026-07-04 22:48:58 -04:00
ed1783e419
docs: reorg TODO — merge FEAT-2+M6 into FEAT-LOG, add undo/redo UI + Is NPC clarify
david raistrick
2026-07-04 22:36:15 -04:00
6fe2b762ab
docs: update TODO — toast/modal + dropdown filter done
david raistrick
2026-07-04 22:30:33 -04:00
9ef3e3bd9e
feat(ui): filter already-added chars from participant dropdown
david raistrick
2026-07-04 22:28:41 -04:00
3423319b9b
feat(ui): replace all alert() with toast + info modal
david raistrick
2026-07-04 22:27:32 -04:00
7bcf01dcf9
fix: custom conditions apply on add; correct server WS env docs
david raistrick
2026-07-04 20:41:34 -04:00
1ad4b660a4
feat: custom conditions per campaign
david raistrick
2026-07-04 18:20:32 -04:00
9c90c1500c
feat(turn): D&D 5e death saves — success/fail tracking
david raistrick
2026-07-04 17:56:14 -04:00
f2797595f4
test: static guard — every mutation logged
david raistrick
2026-07-04 17:26:59 -04:00
32b8dfd8a1
fix(turn): log addParticipants + updateParticipant (logging gaps)
david raistrick
2026-07-04 17:25:22 -04:00
ab9f8fa2e7
fix(turn): log reorder + deathSave (BUG-7)
david raistrick
2026-07-04 17:22:52 -04:00
5a09f71d4c
refactor(turn): remove dead computeTurnOrderAfterAddition
david raistrick
2026-07-04 17:18:29 -04:00
942545c085
fix(turn): block cross-pointer reorder (BUG-13)
david raistrick
2026-07-04 17:12:13 -04:00
0ff50561c7
test: BUG-10 deact+reactivate double-act (already fixed by 1-list model)
david raistrick
2026-07-04 17:06:07 -04:00
8ad750c60a
test: add 10s timeout guard across all suites
david raistrick
2026-07-04 17:03:34 -04:00
81a1629118
docs: rewrite TODO clean — closed items to history, open items current
david raistrick
2026-07-04 16:59:52 -04:00
4da5ed9bcc
Merge remote-tracking branch 'upstream/main' into single-source
david raistrick
2026-07-04 16:43:14 -04:00
c556860e49
refactor(App): remove dead SDK imports (BUG-17)
david raistrick
2026-07-04 16:07:21 -04:00
27b2272ced
fix(storage): neutral queryConstraints honored by both adapters
david raistrick
2026-07-04 16:06:28 -04:00
e94e1959ff
refactor: rename ws adapter to server across codebase
david raistrick
2026-07-04 15:47:13 -04:00
cb41d9ec8f
fix(turn): slot-not-sort in add/update; static guard against stray .sort()
david raistrick
2026-07-04 15:40:39 -04:00
6baecd374e
ws adapter: match main truth (id injection + setDoc merge)
david raistrick
2026-07-04 12:35:28 -04:00
79af61cb8b
match main firebase behavior; fix contract + mismatches
david raistrick
2026-07-04 12:22:04 -04:00
b12ac904a6
test: add storage coverage (firebase contract, factory), silence scenario log
david raistrick
2026-07-03 18:53:58 -04:00
7f60ec140e
fix(scenario): run 100 rounds not turns, exercise all combat paths
david raistrick
2026-07-03 18:29:35 -04:00
e650cd2710
refactor: single-source display lifecycle + scenario test no React
david raistrick
2026-07-03 18:26:02 -04:00
d83d1383c0
refactor: single-source combat logic (App handlers call shared, slot model)
david raistrick
2026-07-03 17:59:41 -04:00
c3d89554e8
docs: initiative ordering design (slot, never sort)
david raistrick
2026-07-03 17:18:00 -04:00
d1cc3a8b9a
test: warning=failure guard + fix ambiguous switch selector
david raistrick
2026-07-03 16:05:04 -04:00
31d19c5912
test: kill act env warnings + remove debug console noise
david raistrick
2026-07-02 18:40:38 -04:00
530aaadf90
test: kill act env warnings (globalThis flag + _notify act wrapper)
david raistrick
2026-07-03 15:58:50 -04:00
1a744e511a
test: upgrade @testing-library/react v14, kill act warnings
david raistrick
2026-07-02 15:57:37 -04:00
8cf3dad5b6
Merge pull request 'Rework backend' (#2 ) from rework-backend into main
robert
2026-07-03 08:35:32 -04:00
3d0dc79206
feat(UI): hide NPC/monster HP toggle (player display)
#2
rework-backend
david raistrick
2026-07-02 11:29:02 -04:00
4b8b8bccfb
feat(UI): collapsible Campaigns section
david raistrick
2026-07-02 11:17:04 -04:00
c0998da0a7
fix(BUG-4): updateDoc patch on activeDisplay (not setDoc replace)
david raistrick
2026-07-01 23:32:23 -04:00
d00cc104c9
feat(FEAT-3): reslot on all participant mutation paths
david raistrick
2026-07-01 23:00:40 -04:00
36d7186a54
scripts: dev-start/dev-stop for local stack (backend+frontend)
david raistrick
2026-07-01 22:55:37 -04:00
08c27c1ca5
feat(FEAT-3): reslot on inline init change + gate field
david raistrick
2026-07-01 22:29:38 -04:00
0514939c51
feat(FEAT-3): initiative first-class field (add + inline edit)
david raistrick
2026-07-01 22:25:52 -04:00
ec578eeef5
Bump to v0.4, document self-hosted backend in README
robert and Claude Sonnet 5
2026-07-01 19:59:46 -04:00
c54fd88c32
fix(docker): copy workspace package.json files before npm install
robert and Claude Sonnet 5
2026-07-01 19:40:23 -04:00
e31fe15382
Merge pull request 'Rework backend' (#1 ) from rework-backend into main
robert
2026-07-01 19:29:33 -04:00