Skip to content

v0.47.0 — Character sheet fixes

A consolidation release. v0.46.0 shipped Edit Mode for System 8; this one closes the items that release left unticked, replaces the UI-Overhaul-era artwork editor with the spec'd modal, and clears two pieces of dead weight — an unreachable soft-delete tier and a projection backlog with no way to drain it.

Main article: Character Sheet Overhaul · task list: todo-v2.md · sheet spec: phase-1-character-sheet.md

Undelete UI

  • [x] Add a UI to un-soft-delete characters, maps, etc.
    • For this release, add the route /undelete, which shows all undeletable assets.
    • In a future release we'll integrate the elements of this UI into the campaigns list page, maps list page, etc.

Admin: Data

  • [x] Add a page at /admin/data which shows characters that haven't been projected yet, with a button for each to manually trigger projections, and a button to project all. ("Projected" here means server-side power-action derivation — the POST /api/characters/:id/derive-power-actions backfill added in v0.46.0.)

Character Sheet Overhaul — finish System 8 Edit Mode

Items bucketed [0.46.0] in todo-v2.md that did not land in that release.

  • [x] 1e.4 — Delete dead styles in retroVTT.css. Four blocks, 195 lines, no consumers.
  • [x] N9 — marked done. Its list was complete; the one omission (an Add picker for Attacks) was answered by Phase A. Unticked by oversight in 0.46.0.
  • [x] CC-1 leakage guard, red on main since 0.46.0. sheetLayout.ts carried both banned patterns in one line of prose, explaining that the platform does not branch on the system. The guard reads raw source deliberately.

⛔ Blocked and moved to 0.48.0 — 1e.2 and 1e.3. Both end in retiring the classic sheet: 1e.2 finishes with "remove the newCharacterSheet feature flag", and 1e.3 deletes the sheet that flag reaches. This same release adds "Show classic character sheet" to the ... menu, which is a decision to keep it reachable for at least one more release. Shipping a menu item that promises the classic sheet while deleting its last route would be incoherent, so they wait together. Both items now live in the Next Version: v0.48.0 section of CHANGELOG.md.

Character Sheet UI

  • [x] Remove the logic that resizes the character context when switching to Build mode. Only the user manually resizing the sidebar should change its size.
  • [x] Add "Show classic character sheet" to the ... menu.
  • [x] Hide the Classic|New toggle in the character sidebar and remove the line containing it.
  • [x] Move the ... and "Focus Camera on Token" buttons onto the same row as the Build toggle and the link-status badge.
  • [x] Hide the vertical strip of controlled characters on the far-left edge of the UI, repositioning the character sidebar to the left edge of the viewport.

New Character page

  • [x] /campaign/:id/characters/new has no call-to-action. Add a Create button that creates the character and a Cancel button that reverts to history -1, following the style guide's button rules.

Deferred out of this release

Hide the Modifiers section was deferred 2026-08-07 on complexity — "Modifiers" is System 8's CS-1.5 derived-stat panel, rendered by the generic <DerivedPanelSection>, so there is no way to hide it without either over-reaching or putting system vocabulary into platform code. The item and its full reasoning moved to the Next Version: v0.48.0 section of CHANGELOG.md.

Artwork modal rework (Phase 1d)

Implement Section 0 of phase-1-character-sheet.md in full — the spec is authoritative over the UI-Overhaul-era editor it replaces.

  • [x] 1d.1 — Modal shell + slide mechanic, including the circular "Edit Portrait" pencil button embedded in the top right of the sheet portrait.
  • [x] 1d.2 — Source art strip, with the two-column layout and drag-to-assign onto the Token and Portrait drop zones.
  • [x] 1d.3 — Source Art Editor sub-modal (Upload from Device / Google Image Search / Paste Image URL / Choose From Library).
  • [x] 1d.4 — Tokenization sub-modal.
  • [x] 1d.5 — Portrait art sub-modal.