Skip to content

feat: add fx provider - #7865

Open
t3-code[bot] wants to merge 5 commits into
mainfrom
feat/fx-provider
Open

feat: add fx provider#7865
t3-code[bot] wants to merge 5 commits into
mainfrom
feat/fx-provider

Conversation

@t3-code

@t3-code t3-code Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

what changed

  • adds fx as an opt-in early-access provider across server, web, desktop, and mobile
  • launches fx acp, reuses fx-managed gateway/codex/grok authentication, and discovers raw model ids from standard ACP config options
  • supports sessions, resume, streaming, permissions, interruption, in-session model switching, attachments, and source-control text generation
  • adds provider settings, icons, docs, health checks, and registry coverage

why

fx now supports eligible codex and grok subscriptions directly, so t3 code can use those subscription-backed tokens through one native ACP provider without proxying oauth credentials.

ui changes

adds fx to provider settings and model pickers on web/desktop and mobile.

before

provider settings before fx

after, light

enabled fx provider in light mode

after, dark

enabled fx provider in dark mode

verification

  • npx vp test run ...: 19 focused files, 199 tests passed
  • npx vp run --filter t3 test --shard 2/3: 82 files, 944 tests passed
  • contracts, shared, server, web, and mobile typechecks passed
  • targeted lint and formatting checks passed
  • installed and exercised fx 0.0.5; fx --version and fx acp --help passed
  • exercised the real t3 web app in light and dark mode: configured the fx binary, enabled the provider, and verified its detected v0.0.5 plus expected unauthenticated ACP status
  • live unauthenticated ACP probe returned fx's expected login error
  • authenticated codex/grok live turns were not run because this environment has no fx subscription credentials; deterministic ACP integration tests cover startup, model discovery/selection, turns, permissions, events, interruption, and text generation

checklist

  • this pr is focused on the fx provider
  • i explained what changed and why
  • focused tests, typechecks, lint, and formatting pass
  • authenticated codex and grok live turns exercised
  • ui screenshots attached

request provenance

Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Aug 22, 2026
@github-actions

github-actions Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.4 KiB 13.4 KiB +2 B (+0.0%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB −3 B (−0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.5 KiB 6.5 KiB +5 B (+0.1%) 7.8 KiB
Codex Live turn WebSocket decoded 55.0 KiB 55.0 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 16 16 0 (0.0%) 21
Claude Total thread wire 13.5 KiB 13.4 KiB −10 B (−0.1%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB +1 B (+0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.6 KiB 6.6 KiB −11 B (−0.2%) 7.8 KiB
Claude Live turn WebSocket decoded 55.8 KiB 55.8 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 16 16 0 (0.0%) 21

Baseline: 592c598 · PR result: 04bd65c · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Comment thread apps/server/src/provider/Layers/FxAdapter.ts Outdated
Comment thread apps/server/src/textGeneration/FxTextGeneration.ts

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two Effect service convention issues in the new fx provider code. Everything else (namespace subpath imports, Foo["Service"] usage, Effect.catchTags, structured tagged errors with preserved cause) looks consistent with the conventions.

Posted via Macroscope — Effect Service Conventions

Comment thread apps/server/src/provider/Drivers/FxDriver.ts Outdated
Comment thread apps/server/src/provider/acp/FxAcpSupport.ts Outdated
Comment thread packages/contracts/src/model.ts
@macroscopeapp

macroscopeapp Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new 'fx' provider integration with ~2000+ lines of new implementation code, including a new driver, adapter, ACP support, text generation, and UI components. New features introducing significant new capabilities and external integrations warrant human review.

You can add or adjust custom eligibility rules. Learn more.

Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
Comment thread apps/server/src/provider/Layers/FxAdapter.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0e97ae9. Configure here.

Comment thread apps/server/src/provider/acp/FxAcpSupport.ts Outdated
t3-code Bot and others added 2 commits August 22, 2026 02:07
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One consistency finding on the new FxIcon brand glyph color plumbing. Everything else in the web scope (providerIconUtils.ts, providerDriverMeta.ts, session-logic.ts) matches the existing provider registration patterns.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/Icons.tsx Outdated
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants