Date: 2026-09-22
Status: execution plan for the Connector Control Plane
Primary architecture: Agent and Model Connector Control Plane
The project should move through two deliberately separate loops.
Use existing external and local agents to finish the IDKMesh product:
GitHub issue
-> bounded WorkUnit
-> Jules / OpenHands / local agent
-> candidate PR/artifacts
-> IDKMesh verification
-> human integration
This loop builds the connector/control-plane product itself.
Once Loop A is stable enough, use IDKMesh as the orchestration layer for another repository:
new application specification
-> IDKMesh project profile
-> backlog + WorkUnits
-> heterogeneous agents/models
-> candidate PRs
-> verification/evidence
-> human product decisions
-> releases
The second loop is the first meaningful product proof. The new application must not receive a special integration path that bypasses the same contracts used by IDKMesh itself.
Do not restart from zero.
Already available on current main:
WorkerAdapter;main required checks;idkmesh package whose existing gate-audit surface must remain dependency-free.Relevant live work:
The plan below should converge those efforts into one product surface instead of introducing parallel schedulers.
Live umbrella tracker: #570.
The architecture/API design is being reviewed in PR #571. Implementation should proceed as small PRs against the shared connector contract, in this order:
| Order | Issue | Deliverable | Dependency |
|---|---|---|---|
| 1 | #574 | connector kernel, profiles, probes, policy, routing | design contract |
| 2 | #575 | Jules REST agent connector | #574 |
| 2 | #576 | OpenAI-compatible model connector | #574 |
| 3 | #577 | bounded local agent runner | #574 + model path as needed |
| 3 | #578 | GitHub issue/webhook dispatch | #574 |
| 4 | #579 | candidate/PR -> canonical result evidence | remote/local candidate path |
| 5 | #580 | user-facing CLI + optional HTTP API | shared service/run state |
Do not begin by building a large frontend or adding many vendor-native drivers. The highest-leverage proof is one shared connector kernel supporting two materially different workers through the existing verification path.
Create one Connector Control Plane with four plugin boundaries:
All dispatch still terminates in existing canonical WorkUnit/result/verification semantics.
First implementation choices:
M0 architecture/API contract
|
v
M1 connector kernel + config + doctor
|
+-------------------------+
| |
v v
M2 Jules REST connector M3 model provider layer
| |
+------------+------------+
|
v
M4 bounded local agent runner
|
v
M5 GitHub issue/webhook dispatcher
|
v
M6 result/PR normalization + verification
|
v
M7 user-facing CLI + optional HTTP control service
|
v
M8 IDKMesh self-hosting pilot
|
v
M9 external/new-application pilot
|
v
M10 evidence-based expansion
M2 and M3 can proceed in parallel after M1.
interop/, Free Resource Mesh and verification layers.gate-audit dependency-free product remains unaffected;Without this, every new provider risks creating a provider-specific branch in the coordinator.
Implement the provider-neutral core before live providers.
Suggested package layout:
idkmesh/
connectors/
__init__.py
types.py
registry.py
policy.py
secrets.py
routing.py
errors.py
control/
service.py
store.py
Do not assume the exact filenames are permanent; the boundary is more important than names.
secret_ref schemes;idkmesh connections list
idkmesh connections validate <profile>
idkmesh connections probe
idkmesh doctor
A fake connector can pass the complete configure -> probe -> route lifecycle.
Jules is the first real remote connector because:
Current primary references:
Driver:
agent/jules
JULES_API_KEY referenced via secret resolver;requirePlanApproval=true;Mock the HTTP boundary and cover:
One low-risk public IDKMesh issue:
issue -> WorkUnit -> Jules Session -> candidate PR -> verification -> human decision
Retain exact source SHA and session provenance.
model/openai-compatible
Then add coverage/examples for:
M3 does not dispatch GitHub coding work by itself. It provides a model to a local agent runner.
Gemini officially supports the OpenAI client/schema path, and Ollama/vLLM/OpenRouter/LiteLLM can expose compatible APIs. That gives broad provider coverage without importing every vendor SDK into the core.
Do not add Anthropic/Gemini/OpenAI native drivers until a concrete feature requires semantics not preserved by the common interface.
Make one local agent consume an IDKMesh WorkUnit through the same control plane as Jules.
Initial candidate:
acceptable alternate:
Later:
WorkUnit
-> exact repo SHA
-> disposable workspace/sandbox
-> local agent preset
-> configured model provider
-> candidate patch/log/test artifacts
-> canonical AdapterExecution/ResultManifest
-> cleanup
The same trivial WorkUnit is run once through Jules and once through the local agent interface without changing coordinator logic.
Keep GitHub as the human-visible coordination surface.
Recommended labels:
idkmesh:ready;idkmesh:auto;agent:jules;agent:openhands;agent:local;risk:low;risk:medium;risk:high;needs-human-review.issue opened/edited/labeled
-> webhook/action event
-> verify sender/event signature
-> de-duplicate delivery
-> load repository policy
-> issue -> WorkUnit preview
-> admission
-> explicit route or auto route
-> create run
-> connector submit
-> post concise run reference to issue
Use manual or label-based dispatch first.
Do not automatically dispatch on every new issue.
Build toward a least-privilege GitHub App for hosted mode.
Bootstrap can use existing authenticated GitHub/Actions context, but do not design the product around a permanent broad PAT.
This milestone turns vendor-specific results into IDKMesh evidence.
agent completion
-> candidate_ready
-> canonical ResultManifest
-> evaluator-owned plan
-> independent verification
-> VerificationResult
-> Evidence Report
-> awaiting_human_decision
When multiple agents produce candidates, the system can report evidence and differences. It must not silently merge/select based on model confidence.
Minimum end-to-end commands:
idkmesh project add OWNER/REPO
idkmesh connect ...
idkmesh connections probe
idkmesh doctor
idkmesh work preview --issue N
idkmesh run --issue N --agent CONNECTOR
idkmesh run status RUN_ID
idkmesh run cancel RUN_ID
idkmesh evidence show RUN_ID
Expose the connector API defined in the architecture/spec over an optional install extra.
The HTTP service should contain almost no business logic; CLI and server call the same service classes.
Do not begin with a broad frontend.
The first UI can be a thin connection/run/evidence dashboard after the API is proven.
This is the self-hosting graduation cohort.
Run 10 bounded real repository tasks across at least two agent connectors.
Suggested task classes:
Exclude initially:
Before claiming successful self-hosting:
=10 real bounded runs retained;
=2 heterogeneous agent connectors represented;
The exact success rate is measured, not predeclared as proof.
After M8, select one small non-safety-critical reference application.
The project choice should have:
1. create/connect new GitHub repository
2. add IDKMesh project profile
3. declare coding/testing/security/product policies
4. connect the same agent/model profile
5. turn product brief into issue backlog
6. approve first bounded WorkUnits
7. dispatch heterogeneous attempts
8. verify candidates
9. human integrates
10. release a small usable application
Do not special-case the new repository.
If IDKMesh requires repository-specific coordinator code to work on the second application, that is evidence the product abstraction is incomplete.
After the first second-project application:
Do not integrate “all models” by writing one adapter per marketing name. Integrate stable interface families and add native adapters only for real semantic gaps.
Create or converge work into these bounded tasks rather than one giant PR.
Files likely touched:
idkmesh/connectors/*;Acceptance: fake connectors support configure/probe/route with no live network.
Acceptance: mocked contract tests + one live bounded public run.
Acceptance: local fake server tests + Ollama smoke + optional Gemini smoke when owner supplies credential.
Acceptance: one bounded goose/Gemini-CLI attempt normalized into canonical result.
Acceptance: explicit issue label creates exactly one idempotent run; replayed webhook creates none.
Acceptance: Jules PR and local patch both produce canonical evidence.
Acceptance: newcomer can configure, probe, dispatch and inspect without editing Python.
Acceptance: retained 10-task evidence set.
Acceptance: one new application reaches a reproducible release through IDKMesh-managed work/evidence paths.
Existing issues #11 and #12 should absorb or be linked to the local-model/hosted-agent portions rather than being duplicated.
Keep PRs small enough to verify.
PR-A docs/spec only
PR-B connector types + registry + config validation
PR-C doctor/probe + fake connector tests
PR-D Jules REST connector
PR-E OpenAI-compatible model provider
PR-F local agent execution preset
PR-G GitHub dispatch
PR-H result/PR normalization
PR-I optional control HTTP API
PR-J thin dashboard
Do not put all providers into one PR.
Safe parallel tracks after M1:
Track A: Jules remote connector
Track B: model-provider interface
Track C: GitHub event/label design
Track D: documentation/UX examples
Track E: security/adversarial tests
Avoid parallel modification of the central registry/routing contracts until those are stable.
A provider integration is not easy merely because its Python class exists.
Target onboarding:
1. choose preset
2. provide secret reference if required
3. run probe
4. see green/degraded/error with actionable message
5. assign allowed task/risk classes
6. dispatch a test task
No user should need to:
IDKMesh can use its own connector control plane to route real repository tasks to at least two heterogeneous agent paths and retain verification evidence.
A second GitHub repository can use the same installed IDKMesh product/configuration model to develop and release a new application without coordinator-core changes.
At that point, IDKMesh has crossed the important boundary from:
research repository about agent coordination
to:
a usable coordination product that has developed itself
and then developed another product using the same interfaces
That is the milestone the implementation should optimize for.