{"content":"Development journal for commit 455d8060 (feat: drive OpenCode over ACP and extract per-provider dialects).\n\nMigrated the OpenCode runtime from the one-shot 'opencode run --format json' executor to the shared ACP backend (opencode acp; executor kind acp-opencode), following the design review of Orca's ACP lane. Introduced an AcpDialect layer (backends/acp-dialect.ts) so per-provider deviations live beside each backend factory instead of branching inside the generic backend: tool-name resolution from title/kind (moved out of acp.ts), OpenCode's nested rawOutput.metadata normalization, and model switching via session/set_config_option (OpenCode never implemented legacy session/set_model). Permission auto-approval now selects an offered allow_always/allow_once option when the agent lists options, keeping the historical approve_for_session fallback for Hermes/Kimi/Kiro. minimumCliVersion raised to 1.18.31, the oldest 1.x line verified to serve 'opencode acp'. Existing Hermes/Kimi/Kiro wire behavior is unchanged; ACP loop tests extended with an OpenCode case.\n\nVerification:\npnpm run build && node --test --test-concurrency=1 tests/llm/llmExecutorCore.test.mjs tests/llm/llmProviderExpansion.test.mjs\n\nFiles:\nsrc/core/llm/executor/backends/acp-dialect.ts\nsrc/core/llm/executor/backends/acp.ts\nsrc/core/llm/executor/backends/hermes.ts\nsrc/core/llm/executor/backends/kimi.ts\nsrc/core/llm/executor/backends/kiro.ts\nsrc/core/llm/executor/backends/opencode.ts\nsrc/core/llm/executor/backends/registry.ts\nsrc/core/platform/platformRegistry.ts\ntests/llm/llmExecutorCore.test.mjs\ntests/llm/llmProviderExpansion.test.mjs","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}