Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Owner
Author
This branch was successfully deployed
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.
Isolated mode fixes two limitations: root sessions previously shared mutable core state, and process-wide services could route children or permissions across conversations. Set
PENGUIN_ACP_ISOLATED_SESSIONS=1to give each root its own Core, Engine, ConversationManager, ToolManager, model/API state, event buses, MessageBus, child registry, approval/question managers and HTTP pools. The serialized default is unchanged.Different-root prompts overlap; same-root turns still serialize. Runtime creation is serialized and bounded at 16 roots plus a catalog. Idle close releases runtime resources and retains disk history. Roots with unresolved background processes retain ownership. Native and legacy child tools share the same per-root registry. Capture callbacks and legacy worker threads explicitly preserve their originating context.
The shared in-process Python notebook tool is hidden and rejected in isolated mode because it changes process cwd/stdout and uses a global IPython shell. Agents can run Python through
execute_commandsubprocesses instead. This is cooperative request isolation, not a hostile-code sandbox or cross-process database transaction guarantee.Validation at head eb86edf: 253 selected tests passed on native Windows Python 3.11.14, no skips; scoped Ruff and diff checks passed. Coverage includes actual Core/Engine construction, real stdio concurrent-prompt barrier, native writes, model/cancel/close/history isolation, native and legacy same-named children, messages and allow/deny routing, native pipe callbacks after parent completion, worker context, bounded cleanup, and existing default/global-service contracts. Providers were deterministic. Both checked-out configurations lacked usable provider credentials; no credentials were copied and no live model request was made. All GitHub CI checks passed on this head across the ACP OS/Python matrix, native processes, storage, and broader contracts; CodeRabbit's automated review was skipped.
Base
stack/acp-isolation-basecombines draft #159 with latest #146 (f90f5cc2) and #158 (c3475312) follow-ups. No pull requests were merged. The complete feature/limit audit and preceding dependency sequence are incontext/tasks/acp.md.