Skip to content

Ship Delivery Cadence 1.2.0 pipeline in mini - #19

Merged
GQAdonis merged 2 commits into
mainfrom
codex/delivery-cadence-pipeline
Sep 30, 2026
Merged

GQAdonis merged 2 commits into
mainfrom
codex/delivery-cadence-pipeline

Conversation

@GQAdonis

Copy link
Copy Markdown
Contributor

Delivery Cadence previously kept development behind long build/publication work and lacked a reliable operation contract when scope split into child phases. This adds one authorized isolated work-ahead scope, frozen source candidates, recoverable process/effect receipts, feature-operation readiness and separate publication obligations in skill 1.2.0/state v3. KBD remains the completion and approval authority.

The copied full/mini CLIs performed actual build/launch/feature, overlap, cancellation, recovery, migration and receipt operations on macOS. Final adversarial findings were reproduced and corrected; only affected cases repeated. Shared payloads match across six source/package locations. No unit or per-edit suites ran.

Native Windows execution remains pending. Synthetic publication receipts establish local reconciliation only. Existing Boss consumer gaps are documented and automatic dispatch remains blocked; no Boss/Obsidian production changes or application release are included.

Synchronize Delivery Cadence 1.2.0 from full-pack commit 9027c84 with state v3, operation readiness, recovery and publication obligations. Preserve KBD authority and copied harness routes.

Assisted-by: Codex:GPT-6 [agent team, Node.js, Git]
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 30, 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-09-30T20:52:55.116376Z 4925486 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.

@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: 492548685b

ℹ️ 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 +110 to +113
attempt.dispatchRequest = { command: adapter.command, args: clone(adapter.args), cwd: adapter.cwd, timeoutMs: adapter.timeoutMs ?? 30000, secretEnv: clone(adapter.secretEnv ?? []),
request: { schemaVersion: 1, attemptId: attempt.id, correlationId: attempt.correlationId, candidateId: obligation.candidateId,
contentManifestDigest: obligation.contentManifestDigest, sourceRefs: clone(candidate.sourceRefs), releaseVersion: input.releaseVersion,
effects, expectedPredecessor: clone(input.expectedPredecessor), authorityRefs: clone(input.authorityRefs) } };

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Block legacy obligations until source identity is reconciled

When migrating v1/v2 state with publication debt, migrateState creates a legacy candidate whose contentManifestDigest is null; candidateDigest converts that to undefined, and this request consequently loses the field when serialized. I reproduced a publication attempt and receipt without any content-manifest digest being accepted as succeeded and fulfilling the legacy obligation, despite the migration initially marking it reconcile-legacy-publication-evidence. Require a valid frozen digest or an explicit replacement/reconciliation before creating the attempt so unknown legacy provenance cannot receive publication credit.

AGENTS.md reference: skills/AGENTS.md:L24-L27

Useful? React with 👍 / 👎.

Comment on lines +37 to +41
export function publicationAdmission(state) {
const pending = unresolvedObligations(state).filter(obligation => !(state.releaseAttempts ?? []).some(a => a.obligationId === obligation.id && active(a)));
const inFlight = new Set((state.releaseAttempts ?? []).filter(active).map(a => a.obligationId));
return { allowed: pending.length <= 1 && inFlight.size <= 1, pending: pending.length, inFlight: inFlight.size,
reason: pending.length > 1 ? 'Publication pending capacity exceeded; reconcile owed candidates before unrelated admission' : inFlight.size > 1 ? 'Multiple in-flight releases require reconciliation' : null };

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 Enforce the pending-release limit before admitting work

With one unresolved obligation and no active attempt, this returns allowed: true, even though profiles are fixed to maxPendingReleases: 1. In count mode (especially every: 1), admission() therefore permits another iteration, and completing it creates a second pending obligation; I reproduced the queue growing from one to two before the guard finally blocked further work. Reject admission when the pending count is already at the configured limit, while still allowing the separately bounded in-flight release.

Useful? React with 👍 / 👎.

Assisted-by: Codex:GPT-6 [filesystem, git]
@GQAdonis
GQAdonis merged commit f63617c into main Sep 30, 2026
2 of 14 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