feat: persistent Gemini ACP provider + status spinner #40

Merged
michal merged 1 commits from feat/gemini-acp-provider into main 2026-02-24 23:52:32 +00:00
Owner

Summary

  • Replace per-call gemini CLI spawning (~10s cold start) with persistent ACP subprocess
  • AcpClient manages gemini --experimental-acp process with lazy init, auto-restart on crash/timeout
  • GeminiAcpProvider wraps AcpClient with serial queue for concurrent calls
  • Status command now shows spinner with color-coded LLM health check results
  • 25 new tests (17 ACP client + 8 provider)
## Summary - Replace per-call gemini CLI spawning (~10s cold start) with persistent ACP subprocess - AcpClient manages gemini --experimental-acp process with lazy init, auto-restart on crash/timeout - GeminiAcpProvider wraps AcpClient with serial queue for concurrent calls - Status command now shows spinner with color-coded LLM health check results - 25 new tests (17 ACP client + 8 provider)
michal added 1 commit 2026-02-24 23:52:21 +00:00
feat: persistent Gemini ACP provider + status spinner
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / package (pull_request) Has been cancelled
11da8b1fbf
Replace per-call gemini CLI spawning (~10s cold start each time) with
persistent ACP (Agent Client Protocol) subprocess. First call absorbs
the cold start, subsequent calls are near-instant over JSON-RPC stdio.

- Add AcpClient: manages persistent gemini --experimental-acp subprocess
  with lazy init, auto-restart on crash/timeout, NDJSON framing
- Add GeminiAcpProvider: LlmProvider wrapper with serial queue for
  concurrent calls, same interface as GeminiCliProvider
- Add dispose() to LlmProvider interface + disposeAll() to registry
- Wire provider disposal into mcplocal shutdown handler
- Add status command spinner with progressive output and color-coded
  LLM health check results (green checkmark/red cross)
- 25 new tests (17 ACP client + 8 provider)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
michal merged commit 6f534c8ba9 into main 2026-02-24 23:52:32 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michal/mcpctl#40