Shell backfill — the last of the audit's gaps (#659, #696) #705

Closed
claude-bot wants to merge 0 commits from feat/shell-backfill into main
Collaborator

This is part 3 of step 3 in #696: the shell. It closes step 3.

Coverage

coverage/lane1.py classifies 59 placements, none missing (SH-1 to SH-6, SH-8, SH-9; SH-7 belongs to lane 2c):

Classification Count
Drawn 40
Replaced 8
Behaviour 9
Elsewhere 1
Deferred 1

The audit had found 7 missing and 5 half-drawn. Two of those were drawn later in other lanes: IS-310 in lane 2b and IS-309 in lane 4. All five coverage scripts pass.

What is drawn

  • SH-2: the Contents on Home with one campaign, and with none (SH-018, SH-019).
  • SH-5: marking a single notification read (IS-160). The check is always visible, because a phone has no hover.
  • SH-8 (on lane 2's page):
    • The owner's own pending offer (CA-007).
    • A lapsed plan, as the owner, a GM and a player see it (IS-193).
    • Accepting… on an offer (CA-006) and Restoring… on an archive (CA-009).
  • SH-1: the old "← Campaigns" link (CA-001) is accounted for. The wordmark goes Home, and every campaign's Contents ends with "All campaigns".

Found while drawing

The lapsed-plan banner told everyone "you can export it at any time", but a player can't. A player is now told who can renew it, and only a GM gets the Export action.

Checks

  • Rendered in both themes.
  • The feedback-site tests pass (101).

🤖 Generated with Claude Code

This is part 3 of step 3 in #696: the shell. It closes step 3. ## Coverage `coverage/lane1.py` classifies **59 placements, none missing** (SH-1 to SH-6, SH-8, SH-9; SH-7 belongs to lane 2c): | Classification | Count | |---|---| | Drawn | 40 | | Replaced | 8 | | Behaviour | 9 | | Elsewhere | 1 | | Deferred | 1 | The audit had found 7 missing and 5 half-drawn. Two of those were drawn later in other lanes: `IS-310` in lane 2b and `IS-309` in lane 4. All five coverage scripts pass. ## What is drawn - **SH-2:** the Contents on Home with one campaign, and with none (`SH-018`, `SH-019`). - **SH-5:** marking a single notification read (`IS-160`). The check is always visible, because a phone has no hover. - **SH-8** (on lane 2's page): - The owner's own pending offer (`CA-007`). - A lapsed plan, as the owner, a GM and a player see it (`IS-193`). - Accepting… on an offer (`CA-006`) and Restoring… on an archive (`CA-009`). - **SH-1:** the old "← Campaigns" link (`CA-001`) is accounted for. The wordmark goes Home, and every campaign's Contents ends with "All campaigns". ## Found while drawing The lapsed-plan banner told everyone "you can export it at any time", but a player can't. A player is now told who can renew it, and only a GM gets the Export action. ## Checks - Rendered in both themes. - The feedback-site tests pass (101). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(feedback-site): shell backfill — the last of the audit's gaps (#659, #696)
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 48s
CI / Feedback site tests (pull_request) Successful in 1m4s
CI / Bot/backend version sync (pull_request) Successful in 32s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m26s
CI / Frontend tests, audit, and build (pull_request) Successful in 3m24s
CI / Bot tests and audit (pull_request) Successful in 2m28s
CI / Docker image build (pull_request) Successful in 4m54s
CI / Backend migration, tests, and audit (pull_request) Successful in 12m7s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 16m18s
7f6ebba746
The row-by-row audit found the shell had dropped 7 features and half-
drawn 5. Two were drawn since (IS-310 in lane 2b, IS-309 in lane 4);
coverage/lane1.py now classifies 59 placements with none missing (40
drawn, 8 replaced, 9 behaviour, 1 elsewhere, 1 deferred).

- SH-2: the Contents on Home with one campaign and with none.
- SH-5: an unread notification can be marked read on its own.
- SH-8 (lane 2's page): the owner's own pending offer, a lapsed plan
  for the owner, a GM and a player, and the busy states for accepting
  an offer and restoring an archive. The lapsed banner no longer tells
  a player they can export.
- SH-1: the old "← Campaigns" link is accounted for (the wordmark and
  the Contents' All campaigns).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
rbrooks closed this pull request 2026-09-19 19:07:14 +00:00
Author
Collaborator

Merged as 5eb5eb7 after CI passed on all jobs. It's deployed: all eight lane pages return 200 and the response volume is intact.

Merged as 5eb5eb7 after CI passed on all jobs. It's deployed: all eight lane pages return 200 and the response volume is intact.
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 48s
Required
Details
CI / Feedback site tests (pull_request) Successful in 1m4s
Required
Details
CI / Bot/backend version sync (pull_request) Successful in 32s
Required
Details
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m26s
Required
Details
CI / Frontend tests, audit, and build (pull_request) Successful in 3m24s
Required
Details
CI / Bot tests and audit (pull_request) Successful in 2m28s
Required
Details
CI / Docker image build (pull_request) Successful in 4m54s
Required
Details
CI / Backend migration, tests, and audit (pull_request) Successful in 12m7s
Required
Details
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 16m18s
Required
Details

Pull request closed

Sign in to join this conversation.
No description provided.