Skip to content

chore: forward-merge 3.1.14 into main - #6585

Merged
bokelley merged 11 commits into
mainfrom
forward-merge/3.1.x-3.1.14
Aug 15, 2026
Merged

chore: forward-merge 3.1.14 into main#6585
bokelley merged 11 commits into
mainfrom
forward-merge/3.1.x-3.1.14

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Forward-merges the completed 3.1.14 release into main after the automatic workflow correctly failed loud on three substantive conflicts.

Resolution audit:

  • Preserved main package and changeset metadata.
  • Took the 3.1.14 changelog and immutable release artifacts.
  • Preserved main for request-signing docs, the signed-requests runner contract, and SDK runner capability tests after verifying each main version already contains a strict superset of the 3.1.x maintenance edit.
  • Preserved main source schema index metadata.

The resulting diff against main contains only the 3.1.14 immutable artifacts plus their changelog and dist discovery metadata.

bokelley and others added 10 commits August 8, 2026 22:16
)

* docs(request-signing): drop stale conformance vector counts

The Testing section said the spec ships 39 test vectors (12 positive + 27
negative). The set is 40 — 12 positive + 28 negative — since vector
028-unsigned-protocol-method-required was added in 3.1.0.

Refer to the positive/ and negative/ directories instead of stating counts,
matching universal/signed-requests.yaml, whose pass_criteria deliberately
grades "all vectors in positive/ ... and all vectors in negative/" rather
than a total, and so cannot drift as vectors are added.

Refs #6071

* fix(compliance): drop stale vector count from signed-requests-runner header

The header said the storyboard grades a verifier against 28 conformance
vectors. The set is 40 - 12 positive + 28 negative. 28 is the size of
negative/ alone, so the count omitted the positive set entirely.

It was never accurate: at 3.0.x the set was 39 (12 + 27), matching neither
the total nor the negative count. Vector 028-unsigned-protocol-method-required
landed in 3.1.0, which is what made 28 coincide with len(negative/).

Refer to the positive/ and negative/ directories instead of a count, matching
universal/signed-requests.yaml, whose pass_criteria grades "all vectors in
positive/ ... and all vectors in negative/" and therefore cannot drift.

Refs #6071

* chore: add changeset for request-signing vector count fixes

---------

Co-authored-by: Constantine Mirin <konstantin.mirin@gmail.com>
Co-authored-by: Constantine.mirin <konstantin.mirin@postindustria.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Comment thread CHANGELOG.md

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ladon verdict: Request changes

Request changes — 1 blocking finding.

This is a forward-merge of the released 3.1.14 artifacts into main: 1,052 new append-only files under dist/{schemas,compliance,protocol}/3.1.14/*. Append-only immutability holds (no existing semver artifact modified or deleted), and there are no source-schema, changeset, or server changes — the enum fix already landed on main in base commit 2c1d02d. The high_risk flag is driven entirely by (added) files under dist/**, which is normal release-artifact scaffolding and not escalation-worthy on its own.

However, two regressions hide in the three modified metadata files, neither disclosed in the PR's resolution audit:

Blocking (high):

  • dist/schemas/index.json:564 — The forward-merge flips deprecated true→false for 2.5.0–2.5.3 in the live discovery document, silently un-deprecating four released versions that adopters resolve against. This is a real regression in the mutable live discovery doc (not the immutable per-version artifacts), reproducible on a load-bearing path. Restore the deprecated:true state for the 2.5.x line.

Medium (non-blocking, noted):

  • CHANGELOG.md:3 — The merge resolution clobbered main's Unreleased experimental-surface notice. Restore it.

Decision table: row 1 fires (a high finding is present) → request-changes. Please fix the index.json deprecation regression and restore the CHANGELOG notice, then re-request review.

Blocking findings

  • dist/schemas/index.json:564 — Forward-merge un-deprecates 2.5.0–2.5.3 (deprecated true→false) in the live discovery document; restore deprecated:true for the 2.5.x line

Medium findings

  • CHANGELOG.md:3 — Forward-merge deletes main's Unreleased experimental-surface notice

Comment thread CHANGELOG.md

- Cross-role governance enforcement: the experimental `governance.campaign` surface will add typed `target_agent`, task-scoped `adcp.governance_enforcement`, critical task/payload/commitment JWS bindings, intent-only conditions negotiation, and governance-authoritative settlement. The implementation may merge during 3.2 development; the beta-to-GA period provides the experimental-surface notice window. See the 3.2 release notes and migration guide.

## 3.1.14

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Medium: This resolution overwrites main's ## Unreleased experimental-surface notices section rather than inserting ## 3.1.14 above ## 3.1.13. The 3.2 cross-role governance-enforcement notice that was on base (CHANGELOG.md:3-5) is dropped from main. A forward-merge should preserve the Unreleased notices section and add the 3.1.14 entry beneath it. The resolution audit lists what it preserved (package/changeset metadata, schema index metadata) but not this section — looks overlooked. The notice points to "the 3.2 release notes and migration guide," so the canonical record survives elsewhere, but the notice-window marker on main is lost.

@bokelley
bokelley dismissed aao-secretariat[bot]’s stale review August 15, 2026 20:39

Superseded by 5ae1e00 and f5f1140: the 2.5.x deprecation metadata and main-only unreleased changelog notice are both restored.

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ladon verdict: Approve

Approve — subsequent review; prior blocking findings resolved.

This is a follow-up pass to a prior request-changes. The delta since that pass touches only CHANGELOG.md and dist/schemas/index.json, and it clears both prior findings:

  • Prior [high] dist/schemas/index.json:564 (forward-merge un-deprecated 2.5.0–2.5.3): resolved — the delta re-deprecates 2.5.0–2.5.3 (deprecated:true) and restores the absolute $id, both matching main's base.
  • Prior [medium] CHANGELOG.md:3 (forward-merge deleted main's Unreleased notice): resolved — main's ## Unreleased experimental-surface notices section is re-added verbatim above the new ## 3.1.14 entry.

Current run surfaces no findings.

Decision-table walk:

  • Row 1 (critical/high): no findings — not triggered.
  • Row 2 (gated_paths + not APPROVED): gated_paths: false — not triggered. (Note: review_decision is CHANGES_REQUESTED, but row 2 only fires when gated_paths is true, and it is not.)
  • Row 3 (high_risk + deleted): all high-risk dist/** reasons are (added) except two (modified) — no deletions — not triggered.
  • Row 4 (medium + data-loss/schema/infra): no findings — not triggered.
  • Row 5 (high_risk + modified + medium finding): the two (modified) entries exist, but there are no medium findings — not triggered.
  • Row 6 (sticky escalate): prior decision was request-changes, not escalate — not applicable.
  • Row 7 (no-auto-approve team): no team match — not triggered.
  • Row 8 (≥3 medium): zero medium findings — not triggered.
  • Row 9: approve.

The bulk of the diff is newly-added immutable release artifacts under dist/compliance/3.1.14/, dist/schemas/3.1.14/, and dist/protocol/3.1.14.* — new semver artifacts, which is normal release scaffolding, not a mutation of an existing released artifact. The only modifications are to the mutable dist/schemas/index.json and dist/schemas/latest.json discovery docs, and the reviewer confirmed those now match main's base for the previously-flagged fields. Net improvement over the prior pass with no remaining actionable findings.

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ladon verdict: Approve

Approve — forward-merge of the 3.1.14 stable release artifacts into main.

What I checked:

  • Immutability (critical gate): 1,053 added files all live under NEW 3.1.14 semver paths (dist/compliance/3.1.14/**, dist/schemas/3.1.14/**, dist/protocol/3.1.14.*). No file inside a pre-existing semver artifact is modified or deleted. The reviewer confirms all 12 deletions are confined to mutable discovery/changelog surfaces (CHANGELOG.md, dist/schemas/index.json, dist/schemas/latest.json) — the only mutable dist/* outputs. Append-only release-record semantics hold.
  • Discovery-pointer consistency: dist/schemas/index.json and latest.json (both modified, both mutable) updated coherently to point at the new version.
  • High-risk flag: true, but every high_risk_reasons entry is (added) scaffolding of a new versioned artifact, plus two (modified) mutable pointer files. Per the flag-reading rules, new files matching high-risk globs are normal release work and not escalation-worthy on the flag alone; the two modified files carry no medium-or-higher finding.

Decision-table walk:

  • Row 1 (critical/high): no such findings.
  • Row 2 (gated_paths + not APPROVED): gated_paths is false — does not fire.
  • Row 3 (deleted high-risk): no (deleted) entries in high_risk_reasons.
  • Row 4 (medium + data-loss/schema/infra): the single medium (CHANGELOG resolution dropped main's 'Unreleased experimental-surface notices' section) is a changelog-content/merge-resolution issue, not a schema/data-loss/infra category finding — does not fire.
  • Row 5 (high_risk modified + medium): the CHANGELOG.md finding is not on a file listed in high_risk_reasons (only index.json/latest.json are the modified high-risk entries) — does not fire.
  • Row 6: no prior decision.
  • Row 7: no no-auto-approve team match.
  • Row 8: only ONE medium finding — does not fire.
  • Row 9: approve.

Medium finding (non-blocking):

  • CHANGELOG.md:7 — merge resolution dropped main's 'Unreleased experimental-surface notices' section. Worth a human eyeball on the next changelog edit, but it is a single medium on a mutable file and does not block per the decision rules.

Medium findings

  • CHANGELOG.md:7 — CHANGELOG resolution drops main's 'Unreleased experimental-surface notices' section

@bokelley
bokelley enabled auto-merge (squash) August 15, 2026 20:40
@bokelley
bokelley merged commit ecfd1fa into main Aug 15, 2026
43 checks passed
@bokelley
bokelley deleted the forward-merge/3.1.x-3.1.14 branch August 15, 2026 20:43
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