Skip to content

Feature: Optional Nuplane package discovery and shell reload integration #142

Closed
4 of 4 issues completed

Description

@sfmskywalker

Provide optional CShells.Nuplane outside Nuplane core. Bridge package assembly discovery and post-load reconciliation to catalog refresh and policy-controlled active-shell reload. Inspect ReloadResult errors, preserve serving generation on refusal, serialize/coalesce work and shut down cleanly. Keep Foundation EF/Attention interpretation in Elsa. Preserve Workbench refresh-only default and Host reload-enabled default. Add solution/pack workflow inclusion. Refine implementation after M1 previews and prove a real package -> catalog -> serving shell path.

Delivery program: elsa-workflows/elsa-foundation#2500
Project: https://github.com/orgs/elsa-workflows/projects/58

Upstream completion prerequisite

  • Nuplane Publish reconciliation completion for committed removals with no applied packages nuplane#109 publishes completion after committed removals even when the applied list is empty. PR110 merged at eb2cf6c2ee1f79dc2c45fb83cc415bbe4856d0d4; owner Publish37777044387 published all8 packages as 0.0.11-preview.99, and main Validate37777197684 passed. Pipeline archives match direct Feedz downloads byte-for-byte; outside-checkout public-package consumers on .NET8/9/10 proved committed removal-to-zero, callback ordering/isolation and the subsequent quiet cycle. Qualification evidence. This closes only the Nuplane event prerequisite: optional adapter implementation still follows merged/published CShells ownership/catalog/build primitives. Final package-to-catalog-to-serving-shell proof must consume the qualified fix; .94 cannot satisfy removal-to-zero. Actual unload/collection remains Foundation #2362 scope. Final Foundation adoption follows final GitHub releases, not an interim .99 pin-only PR.

Recovery trigger

Preserve event-triggered retries: failed observer work remains pending for the next delivered eligible completion. Empty unchanged cycles after final removal emit no callback. Explicit reload/build recovers outstanding catalog freshness at Begin; no background retry timer or automatic sibling recovery is promised. Prove quiet-cycle behavior and both later-event/manual recovery paths.

Delivered upstream scope (2026-10-08)

Before the diagnostics follow-up, the original integration/live-options scope was completed after Task161 delivery: original optional adapter156/Nuplane removal109 qualification remains valid, and live-options161 is now Done/Passed. Product PR162/mainc29b3eb/public169 passed full gates and eight options-policy cases on each actual .NET8/9/10 runtime; allten archives and15 loaded assets were independently verified. Documentation PR163/mainc39f191 and separate170archive audit passed; executableconsumer acceptance remains169, installation-to-serving-shell journey remains166. Allnative children109/156/161 are closed. Foundation2314 stable adoption, startup/readiness143, readability145/2164, unloading2362, safepruning108, finalreleases and actualhosts remain pending. No milestone completion or unavailable reviewer approval is inferred.

Diagnostics correction delivered

CShells164 and Feature142 are CLOSED Done/Passed. Product PR165 merged at99b41baf08cd40fee0323478e02a543549a57621; PR and main Packages37858223289 passed808library+31E2E tests, zero warnings/errors. Root/independent source review, focused47, three target builds and compiled logging-removal mutation8expectedfailures/restored47pass passed. Allten actual-public171 archives were independently audited; actual PackageReference-only171/99 consumer passed sixcases/25checks on each .NET8/9/10 runtime (18scenarioexecutions/75checks/15actuallyloadedDLLs), with root/independent exact-byte/cache/source provenance. Full corrective proof. Docs PR166 merged at66062b1416c97109b3818b218b4e8e2292d8f099; PR and main Packages37859807007 also passed808+31/zero warnings/errors. Allten172 archives separately passed root/independent audit; executable acceptance remains171/99, not172. All16Spec024tasks checked; claim6070509449 released. Allnative Feature142children109/156/161/164 closed. No stable or actual Foundation host acceptance is inferred.

Foundation2314 preparation has resumed. Final stable releases/adoption and the separate program gates remain pending.

Activity

  1. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Root-reviewed design refinement only; #149 remains the single implementation leaf.

    The inactive/failed-first-activation case is now explicit: an eligible Nuplane change is recorded before the no-active guard, then a #147 Begin participant refreshes before the next requested build reads the catalog. Private source/catalog watermarks acknowledge only successful refresh, independently of promotion. Active-shell reload retry stays separate, so a freshly built first shell needs no gratuitous reload. The refresh gate must be released before ReloadActiveAsync, whose Begin path re-enters. No lifecycle acknowledgment map or extra public CShells API is needed.

    A newer change overlapping an already-started build remains outstanding for a subsequent build/eligible observer pass. This does not invalidate in-flight builds or establish package deletion/unloading safety. Keep host enablement/refresh/reload defaults, Elsa refusal and restart/locked policy boundaries. Target exact Nuplane .94 packages/source; no adapter implementation or passed acceptance test is claimed.

    Canonical report and decision D14 are committed locally in Foundation 4c97870ea. #142 remains dependent on reviewed/published primitives; push/PR, external CI/review, preview/adoption and M3 deletion readiness remain pending.

    Registration follow-up at canonical lead commit 8c0553670: exact Nuplane .94 source confirms OnPackagesChanged() creates an INuplaneObserver singleton by implementation type; it does not alias a separately registered concrete singleton. Use explicit observer/build-participant factory aliases to one concrete coordinator, after AutoloadPackages, and #144 concrete sharing for shell-side observer alias identity. Keep the managed-only coordinator non-disposable so copied factory aliases do not transfer borrowed disposal ownership; prove identity and unchanged unrelated observers. No HostContainer capture is required.

    Native dependency #142 -> Feature #145 is now added and read-back verified because deferred freshness uses its pre-catalog Begin seam. #142 remains Blocked; no implementation claim or new active writer.

  2. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Delivery transition: new bounded M2 prerequisite Nuplane valence-works/nuplane#109 is the only active product implementation leaf, native child and blocking release dependency of CShells #142. Spec Kit 029 will use /tmp/hosting-nuplane-removal-completion from clean main 21e2c24fe8070a92ded13f7cc391353f7c6df856; exact claim/scope are on #109.

    Source review confirmed .94/current main can commit removal-to-zero without publishing Reconciled, which loading and both Elsa bridges require. Root approved the minimal existing notification condition: nonempty applied set OR committed removals. Preserve empty idle/failed-only no-event behavior, Changed-before-Reconciled, empty actual payload, failure/degraded accounting and next(). Require causal real pipeline/store tests and mutation/revert before local qualification. This prerequisite can be implemented without unpublished CShells APIs or the M3 admission choice; the CShells adapter itself still awaits released prerequisites. No implementation/test result is claimed yet.

    A separate real-package non-destructive #108 identity probe is complete/root-reviewed and its research claim released. Same state file contended; different state files allowed concurrent real reconciliations with one configured empty install root. This invalidates a per-state-only pruning namespace. The canonical draft now requires shared physical-root authority plus complete persistent active/LKG protection; upgrade participation alone is insufficient. #108 stays Blocked; actual safe pruning remains required.

    Latest canonical Foundation lead commit c9ab1ddc4ec40d9fc9f55a725df9638ba32d2d9d. Five CShells slices remain In Review with remote review/CI/publication pending; their local Release 728+31 tests, nine coherent package archives and .NET8/9/10 core-consumer proof remain unchanged. No milestone is complete. Git/session choice still gates push/PR, shared-root compatibility decision still gates destructive readiness. Program tracking uses Project58, now 19 items; root retains design/integration/QA and Luna High delegate fallback.

  3. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Prerequisite transition: Nuplane valence-works/nuplane#109 is locally qualified at d6eac6e3faacb72b5acfb93c59d2862c340ca3a7 and In Review; implementation claim released. Root complete affected tests passed 799+251+156, and a package-only public-DI consumer passed on actual .NET8/9/10 with persisted empty state before removal completion and a quiet second cycle. Exact proof/boundaries are on #109 and Foundation lead 08dfd98057bd4ee9159fd8e8d6b4d632ce67cf70 in docs/reports/modular-hosting-removal-completion-qualification.md`.

    #142 returns to Blocked on reviewed/published primitives and a released Nuplane preview containing #109. No product implementation claim remains active. Do not treat .94 as the final removal-to-zero dependency; no adapter implementation/adoption result is claimed.

    D14 recovery is now explicit in canonical PRD/decision/roadmap/candidate: retain failed observer work for the next delivered eligible completion. Empty unchanged cycles after final removal remain silent, so they cannot replay it. A user-requested reload/build independently recovers outstanding freshness at Begin; it does not schedule automatic reload or guarantee recovery of every sibling. No background timer is added. Tests must prove quiet-cycle behavior, pending retention, explicit-build freshness recovery and later eligible-event retry. This preserves current recovery scope and does not expand #109 or #2362 unloading ownership.

    Git/session choice still gates push/PR; preview/adoption and M3 admission/deletion proof remain outstanding. No milestone complete.

  4. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Narrow public-DI research claim only (not the Feature #142 implementation leaf): I will build an artifact-only probe under to verify whether a private non-participant shared holder can preserve one root coordinator across observer/build-participant aliases without sharing wholesale. No product checkout changes, no Nuplane store use/mutation, no PR. I will release this research claim when the bounded proof is complete.

  5. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Correction to my preceding claim: the artifact-only probe target is /Users/sipke/.codex-workspaces/artifacts/modular-hosting-2500/adapter-alias-probe. It will not share INuplaneObserver as a whole service type. This remains narrow research only, not the Feature #142 implementation leaf; no product checkout changes, store use/mutation, or PR.

  6. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Task #149 is delivered and publicly qualified. PR #155 merged normally as 94f4b16eda0b12dc3d5e565cf0ecc4bc99b4e1ab; tree f0f72201eaa93cf047ea4fdb1c9b4cd2f4eaadf1 equals reviewedhead90b840. Actual main-push Packages run https://github.com/valence-works/cshells/actions/runs/37801475506 succeeded and published all nine 0.0.30-preview.165 packages to Feedz; NuGet.org was skipped. Exact-head CI and publisher tests passed753 library+31E2E withzero warnings/errors. Root and independent audits verified all-nine pipeline/public byte identity, nuspec/source/version, synchronized dependencies and net8/net9/net10 assets. Preview.164 is pre-runner and was not used as runner evidence.

    The fresh outside-checkout public Feedz consumer passed five behavior groups on actual.NET8.0.10,9.0.9,10.0.8: explicit opt-in/lazy resolution and copied/deduplicated serial targets; deterministic retry scheduling only after InitialPass plus retained safe failure history; startup cancellation with no later target/retry; provisional external generation rejection then committed external satisfaction; explicit Stop fencing later reconciliation. Throwing observers reenter Snapshot safely and do not change outcomes. The helper FakeTimeProvider is a test-only direct dependency fromNuGet.org; the two direct CShells package references restore fromFeedz with no ProjectReference or private-API substitution.

    Root reviewed source and strict shared teardown, then independently recomputed fresh source/cache/archive hashes, NuGet metadata/assets/archive SHA512, exact loaded DLL bytes versus package framework assets, and fullsourceSHA94f4b16 informationalversions. Cleanup releases gates, bounded-joins every owned run/manual task, attempts all per-shell drains and root disposals, aggregates failures and preserves primary errors. Earlier private harness attempts are retained and accurately superseded; they were not treated as public acceptance.

    Detailed evidence is local-only: cshells-published-preview-165/ and cshells-published-runner-consumer/evidence/20261008T153434Z-l4efqv/root-qualification-verification.json in the program artifact directory. Public PR/source/CI/publisher artifacts are linked above. Root QA has no material blocker; causal committed-marker removal failed and exactrestorationpassed. Copilot quota-unavailability and absent Greptile are recorded in the merge gate, not external approval.

    #149 moves Done/Passed and its root delivery claim is released. Feature143/M2 stays open for actual host startup/readiness/consumer adoption. Feature145/Foundation2164 proof, optional CShells.Nuplane, safe pruning, final Nuplane0.0.11/CShells0.0.30 releases and Foundation adoption remain outstanding. No default hosted startup behavior or application policy is claimed by this generic primitive. Next adapter planning/probe is supporting readiness, not a second implementation leaf.

  7. 16 remaining items

  8. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Upstream Feature142 is complete again after Task161 delivery: original optional adapter156/Nuplane removal109 qualification remains valid, and live-options161 is now Done/Passed. Product PR162/mainc29b3eb/public169 passed full gates and eight options-policy cases on each actual .NET8/9/10 runtime; allten archives and15 loaded assets were independently verified. Documentation PR163/mainc39f191 and separate170archive audit passed; executableconsumer acceptance remains169, installation-to-serving-shell journey remains166. Allnative children109/156/161 are closed. Foundation2314 stable adoption, startup/readiness143, readability145/2164, unloading2362, safepruning108, finalreleases and actualhosts remain pending. No milestone completion or unavailable reviewer approval is inferred.

  9. added
    status:doneWork is completed and verified.
    and removed
    status:in-progressWork is actively owned and in progress.
    on Oct 8, 2026
  10. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    The independently reviewed actual-public .169/.99 net10 diagnostic confirmed the catalog-refresh Error/original-exception logging gap. The generic log-and-rethrow correction is now tracked as CShells164, native child of reopened142 and native prerequisite of Foundation2314. It is the sole assigned implementation leaf on org branch024-nuplane-failure-diagnostics. Existing upstream throw identity and Nuplane isolation/retry remain required; no Copilot/Greptile request.

    Foundation2314's three planning status clarifications are root-reviewed, committed/pushed at37b5333a156a1327cfa1d0c5c3a37910cf03e0d3. Its preparation claim6070201520 is released for this dependency wait;2314 is Blocked/Pending, not a competing active writer. Root/independent probe proof is narrow, not corrective-package or actual-host acceptance. Safe pruning's separate owner decision, final Nuplane then CShells releases, stable pins/locks/maps and actual hosts remain outstanding. Goal remains active.

  11. added
    status:in-progressWork is actively owned and in progress.
    and removed
    status:doneWork is completed and verified.
    on Oct 8, 2026
  12. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Organization PR opened: #165, final head f4024e62855fa20ba5e8f35936764e2dd1f06d3c (implementation edbf58283b562e9288fa5986683c0eef4b533dc8, then two task completion marks only). Root source QA passed: full808, focused47, three zero-warning/error target builds, compiled logging-removal mutation8expectedfailures/restored47pass, root and independent source reviews. Detailed evidence: #164 (comment).

    CS164 is In Review / Review Required / Verification Running while normal CI runs. Copilot and Greptile are waived; independent review is the applicable review gate. The issue remains open through resulting-main publication and ten-package actual-public/.NET8/9/10 qualification. Foundation2314 remains Blocked on164; final stable/adoption and the separate Nuplane pruning owner decision remain outstanding. No stable or downstream pin change is made.

  13. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Feature142 is complete after the corrective observer-diagnostics Task164. All native children109/156/161/164 are now closed. Optional adapter ownership, discovery/reload and live-options evidence remains valid; the generic Error/original-exception gap is corrected and qualified through the actual Nuplane dispatcher. Latest executable diagnostic acceptance is public CShells171/Nuplane99 on actual .NET8/9/10; docs-only172 has a separate complete archive audit. See #164 (comment) and its terminal completion record.

    This closes the upstream optional-integration feature. Foundation2314 now resumes preparation; final stable releases/adoption,143readiness,145/2164readability, unloading2362 and safepruning108 remain outstanding. No milestone completion or stable/actual-host acceptance is inferred. Copilot/Greptile are waived; root and independent review passed.

  14. added
    status:doneWork is completed and verified.
    and removed
    status:in-progressWork is actively owned and in progress.
    on Oct 8, 2026
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

    enhancementNew feature or requeststatus:doneWork is completed and verified.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions