rowboat/apps/x/packages/shared/src
Ramnique Singh ac7679ec16 fix(x): fail-closed tool permissions with per-tool catalog declarations
The permission checker returned {required: false} for every non-builtin
toolId and for any builtin outside the executeCommand/file-tools switch,
so composio-execute-tool (email sends, GitHub/Jira writes), executeMcpTool,
and mcp:* attachments on user agents executed with no permission check —
even in manual mode — and never reached the auto-permission classifier.
The extension contract was inverted: a new side-effecting tool shipped
ungated unless someone remembered to extend a switch in another module.

Every builtin now declares its permission policy in the catalog itself
(required field, compile-enforced): "none", "prompt", "command-allowlist",
"file-boundary", "composio-execute", or "mcp-execute". The checker reads
the declaration and FAILS CLOSED: undeclared builtins, mcp:* attachments,
and unknown toolId families require permission. Composio and MCP requests
carry family-specific payloads (new ToolPermissionMetadata kinds, rendered
by the permission card; generic fallback for everything else). All
previously-ungated builtins keep today's behavior via explicit "none"
declarations, except addMcpServer which now prompts; a catalog test pins
the audited gated set so policy changes stay intentional.

Auto-permission flows (background tasks, live notes, channels) route the
newly gated calls through the existing classifier per the §9.3 matrix;
defer still denies without a human. No grant persistence yet — every
gated call prompts (or classifies) each time.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 23:07:11 +05:30
..
agent-schedule-state.ts feat: add background agents with scheduling support 2026-02-05 16:43:09 +05:30
agent-schedule.ts feat: add background agents with scheduling support 2026-02-05 16:43:09 +05:30
agent.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
background-task.ts feat(apps): Rowboat Apps M1 — per-app origins, Host API core, apps skill 2026-07-04 17:12:54 +05:30
bases.ts app navigation 2026-03-13 10:39:05 +05:30
billing.ts feat(billing): consume plan variant catalog 2026-06-19 16:52:22 +05:30
blocks.ts fix(email): draft lifecycle, keyboard nav, and composer layout fixes from review 2026-07-03 01:08:55 +05:30
browser-control.ts fix browser issues 2026-07-02 19:39:21 +05:30
channels.ts add whatsapp and telegram support 2026-07-03 19:25:06 +05:30
code-mode.ts feat(x): ephemeral CodeRunFeed for codex streaming + settle-time durable batch 2026-07-06 14:04:33 +05:30
code-sessions.ts feat(code-mode): per-session model + effort, and keep output on nav (#632) 2026-06-21 21:08:49 +05:30
composio.ts feat(x): expand curated Composio toolkits and fix broken Microsoft slugs 2026-07-08 00:33:32 +05:30
events.ts feat: background tasks 2026-05-12 17:43:25 +05:30
example.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
frontmatter.ts app navigation 2026-03-13 10:39:05 +05:30
index.ts merge dev into feature/apps-v1 2026-07-05 01:08:35 +05:30
inline-task.ts Livenote2 (#440) 2026-03-19 01:34:10 +05:30
ipc.ts feat(x): thread the models.dev reasoning flag to the renderer 2026-07-10 10:11:25 +05:30
live-note.ts feat: background tasks 2026-05-12 17:43:25 +05:30
llm-step-events.ts feat(ui): surface LLM stream errors in chat 2026-02-16 08:34:51 +05:30
mcp.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
message.ts added screen share 2026-07-03 23:47:16 +05:30
models.ts feat(x): per-turn reasoning effort — core plumbing 2026-07-10 10:11:25 +05:30
notification-settings.ts fix: suppress notification spam on app re-open (#623) 2026-06-24 01:36:06 +05:30
prefix-logger.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
prompt-block.ts add prompt block 2026-04-20 14:42:13 +05:30
rowboat-account.ts feat(billing): consume plan variant catalog 2026-06-19 16:52:22 +05:30
rowboat-app.ts feat(apps): Rowboat Apps M1 — per-app origins, Host API core, apps skill 2026-07-04 17:12:54 +05:30
runs.ts fix(x): fail-closed tool permissions with per-tool catalog declarations 2026-07-10 23:07:11 +05:30
service-events.ts feat: ship Slack as a knowledge source, hardened for production (#596) 2026-06-17 12:52:27 -07:00
sessions.test.ts feat(x/shared): turn + session event schemas and pure reducers (stage 1) 2026-07-02 14:20:44 +05:30
sessions.ts refactor(x): one delivery path for turn events — chat, channels, deltas 2026-07-09 15:47:21 +05:30
turns.test.ts feat(x): skill-scoped contextual tool loading for the copilot 2026-07-09 11:00:13 +05:30
turns.ts feat(x): per-turn reasoning effort — core plumbing 2026-07-10 10:11:25 +05:30
workspace.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30