Skip to content

Expose the returned generation in activation-run diagnostics #167

Closed

Description

@sfmskywalker

Problem

Foundation startup-runner adoption found that Workbench currently records the generation from the IShell returned by GetOrActivateAsync. The shared runner accepts a successful custom shell under its stable-return/current-reference contract, but its attempt and target snapshot expose only VerifiedGeneration, intentionally null for custom shells. A later GetActive lookup can race to a different generation and cannot preserve the successful call identity.

Scope

Add safe scalar metadata for the descriptor generation of a successfully returned current shell on the transient attempt and immutable target snapshot, for built-in and custom shells. Preserve VerifiedGeneration's existing concrete committed-shell meaning and null custom sentinel. Do not retain shell/provider references, alter success/current verification, external reconciliation, routing or optional settled-current readiness policy. Preserve existing constructor signatures/binary compatibility when adding public metadata.

Acceptance

  • Success reports the exact returned descriptor generation for built-in and custom shells; NotCurrent, failed and cancelled results do not fabricate a successful return generation.
  • Existing VerifiedGeneration assertions and semantics remain unchanged, including custom null and concrete committed/external settlement behavior.
  • Terminal snapshot metadata remains tied to the successful attempt through a controlled later-reload race; externally satisfied recovery without a returned success is distinguished explicitly.
  • Existing public constructors remain usable with their original signatures; new metadata is safe scalar state with documented meaning.
  • Official spec/plan/tasks, independent/root review, affected and full repository tests, compiled mutation/restoration, exact-head hosted gates, publication and actual public-package consumer proof pass on .NET8/9/10 before closure.

Child of #143. Delivery program: elsa-workflows/elsa-foundation#2500 ; Foundation adoption feature: elsa-workflows/elsa-foundation#2509 . This is a bounded general-purpose diagnostic prerequisite discovered during consumer adoption. No Elsa policy dependency or stable-release completion is implied. Copilot/Greptile requests are waived by the owner; independent review and other gates remain required.

Activity

  1. sfmskywalker commented on Oct 9, 2026

    @sfmskywalker
    CollaboratorAuthor

    Claiming #167 on organization branch 025-returned-generation, worktree /tmp/hosting-cshells-returned-generation, based on current main 66062b1.

    Scope: official Spec Kit requirements/design/task preparation, then reviewed additive returned-generation diagnostics for successful built-in/custom activation attempts. Preserve VerifiedGeneration, constructor binary signatures, settlement/current identity and external reconciliation. No readiness-policy change, Elsa dependency, runtime pin adoption or stable release. Existing parent #143 and open PRs/comments were checked; no competing scope found. Root retains integration and QA. Independent preparation review precedes source implementation, and exact test/mutation/publication evidence precedes completion. Copilot/Greptile remain waived; no requests made.

  2. sfmskywalker commented on Oct 9, 2026

    @sfmskywalker
    CollaboratorAuthor

    Requirements/design review is complete for Spec025 on 025-returned-generation, base 66062b1. Independent source-backed preparation review found no core API blocker. Root accepted the amended plan: additive ReturnedGeneration preserves VerifiedGeneration and public constructor signatures, distinguishes external-only satisfaction from a late successful own return, and captures only safe scalar identity from the accepted returned object.

    Review evidence gaps are now explicit tasks: exact constructor reflection and a prechange-compiled binary consumer, full library/E2E plus all-target production builds, compiled mutation/restoration, current-head/resulting-main gates, complete published family audit and PackageReference-only .NET8/9/10 consumer proof. No test-first failing run is invented as a requirement. The prechange public-package binary consumer is being prepared; its first restore failed due inherited source mapping, retained as an infrastructure/setup failure and corrected through an explicit isolated NuGet configuration.

    Bounded source implementation starts now for the two result properties, existing attempt/snapshot projection, focused tests and API docs. Root retains final source review, serial heavy verification and delivery; no source/test/publication acceptance is claimed yet. Copilot/Greptile requests remain waived.

  3. sfmskywalker commented on Oct 9, 2026

    @sfmskywalker
    CollaboratorAuthor

    Independent source/evidence review and root self-review passed; the missing successful-return/observer-gated cancellation regression is now covered. Ready organization PR #168 is open at 757abfb4dbcbe4b183abc0aa4da147622f8688fd, branch 025-returned-generation.

    Local evidence: production builds for .NET8/9/10 (zero warnings/errors), 811 library tests, 31 E2E tests, final frozen focused runner suite24/24. Both compiled capture/projection mutations fail only the intended custom-current row, with stale control passing; exact product source/DLL restoration and restored focused pass are retained. The unchanged prechange binary client executes both old constructors against candidate abstractions on actual .NET8/9/10. The final bounded-wait-only test edit was followed by focused24/24; production source is unchanged from full gates.

    All raw logs, TRX, source/binary hashes and independent/root review addenda are retained under the session artifact cshells-167-returned-generation/root-qa. The early independent snapshot accidentally overlapped the deliberate projection mutation; it is preserved as history and excluded from acceptance, superseded by a fresh restored-source review. No external reviewer approval is claimed; Copilot/Greptile requests remain waived.

    State: In review / review required / verification running. Exact-head hosted checks, fresh comment/thread guard and normal merge are next. #167 remains open through resulting-main preview publication, full-family public archive audit and fresh-cache public consumer on all three runtimes; the consumer source is prepared but has not run. Stable releases and Foundation startup adoption remain separate pending gates.

  4. sfmskywalker commented on Oct 9, 2026

    @sfmskywalker
    CollaboratorAuthor

    PR #168 normal squash-merged as f5bfc0db5ef9440dd777c2dd0d97fbf817f22e2f after exact-head CI and independent/root review. Fresh review/comment/thread readback was clear; no bypass, fork or external-review approval was used. Premerge gate.

    Verification continues in the resulting-main Packages run. Public preview version will be read from that publisher's actual run/artifacts. The prepared ten-case consumer must then pass against the audited public packages on .NET8/9/10. #167 and its claim remain open; no stable or downstream adoption completion is claimed.

  5. sfmskywalker commented on Oct 9, 2026

    @sfmskywalker
    CollaboratorAuthor

    Returned-generation diagnostics are delivered through PR168, normal squash main f5bfc0db5ef9440dd777c2dd0d97fbf817f22e2f, and public Feedz preview 0.0.30-preview.173. Exact-head CI and resulting-main Packages attempt2 passed; build/test/pack and Feedz deployment succeeded. NuGet.org deployment is correctly skipped for a preview, so this is not the final stable release.

    Root and independent source/evidence review passed. ReturnedGeneration is captured only for an accepted current own return, including custom registries; original constructor signatures and VerifiedGeneration behavior remain unchanged. Local all-TFM production builds passed with zero warnings/errors, 811 library tests and31 E2E tests passed, final focused suite24/24 passed, unchanged prechange binary clients executed both old constructors on actual .NET8/9/10, and two compiled capture/projection mutations failed only the intended current case with stale control passing before exact restoration. The added observer-gated cancellation test verifies successful return metadata survives cancellation of InitialPass.

    Publication proof: all ten pipeline/public archives are byte-identical, every nuspec version/source commit matches .173/f5bfc0d, all thirty net8/net9/net10 library assets exist, family dependencies match, and CShells.Nuplane alone has Nuplane0.0.11-preview.99 dependencies across all three TFMs. Independent archive recomputation agrees with the root audit.

    Fresh-cache, PackageReference-only consumer qualification passed on actual .NET8.0.10,9.0.9,10.0.8: ten scenario groups and44 assertions per runtime (30groups/132assertions), with all six loaded CShells DLLs byte-identical to audited public assets and both cached archives traced to the public Feedz source. Cases cover old constructors/default-null, built-in/custom current success, stale/failure/call cancellation, cancellation during an observer after successful return, external-only and late current/stale results, and terminal history after actual reload. No project/source references or internal API access were used. Independent review corroborates raw results and provenance.

    Failures remain visible: publisher attempt1 passed810/811 library tests and failed an existing weak-probe assertion (expected0, collected sentinel-1); one rerun passed, and no claim is made that its cause was fixed. Consumer attempt1 failed restore on a stale HTTP version index; attempt2 restored but failed a harness-only ServiceCollection.Add compile binding. Attempt3 uses an isolated HTTP cache and IServiceCollection declaration, builds with zero warnings/errors and passes all runtime cases. The earlier independent snapshot overlapped a deliberate mutation; preserved raw history is excluded from acceptance in favor of a fresh restored-source addendum. No failed/skipped check is represented as passed.

    Raw inputs, logs, TRX, archive/cache/loaded-DLL identities, mutation/ABI evidence and independent/root reviews are retained under session artifact cshells-167-returned-generation/, especially root-qa, feedz-audit and public-consumer-execution-3/qualified.json (SHA256 d35d448ecdddf60cae523b05268b36e5411a0423dffafe345577fb0ffda50d7a). Copilot/Greptile requests remained waived; no approval from either is claimed.

    #167 acceptance is complete: close Done/Not ready/Passed and release this worktree claim. Final stable releases, M3 pruning admission/safety and Foundation downstream startup/adoption/readiness remain tracked separately under the delivery program. Spec025 completion bookkeeping will follow in a documentation-only organization PR; executable acceptance remains the immutable .173 product publication.

  6. sfmskywalker commented on Oct 9, 2026

    @sfmskywalker
    CollaboratorAuthor

    Documentation follow-up PR169 merged normally as c596ca2b0c6cd3deb069db4071adc132c954731d, after exact-head CI and independent/root documentation review. Its four Spec025 files record completed acceptance; production, tests and dependencies are unchanged from the qualified product commit.

    Resulting-main Packages37880093172 succeeded and published the actual documentation preview 0.0.30-preview.174. Root and independent audits verified all ten public archives against pipeline bytes, source/version/family dependencies, 30 framework assets and the adapter-only Nuplane .99 boundary. NuGet.org publication was correctly skipped for this preview.

    Executable returned-generation consumer acceptance remains the independently qualified public .173 run linked above. No .174 consumer rerun, stable release or Foundation host adoption is claimed. #167 remains Done/Passed with its claim released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions