Skip to content

docs(captures): the naming-calibration demo reprinted the project's own rebrand; those rows are now withheld and counted - #193

Merged
joyful-ii-V-I merged 2 commits into
mainfrom
fix/capture-withholds-private-rename-rows
Sep 12, 2026
Merged

joyful-ii-V-I merged 2 commits into
mainfrom
fix/capture-withholds-private-rename-rows

Conversation

@joyful-ii-V-I

Copy link
Copy Markdown
Collaborator

The showcase capture's --naming-calibration demo mines git history for identifier rename pairs. The largest family it finds is the project's own rebrand. Those rows name a private pre-release identifier, and every capture regenerated since the rename reprinted them. docs/COMMANDS.md copied them too. Nothing in the export scrub stopped them.

The rule, keyed on the public side

docs/docs_commands_build.py now defines one predicate, and test/showcase_capture.py and the gate both import it. A rename row is part of the rebrand when:

  • its old and new identifiers have the same number of _-separated parts,
  • exactly one part differs,
  • and the new part is ripwire.

The rule never spells the old name, and it matches the whole family exactly.

Each withheld block becomes one honest line where its first row stood:

<!-- N rename rows withheld: the project's own rebrand, which names a private pre-release identifier -->

If a matching row shares a line with other output, the write refuses rather than splitting it.

What changed

file rows withheld
COMMANDS_showcase_2026-09-05.md 5
COMMANDS_showcase_2026-09-07 … -09-11.md 6 each
COMMANDS_showcase_2026-09-12.md (new) 6
docs/COMMANDS.md 4
  • Older captures: the dated captures are edited in place, only the rows replaced by their disclosure line. The gate checks every capture, and 0604eb4 handled an earlier leak the same way.
  • The new capture and docs/COMMANDS.md: both were regenerated on this branch in a clone holding only main, the two lane/* branches main's capture already shows, and the public v* tags. That keeps local branch names from reaching the document. Its lane names are identical to main's copy.
  • Other occurrences: the old identifier still appears elsewhere in the tree, in benchmark history, EVALS and code comments. This PR does not touch those.

Gate

test/docscommandscheck.sh arms (E) and (F):

  • Red on main: 39 rebrand rows found across the documents.
  • Green now: all 14 documents are clean. Every naming-calibration block's counts add up: shown + withheld + past the display cut = pairs=, for example 14 + 6 + 48 = 68.
  • Controls: a real rename (copyRange→moveRange) and four near misses are kept unchanged. A disclosure that is off by one, or a row dropped without a disclosure, turns the gate red.

Verification

  • Gates: gates=6 pass=6 skip=0 fail=0 (showcasecapture, docscommands, ripwirepublic, namingcalibration, mdembed, readmedrift), plus argvdiffcheck on the new capture.
  • limits_build --check and gatecount_build --check both return 0.

🤖 Generated with Claude Code

joyful-ii-V-I and others added 2 commits September 12, 2026 08:49
…d rows, which name a private pre-release identifier

--naming-calibration mines this repository's own git history for rename pairs, and
its largest family is the project's rebrand: the new spelling carries the public
name as one `_`-delimited part, and the old spelling is the same identifier with
that part swapped for a private pre-release identifier. Every capture of a real run
published those rows at exit 0, and nothing could see them: no scrub class, no STOP
class and no gate arm had a shape for a name that must not be spelled.

The rule keys on the PUBLIC side. docs/docs_commands_build.py defines it once
(is_rebrand_rename, rebrand_rename_row): withhold a rename row whose new identifier
holds the public name as a whole part, or is it, and whose old identifier is the new
one with exactly that part replaced by another single part. It never spells what it
withholds, and the count is exact because that shape is the whole family. A
re-casing of the public name, or a rename that changes some other part, is kept.

Withheld, never silently dropped. withhold_rebrand_rows() replaces the rows with ONE
comment carrying the exact count, where the first of them stood, and returns every
other line byte-identical. test/showcase_capture.py applies it after the display cut
(publish_block), so the window and its marker still describe the real output;
trim_sample applies it to every docs/COMMANDS.md sample; assert_scrubbed and the
harness's refusal stop a row that shares its line with other output. Every report
names an offending row by its new spelling only, so a red run cannot publish the
old one in its log.

test/docscommandscheck.sh arm (E) gains the class over docs/COMMANDS.md and every
capture, plus an ACCOUNTING check on every --naming-calibration block: rows shown +
rows withheld + rows past the display cut must equal the pairs= the tool reported.
Arm (F) proves a real non-rebrand row (copyRange -> moveRange) and four near misses
are kept, three synthetic rebrand rows are withheld under one disclosure saying 3,
and an off-by-one disclosure and a silent drop both turn the accounting red. On
main's files (E) is red in 39 places, while the accounting already closes on all six
blocks with 0 withheld.

The committed captures are scrubbed FORWARD with the same function, never by
rewriting history: 35 rows across the 09-05, 09-07, 09-08, 09-09, 09-10 and 09-11
captures (5/6/6/6/6/6), one disclosure line each, every other byte unchanged; the
08-xx captures carried none and are untouched. docs/COMMANDS.md is regenerated from
the scrubbed newest capture, so its four rows become the disclosure and the next
three. A capture regenerated on this commit follows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…the first capture that withholds the rebrand rows at the source

Recorded in a REF-CLEAN clone, because the harness runs its ref demos against the
checkout's own local branches: a clone of main alone, plus only the lane branches
main's 09-11 capture already published that still exist on origin
(lane/capsweep-2026-09-10, lane/contributing-sorting-2026-09-10), the public v*
tags, and no remote. `git for-each-ref` there listed exactly those refs; the tree
was clean and the binary was built from bc34f32 in that clone.

The --naming-calibration block withholds 6 rename rows under one disclosure line
and closes the accounting test/docscommandscheck.sh arm (E) checks: 14 rows shown
+ 6 withheld + 48 past the display cut = pairs="68". docs/COMMANDS.md is
regenerated from this capture with the same binary. Every lane/ name in both files
is one main's copy already carried or a branch on origin; the ref demo that named
the recording machine's local fix/ branches in 09-11 names the public lane/ family
here instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 12, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: f45bb784-5c4e-4844-b6dd-15b4c2e77414

📥 Commits

Reviewing files that changed from the base of the PR and between 9560169 and f50c67a.

📒 Files selected for processing (11)
  • docs/COMMANDS.md
  • docs/captures/COMMANDS_showcase_2026-09-05.md
  • docs/captures/COMMANDS_showcase_2026-09-07.md
  • docs/captures/COMMANDS_showcase_2026-09-08.md
  • docs/captures/COMMANDS_showcase_2026-09-09.md
  • docs/captures/COMMANDS_showcase_2026-09-10.md
  • docs/captures/COMMANDS_showcase_2026-09-11.md
  • docs/captures/COMMANDS_showcase_2026-09-12.md
  • docs/docs_commands_build.py
  • test/docscommandscheck.sh
  • test/showcase_capture.py

Included review availability: Your plan provides up to 4 included reviews per hour; 0 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Documentation

    • Updated command showcase captures to withhold project rebrand rename records and disclose their omission without exposing private pre-release identifiers.
  • Bug Fixes

    • Prevented withheld rebrand records from appearing in generated command transcripts.
    • Preserved unrelated rename records and detected potential leaks, including records sharing output lines.
  • Tests

    • Added validation for accurate withheld-row accounting, disclosure handling, sample trimming, and near-miss rename preservation.

Walkthrough

The change adds private rebrand-row detection and withholding to documentation generation and showcase publication. It updates captured outputs and adds accounting, mutation, trimming, and leak-detection checks.

Changes

Rebrand row scrubbing

Layer / File(s) Summary
Rebrand detection and sample handling
docs/docs_commands_build.py
The builder detects standalone rebrand rows, inserts count disclosures, applies withholding before sample trimming, recalculates remaining-line counts, and reports only public-side identifiers during validation.
Showcase publication and captures
test/showcase_capture.py, docs/captures/COMMANDS_showcase_*.md
Formatted stdout and stderr blocks pass through rebrand withholding. Showcase captures replace six rebrand rows with disclosure comments.
Accounting and mutation controls
test/docscommandscheck.sh
The checks validate row accounting, preservation of non-rebrand rows, disclosure placement, display-cut handling, idempotence, shared-line behavior, and public-side leak reporting.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~45 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant ShowcaseCapture
  participant FmtBlock
  participant ExportScrub
  participant PublishedTranscript
  ShowcaseCapture->>FmtBlock: format stdout or stderr block
  FmtBlock->>ExportScrub: pass block after display cut
  ExportScrub->>PublishedTranscript: publish block with rebrand rows withheld
Loading

Merge Risk: ⚪ Minimal · up to f50c6

The capture disclosures correctly account for shown, withheld, and truncated rows, so no actionable merge risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: rebrand rows in the naming-calibration demo are withheld and counted.
Description check ✅ Passed The description directly explains the rebrand-row detection, withholding behavior, documentation updates, gate checks, and verification results.
Docstring Coverage ✅ Passed Docstring coverage is 80.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 3 files. (6 skipped: 6 …
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/capture-withholds-private-rename-rows

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

@joyful-ii-V-I

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 12, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@joyful-ii-V-I
joyful-ii-V-I merged commit 2e3473f into main Sep 12, 2026
31 checks passed
joyful-ii-V-I added a commit that referenced this pull request Sep 12, 2026
… before regenerating docs/COMMANDS.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
joyful-ii-V-I added a commit to andriytyurnikov/ripwire that referenced this pull request Sep 12, 2026
…the rankGraphTeleport seed at graph.h:3359 had moved

Recorded in a ref-clean clone, because the capture's ref demos
(--stray-content=lane, --eval-stray, the branch listings) read the
checkout's real local refs. The clone held exactly main (2e3473f), the
two lane branches main's capture already shows and origin still carries
(lane/capsweep-2026-09-10, lane/contributing-sorting-2026-09-10), and the
16 release tags v0.1.0 through v0.6.0. It had no remote and was detached
at the merge 45c9467. docs/COMMANDS.md was generated in the same clone
from that capture and that build.

Every lane/ name in both files is public: the two branches above, and
lane/v1, which occurs only inside the policy id codex-lane/v1 and is
already on main.

The --naming-calibration block still withholds the project's own rebrand
rows at the source (redhat-et#193), under its one disclosure line, and
docscommandscheck (E), (F) and (G) pass. The rankGraphTeleport demo's
src/graph.h seed moves from 3359 to 3362 with this PR's graph.h change;
showcasecapturecheck (H) resolves it again.

Recorded with TMPDIR pointed at a new, empty directory, so the run's
cache starts empty and no cache state from other trees on the recording
machine reaches the document.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

1 participant