fix(cli): preserve existing config during setup - #3802
Conversation
Reimplement #3632 with private hardening before bytes, no-replace hard-link publication, descriptor-identity cleanup and no truncation of shared/published inodes. Existing saveConfig updates remain unchanged. Consumer follows in the next stack layer; final CI pending. Co-authored-by: SB Yoon <44089734+yansigit@users.noreply.github.com> Co-authored-by: Yumi <automation@sbyoon.com>
Use exclusive initial publication, stop safely on collision/invalid input/cancellation, and carry cancellation into the existing native write commit guard. Add real CLI and queued-lock regressions; no local suites run. Completes the consumer of the #3632 carry. Co-authored-by: SB Yoon <44089734+yansigit@users.noreply.github.com> Co-authored-by: Yumi <automation@sbyoon.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (11)
📝 WalkthroughWalkthroughChangesConfig initialization and
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant InitCLI
participant ConfigInitializer
participant FileSystem
participant CodexIntegration
User->>InitCLI: start ocx init
InitCLI->>ConfigInitializer: observe config state
ConfigInitializer->>FileSystem: inspect config path
FileSystem-->>ConfigInitializer: missing, existing, or invalid
ConfigInitializer-->>InitCLI: initial state
InitCLI->>User: collect setup answers
User-->>InitCLI: answers or cancellation
InitCLI->>ConfigInitializer: initialize config if missing
ConfigInitializer->>FileSystem: publish through no-replace hard link
FileSystem-->>ConfigInitializer: created or publication failure
ConfigInitializer-->>InitCLI: initialization outcome
InitCLI->>CodexIntegration: inject config and install shim
CodexIntegration-->>InitCLI: completion or cancellation
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
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. |
Final CI 34047664926 / job 101526036510 proved 11 injected publication cases stopped at the existing default-provider validator. Populate the provider in the fixture and separately assert invalid candidates still never publish. Production validation is unchanged.
Final CI 34047664926 / job 101526036489 found Response rejects stdout after prompt consumption. Reacquire the released stream reader for remaining bytes and retain all cancellation/collision assertions. No production code changes or local test runs.
리뷰 · 우선순위 74 / 80이전 층 #3796이 “없을 때만 hard-link로 처음 게시”하는 원시 연산이라면, 이 PR은 그 소비자를 경로 확인: 실질 변경은
메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Controlled Windows probe 34051272609 proved a healthy 17s helper fails the old15s readiness wait on baseline and candidate;30s passes original assertions and still fails a successor-denial mutant. Keep the45s outer budget, helper, runtime manager and assertions unchanged.
Controlled proof34053484372: baseline and candidate old10s killed a healthy12s child;Win30 passes six original assertions and still detects the account-identity guard mutation. Keep non-Windows child10s, declare45s outer case. No production or assertion changes.
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. |
Summary
ocx initand its setup alias to exclusive initial configuration publication. Existing valid files are preserved before prompting; invalid or concurrently created files stop setup without overwriting them.Track 3 manual stack, layer 6 and cumulative validation head. Depends on #3796. Earlier layers: #3786 -> #3788 -> #3789 -> #3790 -> #3796. The final branch incorporates dev through
eff908e0before validation. This is an ordinary branch chain, not a registered native stack.Verification
git diff --cached --checkpassed. No local tests, typecheck, builds or suites were run, as explicitly requested by the maintainer.[skip ci]under the maintainer's explicit final-head-first policy. Missing/pending lower tests are not passing evidence. Only an actual failed final run triggers lower-ref isolation.Cumulative tested source:
9ea896737bd17085ebb8a69b3320c9cace61889e, based on deveff908e0fb9452d5ff2952af1c5dafc1c4c35dd9.cli-modelsfirst-child 15-second watchdog. One unchanged-head rerun of that shard completed 3,489 cases (3,465 pass, 24 skip, 0 fail); the first models case took 943 ms. The initial failure is retained; the slow phase remains unproven and no flakiness fix is claimed.The maintainer explicitly authorizes dev admin integration and final-head-first validation for this manual chain: #3786 → #3788 → #3789 → #3790 → #3796 → #3802. Lower automatic tests are deferred with
[skip ci], not represented as passing. No local tests, typecheck, builds or suites were run; pushes used--no-verify. Merge commits preserve source ancestry and suppress duplicate lower CI; fresh head/base/actor/review checks and resulting tree checks accompany each merge.Checklist
Co-authored-by: SB Yoon 44089734+yansigit@users.noreply.github.com
Co-authored-by: Yumi automation@sbyoon.com
Landing confirmed: merged into
devasf89b815090020f52089801b50f569a777bdfdc0a. The final chain merge isf89b815090020f52089801b50f569a777bdfdc0a; its tree846b8ffc383fc0ba99486917bdfb820a0fa432baequals the tested cumulative source. Source ancestry and every merge were verified after fetchingdev.Summary by CodeRabbit
New Features
ocx initnow creates configuration only when no configuration exists.Bug Fixes
Documentation