docs: full-file branch sweep of run_setup.bat (Part VIII) - #402
Conversation
Systematically checked all 164 labels in run_setup.bat against the existing 33 documented scenarios and found 4 genuine gaps, all sourced from real CI evidence (run 30328748330): - Scenario 34: the REQ-002 interactive entry picker (multiple .py files, no clear main/app winner) -- previously undocumented. - Scenario 35: the REQ-021 pre-flight syntax-error rejection, plus a real, previously-undiscovered bug it exposed -- total REQ-009 provider-tier exhaustion falls through :die's call-frame-only return and reaches :preflight_compile with an empty HP_PY, producing a misleading "your program has a syntax error" message instead of surfacing the real "no interpreter found" cause. Logged as CLAUDE.md Active Backlog item 14 with full trace and a suggested fix. - Scenario 36: the REQ-007 system-Python build-consent gate (distinct from REQ-014's "use system Python at all" gate) and the resulting no-EXE interpreter-only path. - Scenario 37: the EXE smoke-run diagnostic hints mechanism ([HINT][DATA_FILE]/[HINT][HIDDEN_IMPORT]/[HINT][RUNTIME_MISMATCH]), a companion to Scenario 22's hidden-import auto-recovery exhaustion. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A4iE1BRSkUETwz237XeuTW
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📜 Recent review details⏰ Context from checks skipped due to timeout. (1)
🧰 Additional context used📓 Path-based instructions (3)**/*📄 CodeRabbit inference engine (AGENTS.md)
Files:
CLAUDE.md📄 CodeRabbit inference engine (AGENTS.md)
Files:
**/*.{md,bat,cmd}📄 CodeRabbit inference engine (AGENTS.md)
Files:
🔇 Additional comments (4)
📝 WalkthroughSummary by CodeRabbit
WalkthroughDocuments five bootstrapper execution branches in Scenarios 34–38 and adds Active Backlog items for misleading syntax-error reporting after provider exhaustion and potentially unbounded EXE diagnostic reruns. ChangesBootstrapper documentation
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Referenced elsewhere in the doc (e.g. Scenario 9's note about the bootstrapper's own root taking this path) but never shown directly: the shortest path in run_setup.bat, when PYCOUNT is zero -- no network activity, no provider selection, a clean exitCode 0 with state no_python_files. Completes the full-file sweep started in the prior commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A4iE1BRSkUETwz237XeuTW
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/demo-bootstrapper-output.md`:
- Around line 2246-2259: Align the documented claims with enforced tests: at
docs/demo-bootstrapper-output.md lines 2246-2259, update
tests/selfapps_preflight.ps1 so its $pass condition includes $noExe; at
docs/demo-bootstrapper-output.md lines 2340-2350, update
tests/selfapps_sysbuild.ps1 to assert interpreter smoke output and status.
Preserve the existing scenario behavior while making both claims test-enforced.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 7410a492-4225-4631-ba2e-2a7414004f88
📒 Files selected for processing (2)
CLAUDE.mddocs/demo-bootstrapper-output.md
📜 Review details
⏰ Context from checks skipped due to timeout. (9)
- GitHub Check: auto_merge
- GitHub Check: Batch syntax/run check (uv-dl-fallback)
- GitHub Check: Batch syntax/run check (uv)
- GitHub Check: Batch syntax/run check (justme-test)
- GitHub Check: Batch syntax/run check (conda-full)
- GitHub Check: Batch syntax/run check (contract-uv)
- GitHub Check: Batch syntax/run check (real)
- GitHub Check: Batch syntax/run check (cache)
- GitHub Check: Batch syntax/run check (contract-uv-fail)
🧰 Additional context used
📓 Path-based instructions (4)
**/*
📄 CodeRabbit inference engine (AGENTS.md)
Treat GitHub Actions results, especially Windows runner results, as authoritative; local or sandbox runs are advisory.
Run the full mandatory sanity sweep before every commit, extending the ASCII file list to cover all files touched by the change.
Files:
CLAUDE.mddocs/demo-bootstrapper-output.md
CLAUDE.md
📄 CodeRabbit inference engine (AGENTS.md)
Run the narrowly scoped advisory Markdown lint for
CLAUDE.md; new Active Backlog entries must be bullets with the identifier in prose, reserving literal ordered-list syntax for grandfathered item 7.
Files:
CLAUDE.md
**/*.{md,bat,cmd}
📄 CodeRabbit inference engine (AGENTS.md)
Document
run_setup.batlocations using stable label or subroutine names rather than exact line numbers.
Files:
CLAUDE.mddocs/demo-bootstrapper-output.md
**/*.{bat,cmd,ps1,py,yml,yaml,json,md,sh}
📄 CodeRabbit inference engine (CLAUDE.md)
Use ASCII-only text; avoid emojis, curly quotes, em-dashes, and other non-ASCII characters.
Files:
CLAUDE.mddocs/demo-bootstrapper-output.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: mixmansoundude/Python_vs_Windows
Timestamp: 2026-07-31T01:33:05.625Z
Learning: Keep the knowledge documents current in the same commit when a change teaches or invalidates a lesson; edit existing entries rather than only appending.
Learnt from: CR
Repo: mixmansoundude/Python_vs_Windows
Timestamp: 2026-07-31T01:33:05.625Z
Learning: Freeze scope for the current iteration loop, implement exactly one missing feature slice, and add exactly one missing test per loop.
🔇 Additional comments (8)
docs/demo-bootstrapper-output.md (7)
85-89: LGTM!
2169-2186: LGTM!
2188-2233: LGTM!
2237-2244: LGTM!Also applies to: 2261-2303
2307-2338: LGTM!
2352-2356: LGTM!
2360-2401: LGTM!CLAUDE.md (1)
1086-1136: LGTM!
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/demo-bootstrapper-output.md (1)
2370-2374: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick winBound the diagnostic EXE rerun.
:exe_smokerun_hintsinvokes the EXE directly with redirected output and no timeout, so an application that hangs or waits for input can hang the bootstrapper. Reuse the bounded smoke-run helper or add an independent termination deadline before pattern matching stderr.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/demo-bootstrapper-output.md` around lines 2370 - 2374, Update :exe_smokerun_hints to run the diagnostic EXE through the existing bounded smoke-run helper, or enforce an independent termination deadline before stderr pattern matching. Preserve the targeted hint behavior while ensuring hung or input-blocked applications cannot stall the bootstrapper.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/demo-bootstrapper-output.md`:
- Around line 2427-2429: Update the documentation around the captured bootstrap
log and the `~bootstrap.status.json` example so it matches the stated duplicate
behavior: either include both the plain console line and timestamped `:log` line
in the capture block, or revise the paragraph to explicitly state that the
duplicate is omitted.
---
Outside diff comments:
In `@docs/demo-bootstrapper-output.md`:
- Around line 2370-2374: Update :exe_smokerun_hints to run the diagnostic EXE
through the existing bounded smoke-run helper, or enforce an independent
termination deadline before stderr pattern matching. Preserve the targeted hint
behavior while ensuring hung or input-blocked applications cannot stall the
bootstrapper.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 2d284f9a-5c44-4aa9-8609-a948ca42845f
📒 Files selected for processing (1)
docs/demo-bootstrapper-output.md
📜 Review details
⏰ Context from checks skipped due to timeout. (8)
- GitHub Check: Batch syntax/run check (contract-uv-fail)
- GitHub Check: Batch syntax/run check (justme-test)
- GitHub Check: Batch syntax/run check (real)
- GitHub Check: Batch syntax/run check (uv)
- GitHub Check: Batch syntax/run check (contract-uv)
- GitHub Check: Batch syntax/run check (cache)
- GitHub Check: Batch syntax/run check (uv-dl-fallback)
- GitHub Check: Batch syntax/run check (conda-full)
🧰 Additional context used
📓 Path-based instructions (3)
**/*
📄 CodeRabbit inference engine (AGENTS.md)
Treat GitHub Actions results, especially Windows runner results, as authoritative; local or sandbox runs are advisory.
**/*: Update the relevant knowledge document in the same commit when a change teaches or invalidates a lesson; edit existing entries rather than only appending.
For each iteration loop, freeze scope, fix CI before tests and product code, implement exactly one feature slice, and add exactly one missing test.
Run the full documented sanity sweep before every commit, extending the ASCII file list to cover files touched by the change.
Files:
docs/demo-bootstrapper-output.md
**/*.{md,bat,cmd}
📄 CodeRabbit inference engine (AGENTS.md)
Document
run_setup.batlocations using stable label or subroutine names rather than exact line numbers.
Files:
docs/demo-bootstrapper-output.md
**/*.{bat,cmd,ps1,py,yml,yaml,json,md}
📄 CodeRabbit inference engine (CLAUDE.md)
Keep repository text ASCII-only; do not add emojis, curly quotes, em-dashes, or other non-ASCII characters.
Files:
docs/demo-bootstrapper-output.md
- Scenario 35/36: precisely distinguish what each test's own $pass gate enforces from what's merely observed/present in the real captured log (self.preflight.syntax doesn't gate on noExe; self.sysbuild.decline doesn't gate on the interpreter-smoke success lines). Also corrects Scenario 36's test name (self.sysbuild.decline, not self.ux.system.gate.accept). - Scenario 38: the capture block only showed one of the two real, back-to-back "No Python files detected" lines despite prose claiming both were shown; added the second (timestamped :log form). - CLAUDE.md item 15: :exe_smokerun_hints' diagnostic EXE rerun has no timeout, unlike every other user-code launch point in this file -- verified against source, logged with a suggested fix, not implemented (documentation-only PR). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A4iE1BRSkUETwz237XeuTW
Summary
Follow-up to #400/#401 (both merged). After the original 5-pass documentation plan completed, this PR does a systematic label-by-label sweep of all 164
:labels inrun_setup.bat, cross-checking each against the 33 scenarios already documented indocs/demo-bootstrapper-output.md.Found 4 genuine, user-observable gaps, all sourced from real CI evidence (run
30328748330):.pyfiles, no clearmain/appwinner) — a real, timed menu that was previously undocumented.:die's call-frame-only return and reaches:preflight_compilewith an emptyHP_PY, producing a misleading "your program has a syntax error" message instead of surfacing the real "no interpreter found" cause. Logged as CLAUDE.md Active Backlog item 14 with the full trace and a suggested fix (not implemented — this PR is documentation-only).[HINT][DATA_FILE]/[HINT][HIDDEN_IMPORT]/[HINT][RUNTIME_MISMATCH]), a companion to Scenario 22's hidden-import auto-recovery exhaustion.The remaining ~150 of 164 labels were either already covered, internal control-flow plumbing with no independently observable behavior, or narrow edge cases not worth a dedicated scenario (documented inline in the new Part VIII's scope note).
Test plan
python tools/check_delimiters.py run_setup.bat— clean (norun_setup.batchanges in this PR, docs-only)npx markdownlint-cli2 docs/demo-bootstrapper-output.md CLAUDE.md— clean (only the pre-existing grandfathered MD029 exception on CLAUDE.md item 7)run_setup.batsource, not fabricated🤖 Generated with Claude Code
Generated by Claude Code