Skip to content

Task: Observe live Nuplane integration options per delivered completion #161

Closed

Description

@sfmskywalker

Problem and outcome

Foundation #2314 must preserve the current hosts’ runtime ReloadOnPackageChange behavior while replacing duplicated observers. Current CShells.Nuplane captures IOptions<NuplaneIntegrationOptions>.Value once in its singleton constructor. A public .167 probe on net10 confirmed normal configuration reload changes IOptionsMonitor.CurrentValue.AutoReload false→true while the actual adapter still refreshes twice and performs zero automatic reloads. This is a bounded public-interface/doubles counterexample, not complete-host or store proof.

Use standard IOptionsMonitor<NuplaneIntegrationOptions> in the existing optional adapter and capture one operation policy per eligible delivered completion. Preserve defaults and host ownership; no second Elsa observer/coordinator or CShells/Nuplane-core behavior.

Acceptance

  • Copy Enabled, RefreshTrigger, AutoReload and OnReloadResults values at entry before awaits/epoch mutations; current work uses those values through reload/reporting. Runtime updates apply to later deliveries and do not cancel admitted work.
  • Disabled observer work records no new request and discards no pending epochs. AutoReload=false permits freshness but pauses retained automatic promotion/retry; a later eligible enabled delivery can resume. Begin consumes already-recorded catalog freshness independently of options and never activates/reports. Preserve gates, captured epoch acknowledgements, reentry and quiet-empty/no-timer behavior.
  • Undefined refresh-trigger/monitor-validation errors fail explicitly before epoch work. Document normal Configure/AddOptions().Configure/Bind or explicit monitor configuration; direct IOptions-only replacement no longer supplies this internal coordinator. No dual-source precedence/shim/new public flag or dependency.
  • Deterministic tests cover reloadable settings across callbacks, static/dependency-aware configuration, mid-refresh option/callback changes, disabled pending freshness/Begin, auto-reload-off retained failure/retry, invalid/throwing options with no state advancement, and existing cancellation/epoch/alias/provider regressions. Preserve existing subjects/assertions and bounded cleanup.
  • Root and independent source review, focused adapter tests, full required owner CI/three-framework builds, a compiled freeze-options mutation/restoration proof, normal org PR/merge/main, complete ten-package public audit and PackageReference-only dynamic-options consumer on actual .NET8/9/10 must pass before closure.

Boundaries and dependencies

Native child of CShells Feature #142; delivered #156 is the prerequisite. This discovered adoption prerequisite reopens the Feature without invalidating its earlier .166 adapter qualification. Foundation #2314 final source/pin/lock/map/actual-host acceptance still waits for Nuplane then CShells stable releases. #143 startup/readiness, #2164 readability, #2354 composition, #2362 unload and #108 safe pruning remain separate. No store mutation, pin bump, stable release or new background worker.

Program elsa-workflows/elsa-foundation#2500; Project58 https://github.com/orgs/elsa-workflows/projects/58. D6 requires behavior preservation; D15 disables Copilot requests and makes Greptile optional, retaining root/independent self-review and automated/behavioral gates. Official Spec Kit spec→plan→tasks precedes implementation. Root owns integration/QA.

Activity

  1. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Implementation started / claim: root owns Task161 in /tmp/hosting-cshells-settled-readiness, organization branch 023-live-nuplane-options, based on actual main 353f9e37db0607d9fb1540e139bce02aecf14e16. Sole active implementation leaf. Scope is live options in existing optional CShells.Nuplane, immutable per-delivery policy, deterministic regression tests/docs, official Spec Kit before product, root plus independent review and full required publication/public-consumer qualification. The actual public .167 counterexample and provenance audit passed; requirements gate passes with no owner ambiguity for this leaf. Enabled=false records no new epochs and preserves pending epochs. Foundation pins/host adoption, stable releases, startup/readability/unload and safe pruning remain separate. No Copilot request; Greptile optional per owner. Root retains integration and QA.

  2. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Official Spec Kit specification → plan → tasks is root-reviewed and committed before product as 3c1d8d1785ff239b13a8c7656a618b044ea7d4f7 on 023-live-nuplane-options, based on actual main353f9e3. Eight feature artifacts plus active-path/context metadata; 13 relative link targets, completed requirements checklist, 10 executable tasks and staged diff check passed. Root resolved monitor-error semantics and public trigger wording and removed a broken outside-repository link/unused helper behavior. Product implementation now delegated in the claimed sole-writer checkout; root retains independent review/integration/build/mutation/publication/public-consumer QA. No product code, test run or package acceptance is claimed by this specification checkpoint.

  3. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    PR opened: #162 on organization branch 023-live-nuplane-options, reviewed head c65d18a3d55d2d26fddc60485d4ff52e906f40fe. Product/test source equals independently reviewed 8cb10fb; the last commit changes validation records only. Root/independent source review passed; focused 34/34 and full library 795/795 passed with zero failures/skips, and adapter Release net8/net9/net10 builds passed with zero warnings/errors. Compiled frozen-options mutation executed one test and failed at the intended shell-identity assertion; byte-identical restoration executed/passed one. Official Spec023 T001–T009 are complete, T010 remains open. Hosted full-solution CI and actual public package publication/audit/three-runtime consumer are running or pending, so this task is not closed and public acceptance is not yet claimed. Copilot was not requested; Greptile is optional under D15.

  4. added
    status:in-reviewImplementation awaiting review and release qualification
    and removed
    status:in-progressWork is actively owned and in progress.
    on Oct 8, 2026
  5. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Review round 1: CI37843878579 failed one existing concurrent-drain test (794/795 library passed;31/31 end-to-end passed; build zero warnings/errors). All adapter cases passed. Source diagnosis: the old test issues synchronous LINQ calls with no drain handler barrier, so a drain can complete and release its pointer before subsequent calls; it then asserts identity across completed, separate operations. Shell.PublishedDrain explicitly releases completed operations, matching established teardown retention policy. Root is correcting this required test to hold the existing blocking drain fixture while concurrent callers observe the same in-flight operation, with no lifecycle product change. Scope extension is test-only CI stabilization within PR162; no merge or gate bypass. Verification Failed until corrected exact-head checks pass. Copilot not requested.

  6. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Review round 2: pushed d2f1000d7e2a87b8731a6a187a8288320ee91f75. The only source delta is the existing concurrent-drain test: reuse the blocking fixture, release16 callers together, compare the retained in-flight operation, then release/join with primary and cleanup failures preserved. Root/independent delta review passed and all5 affected tests passed (zero failed/skipped). Adapter product source is byte-identical to reviewed/tested/mutated8cb10fb. Corrected-head hosted CI is running; public-package acceptance stays pending. No lifecycle product behavior changed and no Copilot request.

  7. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Normally squash-merged PR162 as c29b3eb86e3e68fb18003d0604bddb1f7314d8e3; full resulting tree equals reviewed d2f1000d7e2a87b8731a6a187a8288320ee91f75. Current-head CI37844568005 passed795 library+31 end-to-end and all-target solution build, with zero warnings/errors. Root/independent source and test-delta reviews and local causal mutation gates passed. Resulting-main Packages37844769622 is running. Task161 remains open / InReview / verificationRunning until actual public ten-package archive audit and fresh-cache net8/net9/net10 options consumer pass. Claim remains owned through acceptance. No stable release or Foundation source/pin adoption is claimed.

  8. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Actual public-package qualification passed for Task161. PR162 normally merged as c29b3eb86e3e68fb18003d0604bddb1f7314d8e3, tree-identical to reviewed d2f1000. PR CI37844568005 and main Packages37844769622 passed795 library+31 end-to-end tests and all-target Release builds, zero warnings/errors. Main published all ten 0.0.30-preview.169 packages to Feedz; NuGet.org preview deployment was skipped.

    Root downloaded all ten public archives and verified byte identity with owner artifacts, exact source/version, family dependencies and net8/net9/net10 assets; no Nuplane dependency leaked outside the adapter. Root and independent review verified the fresh-cache, outside-checkout PackageReference-only consumer: restore/build plus three runs exited0, build had zero warnings/errors, and all eight cases passed on each actual .NET8.0.10/9.0.9/10.0.8 runtime. All15 loaded package assets match the exact public DLL bytes/hash, informational commits, cache archive/SHA512 and Feedz source; reviewed/copied consumer source and complete-family audit hashes match.

    Cases: defaults; static/dependency-aware configuration; reload toggle without invented work; disabled deliveries recording no epoch; retained freshness consumed by Begin while disabled; failed reload paused/resumed without rescanning; in-flight copied settings/callback with later updates; undefined-trigger rejection with no state advancement. Required source/mutation gates also passed:34 focused,795 full library, three-framework build, compiled frozen-options one-test failure at intended shell identity assertion and byte-identical restoration one-test pass. Independent source/evidence review found no material blocker; the existing concurrent-drain test race was corrected without lifecycle product changes.

    Evidence is local-only under the program artifacts cshells-published-preview-169/, cshells-161-public-consumer-0.0.30-preview.169/, cshells-161-source-qualification/, and cshells-161-mutation-proof/; owner workflow artifacts and links above are public records. Spec023 T010 documentation is being committed in a separate organization PR before final closure/claim release. This is public adapter options-policy proof through synthetic deliveries/doubles; actual Nuplane installation-to-serving-shell remains separately qualified at .166. Stable releases, actual Foundation #2314/#2164/Feature143 adoption, readability/unload and safe pruning are not completed. No Copilot request or unavailable external approval claimed (D15).

  9. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Public qualification is recorded in documentation-only organization PR #163 at reviewed head fc9d766. Root and independent review passed; T010 records actual public .169 evidence and its limits, with no claim for a later executable version. Required PR/main gates and the documentation publication audit remain before final task closure and claim release. Product/test bytes are unchanged from accepted main c29b3eb.

  10. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Documentation PR163 merged normally as c39f191, full tree equal to reviewed fc9d766 and unchanged product/tests from accepted .169. Required PR CI37845831334 passed795+31. Main Packages37846015304 attempt1 failed only the existing repeated collectible-generation GC assertion (794/795 library;31/31 end-to-end; build zero warnings/errors). It stopped before packing/publishing; no .170 archive is claimed. Root retained failed logs and is rerunning the full unchanged workflow to distinguish intermittent collection timing from a repeatable retention defect. Task161 remains open, claim retained, verificationRunning; no gate bypass or unload-safety claim.

  11. sfmskywalker commented on Oct 8, 2026

    @sfmskywalker
    CollaboratorAuthor

    Task161 delivery is complete; claim released. Product PR162/main c29b3eb and public .169 qualification passed root/independent source review, hosted795 library+31 end-to-end, three-framework builds, compiled freeze-options failure/byte-identical restored pass, complete ten-package archive audit, and eight options cases on each actual .NET8/9/10 runtime with all15 loaded assets/provenance verified. Public acceptance.

    Documentation PR163 merged normally as c39f191bed88ff7c6153125e83bf83d9d9b393d3, tree-equal reviewed fc9d766; product/tests equal accepted .169. PR CI37845831334 passed795+31. Main Packages37846015304 attempt2 passed795+31, zero build warnings/errors, and published all ten .170 archives; root/independent archive audit matched exact source/version/dependencies/frameworks and owner bytes. Attempt1's collectible-context assertion failure is preserved and not represented as passed or fixed; the unchanged full rerun passed. No .170 executable consumer run is claimed. Spec023 T001–T010 are recorded complete.

    Close Done/Passed for this upstream live-options scope only. Foundation2314 can adopt one upstream observer/provider/coordinator with live host-specific options after stable releases. Feature143 startup/readiness, #2164 readability, #2362 unloading, safe pruning, final Nuplane/CShells releases and actual Foundation Host/Workbench adoption remain open. No Copilot request; Greptile optional; no unavailable external approval claimed under D15.

  12. added
    status:doneWork is completed and verified.
    and removed
    status:in-reviewImplementation awaiting review and release qualification
    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

    status: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