feat(cli): Phase 3 β one-command onboarding (quickstart) + interactive + doctor/replay polish + Zig 0.16 star#28
Conversation
- Add `orca quickstart` one-command onboarding (doctor β init β setup) - Implement real numbered interactive multi-select in `interactive.zig` - Add summary line + `--verbose`/`-v` to `doctor` - Add `--list` + graceful no-sessions fallback to `replay` - Stop suppressing init "Next steps" during guided `setup` - Star Zig 0.16.0 as the new minimum / primary version - Begin 0.16 evolution (main entry notes, hygiene cleanups, removal of duplicated TTY logic) Includes comprehensive TDD tests and full verification. Refs: Phase 3 plan, thermo-nuclear review, Zig 0.16 migration
Senior Zig Code Review for PR #28 (feat/phase3-onboarding-zig16-star)Reviewer: Grok (acting as senior Zig systems programmer + thermo-nuclear code quality per ECC zig-code-review + zig + zig-best-practices + thermo-nuclear skills) Date: 2026-05-30 Branch: f11fcca (plus review fmt fix commit 6dc355a on top) Pass 1: Fast Context & Risk AssessmentPR Intent (from description + code): Deliver Phase 3 guided onboarding (new PR Comments/Reviews: 0 (no threads, no reviews, no issue comments). All "address every comment" is vacuously satisfied. Risk Level: Medium-High (transitional 0.15β0.16 codebase + new user-facing orchestration + interactive input parsing + allocator-heavy result ownership). High-Risk Areas Identified:
Baseline Verification (on repo's current dev toolchain 0.15.2):
This tells us the incompatibility is pre-existing (main already had 3 occurrences of 0.16-only syntax in style.zig); this PR correctly aligns the declared minimum with reality. Pass 2: Deep ReviewSafety & Correctness (Zig-specific)Error Handling:
Resource Management:
Allocators:
Undefined / Slices / Pointers: No issues. All slices from dupe/toOwnedSlice properly owned or freed. anyerror: Not introduced in new surfaces. comptime: None needed here; not missed. 0.16 Version-Appropriate APIs (per loaded zig skill):
Conclusion on Safety: The new Phase 3 logic is explicitly safe and tested. The 0.16 drift is project state, not introduced by this PR. Quality & Maintainability
Thermo-Nuclear Structural Assessment (per loaded skill):
Testing:
Issues by SeverityCritical: None in the delivered changes. (The 0.15-vs-0.16 compile story is pre-existing project state that this PR correctly surfaces via the pin bump.) Major: None. Minor:
Nit:
TDD-Driven Fixes Performed (this review)
No other logic bugs were present that required new failing tests + minimal impl. The existing TDD tests in the PR already provided excellent coverage for the risky allocator and parsing paths. All post-fix verification (see below) re-run and green. Final Verification (Mandatory, post-fixes)
Summary for MaintainersWhat was reviewed: All 14 files, +559/-34 diff, new quickstart.zig, interactive MVP prompt, doctor Summary+verbose, replay --list/graceful, help/docs/zon updates, 0.16 star declaration. Issues found + resolved: Only fmt violations (Critical for style gate) β auto-fixed + committed cleanly. Tests added/modified by PR (plus our fmt): 5+ new interactive cases, doctor brief/verbose, replay list+empty, quickstart dispatch tests. All green where executable on current toolchain. Verification results: As above. The 0.16 toolchain requirement is now explicit and matches the code's actual syntax usage. Final recommendation: Ready to merge to main. The Phase 3 onboarding UX is a clear win for users, the implementation is safe (especially the allocator paths), TDD was followed, changes are minimal for the value, and the version pin update is honest. The bulk std.Io migration remains correctly scoped as follow-up work. Once this lands, the next migration tranche should adopt LGTM β ship it. (If you want me to post this as a formal review or merge via the GitHub API after your approval, say the word.) |
Summary
This PR delivers Phase 3 of the Orca CLI guided onboarding initiative plus the decision to make Zig 0.16.0 the new star / primary supported version.
Whatβs included
Phase 3 Onboarding Features
orca quickstartcommand β the happy path in one command:doctorβinit(if needed) βsetupinteractive.zig(supports1 3,all,none, or empty to accept defaults)doctornow shows a one-lineSummary:by default;--verbose/-vrestores the full dense reportreplaygains--listand graceful behavior when no sessions exist (no more scary error on first use)setupno longer suppressesinitβs helpful βNext stepsβ blockZig 0.16 Star Migration (initial tranche)
build.zig.zonnow declaresminimum_zig_version = "0.16.0"main.zignow contains clear 0.16std.process.Init+std.Iotarget documentationWhy
Users currently have to remember and type
doctor && init && setup. This PR removes that friction while making the first-run experience dramatically more obvious and forgiving.Making 0.16 the star aligns the project with the modern Zig I/O model and sets us up for the rest of the
std.Iomigration.Testing & Verification
zig buildcleanzig test src/cli/interactive.zigβ 13/13 passing (including the 5 new Phase 3 tests)orca quickstart --autoorca doctor(brief) vs--verboseorca replayandorca replay --list(with and without fake sessions)setuppath shows init βNext stepsβ as expectedMigration Notes (for 0.16)
This PR is the first slice of the 0.16 evolution. The bulk of the
std.Ioconversion (especially insrc/cli/and the large test surface) remains as follow-up work. See the updated session plan for the detailed migration roadmap.Files Changed
14 files, +559 / -34 (new
quickstart.zigis the largest addition).Ready for review.