#717: orphan space folders gain Take over and deactivate #718

Merged
Cordy merged 8 commits from feat-717 into main 2026-09-24 04:32:06 +00:00
Owner

Closes #717

An orphan row ("Folder in storage — no managing group found", from #715) has no spacestore record, so the existing lifecycle endpoints would 404 — which is why its menu offered only Details.

Fix (UI only): the orphan menu gains "Take over and deactivate" (danger item): it claims the folder through the normal POST /api/v1/spaces (record owned by the acting admin; the directory already exists, so the best-effort Mkdir is a no-op) and immediately runs the standard deactivate. On reload the row is a regular app-owned space — Reactivate or the type-the-name Delete (contents to Deleted files, name tombstoned) apply as usual. A tombstoned name surfaces the existing "reserved" refusal via the server message; IdP-verified managed rows stay Details-only.

Tests: web/test/qa717.test.js (orphan branch, claim-then-deactivate sequence, i18n ×4 for spcTakeOver).

Closes #717 An orphan row ("Folder in storage — no managing group found", from #715) has no spacestore record, so the existing lifecycle endpoints would 404 — which is why its menu offered only Details. **Fix (UI only):** the orphan menu gains **"Take over and deactivate"** (danger item): it claims the folder through the normal `POST /api/v1/spaces` (record owned by the acting admin; the directory already exists, so the best-effort Mkdir is a no-op) and immediately runs the standard deactivate. On reload the row is a regular app-owned space — Reactivate or the type-the-name Delete (contents to Deleted files, name tombstoned) apply as usual. A tombstoned name surfaces the existing "reserved" refusal via the server message; IdP-verified managed rows stay Details-only. **Tests:** `web/test/qa717.test.js` (orphan branch, claim-then-deactivate sequence, i18n ×4 for `spcTakeOver`).
scout(#717): spcAct semantics, api() error behavior, current managed-guard in spcMenuEl
All checks were successful
scout-717 / scout (push) Successful in 1s
d68556d4c3
test(#717): RED - orphan rows offer take-over-and-deactivate
All checks were successful
scout-717 / scout (push) Successful in 1s
0fe9480a95
splice(#717): orphan take-over-and-deactivate menu action
All checks were successful
scout-717 / scout (push) Successful in 1s
874db5a0d0
one-shot(#717): RED gate, splice, web checks, self-cleaning commit
All checks were successful
fix-717 / fix (push) Successful in 11s
scout-717 / scout (push) Successful in 1s
c8716ccc10
An orphan row has no spacestore record, so lifecycle endpoints would 404. The menu action claims the folder through the normal create API (owner = acting admin) and immediately deactivates it; the standard Reactivate / type-the-name Delete lifecycle applies from there. IdP-verified managed rows stay Details-only. i18n x4.
one-shot: apply v0.6.265 changelog entry, self-remove
All checks were successful
chg-265 / chg (push) Successful in 6s
5efac07452
docs: changelog for v0.6.265 (#717 orphan take-over)
All checks were successful
ci / test-and-build (pull_request) Successful in 1m16s
3f4fbf6ac9
Cordy merged commit 28cfebd577 into main 2026-09-24 04:32:06 +00:00
Cordy deleted branch feat-717 2026-09-24 04:32:09 +00:00
Sign in to join this conversation.
No reviewers
No labels
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: Cordy/Cairn#718
No description provided.