Repository navigation
Update from upstream 2.80.0 while preserving fork integrations - #9
Conversation
…ty-integrations-maintenance
…ization-public docs: record scoped release stabilization and verification gates
…-b-nested-http fix(combo): preserve bounded nested HTTP refusal semantics
…-c-fixture-isolation test: isolate release fixtures and release holder leases cooperatively
…i-parity-foundation
…accounts-settings
…ty-integrations-maintenance
…li-parity-observation-api
(cherry picked from commit 8b55e44)
(cherry picked from commit db9997a)
…spaced ids (lidge-jun#6685) * docs(devlog): plan the provider compat lane * fix(openai-chat): apply the Qwen3.8-27B template rule to gateway-namespaced ids LiteLLM serves the model as openai/Qwen3.8-27B, which the leading-system matcher did not accept, so the developer reminder went out as developer and the pinned template answered 400. Accept any leading path segments while the last segment still has to name the checkpoint. Closes lidge-jun#6674
…r new advisories release.yml's dependency audit refused 2.79.0 on a critical advisory published after the candidate was cut: proxy-addr <2.0.8 is vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnets (GHSA-jqcg-44mw-7w3h), reached through @modelcontextprotocol/sdk > express. gui/ reports source-map-js <1.2.2 (GHSA-68fv-2mgg-jv7q, vite > postcss). bun audit fix, lockfiles only, every bump inside its declared range: proxy-addr 2.0.7 -> 2.0.8, fast-uri 3.1.7 -> 3.1.8, ip-address 10.4.0 -> 10.7.1, and in gui/ source-map-js 1.2.1 -> 1.2.2. Both audits now report no vulnerabilities at --audit-level=high.
…-audit-fix release: 2.79.0 dependency audit fix
…lidge-jun#6640) * fix(cursor): preserve bare client tool names for Claude Code sessions When Claude Code connects via /v1/messages using a Cursor-backed model, bare tools (Bash, Read, Write, Edit, Grep, Glob, Task, etc.) were previously aliased with the ocx_client_ prefix. This caused catalog/prompt contradiction with Claude Code's system prompt, triggering fallback to Cursor-native execution frames. OpenCodex's redirect hint (Re-issue this operation NOW through one of the tools: ocx_client_*...) was then flagged by frontier Claude models as prompt-injection, causing refusal loops and halting execution. - Conditionally exempt Claude bare tool names from ocx_client_ aliasing when no Codex shell bridge (exec_command/shell_command) is present in the turn. - Pass the turn's catalog to cursorToolWireName across tool definitions, guidance notes, native exec hints, and request building. - Suppress neighboring-agent tool name warnings in tool guidance when running without a Codex shell bridge. - Add unit tests verifying Claude Code tool preservation and Codex shell bridge aliasing. * fix(cursor): address CodeRabbit review feedback on tool naming and replay - Pass request visible catalog through conversationTurns to toolCallStep so replayed calls use consistent wire names. - Remove overly broad regex from isClaudeClientBareToolName, strictly matching known Claude tools. - Restrict unavailable neighboring-agent warning suppression in tool guidance to catalogs containing Claude bare tools. - Add regression tests for catalog-aware replay, MCP-only neighboring-agent warnings, and response name mapping. * fix(cursor): import OcxTool for catalog-aware replay signatures * test(cursor): move Claude client replay coverage under size cap * fix(cursor): budget Claude client aliases with catalog context * fix(cursor): resolve client tool choices before catalog filtering --------- Co-authored-by: JUN <jun@lidgeai.com>
…fact is group-writable (lidge-jun#6680) * fix(codex-shim): name the path and chmod fix when a private shim artifact is group-writable * test(codex): cover quoted legacy shim chmod recovery --------- Co-authored-by: JUN <jun@lidgeai.com>
…on in doctor (lidge-jun#6679) * fix(service): credit Linux desktop Start at Login as restart protection in doctor * fix(service): validate Linux desktop startup evidence conservatively * fix(service): leave a relocated XDG_CONFIG_HOME uncredited for Linux desktop startup auto-launch 0.5.0 writes the login entry under ~/.config/autostart. When XDG_CONFIG_HOME points elsewhere the session searches another autostart directory, so that entry proves registration but not login startup. * test(service): run the Linux desktop startup fixtures only off Windows The fixtures build POSIX paths with execute bits and symlinks, and the diagnostic itself only runs on Linux, so the Windows shard cannot exercise it. * fix(service): compare XDG_CONFIG_HOME to ~/.config after path resolution --------- Co-authored-by: JUN <jun@lidgeai.com>
…recovery (lidge-jun#6686) * fix(codex): stay quiet on no-op journal recovery and warn on incomplete recovery Co-authored-by: agentHits <140916359+agentHits@users.noreply.github.com> * fix(server): answer a restart drain with a retryable server_restarting code Closes lidge-jun#6642. * docs(server): qualify the Codex retry behavior behind server_restarting * fix(codex): warn when a no-op journal recovery cannot remove the journal --------- Co-authored-by: agentHits <140916359+agentHits@users.noreply.github.com>
…r new advisories (lidge-jun#6687) release.yml's dependency audit refused 2.79.0 on a critical advisory published after the candidate was cut: proxy-addr <2.0.8 is vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnets (GHSA-jqcg-44mw-7w3h), reached through @modelcontextprotocol/sdk > express. gui/ reports source-map-js <1.2.2 (GHSA-68fv-2mgg-jv7q, vite > postcss). bun audit fix, lockfiles only, every bump inside its declared range: proxy-addr 2.0.7 -> 2.0.8, fast-uri 3.1.7 -> 3.1.8, ip-address 10.4.0 -> 10.7.1, and in gui/ source-map-js 1.2.1 -> 1.2.2. Both audits now report no vulnerabilities at --audit-level=high.
…n#6663) * fix(jev): preserve applied effort transitions in combo logs Preserve the caller-to-JEV effort transition in request and attempt requestedEffort labels for the Responses child. Native Chat children keep the caller effort label since they do not apply the JEV override. Telemetry-only change; outbound effort, routing and retry policy are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test(layout): keep the combo-requested-effort registration under the layout file-size threshold --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: JUN <jun@lidgeai.com>
…ge-jun#6664) * fix(cursor): use factual tool redirects for Claude-family models Explicit Claude-family Cursor targets now receive factual tool guidance and native-tool refusals, without instructions to conceal the redirect. The routing-commentary sniffer is no longer armed for them. Empty catalogs report no available tools; other model families keep their legacy wording. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test(layout): keep the cursor-tool-wording registration under the layout file-size threshold * fix(cursor): name redirect tools with the request catalog --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: JUN <jun@lidgeai.com>
…s MAX_PATH (lidge-jun#6694) The ocx-recover-compaction-state- mkdtemp prefix pushed the private-backup path past 260 chars on machines with a deep TMPDIR; openSync handles long paths but the icacls spawn does not, failing with EICACLS 'path not found'.
Integrate lidge-jun/opencodex main at beba8b7. Resolve older squashed upstream copies in favor of current upstream, then port subscription-aware Copilot discovery into the new catalog modules. Preserve the standalone installer, oxc alias, binary release workflow, Copilot API version, workspace tooling, and fork automation policy.
Carry fork main 41db97b while preserving upstream lifecycle reconciliation and documentation. Declare update-pre in upstream capability discovery and regenerate the operating reference. Keep the fork-only automation policy and upstream removal of the stale npm lockfile.
….80.0 [WRONG BRANCH] release: 2.80.0
…-audit-fix [WRONG BRANCH] release: 2.80.0 dependency audit fix
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
💡 Codex ReviewLines 994 to 996 in b9263d1 This blanket guard makes every AGENTS.md reference: src/AGENTS.md:L28-L29 ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Summary
Update the existing integration PR to upstream stable 2.80.0 (
250f17afd) and merge the current forkmain(7b8b5f59c, preview.4). Both tips are ancestors of this branch; merge commits retain attribution and the fork fixes added after the original PR. The fork package version stays0.0.10-preview.4.Preserved fork behavior:
ocx sync/sync-cacherefresh the proxy and enabled Grok/Claude integrations. Claude Desktop profile assignments and the Claude Code gateway cache refresh even when agent injection is disabled. Cold requests using the oldclaude-opus-4-8-20260330Fable slot retain the Fable route instead of becoming Opus.oxc/ocxaliases, checksum verification, atomic updates, andupdate-preremain.scripts/install.sh,src/update/github-prerelease.tsand.github/workflows/tag-release.ymlmatch fork main exactly.Upstream improvements retained include Claude ToolSearch references, expanded Desktop slots and non-date wire aliases with real Anthropic collision protection, Cursor Claude tool wording/redirects, Devin linear tool declarations/results, Jev effort handling, web-search pacing deadlines, service/lifecycle fixes, and the MCP SDK 1.31.0 security update. Claude first-party mode and sibling ownership are checked before gateway writes. Exact operator maps and explicitly Copilot-qualified dateless migration maps retain precedence. Broad non-Copilot fallbacks cannot claim unknown managed Desktop slots.
The broader verification found and fixed a Claude compatibility regression: cold recovery now applies to Copilot aliases without replacing an existing non-Copilot registry. Unknown managed slots retain upstream's unavailable response, and unrelated large provider catalogs do not consume the legacy Copilot date namespace. The endpoint tests cover the fork's disabled native enrichment while confirming that routed requests still work and never receive native credentials. All seven translated READMEs now carry the canonical fork notice and standalone installer instructions; their source hashes and structural parity are current.
Verification
Focused verification for
b9263d17b06435b74b032c8fb5da478eb2c15d9c:bun test --isolate --parallel=2 tests(127.24s).Broader runtime results and limitations
The full runtime suite is not green and this PR remains draft:
bun run testat the previous head293ec1873hit the runner's 900-second limit, exit 124. The report listed 209 unstarted files and four interrupted files; no successful full-suite result is claimed.250f17afd: 380 passed, 3 skipped, 24 failed, 1 error. Kiro model evidence, catalog-route and other failures also reproduce there. This is representative baseline evidence; not every remaining runtime failure has been fully classified.The standard GUI command
bun test testsfailed with 2,767 passes / 176 failures. All observed failure names also reproduced in an unchanged-upstream run (2,766 passes / 177 failures). Isolating test files removed the cross-file React state/warning cascade. The first isolated run had one timing failure; its file passed separately on both branches, and the complete final isolated run passed all 2,943 tests.React Doctor previously completed with exit 0 but reported 19 errors and 1 warning, all in unchanged upstream GUI test fixtures. That diagnostic result remains recorded; it is not described as clean.
No native macOS/Windows runtime or manual desktop/browser verification was performed in this Linux workspace. Only the release workflow is retained, so no PR CI result is claimed. The full suite has not been rerun from scratch after the focused fixes, and broader completion/readiness remains outstanding.
Exact focused regression command
bun test \ tests/test-layout.test.ts \ tests/test-layout-tooling.test.ts \ tests/server/server-jev-combo-e2e.test.ts \ tests/server/combo-requested-effort.test.ts \ tests/claude-integration/claude-desktop-picker.test.ts \ tests/claude-integration/claude-copilot-model.test.ts \ tests/claude-integration/claude-desktop-policy.test.ts \ tests/claude-integration/claude-desktop-picker-routes.test.ts \ tests/claude-integration/claude-desktop-request-model.test.ts \ tests/claude-integration/claude-inbound-tool-reference.test.ts \ tests/claude-integration/claude-desktop-first-party-guards.test.ts \ tests/claude-integration/claude-desktop-1m.test.ts \ tests/claude-integration/messages-native-scope.test.ts \ tests/claude-integration/claude-desktop-native-context.test.ts \ tests/claude-integration/claude-desktop-discovery.test.ts \ tests/claude-integration/claude-fork-copilot-wire.test.ts \ tests/claude-integration/claude-desktop-first-party.test.ts \ tests/claude-integration/claude-desktop-picker-profile.test.ts \ tests/ci-workflows/file-size-ratchet.test.ts \ tests/ci-workflows/tag-release-prerelease.test.ts \ tests/ci-workflows/standalone-installer.test.ts \ tests/codex-integration/github-copilot-model-discovery.test.ts \ tests/codex-integration/fork-native-client-isolation.test.ts \ tests/routing/jev-decision.test.ts \ tests/cli/fork-live-policy.test.ts \ tests/service/autostart-health.test.ts \ tests/lab/core-lab-boundary.test.ts \ tests/web-search/web-search-pacing-deadline.test.ts \ tests/providers/devin-chat-wire-fixes.test.ts \ tests/adapters/openai/openai-chat-qwen38-leading-system.test.ts \ tests/providers/cursor/cursor-blob-claude-client-tools.test.ts \ tests/providers/cursor/cursor-tool-definitions.test.ts \ tests/providers/cursor/cursor-tool-wording.test.ts \ tests/providers/github-copilot/github-copilot-oauth.test.ts \ tests/providers/github-copilot/github-copilot-wire-defaults.test.ts \ tests/providers/github-copilot/github-copilot-sse-rewrite.test.ts \ tests/providers/github-copilot/github-copilot-account-origin.test.ts \ tests/providers/github-copilot/github-copilot-context-tier.test.ts \ tests/providers/github-copilot/github-copilot-stream-contract.test.ts \ tests/claude-integration/claude-messages-endpoint.test.ts \ tests/ci-workflows/docs-readme-translation-parity.test.tsAdditional validation commands:
The timed-out run's remaining-file list was taken directly from its report; it was executed as
bun run test --parallel=2 <209 unstarted files plus three interrupted files>. Serial lanes were executed one file at a time asbun run test --parallel=1 <file>, using the 20 entries inSERIAL_FULL_SUITE_FILESfromscripts/test.ts. Comparison runs used a separate detached worktree at upstream stable with the same Bun 1.4.0 and installed dependency versions. The unchanged build/audit commands and their results are recorded above.Checklist