feat(agents): add crush adapter#124
Conversation
Greptile SummaryAdds a new Crush agent adapter following the same structure as the existing
Confidence Score: 5/5Safe to merge; the adapter is correctly scoped as a launch-only stub with no hooks, and the restore path is properly gated. All changed code is new and self-contained. The launch/restore/manifest logic is straightforward and well-tested. Hooks and activity state are intentional no-ops with clear TODO markers for future work. The one gap — crush.DeriveActivityState not yet registered in the dispatch table — has no runtime consequence until hook support is added. activitydispatch/dispatch.go will need a "crush" entry added before Crush hook support ships. Important Files Changed
Sequence DiagramsequenceDiagram
participant AO as AO Session Manager
participant Registry as adapter/registry
participant Crush as crush.Plugin
participant Binary as crush binary
AO->>Registry: Constructors()
Registry-->>AO: [..., crush.New()]
AO->>Crush: GetLaunchCommand(LaunchConfig)
Crush->>Crush: crushBinary() — resolve + cache path
Crush-->>AO: [crush, --cwd, path, (--yolo), --, prompt]
AO->>Binary: exec(cmd)
Note over Binary: Crush mints its own native session ID (no --session on launch)
AO->>Crush: GetRestoreCommand(RestoreConfig)
Note over Crush: Reads MetadataKeyAgentSessionID from session metadata
alt agentSessionID present
Crush-->>AO: "[crush, --cwd, path, --session, id], ok=true"
else agentSessionID absent
Crush-->>AO: "nil, ok=false"
end
AO->>Crush: GetAgentHooks / AreHooksInstalled
Note over Crush: No-op — hooks not yet supported
Crush-->>AO: (nil / false)
Reviews (2): Last reviewed commit: "feat(agents): add crush adapter" | Re-trigger Greptile |
Registers the crush harness, stacked on the agent platform. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds the crush harness, stacked on #119 (agent platform). Adapter package +
Constructors()registration + resolver test.🤖 Generated with Claude Code
Stack