publish: fix red publish-on-merge — handle rich submissions, null-safe pointer fields#83
Merged
Merged
Conversation
…ointers publish-on-merge has been red since 2026-07-06: every submission merged since then uses the RICH shape (backend/methods spec, no pre-built .bundle), but publish-submission.sh only knows the legacy POINTER shape. jq -r on the missing fields printed the literal string "null", producing "missing bundle submissions/io.pilot.tldr/null". - publish-submission.sh: extract fields with `// empty` and validate each one with a clear error; detect rich submissions (backend object + methods) and skip them with a notice — they are built and signed with the publisher's own key via pilot-app submit / publish-api, which CI cannot do (no publisher key); error loudly when a pointer submission lacks .namespace/.bundle_sha256. - publish-on-merge.yml: add workflow_dispatch (manually (re)publish one submission dir); ignore DELETED submission.json files (--diff-filter=d); update the header comment (platform repo is pilot-protocol/pilotprotocol). - cmd/pilot-app/main.go:654 + internal/scaffold/templates/Makefile.tmpl:65: the printed publish instructions pointed users at TeoSlayer/pilotprotocol; the catalogue lives on pilot-protocol/pilotprotocol. Verified locally: rich submission (io.pilot.tldr) → skip exit 0; pointer submission (io.pilot.sixtyfour) resolves tag/sha/url correctly; missing id/namespace/sha each fail with a specific message; go build + tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
publish-on-mergehas failed on every run since 2026-07-06 (last success 06-29) with:Root cause: every submission merged since early July uses the RICH shape (
backend/methodsspec — bundles are built + signed by the publisher's own key viapilot-app submit/ publish-api), butscripts/publish-submission.shonly understands the legacy POINTER shape (bundle+bundle_sha256+namespace).jq -r .bundleon a rich submission prints the literal stringnull, which flowed into the bundle path. The tldr submission itself is valid —pilot-app verify-submissionpasses all 4 platforms.Fix
jq -r '… // empty'and validate each with a specific, loud error (no more silentnullpropagation into paths/tags).bundle) are skipped with a clear notice and exit 0 — CI holds no publisher key, so this pointer publisher cannot build/sign them.namespace/.bundle_sha256now fail with an exact messageworkflow_dispatchinput to manually (re)publish a singlesubmissions/<id>dir--diff-filter=dso a deletedsubmission.jsonno longer errorspilot-protocol/pilotprotocolTeoSlayer/pilotprotocol→pilot-protocol/pilotprotocol):cmd/pilot-app/main.go:654internal/scaffold/templates/Makefile.tmpl:65Verification (local)
submissions/io.pilot.tldr→ skip notice, exit 0submissions/io.pilot.sixtyfour→ resolvestag=sixtyfour-v0.1.0, primary file, sha, release URL correctlygo build ./...+go test ./cmd/... ./internal/scaffold/...pass; workflow YAML parsesAfter merge, a
workflow_dispatchrun againstsubmissions/io.pilot.tldrwill confirm green in CI.🤖 Generated with Claude Code