Skip to content

ci_digest: read job logs that hold ANSI escapes (--allow-escape-sequences) - #4823

Merged
squid-protocol merged 4 commits into
mainfrom
fix/main-tranadd-page-and-digest-logs
Oct 9, 2026
Merged

squid-protocol merged 4 commits into
mainfrom
fix/main-tranadd-page-and-digest-logs

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Main has been red since #4820: test_evidence.py::test_the_rendered_pages_are_current fails in ground-truth and full-suite on main and on every open PR.

Cause: the evidence-refresh bot computed #4820 on main as of #4808, before #4759 re-proved carddemo-tranadd, then squash-merged it on top of #4759. That left tranadd's record (CI oracle image d7e387df360c) and its rendered page (local image 42d04bb08a2a) out of step. Both images match the pin.

Fix: python tests/tools/evidence.py render, a one-line page change. No record is touched.

Also: ci_digest (#4819) passes --allow-escape-sequences. Without it gh api refuses to print job logs that hold ANSI escapes, so every digest log came back "unavailable". With it, the digest found this cause in one call.

Follow-up (separate issue): the bot must re-render or merge main before its auto-merge, or the shepherd must re-check a PR whose checks ran on an older main.

Tests: test_evidence + test_ci_digest + test_ci_shepherd 48 passed; pr_gates --fast 5/5.

🤖 Generated with Claude Code

…es job logs with ANSI escapes

Main's ground-truth / full-suite went red at #4820: the evidence-refresh bot's refresh was computed on a main before
#4759 (which re-proved carddemo-tranadd), then squash-merged on top of it, leaving the record (CI oracle image
d7e387df360c) and its rendered page (local image 42d04bb08a2a) out of step. `evidence.py render` from the record;
no record changed. Every open PR inherited the failure (test_the_rendered_pages_are_current).

ci_digest: `gh api` refuses to print a job log holding terminal escapes unless passed --allow-escape-sequences, so
every log came back "unavailable"; clean() already strips them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
squid-protocol added a commit that referenced this pull request Oct 9, 2026
…ed since #4820, same fix as #4823)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
squid-protocol added a commit that referenced this pull request Oct 9, 2026
…ed since #4820, same fix as #4823)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y the ci_digest log fix remains

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol changed the title fix main: re-render carddemo-tranadd's evidence page (red since #4820); ci_digest reads job logs ci_digest: read job logs that hold ANSI escapes (--allow-escape-sequences) Oct 9, 2026
squid-protocol and others added 2 commits October 9, 2026 17:24
…nfra (rerun once), not real

#4821's muninn failed on Docker Hub's 429 Too Many Requests while building a third-party action's image; the digest
called it real and the shepherd only posted a note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… flake once)

Docker Hub's 429 / auth 504 on 2026-10-09 failed muninn on every PR for over an hour; one rerun was not enough.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
squid-protocol added a commit that referenced this pull request Oct 9, 2026
…e bot-generated (#4811)

* feat(#4789): per-case det-sweep coverage ledger; CICS spec status page bot-generated

The det-sweep coverage ledger (one tests/equivalence/det_sweep_coverage.json) and
docs/language_status/cics_spec_status.md were rewritten by every case PR and every
evidence-refresh bot run, so any two open PRs conflicted on them.

- det_coverage_ledger.py: one file per case, tests/equivalence/det_sweep_coverage/<case>.json
  (format det-sweep-coverage/2). load()/write() are the only file-aware parts; build, check,
  last_coverage, fresh_coverage, migrate keep their semantics (#4730 stale-readable,
  #4758 entry only while proven, #4731 per-component fingerprints). write() touches only
  changed files and deletes a dropped case's file.
- `split --all` (the one-shot migration, run here) and `split --base REV` (a pre-#4789
  branch merging main: applies only the entries it changed since REV).
- Compat: check / update / migrate and test_det_coverage_ledger fail while the single file
  exists, printing the split recipe.
- evidence_history reads the per-case files (single file for older commits).
- det_sweep_plan: a case's ledger file keeps the PR sweep narrow (that case).
- evidence-refresh bot commits the per-case files and renders cics_spec_status.md;
  the page's currency test is advisory in PR CI (EVIDENCE_REPORT_ADVISORY, as #4703),
  smoke-test prints whether it would change.

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

* test(#4789): no side effects inside asserts (CodeQL py/side-effect-in-assert)

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

* test(#4789): an unchanged re-sweep rewrites no per-case file (#4813 idempotency kept)

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

* Merge origin/main; re-render carddemo-tranadd's evidence page (main red since #4820, same fix as #4823)

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

squid-protocol added a commit that referenced this pull request Oct 9, 2026
…r estate with a schema (Fixes #4723) (#4821)

* readiness scanner: feature inventory extractor -- a deterministic JSON inventory per estate, with a schema (Fixes #4723)

tests/tools/feature_inventory.py ESTATE | --all-burned --write | --check: per estate, the statement forms, data types
and PICTURE features, CICS commands and options, SQL forms, intrinsic functions, compile options (estate_options
resolver) and copybook gaps, each with a count and the programs that use it. Unknown constructs are counted in each
category's unknown bucket; a program the det parser can't read is listed in unparsed_programs with its reason and
still counted by a regex fallback. Copybooks resolve through det_survey.copy_dirs. CICS command totals equal
cics_census's on all 6 burned estates (240/751/500/118/34/67); 4 programs stay unparsed, each for a copybook the repo
does not ship (MQ CMQODV/CMQGMOV, LE CEEIGZCT). Fixtures for the 6 burned estates, schema, doc.

Written by agy (Gemini 3.1 Pro, three rounds) under orchestration; reviewed, with test guards added: the
tree_sitter_language_pack importorskip, a corpus skip for the fixture --check, and a built-in schema check (jsonschema
is not installed, so the schema test had silently passed).

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

* Merge origin/main; re-render carddemo-tranadd's evidence page (main red since #4820, same fix as #4823)

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@squid-protocol
squid-protocol marked this pull request as ready for review October 9, 2026 22:26
@squid-protocol
squid-protocol merged commit 488e3ce into main Oct 9, 2026
18 of 20 checks passed
@squid-protocol
squid-protocol deleted the fix/main-tranadd-page-and-digest-logs branch October 9, 2026 22:26
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