fix(integrations): make the Codex dashboard toggle truthful (carry of #3407) - #3556
fix(integrations): make the Codex dashboard toggle truthful (carry of #3407)#3556lidge-jun wants to merge 5 commits into
Conversation
…3407) Disabling Codex from the Integrations overview opened the Grok Build consequence dialog, the status API handed the dialog OpenCodex's own config path instead of the effective $CODEX_HOME/config.toml, and the Codex card kept its pre-toggle state until a full reload because the routing resource was never refreshed (#3406). - IntegrationsOverview: Codex-specific consequence copy (six new i18n keys in every locale); desired switch state (toggleOn) drives both the switch and its accessible label; refreshNativeDetails also refreshes codexResource after a Codex mutation. - overview-clients: codexRow takes the native status row so the switch shows desired state, the badge stays derived from observed routingInjected, and togglePath / toggleBlocked come from the native payload. - native-integration-routes: codexStatus reports join(getCodexHome(), "config.toml"). - Tests: rows, mounted surface (no PUT before confirm, correct PUT, refreshed switch and badge), state merge, and the backend toggle route with an isolated CODEX_HOME (realpath'd so macOS /var vs /private/var agree). Carries #3407 onto the current stack head via a clean merge; the only change on top is the realpath fixture fix. Closes #3406 Co-authored-by: turin <koomj5258@gmail.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
✅ Deterministic PR hygiene checks passed. |
Ingwannu
left a comment
There was a problem hiding this comment.
The product direction is coherent on this stacked head: the switch uses desired state, the badge remains observed routing state, Codex receives its effective CODEX_HOME/config.toml path instead of OpenCodex's config path, and the post-mutation refresh covers both native details and the Codex routing resource. The screenshot and focused GUI/backend tests cover the user-visible change.
I am requesting changes because this PR targets codex/3464-launchd-stable-launcher, whose parent chain (#3554 -> #3551 -> #3547) is still blocked. UI/text changes also require final maintainer confirmation and exact-head GUI/CI evidence on the integration base.
After the parent chain lands, retarget/rebase this carry onto the then-current dev. Ensure the final diff contains only the Codex toggle/backend/docs/i18n/test changes and does not retain unrelated stack-ledger deletions, then rerun exact-head Cross-platform CI, React Doctor, GUI lint/i18n/build, and the focused surface tests. I will re-review that final head; do not merge into the temporary parent branch.
리뷰 · 우선순위 69 / 80이 PR은 Integrations 개요의 Codex 카드가 지금 라인 IntegrationsOverview.tsx ConsequenceDialog - 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Summary
Disabling Codex from the Integrations overview opened the Grok Build consequence dialog, the status API handed that dialog OpenCodex's own config path instead of Codex's effective
$CODEX_HOME/config.toml, and the Codex card kept its pre-toggle state until a full page reload because the routing resource was never refreshed after the mutation (#3406).gui/src/pages/integrations/IntegrationsOverview.tsx: Codex-specific consequence copy (integrations.dialog.codex.*, six keys added to every locale: en/de/fr/ja/ko/ru/tr/zh/zh-TW); the desired switch state (toggleOn) now drives both the switch and its accessible label;refreshNativeDetailsalso refreshescodexResourceafter a Codex mutation so the badge follows observed routing immediately.gui/src/pages/integrations/overview-clients.ts:codexRowtakes the native status row — the switch shows desired state, the badge stays derived from observedroutingInjected, andtogglePath/toggleBlockedcome from the native payload (unsettled native read → unknown; settled-but-missing → no toggle).src/server/management/native-integration-routes.ts:codexStatusreportsjoin(getCodexHome(), "config.toml"); Claude keepsgetConfigPath().guides/codex-integration.mddesired-switch vs observed-badge paragraph.Carries #3407 (author @turin-dev) onto the current stack head as a clean merge, so the original commits stay in history; the only change on top is a
realpathSyncon the test fixture (macOS/varvs/private/var).Co-authored-bytrailer is in the merge commit.Security note (MAINTAINERS.md): management-API surface change limited to the reported path string for the Codex client; no auth gate, credential, or write-path change.
GUI screenshot (Codex-specific disable dialog naming the effective config file):
Stack (260905 bug triage, position 5 of 5; base is #3554's head — retarget to
devafter the parents land):devUnit:
devlog/_plan/260905_bug_triage_stack/(000, 005, 050).Verification
bun run typecheck— exit 0.bun test tests/codex-integration/native-codex-toggle.test.ts— 7 pass / 0 fail (the effective-path assertion failed before the realpath fix on macOS; passes after).cd gui && bun test tests/integrations-overview-rows.test.ts tests/overview-state-merge.test.ts tests/integrations-surfaces.test.tsx— 51 pass / 0 fail.bun run lint:gui,cd gui && bun run lint:i18n,cd gui && bun run build— clean.bun run privacy:scan— passed.Closes #3406
Checklist
devafter it landsbun run typecheckpassesbun run privacy:scanpassesguides/codex-integration.md)Co-authored-bytrailer