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.
Files changed (106) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +17 -1
  3. package/agent-spine-plugin/CHANGELOG.md +1 -1
  4. package/agent-spine-plugin/docs/host-integration.md +1 -15
  5. package/agent-spine-plugin/docs/preflight-recall.md +1 -1
  6. package/agent-spine-plugin/scripts/check-install.js +1 -6
  7. package/agent-spine-plugin/scripts/hermetic-process.js +8 -0
  8. package/agent-spine-plugin/scripts/release-check.js +2 -3
  9. package/agent-spine-plugin/scripts/run-tests-hermetic.js +8 -11
  10. package/agent-spine-plugin/src/hook.js +40 -40
  11. package/agent-spine-plugin/src/lib/briefing.js +6 -3
  12. package/agent-spine-plugin/src/lib/hook-context.js +63 -64
  13. package/agent-spine-plugin/src/lib/hook-output.js +115 -94
  14. package/agent-spine-plugin/src/lib/hook-timeline.js +20 -11
  15. package/agent-spine-plugin/src/lib/host-instruction-budget.js +8 -14
  16. package/agent-spine-plugin/src/lib/mcp-timeline-tools.js +0 -7
  17. package/agent-spine-plugin/src/lib/pre-answer-timeline-recall.js +104 -0
  18. package/agent-spine-plugin/src/lib/session-timeline-codex.js +0 -4
  19. package/agent-spine-plugin/src/lib/session-timeline-enrollment-source.js +0 -3
  20. package/agent-spine-plugin/src/lib/session-timeline-enrollment-storage.js +0 -4
  21. package/agent-spine-plugin/src/lib/session-timeline-enrollment-transport.js +0 -2
  22. package/agent-spine-plugin/src/lib/session-timeline-enrollment.js +0 -22
  23. package/agent-spine-plugin/src/lib/session-timeline-host-origin.js +0 -4
  24. package/agent-spine-plugin/src/lib/session-timeline-prior.js +42 -50
  25. package/agent-spine-plugin/src/lib/session-timeline-provider.js +0 -3
  26. package/agent-spine-plugin/src/lib/session-timeline-query.js +0 -1
  27. package/agent-spine-plugin/src/lib/session-timeline-sid-acl.js +0 -4
  28. package/agent-spine-plugin/src/lib/session-timeline-source.js +0 -3
  29. package/agent-spine-plugin/src/lib/session-timeline-transport.js +0 -8
  30. package/agent-spine-plugin/src/lib/session-timeline-windows-acl.js +0 -3
  31. package/agent-spine-plugin/src/lib/session-timeline.js +370 -408
  32. package/agent-spine-plugin/src/lib/source-roots.js +26 -16
  33. package/agent-spine-plugin/src/lib/timeline-user-feedback.js +0 -1
  34. package/bin/core-bootstrap.js +18 -10
  35. package/bin/launcher-mode.js +5 -0
  36. package/bin/launcher-runtime.js +27 -0
  37. package/bin/verify-bundled-agent-sources.cjs +28 -2
  38. package/blun.mjs +798 -143
  39. package/bundled-agent-sources.json +192 -155
  40. package/package.json +1 -1
  41. package/standard-skills/translate-native/README.md +1334 -1
  42. package/standard-skills/translate-native/SKILL.md +1 -1
  43. package/standard-skills/translate-native/VERSION +1 -1
  44. package/standard-skills/translate-native/docs/PREMORTEM.md +901 -0
  45. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION.md +208 -41
  46. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_API.md +1319 -77
  47. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_EVIDENCE_HTTP.md +66 -11
  48. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_HTTP_PROVIDER.md +19 -1
  49. package/standard-skills/translate-native/docs/WEBSITE_LOCALIZATION_RECEIPT_VERIFIER_HTTP.md +24 -6
  50. package/standard-skills/translate-native/integrations/commercial_localization_profile.py +23 -0
  51. package/standard-skills/translate-native/integrations/website_localization.py +234 -10
  52. package/standard-skills/translate-native/integrations/website_localization_benchmark.py +39 -3
  53. package/standard-skills/translate-native/integrations/website_localization_cms.py +512 -10
  54. package/standard-skills/translate-native/integrations/website_localization_cms_client.py +116 -0
  55. package/standard-skills/translate-native/integrations/website_localization_cms_receiver.py +101 -11
  56. package/standard-skills/translate-native/integrations/website_localization_cms_receiver_runtime.py +12 -1
  57. package/standard-skills/translate-native/integrations/website_localization_cms_receiver_store.py +186 -24
  58. package/standard-skills/translate-native/integrations/website_localization_cms_source_client.py +64 -1
  59. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery.py +528 -5
  60. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_auth.py +918 -0
  61. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_auth_runtime.py +609 -0
  62. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_client.py +885 -0
  63. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_http.py +1244 -0
  64. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_runtime.py +220 -0
  65. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_sidecar_adapter.py +331 -0
  66. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_capabilities_http.py +444 -0
  67. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_client.py +673 -0
  68. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch.py +1317 -0
  69. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_client.py +826 -0
  70. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_http.py +1152 -0
  71. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_openapi.py +896 -0
  72. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_dispatch_runtime.py +621 -0
  73. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_http.py +1180 -0
  74. package/standard-skills/translate-native/integrations/website_localization_cms_source_delivery_submission_runtime.py +1479 -0
  75. package/standard-skills/translate-native/integrations/website_localization_cms_source_http.py +133 -17
  76. package/standard-skills/translate-native/integrations/website_localization_cms_source_runtime.py +319 -4
  77. package/standard-skills/translate-native/integrations/website_localization_cms_source_service.py +72 -2
  78. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_http.py +13 -0
  79. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver.py +56 -13
  80. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_openapi.py +335 -0
  81. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_notification_receiver_runtime.py +66 -1
  82. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_processing_monitor.py +73 -7
  83. package/standard-skills/translate-native/integrations/website_localization_cms_terminal_receiver_client.py +93 -9
  84. package/standard-skills/translate-native/integrations/website_localization_evidence_http.py +221 -11
  85. package/standard-skills/translate-native/integrations/website_localization_health.py +6 -0
  86. package/standard-skills/translate-native/integrations/website_localization_http_provider.py +1 -1
  87. package/standard-skills/translate-native/integrations/website_localization_quality_profiles.py +350 -0
  88. package/standard-skills/translate-native/integrations/website_localization_queue.py +126 -56
  89. package/standard-skills/translate-native/integrations/website_localization_receipt_verifier_http.py +166 -13
  90. package/standard-skills/translate-native/integrations/website_localization_release.py +423 -17
  91. package/standard-skills/translate-native/integrations/website_localization_release_coordinator.py +168 -13
  92. package/standard-skills/translate-native/integrations/website_localization_runner.py +10 -0
  93. package/standard-skills/translate-native/integrations/website_localization_worker.py +213 -9
  94. package/standard-skills/translate-native/provenance.json +2 -2
  95. package/standard-skills/translate-native/references/commercial-localization.md +96 -17
  96. package/standard-skills/translate-native/scripts/blun_language_guard.py +3 -1
  97. package/standard-skills/translate-native/scripts/check_commercial_review.py +69 -9
  98. package/standard-skills/translate-native/scripts/commercial_localization_profile.py +829 -31
  99. package/standard-tools/language-guard/VERSION +1 -1
  100. package/standard-tools/language-guard/blun_language_guard.py +3 -1
  101. package/standard-tools/language-guard/check_commercial_review.py +69 -9
  102. package/standard-tools/language-guard/commercial_localization_profile.py +829 -31
  103. package/standard-tools/language-guard/provenance.json +2 -2
  104. package/standard-tools/manifest.json +1 -1
  105. package/worker-host.mjs +215 -82
  106. 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.64.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:
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