rdmsm4x-changelog-20260830-2117-ticketing-work-claim-leases
rdmsm4x — work-claim leases, atomic dequeue and plan queues in the fleet ticket engine
When: 2026-08-30 20:51 → 21:20 EDT · Host: rdmsm4x · Session: claude (Opus 5)
One-line summary: the fleet ticket engine now has expiring work-claim
leases, an atomic work dequeue, advisory plan queues, cross-host handoff
through a single claim authority, two new ticket types
(decision, spike), and a fix for a
comment-serialisation defect that had fragmented 21 comments into
unparseable shards.
Files changed
| Path | What |
|---|---|
~/dev/issues/bin/ticket |
+1441 lines: ledger, 11 new subcommands, 2 new types, comment repair, store overrides |
~/dev/issues/bin/ticket-mcp |
+223 lines: 11 new MCP tools, updated type/status enums |
~/dev/issues/tests/test_claim_leases_and_plans.py |
new, 55 checks |
~/dev/issues/index.sqlite |
additive migration: 3 tables, 3 nullable columns; journal_mode delete → WAL |
~/.claude/skills/fleet-ticketing/SKILL.md |
new section 0 (claims), new types, new MCP tools |
Commits
(~/dev/issues, branch main, NOT pushed)
9cec73drestore three fixes a later edit silently reverted32d4190work-claim leases, atomic dequeue, advisory plan queues, decision/spike types5864a86file four findings from the ticketing-lease work
Backups — how to undo
~/dev/issues/.backups/index.sqlite.bak-20260830-2056~/dev/issues/.backups/ticket.bak-20260830-2056~/dev/issues/.backups/ticket-mcp.bak-20260830-2056~/.claude/skills/fleet-ticketing/SKILL.mdbackup in this session's scratchpad only
To roll back:
git -C ~/dev/issues revert 5864a86 32d4190 9cec73d and
restore index.sqlite from the backup above. The schema
migration is additive, so an older bin/ticket runs against
the migrated index unchanged.
Verification evidence
tests/test_claim_leases_and_plans.py— 55/55 checks passtest_e2e_adversarial_suite.py89/89 ·test_fts5_queries.py77/77 ·test_stale_index_resolve.py3/3 ·test_concurrent_locks.pypass ·test_adversarial_suite.pyAPPROVEtest_jsonrpc_stdio.py20/27 — identical before and after; pre-existingticket-mcpdefects, filed as ISSUE-20260830-40- All 107 live ticket files parse and round-trip with zero mismatches
pragma integrity_checkok, 111 rows- Demonstrated live: concurrent claim (one winner), heartbeat, expiry,
recorded steal, six-way concurrent
nextwith no double assignment, cross-host claim over real ssh, fail-closed on an unreachable authority
Outstanding owner actions
- DEC-20260830-01 — how to reconcile 378 tickets on rdmbair15m5 against 107 here. The claim ledger is fleet-wide; the ticket corpus still diverges.
- ISSUE-20260830-39 — a peer edit silently reverted a
data-loss fix in
bin/ticket. Process problem, not covered by ticket-level leases. - ISSUE-20260830-41 — generated ticket HTML loads
mermaid from two CDNs, against the self-contained rule in
apps/CLAUDE.md§10. - Other fleet hosts still run the old
bin/ticket; they will proxy claims here only after they receive this version.
No secrets were written to any file in this change.