Skip to content

fix: publish the registered painting through pinned Review source - #384

Merged
firejune merged 4 commits into
mainfrom
jinni/382-original-painting-publication
Nov 10, 2026
Merged

firejune merged 4 commits into
mainfrom
jinni/382-original-painting-publication

Conversation

@firejune

@firejune firejune commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Parts-job publications now bind the original painting registered at project.inputs[0]. Create verifies its bytes before publication, adds it to the sealed inventory and declares the existing producer.source contract. Recognized legacy draft manifests are atomically upgraded, with unknown edits refused. Producer painting_in_rig and Difference remain separate.

Create main targets sibling source. The registry Review 3.7.0 path is not supported for job hosting. The existing registry check remains, with exactly 32 named source-dependent tests and reasons declared in scripts/source-only-tests.json. The required source-linked job checks out four sibling SHAs from one file, installs an isolated workspace, proves actual source resolution and requires every listed case to execute and pass without skips. It rejects missing names and prefix matches.

Closes #382
Closes #383

The active act@5 issue submission migration is its own commit, 36b5e22. Historical act@2 decoder coverage retains all four prior verdict/outcome combinations. No release, version change, producer regeneration or stage progression is included.

Validation

Evidence Exit Result
Typecheck and lint 0 No diagnostics
Fixed Review source job-publication suite before final CI changes 0 29 pass, 0 skip
Registry job-publication suite before final CI changes 0 28 pass, 1 named source skip
Migrated parts-act suite against fixed Review source 0 20 pass, 512 assertions
Isolated external workspace proof 0 Exact sibling sources resolve, tracked dependency files unchanged
Focused original-painting consumer proof in that workspace 0 2 pass, 0 skip, painting route and hash
Final list and pass-name parser regression 0 Rejects empty/duplicate lists and prefix matches

The initial source/full coupling, old active-writer payload and registry job-hosting RED receipts are retained. The 32-case unfiltered source coverage and remaining registry suite are hosted CI acceptance, pending on this head. The source job has no filter bypass.

Review source is pinned at fcc66c03d7f24ea7f4ed68dba8530e5553bbe1d3. Local runtime replacement follows landing, after closing the previous host and confirming process exit. Consumer acceptance then requires HTTP200 and matching original-painting hash before HQ receives the replacement link.

First hosted CI and repair

Run 42737437661 retained the first source-linked RED. Registry passed with 1,987 pass, 34 skip and 0 fail. Source-linked had 70 pass and 29 fail. The Play build command printed usage without producing dist, and the pins fixture assumed a hoisted direct Play dependency.

Repair 539ca5c builds Play from its directory, asserts dist/index.js exists, and resolves the transitive Play package through Review. It adds an actual-child preload observer to the source job.

Actual child resolution boundary

The source test parent resolves Play to play/src/index.ts. Actual review-act fetch children enter create/src/review-act-runtime.ts from src/parts-review.ts:62, src/signoff.ts:57, src/signoff-checkpoint-act.ts:32, src/feedback.ts:552 and src/choice-writers.ts:145. The parts CLI child enters review/src/entry.ts from src/review-read.ts:85. Both observed child kinds have empty execArgv and resolve Play to play/dist/index.js.

The observer records entry, argv, execArgv and actual resolved Play realpath for both child kinds. Missing observations or unexpected Play paths fail the job. It removes its own preload flag from execArgv to preserve the production condition flags. Production launchers are unchanged in this repair.

Follow-up #385 tracks source-condition propagation for these children. Current source-linked acceptance includes this explicit built-Play child boundary. A fresh unfiltered CI run is pending on the repair head. The single automatic AI review found the same transitive Play fixture defect, repaired in this commit.

firejune and others added 3 commits November 10, 2026 10:04
Checkpoint the original-painting publication change and initial pinned-source consumer gate. Integration follow-up completes the source test inventory and active act migrations before PR acceptance.

Co-Authored-By: Jinni <342598851+fj-jinni[bot]@users.noreply.github.com>
Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com>
Use the current issues writer for active submissions while retaining historical act2 rows as read-only decoder coverage. This is the separately recorded create#383 migration folded into create#382.

Co-Authored-By: Jinni <342598851+fj-jinni[bot]@users.noreply.github.com>
Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com>
Run the pinned sibling source workspace as the job-hosting acceptance gate. List registry exclusions by exact test name and require every listed case to execute without skips in source CI. Atomically upgrade recognized legacy draft manifests to carry the registered original painting.

Co-Authored-By: Jinni <342598851+fj-jinni[bot]@users.noreply.github.com>
Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-10T01:43:22.242262Z ecf2971 PR opened
ℹ️ 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.

@firejune firejune added the by:codex Written by a Codex (Naru) worker; Claude side judges the review label Nov 10, 2026

@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: ecf297166a

ℹ️ 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 thread .github/workflows/ci.yml Resolved
Co-Authored-By: Jinni <342598851+fj-jinni[bot]@users.noreply.github.com>
Co-Authored-By: Naru <342599188+fj-naru[bot]@users.noreply.github.com>
@firejune

Copy link
Copy Markdown
Contributor Author

Claude review (cross-family) at exact head 539ca5c4e079e241620c7ea2067a1188a6b493a6

Files read: src/job-publication.ts, scripts/source-ci-pins.json, scripts/run-source-ci.ts, .github/workflows/ci.yml and tests/pins.test.ts (the repair delta from ecf29716). The migrated tests and the source-only list were taken from the source-linked job, which executes the listed names with zero skips.

Checks:

  • Original painting. inputs[0] is re-hashed at publication, with its byte length checked when recorded. It is added to the sealed publication inventory and declared as producer.source. A missing or drifted registration is refused by name. There is no filename heuristic. painting_in_rig and Difference are untouched.
  • Retained manifest. A retained review-draft manifest is upgraded only when its bytes exactly equal one of the two recognized legacy forms. The upgrade writes a temporary file and renames it. Any other difference is still refused. Parts files are never written.
  • Source-linked acceptance. Sibling SHAs are pinned in one file. The external workspace is installed with the isolated linker. Play resolves through Review, its dependency path, not a direct copy. Dist must exist, and the entry each child process actually loads is recorded. Both child kinds load play/dist with empty execArgv, so the source condition does not propagate to children. This is named in the body and tracked in Propagate source resolution to review-act and parts CLI children #385, with no launcher change here.
  • Registry job. It excludes exactly the listed source-only tests, each with a reason. The source job must run every listed name.
  • Migrate active parts-act submissions to act@5 and widen source CI #383. It folds in as its own commit: active parts-act submissions move to act@5, and the historical act@2 readers stay.
  • Evidence. Both required checks are green on this head. The single AI review finding (P1, isolated-linker Play path) was repaired and resolved.

Verdict: LGTM at this exact head. A new push needs a new sign.

@firejune
firejune merged commit a5b4c08 into main Nov 10, 2026
2 checks passed
@firejune
firejune deleted the jinni/382-original-painting-publication branch November 10, 2026 02:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

by:codex Written by a Codex (Naru) worker; Claude side judges the review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate active parts-act submissions to act@5 and widen source CI Bind the registered original painting in parts-job publications

1 participant