unaltraweb 0.7.0 → 0.7.2

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +27 -5
  3. data/docs/_documentation/en/33-reusable-workflows.md +28 -3
  4. data/docs/_documentation/en/40-distribution.md +57 -19
  5. data/docs/_documentation/en/43-workspace-path-policies.md +13 -0
  6. data/docs/_documentation/en/46-live-runtime.md +6 -3
  7. data/docs/_documentation/en/47-private-practice-pdfs.md +130 -0
  8. data/docs/agents/consolidation-0.7.2.md +97 -0
  9. data/docs/agents/d0-runtime-identity.md +22 -5
  10. data/docs/agents/deploy-provenance-86.md +86 -0
  11. data/docs/agents/deployment-integration-0.7.1.md +142 -0
  12. data/docs/agents/manual-authoring-components.md +23 -0
  13. data/docs/agents/mcp-contract.md +112 -6
  14. data/docs/agents/owner-closeout-85.md +269 -0
  15. data/docs/agents/owner-closeout-93.md +185 -0
  16. data/docs/agents/practice-editions-98.md +816 -0
  17. data/docs/agents/practice-pdf-installable-98.md +250 -0
  18. data/docs/agents/practice-runtime-archives-98.md +147 -0
  19. data/docs/agents/private-practice-verifier-98.md +296 -0
  20. data/docs/agents/source-ci-98.md +148 -0
  21. data/scripts/check_practice_verifier_runtime.py +69 -0
  22. data/scripts/export_practice_runtime_archives.py +138 -0
  23. data/scripts/manual/filters/practice-finish.lua +36 -0
  24. data/scripts/manual/filters/practice-layout.lua +84 -0
  25. data/scripts/manual/practice_pdf.py +31 -0
  26. data/scripts/manual/render_practice.py +125 -0
  27. data/scripts/manual/templates/practice.tex +95 -0
  28. data/scripts/prepare_practice_candidate.py +159 -0
  29. data/scripts/prepare_practice_editions_candidate.py +119 -0
  30. data/scripts/test_wheel_install.py +16 -1
  31. data/scripts/unaltraweb-mcp-bootstrap.sh +1 -1
  32. data/scripts/validate_distribution.py +51 -5
  33. data/scripts/validate_workflows.py +33 -4
  34. data/src/unaltraweb_mcp/component-contract.json +59 -22
  35. data/src/unaltraweb_mcp/component-contract.schema.json +35 -2
  36. data/src/unaltraweb_mcp/distribution.py +42 -2
  37. data/src/unaltraweb_mcp/editorial_sources.py +62 -4
  38. metadata +22 -2
@@ -0,0 +1,269 @@
1
+ # unaltraweb 0.7.0 D0 delivery closeout
2
+
3
+ Published **2026-10-05 21:45:13 UTC**:
4
+ [v0.7.0](https://github.com/dosquartsdedocs/unaltraweb/releases/tag/v0.7.0).
5
+ Owner: [issue 85](https://github.com/dosquartsdedocs/unaltraweb/issues/85).
6
+ Coordination: [gaContExt 15](https://github.com/dosquartsdedocs/gacontext/issues/15).
7
+ Requirements: gaContExt `5634ea2e3e42122bb365992dfca9f248feb89dec`.
8
+ This report supersedes the chronological candidate state in the
9
+ [native API contract](d0-runtime-identity.md).
10
+
11
+ ## Review and exact source
12
+
13
+ The owner explicitly authorized the complete review/PR/integration, gated
14
+ publication and separate post-release checkout pin. Work used only
15
+ `/home/benizar/git/unaltraweb`, ordinary serial branches and synthetic consumers.
16
+ Existing releases, authored state and unrelated client registrations were retained.
17
+
18
+ | Role | Revision / evidence |
19
+ | --- | --- |
20
+ | Reviewed D0 implementation | `0c87e8c276e58ac9c747833df69cdb439aa6132b` |
21
+ | Integrated core selected by consumers | `216ab2e8b6b8b45a5bb7da0a54bffd10edee895d`, [PR 87](https://github.com/dosquartsdedocs/unaltraweb/pull/87) |
22
+ | Core selection commit | `2881a37dd6e5071d71c30cb44aa9af6faba5e886` |
23
+ | Final artifact-producing source | `b44818c67eecef159f7aa0f825b0416cd511bc43`, [PR 88](https://github.com/dosquartsdedocs/unaltraweb/pull/88) |
24
+ | Receipt-only child | `6dc13638c49bfb53a1c456e9e6b30aec7b3fd713` |
25
+ | Receipt integration / tag target | `9fc84ac7fd01c78c6fe15fe862beb6a5d1633a9e`, [PR 89](https://github.com/dosquartsdedocs/unaltraweb/pull/89) |
26
+ | Annotated tag object | `28a2a40b4b633be2fefb3f1c753cf95db1c7bdf6` |
27
+ | Reviewed post-release pin / report | `7f9ce5b3bd844aed3a820c98f9712b7cfc8c23ea` |
28
+ | Post-release integration | `833c5548ff01801097ddd56114d9039fd3914a43`, [PR 90](https://github.com/dosquartsdedocs/unaltraweb/pull/90) |
29
+
30
+ Review records are explicitly agent-attributed, not human approval. The receipt
31
+ integration's first parent is the artifact source; its first-parent diff contains
32
+ only `release-candidates.json`. Native package authorization, exact staging,
33
+ strict distribution/publication-ref checks and annotated-tag verification passed
34
+ before privileged publication. These release checks apply to the receipt/tag
35
+ revision, not later ordinary post-release commits.
36
+
37
+ ## Receipt, packages and images
38
+
39
+ [Tagged receipt](https://github.com/dosquartsdedocs/unaltraweb/blob/v0.7.0/release-candidates.json):
40
+ schema 1, source `b44818c67eecef159f7aa0f825b0416cd511bc43`, SHA-256
41
+ `92b4feafbf822ff5b0d9fc6534f963e68c2a28a875d4e2e841c051e7c619e7dc`.
42
+ It contains exactly the four components marked `ready` in the source BOM.
43
+
44
+ | Component | Artifact / repository | SHA-256 / OCI index digest |
45
+ | --- | --- | --- |
46
+ | Gem | `unaltraweb-0.7.0.gem` | `1f4c71fc03bc3025018873eae73f7a2274e46b87ac678805e4150b8351b9ff0c` |
47
+ | Wheel | `unaltraweb_mcp-0.7.0-py3-none-any.whl` | `3c9cd477e8c2fa0f69c1309c9302b110b73032600e8cf040c4818169863dd868` |
48
+ | Base runtime | `ghcr.io/dosquartsdedocs/unaltraweb` | `sha256:ce67aa8fb90899e3c770c4ec8952b760cc8cafb3ed203e8e15266a9623bb3d31` |
49
+ | MCP | `ghcr.io/dosquartsdedocs/unaltraweb-mcp` | `sha256:b84cdb404ba7bab5ff0b14fa8a7ee93d7293e829cf32e28ff0dacaa8afff4677` |
50
+
51
+ Both OCI aliases `0.7.0` and `v0.7.0` were inspected anonymously and match these
52
+ digests. Local Linux/amd64 configuration IDs are distinct:
53
+
54
+ - Runtime: `sha256:beec5459bc7aa159af428fbad5d14a4527f3143e5062ec305a00619c31aae706`.
55
+ - MCP: `sha256:b03e463343abcd0d5891f68ec423256f970d7c1fb35dc875e089e0f745cfe39a`.
56
+
57
+ Their revision labels equal the artifact source. The image workflow verified
58
+ GitHub-signed provenance, signer workflow, source revision and labels before
59
+ executing the exact candidates. Semver promotion reverified those identities and
60
+ reused the tested manifests without rebuilding.
61
+
62
+ The package workflow artifact is `11329540867`, named
63
+ `unaltraweb-0.7.0-b44818c67eecef159f7aa0f825b0416cd511bc43`; its archive digest is
64
+ `sha256:9af51fb8447cf77691ffd362a752b247a9a1ee45a351f44b8de8ac60d62317c9`.
65
+ The publisher authorized the exact successful run, source and inventory, then
66
+ verified/staged the recorded hashes. Separate OIDC jobs published those bytes.
67
+ Anonymous PyPI/RubyGems metadata and downloads match them. Downloaded GitHub
68
+ Release assets also pass `SHA256SUMS`, whose SHA-256 is
69
+ `4abdefd44dd6cce44262fd19e224a54ca7a1d1b7ada66071d5b737d94f9270ab`.
70
+
71
+ ## Reused workers and accepted helpers
72
+
73
+ The selected PDF remains the published, signed 0.6.0 specialization:
74
+ `ghcr.io/dosquartsdedocs/unaltraweb-manual-pdf@sha256:0ba267cb87f53ebaca4e31805fe00610cd61fdf97a8d2c3692f4655700dceaed`.
75
+ Its configuration ID is
76
+ `sha256:d7e7d3243616270fc9e6eed7f8238c412dbe3d9ffc18d2832d17d66ca630d139`.
77
+ It is `released`, outside the four-component receipt. The source-bound workflow
78
+ also tested PDF candidate
79
+ `sha256:d6d866cd16eab156e7dc3fea2fd7e649d8b91dca2916b45cd5c2218184d5928b`;
80
+ that verification-only candidate received no 0.7.0 semver promotion and is not
81
+ the selected worker.
82
+
83
+ Computation and capture keep their 0.4.0 immutable BOM references. The retained D0
84
+ observation reports Python compute as prepared; R compute and web capture were
85
+ locally missing and remained explicitly `missing`, without fallback. This
86
+ acceptance executes web/manual-PDF work, not every optional computation/capture
87
+ workflow. An adapter enabling those features must prepare and verify their exact
88
+ workers separately.
89
+
90
+ | Accepted helper | Wheel SHA-256 | Renderer configuration ID |
91
+ | --- | --- | --- |
92
+ | Diavisuals 0.5.0 | `f52e20f20f1fb3a2418f07adb8d6a68a5567d0c321fb7c0ccc0f4db04917b96b` | `sha256:5a6887b372a0e1c386a7b54981d11ae1910215baeb6a12dfd0706b3e85ef0846` |
93
+ | Vega 0.5.1 | `5aba4f267a37179c520b3cd164e1cec62ac5561872aa33b069cce73442dc52b1` | `sha256:695125943d0fbc3aa7c877babb9a11a6501bbc7ac265b0975bb5657c60439d98` |
94
+
95
+ Native selection uses Diavisuals `--runtime-image` / `--runtime-expected-id` and
96
+ Vega `--renderer-image-id`. Actual Mermaid, PlantUML, Vega-Lite/CSV and Vega renders
97
+ passed receipt verification, tamper refusal and consumer relocation. Existing
98
+ renderer aliases were unchanged. Exact 0.4.0 static receipt compatibility retains
99
+ all input/output/request integrity checks; no continuous version range is inferred.
100
+
101
+ ## Live identity and installed acceptance
102
+
103
+ The actual serving process provides `runtime_identity` and
104
+ `web://runtime-identity`; both agreed on the backend instance. Native profile
105
+ `unaltraweb-docker-stdio-v1` uses one connection per backend, one operation at a
106
+ time, explicit drain and scoped orphan recovery. Host commands `session-status`
107
+ and `reap-session` consume the retained consumer/session/container tuple.
108
+
109
+ The initial accepted backend instance was `400244b6784c46498aadd3ec3b9c088f`, with
110
+ inner PID 7 in `pid:[4026533734]`, start ticks `65541450`, Python 3.13.5 and
111
+ executable `/usr/bin/python3`. Container
112
+ `3feb725c68984e69fe208d56bdf06ec2dfcff4d43f1071045ebc0eadf3779ffe` had daemon init
113
+ PID `3938960`; these PIDs belong to different namespaces. The canonical consumer
114
+ binding was `/tmp/opencode/unaltraweb-d0-85/candidate-d0-proof/consumer A`.
115
+ Reconnection produced instance `9c9d94e47c324be89abff5e80defb024` while the second
116
+ consumer retained instance `413e89f4ebd34e5d8570b1db6a8360af`.
117
+
118
+ The installed engine root was `/usr/local/lib/python3.13/dist-packages/unaltraweb_mcp`.
119
+ Loaded version 0.7.0 and startup code fingerprint
120
+ `5fdfb154f82d01bb5dcc5a35d74ba2f384b36e60a5111b63831b6216adfb8996` remained fixed
121
+ when metadata in the disposable container overlay changed to 99.0.0. Current
122
+ bytes reported drift; the prepared image was unchanged. Observed canonical
123
+ component-contract hash:
124
+ `d2cddda50780f00ec3af47826a93341e014d4811146195ed09a9bf1ee5fcdf81`;
125
+ profile hash:
126
+ `6c9305143f2f5e3dee831f3d5bf2b5413e51f24e3f28310fa21019c645532481`.
127
+ Selection hashes additionally bind each consumer/worker tuple and are retained in
128
+ the evidence. These observations are not permanent process attestations.
129
+
130
+ `test/d0_runtime_smoke.py` passed all eight stages against the downloaded CI wheel
131
+ and signed MCP: reconnect/scope, loaded-versus-disk, busy drain, backend-crash
132
+ recovery, offline launch, explicit nested daemon mapping, wrong worker and missing
133
+ worker. Wrong/missing controller images were also refused. A real PDF job was
134
+ observed **busy after backend death**; recovery waited until it became eligible,
135
+ then proved resource absence while another live backend remained connected.
136
+ EOF/drain released only the retired session's resources.
137
+
138
+ The real 0.6.0 → 0.7.0 → 0.6.0 roundtrip preserved authored files and old generated
139
+ cache entries. The unrelated registration sentinel retained SHA-256
140
+ `2705c6065bbc5665798be533b1057070b6efeae289cab3e800579cb6b5608afb`.
141
+ The historical 0.6.0 process lacks live identity and remains an explicitly
142
+ **partial** point, not a second D0-capable release.
143
+
144
+ ## Retained Carta and populated Bundler regressions
145
+
146
+ `test/artifact_import_smoke.py` consumed the authenticated published Carta packet.
147
+ Bundle hash `aeaa757ee1be19bfe56dc9af8dd1178032929b4a2bec2dad2ebb621b158ad999`
148
+ and the 12-file seal remain intact. The mapping from `payload/output/letter.pdf`
149
+ to `assets/documents/carta.pdf` retains original PDF hash
150
+ `4a661740a18fe1cf75b84aa0d8532511fd105eb5484a5af700e11e8e30828ea4`.
151
+ Integration record hash:
152
+ `995e213e9c5677763809b4d108b84882e1821be58796e0823b8260c22f891a18`.
153
+
154
+ The copied producer and incoming tree were removed, author prose survived
155
+ reimport, and the receiver moved before native/generic checking and a forced PDF
156
+ rebuild. Web/HTTP passed at both locations. Both 11-page PDFs have SHA-256
157
+ `026552039659771d73a26875dc628c5dbccb8da2d4c32bcf0a199929efdd60e2`; the unchanged
158
+ letter appears on page 10. Generic verification confirmed one bundle, one mapping
159
+ and 14 files; the native checker also bound the chapter and rendered page.
160
+
161
+ `test/bundler_transition_smoke.py` passed all four profiles using actual immutable
162
+ 0.4.0, unpatched 0.5.0 and new 0.7.0 MCP references. The known failure was
163
+ reproduced on a separate copy. Each 0.7.0 activation and return to 0.4.0 passed
164
+ two builds and a preview. All six author/cache files kept their hashes, with no
165
+ cache clearing. `test/published_companion_smoke.py` passed with the published
166
+ helper wheels and explicit renderer IDs above. The downloaded CI gem passed
167
+ `scripts/test_gem_build.py:inspect_gem`, including isolated native helper closure.
168
+
169
+ ## CI and retained evidence
170
+
171
+ | Gate | Successful run |
172
+ | --- | --- |
173
+ | Implementation PR CI / CodeQL | [37271200816](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37271200816) / [37271200817](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37271200817) |
174
+ | Core selection PR CI / CodeQL | [37272201763](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37272201763) / [37272201726](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37272201726) |
175
+ | Final artifact source CI / CodeQL | [37272717370](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37272717370) / [37272717381](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37272717381) |
176
+ | Signed candidate image build/test | [37273192732](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37273192732) |
177
+ | Package preparation | [37273195884](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37273195884) |
178
+ | Receipt PR CI / CodeQL | [37371882737](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37371882737) / [37371882776](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37371882776) |
179
+ | Receipt integration CI / CodeQL | [37375549493](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37375549493) / [37375549627](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37375549627) |
180
+ | Tag CI | [37376786630](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37376786630) |
181
+ | Semver image promotion | [37377435437](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37377435437) |
182
+ | PyPI/RubyGems Trusted Publishing | [37377438226](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37377438226) |
183
+ | Post-release PR CI / CodeQL | [37379728022](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37379728022) / [37379728286](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37379728286) |
184
+ | Post-release integration CI / CodeQL | [37380436187](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37380436187) / [37380436184](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37380436184) |
185
+
186
+ Two first-attempt receipt PR jobs were not acquired by hosted runners and ran no
187
+ steps. Their retry passed without source changes; original attempts remain in
188
+ the local evidence. The local source suite passed 608 Python cases, with 30
189
+ optional/environment skips. No failed job was bypassed for merge or publication.
190
+
191
+ Evidence root: `/tmp/opencode/unaltraweb-d0-85/`.
192
+
193
+ | Retained result | SHA-256 |
194
+ | --- | --- |
195
+ | `image-evidence/tested-images.json` | `6c38a1d08511d0cb6554905bc236de58a9f594b255553361d36e6caa4622335d` |
196
+ | `candidate-d0-proof/evidence.json` | `e8140ef8cf47e4329f7691b8a3733377a17269b83c2cf2e9b444c94ce22621f6` |
197
+ | `candidate-carta-proof/evidence.json` | `c1b12f80b1a3c0d31a83fa015f050f0897923ef578ecac9c20f95e4acaa6fca0` |
198
+ | `candidate-bundler-proof/evidence.json` | `8206e1a9e4a88123390dad30ba314d0b2fa00820a5af426164f060050be3ab4d` |
199
+ | `candidate-helpers-proof/evidence.json` | `df994ccd8afaff45a7e3cfa9b6a29b650c9d01d63db2c9c36e59c31834273473` |
200
+ | `published-packages/verified.json` | `e892bbb22c35ea3eef3b2abbbd6351e4a290e76d322c91ac3de6fb212965909f` |
201
+ | `public-images.json` | `f123c2dc096405bde004cfd6cbce206a0f56925f436731e575830cf111d26314` |
202
+ | `post-pin-proof/evidence.json` | `0944b95eec8d0e1103f4895595c77780d27ebc1a3e64626f421b960be8efd144` |
203
+
204
+ ## Public installation and checkout selection
205
+
206
+ A fresh public-wheel venv passed default `prepare`, `check` and real stdio
207
+ `smoke`, with the expected MCP configuration ID. That public installation also
208
+ rechecked the relocated Carta source/rendered mapping. The public gem installed
209
+ in an isolated gem home and activated as 0.7.0 with the runtime's existing Ruby
210
+ dependencies, including Ruby's default gem paths; this is not a network-fresh
211
+ dependency installation claim.
212
+
213
+ The separate `chore/85-pin-published-mcp-0.7.0` source change selects the published
214
+ digest in Make/bootstrap and updates its existing pin regression and current docs.
215
+ It does not alter the published BOM, receipt, tag or artifact bytes. PR 90 and its
216
+ integration passed protected CI; the resulting main checkout was clean and
217
+ synchronized. The later helper-intake clarification is documentation-only.
218
+
219
+ The actual `MCP_CONSUMER_WORKSPACE=… make mcp-stdio` transport started a synthetic
220
+ consumer with live instance `2ebdbd20c32649c48bf309dc469f2c8b`. Tool/resource
221
+ identity agreed, loaded 0.7.0 and the published image matched, and drain/close
222
+ followed by exact retained-tuple inspection confirmed resource release.
223
+ `make mcp-build` and the bootstrap's `--check` selected that public image directly.
224
+
225
+ Post-pin local checks passed 608 Python cases (579 passed, 29 optional skips),
226
+ `make distribution-check workflow-check`, the fresh `make wheel-check`, prose
227
+ checks, `editorial-publication-check` and `git diff --check`. The prose checker
228
+ reported only existing informational sentence-length cues, not blocking findings.
229
+ The source Make targets were exercised with independently owned development names:
230
+
231
+ ```bash
232
+ make mcp-check mcp-smoke \
233
+ MCP_RUNTIME_IMAGE=unaltraweb-d0-85-runtime:post-pin \
234
+ MCP_IMAGE=unaltraweb-d0-85-mcp:post-pin \
235
+ MANUAL_PDF_DEV_IMAGE=unaltraweb-d0-85-pdf:post-pin \
236
+ MCP_SMOKE_MANUAL_PDF_IMAGE=ghcr.io/dosquartsdedocs/unaltraweb-manual-pdf@sha256:0ba267cb87f53ebaca4e31805fe00610cd61fdf97a8d2c3692f4655700dceaed
237
+ make docs-build \
238
+ DOCKER_IMAGE=ghcr.io/dosquartsdedocs/unaltraweb@sha256:ce67aa8fb90899e3c770c4ec8952b760cc8cafb3ed203e8e15266a9623bb3d31
239
+ ```
240
+
241
+ Both commands passed. Development outputs remain separate from the signed
242
+ artifact acceptance and did not replace public semver images or retained caches.
243
+
244
+ ## Remaining gates and scope
245
+
246
+ **The complete coordinator dependency graph is not declared managed-ready.**
247
+ Selected Diavisuals 0.5.0 lacks full serving-process identity. The
248
+ [provider return in Diavisuals 14](https://github.com/dosquartsdedocs/diavisuals/issues/14#issuecomment-5987114002)
249
+ records that **Diavisuals 0.6.0 already published the native correction on
250
+ 2026-10-05 at 02:25:02 UTC**, from `1c2dd8c8138e27bcdb1b0fee1fd51e1d057130e3`.
251
+ Its live mapping is `server_identity` / `diavisuals://server/identity`, with its
252
+ own lifecycle. The open issue tracks acceptance/intake, not missing publication.
253
+
254
+ Unaltraweb 0.7.0 was tested and published with 0.5.0. The outstanding composition
255
+ gate is therefore **owner acceptance of the corrected helper and a new reviewed
256
+ selection**, not another claim that the provider correction has yet to ship.
257
+ The hub cannot widen the published 0.7.0 helper pin from metadata alone. It must
258
+ also observe each independent helper process, prepare feature-specific workers
259
+ and accept the native adapter before activation. This clarification does not
260
+ change the released BOM or count Diavisuals 0.6.0 as tested Web compatibility.
261
+
262
+ The acceptance platform is Linux/amd64 and the claimed backend profile is Docker
263
+ stdio, one connection per instance. Shared HTTP backend reattachment and a fully
264
+ D0-capable two-release roundtrip are not claimed. Arbitrary direct controller
265
+ layouts remain [issue 31](https://github.com/dosquartsdedocs/unaltraweb/issues/31);
266
+ only canonical host and explicitly mapped nested launchers were proved. Retained
267
+ Carta coverage is the published English one-page leaf, not Diapora composition.
268
+ Real manuals, author artifacts and existing client registrations were not migrated.
269
+ Already-running clients retain their loaded runtime until explicit reconnection.
@@ -0,0 +1,185 @@
1
+ # unaltraweb 0.7.1 delivery closeout
2
+
3
+ Published **2026-10-07 12:33:20 UTC**:
4
+ [v0.7.1](https://github.com/dosquartsdedocs/unaltraweb/releases/tag/v0.7.1).
5
+ Owner: [issue 93](https://github.com/dosquartsdedocs/unaltraweb/issues/93).
6
+ This report supersedes the chronological preparation states in
7
+ [deployment-integration-0.7.1.md](deployment-integration-0.7.1.md).
8
+
9
+ ## Delivered behavior
10
+
11
+ The package owns independent immutable core/workflow pins and exact PDF
12
+ digest/producer records. The reusable workflow fetches bounded strict JSON from
13
+ its own defining provider revision, not the consumer checkout. Release readiness
14
+ checks that selected workflow and its records. CI generates a caller, executes
15
+ its actual selected provenance gates and compares retained-document verifier
16
+ bytes across the selected core, controller and PDF worker.
17
+
18
+ The exact issue-86 hotfix is recognized by the original baseline hash and current
19
+ file hash, listed in the update plan and bound to its SHA. Extra local edits
20
+ remain conflicts; existing confinement, staging, CAS and rollback are retained.
21
+ The new/upgrade/hotfix installed acceptance preserves author and generated-cache
22
+ hashes while building and probing actual web/PDF output.
23
+
24
+ The owner explicitly authorized the full 0.7.1 review, integration, gated
25
+ publication and post-release pin. Work used one authoritative checkout and serial
26
+ ordinary branches. Reviews are agent-attributed, not human approval. Published
27
+ earlier artifacts and real consumer selections remain intact.
28
+
29
+ ## Source and receipt lineage
30
+
31
+ | Role | Revision / evidence |
32
+ | --- | --- |
33
+ | Implementation | `2133b8fa2f668e14d603a36d15584eed63e4386a`, [PR 94](https://github.com/dosquartsdedocs/unaltraweb/pull/94) |
34
+ | Initial implementation integration | `2ff27f27c274eb09b2c53ef8bd374f333702d8ee` |
35
+ | Initial candidate source, later rejected as a core tuple | `b7ec1d7a139c65b3b0b88699cdbeb19080f13be1`, [PR 95](https://github.com/dosquartsdedocs/unaltraweb/pull/95) |
36
+ | Worker-record/checker-closure correction | `1ce0e2039e3cb59ed57dbef7961193c7de9ea751`, [PR 96](https://github.com/dosquartsdedocs/unaltraweb/pull/96) |
37
+ | Selected reviewed core and workflow | `3332e0b93933f12317e05f1ce8d38ce80046feab` |
38
+ | Final tuple selection | `18d8d20ba92e397b8341f91207ae05cb6146473b`, [PR 97](https://github.com/dosquartsdedocs/unaltraweb/pull/97) |
39
+ | Final artifact-producing source | `ae5dab1d99804e7f73da82930199c1e2f3c08f61` |
40
+ | Receipt-only child | `24834dcc3e2e03f0bb76b5f18c2fbe346b143455` |
41
+ | Receipt integration / tag target | `1ff25c6956458c3a99436312466e9cc588ed34b9`, [PR 99](https://github.com/dosquartsdedocs/unaltraweb/pull/99) |
42
+ | Annotated tag object | `6e8d7f107a6bfa013a400db0e2a3cb6269d37e38` |
43
+
44
+ The tag target's first parent is exactly the final artifact source; its
45
+ first-parent diff contains only `release-candidates.json`. Native package-run
46
+ authorization/staging, strict distribution/ancestry/publication-ref checks and
47
+ annotated-tag verification passed before publication.
48
+
49
+ [Tagged receipt](https://github.com/dosquartsdedocs/unaltraweb/blob/v0.7.1/release-candidates.json)
50
+ SHA-256: `feda4f19b4133e60b4dae3cf88367ae8089c88077b4ac3fcfccc76d153411f2e`.
51
+
52
+ | Component | Artifact / repository | SHA-256 / OCI index digest |
53
+ | --- | --- | --- |
54
+ | Gem | `unaltraweb-0.7.1.gem` | `6371e502601f970bc30711868b0eb2a29f429e1b78e21ac71ac09696b108baee` |
55
+ | Wheel | `unaltraweb_mcp-0.7.1-py3-none-any.whl` | `cd2a06a2d2e16758c916d640e71210b16285fe3848cc987651801ff324a50a8e` |
56
+ | Base runtime | `ghcr.io/dosquartsdedocs/unaltraweb` | `sha256:af776cfcd79f2778d36e179dccba63792d820d1939fd89187b7af7089e11247a` |
57
+ | MCP | `ghcr.io/dosquartsdedocs/unaltraweb-mcp` | `sha256:6aa20cff86c3891a876e37ba0548fa36f3c5633c9f22ba672e9f50123d677cf6` |
58
+
59
+ Linux/amd64 configuration IDs, distinct from registry index digests:
60
+
61
+ - Runtime: `sha256:7b58b0ad1e7fdfd00087b6702c7002b4a4d393072077def17ff5fb1e198c8cfb`.
62
+ - MCP: `sha256:f0e7915527fa68a67448287e131ec431aeae902b8269856e4e219e67faade146`.
63
+
64
+ Both revision labels identify the final artifact source. Both `0.7.1` and
65
+ `v0.7.1` aliases were inspected anonymously and match the receipt. Public registry
66
+ downloads and downloaded GitHub assets match their hashes. `SHA256SUMS` itself
67
+ has SHA-256 `10938774ef08dabd24cbd7853abd2d72957e75c750418ac8ebe7af7c1ce4553b`.
68
+
69
+ ## The PDF compatibility failure was caught before release
70
+
71
+ The first core candidates reused PDF 0.6.0. Plain manuals passed, but retained
72
+ Carta freshness failed because the verifier closure includes the changed
73
+ `distribution.py` and component schema. The old worker's successful PDF output
74
+ was not accepted as fresh by the new controller. No manifest was edited and no
75
+ freshness check was disabled to force a pass.
76
+
77
+ The signed specialization from the initial image run has the correct 0.7.1
78
+ checker bytes and is now selected by immutable digest:
79
+
80
+ ```text
81
+ ghcr.io/dosquartsdedocs/unaltraweb-manual-pdf@sha256:1bb3f2dafd741e96c28639ec1cc8ccaeb81cbaa73e649f787c0b4ef59997bd4b
82
+ producer: b7ec1d7a139c65b3b0b88699cdbeb19080f13be1
83
+ configuration ID: sha256:618163d3f924439792b2306617bd9612f566c5881166102fa544b4e782d569fa
84
+ native package version: 0.7.1
85
+ ```
86
+
87
+ The final four-component receipt reuses this separately verified digest. The
88
+ later image workflow also built verification PDF
89
+ `sha256:6bc7342a9ad6eb4edfff0d022d7157370e9c9bcba2b87bb80532389cfded62d4`;
90
+ it is not the selected worker and received no coordinated semver promotion.
91
+ The rejected initial core candidate tuple and local diagnostic overlay remain
92
+ clearly separated from final signed-byte acceptance.
93
+
94
+ ## CI, signing and publication
95
+
96
+ | Gate | Successful run |
97
+ | --- | --- |
98
+ | Implementation PR CI / CodeQL | [37526811887](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37526811887) / [37526811747](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37526811747) |
99
+ | Initial signed images / packages | [37530306398](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37530306398) / [37530310332](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37530310332) |
100
+ | Worker-record PR CI / CodeQL | [37534571592](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37534571592) / [37534571578](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37534571578) |
101
+ | Corrected tuple PR CI / CodeQL | [37613153175](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37613153175) / [37613153240](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37613153240) |
102
+ | Final source CI / CodeQL | [37613808731](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37613808731) / [37613808758](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37613808758) |
103
+ | Final signed images / packages | [37614367552](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37614367552) / [37614371507](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37614371507) |
104
+ | Receipt PR CI / CodeQL | [37619948216](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37619948216) / [37619948348](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37619948348) |
105
+ | Receipt integration CI / CodeQL | [37620746600](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37620746600) / [37620746542](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37620746542) |
106
+ | Tag CI | [37620758376](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37620758376) |
107
+ | Image promotion | [37621482487](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37621482487) |
108
+ | PyPI/RubyGems Trusted Publishing | [37621486444](https://github.com/dosquartsdedocs/unaltraweb/actions/runs/37621486444) |
109
+
110
+ Final package artifact `11479132691` has archive digest
111
+ `sha256:648e84e49abc0af299f7caf1b1d50931da42439d0a58ceb0839ebfa99524893b`.
112
+ The signing/test/promotion jobs verified exact digest, source and signer bindings.
113
+ The package publisher authorized the run/source/inventory and published only the
114
+ staged recorded bytes. Promotion reused the tested image manifests.
115
+
116
+ ## Installed final-byte proofs
117
+
118
+ The final downloaded wheel and exact signed MCP, without a derived controller,
119
+ passed all of these gates:
120
+
121
+ - `deployment_integration_smoke.py`: new manual, populated 0.5.0 upgrade and exact
122
+ reviewed hotfix. Author/cache hashes were preserved, plans applied, PDF/web/HTTP
123
+ passed and the actual generated workflow pin was exercised.
124
+ - `artifact_import_smoke.py`: authenticated Carta seal, original PDF, author prose,
125
+ copied-producer retirement, receiver relocation and forced rebuild. Both composed
126
+ PDFs have 11 pages and hash `1b942d003847126cfdbc14630059bb6ede5512751400b3701dab85a7d37b78a7`;
127
+ the unchanged original letter is on page 10. Integration record hash:
128
+ `e80d504b19677ace36c512f758161d3d5663d38d0979ef8c36bc87be765f9e40`.
129
+ - `d0_runtime_smoke.py`: live identity, reconnect/scope, disk drift, busy drain,
130
+ real worker crash recovery, offline/mapping/mismatch checks and actual
131
+ 0.7.0 → 0.7.1 → 0.7.0 rollback with retained state.
132
+ - `bundler_transition_smoke.py`: all four populated 0.4.0 → 0.7.1 → 0.4.0 profiles,
133
+ two builds and a preview per point, unchanged author/cache files and separate
134
+ reproduction of the known unpatched 0.5.0 failure.
135
+ - Published Diavisuals 0.5.0 / Vega 0.5.1 rendering, receipts, tampering and relocation;
136
+ downloaded-gem isolated helper closure. Earlier exact 0.4.0 static receipts retain
137
+ their integrity-checked compatibility point.
138
+
139
+ Evidence root: `/tmp/opencode/unaltraweb-071-93/`.
140
+
141
+ | Result | SHA-256 |
142
+ | --- | --- |
143
+ | `final-integration/evidence.json` | `dcfce02ed10e7567a1030c1c93fc31fb7d75dfc73281fe8f1c4ee6b46038b6da` |
144
+ | `final-carta/evidence.json` | `c456b5e72d72bc224a7416589805c7d80c50d7fafe8747c86cd31ecb782cd308` |
145
+ | `final-d0/evidence.json` | `989603ed0a09fd6af9ca659ffbb824ab46907cb4538d094dcf32e34c8ea77c25` |
146
+ | `final-bundler/evidence.json` | `352fe35a81f36b2b44fbfe92f000d9179053d45f572b37f48485c82dd4c7c949` |
147
+ | `final-helpers/evidence.json` | `df994ccd8afaff45a7e3cfa9b6a29b650c9d01d63db2c9c36e59c31834273473` |
148
+ | `published-packages/verified.json` | `39b322784e5eef0ccde89ad8883e495c66ec9df23213fbe3301fb91862cb2c2c` |
149
+ | `public-images.json` | `6c2f54a877728dabbf39f2f2b0432beb5fe4c50c98769b22e06b6e1c562d7f77` |
150
+ | `post-pin-proof/evidence.json` | `f9168183e859e842b4bc236cca126edc2e9bd5464eb2527450302cc9342121c6` |
151
+
152
+ A fresh public-wheel venv passed default prepare/check/stdio smoke with the exact
153
+ expected configuration ID and rechecked the relocated Carta mapping. The public
154
+ gem installed in an isolated gem home and activated as 0.7.1 using the runtime's
155
+ existing dependency set; this is not a network-fresh dependency installation claim.
156
+
157
+ The actual checkout `MCP_CONSUMER_WORKSPACE=… make mcp-stdio` transport reported
158
+ instance `effcd7bce6cb477da6c49107a5582e02`, loaded 0.7.1 and the expected image.
159
+ Tool/resource identity agreed, the scaffold target selected the reviewed workflow,
160
+ and drain/close followed by exact session inspection proved resource release.
161
+ The post-release pin/report PR and clean-main CI result are recorded in issue 93.
162
+
163
+ The post-pin local suite passed 629 cases (599 passed, 30 optional skips),
164
+ distribution/workflow/fresh-wheel gates, prose/publication-copy checks and
165
+ whitespace checks. `make mcp-check mcp-smoke` used owned
166
+ `unaltraweb-071-93-*:post-pin` development images and the selected public PDF;
167
+ `make docs-build` used the exact published runtime digest. Both passed. These
168
+ development builds are separate from the signed-byte acceptance above.
169
+
170
+ ## Consumer and hub boundaries
171
+
172
+ TIG independently adopted the earlier issue-86 hotfix in
173
+ [geourv/tig#24](https://github.com/geourv/tig/pull/24) and deployed reviewed main
174
+ `f5ddfabe650c95c10a99f3656a7cfc09e885dcbf` in successful run
175
+ [37523692990](https://github.com/geourv/tig/actions/runs/37523692990).
176
+ Its owner verified the public 311-page PDF byte-for-byte against the approved
177
+ copy, SHA-256 `3d58d63b7315099ac3518401415c35f0a0acf4a3f7f41ee6270716f394309bc4`.
178
+ That is hosted proof of its existing 0.5.0/hotfix combination, not a 0.7.1 migration.
179
+
180
+ This release's acceptance covers Linux/amd64 installed web/PDF work and selected
181
+ workflow preflights; real-manual hosted adoption remains per-consumer. The full
182
+ managed helper graph still needs composing-owner acceptance of the published
183
+ Diavisuals 0.6.0 correction; selected rendering compatibility remains 0.5.0.
184
+ gaContExt catalogue/advisory/activation work and deliberate client reconnection
185
+ remain separate. Earlier releases, author data and client registrations are preserved.