Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: luvs01/opencodex/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b8850f822d
ℹ️ 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".
✅ READY
Hygiene✅ Deterministic PR hygiene checks passed. |
Co-Authored-By: Epinephrine <luvs01@hanmail.net>
…eCode into live-reconcile The dev merge kept both the facade re-exports and ~660 lines of the pre-split config.ts bodies, producing 30 duplicate exports and a Bun SyntaxError (Cannot export a duplicate function name: 'websocketsEnabled') that broke every bun run entrypoint, including linux-systemd service install. The branch-only adoptPersistedClaudeCode now lives in src/config/live-reconcile.ts next to the baseline guards and also refreshes liveConfigBaseline, matching adoptPersistedProviderIntoLiveConfig; the facade re-exports it. src/config.ts stays at its 460-line cap. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
adoptPersistedClaudeCode replaced the live claudeCode subtree wholesale, so a concurrent settings PUT that had assigned its subtree and yielded before saving lost its mutation while still reporting success. Reconcile baseline, live, and committed subtrees instead: pending live leaves win same-leaf conflicts and disjoint committed changes merge in, matching the guarded-save policy. persistDesktopModeField wrote claudeCode.desktopMode to disk and patched only the live object, so first-party apply (which ends at the mode write) left the armed hand-edit baseline stale; a later unrelated save then read both sides as changed and kept the stale live subtree over the operator's hand edit. Return the committed subtree from the mutation and run it through adoptPersistedClaudeCode like the profile-field writer does. Regression tests: a scoped write keeps a pending live Claude edit, and first-party apply -> hand edit -> unrelated save preserves the hand edit. Co-Authored-By: Epinephrine <luvs01@hanmail.net>
|
✅ Resolved: |
|
✅ Resolved: |
|
✅ Resolved (same issue as the Devin Review thread): |
|
Closing: superseded by combined PR #612, which carries this PR's hand-edit guard rebase after desktop apply (�doptPersistedClaudeCode) together with the auto-refresh preservation and async probe on current dev. Combined tests: 91 pass (4 baseline-identical timeouts). |
Motivation
claudeCode.desktopProfileto disk but did not refresh the in-memory Claude baseline, which could cause later whole-config saves to silently overwrite operator hand-edited security/routing fields underclaudeCode.Description
adoptPersistedClaudeCode(config, persistedClaudeCode)insrc/config.tsto mirror the exact committedclaudeCodesubtree into the long-lived in-memory snapshot and rebase the hand-edit baseline.persistDesktopProfileFieldinsrc/server/management/agent-settings-routes.tsto capture the committedclaudeCodereturned bymutatePersistedConfig()and calladoptPersistedClaudeCode()only after the durable write succeeds.tests/native-claude-desktop-toggle.test.tsthat exercises apply → hand-edit on-diskclaudeCode→ unrelatedsaveConfigPreservingClaudeCode()and asserts the hand edit is preserved.Testing
node_modules/@oven/bun-linux-x64-baseline/bin/bun test tests/native-claude-desktop-toggle.test.tswas run and the focused test file passed.bun run typecheckwas run and completed successfully.bun run privacy:scanwas run and completed successfully.bun test tests/native-claude-desktop-toggle.test.tswith the environment-provided Bun initially failed due to an environment mismatch (node:zlibexportzstdDecompressSyncmissing), which is an execution-platform issue and not a code regression; the repository-provided baseline Bun binary passed the focused tests, and the broader test run encountered unrelated existing timeouts/auth failures in other integration tests when executing the whole suite.Codex Task