Skip to content

Adopt published Comic Manifest v1 in Platform - #44

Merged
andrewperis merged 4 commits into
mainfrom
codex/issue-99-codex-adoption
Oct 9, 2026
Merged

andrewperis merged 4 commits into
mainfrom
codex/issue-99-codex-adoption

Conversation

@andrewperis

@andrewperis andrewperis commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Related to Studio #99. This draft adopts the exact published Codex Comic Manifest v1.0.0 release into Platform and prepares the separate Platform implementation for independent review.

  • Pins Codex tag contract/comic-manifest/v1.0.0 at commit 12e437e30328a3bb9cd2d15e6307a70b4b7e0e2a, including the exact schema, bundle and manifest tuples. The lock keeps declared media types separate from GitHub asset metadata and public-download MIME.
  • Regenerates the Platform validator from the fresh verified public schema download, without changing reviewed fixture, golden, catalog, oracle or source bytes.
  • Adds API, CLI, adapter, compatibility/deprecation, limits, release, Constitution and Epic #101 handoff documentation.
  • Keeps package version 1.2.0 private and proposes component tag comic-manifest/v1.0.0. Platform API publication remains candidate-unpublished.
  • Adds a post-merge artifact workflow: build one exact eight-file set, create a detached unapproved owner packet, verify that explicit record against the source commit/tree/tag and all eight filename/size/digest tuples, then publish those same files unchanged. The verifier is read-only and rejects missing, changed, extra and symlinked files.
  • The verifier result reports approval_record_matches, owner_identity_authenticated: false, and external_owner_authentication_required: true. A matching JSON record does not establish an authenticated owner decision.
  • Manifest approval/publication fields are labeled as build-time provenance, not live release state. No owner approval record has been created.

This PR creates no Platform tag, release, asset upload, npm publication, security/visibility change, or issue closure.

Verification on this exact head

  • Platform npm test: 701/701 passed.
  • npm run test:comic-manifest-conformance: 326/326 passed in offline synthetic mode; all 29 protected fixture files remained byte-identical.
  • Focused release suite: 8/8 passed, including direct artifact-file, artifact-directory, and detached-packet symlink rejection, tamper/missing/extra-file cases, and non-mutation checks.
  • node scripts/check-comic-manifest-release.mjs: Codex adoption ready; this is not final Platform release readiness.
  • Fresh npm audit --json: zero findings; lock SHA-256 ef90ff0593d91ed26980629ce896ac08294281ed2521db01d7e19ad89b5d87bd. Locked licenses and NOTICE were reviewed; no dependency or notice changes were needed.
  • Candidate build A and B were produced in clean external directories from source commit 53f0df620ec815bf445dfab9b03347e0b0b6e4a0 / tree b876a434e5f557d88d254cd1e75a8121f23c4ba3; all eight files matched byte-for-byte. Offline package/API/CLI smoke uses synthetic public fixtures only.

Proposed identity and pre-merge preview

Component version/tag 1.0.0 / comic-manifest/v1.0.0; additive package version 1.2.0 remains private. These pre-merge preview bytes are review evidence only. The post-merge source identity and manifest will differ.

File Bytes SHA-256
comic-manifest-v1.0.0.source.tar.gz 491,338 040764364d6ed146ec948ee8d34b0cbaf16797006be0aa16193365b074cd7d96
comic-manifest-v1.0.0.package.tgz 225,334 98f9ad51546620a2197672b2bfd21e6bc31f72b274dc56bb3c50590edfe493ec
comic-manifest-v1.0.0.package-lock.json 3,149 ef90ff0593d91ed26980629ce896ac08294281ed2521db01d7e19ad89b5d87bd
comic-manifest-v1.0.0.sdk-contract-lock.json 7,588 6b4b515cc606f2c50b1baead50faaddd3d87d3a1d7b2c9b14e4170e36776dfab
comic-manifest-v1.0.0.context-builder-contract-lock.json 1,366 297dfa1e7e1e89b63eba0df5d3e012d6243f449bdcddc9e9e34714e786f7e595
comic-manifest-v1.0.0.contract-lock.json 2,678 d74950fc19669f1187aca54669b80f32c332685ef4f3a4a8361c4a9dd1a12e7a
comic-manifest-v1.0.0.api-v1.json 1,317 5f3d3e069a99f3533fb17d795d636cd9960c67ebd0be925d063652d3cfb71238
comic-manifest-v1.0.0.manifest.json 6,159 a39eb8c90a74424d249a637f7acd5fc463d2fab00611f1f3216d33c64ba165e2

Remaining gates

Independent review and merge, followed by exact-head CI. After merge, rebuild once from the merge commit, generate the detached approval packet for those bytes, and obtain an external authenticated owner decision naming the exact Platform tuples. The JSON verifier only matches that record to the bytes; it does not authenticate the decision. After the external decision is confirmed, publish the same eight files without rebuilding, then verify a fresh complete download. No Platform publication or Studio #99/Epic #6 closure is authorized by this PR.

@andrewperis
andrewperis marked this pull request as ready for review October 9, 2026 16:51
@andrewperis
andrewperis merged commit f0672d9 into main Oct 9, 2026
2 checks passed
@andrewperis
andrewperis deleted the codex/issue-99-codex-adoption branch October 9, 2026 16:51
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T16:53:53.897532Z 53f0df6 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 53f0df620e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +152 to +153
!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(approval.approved_at) ||
!Number.isFinite(Date.parse(approval.approved_at)) || typeof approval.decision_reference !== 'string' ||

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject calendar-invalid approval timestamps

When an approval contains a syntactically plausible but impossible timestamp such as 2026-02-30T00:00:00Z or 2026-10-10T24:00:00Z, Node's Date.parse normalizes it to a different instant, so this verifier reports approval_record_matches: true even though the documented RFC 3339 approved_at value is invalid. This can silently preserve an incorrect owner-decision time in release evidence; validate the calendar and clock fields explicitly or require a lossless normalized round trip.

Useful? React with 👍 / 👎.

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.

1 participant