Skip to content

feat: share CCv2 path encoding and producer text filters - #7

Open
anilkreddy wants to merge 3 commits into
mainfrom
feat/shared-input-text-primitives
Open

anilkreddy wants to merge 3 commits into
mainfrom
feat/shared-input-text-primitives

Conversation

@anilkreddy

@anilkreddy anilkreddy commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Build and Deploy still duplicate raw CCv2 identifier validation/encoding, an angle-bracket text filter, and JWT-shaped token redaction. Add three opt-in public primitives: encodeCcv2PathSegment in ccv2-client, plus stripAngleBracketText and redactJwtLikeTokens in notification-contract.

Existing sanitizers, schema, transport behavior, package versions, dependencies, and consumer repositories are unchanged. Each Action retains its input diagnostics, masking, rendering, and sanitization order. The new APIs are explicitly documented as unreleased; consumers stay pinned to published 0.0.2 until a separate reviewed release and migration.

Capture 25 text cases and 29 identifier cases from the actual current Build/Deploy source, with revision and file hashes recorded in docs/remaining-extraction-audit.md. Compatibility tests verify both consumer compositions, including a long-markup case where their existing truncation order produces different outputs. Use a linear word-run scanner for JWT-shaped matches: the original overlapping-prefix regex has quadratic worst-case behavior identified by CodeQL. Bounded differential cases preserve its match semantics; adversarial repeated-prefix tests cover the performance fix. Extend installed-tarball runtime/declaration checks for the new public exports. The audit also identifies later extraction candidates and code that should remain Action-specific.

Validation: Node 24.21.0 / pnpm 12.6.0; pnpm install --frozen-lockfile; pnpm quality (264 tests, 100% line coverage, 99%+ branch coverage); packed ESM/declaration/export-boundary checks; public scan; dependency audit; git diff --check. No packages, tags, or releases published; no live provider or Sandbox calls.

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.

2 participants