Repository navigation
What's Changed
- Accept the spec object the MCP tools return as a spec argument (#317) by @philliphoff in #641
- Test polyline queries segment by segment, not by the vertex envelope (#555) by @philliphoff in #640
- Map S-57 HORWID to horizontalWidth (#638) by @philliphoff in #639
- Link a bridge collection's lights to its Bridge through StructureEquipment (#618) by @philliphoff in #642
- Draw and query multi-part curves part by part (#643) by @philliphoff in #644
- Fill, outline, label and query multi-surface features part by part (#643) by @philliphoff in #645
- Emit a multi-part Bridge for bridge collections whose members don't join (#643) by @philliphoff in #646
- Link a bridge collection's signal stations to its Bridge by @philliphoff in #647
- Render visual-regression goldens at Standard by default (#357) by @philliphoff in #648
- Place station glyphs in spherical Web Mercator; cover headless station rendering (#191) by @philliphoff in #649
- Render rotated viewports on the headless composite path (#578) by @philliphoff in #651
- Keep screen-relative symbols upright on a rotated display (#652) by @philliphoff in #653
- Make pattern-only areas pickable (#604) by @philliphoff in #654
- Ship XML documentation in every NuGet package (#656 chunk A) by @philliphoff in #657
- Document the Features, Portrayals and ExchangeSets packages (#656 chunk B) by @philliphoff in #658
- Document the remaining packages and drop every 1591 opt-out (#656 chunk C) by @philliphoff in #659
- Publish the full API reference and package READMEs on the docs site (#656 chunk D) by @philliphoff in #662
- Make coverage extents' native CRS explicit and reproject where degrees are needed by @philliphoff in #660
- Fix stale type names and retired sections in the docs and READMEs (#656 chunk E) by @philliphoff in #663
- Reject catalogues missing required elements with a clear XmlException (#656) by @philliphoff in #664
- Open datasets and exchange sets from asset sources in the facade (#656 F-API) by @philliphoff in #665
- Add a guide to loading datasets from files, sources and exchange sets (#656 F1) by @philliphoff in #666
- Dataset collections: a Library of indexed datasets, map coverage, lazy loading and NOAA downloads (#655) by @philliphoff in #661
- Add a guide to reading S-100 Part 15 protected exchange sets (#656 F2) by @philliphoff in #668
- Remember exchange sets in File > Open Recent (#655, slice 7) by @philliphoff in #667
- Report a wrong hardware ID as DatasetDecryptionException naming the dataset (#656) by @philliphoff in #669
- Treat S-111 station-series speeds as knots (#656) by @philliphoff in #671
- Add a guide to reading each product's data; lead typed models with usage (#656 F3) by @philliphoff in #672
- Add the USACE Inland ENC feed to the Library (#670, slice 1) by @philliphoff in #673
- Add Validate() for facade datasets and a custom catalogues and validation guide (#656 F4) by @philliphoff in #674
- Curated known-sources list and Add Online Catalogue directory (#670, slice 2) by @philliphoff in #675
- Replace obsolete TextBox.Watermark and fail the build on XAML warnings by @philliphoff in #677
- Link the developer guides from the landing pages (#656 F-links) by @philliphoff in #676
- Add community chartcatalogs lists to the Library, with bounds after download (#670, slices 3–4) by @philliphoff in #678
- Add online catalogues by URL, recognised by their root element (#670, slice 5) by @philliphoff in #679
- Add the S-100 feed format for publishing datasets to other machines (#680, slice 1) by @philliphoff in #681
- Add
s100 feed serveto publish datasets to other machines (#680, slice 2) by @philliphoff in #682 - Add S-100 feeds as a Library source in the viewer (#680, slice 3) by @philliphoff in #683
- Add
s100 feed exportto write a static S-100 feed (#680, slice 4) by @philliphoff in #684 - Library panel UX refinement (vocabulary, rows as map legend, tree status, bulk bar, shared feeds) by @philliphoff in #687
- Library panel v2: sizing and rough edges by @philliphoff in #688
- Add online catalogue: one three-step wizard with Back by @philliphoff in #689
- Library map taps: guard stray clicks, select without re-listing, thinner outlines by @philliphoff in #690
- Fix pan/zoom lag that grows with the number of loaded datasets by @philliphoff in #692
- Disk caches: enforce size caps from an in-memory LRU index by @philliphoff in #693
- Memoise overscale-curtain regions across zoom steps by @philliphoff in #695
- Library: local collection manifests (*.s100collection.json) by @philliphoff in #696
- Skip coarse-cell tiles hidden by a finer cell (#691) by @philliphoff in #697
- Make tiled base-plane caches device-scale aware; read-only off-screen captures by @philliphoff in #699
- Library: NOAA S-102 on AWS as a remote S-100 catalogue source (#685, slice 1) by @philliphoff in #700
- Rename the viewer to "SoundCharts: S-100 Viewer" by @philliphoff in #698
- Library: NOAA S-102 at scale — summarised updates, update bulk action, area outlines (#685, slice 2) by @philliphoff in #701
- Library: NOAA S-111 forecasts — model rows, new runs, Expired (#685, slice 3) by @philliphoff in #702
- Timeline: Now marker and button for forecasts (#685, slice 4) by @philliphoff in #703
- Library: S-111 model domains, S-104 pilot, S-102/S-111 pairing (#685, slice 5) by @philliphoff in #704
- Timeline: per-product time limits, stepping at any sample count, Now follows the clock (#706) by @philliphoff in #714
- MCP: Timeline state, view time, dataset state, notifications, test clock (#715 slice 1) by @philliphoff in #716
- MCP: read the Library — sources, items, details, known sources (#715 slice 2) by @philliphoff in #717
- MCP: change the Library — add, refresh, act, remove, await idle (#715 slice 3) by @philliphoff in #718
- Timeline: Live/Pinned modes, now on every timeline, readout, status line, map stamp (#713) by @philliphoff in #719
- Timeline: size-honest gaps, axis labels, zoom and presets, step menu, data jumps, keyboard (#708) by @philliphoff in #721
- Timeline: layer time in the dataset list, loading state, no-data opens the list (#709) by @philliphoff in #722
- Timeline: lanes per layer, In map view filter, collapse to strip (#710) by @philliphoff in #723
- Viewing groups: hide an instruction when any of its viewing groups is hidden by @philliphoff in #724
- Timeline: Library-known bands and Library ↔ Timeline actions (#711) by @philliphoff in #725
- Timeline: Time HUD on the map and the dock toggle (#712) by @philliphoff in #727
- S-111: spec-faithful, zoom-aware current arrows for grids and meshes by @philliphoff in #726
- Timeline: forecast runs for Library tiles; issue time from the data (#720) by @philliphoff in #729
- Timeline/Library: run times follow the user's Local/UTC setting (#730) by @philliphoff in #732
- Viewer MCP: select_dataset picks a Datasets row and inspector tab by @philliphoff in #734
- Render: don't seam-wrap viewports wider than one world by @philliphoff in #736
- Validation: stop S-102/S-104/S-111 false positives on NOAA production data by @philliphoff in #737
- S-101: normalise inverted DataCoverage display-scale pairs by @philliphoff in #739
- S-57 validation: report source data, not translation artefacts by @philliphoff in #741
- S-98: S-104 band over S-57 ENC fills, under line work; band partly transparent by @philliphoff in #742
- Viewer MCP: set_viewport accepts a scale denominator (#740) by @philliphoff in #743
- Basemap: full-resolution Natural Earth land, tiled with levels of detail (#731) by @philliphoff in #746
- Viewer: apply zoom limits at the viewport's own latitude (#744) by @philliphoff in #747
- Test: native S-101 cells rasterise non-empty tiles at an in-band scale by @philliphoff in #748
- S-125: portray aids to navigation with the S-101 AtoN rules by @philliphoff in #750
- Visual regression: ink-scaled tolerances for sparse snapshots by @philliphoff in #751
- Label declutter: keep a feature's co-anchored labels together (S-411 egg code) by @philliphoff in #752
- Visual regression: fix missing S-111 arrows race; ink-scaled S-111 check by @philliphoff in #753
- Viewer: S-101 keeps its depth shading beside S-102; open S-100 5.2 exchange sets whose signatures omit dataStatus by @philliphoff in #754
- Add the soundcharts.app landing page by @philliphoff in #755
- S-128: draw product coverages as outlines only so they don't bury the ENC by @philliphoff in #756
- Point docs links at soundcharts.app; add Website and Documentation to About by @philliphoff in #766
- Pipelines tests: make overlay steady-state allocation check deterministic by @philliphoff in #765
- Site: light-theme shot set with a theme toggle; READMEs use the site captures by @philliphoff in #767
- CLI: clean validate summary markup; S-57 and station renders honour --basemap by @philliphoff in #769
- S-111: put station/mesh arrows on the same S-98 plane as grid arrows by @philliphoff in #770
- Parse S-100 date/times with the Iso8601Text grammar by @philliphoff in #771
- S-411: fix NIC Arctic wedges (axis order, polar rings, seam crossings) by @philliphoff in #772
- Tiles: keep a cell's line work inside its display band when the snapped band is past the cap (#761) by @philliphoff in #775
- Viewer: draw chart data at every world copy in view (#773) by @philliphoff in #778
- MCP set_viewport: frame continuous longitudes and seam-crossing boxes (#759) by @philliphoff in #779
- Tests: migrate the suite to xunit v3 (#776 chunk 0) by @philliphoff in #777
Full Changelog: v0.23.0...v0.24.0