Skip to content

chore(queue): migrate control manifest to v4 prospective_merge target (g12.004) - #33

Merged
betterthanclay merged 1 commit into
mainfrom
ns-b21193a5-685a-4e93-8f4c-c0a48a23cbec
Sep 16, 2026
Merged

betterthanclay merged 1 commit into
mainfrom
ns-b21193a5-685a-4e93-8f4c-c0a48a23cbec

Conversation

@betterthanclay

Copy link
Copy Markdown
Contributor

Summary

Applies the Northstar g03.020 accepted Queue manifest migration (roadmap g12.004) to Underlay via the installed northstar/lifecycle:migrate-premerge skill command. No hand edits.

Change

.paseo/queue.json only — the exact two-field, one-file diff:

  • schema: paseo.queue.control.v3paseo.queue.control.v4
  • hooks[repository-pre-merge].target: reviewed_headprospective_merge

Validation

  • Dry-run reported the exact expected change and nothing else.
  • --write reported applied with the identical digest.
  • Replay reported unchanged (idempotence proven).
  • Manifest validates against the frozen queue-control-v4.schema.json (jsonschema + independent structural check).
  • effigy health and effigy qa:docs pass.
  • git diff --check clean; only .paseo/queue.json changed.

Boundaries respected

No runtime, dependency, release, CI, product planning, thread or workspace changes.

Apply the Northstar g03.020 accepted migration (g12.004): bump
paseo.queue.control v3 -> v4 and switch the repository-pre-merge hook
target from reviewed_head to prospective_merge. Dry-run reported the
exact two-field change, write mode reported applied, replay reported
unchanged, and the manifest validates against the frozen v4 schema.
@betterthanclay

Copy link
Copy Markdown
Contributor Author

Independent review — g12.004 prospective-merge protocol migration

Verdict: ready_to_merge

Reviewed head b397ff2dbb5ee892d5fb6e331ce13c00908f8015 (PR #33, base main @ 12ea9216, state OPEN, non-draft, mergeable). reviewer model deepseek/deepseek-flash; worker model opencode-go/glm-5.3-flash.

Scope conformance

  • Diff vs base is exactly one file, two value changes: schema paseo.queue.control.v3 -> paseo.queue.control.v4, and hooks[repository-pre-merge].target reviewed_head -> prospective_merge (2 insertions / 2 deletions).
  • Matches the roadmap's owned mutable path (.paseo/queue.json only) and the handoff boundary. No runtime, dependency, release, CI, product-planning, thread or workspace changes.
  • Base was clean at origin/main = 12ea9216; the remote lane branch equals the expected head.

Verification performed (independent of worker transcript)

  1. Byte-exact "applied" equivalence. Reconstructed the migrated file by taking 12ea9216:.paseo/queue.json and replacing the two literals; the result is byte-identical to the committed head file. The base carries exactly one occurrence of each token. sha256 of the committed file is sha256:7e79497b41abaf6254cdb0985debb265b10582b189885d6c54046b3a918d7538, equal to the digest reported by the installed command.
  2. Idempotent replay. effigy skill run northstar/lifecycle:migrate-premerge (dry-run) and the same selector with -- --write both returned status: "unchanged" with empty changes/changed_paths/pending_paths, digest_before == digest_after, commit_action.required: false — exactly the documented unchanged contract. git status --porcelain --untracked-files=all remained empty after the write replay, confirming no byte was rewritten.
  3. Frozen v4 schema validation. jsonschema validation of the committed manifest against the installed references/lifecycle/queue-control-v4.schema.json passes.
  4. Adapter acceptance. The installed parseControlManifest/loadControlManifest adapter loads the manifest with no refusal: prospective_merge is confined to the single task.pre_merge hook (read_only, required), every other hook keeps integration_base, and all hooks retain the frozen trusted-runner transport (effigy with the literal Queue hook argv).
  5. Hygiene. git diff --check <base> <head> clean. effigy health passes (guardrails, package exports, release sync at 0.9.10). effigy qa:docs passes.
  6. Repo-wide grep confirms no stale queue.control.v3 / reviewed_head binding remains in tracked config; residual mentions are only the migration plan text and the handoff prose.

Findings

None blocking.

One non-blocking environment observation: effigy validate (svelte-check) fails in this worktree because node_modules is absent (bun x svelte-check cannot resolve dependencies; 348 errors across 116 files). The change touches no TypeScript/Svelte surface, so this is a pre-existing bring-up condition rather than a regression from this PR, and the PR body does not claim effigy validate.

Conclusion

Exact two-value, one-file migration; applied state proven byte-for-byte, replay-proven idempotent, schema- and adapter-valid, scope-clean, head clean. ready_to_merge.

@betterthanclay
betterthanclay merged commit 6cb6db2 into main Sep 16, 2026
2 checks passed
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