fix(operations): preserve runner API JSON byte integrity - #287
fix(operations): preserve runner API JSON byte integrity#287seonghobae wants to merge 5 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Preserve the reviewed two-path runner-assignment API byte-integrity hardening while integrating protected dependency and workflow baselines without destructive history rewriting.
Carry the runner-assignment API byte-integrity hardening across the protected exchange media-type integration while preserving the reviewed two-path diff and non-destructive history.
Carry the reviewed runner-assignment API byte-integrity hardening across the protected replay-order integration while preserving the exact two-path diff and non-destructive history.
|
Superseded by consolidated runner-assignment JSON-integrity successor #341. The current lane preserves bounded raw-byte parsing, fatal UTF-8, duplicate decoded-key rejection, atomic reporting, and configured production coverage. Closing this predecessor; historical evidence does not transfer. |
Purpose
Test-first hardening for the read-only GitHub Actions runner-assignment evidence source. Protected
maininvokedghwithencoding: "utf8"and then passed the resulting string directly toJSON.parse, allowing malformed API bytes to be replacement-decoded and duplicate decoded member names to collapse under last-key-wins semantics before run/job identity and runner-assignment decisions.Exact RED → GREEN identity
6bc8ed016dc07f95d4e041a3b79ac00c4086b182;774a54636a82220a0a144b8b5c566a81cd94674d;56802e206ffb7dcc5336c62f87df54823004cc5e.The RED requires malformed UTF-8 and
idplus escape-equivalenti\u0064to fail closed. GREEN keeps successfulghstdout as bounded raw bytes, fatal-decodes UTF-8, applies Noema's decoded-key JSON integrity scanner, and only then callsJSON.parse. Existing shell-free subprocess execution, 2 MiB maxBuffer, 20-second timeout, explicit API version, repository/path bounds, least-authority child environment, pagination, and report semantics remain unchanged.Evidence boundary
This hardens runner-assignment evidence only; it does not establish that a runner is assigned, a required check passed, an independent review occurred, or a release/deployment happened. Keep Draft until one unchanged exact head has fresh terminal-success application CI, exact 100% owned production statement/branch/function/line coverage with realistic tests, reviewer-ci, protected-base-eligible central Security Scan, and zero valid unresolved findings. The repository-wide
nanoid <3.3.18blocker tracked by #271/#272 remains separate.No write token, repair/self-modifying workflow, audit waiver, package-lock hand edit, reviewer/secret invention, gate weakening, release, deployment, licensing decision, or acquisition-ready claim.
Related: #30.