Skip to content

Prepare v2.0.1 official release - #20

Merged
HadenSmith merged 254 commits into
mainfrom
documentation-verification-updates
Oct 8, 2026
Merged

HadenSmith merged 254 commits into
mainfrom
documentation-verification-updates

Conversation

@HadenSmith

Copy link
Copy Markdown
Contributor

Summary

Prepare RMC-BestFit and the RMC.BestFit model package for v2.0.1, integrating the release branch and plugin preparation changes.

  • Synchronize application, assembly, project, and NuGet metadata at 2.0.1; build against published RMC.Numerics 2.2.0 by default and pin WPF Framework packages to 1.0.5.
  • Include IntelliSense XML documentation in the model package and generalize release workflow version checks.
  • Add four bestfit-frequency 0.3.2 distributions: standalone skill, OpenAI marketplace, direct OpenAI plugin, and Claude plugin, with checksum sidecars and permanent v2.0.1 API source instructions.
  • Add Windows/Linux package validation and packaged API smoke checks. Plugin assets attach after a release is published and its validation succeeds.
  • Correct the pending updater note to reflect the pinned framework dependency; live updater acceptance remains an owner-side release check.

Release Significance

  • Correct flood-frequency plotting positions, low-outlier handling, Bulletin 17C uncertainty diagnostics and GMM quantile-variance reporting, mixture weights, composite/coincident-frequency posterior sampling, and seasonal point-process behavior.
  • Correct information criteria, profile likelihoods, covariance failure reporting, rating-curve likelihoods, and spatial GEV likelihood, prediction, and uncertainty handling.
  • Repair time-series transform, differencing, conditioning, forecasting, and training-window behavior; preserve fitted ARIMAX parameters and priors across project restoration, copying, and undo/redo.
  • Improve desktop stability and state retention: mixture editing, point-estimator refresh, source-data invalidation, POT diagnostics, theme changes, SQLite connection disposal, and HEC-DSS imports with missing blocks.
  • Extend REST/MCP provenance, chronology, plotting, and low-outlier controls; add evidence-backed frequency-analysis workflows and reject untrusted browser origins before REST/MCP processing.
  • Refresh examples, Python plotting guidance, technical-reference and verification-report drafts, and traceable numerical verification evidence.

Validation

  • Restored the solution from its declared dependencies and built Debug and Release successfully with zero warnings/errors. Local desktop validation used the existing HEC-DSS checkout through an explicit HecDssRoot override.
  • All four fast .NET suites passed in both configurations: 3,548 core, 1,131 UI, 506 desktop, and 605 API tests (5,790 per configuration).
  • One initial Debug batch-runner timing assertion measured 301 ms against a 250 ms limit. The unchanged test passed in isolation and in the subsequent full Debug run after the concurrent smoke workload finished. The failed receipt is retained; no threshold or algorithm was changed.
  • Python skill/package tests: 124 passed, 3 skipped, 23 subtests passed.
  • Generated all four plugin ZIPs and SHA-256 sidecars; actionlint passed.
  • Packaged Windows integration passed with a fresh API: synthetic input preparation, six study scenarios, unchanged-default Bulletin 17C and Bayesian univariate workflows, REST/MCP/origin checks, and PNG/SVG output.
  • Packed RMC.BestFit 2.0.1 and inspected its identity/version, RMC.Numerics 2.2.0 dependency, release notes, README, LICENSE, assembly, and IntelliSense XML.
  • Independent merge review verified both parents' changes were preserved. The existing local solution-file edit was excluded and its hash remained unchanged.
  • GitHub PR checks, including Linux package validation, run separately; their results are reported in the Checks tab.

Historical numerical verification receipts remain scoped to their recorded methods and revisions; the full numerical verification suite was not rerun. Package validation and synthetic workflow smoke checks do not establish scientific interval coverage, successful installation in a named client/account, or plugin-directory publication.

Release Follow-up

Merge this PR before publishing the draft v2.0.1 release, and tag the eventual main merge commit. Confirm the Windows/Linux plugin CI checks, attach the matching desktop ZIP and SHA-256 checksum, verify live updater behavior, and confirm NuGet/plugin asset workflows after publication. Plugin-directory submissions remain separate.

sadie-niblett and others added 30 commits July 23, 2026 13:11
The packaging script now also builds artifacts/bestfit-frequency-claude-plugin.zip:
a skills-only Claude plugin whose root, one folder down, holds
.claude-plugin/plugin.json and the unchanged skill. The same folder lists
itself in a one-plugin marketplace, so Claude Desktop can install it by
upload and Claude Code from a local marketplace; claude plugin validate
--strict passes on both manifests. The OpenAI plugin keeps its
.codex-plugin layout, which the current Codex loader still reads.

Both plugins move to 0.3.1 because the skill runner changed after the
0.3.0 packages were built. The install guide covers the new routes, and the
recorded package hashes match the rebuilt archives.
Add entries for the mixture row-identity and complete-state undo fix, the
point-estimator refresh of comparisons, time-series properties and the
nonstationary chronology, and the invalidation of time-series-derived input
data and threshold diagnostics when the source changes. Retitle the notes
for the 2.0.1 release and drop the superseded mixture grid re-bind wording.
Changing the credible-interval width, or moving the time index past the
record, of an estimated nonstationary univariate analysis queues the
frequency reprocess and then the chronology rebuild. Since 7b3297e the
frequency reprocess ends by refreshing the chronology's point estimate and
raising its notification, so the view redrew the chronology while the
rebuild had already published results without their mean or intervals, and
the redraw's NullReferenceException closed the application.

CreateChronologyResultsAsync now builds the results privately and publishes
them complete. The point-estimate refresh updates the chronology only while
the curve's extent still matches its intervals, leaving a moved time index
to the chronology rebuild. The chronology plot draws only complete, aligned
results.
Since 556d6b5 the grid holds MixtureDistributionRow references, which cannot
be compared, so choosing Sort Ascending or Descending from the column-header
menu threw inside the menu click and closed the application. Sorting also
reordered the displayed rows away from the component order. The grid now
hides that menu, as the other order-sensitive App grids do.
An input switched from block or peaks-over-threshold extraction to a USGS
download keeps its saved series reference. Since b445ddf any edit to that
series cleared the downloaded peaks, low-outlier settings, and processed
state without an undo step. Only block and peaks-over-threshold inputs
derive their observations from the series, so only they are cleared; the
2.0.0 clear of USGS data on a series replacement is gone as well.
Release-note lines for the three review fixes: the chronology is published
complete and drawn only when aligned, the mixture grid has no header sort
menu, and manual and USGS inputs keep their observations when a formerly
linked series changes.
Preserve borrowed connection ownership and successful close boundaries while releasing owned resources after failure. Add element, collection, and project regression coverage plus saved-project persistence comparison tools.
Reconcile source choices without resetting bound selectors, restore collection subscriptions after docking reloads, and release overlay wrappers on final element detachment.

Add 21 isolated WPF lifecycle scenarios covering retained fits, overlays, covariates, deletion, source edits, and control reuse. Final Debug build and XML gate passed; all 5,731 fast tests passed on their final runs. An initial Bivariate point-estimator test failure passed unchanged in isolation and on the full App rerun; its intermittent cause remains unconfirmed.
Reconcile PR #12 at f8df484 with documentation-verification-updates at
ed6f39a, preserving both histories and Sadie Niblett's citation credit.
Keep every current saved project, backup, dataset and scientific source
artifact unchanged. Retain the current scientific explanations, tables,
retirements and additional Python figure coverage.

Integrate the desktop walkthroughs and 122 current native captures with
per-view provenance, explicit dispositions for all 135 contributor PNGs,
and a 40-path data disposition. Correct view selection, diagnostic labels,
fractional/calendar ticks and citation quoting. Add reproducible native
panel capture and source/receipt verification without production changes.

Validation: 39 rendered pages with zero broken local links; complete
protected/staged-tree hash audit; all captures visually reviewed;
5,790 required fast .NET tests and 29 focused Python checks passed;
independent scientific, preservation and tooling review completed.
No saved estimator reruns; existing POT diagnostic display fits disclosed.
@HadenSmith HadenSmith mentioned this pull request Oct 8, 2026
8 tasks done
@HadenSmith
HadenSmith merged commit a039398 into main Oct 8, 2026
4 checks passed
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.

2 participants