feat: add msglib sidecar go client

This commit is contained in:
zhaoyilun
2026-07-10 02:53:28 +08:00
parent 5b05228ba8
commit 974fcaa018
6 changed files with 544 additions and 17 deletions

View File

@@ -129,6 +129,19 @@ Committed C27 implementation:
- Default verification builds an x86 executable and checks `self_check`.
- Evidence-backed verification with C26 paths checked provider load/read-only DB open and returned 8 display-source candidates.
## Go client wrapper
Committed C28 implementation:
- Source: `internal/msglib/`.
- `ConfigFromEnv` reads `ISPHERE_MSGLIB_SIDECAR_EXE`, `ISPHERE_MSGLIB_SQLITE_DLL`, `ISPHERE_MSGLIB_DB`, and optional `ISPHERE_MSGLIB_PASSWORD`.
- `NewClient` creates a process-backed client for protocol `isphere.msglib.v1`.
- `SelfCheck` calls `self_check` and decodes sidecar identity, protocol, bitness, and read-only/no-mutation flags.
- `DisplaySources` calls `display_sources` and decodes display-source availability metadata.
- The client uses stdin/stdout JSON, request ids, `context.Context`, per-call timeout, stderr capture, and typed `SidecarError` values.
- Unit tests use a fake sidecar process; normal tests do not require real `System.Data.SQLite.dll` or copied `MsgLib.db`.
- C28 does not register a new MCP tool and does not return message bodies, file paths, raw rows, contact row values, or group row values.
## Verification
Default verification builds and checks `self_check` only: