fix(skills): provide isolated agent runtime access - #1228
Closed
wen2zhou wants to merge 1 commit into
Closed
Conversation
Materialize complete Skill packages from protected sources into normalized Agent runtime projections without changing source permissions. Preserve file content and executable modes in compatibility identity, reject symlinks and unsafe paths, and keep generated Connector and Compute documents in the same framework-neutral catalog contract. Give every backend generation and delegated attempt a private, disposable projection with its own temporary and cache directories. Rebuild forks from validated source metadata instead of exposed parent paths, fail closed when package sources change, redirect Python, Node, and R runtime state away from Skill packages, and remove only the owning lease while preserving rollback-era runtime trees. Project the same secret-free runtime view through Claude Code, Codex, and OpenCode while retaining native Skill discovery, ordinary file reads, and ordinary script execution. Rebind every framework-native discovery surface for delegated attempts, including OpenCode config content and writable config homes, and retire generations after dynamic catalog changes. Stop new sessions from rewriting rollback-owned stable Skill catalogs. Restrict Claude to runtime plugin Skills, isolate OpenCode config while preserving its stable auth data, and disable the Codex legacy Skill documents present at process startup without changing CODEX_HOME authentication or session ownership. The accepted V1 boundary leaves only the documented race where a concurrently running rollback release creates a new Codex legacy Skill after startup. Keep persistent data rollback-safe through the separate v2 compatibility cache and legacy projection behavior. Harden the pinned Codex ACP patches, avoid Claude unsupported plugin flags, and cover lifecycle, concurrency, source integrity, cleanup, cache location, framework rebasing, legacy suppression, and real script execution. This first release intentionally keeps Specialist sessions on the Main Agent catalog. Specialist-specific entitlements and Main-versus-Specialist Skill scope isolation are deferred to a separate runtime-ownership change.
wen2zhou
marked this pull request as draft
August 14, 2026 14:08
wen2zhou
marked this pull request as ready for review
August 14, 2026 14:22
wen2zhou
marked this pull request as draft
August 14, 2026 14:22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Agent frameworks can discover Open Science Skills whose source packages live in the protected configuration tree, but their ordinary Read/Bash tools cannot reliably read package references/assets or execute package scripts there. Script runtimes can also try to write caches such as Python bytecode into the protected package. Claude Code, Codex, and OpenCode expose different native discovery surfaces, and delegated attempts previously had no single application-owned runtime contract.
Proposed change
SkillRuntimeViewthrough Claude Code, Codex, and OpenCode while preserving each framework's native Skill invocation flow.runtime-support/connector-skills-v1; new production paths no longer read or write framework rollback catalogs.Scope and non-goals
Acceptance criteria and validation
All listed checks ran after the final material edit and after rebasing onto
origin/main.npm run test:affected:explain -- --base origin/main --head HEAD→ full fallback selected because global impact manifests changed and the implementation crosses Settings, ACP, framework adapters, Connector, and Compute ownership.npm run typecheck→ passed.npm run lint→ passed with 0 errors and 10 pre-existing unrelated warnings.npm test→ 1,021 files passed, 14 skipped; 15,101 tests passed, 210 skipped.git diff --check origin/main...HEAD→ passed.No UI E2E lane was run locally because this change does not alter a renderer journey; the full portable suite covers the changed main-process interfaces and framework configuration contracts. Cross-platform packaging remains CI/Nightly authority.
Review focus