Skip to content

fix(artifacts): normalize C1 and bidi controls in failure messages - #1337

Closed
Mrun25 wants to merge 1 commit into
monad-developers:unstablefrom
Mrun25:fix/failure-message-control-characters
Closed

Mrun25 wants to merge 1 commit into
monad-developers:unstablefrom
Mrun25:fix/failure-message-control-characters

Conversation

@Mrun25

@Mrun25 Mrun25 commented Oct 28, 2026 •

Copy link
Copy Markdown

Fixes #1248.

Replace C1 controls (U+0080-U+009F), bidirectional embeddings/overrides (U+202A-U+202E) and isolates (U+2066-U+2069) with spaces when normalizing attempt failure text. Existing C0/DEL handling, whitespace collapsing, secret redaction and byte limits stay in place. This changes new normalized messages; it does not rewrite historical ledgers or change their schema.

Add regressions for all 41 code points in the three ranges, both within a message and by itself, while preserving visible accented, Greek, Arabic and supplementary-plane text. An integration test checks persistence, queries and idempotent replay through the actual attempt ledger. The new normalization test fails on the baseline at U+0080.

Validation on unstable at 9bd4cc4e72e2aac7f4466a65e6df27814e8022a5, Linux, Node.js 22.23.4:

  • Artifacts suite: 351 pass, 1 existing skip because Bun is unavailable, 0 failures.
  • Artifacts build and schema snapshot checks pass.
  • Runtime dependency build and test TypeScript compilation pass. The complete generated-workflow-verifier test file passes all 136 tests with a per-process init.defaultBranch=master override. This branch does not include the separate test(runtime): pin hidden-commit fixture branch #1336 fixture fix.
  • Changed-file ESLint, Prettier and git diff --check pass.

The full workspace suite, Bun adapter tests, Podman container, Windows/macOS and hosted CI were not run.

AI assistance was used for investigation, the patch, local checks and this description.

RetriggerView in GreptileConfidence Score: 5/5

This PR appears safe to merge.

Summary

Expands failure-message normalization to replace C1 controls and the specified bidirectional controls with spaces.

  • Attempt failure messages replace C1 and bidirectional controls with spaces.

Reviews (1) · Last reviewed commit: "fix(artifacts): normalize C1 and bidi co..." · Reviewed by Greptile

Copilot AI balanced review requested due to automatic review settings October 28, 2026 07:21
@Mrun25
Mrun25 requested a review from a team as a code owner October 28, 2026 07:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@aviggiano

Copy link
Copy Markdown
Collaborator

Thanks but PRs from outside contributors is limited at this time.
Feel free to report issues

@aviggiano aviggiano closed this Oct 28, 2026
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.

Strip C1 controls and bidi overrides from recorded failure text

3 participants