Skip to content

rtk 0.50.0 hook recipe: exclude git show REV:path in every global-option form and git branch - #318

Merged
seathatflowsinourveins merged 1 commit into
mainfrom
claude/rtk-exclude-widen-20260926
Sep 26, 2026
Merged

seathatflowsinourveins merged 1 commit into
mainfrom
claude/rtk-exclude-widen-20260926

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator

Scope

  • What this changes: the rtk 0.50.0 Claude-hook recipe gains two exclude_commands entries, so git show REV:path in every git global-option form and git branch run natively. The bootstrap reminder and its tests enforce the full four-entry key, present exactly once.
  • Base commit: 5d8bd611 (main after Laptop evidence: ultracode-subagent E2E of 13 token/memory/RAG tools; vLLM 0.30.0 embedder switch #316).
  • Lane: lane:foundation.
  • Owned paths touched:
    • recipes/README.md
    • adoption/bootstrap.md
    • adoption/platforms/{linux-wsl2,macos-arm64}.md
    • adoption/bootstrap-linux.sh
    • tests/test_adoption_bootstrap.py
    • evidence/receipts/rtk-050-qualification-20260925.json (a dated addenda entry only; the claim and limitations are unchanged)
    • evidence/artifacts/rtk-exclude-widen-20260926/
    • manifests/evidence.json

SOTA sources

All from rtk-ai/rtk at v0.50.0 (1d87b8e7); the binary sha256 is 23433a2a…, extracted from the release asset bc2b8902…:

  • src/discover/registry.rs:1540-1569: ^ entries compile as written.
  • registry.rs:1599-1604 and 1718-1727: each env-stripped segment is matched with is_match.
  • registry.rs:78, GIT_GLOBAL_OPT (-C, -c, --git-dir, --work-tree): these are stripped before classification, so the pattern's global-option group mirrors them.
  • src/cmds/git/git_cmd.rs:3185-3244 (filter_branch_output): the '+ ' marker is kept at 3209-3211, and the remote-only misreport happens at 3224-3227.
  • src/core/config.rs:278-281 (Config::load().unwrap_or_default()): a duplicate key silently loads the defaults.

Pattern syntax follows the regex crate 1.12.3 docs; TOML literal strings follow TOML 1.0.0.

Discovery: #316's evidence/artifacts/token-e2e-ultracode-laptop-20260926/receipt.json, in which the rtk verifier refuted the earlier claim.

Evidence-class table

Claim Class
On the pinned binary with a scratch config holding only the recipe block, all four routings behave as intended. Excluded (exit 1): git show HEAD:x, the -C form, the --format form, the piped form, --no-pager, --git-dir, git branch -a, -C … branch, --work-tree … branch, diff a missing. Still rewritten (exit 0): git show --stat, git show HEAD~1, git status, git log -3, git push origin branch, git commit -m "update branch docs", git --git-dir … status, ls native_proven: raw capture in evidence/artifacts/rtk-exclude-widen-20260926/hook-check.txt
The reminder fires unless the key appears exactly once with all four entries local_integration: leave-one-out, exact-recipe-block and duplicate-key tests. A manual mutation deleting each grep made the tests fail.
The laptop runs the same patterns native_proven on wsl-authoring-20260923

Review. An independent evidence-reviewer ran four rounds and checked:

  • round 1: F1-F7, including double-escaped patterns, uncited verification, tag history, test gaps and over-broad matching;
  • round 2: N1-N5, covering the missed --git-dir/--work-tree forms, addendum wording, artifact labels, duplicate-key detection and the v2026.09.26 markers;
  • round 3: ready, with 4 low wording items, which are applied.

Checks:

  • Full python3 -m unittest (builder, pre-wording): 5787 OK.
  • After the wording fixes, test_adoption_bootstrap and test_adoption_docs_consistency: OK.
  • validate.py, evidence_manifest --check, host_receipts validate and build_ecosystem --check: passed.
  • release_due --strict-if-repinned origin/main: exit 0.
  • bash -n and shellcheck: clean.
  • Guarded gitleaks: no leaks.

🤖 Generated with Claude Code

…ion form and git branch

The laptop's ultracode E2E verifier (#316) found two gaps on the pinned rtk 0.50.0:
"^git show [^ ]*:" misses `git -C DIR show REV:path` (the blob is windowed), and
filter_branch_output (src/cmds/git/git_cmd.rs 3185-3244) keeps git's '+ ' worktree marker, so
`git branch -a` misreports local branches as remote-only when a same-name remote exists. The
recipe now adds two subcommand-anchored patterns whose global-option group mirrors rtk's
GIT_GLOBAL_OPT (-C, -c, --git-dir, --work-tree, --flags), tells hosts to replace the existing
exclude_commands line, and bootstrap-linux.sh reminds unless the key appears exactly once with
all four entries. Retained raw hook-check on the pinned binary; dated receipt addendum.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 26, 2026
@seathatflowsinourveins
seathatflowsinourveins enabled auto-merge (squash) September 26, 2026 03:04
@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.

@seathatflowsinourveins
seathatflowsinourveins merged commit 5301c3c into main Sep 26, 2026
24 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the claude/rtk-exclude-widen-20260926 branch September 26, 2026 03:18
seathatflowsinourveins pushed a commit that referenced this pull request Sep 26, 2026
… check to its reminder

Reconciles this branch's Codex post-merge fixes for #291 (findings 1-2)
and the #314 P2 with #318, which merged first.

- Recipe: #318's four-entry exclude_commands block stays the one set of
  guidance in recipes/README.md, bootstrap.md step 4a, token-practice.md,
  the rtk pin note and the SOTA refresh record. The single regex this
  branch had tested ('^git(\s+\S+)*\s+show(\s+\S+)*\s+(:\S|[^\s-]\S*:)'
  with "diff") is kept only as dated evidence, labelled as an alternative
  that was tested (mitigation-20260926, readback-20260926). The recipe
  also explains rtk's anchoring (registry.rs:1540-1569, 1599-1604) and
  that explicit `rtk` commands bypass the exclusions (registry.rs:1690).
- Reminder: rtk_config_reminder keeps #318's text check (the exact
  four-entry key, exactly once) and, once it passes, runs the installed
  "$bin_dir/rtk" hook check (timeout 30, stdin closed, the caller's
  environment) on `git show HEAD:x | tail -n 5`, `git -C . show
  --no-color HEAD:x | tail -n 5`, `diff a missing`, `git branch -a` and
  `git -C . branch`. Either check failing prints the reminder; a text
  pass with an rtk failure adds a hint naming the probe, because rtk
  ignores a TOML-valid file that does not deserialize (TrackingConfig,
  src/core/config.rs:152-158 at 1d87b8e7). Print-only.
- Tests: all of #318's reminder tests are kept (the silent ones now run
  against a stub rtk that honours the file); new stub tests cover an
  exact text that rtk rewrites, the [tracking] counterexample, an
  unsupported subcommand, a rewritten branch probe, extra output, the
  #291 comments counterexample, the five probes and XDG_CONFIG_HOME
  reaching rtk. An optional real-binary test (skipped without an
  installed rtk 0.50.0) covers the four-entry block, the [tracking]
  rejection with and without history_days, the old two-entry line, the
  single-regex alternative and a missing file.
- Evidence: combined-reminder-20260926.{sh,out} (hook check and the
  combined reminder on scratch configs; silent on this host's #318
  block). The rtk receipt keeps #318's addenda untouched; its added
  limitation now references #318's recipe and the combined reminder;
  results.json gains a step, files and relabelled corrections; the
  receipt's provenance is regenerated.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
seathatflowsinourveins pushed a commit that referenced this pull request Sep 26, 2026
Hot-file commit (docs/lanes.md): manifests/evidence.json starts from
main's copy (with #318's and #315's entries) and re-registers every
changed or new file of this branch (indent 2, ensure_ascii); receipts[]
mirrors the rtk and markitdown receipts' new limitations and keeps every
other entry. component_matrix --write (no change) and
new_host_grand_list --write regenerate the reports.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Sep 26, 2026
…bootstrap reminder, blind-packet leak, retained markitdown evidence (#314)

* Retain markitdown's installed-byte verifier, run directories and raw checker output

Codex post-merge review of #291, finding 3.

- verify_installed.py is retained byte-identical. Its 2026-09-25 stdout
  was never written to a file, so results.json says so (not_retained)
  and adds a 2026-09-26 read-only re-run on the production prefix
  (45 of 45 identical) plus a per-file listing (installed_files.py) of
  the wheel RECORD, wheel member and installed digests in RECORD form.
- run-candidate/, run-baseline/ and run-postswitch2/ (converted
  documents, PDF stderr with the home directory replaced by ~, package
  listings) are retained; their files hash to the recorded values.
  run_arm.py kept only checker counts, so check_outputs.py is re-run on
  them (out/checker-rerun-20260926.out), and the independent verifier's
  own checker.out, legs logs and integrity check are retained.
- results.json gains corrections, not_retained, steps and files; the
  receipt gains a dated limitation and regenerated provenance.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
(cherry picked from commit 9ec4c33)

* Keep the durable-memory incumbent's build and releases out of blind packets

Codex post-merge review of #269, finding 1 (P2).

The dated durable-memory limitations (the 19b6429/Mac/2.3.2/VelaNext
entry, the open_gaps[0] entry and the 2.4.0/2.4.1 cutover entry), the
older #234 "Production now runs ai-memory 19b6429" entry and the #234
"keeps ai-memory as the production control" sentence named the
incumbent's build, releases and role without a selection word next to a
candidate name, so build_all_packets(..., withhold=True) kept them.
Each sentence carrying those identifiers now calls the component the
incumbent, a choice phrase the prose filter (lane_packets.py
CHOICE_PHRASE, reduce_prose) drops; the ledger keeps every fact.
Verdict fields and checked_at are unchanged. A regression test builds
the real withheld durable-memory packet (default and blind-export
parameters) and asserts that 19b6429, 2.3.2, 2.4.0, 2.4.1 and
"production control" are absent while the ledger still records them.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
(cherry picked from commit 418c0f0)

* Grand list legend: the JSON carries winners' basis and only open-gap counts

Codex post-merge review of #269, finding 2 (P3). The "What a winner
means" legend said the JSON carries the layer's limitations and open
gaps; the generator emits each winner's why_selected and evidence_refs
and only gap counts. The legend now says so and points to the layer
ledgers for the limitations and the open-gap text (without paths: the
page is a new-host document).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
(cherry picked from commit caeaa4d)

* rtk hook exclusions: adopt #318's four-entry recipe and add rtk's own check to its reminder

Reconciles this branch's Codex post-merge fixes for #291 (findings 1-2)
and the #314 P2 with #318, which merged first.

- Recipe: #318's four-entry exclude_commands block stays the one set of
  guidance in recipes/README.md, bootstrap.md step 4a, token-practice.md,
  the rtk pin note and the SOTA refresh record. The single regex this
  branch had tested ('^git(\s+\S+)*\s+show(\s+\S+)*\s+(:\S|[^\s-]\S*:)'
  with "diff") is kept only as dated evidence, labelled as an alternative
  that was tested (mitigation-20260926, readback-20260926). The recipe
  also explains rtk's anchoring (registry.rs:1540-1569, 1599-1604) and
  that explicit `rtk` commands bypass the exclusions (registry.rs:1690).
- Reminder: rtk_config_reminder keeps #318's text check (the exact
  four-entry key, exactly once) and, once it passes, runs the installed
  "$bin_dir/rtk" hook check (timeout 30, stdin closed, the caller's
  environment) on `git show HEAD:x | tail -n 5`, `git -C . show
  --no-color HEAD:x | tail -n 5`, `diff a missing`, `git branch -a` and
  `git -C . branch`. Either check failing prints the reminder; a text
  pass with an rtk failure adds a hint naming the probe, because rtk
  ignores a TOML-valid file that does not deserialize (TrackingConfig,
  src/core/config.rs:152-158 at 1d87b8e7). Print-only.
- Tests: all of #318's reminder tests are kept (the silent ones now run
  against a stub rtk that honours the file); new stub tests cover an
  exact text that rtk rewrites, the [tracking] counterexample, an
  unsupported subcommand, a rewritten branch probe, extra output, the
  #291 comments counterexample, the five probes and XDG_CONFIG_HOME
  reaching rtk. An optional real-binary test (skipped without an
  installed rtk 0.50.0) covers the four-entry block, the [tracking]
  rejection with and without history_days, the old two-entry line, the
  single-regex alternative and a missing file.
- Evidence: combined-reminder-20260926.{sh,out} (hook check and the
  combined reminder on scratch configs; silent on this host's #318
  block). The rtk receipt keeps #318's addenda untouched; its added
  limitation now references #318's recipe and the combined reminder;
  results.json gains a step, files and relabelled corrections; the
  receipt's provenance is regenerated.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Register the post-merge fixes' files and regenerate the grand list

Hot-file commit (docs/lanes.md): manifests/evidence.json starts from
main's copy (with #318's and #315's entries) and re-registers every
changed or new file of this branch (indent 2, ensure_ascii); receipts[]
mirrors the rtk and markitdown receipts' new limitations and keeps every
other entry. component_matrix --write (no change) and
new_host_grand_list --write regenerate the reports.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

---------

Co-authored-by: Scout <scout@local>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant