Skip to content

chore(release): forward-merge 3.1.15 into main - #6640

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

chore(release): forward-merge 3.1.15 into main#6640
bokelley merged 11 commits into
mainfrom
forward-merge/3.1.x-3.1.15

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • forward-merge the released 3.1.15 schemas, compliance bundle, and protocol artifacts into main
  • preserve the 3.2 beta source/package identities and 3.2-specific conflict resolutions
  • update root schema discovery so 3.2.0-beta.0 remains listed while latest_stable, v3, and v3.1 point to 3.1.15

Root cause

The automated 3.1.x → main merge failed on genuine content conflicts after the 3.1.15 release. That stranded stable artifacts and left /schemas/index.json reporting 3.1.14 even though the stable aliases already served 3.1.15.

Conflict decisions

  • kept main's 3.2 package, pre-mode, source-registry, signing-profile, capability-gate, and expanded runner-contract behavior
  • retained the 3.2 beta changelog and inserted the 3.1.15 maintenance entry chronologically
  • combined schema discovery rows rather than choosing either branch wholesale

Validation

  • pre-commit unit, import, identity-boundary, state-change, server-unit, and typecheck gates
  • npm run test:dist-schema-version-ids
  • npm run test:storyboard-test-kits
  • node --test --test-force-exit --test-timeout=30000 tests/sdk-runner-capability-gates.test.cjs
  • node --test --test-force-exit --test-timeout=30000 tests/lint-universal-storyboard-doc-parity.test.cjs
  • git diff --check

bokelley and others added 11 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>
Backport the canonical rate-limit exhaustion not-applicable grading contract and regression coverage to the 3.1 maintenance line while preserving the branch-specific reason enum.
Publish the 3.1.x rate-limit exhaustion clarification and immutable release artifacts.

@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 — clean forward-merge of released 3.1.15 into main.

What I checked:

  • Released-artifact immutability: The 1053 high-risk hits are all (added) new files under dist/compliance/3.1.15/**, dist/schemas/3.1.15/**, and dist/protocol/3.1.15.* — brand-new append-only release records for a version that did not previously exist. No modification/deletion of any file inside an existing semver artifact. The only (modified) files are dist/schemas/index.json and dist/schemas/latest.json, which are mutable discovery pointers (latest is explicitly mutable dev output); reviewer confirms they advance 3.1.14 → 3.1.15 with 3.2.0-beta.0 preserved. Nothing critical.
  • Source/schema surface: No edits to static/schemas/source/**, so schema↔docs coherence, oneOf discriminator audit, and 3.1.x patch-eligibility gates do not apply. No package.json version hand-edit.
  • Changeset scope: Chronological 3.1.15 CHANGELOG entry present; no untracked wire change.
  • Breaking-class hard gate: This is a release-artifact publish, not a protocol policy/wire-shape decision — no Breaking-class change to ratify.

Gate posture: gated_paths is false, so row 2 does not fire despite review_decision: REVIEW_REQUIRED. high_risk is true but every reason is (added) (new-file scaffolding — not escalation-worthy per the high-risk-flag reading) except two mutable-pointer modifications with no medium-or-higher finding. No author team gate. Reviewer surfaced zero findings.

Rows 1–8 do not fire; falls through to row 9 → approve.

@bokelley
bokelley merged commit d8f819f into main Aug 18, 2026
44 checks passed
@bokelley
bokelley deleted the forward-merge/3.1.x-3.1.15 branch August 18, 2026 06:16
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