Skip to content

Reject invalid Unicode escapes before runtime evidence joins #515

Closed

Description

@devantler

🤖 Generated by the Agentic Engineer

Problem and evidence

Runtime JSON observations retain literal source bytes but do not validate escaped Unicode before decoding. An offline classification replay repairs an invalid escaped character into the same identity as a different successful workflow; the resulting classification omits the failed workflow. The unresolved-thread collector also accepts the repaired identity.

Expected outcome

Invalid escaped Unicode cannot establish a runtime observation or join identity. Preserve valid Unicode and return UNKNOWN for unsupported source representations before semantic classification.

Acceptance criteria

  • Record a failing-workflow identity collision before the repair and a distinct valid-Unicode control.
  • Validate escaped surrogate pairing before JSON decoding.
  • Refuse malformed identities through both workflow and review-thread consumers.
  • Preserve paginated input, decoded-key uniqueness, literal-byte preservation and producer failure checks.
  • Exercise the installed helper route and its regression suites.

Rough size: S. Part of #223.

Activity

  1. added theissue type on Oct 5, 2026
  2. self-assigned this
    on Oct 5, 2026
  3. added a commit that references this issue on Oct 5, 2026
  4. devantler commented on Oct 5, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Delivered in merged PR #519 (merge commit 08b218e). The exact reviewed head passed native required CI, the 425 guard regressions, raw JSON observations and surveyor adapter validation. The accompanying repairs now preserve option context and reject malformed original Unicode evidence before identity comparison.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

Priority

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions