Live implementations idle more than 65 minutes stop blocking a schema bump #902

Open
opened 2026-10-02 14:19:11 +00:00 by jared · 0 comments
Owner

Problem

A live implementation that nobody touches for a long time still blocks a schema bump. Anthropic's prompt cache expires after 60 minutes, so a run untouched for 65 minutes would be reopened in a new session anyway. This is a user-directed proposal (2026-10-02). Parent: none.

Observed

On 2026-10-02 rows 4 (#873) and 7 (#874) were idle for about 17 hours, and both tickets were shipped. They blocked the schema 29->30 bump until the schema-29 CLI from fd67fb7a abandoned them.
Related gap: the abandon CLI merged together with a bump cannot open the old-schema DB. Live rows must be cleared before the bump merges.

Reproduce

n/a: design ticket. The evidence is rows 4 and 7 on 2026-10-02.

Approach

Option A (the default offered to the user). Only the stale-schema refusal (Db.live_row? and refuse_replacement! in plugins/os-sdlc/lib/os_sdlc/adapter/db.rb) changes.

  1. Db.live_row? treats a row as live only if its newest write is under 65 minutes old. Newest write covers the implementation, its dispatches' start and stop, and gate steps, not only implementations.updated_at.
  2. refuse_replacement! stamps idle rows abandoned_at before it archives, so the archive shows why.

Orchestrator work: an ADR that amends ADR-0155.

Rejected: option B, stamping all sessions' idle rows at every implementation-open — wider than the evidence needs.

Origin

  • Trigger: schema 29->30 bump blocked by idle rows 4 and 7 on 2026-10-02.
  • Improvised this session: abandoned both rows with the schema-29 CLI from fd67fb7a.
  • Chain: bump blocked ← idle shipped rows count as live ← Db.live_row? uses only implementations.updated_at. Stops at DESIGN (ADR-0155).
  • Root candidate: none
  • Where: plugins/os-sdlc/lib/os_sdlc/adapter/db.rb
  • Session: 616e6f92-69d9-4a00-bf30-33a77404deb3
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-ticket-880/616e6f92-69d9-4a00-bf30-33a77404deb3.jsonl
## Problem A live implementation that nobody touches for a long time still blocks a schema bump. Anthropic's prompt cache expires after 60 minutes, so a run untouched for 65 minutes would be reopened in a new session anyway. This is a user-directed proposal (2026-10-02). Parent: none. ## Observed On 2026-10-02 rows 4 (#873) and 7 (#874) were idle for about 17 hours, and both tickets were shipped. They blocked the schema 29->30 bump until the schema-29 CLI from fd67fb7a abandoned them. Related gap: the abandon CLI merged together with a bump cannot open the old-schema DB. Live rows must be cleared before the bump merges. ## Reproduce n/a: design ticket. The evidence is rows 4 and 7 on 2026-10-02. ## Approach Option A (the default offered to the user). Only the stale-schema refusal (`Db.live_row?` and `refuse_replacement!` in plugins/os-sdlc/lib/os_sdlc/adapter/db.rb) changes. 1. `Db.live_row?` treats a row as live only if its newest write is under 65 minutes old. Newest write covers the implementation, its dispatches' start and stop, and gate steps, not only `implementations.updated_at`. 2. `refuse_replacement!` stamps idle rows `abandoned_at` before it archives, so the archive shows why. Orchestrator work: an ADR that amends ADR-0155. Rejected: option B, stamping all sessions' idle rows at every implementation-open — wider than the evidence needs. ## Origin - Trigger: schema 29->30 bump blocked by idle rows 4 and 7 on 2026-10-02. - Improvised this session: abandoned both rows with the schema-29 CLI from fd67fb7a. - Chain: bump blocked ← idle shipped rows count as live ← `Db.live_row?` uses only implementations.updated_at. Stops at DESIGN (ADR-0155). - Root candidate: none - Where: plugins/os-sdlc/lib/os_sdlc/adapter/db.rb - Session: 616e6f92-69d9-4a00-bf30-33a77404deb3 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-ticket-880/616e6f92-69d9-4a00-bf30-33a77404deb3.jsonl
Sign in to join this conversation.
No milestone
No project
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
jared/cc-os#902
No description provided.