Skip to content

feat(acp): unify provider run workspaces#50

Merged
jomeswang merged 7 commits into
mainfrom
agent/provider-runtime-home
Jul 17, 2026
Merged

feat(acp): unify provider run workspaces#50
jomeswang merged 7 commits into
mainfrom
agent/provider-runtime-home

Conversation

@jomeswang

@jomeswang jomeswang commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

What

  • add a shared, atomic run-workspace lifecycle for provider-generated temporary files
  • materialize selected skills for every Generic ACP provider under runtime TMPDIR
  • deliver prompt-injected and project-instruction skills consistently to Cursor, OpenCode, and all ACP presets
  • isolate Generic ACP child TMPDIR/TEMP/TMP below the run root and clean provider logs and scratch files
  • keep Generic ACP MCP delivery on ACP session/new without generated config duplication
  • align Claude, Codex, and Tutti Agent preparation, duplicate-run protection, adapter ownership, and cleanup
  • make the Codex project-root marker persistent and concurrency-safe instead of creating and deleting it per run
  • include the completed architecture and implementation plan

Why

Only Claude and the Codex-compatible providers previously had explicit run-scoped preparation. Generic ACP providers ignored skillManifest and could write provider scratch files directly into a shared temp location. Codex also performed avoidable cwd marker churn and lacked atomic duplicate preparation protection.

Impact

Formal application projects remain canonical in TUTTI_APP_DATA_DIR. Selected skills, generated provider configuration, logs, and scratch files live under the resolved runtime temp directory and are removed at run completion. Generic ACP providers retain their existing authentication HOME, so Cursor/OpenCode login state remains compatible.

Provider behavior

  • Claude: parallel skills and MCP preparation in a run root
  • Codex and Tutti Agent: isolated temporary provider Home with concurrent Home/skills preparation
  • Cursor, OpenCode, Devin, Hermes, Kimi, Kiro, Kilo, Mistral Vibe, Gemini, Qoder, and Qwen: Generic ACP run root, selected skills, isolated child temp, ACP-native MCP

Validation

  • full package suite: 31 files and 229 tests passed
  • typecheck and build passed
  • npm pack dry run passed
  • packed consumer verified with zero audit vulnerabilities
  • Cursor executable detection succeeded; real ACP run returned ACP_OK in 13.82 seconds
  • OpenCode executable detection succeeded; real ACP run returned ACP_OK in 10.08 seconds
  • both real runs left project cwd and runtime temp empty
  • one Cursor provider response exceeded a 45-second watchdog; retry completed successfully and timeout cleanup left no files
  • git diff --check passed

Plan

See plan/architecture-provider-run-workspace-1.md for requirements, storage boundaries, alternatives, implementation phases, risks, and the validation record.

  • standard ACP tool_call/tool_call_update sequences coalesce into one named call and one terminal result; verified live with Cursor and OpenCode

@jomeswang jomeswang changed the title perf(claude): isolate run preparation artifacts feat(acp): unify provider run workspaces Jul 17, 2026
@jomeswang
jomeswang marked this pull request as ready for review July 17, 2026 13:22
@jomeswang
jomeswang merged commit c77fab8 into main Jul 17, 2026
1 of 2 checks passed

@devin-ai-integration devin-ai-integration 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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 1 additional finding.

Open in Devin Review

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