docs: align runtime state and mcp boundaries

This commit is contained in:
Mikael Hugo 2026-05-07 03:09:55 +02:00
parent 4cefa6de2a
commit 2fae96d539
4 changed files with 8 additions and 8 deletions

View file

@ -55,7 +55,7 @@ Retries are persisted to the `gate_runs` SQLite table and emitted as audit event
### Durable Message Bus
The `MessageBus` persists messages to `.sf/runtime/uok-messages.jsonl` with at-least-once delivery. Inbox read-state is stored per-agent in `.sf/runtime/uok-inbox-{agent}.json`. Messages are pruned by TTL (`retentionDays`, default 7) and inbox size is capped (`maxInboxSize`, default 1000).
The `MessageBus` persists messages to `.sf/sf.db` (`uok_messages` and `uok_message_reads`) with at-least-once delivery. The old `.sf/runtime/uok-messages.jsonl` and per-agent inbox JSON files are legacy artifacts only; normal runtime message state is SQLite-backed. Messages are pruned by TTL (`retentionDays`, default 7) and inbox size is capped (`maxInboxSize`, default 1000).
### Chaos Engineering Safety

View file

@ -63,7 +63,7 @@ Every dispatch creates a new agent session. The LLM starts with a clean context
| **Context7** | Up-to-date library/framework documentation |
| **Background Shell** | Long-running process management with readiness detection |
| **Subagent** | Delegated tasks with isolated context windows |
| **MCP Client** | Native MCP server integration via @modelcontextprotocol/sdk |
| **MCP Client** | Client-side integration with external MCP tool servers via @modelcontextprotocol/sdk; SF does not expose its own workflow as an MCP server |
| **Voice** | Real-time speech-to-text on Linux |
| **Slash Commands** | Custom command creation |
| **LSP** | Language Server Protocol — diagnostics, definitions, references, hover, rename |

View file

@ -12,15 +12,15 @@
---
## MCP workflow mutations — read-only only
## External workflow mutations — RPC/headless only
**Impact:** External providers (Claude Code CLI, remote orchestrators) that route through MCP can query SF state but cannot advance it. `sf_task_complete`, `sf_plan_milestone`, etc. are in-process only.
**Impact:** External orchestrators must advance SF through native SF commands, headless/RPC, or the daemon/RPC client path. SF must not expose workflow mutation tools through MCP.
**Proposed fix:** Extract shared handlers from native tools; expose over MCP server (ADR-008 Phase 1).
**Proposed fix:** Extract shared handlers from native tools behind an internal command/RPC boundary. Keep ADR-008 rejected: do not build or restore an SF MCP server.
**Verification:** Claude Code provider session completes a task via MCP `sf_task_complete` and produces identical STATE.md outcome.
**Verification:** A daemon/RPC session completes a task through the native `sf_task_complete` path and produces the same DB/projection outcome as interactive SF.
**Tracked in:** [active/index.md — ADR-008 Phase 1](./active/index.md) · [ADR-008](../dev/ADR-008-IMPLEMENTATION-PLAN.md)
**Tracked in:** [ADR-008 tombstone](../dev/ADR-008-IMPLEMENTATION-PLAN.md)
---

View file

@ -1,5 +1,5 @@
/**
* MCP Client Extension Native MCP server integration for pi
* MCP Client Extension client-side integration with external MCP tool servers
*
* Provides on-demand access to MCP servers configured in project files
* (.mcp.json, .sf/mcp.json) using the @modelcontextprotocol/sdk Client