Skip to content

Clear staging an earlier launch abandoned - #116

Merged
micahflee merged 1 commit into
mainfrom
clear-abandoned-archive-staging
Sep 13, 2026
Merged

micahflee merged 1 commit into
mainfrom
clear-abandoned-archive-staging

Conversation

@micahflee

Copy link
Copy Markdown
Member

Found by looking at the test device after #115 went in: four prepared staging directories under archive-intake, 2.6 MiB each — one per import that was interrupted rather than cancelled.

Intake keeps a verified partial extraction on purpose, so an import the operating system kills can be picked up instead of started over (ADR 0006). #95 built the other half of that policy — listResumableBlueskyArchiveIntakes, which reports what is resumable and destroys staging too damaged to be — and nothing has ever called it. That is the same gap #97 closed for the import entry point itself, one layer down. So what the policy actually produced was debris: a directory the size of the archive being read, per interrupted import, kept until the app is uninstalled.

Starting an import now sweeps them. It is the only thing that creates them, the person is right there, and anything still in flight belongs to a generation that one has already moved past. The day something offers to resume an interrupted import rather than only preserving it, this is what that replaces.

Cancelling an import already cleared its own staging, and still does; this is only about the launches that never got to cancel anything. A sweep that throws is warned about rather than failing the import, since debris nobody can see is not worth refusing to import over.

use-bluesky-archive-import.test.ts covers both kinds of leftover: staging with a readable checkpoint, and staging with nothing in it at all.

(This was written by an LLM.)

🤖 Generated with Claude Code

Four prepared staging directories were sitting on the test device, 2.6 MiB
each, left by imports that were interrupted rather than cancelled.

Intake keeps a verified partial extraction on purpose, so an import the
operating system kills can be picked up instead of started over (ADR 0006).
#95 built the other half of that — `listResumableBlueskyArchiveIntakes`, which
reports what is resumable and destroys staging too damaged to be — and nothing
has ever called it, which is the same gap this branch exists to close for the
import entry point itself. So the policy produced only debris: a directory the
size of the archive being read, per interrupted import, kept until the app is
uninstalled.

Starting an import sweeps them. It is the only thing that creates them, the
person is right there, and anything still in flight belongs to a generation
that one has already moved past. The day something offers to resume an import,
this is what it replaces.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@micahflee
micahflee merged commit 03db394 into main Sep 13, 2026
1 check passed
@micahflee
micahflee deleted the clear-abandoned-archive-staging branch September 13, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant