@kya-os/checkpoint-wasm-runtime 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,134 @@
|
|
|
1
1
|
# @kya-os/checkpoint-wasm-runtime
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.5.0 — 2026-05-19
|
|
4
|
+
|
|
5
|
+
**Formal announcement of HTTP-Sig-Verifier-1 — Tier 1 RFC 9421 HTTP
|
|
6
|
+
Message Signature verification (PR #2642).** Engine cryptographically
|
|
7
|
+
verifies OpenAI's `ChatGPT-Agent` signed traffic at 0.99 confidence
|
|
8
|
+
with vendor attribution on `detection_detail.metadata.verified_*`.
|
|
9
|
+
Pin `^1.5.0` if your dashboard / handler consumes the new Tier 1
|
|
10
|
+
metadata or the failure/skip-reason taxonomy.
|
|
11
|
+
|
|
12
|
+
### Honest note on what 1.5.0 actually is
|
|
13
|
+
|
|
14
|
+
The Tier 1 code first rode along in 1.4.3 + 1.4.4 because the publish
|
|
15
|
+
workflow rebuilds wasm from `main` HEAD and #2642 had already merged.
|
|
16
|
+
But both releases shipped under publish-mechanic CHANGELOG entries
|
|
17
|
+
(`workspace:*` leaks, `.gitignore` poison) and were never advertised
|
|
18
|
+
as the Tier 1 ship. 1.5.0 corrects the SemVer label: Tier 1 adds a
|
|
19
|
+
new `AgentRequest::HttpSigned` enum variant + new `verified_*`
|
|
20
|
+
metadata fields + new failure-reason taxonomy strings. That's
|
|
21
|
+
additive public API surface → minor bump, not patch. 1.4.4 is not
|
|
22
|
+
broken and stays on the registry, but new consumers should pin
|
|
23
|
+
`^1.5.0` for clarity of intent.
|
|
24
|
+
|
|
25
|
+
### Added (Tier 1 RFC 9421 verification)
|
|
26
|
+
|
|
27
|
+
- **`AgentRequest::HttpSigned` variant** wired through `verify`
|
|
28
|
+
dispatch. Verified signatures short-circuit to a high-confidence
|
|
29
|
+
`Permit` Decision; failed / skipped verification falls through to
|
|
30
|
+
the existing plain-HTTP pipeline with `tier1_failure_reason` /
|
|
31
|
+
`tier1_skipped_reason` preserved on the detection metadata.
|
|
32
|
+
- **`detection_detail.metadata.verified_*` attribution** when Tier 1
|
|
33
|
+
succeeds: `verified_tier` (1), `verified_protocol` (`rfc9421`),
|
|
34
|
+
`verified_vendor` (e.g. `openai`), `key_id`, `covered_components`.
|
|
35
|
+
F-18 dual-write contract: these fields are byte-stable.
|
|
36
|
+
- **Embedded OpenAI JWK manifest** (`data/vendor-keys/openai.json`)
|
|
37
|
+
loaded via `include_str!` into a lazy `VendorKeyRegistry`. Resilient
|
|
38
|
+
to packaging failure (engine still runs without Tier 1 if the
|
|
39
|
+
manifest is absent or malformed).
|
|
40
|
+
- **Failure-reason taxonomy (byte-stable):** `bad_signature`,
|
|
41
|
+
`replay_expires_violation`, `replay_window_violation`, `alg_mismatch`,
|
|
42
|
+
`unknown_keyid_with_signature_agent`, `signature_agent_mismatch`,
|
|
43
|
+
`malformed_header`, `unsupported_covered_component`,
|
|
44
|
+
`missing_covered_header`, `key_expired`, `key_not_yet_valid`.
|
|
45
|
+
- **Skip-reason taxonomy (byte-stable):** `no_signature_header`,
|
|
46
|
+
`unsupported_alg`, `unknown_signature_agent_no_matching_keyid`.
|
|
47
|
+
- **Cross-runtime parity:** 13 fixtures × 3 runtimes (Rust + WASM
|
|
48
|
+
Node + WASM Edge) green, including 2 new `HttpSigned` fixtures
|
|
49
|
+
covering skip + fail paths.
|
|
50
|
+
- **`serde-wasm-bindgen` `Serializer::json_compatible()` fix** so
|
|
51
|
+
`BTreeMap<String, Value>` metadata survives `JSON.stringify` across
|
|
52
|
+
the WASM boundary. Was silently collapsing to `{}` before; Tier 1
|
|
53
|
+
is the first real emit site for metadata so the bug surfaced now.
|
|
54
|
+
|
|
55
|
+
### Operator surface
|
|
56
|
+
|
|
57
|
+
- `scripts/refresh-openai-signing-keys.ts` — runnable today; fetches
|
|
58
|
+
`https://chatgpt.com/.well-known/http-message-signatures-directory`,
|
|
59
|
+
diffs against the embedded manifest, applies 4 sanity gates (>50%
|
|
60
|
+
removal block, >10× growth block, Ed25519-only alg whitelist,
|
|
61
|
+
per-kid expiry regression block) + `--ack-vendor` one-shot override.
|
|
62
|
+
GitHub Actions cron wrapper lands in a follow-up.
|
|
63
|
+
|
|
64
|
+
### Verification gates active on this release
|
|
65
|
+
|
|
66
|
+
All four publish-workflow gates from 1.4.4 still apply:
|
|
67
|
+
|
|
68
|
+
1. Sanity gate — all three wasm-pack targets produce non-trivial
|
|
69
|
+
`.wasm` binaries on disk.
|
|
70
|
+
2. Tarball-content gate — `tar -tz` listing must contain every
|
|
71
|
+
required wasm artifact path. (1.4.1/1.4.2 failure mode.)
|
|
72
|
+
3. Manifest gate — packed `package.json` must contain zero
|
|
73
|
+
`workspace:` substrings in any dependency field. (1.4.3 failure
|
|
74
|
+
mode.)
|
|
75
|
+
4. Post-publish re-fetch gate — fetches the published tarball from
|
|
76
|
+
the registry and re-runs gates 2 + 3.
|
|
77
|
+
|
|
78
|
+
### Adobe pitch narrative upgrade
|
|
79
|
+
|
|
80
|
+
Pre-1.5.0: "MCP-I cryptographic verification + Tier 2 vendor IP+UA
|
|
81
|
+
cross-match + Tier 3 UA pattern fallback (Monitor)." Post-1.5.0:
|
|
82
|
+
"Same engine; same `Decision` output shape; also verifies RFC 9421
|
|
83
|
+
signed traffic from OpenAI's ChatGPT-Agent at 0.99 confidence today,
|
|
84
|
+
plus any vendor that adopts the same protocol tomorrow. No vendor
|
|
85
|
+
adoption of MCP-I required for verification to work." DataDome /
|
|
86
|
+
Cloudflare / Kasada ceiling at Tier 3 heuristics; this release puts
|
|
87
|
+
KYA-OS one tier above the field for any vendor that signs.
|
|
88
|
+
|
|
89
|
+
### Follow-ups (not in this release)
|
|
90
|
+
|
|
91
|
+
- Real ChatGPT-Agent traffic fixture (synthetic-signed fixtures cover
|
|
92
|
+
dispatch + crypto today).
|
|
93
|
+
- GitHub Actions cron + PR template + vitest coverage + architecture
|
|
94
|
+
doc for the JWK refresh script.
|
|
95
|
+
- Phase 2 crypto (RSA-PSS-SHA512 + ECDSA-P256-SHA256) — when a
|
|
96
|
+
second vendor adopts RFC 9421.
|
|
97
|
+
|
|
98
|
+
## 1.4.4 — 2026-05-18
|
|
99
|
+
|
|
100
|
+
**Third recovery release. Do NOT use 1.4.3 — the published manifest
|
|
101
|
+
shipped `@kya-os/checkpoint-shared: "workspace:*"` instead of the
|
|
102
|
+
resolved version. Consumers can't install with any package manager
|
|
103
|
+
(pnpm errors with `ERR_PNPM_WORKSPACE_PKG_NOT_FOUND`; npm/yarn try to
|
|
104
|
+
fetch `workspace:*` from the registry and fail).**
|
|
105
|
+
|
|
106
|
+
### What 1.4.3 got wrong (and 1.4.4 fixes)
|
|
107
|
+
|
|
108
|
+
The new publish workflow (#2675/#2676) uses `npm pack --ignore-scripts`
|
|
109
|
+
so it can skip `prepublishOnly` (which would re-introduce the wasm-pack
|
|
110
|
+
`.gitignore` poison that broke 1.4.1/1.4.2). The trade-off we missed:
|
|
111
|
+
`pnpm publish` and `pnpm pack` rewrite the `workspace:` protocol to
|
|
112
|
+
concrete versions at pack-time; `npm pack` does NOT. So the new
|
|
113
|
+
workflow shipped a manifest that no package manager outside the source
|
|
114
|
+
workspace could resolve.
|
|
115
|
+
|
|
116
|
+
Fix in this release:
|
|
117
|
+
|
|
118
|
+
1. **Pre-pack substitution step** in `pack-and-verify-tarball`: reads
|
|
119
|
+
`@kya-os/checkpoint-shared`'s actual version from the workspace and
|
|
120
|
+
rewrites `workspace:*` → `1.1.0` (or whatever the workspace publishes)
|
|
121
|
+
in the wasm-runtime manifest before `npm pack` runs.
|
|
122
|
+
2. **New `MANIFEST GATE`** in the same job: extracts the packed
|
|
123
|
+
`package.json` from the tarball and asserts zero `workspace:`
|
|
124
|
+
substrings in any dependency field. The 1.4.3 publish would have
|
|
125
|
+
failed at this gate.
|
|
126
|
+
|
|
127
|
+
Two artifact-shape gates (1.4.1/1.4.2 failure) + two manifest gates
|
|
128
|
+
(1.4.3 failure) + a post-publish re-fetch gate now stand between any
|
|
129
|
+
future publish and a broken registry entry.
|
|
130
|
+
|
|
131
|
+
## 1.4.3 — 2026-05-18 — DEPRECATED (workspace:\* leak)
|
|
4
132
|
|
|
5
133
|
**Second recovery release. Do NOT use 1.4.1 OR 1.4.2 — both shipped
|
|
6
134
|
broken tarballs missing `wasm/kya-os-engine/*` (nodejs target) and
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kya-os/checkpoint-wasm-runtime",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Checkpoint WASM runtime for AI agent detection across all environments (formerly @kya-os/agentshield-wasm-runtime)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
"wasm:rebuild": "bash ../../rust/scripts/build-engine-wasm.sh"
|
|
149
149
|
},
|
|
150
150
|
"dependencies": {
|
|
151
|
-
"@kya-os/checkpoint-shared": "
|
|
151
|
+
"@kya-os/checkpoint-shared": "1.1.0",
|
|
152
152
|
"multiformats": "^13"
|
|
153
153
|
},
|
|
154
154
|
"devDependencies": {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|