From ebde8a39131dfa1dcf22f321017ec60df366ab95 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 9 Nov 2026 04:12:10 +0000
Subject: [PATCH] chore(release): bump version to 0.16.0
---
CHANGELOG.md | 223 ++++++++++++++++++
Cargo.lock | 12 +-
Cargo.toml | 2 +-
crates/spoke-connect/Cargo.toml | 4 +-
.../bindings/csharp/42ch.Spoke.Connect.csproj | 2 +-
.../bindings/kotlin/build.gradle.kts | 2 +-
.../bindings/python/pyproject.toml | 2 +-
crates/spoke-operations/Cargo.toml | 2 +-
fixtures/toy-world/package.json | 2 +-
package.json | 2 +-
packages/spoke-connect-ts/package.json | 2 +-
packages/spoke-operations/package.json | 2 +-
packages/spoke-schemas/package.json | 2 +-
tooling/codegen/package.json | 2 +-
14 files changed, 242 insertions(+), 19 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2c2b0aba..23ed14fe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,229 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Release notes for GitHub Releases are extracted from the matching version section here.
+## [0.16.0] - 2026-11-09
+
+
+### Added
+
+- **cognition:** Add structured cognition protocol and consumers
+
+- **cognition:** Add structured cognition protocol and consumers (#154)
+
+
+### Changed
+
+- **cognition:** Isolate projection identity mismatch vectors
+
+- **toy-world:** Pass explicit assemble policy to adapter fixture
+
+- **connect:** Drop the memory table size pin in the dispatch suite
+
+- **release:** Drop the optional-dependency shape pin from the bump suite
+
+- **memory:** Isolate conformance admission principals
+
+- **cognition:** Extend timestamp parity fixture boundaries
+
+- **cognition:** Pin shared timestamp parity boundaries
+
+- **spoke-connect:** Isolate the cognition fail-closed pin arm
+
+- **spoke-connect:** Drop incidental error wording pin
+
+- **connect:** Compile C++ inclusion probe in both exception modes
+
+- **connect:** Drop incidental diagnostic wording pins
+
+- **connect:** Drop pre-existing dirty-source wording pin
+
+
+### Documentation
+
+- **cognition:** Fix Chinese data-model cognition anchor link
+
+- **cognition:** State the frozen capability-denial split and current symbols
+
+- **spoke-connect,memory-engine:** Align remote gating and measure test wording
+
+- **spoke-operations:** Document distinct cognition reject helpers
+
+- **spoke-operations:** Condense cognition reject helper rationale
+
+- **spoke-operations:** Note shared cognition reject reason in helper comments
+
+- **cognition:** Integrate intentional reject-shape rationale
+
+- **cpp:** Clarify paired header LF pins
+
+- Align release and native artifact contracts
+
+- **knowledge:** Attribute the canonicalize pin to the library, not the demo
+
+- Align Node runtime facts and toolchain prerequisites
+
+- Describe Ed25519 backend selection as a runtime capability
+
+- **release:** Integrate current runtime and prerequisite facts
+
+- **knowledge:** Normalize connect metadata and responder scope
+
+- **knowledge:** Attribute responder demo to the public factory
+
+- **connect-ts:** State the probe contract instead of version-cutoff claims
+
+- **connect:** Scope D10 enforcement wording and state exact probe and sidecar facts
+
+- **connect:** Align enforcement and provenance descriptions
+
+
+### Fixed
+
+- **cognition:** Reject repeated carrier ids and inconsistent projections
+
+- **cognition:** Enforce carrier and projection integrity
+
+- **connect:** Route the host peer-manifest op and share the port capability map
+
+- **connect:** Align remote capability routing and parity
+
+- **cognition:** Scope projection record-id identity to carriers
+
+- **cognition:** Preserve carrier-local identities in projections
+
+- **tests:** Isolate conformance case principals
+
+- **scope:** Keep explicit empty refinements through typed serving
+
+- **scope:** Preserve optional-array presence through served requests
+
+- **cognition:** Treat undefined content cognition as absence
+
+- **cognition:** Accept omitted TypeScript Content members
+
+- **cognition:** Reject grammar-invalid typed Scope cognition filters
+
+- **cognition:** Validate typed Scope requirements at the shared boundary
+
+- **release:** Refuse non-increasing version bumps
+
+- **connect:** Verify C++ header provenance
+
+- **cpp:** Preserve header provenance checkout bytes
+
+- **cpp:** Include dependency crates in source identity
+
+- **connect:** Integrate dependency-aware native source identity
+
+- **schemas:** Pin mental MindDelta roots to the nine-field vocabulary
+
+- **spoke-connect:** Fail closed on unreadable reflection pins
+
+- **cognition:** Integrate fail-closed fixture pin coverage
+
+- **cognition:** Integrate validation and fixture pin hardening
+
+- **connect:** Compare non-callback C ABI record field types
+
+- **connect:** Infer carrier field types without coercion
+
+- **go:** Refresh Darwin native carriers
+
+- **connect:** Refresh Swift carriers from verified CI artifact
+
+- **connect:** Integrate guarded Swift carrier refresh
+
+- Harden release readiness and refresh native carriers
+
+- **kotlin:** Extend Gradle wrapper network timeout
+
+- Stabilize Kotlin wrapper downloads
+
+- **connect-capi:** Restore single-writer ABI report test invariant
+
+- Preserve a single ABI report writer
+
+- **connect:** Bind Swift artifacts to producer checkout
+
+- **connect:** Verify delivered xcframework bytes before staging
+
+- Verify Swift artifact producer and delivered bytes
+
+- **release:** Align git-cliff fallback with root pin
+
+- **packages:** **BREAKING:** Require Node >= 22 for published runtime packages
+
+- Preflight shasum and parse gh download --dir in apply fixture
+
+- **release:** Integrate runtime and tooling corrections
+
+- **connect:** Refuse missing git-lfs in fail-fast preflight before any network or tree mutation
+
+- **connect:** Integrate early prerequisites and knowledge corrections
+
+- **release:** Complete maintenance and release readiness
+
+
+### Internal
+
+- Enforce Swift xcframework freshness
+
+- **connect:** Integrate Swift freshness comparison
+
+- **connect:** Integrate reviewed header provenance prerequisites
+
+- **cpp:** Verify committed carrier provenance
+
+- **connect:** Integrate per-carrier provenance verification
+
+- **connect:** Integrate reviewed header-pair provenance
+
+- **native:** Integrate ABI gates and header provenance
+
+- **native:** Combine accepted source for carrier refresh
+
+- Align maintenance with current dependencies
+
+- **connect:** Refresh Go Darwin native libraries
+
+
+### build
+
+- **deps:** Bump glob from 13.0.6 to 14.0.3
+
+- **connect:** Refresh C carriers from CI
+
+- **connect:** Integrate refreshed C carriers
+
+- **connect:** Integrate refreshed Go Darwin carriers
+
+- **deps:** Bump @noble/ciphers from 2.2.0 to 2.4.0
+
+- **deps:** Bump libp2p-identity from 0.3.0 to 0.3.1 (#155)
+
+- **deps:** Bump futures from 0.3.33 to 0.3.34 (#160)
+
+- **deps:** Bump sha2 from 0.10.9 to 0.11.0 (#158)
+
+- **connect:** Refresh C carriers from CI
+
+- **connect:** Integrate aligned C carriers
+
+- **connect:** Refresh xcframework from CI artifact 42479247964
+
+- **connect:** Integrate aligned Swift carrier
+
+- **connect:** Integrate aligned Go carriers
+
+
+### merge
+
+- **release:** Integrate consumer node requirements
+
+- **release:** Integrate artifact helper checks
+
+- **docs:** Clarify demo ownership
+
## [0.15.2] - 2026-11-06
diff --git a/Cargo.lock b/Cargo.lock
index 8907287b..5ac7cdcf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3141,7 +3141,7 @@ dependencies = [
[[package]]
name = "spoke-connect"
-version = "0.15.2"
+version = "0.16.0"
dependencies = [
"async-trait",
"base64 0.23.1",
@@ -3169,7 +3169,7 @@ dependencies = [
[[package]]
name = "spoke-connect-capi"
-version = "0.15.2"
+version = "0.16.0"
dependencies = [
"serde_json",
"spoke-connect",
@@ -3177,7 +3177,7 @@ dependencies = [
[[package]]
name = "spoke-fixture-memory-engine"
-version = "0.15.2"
+version = "0.16.0"
dependencies = [
"chrono",
"ryu",
@@ -3190,7 +3190,7 @@ dependencies = [
[[package]]
name = "spoke-fixture-toy-world"
-version = "0.15.2"
+version = "0.16.0"
dependencies = [
"async-trait",
"futures",
@@ -3203,7 +3203,7 @@ dependencies = [
[[package]]
name = "spoke-operations"
-version = "0.15.2"
+version = "0.16.0"
dependencies = [
"async-trait",
"chrono",
@@ -3218,7 +3218,7 @@ dependencies = [
[[package]]
name = "spoke-schemas"
-version = "0.15.2"
+version = "0.16.0"
dependencies = [
"chrono",
"regress",
diff --git a/Cargo.toml b/Cargo.toml
index fedb433f..142e40bc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,7 +20,7 @@ default-members = [
resolver = "2"
[workspace.package]
-version = "0.15.2"
+version = "0.16.0"
edition = "2021"
authors = ["42ch"]
license = "Apache-2.0"
diff --git a/crates/spoke-connect/Cargo.toml b/crates/spoke-connect/Cargo.toml
index 81654698..1542f8e3 100644
--- a/crates/spoke-connect/Cargo.toml
+++ b/crates/spoke-connect/Cargo.toml
@@ -13,7 +13,7 @@ description = "SPOKE Connect reference spike — libp2p transport, noise-peerid
exclude = ["bindings/**", "examples/**"]
[dependencies]
-spoke-schemas = { version = "0.15.2", path = "../spoke-schemas" }
+spoke-schemas = { version = "0.16.0", path = "../spoke-schemas" }
# The C5 closed cognition grammar + `SpokeReject`/`SpokeResult` vocabulary.
# Required (not feature-gated): the generic node dispatch rejects an
# unsupported cognition requirement before running its handler, so the raw
@@ -21,7 +21,7 @@ spoke-schemas = { version = "0.15.2", path = "../spoke-schemas" }
# the same crate is what keeps that diagnosis from re-implementing the
# grammar. The `remote-adapter` feature still gates the remote module
# (BaselinePorts proxy; TS equivalent: the `./remote` subpath export).
-spoke-operations = { version = "0.15.2", path = "../spoke-operations" }
+spoke-operations = { version = "0.16.0", path = "../spoke-operations" }
# Loopback smoke host (RemoteAdapter FFI binding smokes; `ffi-smoke-host` only).
libp2p.workspace = true
serde.workspace = true
diff --git a/crates/spoke-connect/bindings/csharp/42ch.Spoke.Connect.csproj b/crates/spoke-connect/bindings/csharp/42ch.Spoke.Connect.csproj
index a89b7cfb..0dd5ba24 100644
--- a/crates/spoke-connect/bindings/csharp/42ch.Spoke.Connect.csproj
+++ b/crates/spoke-connect/bindings/csharp/42ch.Spoke.Connect.csproj
@@ -18,7 +18,7 @@
42ch.Spoke.Connect
- 0.15.2
+ 0.16.0
42ch
42ch
SPOKE Connect session-core C# bindings (uniffi + native spoke_connect FFI). Transport stays product-owned.
diff --git a/crates/spoke-connect/bindings/kotlin/build.gradle.kts b/crates/spoke-connect/bindings/kotlin/build.gradle.kts
index abe46507..2af67908 100644
--- a/crates/spoke-connect/bindings/kotlin/build.gradle.kts
+++ b/crates/spoke-connect/bindings/kotlin/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
group = "dev.42ch"
// Lockstep SemVer — asserted/bumped with tooling/release lockstep surfaces.
-version = "0.15.2"
+version = "0.16.0"
repositories {
mavenCentral()
diff --git a/crates/spoke-connect/bindings/python/pyproject.toml b/crates/spoke-connect/bindings/python/pyproject.toml
index e2db7ced..31882725 100644
--- a/crates/spoke-connect/bindings/python/pyproject.toml
+++ b/crates/spoke-connect/bindings/python/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "spoke-connect"
-version = "0.15.2"
+version = "0.16.0"
description = "SPOKE Connect session-core Python bindings (uniffi + native spoke_connect FFI)"
readme = "README.md"
license = "Apache-2.0"
diff --git a/crates/spoke-operations/Cargo.toml b/crates/spoke-operations/Cargo.toml
index 9ffc139f..08894bb0 100644
--- a/crates/spoke-operations/Cargo.toml
+++ b/crates/spoke-operations/Cargo.toml
@@ -11,7 +11,7 @@ keywords = ["spoke", "knowledge-entry", "operations"]
categories = ["data-structures"]
[dependencies]
-spoke-schemas = { version = "0.15.2", path = "../spoke-schemas" }
+spoke-schemas = { version = "0.16.0", path = "../spoke-schemas" }
serde.workspace = true
serde_json.workspace = true
chrono.workspace = true
diff --git a/fixtures/toy-world/package.json b/fixtures/toy-world/package.json
index b84d105c..c0873e86 100644
--- a/fixtures/toy-world/package.json
+++ b/fixtures/toy-world/package.json
@@ -1,6 +1,6 @@
{
"name": "@42ch/spoke-fixture-toy-world",
- "version": "0.15.2",
+ "version": "0.16.0",
"private": true,
"description": "SPOKE toy-world protocol fixtures and AJV/Vitest conformance harness",
"license": "Apache-2.0",
diff --git a/package.json b/package.json
index bbad56f0..77325de4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "spoke",
- "version": "0.15.2",
+ "version": "0.16.0",
"private": true,
"description": "SPOKE protocol monorepo — JSON Schema SSOT with generated TypeScript and Rust types",
"license": "Apache-2.0",
diff --git a/packages/spoke-connect-ts/package.json b/packages/spoke-connect-ts/package.json
index 0783f65f..4b8e490e 100644
--- a/packages/spoke-connect-ts/package.json
+++ b/packages/spoke-connect-ts/package.json
@@ -1,6 +1,6 @@
{
"name": "@42ch/spoke-connect",
- "version": "0.15.2",
+ "version": "0.16.0",
"description": "SPOKE connect client library — pure-TS identity derivation, Ed25519 hello signing, and RFC 8785 JCS canonicalization",
"license": "Apache-2.0",
"repository": {
diff --git a/packages/spoke-operations/package.json b/packages/spoke-operations/package.json
index 7059f00d..e0591ae6 100644
--- a/packages/spoke-operations/package.json
+++ b/packages/spoke-operations/package.json
@@ -1,6 +1,6 @@
{
"name": "@42ch/spoke-operations",
- "version": "0.15.2",
+ "version": "0.16.0",
"description": "SPOKE lifecycle operations — pure helpers over wire types",
"license": "Apache-2.0",
"repository": {
diff --git a/packages/spoke-schemas/package.json b/packages/spoke-schemas/package.json
index b656836f..9ed46af9 100644
--- a/packages/spoke-schemas/package.json
+++ b/packages/spoke-schemas/package.json
@@ -1,6 +1,6 @@
{
"name": "@42ch/spoke-schemas",
- "version": "0.15.2",
+ "version": "0.16.0",
"description": "SPOKE wire types — TypeScript generated from JSON Schema",
"license": "Apache-2.0",
"repository": {
diff --git a/tooling/codegen/package.json b/tooling/codegen/package.json
index 917ed8ee..03c85435 100644
--- a/tooling/codegen/package.json
+++ b/tooling/codegen/package.json
@@ -1,6 +1,6 @@
{
"name": "@42ch/spoke-codegen",
- "version": "0.15.2",
+ "version": "0.16.0",
"private": true,
"license": "Apache-2.0",
"description": "SPOKE schema-to-code generation pipeline (TypeScript + Rust)",