Thanks to visit codestin.com
Credit goes to github.com

Skip to content

feat(coop): shared design-doc tool for coop mode#71

Open
ProKil wants to merge 1 commit into
mainfrom
feat/coop-shared-design-doc
Open

feat(coop): shared design-doc tool for coop mode#71
ProKil wants to merge 1 commit into
mainfrom
feat/coop-shared-design-doc

Conversation

@ProKil
Copy link
Copy Markdown
Member

@ProKil ProKil commented Jun 3, 2026

What

Adds a coop-only --shared-doc flag: both agents get a shared design document to agree on interfaces, file/symbol ownership, and data contracts while implementing different features in parallel. Framed as a design doc (not a scratchpad), and kept outside /workspace/repo so it never lands in the submitted patch.

How

  • mini_swe_agent_v2 — mount a per-run docker volume at /workspace/shared, pre-seed DESIGN.md (noclobber so the two concurrent agents don't clobber the seed), and add a prompt block in coop.yaml gated on shared_doc_enabled.
  • openhands_sdk — sandboxes are network-isolated (no shared docker volume), so the doc is backed by the existing shared Redis and exposed as design-show / design-note shell commands (layered into the -oh image). The design-doc prompt section is injected via coop_info. Writes are atomic appends, avoiding the lost-update problem a Modal Volume would have for concurrent writers.

Threading: cli --shared-doc → run() → execute_coop → _spawn_agent (config["shared_doc"]/["shared_volume"]) → adapters.

Eval (flash, coop+git, gemini-3-flash)

Both agents engaged the doc heavily. openhands+shared-doc scored 20% (10/50) vs mini_swe+shared-doc 10% (5/50).

Test

ruff, ruff format, mypy, and the full pytest suite (385 passed) all green.

🤖 Generated with Claude Code

Add a `--shared-doc` flag (coop-only) that gives both agents a shared
design document to agree on interfaces, file/symbol ownership, and data
contracts while building in parallel. It is framed as a design doc, not a
scratchpad, and lives outside /workspace/repo so it never enters the
submitted patch.

- mini_swe_agent_v2: mount a per-run docker volume at /workspace/shared,
  pre-seed DESIGN.md (noclobber so concurrent agents don't clobber), and
  add a prompt block in coop.yaml (gated on shared_doc_enabled).
- openhands_sdk: sandboxes are network-isolated, so back the doc with the
  existing shared Redis instead of a docker volume. Expose it as
  design-show / design-note shell commands (layered into the -oh image)
  and inject the design-doc prompt section via coop_info. Atomic appends
  avoid the lost-update problem a Modal Volume would have.

Threading: cli --shared-doc -> run() -> execute_coop -> _spawn_agent
(config["shared_doc"]/["shared_volume"]) -> adapters.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
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