From d56b60999b1a3fa568b07db24fb367af014bd23b Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 9 Oct 2026 05:32:28 +0200 Subject: [PATCH] Record returned-generation preview qualification --- specs/025-returned-generation/plan.md | 2 ++ .../025-returned-generation/qualification.md | 19 +++++++++++++++++++ specs/025-returned-generation/spec.md | 2 +- specs/025-returned-generation/tasks.md | 12 ++++++++---- 4 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 specs/025-returned-generation/qualification.md diff --git a/specs/025-returned-generation/plan.md b/specs/025-returned-generation/plan.md index 2604bd0..2dfe158 100644 --- a/specs/025-returned-generation/plan.md +++ b/specs/025-returned-generation/plan.md @@ -3,6 +3,8 @@ **Branch**: `025-returned-generation` | **Date**: 2026-10-09 | **Spec**: [spec.md](spec.md) **Input**: Feature specification from `specs/025-returned-generation/spec.md` (CShells #167) +**Delivery**: Completed through [PR168](https://github.com/valence-works/cshells/pull/168) and public preview `.173`; see [qualification](qualification.md) for exact gates and limitations. + ## Summary Add a nullable scalar returned-generation value to the transient activation attempt and immutable target snapshot. Populate it from the descriptor of the successful shell returned by the runner's own registry call, for built-in and custom registries. Keep `VerifiedGeneration` semantics unchanged, leave existing public constructors unchanged, and ensure external satisfaction does not fabricate a returned value. diff --git a/specs/025-returned-generation/qualification.md b/specs/025-returned-generation/qualification.md new file mode 100644 index 0000000..cb0c78e --- /dev/null +++ b/specs/025-returned-generation/qualification.md @@ -0,0 +1,19 @@ +# Returned Generation Diagnostics Qualification + +[CShells #167](https://github.com/valence-works/cshells/issues/167) is complete. Product [PR168](https://github.com/valence-works/cshells/pull/168) normal squash-merged as `f5bfc0db5ef9440dd777c2dd0d97fbf817f22e2f`; public Feedz preview **0.0.30-preview.173** is the executable acceptance version. [Final issue evidence and claim release](https://github.com/valence-works/cshells/issues/167#issuecomment-6073687376) records root and independent reviews, verification, publication and consumer proof. + +## Verification + +- Production builds for .NET 8/9/10 passed with zero warnings/errors. The full library suite passed 811 tests and E2E passed 31; final focused runner tests passed 24/24. A final bounded-wait-only test adjustment followed the full-suite run and passed in that focused suite; production source was unchanged. +- An unchanged consumer binary compiled against the prechange public abstractions executed the original 9/15-parameter constructors against candidate abstractions on actual .NET 8/9/10. Both compiled capture/projection mutations failed only the intended custom-current row (expected 37, actual null); stale controls passed. Exact source/DLL restoration and a restored focused pass were recorded. +- [Exact-head CI](https://github.com/valence-works/cshells/actions/runs/37878478247) passed for PR head `757abfb4dbcbe4b183abc0aa4da147622f8688fd`. Resulting-main [Packages attempt 2](https://github.com/valence-works/cshells/actions/runs/37878600719/attempts/2) passed build/test/pack and Feedz deployment. NuGet.org deployment was skipped for the preview. +- All ten public archives are byte-identical to pipeline artifacts; nuspec versions/source commits and family dependencies match, and all thirty net8/net9/net10 assets are present. `CShells.Nuplane` alone declares Nuplane `0.0.11-preview.99` dependencies, across all three TFMs. Independent archive recomputation agrees. +- The fresh-cache PackageReference-only consumer passed ten groups and 44 assertions on each actual runtime: .NET 8.0.10, 9.0.9 and 10.0.8 (30 groups/132 assertions total). Six loaded DLLs match the audited public TFM assets, and both cached archives trace to Feedz. Cases include constructor/default-null, built-in/custom success, stale/failure/call cancellation, cancellation during a gated observer after successful return, external-only and late current/stale results, and terminal history after actual reload. Independent review corroborates raw reports, source hashes and package provenance. + +## Retained failures and boundaries + +Publisher attempt 1 failed an existing weak-probe test (810/811 passed; expected count 0, collected sentinel -1); one failed-job rerun passed. Its cause is not claimed fixed. Consumer attempt 1 failed restore on a stale HTTP index; attempt 2 restored but failed a harness-only collection-interface compile binding. Attempt 3 used an isolated HTTP cache and corrected `IServiceCollection` declaration, built with zero warnings/errors and passed all runtime cases. An early source review overlapped a deliberate mutation; its raw record is excluded from acceptance and superseded by a fresh restored-source review. + +Raw logs, TRX, hashes, archives and independent/root addenda are retained in session artifact `cshells-167-returned-generation/` (`root-qa`, `feedz-audit`, `public-consumer-execution-3`). The consumer qualification JSON SHA-256 is `d35d448ecdddf60cae523b05268b36e5411a0423dffafe345577fb0ffda50d7a`. + +Copilot and Greptile requests were waived by the owner; neither is represented as approving the change. This qualifies the bounded diagnostic feature and preview consumer. Final stable releases, pruning admission/safety, and Foundation host adoption/readiness remain separate program work. A later documentation-only publication does not replace this immutable `.173` executable acceptance. diff --git a/specs/025-returned-generation/spec.md b/specs/025-returned-generation/spec.md index 4c6fe9e..07e6e62 100644 --- a/specs/025-returned-generation/spec.md +++ b/specs/025-returned-generation/spec.md @@ -2,7 +2,7 @@ **Feature Branch**: `025-returned-generation` **Created**: 2026-10-09 -**Status**: In progress — local implementation qualified; review, hosted gates and public-package acceptance pending +**Status**: Implemented and qualified in public preview `0.0.30-preview.173` ([qualification](qualification.md)); stable program releases and Foundation adoption remain separate. **Input**: GitHub issue #167, “Expose the returned generation in activation-run diagnostics” ## User Scenarios & Testing diff --git a/specs/025-returned-generation/tasks.md b/specs/025-returned-generation/tasks.md index 7ac6b6b..e5af87f 100644 --- a/specs/025-returned-generation/tasks.md +++ b/specs/025-returned-generation/tasks.md @@ -26,10 +26,10 @@ - [x] T010 [US1] Compile a small compatibility consumer against the pre-change `CShells.Abstractions` binary from the base commit, then run the unchanged consumer with the candidate `CShells.Abstractions` binary substituted; prove both existing activation-result constructors bind and execute, and retain source/package provenance and logs under `artifacts/modular-hosting-2500/cshells-167/` in the session-owned artifact workspace. - [x] T011 [US1] Perform the compiled reversible mutation from `specs/025-returned-generation/quickstart.md`: remove only the successful returned-generation assignment, prove the causal returned-generation test fails, restore byte-identical source, rebuild, and rerun the focused suite successfully; retain mutation and restoration evidence. - [x] T012 [US1] Complete an independent exact-source review of the candidate diff and test evidence before opening an organization pull request; record the reviewed commit and findings under `artifacts/modular-hosting-2500/cshells-167/` in the session-owned artifact workspace. -- [ ] T013 [US1] Open the normal organization pull request after local gates and exact-source review pass; require all current-head hosted checks and applicable review gates to pass before merge. -- [ ] T014 [US1] After normal merge, verify resulting-main checks and the normal preview-package publication; audit the complete published CShells family for source commit, package/version metadata, dependency versions, TFMs, and archive/DLL identity under `artifacts/modular-hosting-2500/cshells-167/` in the session-owned artifact workspace. -- [ ] T015 [US1] Build and run a fresh-cache PackageReference-only consumer against the exact published preview package family on .NET 8, 9, and 10; verify successful built-in/custom returned-generation values, `NotCurrent`/failure/cancellation null values, external-only and in-flight external-satisfaction behavior, later-generation stability, and existing verified-generation semantics; retain loaded-assembly/archive/cache provenance and logs under `artifacts/modular-hosting-2500/cshells-167/` in the session-owned artifact workspace. -- [ ] T016 [US1] Post the required issue evidence for implementation, review, merge, resulting-main checks, and public-package qualification to CShells #167, then release the issue claim only after the task is complete. +- [x] T013 [US1] Open the normal organization pull request after local gates and exact-source review pass; require all current-head hosted checks and applicable review gates to pass before merge. +- [x] T014 [US1] After normal merge, verify resulting-main checks and the normal preview-package publication; audit the complete published CShells family for source commit, package/version metadata, dependency versions, TFMs, and archive/DLL identity under `artifacts/modular-hosting-2500/cshells-167/` in the session-owned artifact workspace. +- [x] T015 [US1] Build and run a fresh-cache PackageReference-only consumer against the exact published preview package family on .NET 8, 9, and 10; verify successful built-in/custom returned-generation values, `NotCurrent`/failure/cancellation null values, external-only and in-flight external-satisfaction behavior, later-generation stability, and existing verified-generation semantics; retain loaded-assembly/archive/cache provenance and logs under `artifacts/modular-hosting-2500/cshells-167/` in the session-owned artifact workspace. +- [x] T016 [US1] Post the required issue evidence for implementation, review, merge, resulting-main checks, and public-package qualification to CShells #167, then release the issue claim only after the task is complete. ## Dependencies & Execution Order @@ -58,3 +58,7 @@ - Do not change public constructor parameter lists, lifecycle settlement, retry policy, cancellation, external reconciliation, or readiness behavior. - Test assertions must distinguish the external target's existing `VerifiedGeneration` from a later successful in-flight call's `ReturnedGeneration`. - No new project, dependency, package pin, or generated-map update is expected. + +## Delivery record + +All tasks completed. [Qualification](qualification.md) records the exact product/main/public-package acceptance. This completion record adds no production change or stable-release acceptance.