Skip to content

docs: full-file branch sweep of run_setup.bat (Part VIII) - #402

Merged
mixmansoundude merged 3 commits into
mainfrom
claude/bootstrapper-execution-branches-ox2izi
Jul 31, 2026
Merged

docs: full-file branch sweep of run_setup.bat (Part VIII)#402
mixmansoundude merged 3 commits into
mainfrom
claude/bootstrapper-execution-branches-ox2izi

Conversation

@mixmansoundude

Copy link
Copy Markdown
Owner

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 in run_setup.bat, cross-checking each against the 33 scenarios already documented in docs/demo-bootstrapper-output.md.

Found 4 genuine, user-observable 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) — a real, timed menu that was 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 the full trace and a suggested fix (not implemented — this PR is documentation-only).
  • 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.

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 (no run_setup.bat changes 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)
  • ASCII sweep on both changed files — clean
  • Verified all new TOC anchors resolve to their headings
  • Verified no adjacent fenced code blocks (MD031)
  • All quoted real captures cross-checked against the actual CI job logs and run_setup.bat source, not fabricated

🤖 Generated with Claude Code


Generated by Claude Code

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
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@mixmansoundude
mixmansoundude enabled auto-merge (squash) July 31, 2026 01:32
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 13115343-665b-4435-b81e-5255fc400508

📥 Commits

Reviewing files that changed from the base of the PR and between 0220c32 and 39076c5.

📒 Files selected for processing (2)
  • CLAUDE.md
  • docs/demo-bootstrapper-output.md
📜 Recent review details
⏰ Context from checks skipped due to timeout. (1)
  • GitHub Check: analyze
🧰 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.

Files:

  • CLAUDE.md
  • docs/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.bat locations using stable label or subroutine names rather than exact line numbers.

Files:

  • CLAUDE.md
  • docs/demo-bootstrapper-output.md
🔇 Additional comments (4)
docs/demo-bootstrapper-output.md (3)

2241-2247: LGTM!


2314-2322: LGTM!


2436-2444: LGTM!

CLAUDE.md (1)

1137-1164: 📐 Maintainability & Code Quality

Run the required scoped Markdown lint before merging.

The new backlog entry uses the required bullet and stable-label style, but the narrowly scoped advisory Markdown-lint result is not included here. Confirm it in CI, treating GitHub Actions—especially Windows runner results—as authoritative.

As per coding guidelines, run the narrowly scoped advisory Markdown lint for CLAUDE.md and treat GitHub Actions results as authoritative.

Source: Coding guidelines


📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Added guidance for five additional bootstrapper scenarios, including interactive entry selection, syntax-error handling, system-Python fallback, EXE smoke-run diagnostics, and projects without Python files.
    • Documented a provider-exhaustion case where interpreter resolution fails but an inaccurate syntax error may be reported.
    • Documented an unbounded diagnostic rerun that can delay or hang bootstrap execution.
    • Recorded current bootstrap status behavior and potential remediation options for future work.

Walkthrough

Documents 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.

Changes

Bootstrapper documentation

Layer / File(s) Summary
Bootstrapper execution scenarios
docs/demo-bootstrapper-output.md
Adds Scenarios 34–38 covering interactive entry selection, syntax preflight failures, system-Python fallback, EXE runtime diagnostics, and the no-Python-files path.
Bootstrapper diagnostic backlog
CLAUDE.md
Records provider-exhaustion control flow and the unbounded EXE smoke-run diagnostic behavior, with deferred remediation options.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the documentation change: a full-file branch sweep of run_setup.bat documented in Part VIII.
Description check ✅ Passed The description is directly related to the documentation sweep, newly added scenarios, identified bug, backlog items, and validation performed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/bootstrapper-execution-branches-ox2izi

Comment @coderabbitai help to get the list of available commands.

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 6404ec6 and 26ea205.

📒 Files selected for processing (2)
  • CLAUDE.md
  • docs/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.md
  • docs/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.bat locations using stable label or subroutine names rather than exact line numbers.

Files:

  • CLAUDE.md
  • docs/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.md
  • docs/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!

Comment thread docs/demo-bootstrapper-output.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 win

Bound the diagnostic EXE rerun.

:exe_smokerun_hints invokes 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

📥 Commits

Reviewing files that changed from the base of the PR and between 26ea205 and 0220c32.

📒 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.bat locations 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

Comment thread docs/demo-bootstrapper-output.md Outdated
- 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
@mixmansoundude
mixmansoundude merged commit a6f5968 into main Jul 31, 2026
16 checks passed
@mixmansoundude
mixmansoundude deleted the claude/bootstrapper-execution-branches-ox2izi branch July 31, 2026 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants