Org transfer: purge old-org residue a slot
This came out of task 7230's security review. When a node or project moves to another org, the slot erase (apps/jaahd/worktree_ops.py `worktree_erase`) removes each tree, its compose stack and its Claude scratch. Some old-org data still stays readable by the new org's runner, which runs as the same session uid:
- `/tmp/cockpit-task-{reports,attachments,inputs}/task-<old id>`, kept for up to 24h by `slot_residue.STALE_SECONDS`.
- `/tmp/pytest-of-<user>` runs.
- Pulled images that are not labelled with a compose project, and the BuildKit cache.
- `~/.npm` and the `~/.cache/ms-playwright*` caches, which may hold private-package tarballs.
Requirements:
- A transfer-only node step purges all of the above immediately.
- The task-dir held set must come from the new org only.
Out of scope: the ordinary erase and sweep path, and disk caps.
Done means:
- A test runs a node transfer and then shows that none of the listed paths or images remain.
- `./dc check quick` is green.
Outcome
A node move now runs a transfer-only node purge (org_transfer_purge) before the fence lifts: old task dirs, pytest runs, npm/Playwright caches, non-new-org images, BuildKit cache; held set is new org only. Quick gate green; full gate run by the merge lane. PR #5974 merged; its deploy was superseded. Follow-up draft #7324.
Artifacts
Activity
- Created
- Run
- Runner started
- Runner ended (done)