Org transfer: purge old-org residue a slot

Task 7286 · Done · Coder · created · updated

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.

Pull request

Artifacts

Activity

  • Created
  • Run
  • Runner started
  • Runner ended (done)