os-sdlc: .sdlc/tickets/<n> vanished before teardown -- archiver crashed on ENOENT #269

Closed
opened 2026-08-04 19:11:54 +00:00 by jared · 3 comments
Owner

During ticket #263's run, the worktree's .sdlc/tickets/263/ (artifact.yml, ticket.txt, review.txt) disappeared between the last gate run and teardown; no 263 dir existed anywhere under .sdlc/ afterward. First teardown attempt crashed in WorkspaceTicketArchiver#preserve_ticket_dir (FileUtils.cp_r realpath ENOENT on the missing source). Nothing in the session deleted it explicitly (workspace-housekeeping cleans .sdlc/tmp only; one lint-fixer disclosed an accidental git checkout, which shouldn't touch ignored .sdlc/ content). Two threads: (1) find what deletes the tickets dir; (2) archiver should degrade gracefully (skip + warn) when the ticket dir is absent instead of crashing.

During ticket #263's run, the worktree's .sdlc/tickets/263/ (artifact.yml, ticket.txt, review.txt) disappeared between the last gate run and teardown; no *263* dir existed anywhere under .sdlc/ afterward. First teardown attempt crashed in WorkspaceTicketArchiver#preserve_ticket_dir (FileUtils.cp_r realpath ENOENT on the missing source). Nothing in the session deleted it explicitly (workspace-housekeeping cleans .sdlc/tmp only; one lint-fixer disclosed an accidental git checkout, which shouldn't touch ignored .sdlc/ content). Two threads: (1) find what deletes the tickets dir; (2) archiver should degrade gracefully (skip + warn) when the ticket dir is absent instead of crashing.
Author
Owner

Triage: current WorkspaceTicketArchiver#archivable_ticket_dir already guards with File.directory?(source), returning nil so #archive no-ops instead of crashing (thread 2 addressed). Thread 1 (what deletes .sdlc/tickets/N) remains uninvestigated -- leaving open.

Triage: current WorkspaceTicketArchiver#archivable_ticket_dir already guards with File.directory?(source), returning nil so #archive no-ops instead of crashing (thread 2 addressed). Thread 1 (what deletes .sdlc/tickets/N) remains uninvestigated -- leaving open.
Author
Owner

Frozen in the 2026-08-16 backlog reset — see #419 for the expiry procedure. Do not work unless a live run rediscovers this issue.

Frozen in the 2026-08-16 backlog reset — see #419 for the expiry procedure. Do not work unless a live run rediscovers this issue.
Author
Owner

Resolution

Done: Sweep 2026-10-10 (ruled 2026-10-12): problem absent or no longer applies. history.txt:12231 lists the commit (2026-09-04, prune stepper-era verbs and files, phase 1); line 12275 lists plugins/os-sdlc/lib/os_sdlc/workspace_ticket_archiver.rb among its changed files. It is the newest listing of that file,

Evidence: docs/takedown/269-20261010-110111 : history.txt:12231 lists the commit (2026-09-04, prune stepper-era verbs and files, phase 1); line 12275 lists plugins/os-sdlc/lib/os_sdlc/workspace_ticket_archiver.rb among its changed files. It is the newest listing of that file, and the file is absent from the tree afterward.

Follow-ups: none

## Resolution **Done:** Sweep 2026-10-10 (ruled 2026-10-12): problem absent or no longer applies. history.txt:12231 lists the commit (2026-09-04, prune stepper-era verbs and files, phase 1); line 12275 lists plugins/os-sdlc/lib/os_sdlc/workspace_ticket_archiver.rb among its changed files. It is the newest listing of that file, **Evidence:** docs/takedown/269-20261010-110111 : history.txt:12231 lists the commit (2026-09-04, prune stepper-era verbs and files, phase 1); line 12275 lists plugins/os-sdlc/lib/os_sdlc/workspace_ticket_archiver.rb among its changed files. It is the newest listing of that file, and the file is absent from the tree afterward. **Follow-ups:** none
jared closed this issue 2026-10-12 13:40:21 +00:00
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#269
No description provided.