Skip to content
This repository was archived by the owner on Sep 28, 2026. It is now read-only.

ctx-wire: fix ATOAT redaction gap, correct MTP fixtures, add dotnet-publish/pack filters - #30

Merged
outofrange-consulting merged 2 commits into
mainfrom
claude/ctx-wire-filters-audit-3coeu2
Jul 2, 2026
Merged

outofrange-consulting merged 2 commits into
mainfrom
claude/ctx-wire-filters-audit-3coeu2

Conversation

@outofrange-consulting

Copy link
Copy Markdown
Owner

Audit and correction of the token-diet/ctx-wire/filters.d dotnet + acli filter pack. Every string was verified empirically against a real .NET 10.0.301 SDK (MTP runner, EN + FR locales), not guessed.

Security fix

  • acli: the AT[A-Z]TT redaction pattern structurally could not match ATOAT… (OAuth) tokens — they reached agent context in the clear. Widened to AT(?:ATT|CTT|OAT)… (ATATT API / ATCTT scoped / ATOAT OAuth) with a generic AT***REDACTED*** label that no longer leaks the token class. Added an ATOAT regression test.

Fixture accuracy (dotnet-test, dotnet-run)

  • MTP summary block uses succeeded: (EN) and réussie : (FR past participle), not passed: / réussite :. Corrected fixtures + docs; added native dotnet test MTP-integration fixtures.
  • Confirmed the runner emits Test run summary: (with "run") in every path — single project, solution, multi-project roll-up — so no Test summary: trigger variant was needed (it exists in no SDK/MTP assembly; adding it would be dead regex).

New filters (EN + FR)

  • dotnet-publish: publish prints no Build succeeded. on .NET 10; success marker is the -> …/publish/ artifact line. Strip filter that drops restore/build chrome, keeps the publish path, and preserves trim/AOT warning IL#### lines.
  • dotnet-pack: collapses a clean pack to dotnet pack: ok on Successfully created package / Création réussie du package; keeps build + NU#### errors.

Verified, deliberately not added

  • dotnet build: still emits classic Build succeeded. / 0 Error(s) on .NET 10 (piped, PTY, --tl:off) — existing filter remains correct.
  • dotnet format: silent on success; its diagnostics must reach context — nothing to collapse.
  • dotnet list package: --outdated / --vulnerable tables are the payload to keep.

Validation

  • ctx-wire conformance suite: 54/54 pass (was 41).
  • End-to-end: real dotnet test/publish/pack output (EN + FR) piped through the filters produces the expected collapses/preservations.

🤖 Generated with Claude Code

https://claude.ai/code/session_014gYzfFg4y7yEDdFJo3uUMS


Generated by Claude Code

claude added 2 commits July 2, 2026 21:23
acli.toml (security): the `AT[A-Z]TT` redaction pattern required a literal
`TT` in positions 4-5, so it structurally could not match `ATOAT…` OAuth
tokens — they reached agent context in the clear. Widen to
`AT(?:ATT|CTT|OAT)…` (covers ATATT API / ATCTT scoped / ATOAT OAuth) and use
a generic `AT***REDACTED***` label that no longer leaks which token class was
present. Add an ATOAT regression test; update ATATT/ATCTT expecteds.

dotnet-test.toml / dotnet-run.toml (fixture accuracy): the MTP summary block
uses `succeeded:` (EN) and `réussie :` (FR past participle), not `passed:` /
`réussite :`. Corrected the fixtures and header docs, and added native
`dotnet test` MTP-integration fixtures (per-app status line + summary block).
All strings verified empirically against .NET 10.0.301 with the
Microsoft.Testing.Platform runner in both en and fr locales.

The audited-for `Test summary:` (no "run") trigger variant was NOT added: the
native `dotnet test` runner emits `Test run summary:` (with "run") in every
path checked — single project, solution, and multi-project roll-up — and the
no-"run" string occurs in neither the .NET 10 SDK nor the MTP assemblies, so
adding it would be dead regex. The existing trigger already covers it.

Conformance suite: 44/44 pass (41 -> 44).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014gYzfFg4y7yEDdFJo3uUMS
…uild gaps

Rounds out the dotnet filter set after checking every command in the team's
workflow (build/test/run/restore/tool already covered) against a real .NET
10.0.301 SDK.

New filters (EN+FR, strings verified empirically):
- dotnet-publish: `dotnet publish` shares build's restore preamble but prints
  NO `Build succeeded.` summary in .NET 10 — its success marker is the
  `-> …/publish/` artifact line. Strip filter that drops restore/build chrome,
  keeps the publish path, and preserves trim/AOT `warning IL####` lines (must
  not be hidden). Used by the docker-image-create skill.
- dotnet-pack: collapse a clean pack to `dotnet pack: ok` on
  `Successfully created package` / `Création réussie du package`; keep build
  and NU#### packaging errors.

Deliberately NOT added, with rationale recorded in the README table:
- dotnet format: silent on success (the hook path), and its diagnostics
  (`error WHITESPACE:` / analyzer IDs) must reach context — nothing to collapse.
- dotnet list package: `--outdated` / `--vulnerable` tables are the payload to
  keep, not chrome to strip.

Also verified (and noted): `dotnet build` still emits the classic
`Build succeeded.` / `0 Error(s)` summary on .NET 10 (piped, PTY, --tl:off), so
the existing dotnet-build filter remains correct.

Conformance suite: 54/54 pass (44 -> 54).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014gYzfFg4y7yEDdFJo3uUMS
@outofrange-consulting
outofrange-consulting merged commit 8ed633d into main Jul 2, 2026
18 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants