Lane 8 page P5: the party and quests (WIKI-12, WIKI-13, #734) #910

Merged
claude-bot merged 6 commits from build/lane8-p5-party-quests into main 2026-09-28 16:54:33 +00:00
Collaborator

Part of #734 (lane 8). This PR builds WIKI-12 (the party) and WIKI-13 (quests) on the merged PR 3 (parties) and PR 4 (quests) servers. It's frontend only.

The party (/wiki/party)

  • Layout: the D110 .leaf, with "Where we stand" in the margin. It has a party switcher and "A new party" for the GM.
  • Overview: home base, the fund, the XP pool, members, and active quests.
  • What we carry:
    • notable items come first, then the ledger;
    • a "Held by" filter;
    • Add, Give and Change, and Remove with an Undo (D12).
  • XP and gold:
    • per-character totals;
    • signed gold entries;
    • totals kept per coin, so sp and gp are never added into one number.
  • Downtime: PF2e activities, with the GM able to approve.
  • Who has been in it: current members, then former ones, with Move…
  • Permissions: players add only when players_can_add_loot is on, and change only the lines they created (D6).
  • D236: a row with no party counts in its character's party, or else the main one.

Quests (/wiki/quests)

  • Order: "Rumours waiting for the GM" first (GM only), then one group per status.
  • Rows: status dots, failed quests struck through, and a "GMs only" chip.
  • A new quest is created through POST /lore/quests, then opens in its editor.

Removed and re-homed

  • Deleted, per spec: CampaignDetail.jsx, LootLedger.jsx and QuestLog.jsx.

  • Deleted because nothing imported them any more:

    • DateTimePicker
    • TitleSuggestions
    • CampaignAiSettings
    • ContentPacks
    • CampaignOwnership

    Each one's feature already has a new home.

  • OwnershipNotices: Accept and Decline are now on This week's offer banner.

  • Routing: /campaigns/:id/manage redirects to /wiki/party, and every link that pointed at /manage has been updated.

  • Contents: "Quests & loot" is gone, replaced by Quests and The party. P1's wiki groups get their icons back (a group id mismatch).

Not built: no server for these

  • A quest's own page and editing (status, objectives, arc, giver, reward; IS-100 to IS-104, PR-077). No route can read or change a quest's status today, so a quest opens as an article. The old QuestLog was read-only too.
  • Grouping by arc, main quests first: the response has no arc and no main flag.
  • Confirm as quest / Not canon (IS-155).
  • Allies and enemies (IS-117) and party level (IS-115).
  • An NPC or place as holder, "Make it a page", and setting the home base: these need a page picker.

Owner questions (on the morning page)

  • Should XP awards be GM-only? Recommended: yes.
  • Should quests get a PATCH route for status and details, plus an editor? Recommended: yes.

Checks

  • vitest: 2652 passed. eslint: 0 errors.
  • Coverage: lane6b and lane6d both print "unclassified: none".
  • Real-stack render: Playwright ran at 390×844 and 1440×900, light and dark, as Dana and Priya, with scrollWidth ≤ innerWidth on all 16 shots. I reviewed them myself.
  • Changelog: a changelog.d/ fragment.

🤖 Generated with Claude Code

Part of #734 (lane 8). This PR builds WIKI-12 (the party) and WIKI-13 (quests) on the merged PR 3 (parties) and PR 4 (quests) servers. It's frontend only. ## The party (`/wiki/party`) - **Layout:** the D110 `.leaf`, with "Where we stand" in the margin. It has a party switcher and "A new party" for the GM. - **Overview:** home base, the fund, the XP pool, members, and active quests. - **What we carry:** - notable items come first, then the ledger; - a "Held by" filter; - Add, Give and Change, and Remove with an Undo (D12). - **XP and gold:** - per-character totals; - signed gold entries; - **totals kept per coin**, so sp and gp are never added into one number. - **Downtime:** PF2e activities, with the GM able to approve. - **Who has been in it:** current members, then former ones, with Move… - **Permissions:** players add only when `players_can_add_loot` is on, and change only the lines they created (D6). - **D236:** a row with no party counts in its character's party, or else the main one. ## Quests (`/wiki/quests`) - **Order:** "Rumours waiting for the GM" first (GM only), then one group per status. - **Rows:** status dots, failed quests struck through, and a "GMs only" chip. - **A new quest** is created through `POST /lore/quests`, then opens in its editor. ## Removed and re-homed - **Deleted, per spec:** `CampaignDetail.jsx`, `LootLedger.jsx` and `QuestLog.jsx`. - **Deleted because nothing imported them any more:** - `DateTimePicker` - `TitleSuggestions` - `CampaignAiSettings` - `ContentPacks` - `CampaignOwnership` Each one's feature already has a new home. - **OwnershipNotices:** Accept and Decline are now on This week's offer banner. - **Routing:** `/campaigns/:id/manage` redirects to `/wiki/party`, and every link that pointed at `/manage` has been updated. - **Contents:** "Quests & loot" is gone, replaced by Quests and The party. P1's wiki groups get their icons back (a group id mismatch). ## Not built: no server for these - **A quest's own page and editing** (status, objectives, arc, giver, reward; IS-100 to IS-104, PR-077). No route can read or change a quest's status today, so a quest opens as an article. The old QuestLog was read-only too. - **Grouping by arc, main quests first:** the response has no arc and no main flag. - **Confirm as quest / Not canon** (IS-155). - **Allies and enemies** (IS-117) and **party level** (IS-115). - **An NPC or place as holder, "Make it a page", and setting the home base:** these need a page picker. ## Owner questions (on the morning page) - Should XP awards be GM-only? Recommended: yes. - Should quests get a PATCH route for status and details, plus an editor? Recommended: yes. ## Checks - **vitest:** 2652 passed. **eslint:** 0 errors. - **Coverage:** lane6b and lane6d both print "unclassified: none". - **Real-stack render:** Playwright ran at 390×844 and 1440×900, light and dark, as Dana and Priya, with `scrollWidth ≤ innerWidth` on all 16 shots. I reviewed them myself. - **Changelog:** a `changelog.d/` fragment. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(webapp): the party's gold totals are per coin, never sp and gp added together (#734)
All checks were successful
CI / Bot/backend version sync (pull_request) Successful in 34s
CI / Feedback site tests (pull_request) Successful in 49s
CI / Does this change touch the recording path? (pull_request) Successful in 20s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Backend lint (ruff) (pull_request) Successful in 1m16s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 2m4s
CI / Docker image build (pull_request) Successful in 2m35s
CI / Bot tests and audit (pull_request) Successful in 3m34s
CI / Backend migration, tests, and audit (pull_request) Successful in 19m11s
CI / Frontend tests, audit, and build (pull_request) Successful in 20m14s
CI / End-to-end journeys (desktop, phone, keyboard-only) (pull_request) Successful in 18m9s
0d664e027b
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No description provided.