Repository navigation
feat(fx): add Vercel fx as an agent provider - #22
Merged
Merged
Conversation
Pure parsers for `fx models --json` and `fx status --json`: the default model first, fx's effort ladder on every row (default Medium). Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
fx always runs in `ask` mode and Volt's access rules answer. The first mode write after a session starts is always sent, because fx reports `ask` while still running its saved mode. Models are listed from the CLI, never a throwaway session (fx saves every one under ~/.fx/sessions). The seed version bump gives existing installs the fx profile. Inspired by pingdotgg/t3code#18277. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…its backends Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
LeulAria
added a commit
that referenced
this pull request
Nov 8, 2026
… moves the tier to ask, and the exports edges a sandboxed host breaks (P2, P8, H.5) volt.extensions.sandboxMode: optIn (the default, N.1 #22) or required, which sandboxes every third-party extension with code on macOS and Linux; Windows reads it as optIn until C7 is required and green. volt.extensions.sandboxKillSwitch (and a confirmed command) moves every extension in scope to ask: it keeps its own location, stays off with code kill-switch, and runs unsandboxed only when the user says so. Opting an extension in first lists the exports edges (extensionDependencies) that break when it runs alone. Webview and openExternal ownership follow the same tier. P8-TIER-1, P8-KILL-2..4, P8-MODE-1, P8-ROUTE-1, T3-EXPORTS-1, T3-GIT-1. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
LeulAria
added a commit
that referenced
this pull request
Nov 13, 2026
…ts and side chats (05-limitations #22) thread_wait (its answer carries the waited-on chat's last reply), queue_list (another chat's queued prompts) and worktree_status (another chat's checkout) were `safe`, so a sandboxed chat read other chats through them; thread_list listed every chat's title and status. A parent also could not read its own subagents (any other id was agents.read:other). - The three are `reads-other` with their targets (thread_wait: every id it names). - The gate treats chats in the caller's subtree (subagents and side chats at any depth, by the parent the history records; the bridge resolves session aliases) as its own: agents.read:current. Anything else stays agents.read:other, refused for a sandboxed chat. - thread_list for a sandboxed chat lists only its subtree. thread_search stays refused. - Unsandboxed chats: unchanged. GATE-XCHAT-4. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Vercel's fx as an agent provider with its own tab in the model picker. fx speaks ACP natively (
fx acp). The idea comes from pingdotgg/t3code#18277, but the wiring follows Volt's provider model:fx models --json. The modelfx status --jsonreports as the default is listed first. Volt doesn't open a throwaway ACP session to list them, because fx saves every session under~/.fx/sessions. Each model has fx's Effort ladder (default Medium), which is written to fx'seffortconfig option.askmode and Volt's access rules answer every request. The first mode write after a session starts is always sent, because fx reportsaskwhile it is still running its saved mode.fx login, and sign-in state read fromfx status --json. Marked Early Access.~/.fx, AI Gateway, and the Codex/Grok backends fx can sign in to), an ACP exec route, and a seed-version bump so existing installs get the fx profile.Validation
fxModels,execRouterandvoltSetupPure. The fx parser fixtures are copied from T3's tests, not captured from a real fx.src/type-check, and the dev watcher compile onmain.curl -fsSL https://fx.sh/setup.sh | bash, thenfx login).Known gaps
🤖 Generated with Claude Code