Skip to content

fix: apply current Nuplane options per completion - #162

Merged
sfmskywalker merged 4 commits into
mainfrom
023-live-nuplane-options
Oct 8, 2026
Merged

sfmskywalker merged 4 commits into
mainfrom
023-live-nuplane-options

Conversation

@sfmskywalker

@sfmskywalker sfmskywalker commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

The root-owned Nuplane integration coordinator captured options at construction, so reloading configuration did not change refresh/reload policy for later package completions. It now reads IOptionsMonitor.CurrentValue once per eligible completion and copies the four policy values before any side effects. An admitted operation keeps that policy through refresh, reload, and result reporting; later deliveries see current settings.

Disabled deliveries record no new epochs, while existing freshness and failed reload work survive disabled or reload-off periods. Build participants consume recorded freshness independently of observer settings. Undefined triggers and monitor/validation errors fail before recording work. Normal binding, fluent configuration, and dependency-aware configuration remain supported; direct IOptions-only replacement is documented as unsupported.

Related to #161, child of #142; program Foundation #2500. Keep #161 open until public-package acceptance. Scope is the existing optional adapter, tests, documentation, and official Spec023. The required CI run exposed an existing drain identity test race; its test-only correction holds the operation open while concurrent callers compare its identity, without changing lifecycle product code. Foundation adoption and stable releases remain separate.

Validation on product/test source 8cb10fba9e58c68040da993a9e634fad02f4a372 (later commits record validation and correct the existing drain test):

  • Root and independent source review passed.
  • Focused adapter tests: 34 passed; full library suite: 795 passed; zero failures/skips.
  • Adapter Release build: net8.0/net9.0/net10.0, zero warnings/errors.
  • Drain-test correction at d2f1000d7e2a87b8731a6a187a8288320ee91f75: root/independent delta review and all five affected tests passed. First CI run built with zero warnings/errors, passed 794/795 library plus 31/31 end-to-end, and failed only this previously unblocked drain test. Corrected-head hosted CI remains required.
  • Compiled startup-capture mutation: configuration-reload regression fails at the expected shell-identity assertion; byte-identical restoration passes (one executed test each).

Hosted full-solution CI, normal main publication, all ten public archive audits, and an outside-checkout fresh-cache .NET8/9/10 consumer remain required. Copilot was not requested; Greptile is optional under the maintainer's D15 decision.

@sfmskywalker

Copy link
Copy Markdown
Collaborator Author

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.

@sfmskywalker

Copy link
Copy Markdown
Collaborator Author

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.

@sfmskywalker

Copy link
Copy Markdown
Collaborator Author

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.

@sfmskywalker

Copy link
Copy Markdown
Collaborator Author

Green source/PR gate at d2f1000d7e2a87b8731a6a187a8288320ee91f75: CI37844568005 passed the full solution build (all package targets; zero warnings/errors),795/795 library and31/31 end-to-end tests. Root/independent product review, focused34/34, three-target adapter build, causal freeze-options mutation and byte-identical restoration, plus independent test-only drain correction review and5/5 local affected tests all passed. Current review/inline/thread surfaces contain no outstanding comments; merge state CLEAN. No Copilot request or unavailable external approval claimed (D15). Normal owner-branch squash merge is authorized. Task161 stays open until resulting-main Packages, complete public-family audit, and fresh outside-checkout three-runtime options consumer pass.

@sfmskywalker
sfmskywalker merged commit c29b3eb into main Oct 8, 2026
1 check passed
@sfmskywalker
sfmskywalker deleted the 023-live-nuplane-options branch October 8, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant