Adding new agent adapters: recipe for the next 14 (post #119 + #145) #148
Closed
harshitsinghbhandari
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What just landed
feat(agents): agent platform — registry, activity hooks, harness allowlist(the platform sub-stack:adapters/agent/{registry,activitydispatch,hookutil}, CLIhookscommand, daemon wiring, sharedports.MetadataKey*, openapi/schema deltas, SQLite migration0007_allow_implemented_harnesses.sqlwidening thesessions.harnessCHECK to allow all 19 planned harness strings).feat(agents): add grok, cursor, qwen, copilot, kimi adapters(5 adapters wired on top of the platform, batched into one PR).mainnow has these adapters registered inregistry.Constructors():claudecode, codex, opencode, grok, cursor, qwen, copilot, kimi.The other 14 adapter directories yyovil prepared are not yet on main. Their work lives on
origin/agents/02-droidthroughorigin/agents/20-autohand, except those merged into #145.How to add the remaining 14 (do NOT just open PRs from
agents/*branches)The
agents/<n>-<name>branches are a linear stack on top of the pre-platformagents/00-platform. If you open a PR from, say,agents/10-goosetomain, you will be re-proposing every commit in the stack underneath it (platform, grok, droid, amp, agy, crush, aider, cursor, qwen, copilot — most of which is either already on main or you're skipping). Don't do that.Instead: cherry-pick the adapter's own commit onto a fresh branch off
main. You can batch multiple adapters into one PR (that's what #145 did for the first five).Recipe
That's the whole job per adapter.
Cherry-pick commits for the remaining 14
agents/02-droid3f94a65agents/03-ampdbb800eagents/04-agy0da8825agents/05-crush8ff7b3aagents/06-aidere37fef8agents/10-gooseb936443agents/11-auggie6ffac86agents/12-continueafb9430(directory isadapters/agent/continueagent/—continueis a Go keyword)agents/13-devin0cb96f6agents/14-cline3925e6bagents/16-kiro1e6b496agents/17-kilocode1c58723agents/18-vibe302cab3agents/19-pi2d73665agents/20-autohand8c3e9d9Things that may confuse the next person
1. Three squash-merge tips on the stack — NOT the right commits
These commits exist on yyovil's branches but you do not want them:
3cbd7c1agents/07-cursor1fa8ed7.fac804bagents/08-qwen44964c5agents/14-clineThe 14 remaining adapter commits in the table above are clean single yyovil commits and are safe to cherry-pick directly.
2. Migration 0007 already allows every harness — don't add a new migration per adapter
backend/internal/storage/sqlite/migrations/0007_allow_implemented_harnesses.sqlwidens thesessions.harnessCHECK in one go to allow:So a new adapter PR does NOT need its own migration. It only needs to:
backend/internal/adapters/agent/<name>/<name>.New(),toregistry.Constructors()inbackend/internal/adapters/agent/registry/registry.gobackend/internal/daemon/wiring_test.goThe harness string constant in
backend/internal/domain/harness.gois already there for all 19 — the platform PR added them upfront.Trade-off worth knowing: because the CHECK is broad, the DB will accept
--harness=goosetoday even though goose isn't wired. Session start will fail at registry lookup. That's an accepted state until the remaining adapters land.3. The local gate is just
go build+go test -raceDo NOT run
agent-ci. Do NOT touch.github/agent-ci.Dockerfile. The gate is:4. Batch or single — both fine
#145 batched 5 adapters into one PR. That worked because the adapters are mutually independent (each one only touches its own directory + 2 lines in
registry.go+ 1 inwiring_test.go). You can do the same for the next batch — group however many feel reviewable.5. Quality signals on yyovil's remaining adapters
From the audit (
/tmp/aa-stack-map.mdis the source if anyone has it):<name>_test.goin its directory).ports.MetadataKey{Title,Summary}(added by the platform commit).droid,agyusehookutil.AtomicWriteFile. The rest do their own file writes.If you're reviewing them: focus on the adapter's own
hooks.go(the actual integration with the agent's hook config format) and<name>_test.go. The other files (<name>.go, optionalactivity.go) are mostly boilerplate following the pattern fromclaudecode/codex/opencode.Background
Full read-only audit of the original yyovil stack — chain shape, conflict surface, per-adapter quality, strategy comparison — is in commit history if needed. The TL;DR is that yyovil built one linear stack with a load-bearing platform commit at the bottom and 20 single-adapter commits on top. Strategy "land platform first, then cherry-pick adapters onto main" was the chosen path; that's how #119 and #145 happened, and that's the same path for the remaining 14.
Beta Was this translation helpful? Give feedback.
All reactions