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

Open
opened 2026-08-04 19:11:54 +00:00 by jared · 2 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.
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.