Skip to content

feat: safely retire excluded skill aliases - #9

Merged
leojkwan merged 1 commit into
mainfrom
codex/skillbox-product-exclusions-20260816
Aug 16, 2026
Merged

feat: safely retire excluded skill aliases#9
leojkwan merged 1 commit into
mainfrom
codex/skillbox-product-exclusions-20260816

Conversation

@leojkwan

@leojkwan leojkwan commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

Skillbox sources can now declare exclude = ["legacy-alias"]. Excluded leaves stop resolving, cannot be added, and stay absent after a future sync.

skillbox retire <name> --source <id> safely parks existing runtime links only when they still point at the selected archived source leaf. It refuses a foreign link, a real file, or a lower-priority active source that would otherwise take the name over.

Retirement is capture-first: it uses the platform no-replace rename primitive, anchors the runtime root and recovery journal with directory FDs, and refuses to print a recovery path if either named directory changes mid-operation. Normal Skillbox mutations take one cooperative lock before loading the manifest, so a stale sync cannot remount a just-retired alias.

Why

We need to retire product-specific compatibility aliases without deleting their archived source folders or letting skillbox sync bring them back across Cursor, Codex, and Claude.

Validation

  • bash tests/run_all.sh — 19 hermetic test files green
  • Python 3.11 and current Python unit suites green locally
  • CI green on Ubuntu 3.11 / 3.12 and macOS 3.12; CodeQL green
  • Race regressions cover foreign links, occupied recovery destinations, source replacement, recovery-journal replacement, runtime-root replacement, relative links, and stale-sync prevention
  • git diff --check

@leojkwan
leojkwan force-pushed the codex/skillbox-product-exclusions-20260816 branch 2 times, most recently from 10e26af to 61441c3 Compare August 16, 2026 09:35
@leojkwan
leojkwan force-pushed the codex/skillbox-product-exclusions-20260816 branch from 61441c3 to d3fbc47 Compare August 16, 2026 09:36
@leojkwan
leojkwan marked this pull request as ready for review August 16, 2026 09:38
@leojkwan
leojkwan merged commit 8820b46 into main Aug 16, 2026
11 checks passed

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. Cursor Bugbot was not running after the first check poll, and no approval policy or remaining signal required human review. No reviewers were assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

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