Document current coding-workflow stack state

Snapshot of where opencode + Qwen3-Coder + MCPs + Kimi-Linear + voice
  + Phoenix tracing land today, plus in-flight (oc-tree, kimi-linear
  context ramp) and next (ComfyUI) items with pointers to per-project
  NEXT_STEPS.md guides.
This commit is contained in:
2026-05-10 21:14:43 -04:00
parent 228fe8d1ac
commit a29793032d
35 changed files with 2067 additions and 37 deletions

View File

@@ -169,6 +169,38 @@ Already wired in `localgenai/opencode/`:
- **[mcp-server-fetch](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch)** —
not yet wired; useful if Playwright feels heavy for plain page reads.
**Next: cited-search variant.** Fork `mcp-searxng` (or wrap it) to expose
a `search_cited` tool that auto-fetches the top 3-5 results, extracts
readable text via mozilla/readability or trafilatura, and returns
numbered `[n] URL\n<excerpt>` blocks with a tool description telling the
model to cite as `[n]`. Closes the citation-quality gap with
[opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited)
(which delegates to Gemini/OpenAI/OpenRouter) while staying fully local.
Tradeoff: 3-5 HTTP fetches per query → slower; needs timeout + graceful
skip for sites that block scrapers.
### Observability — partial
- **[Arize Phoenix](https://github.com/Arize-ai/phoenix)** wired via
`opencode/.opencode/plugin/phoenix-bridge.js`: OpenCode's experimental
OTel spans go to Phoenix at `framework:6006` with the OpenInference
span processor for LLM/tool-aware attributes. Subagents nest under the
parent session as a unified trace tree. **External** trace viewing is
solved.
- **Gap: in-harness visibility.** OpenCode's TUI has no sidebar plugin
API ([sst/opencode#5971](https://github.com/sst/opencode/issues/5971),
open) and no built-in tree/timeline view. Plugins can only show
toasts. While driving the agent, there's no live "what's it doing
right now" pane — you have to alt-tab to Phoenix.
- **Next: SSE sidecar.** `opencode serve` exposes documented SSE streams
at `/global/event` and `/session/{id}/event` carrying every tool call,
message part, and child-session creation. A small TUI sidecar
(Bubbletea/textual, ~200 lines) running in a tmux pane next to
opencode can subscribe and render a live tree:
`session → tool call → child session → tool call`. Subagents *are*
child sessions in the data model, so the hierarchy comes for free.
Phoenix stays the deep-trace store; sidecar is the live pane.
### Persistent memory
OpenCode's memory is per-session unless you wire MCP for it.
@@ -242,6 +274,13 @@ In rough order of impact-per-hour-spent:
OpenCode's per-task UX feels too hands-on.
11. **OpenWebUI for household-shared chat access.** Adds value for
non-coding LLM use, fills a small gap in the multi-user story.
12. **SSE sidecar for in-harness visibility.** Live tree pane subscribed
to opencode's `/session/{id}/event` SSE; closes the "what's it
doing right now" gap that Phoenix doesn't fill (Phoenix is for
after-the-fact deep traces, not glanceable status).
13. **Cited-search MCP.** Fork `mcp-searxng` to add `search_cited` with
auto-fetch + readability extraction. Smaller-impact than the
sidecar but cheap and keeps everything local.
## Reference catalogs to monitor