@@ -38,6 +38,25 @@ Correctness and quality pass on the base layer.
3838 round trips, and auth guard paths.
3939* Standardized user-facing errors in ` write_hydrofabric() ` and ` as_ogr() ` on
4040 ` cli::cli_abort() ` .
41+ * ** Attribute-integrity invariants.** ` hf_check_merge_invariants() ` and the
42+ per-stage ` hf_check_invariants() ` (aggregated/ngen) now guard
43+ ` mainstem_id_populated ` and ` hydroseq_valid ` via shared ` .hf_mainstem_check() `
44+ / ` .hf_hydroseq_check() ` helpers — catching carried/recomputed columns that
45+ are silently dropped or mis-mapped (the class behind two Stage-4 regressions
46+ in ` hydrofabric ` ). Tests cover dropped / duplicate / clean at the per-stage
47+ and merge entry points.
48+ * ` dbGetInfo() ` on the ` OGRSQLDriver ` now reports ` hfutils ` ' own version for
49+ ` client.version ` (was an undeclared, unguarded ` packageVersion("hfsubsetR") `
50+ that errored on any machine without that sibling package installed).
51+ * ` tbl_http() ` forwards named reader options through ` ... ` to the DuckDB read
52+ function (e.g. ` union_by_name = TRUE ` → ` union_by_name=true ` ); previously
53+ ` ... ` was accepted but silently dropped.
54+ * ` lynker_spatial_auth() ` documents per-library behavior and adds ` "arrow" ` as
55+ an opt-in target — arrow authenticates lynker-spatial via the S3 credential
56+ chain (it has no HTTP-header filesystem for the bearer token).
57+ * ` \dontrun{} ` examples on every exported function; spell-check setup
58+ (` Language ` , ` inst/WORDLIST ` , ` tests/spelling.R ` ); ` styler ` + a documented
59+ ` .lintr ` policy (lint-clean) + a ` lint ` CI workflow.
4160
4261# hfutils 0.3.3
4362
0 commit comments