Repository navigation
Releases: acking-you/fx
Release list
v0.0.10
v0.0.9
Bug Fixes
- Sequential provider controls: ACP and embedded SDK clients can immediately query state, start a session, or change providers after a provider operation replies. Successful and failed replies now wait for the operation to settle.
v0.0.8
fx is now a provider-independent BYOK distribution with one context-compaction pipeline, Codex-style Unified Exec, direct ACP provider control, visible reasoning, and substantially stronger long-session lifecycle guarantees.
Breaking Changes
- Vercel product surface: The BYOK distribution no longer includes Vercel setup, account onboarding, login, gateway defaults, hosted upgrade channels, CDN backfill, or development-release flows. Generic provider contracts remain where they serve direct API-key, Codex, Grok, ACP, or SDK use.
- Extension surface: MCP support has been removed completely. Skills are the only supported extension mechanism.
- Terminal presentation:
/appearance,/input, and/maxxinghave been removed along with their saved settings. fx now uses the same input and transcript layout everywhere. - Model execution tools: The old model-facing
terminalaction is removed. Useexec_commandfor shell commands andwrite_stdinto poll or provide input to a long-running session.
New Features
-
Embedded native runtime: Applications can link fx directly through a versioned C interface, with independent runtime instances and shared SDK/ACP control. Precompiled static libraries are available for Linux and macOS on x86_64 and aarch64, and Windows x86_64 MSVC.
-
Remote subscription login: Embedded and ACP clients can authenticate Codex and Grok with device codes from another machine, while retaining explicit browser login.
-
Unified Exec commands: Model turns now use separate
exec_commandandwrite_stdintools with numeric sessions for long-running and interactive commands. Output remains bounded while processes survive turn boundaries until they finish or the session closes. -
Unified context compaction: Manual
/compact, automatic threshold compaction, context-overflow recovery, TUI, and ACP now use one strategy module. Eligible Responses routes use native remote compaction first, other providers use the active model for a structured full-history summary, and a bounded deterministic summary remains available when provider compaction cannot complete. -
Visible reasoning and replay: Reasoning-capable models stream reasoning as a separate TUI and ACP surface by default. Signed reasoning is preserved for within-turn tool continuation, provider summaries remain available after resume, and mixed reasoning, text, and tool calls serialize through one valid request path.
-
Codex account services:
fx usage --codexreports subscription limits, while authenticated Codex sessions expose theweb.runsearch, open, click, and find workflow with bounded verified context. -
Linux and WSL clipboard images: Ctrl+V and
/pastecan attach clipboard images throughwl-paste,xclip, or the WSL PowerShell bridge in addition to the native macOS pasteboard. -
ACP provider control: Native ACP clients can start and monitor Codex or Grok login, switch providers, and configure a connection-scoped Responses base URL and API key without restarting fx.
-
ACP image prompts: Native ACP sessions accept standard base64 image blocks for vision-capable models and persist the verified bounded snapshot with the session.
-
Retained command output: Captured command output can now be read later with
read_tool_result, including after a saved session resumes. With--no-save, output remains available until fx exits.
Improvements
-
Permission-aware tool defaults: Auto and yolo modes prefer shell-based workspace discovery by default; explicit tool-mode preferences remain available.
-
Non-blocking compaction and streaming: Manual and automatic compaction run outside the TUI event loop, keep the composer responsive, queue the next prompt safely, persist the settled replacement before reporting success, and preserve immediate streamed token rendering while compacting activity is visible.
-
Compaction portability: Remote checkpoints remain bound to the exact provider identity, endpoint, and wire model, while a portable local summary is stored beside opaque provider state. Switching accounts or endpoints never replays an opaque checkpoint to the wrong provider.
-
Long-session resource bounds: Durable file-edit presentation bodies, compaction projections, recovery snapshots, and command output are bounded so large edits and long sessions do not repeatedly inflate checkpoints or replay state.
-
Event-driven TUI cadence: Native worker delivery wakes the event loop directly. The short polling cadence is retained only for active response pacing, while idle and network-wait states use a lower-frequency path to reduce CPU use without delaying streamed tokens.
-
Codex-style activity: Active turns use a rotating
Workingstatus with elapsed time and token counts, the terminal title reflects ongoing work, queued prompts remain visible for the next turn, and redundant activity disappears once streamed assistant text becomes the progress surface. -
Reasoning presentation: Long reasoning summaries stay visually bounded without truncating the provider-owned body used for continuation, and reasoning updates are always marshaled onto the UI thread before transcript mutation.
-
Auto mode review prompts: Auto mode now uses fewer tokens when reviewing unresolved actions.
-
Native release builds: Every supported archive is produced directly from the same stripped ReleaseSafe build profile.
-
Download integrity: CLI archives and independent static libraries are available for Linux and macOS on x86_64/aarch64 and Windows x86_64, with a SHA-256 file beside every package. macOS CLI binaries use Developer ID signing and notarization when Apple credentials are configured, or a verified ad-hoc signature otherwise.
-
Provider model preferences: Gateway, Codex, and Grok now keep separate saved model selections, so switching providers no longer replaces another provider's preferred model.
-
Responsive provider switching: Provider credential refresh and catalog loading no longer block TUI input or ACP control messages.
/provideris now the direct interactive provider command, while/loginremains focused on authentication. -
Subscription session longevity: Codex and Grok sessions remain usable beyond 64 consecutive requests.
-
Usage tracking: Rejected completions no longer appear in usage tracking, and duplicate completion callbacks are recorded once.
-
Linked skill errors: Linked skill errors now distinguish an unavailable linked directory from an unreadable
SKILL.mdand explain whether to repair, remove, or authorize the link. -
Live permission modes:
Shift+Tabpermission-mode changes now apply to later tool calls in the current turn. Actions already in progress keep the mode under which they were admitted. -
Tool action summaries: Denied and deferred tool rows now show the actual command or target, and those details and denial labels survive session resume.
Bug Fixes
- Codex Responses routing: ChatGPT OAuth uses the shared Responses request path, keeps account-bound headers and compaction state, and always sends valid input, including a synthetic continuation when recovery leaves only system context.
- Compaction failures: Rejected or unavailable remote compaction now falls through to active-model compaction before the deterministic fallback. Manual and automatic compaction share the same installation, persistence, cancellation, and stale-result checks in both TUI and ACP.
- ACP process control: Direct Unified Exec writes, output polls, and termination remain responsive even while a model-side output poll is waiting, without consuming output intended for the model.
- ACP provider bindings: Connection-scoped BYOK endpoints keep their matching API key across temporary provider switches and now apply consistently to model requests, automatic permission reviews, remote compaction, and persistent subagent turns. Reconfiguring the connection cannot redirect or invalidate a child turn already in progress.
- Provider logout: Signing out immediately invalidates a matching provider switch already loading in the background, leaves unrelated provider activation alone, and keeps durable credential removal off the TUI event loop while an in-flight refresh releases its session lock.
- Terminal resize: Terminal resizing no longer leaves empty scrollback behind.
- Subscription sign-in: Codex and Grok sign-ins now survive unrelated, stalled, reset, or stale browser connections. Grok authorization codes can also be pasted when the browser cannot return to fx.
- OAuth callback pages: OAuth callbacks now show a completion or failure page after returning from the browser.
- Nested rebuilds: Interactive terminal helpers continue working after a nested rebuild replaces the fx binary on disk.
- Escaped command descendants: Captured commands and subagent-owned processes track and reap descendants that escape the original process group, including shutdown and cancellation paths.
- Terminal recovery: fx recovery no longer pauses commands already running in tmux.
- Terminal cancellation: Terminal cancellation no longer reports failure when the command exits during cancellation.
- Captured command failures: Captured command output remains readable after timeout or cancellation. Output-capture failures now fail the tool call instead of returning an incomplete result.
- Resumed review labels: The
Safety cautionandReview unavailablelabels now survive session resume.
Security
- Exact-action reviews: Auto mode reviews each unresolved action against the current request and relevant results from the current turn. A clear review applies only to that exact unchanged action and is checked again before execution.
- Blocked cautions: Cautioned or unavailable actions remain blocked without opening a permission prompt or ending the turn.
- Untrusted tool output...
v0.0.6
fx is now a provider-independent BYOK distribution with one context-compaction pipeline, Codex-style Unified Exec, direct ACP provider control, visible reasoning, and substantially stronger long-session lifecycle guarantees.
Breaking Changes
- Vercel product surface: The BYOK distribution no longer includes Vercel setup, account onboarding, login, gateway defaults, hosted upgrade channels, CDN backfill, or development-release flows. Generic provider contracts remain where they serve direct API-key, Codex, Grok, ACP, or SDK use.
- Terminal presentation:
/appearance,/input, and/maxxinghave been removed along with their saved settings. fx now uses the same input and transcript layout everywhere. - Model execution tools: The old model-facing
terminalaction is removed. Useexec_commandfor shell commands andwrite_stdinto poll or provide input to a long-running session.
New Features
-
Unified Exec commands: Model turns now use separate
exec_commandandwrite_stdintools with numeric sessions for long-running and interactive commands. Output remains bounded while processes survive turn boundaries until they finish or the session closes. -
Unified context compaction: Manual
/compact, automatic threshold compaction, context-overflow recovery, TUI, and ACP now use one strategy module. Eligible Responses routes use native remote compaction first, other providers use the active model for a structured full-history summary, and a bounded deterministic summary remains available when provider compaction cannot complete. -
Visible reasoning and replay: Reasoning-capable models stream reasoning as a separate TUI and ACP surface by default. Signed reasoning is preserved for within-turn tool continuation, provider summaries remain available after resume, and mixed reasoning, text, and tool calls serialize through one valid request path.
-
Codex account services:
fx usage --codexreports subscription limits, while authenticated Codex sessions expose theweb.runsearch, open, click, and find workflow with bounded verified context. -
Linux and WSL clipboard images: Ctrl+V and
/pastecan attach clipboard images throughwl-paste,xclip, or the WSL PowerShell bridge in addition to the native macOS pasteboard. -
ACP provider control: Native ACP clients can start and monitor Codex or Grok login, switch providers, and configure a connection-scoped Responses base URL and API key without restarting fx.
-
ACP image prompts: Native ACP sessions accept standard base64 image blocks for vision-capable models and persist the verified bounded snapshot with the session.
-
Remote MCP servers:
/mcp add --transport http <name> <url>now saves or replaces a remote Streamable HTTP server and reloads MCP immediately. The existing local stdio form is unchanged. -
Retained command output: Captured command output can now be read later with
read_tool_result, including after a saved session resumes. With--no-save, output remains available until fx exits.
Improvements
-
Non-blocking compaction and streaming: Manual and automatic compaction run outside the TUI event loop, keep the composer responsive, queue the next prompt safely, persist the settled replacement before reporting success, and preserve immediate streamed token rendering while compacting activity is visible.
-
Compaction portability: Remote checkpoints remain bound to the exact provider identity, endpoint, and wire model, while a portable local summary is stored beside opaque provider state. Switching accounts or endpoints never replays an opaque checkpoint to the wrong provider.
-
Long-session resource bounds: Durable file-edit presentation bodies, compaction projections, recovery snapshots, and command output are bounded so large edits and long sessions do not repeatedly inflate checkpoints or replay state.
-
Event-driven TUI cadence: Native worker delivery wakes the event loop directly. The short polling cadence is retained only for active response pacing, while idle and network-wait states use a lower-frequency path to reduce CPU use without delaying streamed tokens.
-
Codex-style activity: Active turns use a rotating
Workingstatus with elapsed time and token counts, the terminal title reflects ongoing work, queued prompts remain visible for the next turn, and redundant activity disappears once streamed assistant text becomes the progress surface. -
Reasoning presentation: Long reasoning summaries stay visually bounded without truncating the provider-owned body used for continuation, and reasoning updates are always marshaled onto the UI thread before transcript mutation.
-
Auto mode review prompts: Auto mode now uses fewer tokens when reviewing unresolved actions.
-
Native release builds: Every supported archive is produced directly from the same stripped ReleaseSafe build profile.
-
Provider model preferences: Gateway, Codex, and Grok now keep separate saved model selections, so switching providers no longer replaces another provider's preferred model.
-
Responsive provider switching: Provider credential refresh and catalog loading no longer block TUI input or ACP control messages.
/provideris now the direct interactive provider command, while/loginremains focused on authentication. -
Subscription session longevity: Codex and Grok sessions remain usable beyond 64 consecutive requests.
-
Usage tracking: Rejected completions no longer appear in usage tracking, and duplicate completion callbacks are recorded once.
-
MCP discovery: MCP searches still find the selected tool when a request includes surrounding context, and another server's authentication failure no longer replaces an empty search result.
-
MCP authentication: MCP authentication stays responsive while configuration reloads or logout is in progress, and pending authentication stops when MCP reloads or fx exits.
-
Linked skill errors: Linked skill errors now distinguish an unavailable linked directory from an unreadable
SKILL.mdand explain whether to repair, remove, or authorize the link. -
Live permission modes:
Shift+Tabpermission-mode changes now apply to later tool calls in the current turn. Actions already in progress keep the mode under which they were admitted. -
Tool action summaries: Denied and deferred tool rows now show the actual command or target, and those details and denial labels survive session resume.
Bug Fixes
- Codex Responses routing: ChatGPT OAuth uses the shared Responses request path, keeps account-bound headers and compaction state, and always sends valid input, including a synthetic continuation when recovery leaves only system context.
- Compaction failures: Rejected or unavailable remote compaction now falls through to active-model compaction before the deterministic fallback. Manual and automatic compaction share the same installation, persistence, cancellation, and stale-result checks in both TUI and ACP.
- ACP process control: Direct Unified Exec writes, output polls, and termination remain responsive even while a model-side output poll is waiting, without consuming output intended for the model.
- ACP provider bindings: Connection-scoped BYOK endpoints keep their matching API key across temporary provider switches and now apply consistently to model requests, automatic permission reviews, remote compaction, and persistent subagent turns. Reconfiguring the connection cannot redirect or invalidate a child turn already in progress.
- Provider logout: Signing out immediately invalidates a matching provider switch already loading in the background, leaves unrelated provider activation alone, and keeps durable credential removal off the TUI event loop while an in-flight refresh releases its session lock.
- Terminal resize: Terminal resizing no longer leaves empty scrollback behind.
- Subscription sign-in: Codex and Grok sign-ins now survive unrelated, stalled, reset, or stale browser connections. Grok authorization codes can also be pasted when the browser cannot return to fx.
- OAuth callback pages: OAuth callbacks now show a completion or failure page after returning from the browser.
- Nested rebuilds: Interactive terminal helpers continue working after a nested rebuild replaces the fx binary on disk.
- Escaped command descendants: Captured commands and subagent-owned processes track and reap descendants that escape the original process group, including shutdown and cancellation paths.
- Terminal recovery: fx recovery no longer pauses commands already running in tmux.
- Terminal cancellation: Terminal cancellation no longer reports failure when the command exits during cancellation.
- MCP resource compatibility: MCP resources and prompts no longer fail on servers that require their configured name.
- MCP credential recovery: MCP credentials with no advertised scopes remain usable after restart. Malformed stored entries no longer prevent valid servers from loading and are removed on the next successful credential write.
- MCP stdio environments: Configured MCP stdio environment variables now override inherited values without discarding the rest of the child environment.
- Captured command failures: Captured command output remains readable after timeout or cancellation. Output-capture failures now fail the tool call instead of returning an incomplete result.
- Resumed review labels: The
Safety cautionandReview unavailablelabels now survive session resume.
Fork and Release Maintenance
- Smaller supported surface: Removed Vercel-only runtime, setup, account, updater, telemetry, gateway protocol, credential storage, SDK login, release-channel, and obsolete test/eval code that conflicted with the BYOK product direction. Generic Responses, provider, MCP, ACP, image, SDK, and permission boundaries remain supported.
- **Focus...