Skip to content

Prepare WPF Framework v1.0.5 release - #34

Merged
HadenSmith merged 13 commits into
mainfrom
frameworkUI-demo-update
Oct 7, 2026
Merged

HadenSmith merged 13 commits into
mainfrom
frameworkUI-demo-update

Conversation

@HadenSmith

@HadenSmith HadenSmith commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Prepare WPF Framework v1.0.5 with exception-safe SQLite connection ownership, compaction that remains active until its worker finishes, and immediate tab-caption refresh after rename undo/redo. Include the six existing hazard-function demo commits and coordinated Core, Models, Support and Controls package metadata.

Changes

  • Release partially initialized SQLite connections when constructors fail. GetTableNames, Vacuum and Optimize close connections they acquired on all exits while preserving caller-owned open connections and transactions. Preserve the original operation failure if cleanup also fails.
  • Synchronize the compaction worker with its progress window and operation guard. Reject reentry, prevent premature close, propagate maintenance failures, recover from unexpected modal exit, and prevent final Save from overlapping active maintenance.
  • Refresh ElementBase.DisplayName when undo/redo changes Name without changing the existing dirty-state policy. Preserve docking bindings, notification ordering and the dirty asterisk.
  • Complete the hazard-function demo workflow: project identity/icons, SQLite persistence, element-owned plots and saved plot settings, collection persistence, plot undo/redo, theme-aware resources, and regression coverage. Preserve all six preexisting demo commits.
  • Publish the exact packages accepted downstream: the tag workflow builds once and records commit, run/attempt and package hashes; publication verifies the successful artifact and downstream receipt without rebuilding. Existing published versions must match their validated contents.
  • Update coordinated release metadata and documentation to 1.0.5. Update the build-only SourceLink dependency to 10.0.111 and repair strict test XML documentation. Correct one deliberately invalid OxyPlot test to assert its intended exception without changing production code, image baselines or comparison tolerances.

Public APIs, SQLite provider/settings, Numerics dependency policy, database schemas and scientific behavior remain unchanged. The original intermittent database lock was not reproduced end to end; the connection-lifetime and compaction defects are independently demonstrated by regression tests.

Validation

  • Framework Debug/Release and XML gates passed without warnings/errors. Full regression gate: 7,038 passed, zero failures, with six documented preexisting vendored skips. Release-artifact contract checks: 89 passed.
  • PR integration CI passed in run 37692439877. Independent source review approved the reviewed tree before merge.
  • Tag v1.0.5 resolves to merge commit 05acb1e258730b0d1c3917f98df00fb5a83a262c. Release run 37693105011, attempt 1, passed; artifact ID 11514446974 was validated downstream without rebuilding.
  • Exact-package BestFit Debug/Release and strict XML gates passed without warnings/errors. 5,730 tests passed, zero failures/skips: Core 3,548; UI 1,131; App 505; API 546. All 24 real-element rename undo/redo caption cases passed.
  • 32/32 saved projects matched the reviewed baseline, with zero differences across 224 snapshot stages and 160 integrity checks. Original examples remained unchanged.
  • 14 native UI acceptance checks passed using a separate verified copy of the tagged runtime: create, real HEC-DSS import, copy, rename, delete, reorder, rename undo/redo, dirty-cancel, Save, Save As, manual compaction, compaction-enabled exit, reopen and layout restoration. Manual compaction finished too quickly to attempt active-dialog closure; gated real-dispatcher tests cover that timing-sensitive path.
  • Independent downstream evidence review found no blockers. The release manifest, downstream-validation receipt and 180-file evidence archive are attached to the draft v1.0.5 release; uploaded hashes match the reviewed files.

No optimizer, MCMC or broad numerical verification run was needed for this persistence change. Publication and fresh public-NuGet signature/payload validation remain separate final steps; the release is still a draft.

HadenSmith and others added 13 commits July 19, 2026 17:00
Remove the stubbed response and consequence function elements, the
orphaned undo and theme demo controls, and the unused generic element
document/properties controls. The demo now focuses on a single fully
implemented hazard function element.
Set the assembly title, product name, and version to WPF Framework
Demo 1.0.0 so the framework shell reports the correct software name.
Generate a multi-resolution application icon from the USACE castle
logo, use it as the project image, and standardize the project file
extension on .demo.
…demo

Implement full project and element persistence following the parametric
hazard function conventions: a Project table with additive column
migration, a Hazard Functions table keyed by element name, G17 invariant
formatting for doubles, pipe-delimited probability ordinates, the parent
distribution as XML, and the bootstrap results as a compressed BLOB so
parameter sets survive reopening.

Move ownership of the frequency plot from the view to the hazard
element so plot styling can be recorded for undo and persisted with the
element. Port the PlotUndoManager, AggregateDisposable, and
CollectionPersistenceHelper support classes, wire ordinate and plot
undo bridges through SetupBridges, and refactor HazardControl to host
the element-owned plot in a ContentControl with series looked up by
name so user styling survives Save/Open.

Also fix latent bugs: NameOnDisk, CreationDate, and LastModified were
get-only auto-property overrides that never read the base backing
fields, project name validation could never become valid, and the
control's plot click handlers were never wired in XAML.
Replace the raster hazard PNG with a theme-aware 16x16 DrawingImage in
a new demo icon dictionary, following the frequency-curve motif of the
RMC-TotalRisk parametric hazard icon: plot axes, an ascending
confidence band, and an accent diamond node marker. The element exposes
ElementImageResourceKey so the project explorer re-resolves the icon on
theme changes, and the New Hazard Element menu items bind their icons
with SetResourceReference for the same reason.

Also harden the element's Open path so scalar values that fail to parse
leave the element defaults in place instead of zeroing them.
@HadenSmith
HadenSmith merged commit 05acb1e into main Oct 7, 2026
2 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.

1 participant