TacTile›Launch TacTile›MCP surface·47 in this wave
Add rule E to the single-tool-handler-path test: a handler map keyed by tool name must go red (follow-up to #698, t_27dbb775)Done
Wave

MCP surface

Thesis pillar 3 — "Agentic AI + MCP." The investor deck claims first-in-category MCP-native. Audit (2026-07-26) found the hosted server IS live at mcp.tactile.to with real OAuth production traffic (14 clients, 11 tokens) — but the code's own deploy banner still says "NOT DEPLOYED" (stale), and tool coverage is genuinely incomplete: roughly half the 147-op catalog are proposer stubs that never mutate state, and 2 of 14 destination types (Action, Bluetooth) have zero MCP presence at all. Not cuttable: this is a stated structural moat.

TacTile › Launch TacTile › MCP surface
27/47 done20 open2 open blockers
Selected taskclear

Add rule E to the single-tool-handler-path test: a handler map keyed by tool name must go red (follow-up to #698, t_27dbb775)

DoneOwner · Vivt_ff7a5463

Done when: tests/architecture/single-tool-handler-path.test.ts has a rule E that goes red on (a) a new packages/agent-core/src module exporting a bare Record<string, (input) => Promise<unknown>> keyed by tool name and called from runner.ts, and (b) the same bare map called from the approve path of apps/api/tactile-api/src/routes/agent.ts; the real tree stays green; fixtures show it red on MAP[name](...), MAP[name]?.(...) and `const h = MAP[name]; h(...)` and green on tool.handler(...), an uncalled array index and a plain local function call. File: tests/architecture/single-tool-handler-path.test.ts only. Held by #698 (the file is new there): build it as a stacked follow-up on #698's head or after #698 merges; do not push to r28/single-tool-handler-guard.

Show the prompt
To doIn progressDoneBlockedPick a wave on the left · tap a task to expand it