Chrome Android forces the root URL into PWA installation when required manifest icon files exist. PWA names come from the manifest and cannot be edited, which breaks workflows using multiple tracker copies. Keep required 192/512 icon assets intentionally unavailable by committing generated files with .png-not suffixes. Removing the manifest link does not restore root shortcut naming; Chrome still installs the root as a PWA. Chrome handles /display differently: even with a working manifest it offers Install app or Create shortcut, and Create shortcut permits renaming. Keep both manifests intentionally non-installable for consistent user-controlled shortcut names. Also add separate player-display favicon/logo artwork and swap /display browser favicon to player-favicon.ico. Keep generated standard/player logo sources under renamed inert filenames.
105 lines
3.8 KiB
Markdown
105 lines
3.8 KiB
Markdown
# TODO
|
|
|
|
Backlog of bugs + long-term items. Milestones live in REWORK_PLAN.md.
|
|
|
|
|
|
## Open
|
|
|
|
x caff doent work on fron tpage or big tablet
|
|
|
|
x max/caff need to float or at least be availabe in combagt popout
|
|
|
|
x save needs bigger save button on char editor
|
|
|
|
|
|
x fullscreen and dont lock on main app dm view and the no-game-player view ...and doesnt actually prevent lock on android
|
|
|
|
x also better vert tab layout - labelt friendly
|
|
|
|
x needs AC for players dude
|
|
|
|
x and quick entry hp
|
|
|
|
x hp do not carry from encounter to ecnounter!!!
|
|
^feature to add back to campaign character after encounter?
|
|
maybe campaign toggle in charc section (choosing each end is DM overload will be missed forgotten done wront)
|
|
|
|
x refresh/reload/code update causes UI to update to top unselected cambpaign have to drill all the way back down to active encounter....every time. siemtmes?
|
|
|
|
x encounters cards need clear "in progress"...
|
|
|
|
|
|
|
|
x I wonder...if a charcter-list-character should have a isNPC option vailble to them - for longer lived
|
|
npcs.....
|
|
|
|
x hp wont go over max and no temp hp support
|
|
|
|
|
|
## monsters per campaign and npcs
|
|
## or/and ....copy from encoubnter?
|
|
|
|
|
|
|
|
|
|
|
|
### npm install warnings cleanup pass
|
|
lots of updates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### TEST GAP: current branch changes need focused coverage
|
|
- Storage `where()` contract: firebase + server adapters should honor `[where('encounterPath','==',x), orderBy('ts','desc'), limit(n)]`.
|
|
- Server SQL query test: `where + orderBy + limit` should return latest logs for one encounter only.
|
|
- Undo/redo stack order: undo A3 then A2, redo must replay A2 first, then A3.
|
|
- Combat controls should not subscribe to logs while mounted; undo/redo should query logs only on click.
|
|
- Unified CLI smoke: `node scripts/combat.js verify <fixture.json>` returns CLEAN on known-good log.
|
|
- Unified CLI replay smoke: `node scripts/combat.js replay ... --out tmp/x.json` writes JSON array and auto-verifies.
|
|
- Ctrl-C replay behavior: SIGINT during replay should end encounter, clear active display, write partial log, run verify.
|
|
- SQLite schema/index test: `idx_docs_parent_ts` and `idx_docs_parent_encounter_ts` exist for server DB.
|
|
|
|
### confirm warnings treated as error = fail in all tests, build pipeline, linters, everything. again.
|
|
|
|
### BUG: addParticipants (batch add) does not slot by initiative
|
|
- shared/turn.js addParticipants appends `[...existing, ...new]`, no slotIndexForInit.
|
|
- Violates INIT doc: "Add = insert into slot by initiative."
|
|
- Single addParticipant slots correct. Batch (add-all-chars) appends.
|
|
- Pre-start batch add = wrong order. Post-start worse.
|
|
|
|
### BUG: nextTurn throws on solo combatant
|
|
- nextActiveAfter loop `for step=1; step<n` skips when n=1 → {nextId:null}.
|
|
- nextTurn throws "Could not determine next participant."
|
|
- Solo active combat cannot pass turn.
|
|
|
|
### BUG: reorderParticipants cross-pointer drag = silent no-op
|
|
- Cross-pointer drag returns encounter unchanged, no log, no toast.
|
|
- DM drags across current turn → nothing happens, no feedback.
|
|
|
|
### BUG: addParticipant undo missing currentTurnParticipantId when started
|
|
- undo saves participants + conditional turnOrderIds, no currentTurnParticipantId.
|
|
- Pointer can misalign on undo if added near pointer region.
|
|
|
|
### BUG: computeTurnOrderAfterRemoval isActive uses find() not boolean
|
|
- `isActive = id => updatedParticipants.find(p => p.id === id && p.isActive)`
|
|
- Returns participant obj (truthy) not boolean. Works by accident, fragile.
|
|
|
|
|
|
### FEAT: clarify "Is NPC" in add-participant
|
|
- Ambiguous label. May expand work based on what NPC means here (ally? monster?
|
|
display-only? skip in turn order?). Clarify intent before UX changes.
|
|
|
|
|
|
### quality of life fix: 2. UI says "Campaign Characters", field is players --- naming mismatch (separate concern, flag for later)
|
|
|
|
|
|
## FEAT - parallel campaigns
|
|
|
|
## FEAT - multi user
|
|
|
|
## FEAT - clarify what end encounter does and what initiatives reset means
|
|
|
|
## Done (history)
|