Skip to content

feat(acp): Gemini ACP protocol standardization + provider hot-reload + Gemini embedding#1067

Closed
codebit0 wants to merge 1 commit intonextlevelbuilder:devfrom
codebit0:feat/acp-port
Closed

feat(acp): Gemini ACP protocol standardization + provider hot-reload + Gemini embedding#1067
codebit0 wants to merge 1 commit intonextlevelbuilder:devfrom
codebit0:feat/acp-port

Conversation

@codebit0
Copy link
Copy Markdown
Contributor

@codebit0 codebit0 commented Apr 29, 2026

Summary

Cleanup PR for ACP (Agent Client Protocol) provider work. Addresses protocol-compatibility issues and operational improvements discovered while integrating the Gemini CLI as an ACP-compatible agent.

Changes

  • ACP protocol standardizationinternal/providers/acp/{process,session,tool_bridge,types}.go and tests
    • Handle session/request_permission for Gemini CLI 0.38.x
    • Prompt inactivity watchdog
    • Stealth mode option
  • Unified ACPSettings config struct — both registration paths (config.json providers.acp and DB llm_providers.settings JSONB) share the same option set (name/binary/args/model/perm_mode/idle_ttl/session_ttl/prompt_timeout/work_dir/include_directories/mcp_data)
  • ACP provider hot-reload — when an ACP provider row is added/updated in the DB, it is re-registered immediately without a gateway restart (SetProviderReloadFn callback + acpMCPData package var refresh)
  • Provider verify refactorPOST /v1/providers/{id}/verify
    • model is now required (ping mode removed)
    • Response shape: {success, models[]}
    • CLI/onboard: --model flag removed; verification prints the list of available models
  • Gemini native embedding provider — adds memory.NewGeminiEmbeddingProvider and a ProviderGeminiNative branch in buildEmbeddingProvider

Out of scope (split into follow-up PRs)

  • MCP bridge BuiltinToolStore-based tool selection refactor (internal/mcp/bridge_server.go, internal/gateway/server.go BuiltinTools wire)
  • Korean i18n (locale=ko)
  • Channel watchdog / bot-token masking
  • Consolidation episodic timeout, shellDenyGroups
  • Heartbeat FK rollback (migration 57)

Test plan

  • go build ./... (PG) passes
  • go build -tags sqliteonly ./... (Desktop/SQLite) passes
  • go vet ./... passes
  • Integration tests (go test -race -tags integration ./tests/integration/) — to be verified in reviewer environment
  • Manually verify Gemini CLI (0.38.x) ACP session-create / request-permission flow
  • Verify ACP provider hot-reload: add an ACP provider via DB and confirm it works without gateway restart
  • Verify goclaw providers verify <id> prints the available model list

- ACP 프로토콜 핸들링 표준화 (process/session/tool_bridge/types)
- ACPSettings 통합 설정 구조체 — config.json/DB JSONB 양쪽 경로에서 공유
- ACP MCP 브리지 설정(acpMCPData) 패키지 변수로 공급, 핫리로드 시 갱신
- DB 변경 시 ACP provider 자동 재등록 (gateway 재시작 불필요)
- providers/{id}/verify 엔드포인트: model 필수 + 가용 모델 목록 응답
- Gemini native 임베딩 provider (memory.NewGeminiEmbeddingProvider) 추가
- buildEmbeddingProvider에 GeminiNative 분기 추가

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codebit0 codebit0 changed the title feat(acp): Gemini ACP 프로토콜 표준화 + provider 핫리로드 + Gemini 임베딩 feat(acp): Gemini ACP protocol standardization + provider hot-reload + Gemini embedding Apr 29, 2026
@codebit0
Copy link
Copy Markdown
Contributor Author

codebit0 commented May 1, 2026

Superseded by #1069 (full integrated branch with ko i18n + ops hardening + ACP). Closing this narrower PR to consolidate review on a single branch.

@codebit0 codebit0 closed this May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant