Skip to content

🪸 feat: Expose Subagent Graphs as a Native Tool - #16764

Open
lia-by-librechat[bot] wants to merge 13 commits into
devfrom
lia/subagent-graph-tool
Open

lia-by-librechat[bot] wants to merge 13 commits into
devfrom
lia/subagent-graph-tool

Conversation

@lia-by-librechat

@lia-by-librechat lia-by-librechat Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Expose the agents SDK's saved-team graph subagents as a third native tool, Subagent Graphs, beside Subagents and Handoffs.

Its settings dialog edits team names and tool identifiers, members, direct DAG connections, entry/result agents, and transition instructions. The shared graph schema validates topology before applying the draft. Each team is dynamically selected by the parent's existing spawn tool and executes in an isolated child graph.

The new subagent_graphs capability and subagents.graphsEnabled flag control graph teams independently. Disabling ordinary subagents does not disable explicitly enabled teams. Removing the graph tool preserves definitions without touching ordinary subagents or handoffs. Editing or removing a saved team preserves the stored graph enablement choice, including omitted legacy flags. The new capability is opt-in by default.

How it works

Native tool → validated saved team → owner-scoped member initialization
  → SDK kind: graph → one designated result returns to the parent

The existing graph executor, member access checks, loading budgets, and persistence remain authoritative. Composer reachability, workspace inheritance, file-sharing activation, input snapshots, and descendant file authorization apply the same deployment capability projection. Disabled teams cannot block Send or impose shared-file limits on ordinary chat. Runtime projection applies the capability choices without mutating stored settings. Legacy graph records retain their previous subagents gate until an explicit graph choice is saved.

Type of change

  • Feature
  • Tests / tooling / CI

Testing

Current pushed head: e63ec7e512fcfb9694824a7511fd7b36eb7876a7. Base: 114394c6a02a3343bab495e7baa9a9a6be89235b.

  • Latest public-metadata correction: 114 focused tests passed, including 84 editor/reachability/native-tool cases and 30 actual endpoint-serialization cases. Touched-file ESLint, formatting/import gates, dependency builds, and production client build passed.
  • API and client tsc --noEmit passed as standalone checks. The earlier combined command timed out and is not passing evidence.
  • Independent review completed at e63ec7e512fcfb9694824a7511fd7b36eb7876a7 with no findings. Source and dependency-free checks only; reviewer Jest, browser, and SDK execution were not run.
  • Current exact-head CI: 2 skipped, 18 queued, 9 success, 10 in_progress. Validation is not complete.
  • Earlier Codex fixes had 134 shared/API/editor tests and API/client/data-provider typechecks passing. Counts overlap; unaffected checks were not rerun for this correction.
  • Local Lighthouse remains incomplete: scratch-only Mongo/Chromium setup succeeded, but the audit exceeded the worker limit. No local budget verdict. Not rerun for this correction.
  • Browser graph execution, full local suites, migrations, dependency validation, and live providers were not rerun. Earlier browser coverage is not a fresh-head result.

Finding Dispositions

All supported findings addressed; no rejected findings.

  • C1/P1: capability-aware switch; edits/removal preserve omitted legacy flags.
  • C2/P1: graph capability remains opt-in, excluded from deployment defaults.
  • C3/P2: client/server aggregate member counting before draft application.
  • C4/P2: implicit attached approval warning, including the public boundary correction below.
  • C5/P2: capability-projected ordinary/handoff descendant reachability, fixed in 9622248d.
  • C6/P3: implicit warning requires executable code; explicit enablement stays independent, fixed in d875aca4.
  • C7/P2: use public statefulCodeSessions.approvalsEnabled so serialized omitted policy is not mistaken for an explicit kill switch, fixed in e63ec7e5.

Screenshots / recordings

Running-app captures succeeded in light and dark mode for the native tool, saved teams, and graph editor. Subagent Graphs is new, so it has no previous settings dialog. Screenshot upload is blocked by GitHub’s unsupported authentication type error.

Risk / compatibility

The pinned SDK rejects graph execution with human-in-the-loop enabled. The dialog explains this limitation. Production approval protection is not bypassed; the dedicated browser execution profile disables approval only in its test deployment.

Legacy graph settings remain compatible under their old capability until changed. Graph-only flags require the new host version and capability. Rollback should disable the new capability rather than assuming an older host understands graph-only enablement.

Checklist

  • I reviewed my own changes
  • Relevant tests have been added or updated
  • Existing relevant tests pass
  • Required dependency changes have been merged/published
  • Required documentation PR: N/A

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 45138f9: adds a third native graph tool, validated DAG editor, independent graph capability/enable flag, and runtime projection preserving legacy teams. Real SDK graph execution passes with approval disabled; production HITL is never bypassed. Focused checks passed; independent review and additional host checks follow.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 874807d: fixes both P2 findings. Public execution metadata includes graphsEnabled; ordinary Subagents toggles retain legacy capability semantics. Regenerated OpenAPI and verified graph-only Project initialization. Focused regressions and OpenAPI consistency pass; final static checks and a fresh independent review follow this head.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 32a75ed: fixes R3/P2 by applying deployment capabilities to every composer reachability and workspace-inheritance path. The subsystem sweep covered flag writers, public metadata, server chat/remote/schedule projection, and client submission. Disabled graph members no longer block Send. Legacy teams retain their original gate. All 135 composer tests, client TypeScript, and scoped static checks pass. R1 and R2 remain fixed in 874807d. Fresh independent review follows this head.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 9fb56bf: fixes R4/P2 and R5/P2. Untouched legacy teams require the ordinary subagents capability; explicit teams require subagent_graphs. The same shared predicates gate initialized roots and every stored descendant in server workspace inheritance. A 45-case capability matrix and nested database-backed routing regressions pass, with 50 shared tests and 477 API tests total. Provider/API/client typechecks and scoped static checks pass. Fresh independent review follows.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 8fb8558: fixes R6/P2. Applying an existing graph draft preserves the current enablement choice, including a disable made while the draft is open; creating a new team remains an explicit add operation. The write helper no longer has an implicit activation default. Added multi-team edit, draft-toggle, removal, and persisted disabled-edit regressions. Focused editor tests, client typecheck, and scoped static checks pass. Full focused/browser checks and independent review follow this head.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 7abc167: fixes R7/P2. File-sharing snapshots, activation, and descendant/recipient authorization now apply required request-scoped capabilities to saved agent contexts. Disabled graph sharing cannot impose manifest limits on ordinary attachments. Coverage includes the capability/flag matrix, raw production-host settings, nested resumed recipients, publication denial/retry, and enabled-graph compatibility. All 120 focused file tests, API TypeScript, package builds, and scoped static checks pass. Fresh independent review follows.

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Lighthouse CI failed. The last 80 log lines contain the measured budgets and assertion failures.


[WebServer] 2026-10-05 04:14:42 info: [StreamServices] Created in-memory stream services

[WebServer] 2026-10-05 04:14:42 info: [GenerationJobManager] Configured with in-memory stores

[WebServer] 2026-10-05 04:14:42 info: HTTP server timeout configuration

[WebServer] 2026-10-05 04:14:42 info: Server listening at http://localhost:3080

[WebServer] 2026-10-05 04:14:42 info: [MCPServersRegistry] Creating new instance

[WebServer] 2026-10-05 04:14:42 info: OAuth reconnect manager initialized successfully.

[WebServer] 2026-10-05 04:14:42 info: Created collection: projects

🤖: global setup has been started
🤖: using baseURL http://localhost:3080
🤖: using E2E user: testuser@example.com
🤖: 🗝  authenticating user: testuser@example.com
🤖: ✔️  localStorage: set Nav as Visible /home/runner/work/LibreChat/LibreChat/e2e/storageState.json
[WebServer] 2026-10-05 04:14:44 info: [agent-triggers] durable delivery engine started

[WebServer] 2026-10-05 04:14:45 info: [schedules] engine started

[WebServer] 2026-10-05 04:14:45 info: Server readiness checks passing.

🤖: ✔️  user successfully registered
[WebServer] 2026-10-05 04:14:48 info: [Login] [Login successful] [Username: testuser@example.com] [Request-IP: ::1] {"requestId":"a72ac083-68c9-453d-827d-8cc5629eef5c","request_id":"a72ac083-68c9-453d-827d-8cc5629eef5c","request_method":"POST","request_path":"/api/auth"}

🤖: ✔️  user successfully authenticated
🤖: ✔️  authentication state successfully saved in /home/runner/work/LibreChat/LibreChat/e2e/storageState.json
🤖: global setup has been finished

Running 1 test using 1 worker

[1/1] [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets
[chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets
Lighthouse run 1/3 wrote /home/runner/work/LibreChat/LibreChat/.lighthouse/lhr-1.report.json

Lighthouse run 2/3 attempt 1 did not complete, retrying: Command failed: /opt/hostedtoolcache/node/24.16.0/x64/bin/node /home/runner/work/LibreChat/LibreChat/node_modules/lighthouse/cli/index.js http://localhost:3080/c/16390000-0000-4000-8000-000000000001 --quiet --preset=desktop --throttling-method=provided --only-categories=performance --chrome-flags=--headless=new --extra-headers={"Cookie":"token_provider=librechat; refreshToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZhYzMyNDM0ZDlkNTY5MDQ0ODkzODcyYiIsInNlc3Npb25JZCI6IjZhYzMyNDNiZDlkNTY5MDQ0ODkzODc5ZiIsImlzc3VlZEF0TXMiOjE3OTExNzM2OTE1NzgsImlhdCI6MTc5MTE3MzY5MSwiZXhwIjoxNzkxMTc3MjkxfQ.v3ATg73xi6McI8rO47Yv2FrVI5HPXYNr0xh9UzpYWBQ"} --output=json --output=html --output-path=/home/runner/work/LibreChat/LibreChat/.lighthouse/lhr-2

  1) [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

    Error: Command failed: /opt/hostedtoolcache/node/24.16.0/x64/bin/node /home/runner/work/LibreChat/LibreChat/node_modules/lighthouse/cli/index.js http://localhost:3080/c/16390000-0000-4000-8000-000000000001 --quiet --preset=desktop --throttling-method=provided --only-categories=performance --chrome-flags=--headless=new --extra-headers={"Cookie":"token_provider=librechat; refreshToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZhYzMyNDM0ZDlkNTY5MDQ0ODkzODcyYiIsInNlc3Npb25JZCI6IjZhYzMyNDNiZDlkNTY5MDQ0ODkzODc5ZiIsImlzc3VlZEF0TXMiOjE3OTExNzM2OTE1NzgsImlhdCI6MTc5MTE3MzY5MSwiZXhwIjoxNzkxMTc3MjkxfQ.v3ATg73xi6McI8rO47Yv2FrVI5HPXYNr0xh9UzpYWBQ"} --output=json --output=html --output-path=/home/runner/work/LibreChat/LibreChat/.lighthouse/lhr-2
    Runtime error encountered: Something went wrong with recording the trace over your page load. Please run Lighthouse again. (NO_NAVSTART)


    attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/test-failed-1.png
    ────────────────────────────────────────────────────────────────────────────────────────────────

    Error Context: e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/error-context.md

    attachment #3: trace (application/zip) ─────────────────────────────────────────────────────────
    e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip
    Usage:

        npx playwright show-trace e2e/lighthouse/.test-results/load-serial-database-latency-stays-within-web-vitals-budgets-chrome/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────


🤖: global teardown has been started
2026-10-05 04:16:23 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-10-05 04:16:23 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ✅  Found user in Database
🤖:  ✅  Deleted 1 convos & 2 messages
🤖:  ✅  Deleted user from Database
🤖: global teardown has been started
2026-10-05 04:16:24 �[32minfo�[39m: �[32mMongo Connection options�[39m
2026-10-05 04:16:24 �[32minfo�[39m: �[32m{�[39m
�[32m  "bufferCommands": false�[39m
�[32m}�[39m
🤖:  ✅  Connected to Database
🤖:  ⚠️  User not found in Database
  1 failed
    [chrome] › e2e/lighthouse/load.spec.ts:10:5 › serial database latency stays within web-vitals budgets 

Open the full run

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

CI at 7abc167: Lighthouse produced report 1, then failed twice to record report 2 with NO_NAVSTART before a performance-budget verdict. The installed CLI refused the job rerun. No source or budgets changed to mask this recording failure. File-sharing, host, remote-controller, client, OpenAPI, and scoped static regressions pass locally; independent review is in progress.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 53f0f9e: fixes R8/P2. Strict Management API responses now preserve graphsEnabled and shareFiles, matching the accepted persisted subagent contract. Regenerated Agent response OpenAPI. Legacy/explicit flags and file-sharing choices round-trip through create, update, GET, and list without relaxing unknown-field rejection. All 82 focused Management API tests, API TypeScript, OpenAPI consistency, package builds, and scoped static checks pass. Fresh independent review follows.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Independent review complete for 53f0f9e: no findings. All eight prior P2 findings are fixed, with none rejected or outstanding. The full diff was reviewed across capabilities, saved settings, member access, budgets, workspace routing, file authorization, and Management API contracts. Local verification includes 370 client tests and 330 Management/file-boundary tests. SDK graph HITL support is not included; the existing guard remains unchanged.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head d64bb55: merged dev at 114394c, preserving per-call machine placement, settlement, and tool context attachment. Graph sharing capability checks now apply to the new machine-routing admission helper as well as snapshots and file-session authorization. Added coverage to the existing sharing capability matrix. Focused checks and independent review follow this head. SDK graph HITL support remains a separate planned change.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Independent review complete for d64bb55: no findings. Current dev machine-routing placement, settlement, context attachment, and routed-member loading are preserved. All eight prior P2 findings remain fixed; none rejected or outstanding. Local checks passed: 392 API graph/routing tests, 39 host initialization tests, 282 client native/composer tests, all changed-workspace typechecks, package builds, OpenAPI consistency, and PR static/English-key gates. SDK graph HITL remains planning-only.

@danny-avila

Copy link
Copy Markdown
Collaborator

@codex review the latest head, final review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-05T13:43:13.346924Z d64bb55 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d64bb55ea9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const { control, getValues, setValue } = useFormContext<AgentForm>();
const subagents = useWatch({ control, name: 'subagents' });
const graphs = subagents?.graphs ?? [];
const enabled = isSubagentGraphsEnabled(subagents);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Honor capability gates when preserving legacy graph state

When a deployment enables only subagent_graphs, a legacy record with enabled: true and no graphsEnabled is intentionally disabled by resolveSubagents(config, capabilities), but this capability-less call reports it as enabled. Consequently, opening the graph editor shows the switch on, and saving an unrelated edit passes this enabled value to write, persists graphsEnabled: true, and silently activates a previously dormant team. Pass agentsConfig.capabilities here so edits preserve the effective mixed-version state rather than changing authorization.

AGENTS.md reference: AGENTS.md:L45-L52

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 9958b45. The switch now uses deployment capabilities. Unrelated edits and removal preserve the stored graphsEnabled choice, including omitted legacy flags. New teams and explicit toggles alone change activation. Mixed-capability regressions pass.

Comment thread packages/data-provider/src/config.ts Outdated
AgentCapabilities.web_search,
AgentCapabilities.artifacts,
AgentCapabilities.subagents,
AgentCapabilities.subagent_graphs,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep the graph capability opt-in by default

For installations that omit endpoints.agents.capabilities, adding subagent_graphs to defaultAgentCapabilities automatically exposes and authorizes this new orchestration feature after upgrade. That changes the default behavior rather than merely making the new lever configurable, and can make multi-agent graph execution available without an administrator choosing it. Leave this capability out of the default list and document it alongside the other opt-in capabilities.

AGENTS.md reference: AGENTS.md:L90-L92

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 9958b45. Removed subagent_graphs from defaultAgentCapabilities. The existing config enum still supports explicit opt-in. The default-capability regression passes. No documentation files changed.

};
const save = () => {
if (!draft) return;
const parsed = graphSubagentSchema.safeParse(draft.graph);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate the aggregate graph member limit before applying drafts

When several individually valid teams collectively reference more than MAX_SUBAGENT_GRAPH_NODES (50) unique agents, this per-team parse succeeds and each draft is applied to the form, even though agentSubagentsSchema rejects the combined configuration when the agent is finally saved. The UI permits up to 10 teams with 32 members each, so this is reachable without bypassing any controls and leaves users unable to save after completing the editor flow. Validate the prospective full subagents collection, including ordinary agent_ids, before calling write.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 9958b45. Prospective drafts now count unique targets across ordinary agent_ids and every team before writing the form. Client and server share the same counter; tests cover the boundary and deduplication.

</CountPill>
}
>
{agentsConfig?.toolApproval?.enabled === true && (

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Warn when attached code implicitly enables approval wiring

For agents using an attached code environment, resolveToolApprovalPolicy synthesizes { enabled: true, mode: 'bypass' } when the endpoint omits toolApproval, and the resumable chat path therefore still passes humanInTheLoop to the SDK. The pinned SDK rejects graph-team execution with that wiring, but this raw-config check hides the warning because agentsConfig.toolApproval?.enabled is undefined. Detect the effective approval state (including attached-code/BYOM wiring) so these users are told that their configured graph cannot execute.

AGENTS.md reference: AGENTS.md:L49-L52

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 9958b45. The warning includes implicit attached-code approval wiring from the current form and graph members, while honoring the explicit endpoint enabled:false override. Tests cover the implicit baseline, enabled/disabled endpoint policies, and managed environments.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The serialized endpoint boundary is now also fixed in e63ec7e. The implicit warning uses public statefulCodeSessions.approvalsEnabled, not the serialized enabled:false default. Actual serializer-policy tests and public-response component tests pass; the exact-head independent review returned no findings.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 9958b45: fixes Codex capability-preservation, opt-in-default, aggregate-member-limit, and implicit attached-approval warning findings. Shared graph tests (52), editor/native-tool tests (30), and scoped static gates passed. Remaining workspace checks, Lighthouse preparation, CI, and fresh exact-head independent review follow.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 2b87550: completes nullable code-environment handling and fully typed approval-warning fixtures. Codex’s four findings remain fixed. API, client, and data-provider typechecks pass; focused shared/API/editor/native-tool tests pass (134 total). Package/frontend builds and touched-file static gates pass. Local Lighthouse startup was adapted for read-only /tmp and Chromium, but the audit exceeded the worker’s execution limit. Fresh exact-head independent review and CI follow.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head 9622248: fixes C5/P2 by deriving the graph approval warning from capability-projected run reachability, including ordinary subagent and handoff descendants. Form edits update the warning; disabled paths and the endpoint override remain respected. Production approval enforcement is unchanged. All 69 focused editor/reachability/native-tool tests, client typecheck, touched-file static gates, and production client build passed. Fresh exact-head independent review and CI follow.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head d875aca: fixes C6/P3 by requiring execute_code for the implicit attached-code approval warning. Explicit endpoint enabled:true remains independent. The capability matrix reproduced both parent and descendant false positives. Final focused tests, client typecheck/build, and CI run in parallel; fresh exact-head independent review follows.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Verified head d875aca: all 81 focused warning/reachability/native-tool tests passed. Client typecheck, touched-file static gates, dependency builds, and production client build passed. C6/P3 is fixed; C1–C5 remain resolved. Fresh exact-head independent review and CI are in progress. Lighthouse and browser execution were not rerun for this warning-only correction.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Head e63ec7e: fixes C7/P2 at the serialized endpoint boundary. The implicit attached-code warning uses statefulCodeSessions.approvalsEnabled, not the serialized toolApproval.enabled:false default. Explicit enablement stays independent; executable-code and reachability gates remain intact. Public-response client tests and actual serializer/runtime-policy tests pass (114 total), with touched-file static gates and production client build. Standalone client/API typechecks, fresh exact-head independent review, and CI follow.

@lia-by-librechat

Copy link
Copy Markdown
Contributor Author

Independent review completed at e63ec7e: no findings. C1–C7 are fixed, including the serialized endpoint approval boundary; no rejected findings. Latest local verification: 114 focused tests, API/client typechecks, touched-file static gates, and production client build passed. CI: 2 skipped, 18 queued, 9 success, 10 in_progress. Source-only independent review with dependency-free checks. Browser execution and Lighthouse were not rerun; prior local Lighthouse remains incomplete.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants