Skip to content

Nightly: exempt only catalog/data/<key>_links.jsonl from the curated check - #100

Merged
Deicyde merged 2 commits into
mainfrom
claude/nightly-links-exemption
Oct 19, 2026
Merged

Deicyde merged 2 commits into
mainfrom
claude/nightly-links-exemption

Conversation

@Deicyde

@Deicyde Deicyde commented Oct 19, 2026

Copy link
Copy Markdown
Owner

Release-affecting (site/ops/brain-nightly.sh). Merge it just before release B is rebuilt, not between a build and its promotion. If it lands after B is built, the promoter refuses B. B already needs a rebuild at 905c6def or later anyway.

Change

The curated-input check (#83) exempts the fold's outputs with fnmatchcase(path, "catalog/data/*_links.jsonl"). fnmatch's * crosses /, so the exemption also covered any curated input below catalog/data, such as a future catalog/data/external/<x>_links.jsonl. The fold writes only catalog/data/<key>_links.jsonl, one per frontier source key in catalog/data/source_registry.json. The exemption now also requires no / after catalog/data/ (found in #83's re-review).

Nothing matches differently today: catalog/data/tauceti_links.jsonl is the only curated *_links input, and it stays exempt.

Tests (site/ops/test_brain_nightly.py)

  • The behavioural test adds a curated catalog/data/external/x_links.jsonl and expects a change to it to be listed, next to the existing bot/state cases.
  • The pin test checks the new condition.

I ran the changed snippet by hand: tauceti_links and fc_links are exempt, while catalog/data/external/x_links.jsonl and bot/state/cut_log.json are checked. bash -n passes under bash and /bin/bash 3.2. I didn't run the test suite locally because machine load was above the agreed limit; CI runs it.

…check

The curated-input check exempted fold outputs with
fnmatchcase(path, "catalog/data/*_links.jsonl"), and fnmatch's * crosses
"/", so the exemption also covered any curated input below catalog/data,
such as a future catalog/data/external/<x>_links.jsonl. The fold writes only
catalog/data/<key>_links.jsonl, one per frontier source key. The exemption
now also requires no "/" after catalog/data/.

The behavioural test adds a curated catalog/data/external/x_links.jsonl and
expects a change to it to be listed; the pin test checks the new condition.
Nothing matches differently today: catalog/data/tauceti_links.jsonl is the
only curated *_links input.
The pattern itself still crosses /; the function is what restricts it.
@Deicyde

Deicyde commented Oct 19, 2026

Copy link
Copy Markdown
Owner Author

Recommendation: merge just before release B is rebuilt. It is release-affecting. An adversarial review found no defect, and CI is green (25 nightly tests).

  • Verified:
    • Old and new is_fold_output classify every curated input in all four inventories identically. Today's exemptions, including tauceti_links.jsonl, are unchanged.
    • The fold writes only direct children: REPO_KEY_RE admits no /.
    • The block parses and passes its heredoc through byte-identical under /bin/bash 3.2.
    • The behavioural test fails on main's code (the external x_links change goes unlisted) and passes here.
  • Changed after review: the comment moved from the pattern line to is_fold_output, since the pattern alone still crosses /. The first version of that comment had an apostrophe, which bash -n showed breaks the script inside the $( … ) heredoc. The pushed version has none, and parses under bash and /bin/bash 3.2.

@Deicyde
Deicyde merged commit 646816d into main Oct 19, 2026
4 checks passed
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