rowboat/apps/x/packages/core/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
..
account use rowboat model gateway when logged in 2026-03-12 23:29:42 +05:30
agent-schedule refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
analytics merge dev into feature/apps-v1 2026-07-05 01:08:35 +05:30
application refactor(x): single live homes for getErrorDetails and isPathInside 2026-07-10 17:54:43 +05:30
apps refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
auth Drive (#583) 2026-06-23 03:13:58 +05:30
background-tasks refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
billing feat(billing): consume plan variant catalog 2026-06-19 16:52:22 +05:30
channels refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
code-mode refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
composio feat: native google sign-in for signed-in users 2026-05-05 14:29:13 +05:30
config Merge remote-tracking branch 'upstream/dev' into feat/disk-skills 2026-07-06 22:37:30 +05:30
di refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
events make local models work well 2026-07-06 13:31:13 +05:30
filesystem refactor(x): single live homes for getErrorDetails and isPathInside 2026-07-10 17:54:43 +05:30
knowledge refactor(x): single live homes for getErrorDetails and isPathInside 2026-07-10 17:54:43 +05:30
mcp remove default exa server 2026-03-19 18:46:08 +05:30
migrations refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
models Merge pull request #724 from rowboatlabs/fix/ollama-mlx-bad-request 2026-07-10 20:32:01 +05:30
pre_built refactor(x): the runtime moves under one roof — core/src/runtime/ 2026-07-10 16:30:26 +05:30
runtime fix(x): fail-closed tool permissions with per-tool catalog declarations 2026-07-10 23:07:11 +05:30
schedule feat: background tasks 2026-05-12 17:43:25 +05:30
search feat(x): chat history redesign, session-store search, header cleanup 2026-07-10 15:16:28 +05:30
security move local-model concurrency to a turn-level defer lock 2026-07-06 13:38:39 +05:30
services code clean up 2026-02-06 23:17:32 +05:30
slack feat: ship Slack as a knowledge source, hardened for production (#596) 2026-06-17 12:52:27 -07:00
voice phase 1 improvements to reduce latency: smart endpointing, streaming tts, early clause speech, ack 2026-07-04 12:51:06 +05:30
workspace add code mode: coding-agent workspace with sessions, direct/Rowboat drive, diffs, and worktrees 2026-06-12 23:57:44 +05:30
index.ts voice mode with TTS input/output 2026-03-13 10:39:05 +05:30