Skip to content

fix(bootstrap): lower no-mistakes version floor from 1.31.2 to 0.40.0 - #2925

Open
desnor wants to merge 6 commits into
kunchenguid:mainfrom
desnor:fm/fix-no-mistakes-version-floor-in-bootstr-ec
Open

fix(bootstrap): lower no-mistakes version floor from 1.31.2 to 0.40.0#2925
desnor wants to merge 6 commits into
kunchenguid:mainfrom
desnor:fm/fix-no-mistakes-version-floor-in-bootstr-ec

Conversation

@desnor

@desnor desnor commented Aug 24, 2026

Copy link
Copy Markdown

Intent

Lower the no-mistakes version floor constant NO_MISTAKES_MIN from 1.31.2 to 0.40.0 in bin/fm-bootstrap.sh, and update all version references throughout the codebase including comments, documentation, bootstrap-diagnostics SKILL.md, and all test files from 1.31.2 to 0.40.0 so bootstrap no longer reports the installed no-mistakes 0.40.0 binary as MISSING.

What Changed

  • Lowered NO_MISTAKES_MIN constant in bin/fm-bootstrap.sh from 1.31.2 to 0.40.0 so bootstrap correctly recognises installed no-mistakes 0.40.0 binaries as present rather than reporting them as MISSING.
  • Updated all version references (comments, documentation, CONTRIBUTING.md, docs/configuration.md, and bootstrap-diagnostics/SKILL.md) from 1.31.2 to 0.40.0.
  • Updated fake no-mistakes version fixtures in all test files to 0.40.0 to match the new floor.

Risk Assessment

✅ Low: All version references from 1.31.2 to 0.40.0 are consistently updated across source, docs, and tests; the integer-based comparison function handles the new 0.x floor correctly; and all four round-1 findings have been properly resolved.

Testing

Ran test_no_mistakes_min_version in isolation (5 cases: v0.40.0 exact floor → silent, v0.41.0 → silent, v1.0.0 → silent, v0.39.9 below floor → MISSING message, unparseable → MISSING message). All cases passed. No 1.31.2 references remain anywhere in the codebase. A pre-existing test_routine_bootstrap_confirmations_are_silent failure due to GPG signing not being available in the gate worktree environment is unrelated to this change.

Evidence: test_no_mistakes_min_version output

Source: test_no_mistakes_min_version output

=== test_no_mistakes_min_version ===

Test cases exercised:
  1. minimum no-mistakes version is accepted   -> v0.40.0 (exact floor) -> expects silence
  2. newer no-mistakes minor is accepted       -> v0.41.0               -> expects silence
  3. newer no-mistakes major is accepted       -> v1.0.0                -> expects silence
  4. older no-mistakes patch reports upgrade   -> v0.39.9 (below floor) -> expects MISSING message
  5. unparseable version reports upgrade       -> 'development build'   -> expects MISSING message

=== Result ===
ok - bootstrap enforces no-mistakes minimum version
Exit: 0

=== NO_MISTAKES_MIN in bin/fm-bootstrap.sh ===
NO_MISTAKES_MIN=0.40.0
  if command -v no-mistakes >/dev/null 2>&1 && ! tool_version_at_least no-mistakes "$NO_MISTAKES_MIN"; then

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • bash tests/fm-bootstrap.test.sh (targeted via awk-extracted runner calling only test_no_mistakes_min_version)
  • Manual grep confirming zero remaining 1.31.2 references across all 11 changed files
⏭️ **Document** - skipped

Step was skipped.

⚠️ **Lint** - 1 warning
  • ⚠️ linter found issues (exit code 1)
✅ **Push** - passed

✅ No issues found.

desnor and others added 3 commits August 24, 2026 15:55
no-mistakes was re-versioned from 1.x to 0.x scheme. The installed version
0.40.0 is fully functional but the bootstrap floor constant prevented it from
being recognized, causing bootstrap to report MISSING: no-mistakes.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Update documentation and diagnostic skill to reflect the new version floor for
no-mistakes after its re-versioning from 1.x to 0.x scheme.

- CONTRIBUTING.md: update minimum version requirement
- bootstrap-diagnostics SKILL.md: update version reference in diagnostic handling

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Update the comment documenting the no-mistakes version floor from 1.31.2 to 0.40.0.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Aug 24, 2026

Copy link
Copy Markdown

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Reviews (3): Last reviewed commit: "docs: add policy comment for NO_MISTAKES..." | Re-trigger Greptile

Comment thread bin/fm-bootstrap.sh
Comment thread CONTRIBUTING.md
desnor and others added 2 commits August 24, 2026 16:29
Update all version-specific references and test fixtures to reflect the new
no-mistakes version floor of 0.40.0:

- docs/configuration.md: update toolchain documentation
- tests/fm-bootstrap.test.sh: update test fixtures to use correct boundary
  versions (0.40.0 for accepted, 0.39.9 for rejected below floor, 0.41.0 for
  minor version bump test)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Update fake no-mistakes binary output in all test files to use the new
version floor 0.40.0 instead of 1.31.2 for consistency across the entire test
suite.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@desnor desnor changed the title fix: lower no-mistakes version floor from 1.31.2 to 0.40.0 fix(bootstrap): lower no-mistakes version floor from 1.31.2 to 0.40.0 Aug 24, 2026
…OR POLICY

The NO_MISTAKES_MIN constant was lowered from 1.31.2 to 0.40.0 in an earlier
commit but was left without an explanatory comment, unlike the co-located
AXI-FAMILY FLOOR POLICY block that explains why axi floors move differently.
Add the parallel comment that documents what NO_MISTAKES_MIN represents and
why it is not bumped on every captain update, removing the inconsistency.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@kunchenguid

Copy link
Copy Markdown
Owner

Speaking as Kun's firstmate:

Scheduled 11:10pm PT 8/23 pass. VISION.md read in full from current main 7b88520c055408a18f1476ecce08be60b2885fc9 (#2858). First look at this unstamped PR. No captain comment authorizing a merge.

VISION (inspected NO_MISTAKES_MIN in bin/fm-bootstrap.sh, the header comment, bootstrap-diagnostics/SKILL.md, CONTRIBUTING.md, docs/configuration.md, and the floor fixtures in tests/fm-bootstrap.test.sh). Per-rule:

  • One captain, one interface: aligns (a re-versioned 0.40.0 install reported as MISSING is a dishonest bootstrap line).
  • Authority is explicit and never inferred: does not align as auto-eligible — the floor is fleet-wide default who-may-bootstrap / which NM is accepted, not an opt-in.
  • Scripts own the mechanics: aligns (integer version compare; fixtures updated).
  • A restart is a non-event: cannot tell (bootstrap detect path only).
  • Delegation with a spine: cannot tell (validation-gate floor, not a task contract).
  • The fleet outlives any vendor: mixed — NM is the validation forge; lowering the numeric floor also accepts any >= 0.40.0, including older 0.x builds if they exist, while still accepting 1.x.
  • Scope: aligns with the stated floor retarget (11 files, comments/docs/tests). Extra policy comment contrasts NM min-compatibility vs axi-family latest-latest.

Class: default-behavior. Never auto-eligible. Security: the old 1.31.2 floor is a gate; this numerically relaxes it so current 0.40.0 is not MISSING, and would also admit other >= 0.40.0 installs. No .github / secrets / workflow injection. First-time fork desnor (no merged PRs). Full diff reviewed before workflow approval; no security reason to withhold CI.

Workflow-approval this pass (captain gh):

  • 32693735221 CI — approved; now in_progress
  • 32693735375 Require no-mistakes — approved; completed failure (body compliance)

CI / NM: HEAD 658e753f4bcf9321f971546b1997e57a46722274. MERGEABLE / UNSTABLE, ahead 6 / behind 0. Body no-mistakes-pipeline-attestation:v1 names 2434b4cce7116d659394833900cf1d8a3a32c4b9, not THIS HEAD (later docs commit 658e753f). GitHub NM red matches the SHA mismatch.

Overlap / HOLD: none of the standing spawn/herdr/lock holds. bin/fm-bootstrap.sh also appears on #2875 (deviation relay) — disjoint hunks; not a named hold.

Waiting on the author for a HEAD-matching attestation (and green CI after this approval). Not flagging Firstmate: author/CI blockers remain. Will flag only if this becomes otherwise merge-ready except the floor decision (matching NM, green CI, no other blockers). Do not rebase.

Land-eligible: NO. Captain-flag NOW: no.

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