docs: add msglib enrichment runbook

This commit is contained in:
zhaoyilun
2026-07-10 08:27:32 +08:00
parent 07d127c44a
commit 78f0e47547
4 changed files with 127 additions and 20 deletions

View File

@@ -2521,17 +2521,56 @@ Optional real receive-message display smoke result:
- Optional MsgLib enrichment remains opt-in through `ISPHERE_MSGLIB_SIDECAR_EXE`, `ISPHERE_MSGLIB_SQLITE_DLL`, and `ISPHERE_MSGLIB_DB`.
- Operator-facing docs must explain expected sanitized evidence and no-value output boundaries.
- [ ] **Step 1: Audit current runbook for MsgLib setup gaps**
- [x] **Step 1: Audit current runbook for MsgLib setup gaps**
Review `docs/go-mcp-runbook.md` against the C27-C33 implementation and note missing operator steps.
Confirmed `docs/go-mcp-runbook.md` only documented PacketReader source setup and deterministic `verify-go-mcp.ps1`; it did not document the optional MsgLib env shape, sidecar build, partial-config failure behavior, provider smoke, MCP enrichment smoke, or sanitized output expectations.
- [ ] **Step 2: Add operator setup and verification section**
- [x] **Step 2: Add operator setup and verification section**
Document build, env config, default deterministic verification, optional copied-DB smoke, and expected sanitized output.
Added `Configure optional MsgLib display-name enrichment` to `docs/go-mcp-runbook.md`, with sidecar build, three required env vars, optional password override, copied-file handling rules, standard no-MsgLib verification note, provider smoke command, MCP enrichment smoke command, and expected sanitized JSON booleans.
- [ ] **Step 3: Run verification and update next loop**
- [x] **Step 3: Run verification and update next loop**
Run the full gate, record C34 outcome, and choose the next business slice.
Verification passed: `git diff --check`, `go test ./...`, `scripts\verify-go-mcp.ps1`, evidence-backed `scripts\verify-msglib-sidecar.ps1`, and evidence-backed `scripts\verify-msglib-mcp-enrichment.ps1`. Optional MCP output included `receive_display_smoke=true`, `receive_sender_name_populated=true`, and `receive_conversation_display_populated=true` with no entity values, message bodies, file paths, or raw rows.
---
## Loop C34 Result
MsgLib enrichment operator runbook result:
- `docs/go-mcp-runbook.md` now gives operators the exact optional MsgLib display-name enrichment setup path.
- It separates default deterministic verification from optional copied-DB verification.
- It documents that partial MsgLib env config fails startup and that copied DB/provider files stay local/uncommitted.
- It records expected sanitized provider/MCP evidence and no-value output boundaries.
---
## Loop C35: MsgLib message-table source precheck
**Goal:** Determine whether copied `MsgLib.db` message tables can become a future DB-backed source for `isphere_receive_messages`, starting with schema/column mapping and safe metadata-only evidence.
**Planned files:**
- Create or modify: `docs/source-discovery/2026-07-10-msglib-message-source-precheck.md`.
- Modify: `docs/source-discovery/capability-source-matrix.md`, `docs/current-status-card.md`, and this plan.
- Do not implement message-row reads until the precheck identifies a bounded contract.
**Planned behavior:**
- Use existing C26/C27 schema evidence and sidecar metadata operations first.
- Map candidate message tables/columns to the `isphere_receive_messages` contract fields.
- Do not print or commit message bodies, file paths, entity values, raw rows, or copied DB contents.
- [ ] **Step 1: Collect message-table schema evidence**
Review existing schema extraction docs and optional sidecar metadata for `tblPersonMsg`, `tblMsgGroupPersonMsg`, `tblRecent`, and related file/message tables.
- [ ] **Step 2: Map candidate fields to receive-message contract**
Document which fields may map to message id, conversation id/type, sender/receiver, timestamp, body/text, subject, receipt/read state, and attachment metadata; mark gaps explicitly.
- [ ] **Step 3: Decide next implementation slice**
Choose between a metadata-only sidecar extension, a bounded DB-backed receive source, or keeping PacketReader as primary until more evidence exists.
---