Skip to content

fix(sandbox): preserve workspace-local Skill symlinks - #155

Merged
norberia merged 1 commit into
mainfrom
codex/preserve-workspace-skill-symlinks
Sep 10, 2026
Merged

norberia merged 1 commit into
mainfrom
codex/preserve-workspace-skill-symlinks

Conversation

@norberia

Copy link
Copy Markdown
Collaborator

Deploying repositories such as actualbudget/actual fails during Skill preparation because their .agents/skills entries alias directories under .claude/skills. The preparer applies the image bundle's no-symlinks rule to these repository-owned files and aborts before agent execution.

This change validates repository Skill links separately and preserves their original link text during staging. Links must resolve within the workspace; dangling links, link/directory cycles, special files and symlinked roots remain rejected. Image bundle integrity checks remain unchanged. Replacing a same-named bundled Skill removes only the alias, leaving its repository destination intact.

Recovery scans transaction contents without following links, restores the backup to its live location and validates destinations before preparing again. This avoids resolving relative aliases from temporary stage/backup paths. Regression coverage includes Actual-style aliases, nested escapes, repeated preparation, replacement, legacy recovery and SIGKILL after backup/publication.

Validation:

  • node --test base-images/frameworks/sandbox/v1/skill-bundle*.test.mjs — 29 passed.
  • node base-images/frameworks/sandbox/v1/verify-pinned-source.mjs — passed against the existing pinned Skills revision; 3 Skills / 13 files.
  • git diff --check — passed.

No image build/publication, Skills revision update, or Brain configuration change is included. Container/production validation remains for the later image rollout.

@norberia
norberia requested a review from zjy365 September 10, 2026 06:58
@norberia
norberia force-pushed the codex/preserve-workspace-skill-symlinks branch from 7827d9e to c09d2d8 Compare September 10, 2026 07:13
@norberia
norberia merged commit e1afd3c into main Sep 10, 2026
10 checks passed
@norberia
norberia deleted the codex/preserve-workspace-skill-symlinks branch September 10, 2026 08:28
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.

2 participants