Deep correctness, reliability & UX hardening pass#13
Merged
Conversation
Physics correctness: - Fix Synolakis run-up to scale by offshore depth, not amplitude. It was under-predicting every run-up/inundation figure by d/H and the bundled Carrier-Greenspan validation benchmark was failing 100%; both now pass. - Floor seismic-Mw energy so a zero-drop-height landslide can no longer emit -inf across the IPC boundary; guard NaN sources in asteroid/nuclear/lamb-wave. Reliability & safety: - simulate_grid: add a combined cells*steps compute budget (the two caps were independent, so one request could wedge the worker for minutes), clamp the box off the poles, normalise longitude, and unify the +/-180 lon contract. - GPU: fix the missing bytemuck dep so the feature compiles at all; don't advance sim time over a failed/garbage readback (clean CPU fallback); only route all-wet grids to the land-mask-free kernel. - Apply the sponge on small grids; add a preset input-bounds test; cache the preset registry. UX & accessibility: - Scenario number fields are editable again (draft-on-blur instead of clamp-per-keystroke). - Surface previously-silent failures (preset/scenario IPC, preset-list load, PNG/share/video export) as toasts/inline status. - Add modal focus traps (WCAG 2.4.3/2.1.2); NaN-proof Globe labels and the SWE imagery bbox; fix the dev StrictMode blank-globe; misc play/cancel/save state. Security & DX: - Fail production builds that would inline a personal VITE_CESIUM_TOKEN; tighten the shell-open allow-list; read-only settings probe; export filename and video-recorder hardening; correct the stale app version string to 0.4.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A broad, production-minded hardening pass across the Rust physics/solver, the IPC trust boundary, the React/Cesium frontend, and build/config. No version bump — corrects the stale
v0.2.1app string to match the existing0.4.0everywhere.Highlights
Physics correctness
d/H. The bundled Carrier-Greenspan validation (feature-gated) was failing 100% and now passes; added a non-gated closed-form regression.-infto the UI); guarded latent NaN in asteroid cavity scaling, nuclear cavity radius, and the Lamb-wave envelope.Reliability & safety
simulate_grid: combinedcells × stepscompute budget (the two caps were independent → a request could wedge the worker for minutes); off-pole box clamp; longitude normalisation; unified ±180° lon contract.bytemuckdep (thegpufeature never compiled); readback failure no longer advances time over a garbage field (clean CPU fallback); all-wet-only dispatch to the land-mask-free kernel.UX & accessibility
Security & DX
VITE_CESIUM_TOKENwould be inlined; tightenedshell:allow-open; read-only settings probe; export filename + video-recorder hardening.Verification
cargo test61 pass ·cargo clippy --all-targets -D warningsclean ·tscclean ·vite buildclean ·--features gpucompiles · browser smoke test (preset load, zero console errors, working focus trap).Known residuals (deferred, documented)
stoker_…validation benchmark fails (mis-scaled test IC, not a solver bug).use_real_bathymetry).'unsafe-inline'(needed for inline theme bootstrap + Vite HMR).