Skip to content

Architecture review remediation — 2026-09-19

Dated historical evidence; follow the current guide and progress for present behavior and executed checks. Past test/release/integration claims are not new verification.

All P1/P2 findings F01–F12 in the pre-fix review have local code, configuration, documentation or CI corrections. This record supersedes that review's implementation status, not its historical evidence. Existing unrelated notebook/acquisition/workflow changes were preserved. No remote publication, regional dataset rebuild or OrcaCast integration was performed.

Finding Correction Regression evidence
F01, P1 Exact unique nonnull composite H3 support; confidence aligned to value keys before calculation Independently permutes every feature/confidence table; rejects missing/duplicate/null/wrong-resolution keys; preserves null versus zero
F02, P1 Transactional copied generations under .seascape/releases/<release_id>; historical resolver selection; no generation overwrite Publish A/B and retain A bytes/manifest; historical resolution; idempotent republish; injected canonical-promotion failure restores A and removes failed generation
F03, P1 Terrain and sill loaders require explicit positive-down sign; numeric negative depth rejected Unsupported/missing sign rejected by all three loaders; contradictory negative values rejected and nulls retained
F04, P1 Central projected meter-axis validation plus direct spatial/isobath guards Geographic and foot-based configurations rejected; default UTM accepted; existing physical fixtures retained
F05, P1 Output preflight, declared-output validation, filename checks, symlink confinement and writer guards Absolute/custom/parent/symlink escapes rejected before builder writes; canonical sentinel unchanged; low-level writer rejection
F06, P1 Effective/transitive config, named-area and resolved environment fingerprint; frozen common config and release provenance Common bound, inherited YAML and environment-only changes each invalidate resume; unchanged configuration reuses
F07, P2 Fixed Q90 schema requires 0.90 0.95 rejected
F08, P2 Supported north-up affine enforced; land/nodata excluded before gradients; method/edge policy recorded Flat coastal/nodata fixture, rotated rejection, known tilted plane including raster edges
F09, P2 Candidate preparation uses the direct API's resolved configuration path Composed-value parity, frozen common bounds, explicit reference-cycle failure and custom input base
F10, P2 Small documented consumer/producer API and internal ownership; shared habitat_network_metrics replaces private cross-module import API contracts, shared habitat contract tests; no formula change or broad directory migration
F11, P2 Direct urllib3 dependency, quality extra, scoped Ruff/mypy/format gates, Gitleaks, installed dependency audit, outside-checkout wheel checks and recorded scientific environment Local static/security/package checks below; CI configuration added but hosted jobs not run locally
F12, P2 README matches live San Juan exploratory notebook side effects and Natural Earth mask; offline acceptance remains separate Notebook guide and current cells inspected; offline production-API notebook executed

Executed validation

  • Repository tests: 217 passed, three regional-data skips, including all 24 review regression tests. Final full-suite run completed in 7.69 seconds.
  • Built a fresh wheel and installed outside the checkout. Imported all 159 package modules with OrcaCast imports blocked; 34 product/review tests passed against the installed wheel. pip check, workspace initialization and the 26-stage CLI dry-run passed.
  • Offline validation notebook: all 12 code cells executed, PASS marker verified, no error outputs. Output: /tmp/seascape-hardening-validation.ipynb; source notebook was not overwritten.
  • Ruff bug checks passed over source/tests/scripts; formatting and mypy passed for four hardened boundary modules. This is scoped static coverage, not complete legacy strict typing.
  • Dependency audit of the recorded runtime/test closure: no known vulnerabilities reported. Gitleaks 8.30.1: no leaks reported over all seven Git commits and the nonignored working files.
  • Local Graphify code-only graph refreshed (2245 nodes, 6768 edges); cache remains untracked.
  • Scientific environment baseline records the macOS ARM64 Python 3.14 dependency closure plus GDAL, PROJ and GEOS. Hosted Linux Python 3.11/3.14 checks remain CI work.

Compatibility and scientific limits

Release manifest schema 3 is required by product resolution. Republish existing schema-2 workspaces; there is no automatic archive migration or generation cleanup. Retained generations consume extra disk space and must not be manually changed while consumers reference them. Candidate outputs that previously escaped to custom canonical paths now fail; configure them inside the candidate.

Standalone bathymetry can still emit negative elevation, but terrain/sill consumers require positive-down inputs. Non-meter planar CRSs and non-Q90 slope settings now fail explicitly. Native coastal slope sample support can change because land/nodata cannot contribute to gradients; the angular-distance approximation remains unchanged. Rebuild affected products before comparing regional outputs. Synthetic tests establish these contracts, not regional error magnitudes.

Three materialized-product tests remain skipped. No live-provider acquisition, complete regional rebuild/equality comparison, hosted CI execution, remote publishing or downstream application integration is claimed. Presentation-only configuration and remote sources without local immutable identity still need explicit rebuild judgment. F13 is P3 and outside this requested fix scope; its stale local graph portion was refreshed as ordinary navigation maintenance.