You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Completes the fail-closed runtime-shape boundary for the fixture-only ChatGPT MCP Skills receipt. Malformed nested wire objects now produce deterministic ChatGPT fixture handoff held: ... errors instead of raw JavaScript TypeError exceptions.
Scope
Adds a reusable record/object guard.
Validates root input, capabilities, extension metadata, result, skill, frontmatter, resource contents, approval records, and every manifest entry before property access.
Adds a malformed-input matrix covering null, primitive, array, and nested-object failures.
Proves every negative case uses the controlled hold prefix and is not a TypeError.
Preserves the existing receipt schema, hash behavior, fixture-only mode, and zero-authority boundary.
Source merge inspected at b136aafd882440739c91ea25379e95820fc76773.
Branch is two commits ahead of current main and touches only the parser plus its focused test.
Verification plan
Focused Vitest receipt suite.
Frontend type-check, lint, unit tests, and production build.
Coverage, Security/Trivy, CodeQL, dependency review, and secret scan.
Report preview-dependent E2E separately from the fixture-only acceptance claim.
Boundaries
No live ChatGPT import, network MCP call, authorization grant, deployment, or production activation. Keep this PR draft until exact-head checks are inspected.
Risk and rollback
Low, fail-closed input-hardening change. Roll back by reverting the two branch commits.
The initial head 437f93cc23ae81a63c06916e0ff008a89de02571 failed type-check and tests because the resource-content guard accidentally referenced its own block-scoped variable. This was corrected in 16dd941f. The failed run remains visible and is not reclassified.
Prevention: after mechanical identifier replacement, re-fetch and inspect the exact declaration and run type-check before treating the mutation as viable.
Verification
All applicable exact-head gates completed successfully:
CI run 4610 — type-check, lint, frontend unit tests, production web build/image, guards, and Python matrix passed
No unresolved review threads were present when inspected.
PR was open, draft, and mergeable at the verified head.
Boundary
No merge, production deployment, live ChatGPT import, external MCP execution, or authorization grant was performed.
Next action: human review of the exact head; merge requires explicit approval for PR #2140 or this exact SHA.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Canonical issue
Fixes #2139.
Outcome
Completes the fail-closed runtime-shape boundary for the fixture-only ChatGPT MCP Skills receipt. Malformed nested wire objects now produce deterministic
ChatGPT fixture handoff held: ...errors instead of raw JavaScriptTypeErrorexceptions.Scope
TypeError.Evidence
b136aafd882440739c91ea25379e95820fc76773.Verification plan
Boundaries
No live ChatGPT import, network MCP call, authorization grant, deployment, or production activation. Keep this PR draft until exact-head checks are inspected.
Risk and rollback
Low, fail-closed input-hardening change. Roll back by reverting the two branch commits.