blun-king-cli 9.1.597 → 9.1.600
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 +39 -0
- package/README.md +17 -1
- package/agent-spine-plugin/CHANGELOG.md +1 -1
- package/agent-spine-plugin/docs/host-integration.md +1 -15
- package/agent-spine-plugin/docs/preflight-recall.md +1 -1
- package/agent-spine-plugin/scripts/check-install.js +1 -6
- package/agent-spine-plugin/scripts/hermetic-process.js +8 -0
- package/agent-spine-plugin/scripts/release-check.js +2 -3
- package/agent-spine-plugin/scripts/run-tests-hermetic.js +8 -11
- package/agent-spine-plugin/src/hook.js +40 -40
- package/agent-spine-plugin/src/lib/briefing.js +6 -3
- package/agent-spine-plugin/src/lib/hook-context.js +63 -64
- package/agent-spine-plugin/src/lib/hook-output.js +115 -94
- package/agent-spine-plugin/src/lib/hook-timeline.js +20 -11
- package/agent-spine-plugin/src/lib/host-instruction-budget.js +8 -14
- package/agent-spine-plugin/src/lib/mcp-timeline-tools.js +0 -7
- package/agent-spine-plugin/src/lib/pre-answer-timeline-recall.js +104 -0
- package/agent-spine-plugin/src/lib/session-timeline-codex.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-enrollment-source.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline-enrollment-storage.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-enrollment-transport.js +0 -2
- package/agent-spine-plugin/src/lib/session-timeline-enrollment.js +0 -22
- package/agent-spine-plugin/src/lib/session-timeline-host-origin.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-prior.js +42 -50
- package/agent-spine-plugin/src/lib/session-timeline-provider.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline-query.js +0 -1
- package/agent-spine-plugin/src/lib/session-timeline-sid-acl.js +0 -4
- package/agent-spine-plugin/src/lib/session-timeline-source.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline-transport.js +0 -8
- package/agent-spine-plugin/src/lib/session-timeline-windows-acl.js +0 -3
- package/agent-spine-plugin/src/lib/session-timeline.js +370 -408
- package/agent-spine-plugin/src/lib/source-roots.js +26 -16
- package/agent-spine-plugin/src/lib/timeline-user-feedback.js +0 -1
- package/bin/core-bootstrap.js +18 -10
- package/bin/launcher-mode.js +5 -0
- package/bin/launcher-runtime.js +27 -0
- package/bin/verify-bundled-agent-sources.cjs +28 -2
- package/blun.mjs +798 -143
- package/bundled-agent-sources.json +192 -155
- package/package.json +1 -1
- package/standard-skills/translate-native/README.md +1334 -1
- package/standard-skills/translate-native/SKILL.md +1 -1
- package/standard-skills/translate-native/VERSION +1 -1
- package/standard-skills/translate-native/docs/PREMORTEM.md +901 -0
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION.md +208 -41
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_API.md +1319 -77
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_EVIDENCE_HTTP.md +66 -11
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_HTTP_PROVIDER.md +19 -1
- package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_RECEIPT_VERIFIER_HTTP.md +24 -6
- package/standard-skills/translate-native/integrations/commercial_localization_profile.py +23 -0
- package/standard-skills/translate-native/integrations/website_localization.py +234 -10
- package/standard-skills/translate-native/integrations/website_localization_benchmark.py +39 -3
- package/standard-skills/translate-native/integrations/website_localization_cms.py +512 -10
- package/standard-skills/translate-native/integrations/website_localization_cms_client.py +116 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver.py +101 -11
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver_runtime.py +12 -1
- package/standard-skills/translate-native/integrations/website_localization_cms_receiver_store.py +186 -24
- package/standard-skills/translate-native/integrations/website_localization_cms_source_client.py +64 -1
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery.py +528 -5
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_auth.py +918 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_auth_runtime.py +609 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_client.py +885 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_http.py +1244 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_runtime.py +220 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_sidecar_adapter.py +331 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_capabilities_http.py +444 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_client.py +673 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch.py +1317 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_client.py +826 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_http.py +1152 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_openapi.py +896 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_runtime.py +621 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_http.py +1180 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_runtime.py +1479 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_source_http.py +133 -17
- package/standard-skills/translate-native/integrations/website_localization_cms_source_runtime.py +319 -4
- package/standard-skills/translate-native/integrations/website_localization_cms_source_service.py +72 -2
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_http.py +13 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver.py +56 -13
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_openapi.py +335 -0
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_runtime.py +66 -1
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_processing_monitor.py +73 -7
- package/standard-skills/translate-native/integrations/website_localization_cms_terminal_receiver_client.py +93 -9
- package/standard-skills/translate-native/integrations/website_localization_evidence_http.py +221 -11
- package/standard-skills/translate-native/integrations/website_localization_health.py +6 -0
- package/standard-skills/translate-native/integrations/website_localization_http_provider.py +1 -1
- package/standard-skills/translate-native/integrations/website_localization_quality_profiles.py +350 -0
- package/standard-skills/translate-native/integrations/website_localization_queue.py +126 -56
- package/standard-skills/translate-native/integrations/website_localization_receipt_verifier_http.py +166 -13
- package/standard-skills/translate-native/integrations/website_localization_release.py +423 -17
- package/standard-skills/translate-native/integrations/website_localization_release_coordinator.py +168 -13
- package/standard-skills/translate-native/integrations/website_localization_runner.py +10 -0
- package/standard-skills/translate-native/integrations/website_localization_worker.py +213 -9
- package/standard-skills/translate-native/provenance.json +2 -2
- package/standard-skills/translate-native/references/commercial-localization.md +96 -17
- package/standard-skills/translate-native/scripts/blun_language_guard.py +3 -1
- package/standard-skills/translate-native/scripts/check_commercial_review.py +69 -9
- package/standard-skills/translate-native/scripts/commercial_localization_profile.py +829 -31
- package/standard-tools/language-guard/VERSION +1 -1
- package/standard-tools/language-guard/blun_language_guard.py +3 -1
- package/standard-tools/language-guard/check_commercial_review.py +69 -9
- package/standard-tools/language-guard/commercial_localization_profile.py +829 -31
- package/standard-tools/language-guard/provenance.json +2 -2
- package/standard-tools/manifest.json +1 -1
- package/worker-host.mjs +215 -82
- package/agent-spine-plugin/scripts/check-install-king.js +0 -37
|
@@ -107,6 +107,1339 @@ For a translation, use `"task_kind": "translation"`, include the complete `sourc
|
|
|
107
107
|
|
|
108
108
|
This covers every human language and writing system, not only German umlauts. The same contract protects Swedish `å/ä/ö`, Czech `č/ř/š/ž`, Spanish accents and punctuation, Vietnamese tone marks, Greek, Cyrillic, Arabic, Hebrew, Indic scripts, Chinese, Japanese, Korean, and languages not named here. Deterministic checks are intentionally conservative and cannot prove perfect native wording; the native-language workflow and human review remain necessary where consequences are material.
|
|
109
109
|
|
|
110
|
+
### Version 6.155.0: durable general locale-policy invalidation
|
|
111
|
+
|
|
112
|
+
Version 6.155.0 binds every signed CMS release proof to the exact current
|
|
113
|
+
target-locale quality profile, including ordinary website copy. The compact
|
|
114
|
+
`{locale, version, sha256}` binding makes the language-policy generation that
|
|
115
|
+
governed translation and both review passes independently verifiable at the
|
|
116
|
+
publication boundary.
|
|
117
|
+
|
|
118
|
+
The release service and reference CMS receiver re-resolve that profile before
|
|
119
|
+
approval lookup, host commit, active read, health, and idempotent replay. Locale
|
|
120
|
+
substitution, profile drift, and resolver failure block fail-closed without
|
|
121
|
+
overwriting the last known good content; obsolete content remains safely
|
|
122
|
+
tombstonable. Commercial content keeps its separate commercial quality binding
|
|
123
|
+
in addition to this universal language-profile proof.
|
|
124
|
+
|
|
125
|
+
### Version 6.154.0: durable commercial locale-policy invalidation
|
|
126
|
+
|
|
127
|
+
Version 6.154.0 revalidates the exact commercial quality-profile binding for
|
|
128
|
+
the target locale whenever signed release evidence is consumed. A stored CMS
|
|
129
|
+
bundle can no longer remain active after its CLDR, morphology, terminology, or
|
|
130
|
+
evaluation generation has changed merely because its three-field binding is
|
|
131
|
+
still structurally valid.
|
|
132
|
+
|
|
133
|
+
The check applies before approval lookup, CMS commit, active read, health, and
|
|
134
|
+
idempotent replay. Resolver failure and stale or substituted profile bindings
|
|
135
|
+
block with the stable release-evidence error; non-commercial evidence remains
|
|
136
|
+
strictly null and does not invoke the commercial resolver. The release-evidence
|
|
137
|
+
capability contract advertises the exact-current-locale requirement.
|
|
138
|
+
|
|
139
|
+
### Version 6.153.0: CMS-visible resolution policy
|
|
140
|
+
|
|
141
|
+
Version 6.153.0 exposes the exact current public commercial-review resolution-
|
|
142
|
+
contract SHA-256 in every commercial CMS release proof, including offers whose
|
|
143
|
+
first-pass evidence was already `verified`. A CMS can therefore prove which
|
|
144
|
+
human-review and independent-model escalation policy governed a signed approval
|
|
145
|
+
without decoding opaque job identities or receiving private review data.
|
|
146
|
+
|
|
147
|
+
Release evidence and its advertised capability contract advance together. The
|
|
148
|
+
release service and reference receiver reconstruct the current content-free
|
|
149
|
+
contract and reject missing, stale, substituted, or self-rehashed digests before
|
|
150
|
+
host commit. Non-commercial evidence requires `null`; only unresolved offers
|
|
151
|
+
continue to carry a separate resolution result.
|
|
152
|
+
|
|
153
|
+
### Version 6.152.0: plan-bound resolution policy
|
|
154
|
+
|
|
155
|
+
Version 6.152.0 binds the exact public commercial-review resolution-contract
|
|
156
|
+
SHA-256 into every commercial plan, per-locale job, and idempotency identity.
|
|
157
|
+
Resolution-policy changes therefore create new work identities instead of
|
|
158
|
+
silently reinterpreting persisted jobs under newer human-review or independent-
|
|
159
|
+
model rules.
|
|
160
|
+
|
|
161
|
+
The queue revalidates the binding before leasing work, and the worker
|
|
162
|
+
reconstructs the complete current content-free contract before loading assets
|
|
163
|
+
or contacting the configured provider. The digest continues through the worker
|
|
164
|
+
result, quality-evidence request, receipt verification, and signed approval.
|
|
165
|
+
Missing, stale, substituted, or self-rehashed bindings fail closed; non-
|
|
166
|
+
commercial jobs and results keep the field absent or `null` as their respective
|
|
167
|
+
schemas require.
|
|
168
|
+
|
|
169
|
+
### Version 6.151.0: reviewer-visible resolution contract
|
|
170
|
+
|
|
171
|
+
Version 6.151.0 supplies unresolved commercial quality reviewers with the
|
|
172
|
+
complete public, content-free resolution contract alongside its SHA-256. The
|
|
173
|
+
contract declares the exact human and independent-model resolution methods,
|
|
174
|
+
provider-separation rule, receipt binding, ordered offer scope, and excluded
|
|
175
|
+
private content without exposing source text, target text, prices, brands,
|
|
176
|
+
reviewer prose, or identities.
|
|
177
|
+
|
|
178
|
+
The full contract and digest are bound into the deterministic evidence-request
|
|
179
|
+
identity and canonical HTTP payload. The coordinator and transport adapter
|
|
180
|
+
independently reconstruct the current contract before provider access, so a
|
|
181
|
+
missing, stale, substituted, or merely self-rehashed object fails closed before
|
|
182
|
+
authentication or network traffic. Verified commercial results and
|
|
183
|
+
non-commercial requests require both fields to be `null`.
|
|
184
|
+
|
|
185
|
+
### Version 6.150.0: reviewer-visible routing-contract lineage
|
|
186
|
+
|
|
187
|
+
Version 6.150.0 supplies the exact public offer-routing-contract SHA-256 to
|
|
188
|
+
the external quality-evidence provider for every commercial result, including
|
|
189
|
+
already verified results that intentionally carry no private offer route. The
|
|
190
|
+
digest is part of the deterministic evidence-request identity and the exact
|
|
191
|
+
canonical HTTP payload. It therefore matches the field the provider must bind
|
|
192
|
+
into its quality receipt without relying on separate capability discovery.
|
|
193
|
+
|
|
194
|
+
The coordinator and HTTP adapter independently reconstruct the current public
|
|
195
|
+
contract before provider access. A missing, stale, substituted, or merely
|
|
196
|
+
self-rehashed digest fails closed; non-commercial evidence requests require
|
|
197
|
+
`null`. The full routing contract and private Unicode spans remain conditional
|
|
198
|
+
on targeted review, and no price, brand, source text, or target text becomes
|
|
199
|
+
public evidence.
|
|
200
|
+
|
|
201
|
+
### Version 6.149.0: signed routing-contract lineage
|
|
202
|
+
|
|
203
|
+
Version 6.149.0 carries the exact public offer-routing-contract SHA-256 from
|
|
204
|
+
each commercial locale job into the worker result, every quality-receipt
|
|
205
|
+
binding, the immutable signed approval, and the content-free CMS release
|
|
206
|
+
evidence. Each boundary reconstructs or compares the current contract before
|
|
207
|
+
accepting the value. Missing, stale, substituted, or merely self-rehashed
|
|
208
|
+
bindings therefore fail closed before signing or publication.
|
|
209
|
+
|
|
210
|
+
Non-commercial results, receipts, approvals, and release evidence require the
|
|
211
|
+
field to be `null`. The digest reveals no price, brand, source text, target
|
|
212
|
+
text, offer identifier, or private route; the route itself remains confined to
|
|
213
|
+
the authorized review path.
|
|
214
|
+
|
|
215
|
+
### Version 6.148.0: routing-contract-bound job identity
|
|
216
|
+
|
|
217
|
+
Version 6.148.0 binds the exact public offer-routing-contract SHA-256 into
|
|
218
|
+
plan v4, every commercial locale job v4, and their deterministic job,
|
|
219
|
+
idempotency, and plan identities. A change to Unicode offset, region coverage,
|
|
220
|
+
privacy, or authority semantics therefore creates new work even when the
|
|
221
|
+
commercial profile and review-evidence contract are otherwise unchanged.
|
|
222
|
+
|
|
223
|
+
The worker reconstructs both installed contracts before the first provider
|
|
224
|
+
call. Missing, stale, substituted, or merely self-rehashed routing bindings
|
|
225
|
+
fail closed; queue health and lease validation inherit the same canonical job
|
|
226
|
+
check. Non-commercial jobs omit both commercial digests, and private routes,
|
|
227
|
+
prices, brands, source text, and target text remain outside queue metadata.
|
|
228
|
+
|
|
229
|
+
### Version 6.147.0: exact routing contract for external review
|
|
230
|
+
|
|
231
|
+
Version 6.147.0 sends the complete, content-free offer-routing contract with
|
|
232
|
+
each unresolved commercial quality-evidence request. An independent reviewer
|
|
233
|
+
therefore receives the exact Unicode code-point, exclusive-end, length,
|
|
234
|
+
registry-order, overlap, privacy, and authority semantics together with the
|
|
235
|
+
private route instead of relying on separate capability discovery.
|
|
236
|
+
|
|
237
|
+
The coordinator and HTTPS adapter independently reconstruct the trusted
|
|
238
|
+
contract before authentication or network access. The full contract enters the
|
|
239
|
+
deterministic request ID; stale, substituted, or merely self-rehashed objects
|
|
240
|
+
fail closed. Verified commercial and non-commercial requests require both the
|
|
241
|
+
route and routing contract to be `null`, and no price, brand, offer ID, source
|
|
242
|
+
text, target text, or reviewer prose enters the public contract.
|
|
243
|
+
|
|
244
|
+
### Version 6.146.0: contract-bound private offer routing
|
|
245
|
+
|
|
246
|
+
Version 6.146.0 publishes a separately versioned, content-free machine
|
|
247
|
+
contract for the private offer-routing context. It defines exact Unicode
|
|
248
|
+
code-point offsets, exclusive ends, complete text lengths, registry-order
|
|
249
|
+
coverage, overlap rules, privacy, and the non-authoritative trust boundary.
|
|
250
|
+
|
|
251
|
+
Every private route now carries the trusted contract SHA-256. The worker,
|
|
252
|
+
evidence request, receipt verifier, release gate, benchmark boundary, and CMS
|
|
253
|
+
capability reader independently reconstruct it; a stale, substituted, or merely
|
|
254
|
+
self-rehashed contract blocks before provider access or approval. Only the
|
|
255
|
+
contract is public. Actual spans, offer identifiers, texts, prices, brands, and
|
|
256
|
+
reviewer prose remain private and are absent from CMS release evidence.
|
|
257
|
+
|
|
258
|
+
### Version 6.145.0: actionable private offer review routing
|
|
259
|
+
|
|
260
|
+
Version 6.145.0 turns each opaque review-required offer index into an
|
|
261
|
+
actionable provider route without weakening the public CMS boundary. The
|
|
262
|
+
worker derives a private context containing only ordered numeric indexes,
|
|
263
|
+
exact source and target lengths, and validated Unicode code-point regions.
|
|
264
|
+
|
|
265
|
+
The context is required only for unresolved commercial summaries. It is bound
|
|
266
|
+
into the durable evidence request identity and every quality, independent-model,
|
|
267
|
+
or qualified-human receipt verification, but is excluded from signed public
|
|
268
|
+
release evidence. Missing, reordered, overlapping, empty, out-of-range, or
|
|
269
|
+
extra-field routes block before provider access or approval; configured offer
|
|
270
|
+
IDs, extracted text, prices, brands, and reviewer prose are never copied into
|
|
271
|
+
the routing context.
|
|
272
|
+
|
|
273
|
+
### Version 6.144.0: targeted per-offer commercial review
|
|
274
|
+
|
|
275
|
+
Version 6.144.0 retains the exact unresolved offer scope after source-aware
|
|
276
|
+
commercial review. The content-free summary identifies affected offers only by
|
|
277
|
+
their zero-based registry positions for each dimension, and the independent
|
|
278
|
+
model or qualified human resolution must echo that complete ordered scope.
|
|
279
|
+
|
|
280
|
+
Configured offer identifiers, prices, brands, source text, target text, and
|
|
281
|
+
reviewer prose remain private. Missing, reordered, duplicated, out-of-range, or
|
|
282
|
+
cross-dimension scope fails closed through the provider-neutral HTTP adapters,
|
|
283
|
+
signed release evidence, and CMS boundary. Dimension-level uncertainty without
|
|
284
|
+
a registered offer remains routable without inventing an identity.
|
|
285
|
+
|
|
286
|
+
### Version 6.143.0: complete per-offer commercial evidence
|
|
287
|
+
|
|
288
|
+
Version 6.143.0 requires every commercial review dimension to carry exactly
|
|
289
|
+
one verdict for every registered offer, in registry order. A dimension can no
|
|
290
|
+
longer pass globally after reviewing only one price, discount, tax statement,
|
|
291
|
+
term, or condition while silently omitting another offer.
|
|
292
|
+
|
|
293
|
+
The validator derives the global dimension verdict from the per-offer matrix,
|
|
294
|
+
requires equivalent, changed, and uncertain offer verdicts to have their own
|
|
295
|
+
offer-bound evidence, and rejects duplicates, omissions, reordered offers, and
|
|
296
|
+
inconsistent aggregate statuses. The separately hashed contract, commercial
|
|
297
|
+
profile, evidence binding, and summary generation advance together, so queued
|
|
298
|
+
or cached results under the previous shape fail closed without numeric regexes
|
|
299
|
+
or source-locale formatting assumptions.
|
|
300
|
+
|
|
301
|
+
### Version 6.142.0: stale-job quarantine without head-of-line blocking
|
|
302
|
+
|
|
303
|
+
Version 6.142.0 quarantines a bounded batch of up to 24 consecutive obsolete
|
|
304
|
+
queue jobs inside one claim transaction and continues to the first current job
|
|
305
|
+
within that batch. A complete stale EU-locale plan therefore cannot consume 24
|
|
306
|
+
service ticks or hold valid work behind it; every quarantined job remains
|
|
307
|
+
content-free, terminal, and at zero attempts, with no cache, asset, or provider
|
|
308
|
+
access.
|
|
309
|
+
|
|
310
|
+
The batch decision remains fail-closed and atomic. If later validation is
|
|
311
|
+
unavailable, raises unexpectedly, or mutates a decoded payload, all quarantine
|
|
312
|
+
and lease changes roll back so recoverable work stays pending.
|
|
313
|
+
|
|
314
|
+
### Version 6.141.0: current job bindings before lease
|
|
315
|
+
|
|
316
|
+
Version 6.141.0 revalidates a durable queue job against the exact current
|
|
317
|
+
planner and worker contract before granting a lease. A canonical but obsolete
|
|
318
|
+
commercial job is marked terminal with the content-free
|
|
319
|
+
`job_binding_invalid` reason without consuming an attempt, resolving assets,
|
|
320
|
+
consulting translation memory, or reaching a provider.
|
|
321
|
+
|
|
322
|
+
The queue uses its current local worker contract by default, while the runner
|
|
323
|
+
injects the exact worker instance it will execute. Expected binding rejection
|
|
324
|
+
is terminal; an unavailable, failing, or payload-mutating validator rolls back
|
|
325
|
+
the transaction and leaves the job pending for safe operator recovery.
|
|
326
|
+
|
|
327
|
+
### Version 6.140.0: current job bindings in read-only health
|
|
328
|
+
|
|
329
|
+
Version 6.140.0 makes the content-free health monitor revalidate every durable
|
|
330
|
+
queue job against the exact current planner and worker contract. A commercial
|
|
331
|
+
job can no longer remain health-green after its review-evidence contract has
|
|
332
|
+
changed merely because the stored JSON and its payload hash still agree.
|
|
333
|
+
|
|
334
|
+
Stale or substituted bindings block overall health with
|
|
335
|
+
`queue.job_binding_invalid` through local validation. The check is read-only,
|
|
336
|
+
independent of provider health, keeps source and target text out of diagnostics,
|
|
337
|
+
and leaves valid non-commercial and current commercial jobs unchanged.
|
|
338
|
+
|
|
339
|
+
### Version 6.139.0: evidence-contract-bound commercial job identity
|
|
340
|
+
|
|
341
|
+
Version 6.139.0 binds the exact public commercial review-evidence-contract
|
|
342
|
+
SHA-256 into plan v3, every commercial job v3, its deterministic job and
|
|
343
|
+
idempotency key, and the overall plan ID. A change to offer-registry, Unicode
|
|
344
|
+
span, dimension, or verdict semantics now creates new work identity even when
|
|
345
|
+
the parent commercial profile identifier remains stable.
|
|
346
|
+
|
|
347
|
+
Before any provider access, the worker joins the job-bound digest to the
|
|
348
|
+
separately verified full contract supplied to source-fidelity review. Missing,
|
|
349
|
+
stale, or replaced bindings fail closed; non-commercial jobs remain free of
|
|
350
|
+
commercial metadata and no provider is hardwired.
|
|
351
|
+
|
|
352
|
+
### Version 6.138.0: exact provider-side commercial evidence contract
|
|
353
|
+
|
|
354
|
+
Version 6.138.0 gives the source-aware commercial fidelity provider the exact,
|
|
355
|
+
content-free, SHA-256-bound review-evidence contract rather than only an
|
|
356
|
+
illustrative response object. The contract covers the offer registry, Unicode
|
|
357
|
+
span semantics, ten commercial checks, limits, verdict invariants, and
|
|
358
|
+
fail-closed trust boundary. It is part of the deterministic provider-request
|
|
359
|
+
hash and remains absent from transcreation and source-blind native review.
|
|
360
|
+
|
|
361
|
+
Before any provider call, the worker verifies the contract against the
|
|
362
|
+
installed public commercial profile and rejects even a consistently rehashed
|
|
363
|
+
substitute. This improves interoperability without hardwiring a provider,
|
|
364
|
+
publishing project prices or brands, or treating structural validation as
|
|
365
|
+
evidence of semantic truth.
|
|
366
|
+
|
|
367
|
+
### Version 6.137.0: contract-bound commercial review lineage
|
|
368
|
+
|
|
369
|
+
Version 6.137.0 binds the exact published commercial review-evidence-contract
|
|
370
|
+
SHA-256 into the private evidence hash and content-free review summary. That
|
|
371
|
+
closed summary now carries the same digest through worker results, durable
|
|
372
|
+
quality-evidence requests and IDs, receipt verification, signed approvals,
|
|
373
|
+
translation-memory lookups, and CMS release evidence.
|
|
374
|
+
|
|
375
|
+
A prior report or summary cannot remain valid after the evidence structure,
|
|
376
|
+
offer rules, Unicode span semantics, or verdict invariants change. Missing,
|
|
377
|
+
stale, or substituted contract digests block fail-closed before network access,
|
|
378
|
+
signing, cache reuse, or CMS publication; no private report content is exposed.
|
|
379
|
+
|
|
380
|
+
### Version 6.136.0: public commercial evidence contract
|
|
381
|
+
|
|
382
|
+
Version 6.136.0 publishes the complete commercial evidence shape as a
|
|
383
|
+
separately versioned and SHA-256-bound machine contract. CMS backends,
|
|
384
|
+
source-fidelity providers, and the portable checker now discover the same
|
|
385
|
+
closed fields, limits, Unicode span semantics, offer-region rules, verdict
|
|
386
|
+
invariants, and exact ten-dimension order from one provider-neutral source.
|
|
387
|
+
|
|
388
|
+
The trusted CMS boundary rejects missing, altered, reordered, or merely
|
|
389
|
+
self-rehashed evidence contracts before returning capabilities. The contract
|
|
390
|
+
explicitly grants no publication authority and makes no semantic truth claim:
|
|
391
|
+
uncertain amounts, conditions, or native interpretations still require an
|
|
392
|
+
independent model or qualified native-domain reviewer.
|
|
393
|
+
|
|
394
|
+
### Version 6.135.0: offer-bound commercial evidence
|
|
395
|
+
|
|
396
|
+
Version 6.135.0 replaces free-form offer labels in commercial review evidence
|
|
397
|
+
with a versioned registry of unique offer identifiers and their ordered,
|
|
398
|
+
non-overlapping source and target regions. Every price, qualifier, interval,
|
|
399
|
+
condition, and assignment span must be contained in the regions declared for
|
|
400
|
+
that exact offer, so a reviewer cannot hide a cross-offer swap behind a valid
|
|
401
|
+
but unrelated label.
|
|
402
|
+
|
|
403
|
+
An offer may own multiple discontiguous regions for linked footnotes and
|
|
404
|
+
conditions. Every declared offer still needs exactly one matched assignment
|
|
405
|
+
item; unknown identifiers, overlapping ownership, missing assignments, and
|
|
406
|
+
cross-offer spans block deterministically. The registry validates evidence
|
|
407
|
+
ownership, not semantic truth: uncertain boundaries or equivalence continue to
|
|
408
|
+
require an independent model or qualified native-domain review.
|
|
409
|
+
|
|
410
|
+
### Version 6.134.0: durable CMS publisher authorization
|
|
411
|
+
|
|
412
|
+
Version 6.134.0 retains the original canonical publisher signature beside
|
|
413
|
+
every active CMS publication and revalidates it on commit, rendering, health,
|
|
414
|
+
and idempotent replay. Rewriting stored payload and release evidence and then
|
|
415
|
+
recomputing their unkeyed hashes can no longer create an apparently authorized
|
|
416
|
+
bundle after receiver restart.
|
|
417
|
+
|
|
418
|
+
The SQLite schema migrates from v1 to v2 without inventing missing authority.
|
|
419
|
+
An active legacy row without its original signature remains stored but blocked
|
|
420
|
+
and unhealthy until the trusted source replaces or tombstones it. Deletion uses
|
|
421
|
+
the existing structural-only path, so unsafe legacy content cannot become
|
|
422
|
+
undeletable. Superseded and deleted rows scrub the retained signature together
|
|
423
|
+
with target prose.
|
|
424
|
+
|
|
425
|
+
### Version 6.133.0: continuously authorized CMS bundles
|
|
426
|
+
|
|
427
|
+
Version 6.133.0 closes the durable authorization gap after CMS acceptance.
|
|
428
|
+
The reference receiver injects its canonical release-evidence validator into
|
|
429
|
+
the SQLite store, which revalidates every active localization against the
|
|
430
|
+
current contract and approval expiry on reads, health checks, and idempotent
|
|
431
|
+
publication replay. Restarting or upgrading the receiver cannot silently keep
|
|
432
|
+
serving a stale authorization.
|
|
433
|
+
|
|
434
|
+
Expired or contract-stale target content remains blocked without replacing the
|
|
435
|
+
last stored bytes. Tombstone registration and deletion use a structural-only
|
|
436
|
+
path, so an invalidated bundle can still be removed atomically and cannot trap
|
|
437
|
+
unsafe content behind the fail-closed gate.
|
|
438
|
+
|
|
439
|
+
### Version 6.132.0: contract-bound release evidence
|
|
440
|
+
|
|
441
|
+
Version 6.132.0 binds the exact SHA-256 of the machine-readable release-evidence
|
|
442
|
+
contract into every signed approval and content-free CMS release proof. A delayed
|
|
443
|
+
or archived approval therefore cannot be reinterpreted or rewrapped under a
|
|
444
|
+
newer field, lineage, commercial-scope, or privacy contract.
|
|
445
|
+
|
|
446
|
+
The v7 release-evidence validator rejects a missing, malformed, stale, or
|
|
447
|
+
substituted contract digest before publication or receiver host commit. The
|
|
448
|
+
durable receiver preserves the exact bound proof, and the same fail-closed rule
|
|
449
|
+
applies to commercial and non-commercial localizations.
|
|
450
|
+
|
|
451
|
+
### Version 6.131.0: machine-readable release-evidence contract
|
|
452
|
+
|
|
453
|
+
Version 6.131.0 publishes a separately hashed, provider-neutral contract for
|
|
454
|
+
the content-free release evidence inside the signed CMS capabilities. It fixes
|
|
455
|
+
the exact field order, SHA-256 and lineage bindings, commercial nullability,
|
|
456
|
+
signed container, and excluded private content so an integration does not need
|
|
457
|
+
to reconstruct those rules from prose.
|
|
458
|
+
|
|
459
|
+
The runtime validates the contract against its private canonical registry on
|
|
460
|
+
every capability read. Missing, reordered, altered, or merely self-rehashed
|
|
461
|
+
contracts block the complete capability response and publication remains
|
|
462
|
+
fail-closed before any CMS commit.
|
|
463
|
+
|
|
464
|
+
### Version 6.130.0: public evidence lineage
|
|
465
|
+
|
|
466
|
+
Version 6.130.0 carries the canonical quality-evidence request ID and revision
|
|
467
|
+
from the verified signed approval into the closed, content-free public release
|
|
468
|
+
evidence. A downstream CMS can now audit and policy-gate the exact evidence
|
|
469
|
+
generation without access to provider receipts or private review state.
|
|
470
|
+
|
|
471
|
+
The release-evidence schema advances to v6. Missing or malformed lineage blocks
|
|
472
|
+
before host commit, while any change to the already signed publication bytes
|
|
473
|
+
fails authentication. The durable receiver preserves the exact fields and
|
|
474
|
+
still exposes no source text, target text, raw receipt, reviewer identity, or
|
|
475
|
+
reviewer prose.
|
|
476
|
+
|
|
477
|
+
### Version 6.129.0: evidence-context-bound approval
|
|
478
|
+
|
|
479
|
+
Version 6.129.0 carries the canonical quality-evidence request ID and evidence
|
|
480
|
+
revision into every purpose-specific receipt-verification binding and into the
|
|
481
|
+
signed durable approval. A provider cannot relabel an otherwise valid quality,
|
|
482
|
+
qualified-human, or independent-model receipt under a newer evidence envelope.
|
|
483
|
+
|
|
484
|
+
The receipt binding advances to v5 and the signed approval to v5. Missing,
|
|
485
|
+
malformed, stale, or substituted evidence context blocks before verifier or
|
|
486
|
+
signer access; changing either dimension also derives a new verifier HTTP
|
|
487
|
+
idempotency key. Raw receipts remain outside durable translation memory.
|
|
488
|
+
|
|
489
|
+
### Version 6.128.0: derived quality-evidence identity
|
|
490
|
+
|
|
491
|
+
Version 6.128.0 makes the quality-evidence request ID independently
|
|
492
|
+
derivable at every local and network boundary. The durable lease store and
|
|
493
|
+
provider-neutral HTTPS adapter now recompute the ID from the same exact
|
|
494
|
+
versioned field set after validating the complete source and target hashes.
|
|
495
|
+
|
|
496
|
+
The evidence request advances to v8. A random ID, a stale ID retained after
|
|
497
|
+
changing locale, policy, profile, provider, confidence, result or commercial
|
|
498
|
+
contract, and an ID derived from an incomplete field set all block before a
|
|
499
|
+
database row, authentication callback or network request. The request ID,
|
|
500
|
+
canonical request digest and receipt binding remain separate proofs.
|
|
501
|
+
|
|
502
|
+
### Version 6.127.0: contract-bound commercial evidence
|
|
503
|
+
|
|
504
|
+
Version 6.127.0 binds every unresolved commercial evidence request and receipt
|
|
505
|
+
to the exact advertised review-resolution contract SHA-256. The binding enters
|
|
506
|
+
the deterministic request ID, the provider-neutral HTTPS request, each receipt
|
|
507
|
+
verification context, and the signed durable approval.
|
|
508
|
+
|
|
509
|
+
The evidence request advances to v7, the receipt binding to v4, and the signed
|
|
510
|
+
approval to v4. A missing, stale, self-selected, or non-commercial contract
|
|
511
|
+
digest blocks before authentication, provider transport, approval, or CMS
|
|
512
|
+
publication. Verified commercial results and all other content types require a
|
|
513
|
+
null binding, so the escalation contract cannot leak into unrelated work.
|
|
514
|
+
|
|
515
|
+
### Version 6.126.0: independently verifiable commercial resolution
|
|
516
|
+
|
|
517
|
+
Version 6.126.0 makes targeted commercial-review resolution independently
|
|
518
|
+
verifiable at the CMS boundary. Each content-free resolution now binds the
|
|
519
|
+
exact commercial profile, the advertised resolution-contract SHA-256, and the
|
|
520
|
+
primary provider identity. An independent-model route also carries the second
|
|
521
|
+
provider identity, whose provider ID must differ from the primary provider.
|
|
522
|
+
|
|
523
|
+
The commercial profile advances to v8, the CMS capability generation to v7,
|
|
524
|
+
the publication HTTP contract to v3, and release evidence to v5. Missing or
|
|
525
|
+
altered profile, contract, primary-provider, or independence bindings block
|
|
526
|
+
before CMS persistence. Qualified-human identity, raw receipts, credentials,
|
|
527
|
+
reviewer prose, prices, brands, source text, and target text remain excluded.
|
|
528
|
+
|
|
529
|
+
### Version 6.125.0: machine-readable commercial review resolution
|
|
530
|
+
|
|
531
|
+
Version 6.125.0 publishes a separate, hashed contract for resolving uncertain
|
|
532
|
+
commercial checks. It binds the exact ordered dimensions to the unresolved
|
|
533
|
+
summary and distinguishes qualified-human review from an independent model,
|
|
534
|
+
including the conditional provider fields and verified receipt hash without
|
|
535
|
+
exposing the raw receipt, reviewer identity, prose, prices, brands, or content.
|
|
536
|
+
|
|
537
|
+
The commercial profile advances to v7, the CMS capability generation to v6,
|
|
538
|
+
and release evidence to v4. The release path now uses the same provider-neutral
|
|
539
|
+
resolution schema advertised by discovery. Reordered or partial dimensions,
|
|
540
|
+
an unexpected human provider, a non-independent model, raw-receipt exposure,
|
|
541
|
+
or any rehashed contract drift blocks the entire capability response.
|
|
542
|
+
|
|
543
|
+
### Version 6.124.0: locale-bound commercial review evidence
|
|
544
|
+
|
|
545
|
+
Version 6.124.0 binds every commercial fidelity-evidence digest to the exact
|
|
546
|
+
target locale and commercial locale-quality profile version and SHA-256, in
|
|
547
|
+
addition to the commercial profile and exact source and target texts. Evidence
|
|
548
|
+
from another locale or an older rendering, morphology, or evaluation generation
|
|
549
|
+
therefore cannot be reused as if it covered the current job.
|
|
550
|
+
|
|
551
|
+
The worker derives this binding only from the already validated job. The
|
|
552
|
+
portable checker requires the same three explicit content-free inputs and
|
|
553
|
+
reports them only after successful structural validation. Missing or malformed
|
|
554
|
+
bindings block without provider, approval, or publication authority.
|
|
555
|
+
|
|
556
|
+
### Version 6.123.0: end-to-end commercial acceptance binding
|
|
557
|
+
|
|
558
|
+
Version 6.123.0 requires every accepted commercial submission to prove that
|
|
559
|
+
the downstream website used the same 24-locale rendering-registry generation
|
|
560
|
+
that the CMS acknowledged at enqueue. A merely well-formed and self-consistent
|
|
561
|
+
website capability binding is insufficient when its commercial registry hash
|
|
562
|
+
differs from the durable caller-owned contract.
|
|
563
|
+
|
|
564
|
+
The equality is enforced before acceptance, revalidated from SQLite after
|
|
565
|
+
restart and during health checks, and independently checked by the HTTP edge
|
|
566
|
+
and provider-neutral reference client. The versioned capability and OpenAPI
|
|
567
|
+
contracts advertise the invariant explicitly. Ambiguous or substituted
|
|
568
|
+
generations remain fail-closed without exposing price, brand, source, or target
|
|
569
|
+
content.
|
|
570
|
+
|
|
571
|
+
### Version 6.122.0: durable commercial contract acknowledgement
|
|
572
|
+
|
|
573
|
+
Version 6.122.0 carries the exact commercial profile and 24-locale registry
|
|
574
|
+
acknowledgement through the caller-owned outbox, leases, retries, restarts,
|
|
575
|
+
queue responses, status reads, lifecycle responses, OpenAPI contract, and
|
|
576
|
+
reference client. The content-free binding is now durable evidence rather than
|
|
577
|
+
an ingress-only check.
|
|
578
|
+
|
|
579
|
+
Every stored row is revalidated against its canonical source payload and the
|
|
580
|
+
installed commercial contract before work or status can proceed. Altered or
|
|
581
|
+
missing bindings block fail-closed. An exact empty schema-v1 outbox is upgraded
|
|
582
|
+
transactionally; any populated legacy outbox remains untouched and blocked
|
|
583
|
+
because its historic commercial acknowledgement cannot be reconstructed.
|
|
584
|
+
|
|
585
|
+
### Version 6.121.0: commercial contract acknowledgement at enqueue
|
|
586
|
+
|
|
587
|
+
Version 6.121.0 closes the transition from commercial-profile discovery to
|
|
588
|
+
durable CMS intake. Every enqueue envelope now carries an exact content-free
|
|
589
|
+
commercial contract binding. A commercial change must acknowledge the active
|
|
590
|
+
profile and 24-locale rendering-registry hashes; every other content type,
|
|
591
|
+
cancellation, and tombstone must carry `null`.
|
|
592
|
+
|
|
593
|
+
The authenticated HTTP body, capability generation, OpenAPI 3.1 conditional,
|
|
594
|
+
and provider-neutral reference client all use the same closed binding.
|
|
595
|
+
Missing, stale, altered, or cross-scope acknowledgements block before runtime
|
|
596
|
+
enqueue and persistence. The acknowledgement contains no amount, brand,
|
|
597
|
+
product, source text, target text, credential, or publication authority.
|
|
598
|
+
|
|
599
|
+
### Version 6.120.0: public commercial localization contract
|
|
600
|
+
|
|
601
|
+
Version 6.120.0 carries the existing brand-neutral price and offer profile to
|
|
602
|
+
the outer public CMS dispatch edge. The capability generation, separately
|
|
603
|
+
scoped body-free route, OpenAPI 3.1 document, runtime, and provider-neutral
|
|
604
|
+
reference client expose the exact ten semantic dimensions and all 24
|
|
605
|
+
locale-specific Unicode CLDR rendering references. No project price, brand,
|
|
606
|
+
product, credential, source text, or target text is part of the response.
|
|
607
|
+
|
|
608
|
+
The route fetches and revalidates the live downstream website capability
|
|
609
|
+
generation before returning the local contract. Its commercial-rendering hash
|
|
610
|
+
must equal the bundled canonical registry; a missing, stale, substituted, or
|
|
611
|
+
malformed binding blocks before serialization. The result is explicitly
|
|
612
|
+
content-free and grants neither linguistic approval nor publication authority.
|
|
613
|
+
|
|
614
|
+
### Version 6.119.0: verified outer lifecycle read
|
|
615
|
+
|
|
616
|
+
Version 6.119.0 completes the post-intake read path for non-Python CMS
|
|
617
|
+
backends. A dedicated tenant-bound operation carries the full known request
|
|
618
|
+
identity through the caller-owned outbox, process-guarded runtime,
|
|
619
|
+
authenticated HTTP edge, capability generation, OpenAPI 3.1 profile, and
|
|
620
|
+
provider-neutral reference client. It reads the already verified downstream
|
|
621
|
+
source lifecycle only after durable website acceptance.
|
|
622
|
+
|
|
623
|
+
Pending, retrying, leased, and failed outer records cause no downstream read.
|
|
624
|
+
The returned lifecycle keeps local dispatch status, website generation,
|
|
625
|
+
sidecar generation, source generation, and source processing state separate;
|
|
626
|
+
acceptance remains explicitly non-publication. Missing, foreign, substituted,
|
|
627
|
+
or internally inconsistent identities and bindings fail closed.
|
|
628
|
+
|
|
629
|
+
### Version 6.118.0: visible accepted website generation
|
|
630
|
+
|
|
631
|
+
Version 6.118.0 carries the complete verified website capability binding from
|
|
632
|
+
durable intake into the outer CMS dispatch status, authenticated HTTP edge,
|
|
633
|
+
capability snapshot, OpenAPI profile, and provider-neutral reference client.
|
|
634
|
+
An accepted status now identifies the exact delivery, runtime, commercial
|
|
635
|
+
rendering, and terminal receiver generations that accepted the request. An
|
|
636
|
+
outer dispatch row that is still pending or has failed exposes no such binding.
|
|
637
|
+
|
|
638
|
+
The projection is reconstructed only from the already validated canonical
|
|
639
|
+
response stored by the outbox. Its inner binding hash and delivery capability
|
|
640
|
+
pin are checked again at every status boundary. Missing, altered, partially
|
|
641
|
+
substituted, or prematurely populated bindings fail closed. Tests cover all
|
|
642
|
+
three operations, pre-acceptance absence, authenticated status serialization,
|
|
643
|
+
client-side substitution, and validated restart recovery.
|
|
644
|
+
|
|
645
|
+
### Version 6.117.0: receiver-bound website delivery generation
|
|
646
|
+
|
|
647
|
+
Version 6.117.0 binds the website-side durable delivery generation to the
|
|
648
|
+
terminal receiver capability SHA-256 already verified by the source runtime.
|
|
649
|
+
The trusted host carries that pin through the sidecar adapter, its synthetic
|
|
650
|
+
contract digest, the guarded SQLite binding, and the public submission
|
|
651
|
+
capability snapshot. A missing, changed, or substituted receiver generation
|
|
652
|
+
now blocks restart and queue access before any downstream network call.
|
|
653
|
+
|
|
654
|
+
The binding table advances to v2 and the adapter contract to v3. An exact,
|
|
655
|
+
empty v1 database can migrate transactionally only when its historical v2
|
|
656
|
+
adapter digest is reconstructed from the same trusted inputs. A non-empty,
|
|
657
|
+
ambiguous, altered, or unbound generation remains fail-closed. Tests cover
|
|
658
|
+
restart drift, in-process mutation, exact empty migration, legacy work, and
|
|
659
|
+
outer capability tampering.
|
|
660
|
+
|
|
661
|
+
### Version 6.116.0: receiver-bound public source projections
|
|
662
|
+
|
|
663
|
+
Version 6.116.0 carries the terminal receiver capability SHA-256 through the
|
|
664
|
+
source service's status and health projections, the authenticated HTTP edge,
|
|
665
|
+
the provider-neutral reference client, and the outer CMS lifecycle view. A
|
|
666
|
+
healthy enabled monitor now exposes the same exact digest at both service and
|
|
667
|
+
component level; disabled monitoring remains explicitly `null`.
|
|
668
|
+
|
|
669
|
+
The source status, health, and capability schemas advance together so old
|
|
670
|
+
deployment pins cannot silently accept the expanded contract. Missing,
|
|
671
|
+
substituted, malformed, or internally inconsistent receiver bindings block
|
|
672
|
+
before a caller can trust the projected processing state. Tests exercise the
|
|
673
|
+
real WSGI path and reject altered status, health, and outer lifecycle views.
|
|
674
|
+
|
|
675
|
+
### Version 6.115.0: durable terminal-monitor capability binding
|
|
676
|
+
|
|
677
|
+
Version 6.115.0 binds the source CMS's durable terminal-processing monitor to
|
|
678
|
+
one exact receiver capability SHA-256. The pin is stored in the monitor schema,
|
|
679
|
+
returned in content-free health, checked before status, health, and worker
|
|
680
|
+
progress, and required on every accepted receiver status response. A changed
|
|
681
|
+
client pin or response generation now blocks before remote state can replace
|
|
682
|
+
known state.
|
|
683
|
+
|
|
684
|
+
An empty v1 monitor can be transactionally adopted into the bound v2 schema.
|
|
685
|
+
Existing unbound monitoring work is never guessed or relabelled: startup stays
|
|
686
|
+
fail-closed until the operator resolves it under verified deployment evidence.
|
|
687
|
+
Tests cover response substitution, runtime pin mutation, restart drift, empty
|
|
688
|
+
migration, and non-empty legacy rejection.
|
|
689
|
+
|
|
690
|
+
### Version 6.114.0: race-free terminal receiver contract
|
|
691
|
+
|
|
692
|
+
Version 6.114.0 closes the capability discovery-to-operation race across the
|
|
693
|
+
terminal CMS callback boundary. Every notification, status, health, readiness,
|
|
694
|
+
and OpenAPI request now carries the exact freshly verified receiver capability
|
|
695
|
+
SHA-256 in the authenticated
|
|
696
|
+
`X-Localization-Capabilities-SHA256` precondition header. Missing and stale
|
|
697
|
+
generations return `428` and `412` before durable intake or operational access.
|
|
698
|
+
|
|
699
|
+
The v3 receiver capability contract and v2 OpenAPI document publish this rule
|
|
700
|
+
for every non-discovery operation. Both reference clients reserve and bind the
|
|
701
|
+
header, including the one-attempt notifier's deployment-pinned capability
|
|
702
|
+
digest. Tests prove stale generations cannot store a notification and that all
|
|
703
|
+
control routes remain read-only when their precondition fails.
|
|
704
|
+
|
|
705
|
+
### Version 6.113.0: verified terminal receiver OpenAPI client
|
|
706
|
+
|
|
707
|
+
Version 6.113.0 completes the provider-neutral OpenAPI path through the
|
|
708
|
+
terminal receiver reference client. `openapi()` performs fresh pinned
|
|
709
|
+
capability discovery, fetches the separately authenticated document, and
|
|
710
|
+
reconstructs the only acceptable OpenAPI 3.1 profile locally from that exact
|
|
711
|
+
generation. A substituted document cannot become trusted by recomputing its
|
|
712
|
+
own hash, and generation changes between the two requests fail closed.
|
|
713
|
+
|
|
714
|
+
The bounded transport now distinguishes the 16-KiB request limit from the
|
|
715
|
+
advertised 1-MiB response limit, allowing the complete closed contract without
|
|
716
|
+
weakening request validation. Tests cover the real large response, custom
|
|
717
|
+
notification paths, self-rehashed substitutions, capability races, oversized
|
|
718
|
+
responses, and read-only runtime behavior.
|
|
719
|
+
|
|
720
|
+
### Version 6.112.0: capability-bound terminal receiver OpenAPI
|
|
721
|
+
|
|
722
|
+
Version 6.112.0 completes the machine-readable callback contract for the
|
|
723
|
+
durable CMS terminal-notification receiver. Its authenticated, separately
|
|
724
|
+
scoped OpenAPI 3.1 route publishes all six active operations, including a
|
|
725
|
+
custom intake path, closed request and response schemas, required binding
|
|
726
|
+
headers, fail-closed error forms, and degraded monitor responses.
|
|
727
|
+
|
|
728
|
+
The v2 receiver capability generation pins the OpenAPI document schema and
|
|
729
|
+
operation. Every returned document and envelope is bound to the complete
|
|
730
|
+
capability SHA-256, and the envelope also carries the canonical document hash.
|
|
731
|
+
The route reads no inbox content, claims no processing lease, and performs no
|
|
732
|
+
model or publication work.
|
|
733
|
+
|
|
734
|
+
### Version 6.111.0: capability-preconditioned CMS operations
|
|
735
|
+
|
|
736
|
+
Version 6.111.0 closes the capability discovery-to-operation race at the
|
|
737
|
+
public CMS sidecar. Every route except capability discovery now requires the
|
|
738
|
+
authenticated `X-Localization-Capabilities-SHA256` header to equal the exact
|
|
739
|
+
active complete capability generation. A missing precondition returns the
|
|
740
|
+
contract-bound `428`; a stale or substituted generation returns `412` before
|
|
741
|
+
enqueue, status lookup, monitor access, OpenAPI generation, or other runtime
|
|
742
|
+
work. The reference client reserves and supplies the header automatically and
|
|
743
|
+
includes the digest in its host-authentication context.
|
|
744
|
+
|
|
745
|
+
The v8 capability contract and v7 OpenAPI document publish the required header
|
|
746
|
+
per operation and bind both precondition failures to their exact status and
|
|
747
|
+
error code. Capability discovery remains the single authenticated bootstrap
|
|
748
|
+
route and does not require knowledge of its own response digest.
|
|
749
|
+
|
|
750
|
+
### Version 6.110.0: exact CMS error reasons
|
|
751
|
+
|
|
752
|
+
Version 6.110.0 binds every public CMS sidecar failure reason to its exact
|
|
753
|
+
route and HTTP status. The ordered error-code maps participate in the
|
|
754
|
+
capability SHA-256 and are reproduced as closed per-response enums in OpenAPI.
|
|
755
|
+
Bodyless discovery and monitor routes now also advertise their real `411` and
|
|
756
|
+
`413` framing outcomes, so generated clients do not mistake an oversized or
|
|
757
|
+
invalid `Content-Length` for an undocumented server response.
|
|
758
|
+
|
|
759
|
+
The provider-neutral reference client validates the complete error envelope
|
|
760
|
+
against that pinned map before exposing its status and stable remote code as
|
|
761
|
+
content-free exception metadata. Unknown codes, extra fields, mismatched
|
|
762
|
+
statuses, malformed JSON, and stale capability generations remain blocked.
|
|
763
|
+
Only a verified advertised server failure can influence the caller's retry
|
|
764
|
+
decision; no source or target content is copied into the exception message.
|
|
765
|
+
|
|
766
|
+
### Version 6.109.0: executable CMS state invariants
|
|
767
|
+
|
|
768
|
+
Version 6.109.0 binds the public CMS sidecar's cross-field state rules into
|
|
769
|
+
the live capability generation and its OpenAPI profile. Generated validators
|
|
770
|
+
can now reject a leased submission without an expiry, a non-leased submission
|
|
771
|
+
with one, or an accepted submission without all remote status, attempt and
|
|
772
|
+
digest evidence. Relationships that JSON Schema cannot express portably, such
|
|
773
|
+
as attempt ceilings and request-identity equality, remain explicit stable
|
|
774
|
+
invariant identifiers rather than disappearing into prose.
|
|
775
|
+
|
|
776
|
+
Health now proves that `ok` has neither failed work nor expired leases, while a
|
|
777
|
+
blocked state must have at least one of them. Readiness is a closed union:
|
|
778
|
+
`ready` requires a running worker, healthy outbox and no error; `not_ready`
|
|
779
|
+
requires a content-free error code. Every operation publishes its exact
|
|
780
|
+
response-invariant list, which participates in the capability SHA-256 and is
|
|
781
|
+
copied unchanged into OpenAPI.
|
|
782
|
+
|
|
783
|
+
### Version 6.108.0: exact CMS failure contracts
|
|
784
|
+
|
|
785
|
+
Version 6.108.0 makes every public CMS sidecar outcome explicit in both live
|
|
786
|
+
capabilities and OpenAPI. Each operation publishes its complete bounded set of
|
|
787
|
+
HTTP error statuses alongside its success status; those lists participate in
|
|
788
|
+
the capability SHA-256 and are reproduced as concrete OpenAPI responses rather
|
|
789
|
+
than an ambiguous `default` branch. A stale client therefore cannot silently
|
|
790
|
+
miss a conflict, tenant-safe not-found result, framing rejection, or runtime
|
|
791
|
+
outage while still matching the active deployment pin.
|
|
792
|
+
|
|
793
|
+
Health and readiness now model their real `503` behavior precisely. The body
|
|
794
|
+
may be a validated content-free degraded monitor response or a fail-closed
|
|
795
|
+
error envelope, expressed as a closed `oneOf`; all other advertised non-success
|
|
796
|
+
statuses accept only the error envelope. Runtime tests compare every operation,
|
|
797
|
+
status code, extension, and response schema with the live capability generation.
|
|
798
|
+
|
|
799
|
+
### Version 6.107.0: self-describing CMS capabilities
|
|
800
|
+
|
|
801
|
+
Version 6.107.0 closes the remaining untyped discovery boundary in the public
|
|
802
|
+
CMS OpenAPI profile. `CapabilitiesResponse` now references a recursively
|
|
803
|
+
closed schema for the complete active capability generation: all routes,
|
|
804
|
+
methods, scopes, principals, request and response schemas, limits, retry
|
|
805
|
+
owners, source-event schemas, downstream pin, and fail-closed semantics are
|
|
806
|
+
fixed values rather than an open object.
|
|
807
|
+
|
|
808
|
+
The capability document now also carries the exact OpenAPI document schema
|
|
809
|
+
version. That field participates in the capability SHA-256, so an older or
|
|
810
|
+
substituted API description cannot retain the same deployment pin. Runtime
|
|
811
|
+
fixtures verify every nested property, leaf value, required field, and
|
|
812
|
+
`additionalProperties: false` boundary without storing customer content.
|
|
813
|
+
|
|
814
|
+
### Version 6.106.0: closed CMS source payload schemas
|
|
815
|
+
|
|
816
|
+
Version 6.106.0 makes the capability-bound OpenAPI document directly usable
|
|
817
|
+
for CMS client generation. Its enqueue body now contains a discriminated,
|
|
818
|
+
closed union for one content change, cancellation, or tombstone instead of an
|
|
819
|
+
opaque payload object. Every operation has its exact runtime schema ID,
|
|
820
|
+
required identity fields, positive source generation, and no unknown fields.
|
|
821
|
+
|
|
822
|
+
The content-change schema includes the complete provider-neutral localization
|
|
823
|
+
request: source identity and NFC text, exact BCP-47 locale, content type,
|
|
824
|
+
glossary, policy, model and software versions, and an optional unique target
|
|
825
|
+
set restricted to all 24 current EU locale profiles. Runtime validation remains
|
|
826
|
+
authoritative for UTF-8 byte limits, canonical locale casing, and exclusion of
|
|
827
|
+
the source language. The v3 capability hash binds all three payload schema IDs,
|
|
828
|
+
so stale generated clients fail closed before enqueue.
|
|
829
|
+
|
|
830
|
+
### Version 6.105.0: capability-bound OpenAPI discovery
|
|
831
|
+
|
|
832
|
+
Version 6.105.0 publishes an authenticated, origin-free OpenAPI 3.1 document
|
|
833
|
+
for all six public CMS submission sidecar operations. The document is built
|
|
834
|
+
from the freshly validated capability generation and fixes every method, path,
|
|
835
|
+
scope, principal type, request and response schema, transport limit, retry
|
|
836
|
+
owner, and fail-closed publication semantic. It contains no deployment origin,
|
|
837
|
+
tenant identity, website content, provider choice, or credential value.
|
|
838
|
+
|
|
839
|
+
The HTTPS reference client fetches the live capability document before the
|
|
840
|
+
OpenAPI route and reconstructs the expected document from its two immutable
|
|
841
|
+
deployment pins. A substituted document still blocks when an attacker changes
|
|
842
|
+
it and recomputes its own hash. This gives CMS generators a machine-readable
|
|
843
|
+
contract without allowing discovery to weaken authentication, idempotency,
|
|
844
|
+
tenant isolation, or the rule that intake does not authorize publication.
|
|
845
|
+
|
|
846
|
+
### Version 6.104.0: contract-pinned public submission sidecar client
|
|
847
|
+
|
|
848
|
+
Version 6.104.0 gives non-Python CMS and website backends a provider-neutral
|
|
849
|
+
HTTPS reference client for all five public-submission sidecar routes. Before
|
|
850
|
+
every enqueue, status, health, or readiness operation, it discovers and exactly
|
|
851
|
+
validates the live contract against separate immutable pins for the sidecar and
|
|
852
|
+
the downstream public website capability generation. A self-rehashed old or
|
|
853
|
+
altered contract therefore blocks before a write.
|
|
854
|
+
|
|
855
|
+
Authentication receives the exact method, origin, path, scope, body hash, and
|
|
856
|
+
request identity but cannot replace framing, idempotency, or source-payload
|
|
857
|
+
headers. Every request has one bounded transport attempt, redirects are
|
|
858
|
+
terminal, and retry scheduling remains with the caller. Responses are closed,
|
|
859
|
+
content-free shapes bound to the full tenant identity, all three retry budgets,
|
|
860
|
+
and both capability generations; private additions, substituted identities,
|
|
861
|
+
or inconsistent health and readiness states fail closed.
|
|
862
|
+
|
|
863
|
+
### Version 6.103.0: authenticated public submission sidecar
|
|
864
|
+
|
|
865
|
+
Version 6.103.0 exposes the process-owned CMS submission runtime to non-Python
|
|
866
|
+
backends through a strict HTTPS/WSGI boundary. Five separately scoped routes
|
|
867
|
+
cover durable enqueue, tenant-bound status, operator health, worker readiness,
|
|
868
|
+
and canonical capability discovery. Authentication receives the exact request
|
|
869
|
+
body hash before JSON parsing; tenant writes additionally bind the authenticated
|
|
870
|
+
site, idempotency key, and canonical source-payload hash.
|
|
871
|
+
|
|
872
|
+
The enqueue route accepts work only while the supervised worker is ready and
|
|
873
|
+
returns HTTP 202 only after the caller-side SQLite commit. Exact replay remains
|
|
874
|
+
idempotent, while changed content or any changed retry ceiling conflicts.
|
|
875
|
+
Status requires the complete operation, request, event, site, and payload
|
|
876
|
+
identity; foreign tenants and mismatched identities are indistinguishable from
|
|
877
|
+
missing work. All responses are independently shape-checked and content-free,
|
|
878
|
+
and explicitly state that durable website intake grants neither localization
|
|
879
|
+
approval nor publication authority.
|
|
880
|
+
|
|
881
|
+
### Version 6.102.0: supervised public submission runtime
|
|
882
|
+
|
|
883
|
+
Version 6.102.0 turns the caller-owned public submission outbox into a safe
|
|
884
|
+
production composition root. It validates the client capability pin, retry
|
|
885
|
+
policy, worker identity, clock, loop timing, and any existing SQLite generation
|
|
886
|
+
before operational schema mutation. The resulting process-owned runtime uses an
|
|
887
|
+
owner-only identity-guarded database, serializes connection access, and checks
|
|
888
|
+
client, file, parent-directory, process, and schema identity around every call.
|
|
889
|
+
|
|
890
|
+
The optional hosted factory owns one supervised non-daemon worker. Managed
|
|
891
|
+
intake is accepted only while that worker is alive; readiness reports worker,
|
|
892
|
+
outbox, and exact capability generation without content. Shutdown signals and
|
|
893
|
+
joins the worker before closing SQLite, and a timed-out network call leaves the
|
|
894
|
+
database open for deliberate recovery. Restarts resume committed requests,
|
|
895
|
+
while permission changes, links, inode replacement, schema injection,
|
|
896
|
+
capability drift, and post-fork use block before transport.
|
|
897
|
+
|
|
898
|
+
### Version 6.101.0: durable public submission handoff
|
|
899
|
+
|
|
900
|
+
Version 6.101.0 gives CMS and website backends a caller-owned durable outbox
|
|
901
|
+
for the public submission client. Each complete change, cancellation, or
|
|
902
|
+
tombstone is validated and committed to SQLite before network access, together
|
|
903
|
+
with its canonical payload hash, idempotency identity, exact public capability
|
|
904
|
+
generation, and three independent retry ceilings.
|
|
905
|
+
|
|
906
|
+
One token-bound lease performs one client call. Explicitly retryable transport
|
|
907
|
+
failures use bounded durable backoff; permanent failures and exhausted attempts
|
|
908
|
+
remain visibly blocked. A crash after remote acceptance replays the identical
|
|
909
|
+
request after lease expiry, while stale claims, changed contracts, altered
|
|
910
|
+
payloads, database drift, and foreign response schemas fail closed. Local
|
|
911
|
+
`accepted` means only that the website edge durably accepted the request; it
|
|
912
|
+
never grants linguistic approval or publication authority.
|
|
913
|
+
|
|
914
|
+
### Version 6.100.0: contract-pinned public submission client
|
|
915
|
+
|
|
916
|
+
Version 6.100.0 makes the complete public website submission edge directly
|
|
917
|
+
usable through one provider-neutral HTTPS reference client. Before every
|
|
918
|
+
change, removal, tenant progress read, or operator probe, the client discovers
|
|
919
|
+
and validates the exact live v5 capability snapshot against its deployment
|
|
920
|
+
pin; path, scope, schemas, retry ownership, generation hashes, and explicit
|
|
921
|
+
non-publication semantics cannot drift independently.
|
|
922
|
+
|
|
923
|
+
All writes bind their canonical source-payload hash and idempotency identity;
|
|
924
|
+
all reads bind the complete known tenant and payload identity. Health and
|
|
925
|
+
readiness remain separate site-free operations. Authentication cannot replace
|
|
926
|
+
transport-owned headers, responses are revalidated against every nested
|
|
927
|
+
generation, and redirects or hidden client retries are forbidden. Invalid
|
|
928
|
+
input and stale contracts block before the operational request, while network
|
|
929
|
+
retry decisions stay content-free and caller-owned.
|
|
930
|
+
|
|
931
|
+
### Version 6.99.0: authenticated public pipeline monitoring
|
|
932
|
+
|
|
933
|
+
Version 6.99.0 exposes separate provider-neutral HTTPS operator reads for the
|
|
934
|
+
complete website-to-source health and readiness projections. Both routes are
|
|
935
|
+
body-free and content-free, use distinct scopes, and authenticate before any
|
|
936
|
+
runtime, queue, or downstream access.
|
|
937
|
+
|
|
938
|
+
The boundary independently validates the website and sidecar intake state,
|
|
939
|
+
the source-service state, every capability generation and both runtime
|
|
940
|
+
bindings. Health never substitutes for readiness, neither response identifies
|
|
941
|
+
a tenant or includes website content, and neither grants publication
|
|
942
|
+
authority. Malformed counters, contradictory component states, altered
|
|
943
|
+
bindings, or unavailable downstream evidence block fail-closed.
|
|
944
|
+
|
|
945
|
+
### Version 6.98.0: authenticated public submission progress
|
|
946
|
+
|
|
947
|
+
Version 6.98.0 completes the public submit-and-observe path with separate,
|
|
948
|
+
provider-neutral HTTPS reads for durable acceptance status and the full source
|
|
949
|
+
localization lifecycle. Every lookup is bound to its authenticated site,
|
|
950
|
+
operation, request and event identities, and exact source-payload SHA-256
|
|
951
|
+
before runtime access.
|
|
952
|
+
|
|
953
|
+
The boundary independently validates the complete content-free runtime
|
|
954
|
+
projection, including retry counters and pinned capability generations. A
|
|
955
|
+
foreign tenant is indistinguishable from a missing submission; malformed,
|
|
956
|
+
substituted, or cross-bound downstream state fails closed. Acceptance and
|
|
957
|
+
source processing remain separate, and neither response grants quality
|
|
958
|
+
approval or publication. The v4 capability snapshot advertises both live
|
|
959
|
+
read routes, scopes, request/result schemas, and response envelopes.
|
|
960
|
+
|
|
961
|
+
### Version 6.97.0: authenticated public website submission
|
|
962
|
+
|
|
963
|
+
Version 6.97.0 exposes the website-owned outer outbox through two provider-
|
|
964
|
+
neutral HTTPS write routes for one change or one cancellation/tombstone. Each
|
|
965
|
+
request binds its authenticated principal to the exact site, canonical body
|
|
966
|
+
hash, source-payload hash, idempotency identity, and separate website-delivery
|
|
967
|
+
and source-processing retry ceilings before touching runtime state.
|
|
968
|
+
|
|
969
|
+
The hosted website worker and the pinned commercial capability generation must
|
|
970
|
+
both be ready. HTTP 202 is returned only after the immutable outer-outbox row
|
|
971
|
+
has been committed; exact retries reuse that row and changed content or retry
|
|
972
|
+
policy conflicts fail closed. The content-free acknowledgement keeps website
|
|
973
|
+
acceptance distinct from sidecar/source acceptance, quality approval, and
|
|
974
|
+
publication. The v3 public capability snapshot now advertises these live paths,
|
|
975
|
+
scopes, schemas, and precise acceptance semantics.
|
|
976
|
+
|
|
977
|
+
### Version 6.96.0: authenticated website capability discovery
|
|
978
|
+
|
|
979
|
+
Version 6.96.0 exposes the complete website submission capability as a strict,
|
|
980
|
+
read-only WSGI route. The route at
|
|
981
|
+
`GET /v1/localization/source-delivery/submission-capabilities` requires HTTPS,
|
|
982
|
+
an exact host-authenticated read scope, an empty body, and no query. The
|
|
983
|
+
provider-neutral authenticator receives only canonical request metadata and
|
|
984
|
+
the empty-body hash before the runtime or downstream sidecar is contacted.
|
|
985
|
+
|
|
986
|
+
The response admits only the exact V6.96 operation, retry, semantics, and
|
|
987
|
+
durable-generation fields and rechecks their canonical SHA-256. Changed
|
|
988
|
+
schemas, added private fields, altered publication semantics, stale hashes,
|
|
989
|
+
runtime failures, and authentication failures therefore return only stable,
|
|
990
|
+
content-free blocking envelopes.
|
|
991
|
+
|
|
992
|
+
### Version 6.95.0: discoverable end-to-end website capabilities
|
|
993
|
+
|
|
994
|
+
Version 6.95.0 adds one canonical, content-free capability snapshot at the
|
|
995
|
+
outer website submission runtime. It advertises the exact change and removal
|
|
996
|
+
schemas, every composed status, lifecycle, health and readiness projection,
|
|
997
|
+
the three independently owned retry budgets, and the fail-closed publication
|
|
998
|
+
boundary under one deterministic SHA-256. It explicitly states that this edge
|
|
999
|
+
neither generates translations nor grants publication authority.
|
|
1000
|
+
|
|
1001
|
+
The runtime validates its guarded website database generation before making a
|
|
1002
|
+
fresh authenticated sidecar capability request. The returned snapshot binds
|
|
1003
|
+
the exact live sidecar and source-service capability pins to that durable
|
|
1004
|
+
website generation. Local tampering therefore blocks without network access;
|
|
1005
|
+
remote contract substitution blocks without returning a weaker capability.
|
|
1006
|
+
|
|
1007
|
+
### Version 6.94.0: observable website generation evidence
|
|
1008
|
+
|
|
1009
|
+
Version 6.94.0 exposes the outer website outbox's exact, content-free durable
|
|
1010
|
+
generation as a canonical capability binding. The binding identifies the
|
|
1011
|
+
website database role, sidecar-adapter contract, source-runtime contract,
|
|
1012
|
+
commercial rendering registry, and their derived binding hash without
|
|
1013
|
+
including an endpoint, credential, tenant, source text, or target text.
|
|
1014
|
+
|
|
1015
|
+
Every composed submission status, lifecycle, health, pipeline-health,
|
|
1016
|
+
readiness, and pipeline-readiness projection now carries that independently
|
|
1017
|
+
validated website binding alongside the existing sidecar and source evidence.
|
|
1018
|
+
The runtime derives it from the canonical SQLite row on every read. A changed
|
|
1019
|
+
adapter, malformed or substituted binding, or altered database generation
|
|
1020
|
+
blocks locally before any operational request reaches the sidecar.
|
|
1021
|
+
|
|
1022
|
+
### Version 6.93.0: local-first website restart preflight
|
|
1023
|
+
|
|
1024
|
+
Version 6.93.0 validates an existing outer website outbox locally and read-only
|
|
1025
|
+
before the authenticated sidecar preflight can make a network request. File
|
|
1026
|
+
ownership, mode and identity, the base outbox schema, the canonical generation
|
|
1027
|
+
table, its role-specific row, and its derived digest must all match the exact
|
|
1028
|
+
adapter, source-runtime, and commercial rendering-registry generation.
|
|
1029
|
+
|
|
1030
|
+
A changed generation, altered schema, malformed binding, unsafe file, or
|
|
1031
|
+
non-empty unbound legacy outbox now blocks with a stable content-free reason and
|
|
1032
|
+
zero transport calls. A missing database is still created only after remote
|
|
1033
|
+
generation verification, while a provably empty unbound legacy database remains
|
|
1034
|
+
migratable and is bound only after that same verification succeeds.
|
|
1035
|
+
|
|
1036
|
+
### Version 6.92.0: authenticated website generation preflight
|
|
1037
|
+
|
|
1038
|
+
Version 6.92.0 closes the remaining durable generation gap at the public
|
|
1039
|
+
website edge. The owned HMAC submission composition now requires the expected
|
|
1040
|
+
source-runtime and commercial rendering-registry hashes, verifies both through
|
|
1041
|
+
the authenticated sidecar source-readiness route, and opens no website database
|
|
1042
|
+
until that exact content-free binding is proven.
|
|
1043
|
+
|
|
1044
|
+
The verified values become part of the sidecar-adapter contract and the outer
|
|
1045
|
+
website outbox's role-specific SQLite binding. Missing, partial, malformed,
|
|
1046
|
+
stale, or substituted generations block fail-closed before database creation;
|
|
1047
|
+
pending website work can resume only with the same adapter, runtime, and price
|
|
1048
|
+
format generation. Direct low-level adapter use remains compatible and
|
|
1049
|
+
deliberately unbound unless both generation pins are supplied together.
|
|
1050
|
+
|
|
1051
|
+
### Version 6.91.0: durable sidecar generation binding
|
|
1052
|
+
|
|
1053
|
+
Version 6.91.0 durably binds the source-delivery sidecar database to the exact
|
|
1054
|
+
sidecar contract, verified source-runtime capability generation, and commercial
|
|
1055
|
+
rendering-registry generation. Every restart validates canonical role-specific
|
|
1056
|
+
metadata and its derived digest before queue or network access. Pending work can
|
|
1057
|
+
therefore resume only under the generation that accepted it.
|
|
1058
|
+
|
|
1059
|
+
An empty unbound legacy outbox may be adopted atomically. A non-empty unbound
|
|
1060
|
+
outbox, changed capability generation, altered binding record, malformed table,
|
|
1061
|
+
or attempt to reopen a bound production database without generation pins blocks
|
|
1062
|
+
fail-closed. Version 6.92 extends the same generation guarantee to the outer
|
|
1063
|
+
website database.
|
|
1064
|
+
|
|
1065
|
+
### Version 6.90.0: authenticated source runtime binding
|
|
1066
|
+
|
|
1067
|
+
Version 6.90.0 carries the verified, content-free commercial capability
|
|
1068
|
+
generation across the authenticated source-service boundary. Production HTTP
|
|
1069
|
+
startup now requires the existing signed capability preflight before any
|
|
1070
|
+
database is created. Capabilities, writes, status, health, and readiness all
|
|
1071
|
+
return the exact durable runtime and commercial rendering-registry binding;
|
|
1072
|
+
the pinned source client verifies it on every response.
|
|
1073
|
+
|
|
1074
|
+
The source-delivery sidecar and owned website runtime preserve that binding as
|
|
1075
|
+
separate evidence through lifecycle, pipeline health, and pipeline readiness.
|
|
1076
|
+
Missing, malformed, replaced, or drifting bindings block before acceptance is
|
|
1077
|
+
reported. This closes the gap between a statically pinned HTTP schema and the
|
|
1078
|
+
actual commercial policy generation operating the durable queues.
|
|
1079
|
+
|
|
1080
|
+
### Version 6.89.0: durable commercial capability binding
|
|
1081
|
+
|
|
1082
|
+
Version 6.89.0 preserves the verified commercial capability generation across
|
|
1083
|
+
CMS worker restarts. The change, removal, and lifecycle databases each retain a
|
|
1084
|
+
canonical, role-specific binding to the complete capability and commercial
|
|
1085
|
+
rendering-registry digests. A restart with the same binding resumes pending
|
|
1086
|
+
work, including recovery from a partially completed same-binding startup.
|
|
1087
|
+
|
|
1088
|
+
Another generation, swapped database roles, altered metadata, and non-empty
|
|
1089
|
+
unbound legacy queues block before service schema changes, queue access, or
|
|
1090
|
+
provider traffic. Empty legacy stores may be adopted deliberately. This keeps
|
|
1091
|
+
old price and offer work from silently crossing a policy deployment while
|
|
1092
|
+
preserving a safe migration path and content-free operational evidence.
|
|
1093
|
+
|
|
1094
|
+
### Version 6.88.0: pinned durable CMS startup
|
|
1095
|
+
|
|
1096
|
+
Version 6.88.0 carries both commercial capability pins into the durable
|
|
1097
|
+
source-CMS composition root. An explicit production preflight performs one
|
|
1098
|
+
signed capability read before any queue database is created, requires the
|
|
1099
|
+
complete capability and commercial rendering-registry pins, and retains only
|
|
1100
|
+
their public digests.
|
|
1101
|
+
|
|
1102
|
+
Missing pins, transport failure, contract substitution, and either mismatch
|
|
1103
|
+
leave persistent state untouched and return stable content-free errors. The
|
|
1104
|
+
runtime exposes the verified binding separately and rechecks it before every
|
|
1105
|
+
later state transition, so an altered client cannot enqueue or deliver website
|
|
1106
|
+
content under another commercial contract.
|
|
1107
|
+
|
|
1108
|
+
### Version 6.87.0: pinned commercial capability client
|
|
1109
|
+
|
|
1110
|
+
Version 6.87.0 completes the public commercial rendering registry at the
|
|
1111
|
+
source-side reference client. The client now compares the complete v5
|
|
1112
|
+
capability shape, commercial profile, all 24 locale bindings, and the exact
|
|
1113
|
+
canonical rendering registry with its installed contract. A substituted
|
|
1114
|
+
registry remains blocked even if an intermediary recomputes every public
|
|
1115
|
+
digest.
|
|
1116
|
+
|
|
1117
|
+
Deployments may additionally pin the complete capability digest and the
|
|
1118
|
+
commercial rendering-registry digest in the client constructor. Malformed pins
|
|
1119
|
+
stop before transport; mismatches stop after one response with distinct,
|
|
1120
|
+
non-retryable error codes. This makes contract upgrades deliberate without
|
|
1121
|
+
embedding project prices, brands, credentials, or content in the public
|
|
1122
|
+
capability path.
|
|
1123
|
+
|
|
1124
|
+
### Version 6.86.0: public commercial rendering registry
|
|
1125
|
+
|
|
1126
|
+
Version 6.86.0 exposes the complete set of 24 locale-exact commercial
|
|
1127
|
+
rendering references through the signed CMS capability contract. Every entry
|
|
1128
|
+
is bound to its exact commercial locale-profile version and digest, and the
|
|
1129
|
+
whole content-free registry has its own canonical SHA-256 digest. CMS and
|
|
1130
|
+
website clients can therefore discover and deliberately pin the rules they
|
|
1131
|
+
need instead of guessing separators, grouping thresholds, currency placement,
|
|
1132
|
+
or range notation.
|
|
1133
|
+
|
|
1134
|
+
The capability contract advances to v5. It reconstructs every advertised
|
|
1135
|
+
registry entry from the canonical locale profile before returning any data;
|
|
1136
|
+
missing, reordered, altered, or rehashed entries block the whole response.
|
|
1137
|
+
The registry contains no project prices, brands, source or target text, or
|
|
1138
|
+
credentials, and its CLDR guidance still does not claim semantic equivalence.
|
|
1139
|
+
|
|
1140
|
+
### Version 6.85.0: locale-exact commercial rendering references
|
|
1141
|
+
|
|
1142
|
+
Version 6.85.0 binds an exact Unicode CLDR 48 number-format reference into
|
|
1143
|
+
every one of the 24 commercial EU-locale profiles. Providers now receive the
|
|
1144
|
+
resolved CLDR locale, numbering system, grouping threshold, decimal and grouping
|
|
1145
|
+
symbols, and decimal, percentage, currency, ISO-currency, approximation, limit,
|
|
1146
|
+
and range patterns in all three ordered phases. Explicit regional data is used
|
|
1147
|
+
for `de-AT`, `en-IE`, and `pt-PT`; the other configured locales use their CLDR
|
|
1148
|
+
parent data.
|
|
1149
|
+
|
|
1150
|
+
The reference is rendering guidance, never a language-independent semantic
|
|
1151
|
+
proof. Meaning-preserving number words, written percentages, and equivalent
|
|
1152
|
+
digit forms remain valid; rounding and currency conversion remain forbidden;
|
|
1153
|
+
ambiguous values still require an independent model or qualified native-domain
|
|
1154
|
+
review. The profile generation advances to v5/v2, invalidating stale jobs,
|
|
1155
|
+
caches, receipts, and publication authority.
|
|
1156
|
+
|
|
1157
|
+
### Version 6.84.0: visible commercial escalation resolution
|
|
1158
|
+
|
|
1159
|
+
Version 6.84.0 carries the outcome of every targeted commercial escalation to
|
|
1160
|
+
the CMS receiver. When the primary commercial review remains unresolved, the
|
|
1161
|
+
signed publication evidence now identifies the exact ordered review dimensions,
|
|
1162
|
+
whether a qualified human or independent model resolved them, the receipt hash,
|
|
1163
|
+
and the independent provider binding where applicable.
|
|
1164
|
+
|
|
1165
|
+
The release-evidence contract advances to v3. Verified commercial results and
|
|
1166
|
+
non-commercial content keep a null resolution, while missing, unexpected,
|
|
1167
|
+
cross-scope, malformed, or method-inconsistent resolution evidence blocks before
|
|
1168
|
+
the receiver's commit callback. Raw receipts, prices, source or target text,
|
|
1169
|
+
qualified-human identity, and reviewer prose remain excluded.
|
|
1170
|
+
|
|
1171
|
+
### Version 6.83.0: commercial evidence HTTP profile binding
|
|
1172
|
+
|
|
1173
|
+
Version 6.83.0 carries the exact locale-specific commercial quality profile
|
|
1174
|
+
through the provider-neutral quality-evidence and receipt-verification HTTPS
|
|
1175
|
+
boundaries. Commercial requests now require the nested profile identifier,
|
|
1176
|
+
version and digest to match their content type, commercial policy and review
|
|
1177
|
+
summary before authentication or network access.
|
|
1178
|
+
|
|
1179
|
+
The evidence request and receipt-binding contracts advance to v6 and v3, so
|
|
1180
|
+
durable retries and opaque receipts created before this binding cannot be
|
|
1181
|
+
silently reused. Non-commercial traffic retains the compact base locale
|
|
1182
|
+
profile and rejects injected commercial scope. A complete coordinator test
|
|
1183
|
+
drives a Finnish offer through both adapters to signed delivery readiness.
|
|
1184
|
+
|
|
1185
|
+
### Version 6.82.0: locale-bound commercial publication evidence
|
|
1186
|
+
|
|
1187
|
+
Version 6.82.0 carries each approved commercial locale's exact quality-profile
|
|
1188
|
+
version and digest through the signed, content-free release evidence to the CMS
|
|
1189
|
+
receiver. The receiver recomputes the current canonical binding independently
|
|
1190
|
+
for every locale and blocks stale versions, substituted digests, wrong profile
|
|
1191
|
+
IDs, missing evidence, and cross-locale reuse before any host commit.
|
|
1192
|
+
|
|
1193
|
+
The release-evidence contract is now v2 and remains null-scoped for all
|
|
1194
|
+
non-commercial content. The durable receiver store also rechecks the compact
|
|
1195
|
+
binding inside its atomic write transaction, so a malformed commercial bundle
|
|
1196
|
+
cannot replace the last known good publication even when a callback is invoked
|
|
1197
|
+
directly.
|
|
1198
|
+
|
|
1199
|
+
### Version 6.81.0: locale-bound commercial quality profiles
|
|
1200
|
+
|
|
1201
|
+
Version 6.81.0 replaces the one-size-fits-all commercial prompt binding with
|
|
1202
|
+
24 distinct, canonical EU-locale evaluation profiles. Each profile inherits
|
|
1203
|
+
the exact locale's native, fidelity, adversarial and source-reference rules,
|
|
1204
|
+
then adds brand-neutral checks for prices, discounts, qualifiers, tax status,
|
|
1205
|
+
billing, commitment, renewal, cancellation, conditions and offer assignment.
|
|
1206
|
+
|
|
1207
|
+
The complete profile is versioned and hashed into each commercial job. The
|
|
1208
|
+
worker recomputes it before any provider call and supplies it independently to
|
|
1209
|
+
transcreation, target-only native review and source-aware fidelity review. Its
|
|
1210
|
+
version and digest also enter the signed quality-profile result, so profile
|
|
1211
|
+
changes invalidate job IDs, cached results, review evidence and publication
|
|
1212
|
+
authority without introducing fixed brands, products or prices.
|
|
1213
|
+
|
|
1214
|
+
### Version 6.80.0: end-to-end processing health
|
|
1215
|
+
|
|
1216
|
+
Version 6.80.0 adds one authenticated `submission_pipeline_health()` probe
|
|
1217
|
+
from the website acceptance outbox through the sidecar to every durable source
|
|
1218
|
+
processing queue. Website intake, sidecar delivery, and source-service health
|
|
1219
|
+
remain separate content-free projections, including their own counters and
|
|
1220
|
+
stable error codes.
|
|
1221
|
+
|
|
1222
|
+
The probe contacts the source layer only after website and sidecar intake are
|
|
1223
|
+
healthy. It binds both capability generations and revalidates the complete
|
|
1224
|
+
source health schema rather than trusting an aggregate flag. Degraded source
|
|
1225
|
+
registration remains visible, while blocked queues, malformed counters,
|
|
1226
|
+
transport failure, HTTP/status contradictions, and contract substitution fail
|
|
1227
|
+
closed without exposing website content, translations, or credentials.
|
|
1228
|
+
|
|
1229
|
+
### Version 6.79.0: end-to-end processing readiness
|
|
1230
|
+
|
|
1231
|
+
Version 6.79.0 adds one authenticated
|
|
1232
|
+
`submission_pipeline_readiness()` probe from the website worker through the
|
|
1233
|
+
sidecar to the source localization service. It reports intake readiness and
|
|
1234
|
+
source-processing readiness as separate content-free objects and returns
|
|
1235
|
+
overall `ready` only when all three operated layers are ready.
|
|
1236
|
+
|
|
1237
|
+
If the website worker or sidecar is not ready, the probe does not contact the
|
|
1238
|
+
next layer. Every successful downstream read is bound to the current sidecar
|
|
1239
|
+
and source-service capability hashes and revalidated against the source
|
|
1240
|
+
readiness schema. Stopped workers, malformed state, network failures, and
|
|
1241
|
+
contract substitution therefore remain fail-closed without exposing website
|
|
1242
|
+
content, credentials, provider responses, or translated text.
|
|
1243
|
+
|
|
1244
|
+
### Version 6.78.0: end-to-end localization lifecycle status
|
|
1245
|
+
|
|
1246
|
+
Version 6.78.0 adds one authenticated `submission_lifecycle()` read from the
|
|
1247
|
+
website-owned outbox through the sidecar to the source localization service.
|
|
1248
|
+
The sidecar exposes the source status only after the exact site, event, and
|
|
1249
|
+
payload row has reached durable source acceptance; earlier stages remain local
|
|
1250
|
+
and perform no premature downstream lifecycle request.
|
|
1251
|
+
|
|
1252
|
+
The result preserves the acceptance projection and the complete content-free
|
|
1253
|
+
source-service status as separate nested objects. Event and tenant identity,
|
|
1254
|
+
payload hash, retry state, required and blocked locales, publication state,
|
|
1255
|
+
terminal processing, and both capability generations are validated at every
|
|
1256
|
+
hop. Processing or review can therefore never be collapsed into publication,
|
|
1257
|
+
and missing, malformed, or stale lifecycle evidence blocks fail-closed.
|
|
1258
|
+
|
|
1259
|
+
### Version 6.77.0: end-to-end submission health
|
|
1260
|
+
|
|
1261
|
+
Version 6.77.0 adds one content-free `submission_health()` projection across
|
|
1262
|
+
the website and sidecar acceptance outboxes. It validates local storage before
|
|
1263
|
+
network access and then uses the owned authenticated, capability-pinned client
|
|
1264
|
+
to retrieve the downstream snapshot.
|
|
1265
|
+
|
|
1266
|
+
Both health objects remain distinct with their counters, due work, expired
|
|
1267
|
+
leases, failures, contract mismatches, and stable error codes. Overall health
|
|
1268
|
+
is `ok` only when both outboxes independently report `ok`; malformed state or
|
|
1269
|
+
contract substitution blocks fail-closed.
|
|
1270
|
+
|
|
1271
|
+
### Version 6.76.0: end-to-end submission readiness
|
|
1272
|
+
|
|
1273
|
+
Version 6.76.0 adds one content-free `submission_readiness()` projection for
|
|
1274
|
+
the complete durable website-to-sidecar intake path. It validates the owned
|
|
1275
|
+
website worker and outbox first; only a locally ready runtime performs the
|
|
1276
|
+
authenticated sidecar readiness request.
|
|
1277
|
+
|
|
1278
|
+
The result keeps website and sidecar worker state, outbox state, stable error
|
|
1279
|
+
codes, and both capability pins distinct. Overall readiness is positive only
|
|
1280
|
+
when both durable workers are running and both outboxes are healthy. A stopped
|
|
1281
|
+
or malformed local runtime causes no remote request, while a blocked sidecar
|
|
1282
|
+
can never be hidden behind a healthy website worker.
|
|
1283
|
+
|
|
1284
|
+
### Version 6.75.0: bound submission progress
|
|
1285
|
+
|
|
1286
|
+
Version 6.75.0 adds one content-free `submission_status()` projection across
|
|
1287
|
+
the website acceptance outbox and the sidecar delivery outbox. Before local
|
|
1288
|
+
acceptance it reads no remote state; afterwards it authenticates the status
|
|
1289
|
+
request and binds the returned operation, identities, tenant, payload hash,
|
|
1290
|
+
capability pins, and independent retry ceilings to the persisted submission.
|
|
1291
|
+
|
|
1292
|
+
The result distinguishes `website_acceptance`, `sidecar_delivery`, and
|
|
1293
|
+
`source_acceptance`. An `accepted` result means only that the source service
|
|
1294
|
+
durably accepted the event; it never claims that localization, review, or
|
|
1295
|
+
publication completed. Stale local contracts, malformed remote status, and
|
|
1296
|
+
changed retry policy fail closed without exposing website content.
|
|
1297
|
+
|
|
1298
|
+
### Version 6.74.0: owned authenticated submission runtime
|
|
1299
|
+
|
|
1300
|
+
Version 6.74.0 composes the rotating HMAC client, sidecar adapter, private
|
|
1301
|
+
SQLite outbox, and optional supervised worker into one website-owned runtime.
|
|
1302
|
+
Invalid transport, retry, worker, or contract configuration fails before the
|
|
1303
|
+
outbox file is created or any request is sent.
|
|
1304
|
+
|
|
1305
|
+
The runtime preserves separate website-acceptance, sidecar-delivery, and
|
|
1306
|
+
source-processing retry ceilings. It exposes local acceptance and downstream
|
|
1307
|
+
sidecar status as deliberately different operations, routes live credential
|
|
1308
|
+
replacement to the exact signer used by the worker, and blocks inherited or
|
|
1309
|
+
closed instances before storage or network access.
|
|
1310
|
+
|
|
1311
|
+
### Version 6.73.0: durable authenticated sidecar submission
|
|
1312
|
+
|
|
1313
|
+
Version 6.73.0 connects the contract-pinned, rotatable HMAC sidecar client to
|
|
1314
|
+
the existing website-owned SQLite outbox through an explicit adapter. A source
|
|
1315
|
+
event is durable before the first sidecar request, survives a client or process
|
|
1316
|
+
crash, and is replayed with the same immutable identity until the sidecar has
|
|
1317
|
+
durably accepted it.
|
|
1318
|
+
|
|
1319
|
+
The adapter keeps three retry ceilings distinct: local sidecar-acceptance
|
|
1320
|
+
attempts, sidecar-to-source-service delivery attempts, and source-service
|
|
1321
|
+
processing attempts. Its synthetic capability digest binds both remote
|
|
1322
|
+
contract pins and the inner delivery policy, so a configuration change blocks
|
|
1323
|
+
old active rows instead of silently changing their semantics.
|
|
1324
|
+
|
|
1325
|
+
### Version 6.72.0: source-bound commercial review evidence
|
|
1326
|
+
|
|
1327
|
+
Version 6.72.0 binds every content-free commercial review digest to the exact
|
|
1328
|
+
UTF-8 source and target hashes, the commercial profile generation, and the
|
|
1329
|
+
complete canonical review evidence. Commercial profile v3 and review-summary
|
|
1330
|
+
contract v2 invalidate older plans, cache entries, approvals, and capability
|
|
1331
|
+
pins instead of letting a structurally valid digest move between texts or
|
|
1332
|
+
policies. The authenticated capability registry publishes the exact versioned
|
|
1333
|
+
binding recipe without exposing prices, copy, spans, brands, or reviewer prose.
|
|
1334
|
+
|
|
1335
|
+
### Version 6.71.0: composed authenticated source-delivery client
|
|
1336
|
+
|
|
1337
|
+
Version 6.71.0 provides one provider-neutral client surface for a website
|
|
1338
|
+
backend to call all six source-delivery sidecar operations. Origin, sidecar
|
|
1339
|
+
capability pin, and downstream capability pin are supplied once and shared by
|
|
1340
|
+
the private rotating HMAC signer and contract-pinned HTTPS client, eliminating
|
|
1341
|
+
duplicate security configuration.
|
|
1342
|
+
|
|
1343
|
+
The composed client is bound to its creating process, performs no network call
|
|
1344
|
+
when construction fails, and routes credential replacement to the exact signer
|
|
1345
|
+
used by capabilities, changes, removals, status, health, and readiness. Invalid
|
|
1346
|
+
replacement state keeps the last valid credential, while representations and
|
|
1347
|
+
errors remain content-free and secret-free.
|
|
1348
|
+
|
|
1349
|
+
### Version 6.70.0: uninterrupted source-delivery client rotation
|
|
1350
|
+
|
|
1351
|
+
Version 6.70.0 lets a long-lived source-delivery client replace its HMAC
|
|
1352
|
+
credential without restarting its worker or rebuilding its HTTP adapter. The
|
|
1353
|
+
provider-neutral rotating signer validates a complete replacement, serializes
|
|
1354
|
+
the swap with proof creation, retains the last valid signer on failure, and
|
|
1355
|
+
rejects inherited use from a forked process.
|
|
1356
|
+
|
|
1357
|
+
The origin and both capability-contract pins stay immutable throughout the
|
|
1358
|
+
client lifetime. A safe fleet rollout overlaps old and new generations on the
|
|
1359
|
+
server, rotates every client, drains proofs and requests already emitted under
|
|
1360
|
+
the old generation, and only then retires it server-side. The client lock does
|
|
1361
|
+
not claim to synchronize other processes or requests already in transport.
|
|
1362
|
+
|
|
1363
|
+
### Version 6.69.0: uninterrupted source-delivery credential rotation
|
|
1364
|
+
|
|
1365
|
+
Version 6.69.0 lets a running authenticated source-delivery sidecar replace
|
|
1366
|
+
its accepted HMAC credential generations without restarting the outbox worker
|
|
1367
|
+
or resetting replay protection. Operators may first overlap old and new
|
|
1368
|
+
generations, move clients, and then retire the old generation.
|
|
1369
|
+
|
|
1370
|
+
The runtime materializes and validates the complete replacement before taking
|
|
1371
|
+
effect, serializes the swap with in-flight authentication, and retains the
|
|
1372
|
+
last valid verifier on every rejected update. The existing replay ledger stays
|
|
1373
|
+
authoritative across removal and later re-addition of a generation. Storage,
|
|
1374
|
+
process, and lifecycle guards are checked before a replacement; errors and
|
|
1375
|
+
representations expose neither credentials nor secret-manager detail.
|
|
1376
|
+
|
|
1377
|
+
### Version 6.68.0: protected authenticated sidecar runtime
|
|
1378
|
+
|
|
1379
|
+
Version 6.68.0 turns the source-delivery HMAC reference into one deployable
|
|
1380
|
+
host composition. It preflights the complete authentication, worker, retry,
|
|
1381
|
+
contract-pin, and path configuration in memory before opening either durable
|
|
1382
|
+
database, then owns the hosted delivery runtime and its separate replay ledger
|
|
1383
|
+
as one lifecycle.
|
|
1384
|
+
|
|
1385
|
+
The replay database is created owner-only and bound to its process, inode, safe
|
|
1386
|
+
parent chain, and serialized connection. Permission drift, links, replacement,
|
|
1387
|
+
corrupt retained nonces, inherited pre-fork state, closed runtimes, or storage
|
|
1388
|
+
failure make authentication unavailable before the protected outbox is read or
|
|
1389
|
+
written. A content-free authentication health snapshot remains separate from
|
|
1390
|
+
website content and credentials. Shutdown closes the delivery worker and
|
|
1391
|
+
outbox before the replay ledger; if a worker exceeds its bound, authentication
|
|
1392
|
+
stays open for an explicit supervisor decision.
|
|
1393
|
+
|
|
1394
|
+
### Version 6.67.0: rotatable source-delivery authentication
|
|
1395
|
+
|
|
1396
|
+
Version 6.67.0 completes a deployable authentication path for the
|
|
1397
|
+
source-delivery sidecar without fixing one identity provider. The reference
|
|
1398
|
+
client signer and server verifier bind the exact origin, method, verified path,
|
|
1399
|
+
route scope, body hash, tenant identities, idempotency headers, and both active
|
|
1400
|
+
capability-contract digests into one canonical HMAC-SHA-256 proof.
|
|
1401
|
+
|
|
1402
|
+
Credentials carry an explicit generation and allowlist of scopes, so several
|
|
1403
|
+
versions can overlap during controlled rotation without granting another site.
|
|
1404
|
+
A caller-owned durable SQLite replay store atomically consumes every random
|
|
1405
|
+
nonce before protected content is parsed or persisted. Expired, future,
|
|
1406
|
+
replayed, altered, retired, cross-tenant, or wrongly scoped proofs fail closed;
|
|
1407
|
+
store and clock outages remain distinguishable, content-free retryable server
|
|
1408
|
+
failures. No key, credential, website text, or provider response is represented
|
|
1409
|
+
or stored in the replay ledger.
|
|
1410
|
+
|
|
1411
|
+
### Version 6.66.0: contract-pinned source-delivery sidecar client
|
|
1412
|
+
|
|
1413
|
+
Version 6.66.0 gives CMS and website backends one provider-neutral HTTPS
|
|
1414
|
+
reference client for the source-delivery sidecar. Every write and operational
|
|
1415
|
+
read first verifies the complete live capability contract against a trusted
|
|
1416
|
+
sidecar pin, then uses only its freshly verified method and path.
|
|
1417
|
+
|
|
1418
|
+
The client separately pins the downstream source-service contract, binds
|
|
1419
|
+
changes and removals to canonical inner-payload hashes and immutable
|
|
1420
|
+
idempotency identities, and requires complete known bindings for status reads.
|
|
1421
|
+
Authentication code cannot replace reserved transport headers. Redirects,
|
|
1422
|
+
hidden retries, tenant substitutions, changed retry ceilings, stale capability
|
|
1423
|
+
digests, malformed blocked states, and private transport failures remain
|
|
1424
|
+
content-free and fail closed.
|
|
1425
|
+
|
|
1426
|
+
### Version 6.65.0: website-source delivery HTTP sidecar
|
|
1427
|
+
|
|
1428
|
+
Version 6.65.0 lets non-Python websites and CMS backends use the protected
|
|
1429
|
+
source-delivery runtime through one provider-neutral HTTPS/WSGI boundary. Six
|
|
1430
|
+
separately scoped routes accept changes and removals or expose status, health,
|
|
1431
|
+
readiness, and a canonically hashed machine-readable contract.
|
|
1432
|
+
|
|
1433
|
+
Authentication is bound to the exact method, path, headers, and request-body
|
|
1434
|
+
SHA-256 before JSON is parsed. Writes additionally require the immutable
|
|
1435
|
+
request ID, canonical source-payload hash, exact website tenant, both retry
|
|
1436
|
+
ceilings, and a live managed worker before new work is persisted. Responses are
|
|
1437
|
+
independently validated and contain only durable identities, hashes, counters,
|
|
1438
|
+
states, and stable errors; a missing or foreign website item is
|
|
1439
|
+
indistinguishable. The hosted factory can construct the runtime, worker, and
|
|
1440
|
+
sidecar as one preflighted unit without creating storage for an invalid
|
|
1441
|
+
authenticator.
|
|
1442
|
+
|
|
110
1443
|
### Version 6.64.0: hosted website-source delivery runtime
|
|
111
1444
|
|
|
112
1445
|
Version 6.64.0 turns the durable website outbox into an owned production
|
|
@@ -1061,7 +2394,7 @@ No deterministic linter can prove that prose is genuinely native. That is why th
|
|
|
1061
2394
|
|
|
1062
2395
|
### Start the MCP server
|
|
1063
2396
|
|
|
1064
|
-
For Claude Code, use the persistent runtime shown in Version 6.3 together with the current Version 6.
|
|
2397
|
+
For Claude Code, use the persistent runtime shown in Version 6.3 together with the current Version 6.155.0 plugin. The HTTP MCP remains available in every project through user scope, while the plugin adds the mandatory lifecycle hooks and the operating-system monitor repairs its service path and enrolled plugin cache. Check the runtime at any time with:
|
|
1065
2398
|
|
|
1066
2399
|
```bash
|
|
1067
2400
|
python3 installer/blun_language_guard.py mcp-service status
|