fix(stagecraft): work-item page follow-ups: since after a hold ends, Scenario copy only when the journal grows, timeline follows, tickets checked by tracker kind (swamp-club #2956) #448

Merged
seth merged 2 commits from cue/2956-stagecraft-studio-work into main 2026-10-02 19:53:51 +00:00
Owner

Follow-ups to the studio work-item page from the #2944 reviews (swamp-club #2956).

  • Waiting since: when a later awaiting event of the stage entry holds nothing, "since" is the time the hold ended, not the earlier hold's. A cooldown not lifted yet still leaves it as it was.
  • Scenario tab: the copy is keyed on the run's key and journal length (the page's when asked, and the payload read's own), so a live re-read that leaves the journal as it was no longer re-fetches ?payloads=1 and replays. It says when the copy is of a newer read than the page shows. Only the latest ask writes, so a late answer to an earlier one cannot leave the tab on "Replaying the run…".
  • Timeline: the active entry follows new entries when it is on the last one, and stays where you put it otherwise.
  • Ticket reads: issueRecord and the Ticket tab's readTicket count a tracker record only when its tracker is the run's tracker kind, as readRun checks the key. Test fixtures that put the instance name there now put the kind.
  • REFERENCE.md and DESIGN.md updated; studio bundle rebuilt.

Checked in headless Chromium against the real bundle with a growing journal: payload reads stay at 1 over two same-journal re-reads (old bundle: 3) and go to 2 when the journal grows; the timeline follows from the last entry and stays after moving up.

Non-blocking review notes are filed as swamp-club #2991.

Verified: verify-build 10290169-bad6-4b64-978b-09f4854ddb9a, verify-reviews ad508d84-1cb7-416f-9eb7-2821467482bf (both passed), attestation 9a470508-970e-4a1a-8e26-dce94de7113c for bc9251aec.

🤖 Generated with Claude Code

Follow-ups to the studio work-item page from the #2944 reviews (swamp-club #2956). - **Waiting since**: when a later awaiting event of the stage entry holds nothing, "since" is the time the hold ended, not the earlier hold's. A cooldown not lifted yet still leaves it as it was. - **Scenario tab**: the copy is keyed on the run's key and journal length (the page's when asked, and the payload read's own), so a live re-read that leaves the journal as it was no longer re-fetches `?payloads=1` and replays. It says when the copy is of a newer read than the page shows. Only the latest ask writes, so a late answer to an earlier one cannot leave the tab on "Replaying the run…". - **Timeline**: the active entry follows new entries when it is on the last one, and stays where you put it otherwise. - **Ticket reads**: `issueRecord` and the Ticket tab's `readTicket` count a tracker record only when its `tracker` is the run's tracker kind, as `readRun` checks the key. Test fixtures that put the instance name there now put the kind. - REFERENCE.md and DESIGN.md updated; studio bundle rebuilt. Checked in headless Chromium against the real bundle with a growing journal: payload reads stay at 1 over two same-journal re-reads (old bundle: 3) and go to 2 when the journal grows; the timeline follows from the last entry and stays after moving up. Non-blocking review notes are filed as swamp-club #2991. Verified: verify-build `10290169-bad6-4b64-978b-09f4854ddb9a`, verify-reviews `ad508d84-1cb7-416f-9eb7-2821467482bf` (both passed), attestation `9a470508-970e-4a1a-8e26-dce94de7113c` for bc9251aec. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- waiting().since is the time a hold ended when a later awaiting event of
  the stage entry holds nothing, not the earlier hold's.
- The Scenario tab's copy is keyed on the run's key and journal length (the
  page's when asked, and the payload read's own), so a live re-read that
  leaves the journal as it was no longer re-fetches payloads and replays;
  it says when the copy is of a newer read than the page shows.
- The Timeline's active entry follows new entries when it is on the last.
- issueRecord and readTicket count a tracker record only when its tracker
  is the run's tracker kind, as readRun checks the key.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(stagecraft): only the latest Scenario copy ask writes, so a late answer cannot leave the tab replaying (swamp-club #2956)
All checks were successful
CI / Validate Attestation (pull_request) Successful in 1m53s
CI / Review Integrity (pull_request) Successful in 2m17s
bc9251aec1
Both verification reviews found that two overlapping prepareItemCopy calls
could finish out of order: the earlier one wrote a copy of a run the page
had moved past, and the tab stayed on "Replaying the run" until the journal
grew again. Each ask now takes a number and only the latest writes. Also
rewraps the REFERENCE.md paragraph.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seth force-pushed cue/2956-stagecraft-studio-work from bc9251aec1
All checks were successful
CI / Validate Attestation (pull_request) Successful in 1m53s
CI / Review Integrity (pull_request) Successful in 2m17s
to 1d308bad63
All checks were successful
CI / Review Integrity (pull_request) Successful in 46s
CI / Validate Attestation (pull_request) Successful in 48s
2026-10-02 19:51:34 +00:00
Compare
seth merged commit 0d2016321b into main 2026-10-02 19:53:51 +00:00
seth deleted branch cue/2956-stagecraft-studio-work 2026-10-02 19:53:51 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
swamp-club/swamp-extensions!448
No description provided.