Skip to content

v4.11.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 16:42
  • release: promote v1.8.0-fr-admin-split as v4.11.0 (c3d95a7)
  • feat(neural): enforceWordConsistency decode-fix (#727) — DEFAULT-OFF prototype, gate shows not-yet-clean (199051d)
  • Format. (36127dc)
  • Fix contrast. (961aff5)
  • Flesh out. (439fcd3)
  • feat(corpus): #26 — exclusion-angle license filter + BAN Licence-Ouverte election + manifest license-set (b5b5831)
  • docs: add glossary page with docusaurus-plugin-glossary (17e2b4e)
  • docs(postmortem): finalize night-2026-06-19 — morning wrap (pushed to main, v1.8.1 launched) (302150f)
  • feat(train): v1.8.1 launch infra — recipe + sync_v081 (the fr.country fix, one command from launch) (00ae8f5)
  • feat(train): fr-admin-split shard — add country-bearing rows (v1.8.1 prep, fixes the fr.country -3.5 finding) (a3fa285)
  • docs(postmortem): add the FR-golden guardrail — net FR-label gain except fr.country -3.5 (coordinate-invisible) (ccd0831)
  • docs(postmortem): night 2026-06-19 — v1.8.0 admin-split is a clean coordinate net win (FR -40%, US flat) (21e10e4)
  • feat(train): v1.8.0 FR admin-split shard + recipe + live gate (surpass-v1.5.0) (d451665)
  • feat(eval): FR admin-split pre-GPU self-validation — the lever is real (−61% on collision communes) (06e2a77)
  • docs(eval): bank the row-level read behind the v1.7.0 HOLD — the −4.0/−6.1 are softer than the macro (15ba056)
  • chore(deps): upgrade dependencies (#726) (956483b)
  • fix(deps): resolve Dependabot security alerts (#725) (723727a)
  • Fix build. (6a4dcaf)
  • Format. (32af713)
  • Format. (6174bb1)
  • Fix links. (44e90be)
  • Fix license. (6f38b9f)
  • Fix contrast. (666b544)
  • docs: add README.md for all published packages (4821cff)
  • Format. (ca4fa05)
  • Fix formatting. (b3244c4)
  • Update skills. (40ea2cf)
  • docs(postmortem): add the day-session record — the measurement-integrity campaign (247e396)
  • fix(resolver): fold spelled-ordinal street names to digit form in the situs key (#723) (3e565a1)
  • docs: refresh the US coordinate numbers post-fix — admin tail 12 → 6.8%, within-100m 85.9 → 90.0% (#723) (d71f803)
  • fix(parse): US leading-house-number repair — relabel a 5-digit-postcode-as-house-number (#723) (5977ce4)
  • fix(resolver): fold a directional quadrant mis-tagged unit into the situs street key (#723) (d1b8bcb)
  • docs(blog): "Three times this week, our metrics undersold us" — the read-the-rows methodology post (ed4cea4)
  • feat(eval): oa-resolver-eval parses via createScorer — full SHIP-CONFIG parity (#722) (896c2cd)
  • docs(eval): correct the US coordinate story — shipped cascade is meter-grade, not the 3.3km admin centroid (#488) (b4cdf25)
  • feat(eval): --cascade — oa-resolver-eval grades the SHIPPED coordinate (situs cascade), not the admin centroid (#488) (dd3628d)
  • docs(eval): country regression anatomy — the −2.4 is one homograph row (Lima/Peru), not systematic (e976efb)
  • test(weights): drift-guard — fr-fr model-card must mirror en-us's labels/requires (#721) (5017b3b)
  • fix(weights): reconcile fr-fr model-card to the en-us model it actually ships (#721) (af2f9f6)
  • fix(publish): CI fetch places the #718 soft-feed artifacts (#720) (e486be3)
  • feat(eval): wire the mask-regression gate into promotion-gate.sh (#718) (20f12ac)
  • feat(neural): loadFromWeights soft-feeds the anchor + gazetteer channels by default (#718 D1) (c1da273)
  • eval(gates): re-derive per-locale floors from anchor-ON measurements (#718, #564) (7c35987)
  • feat(resolver): region→macroregion + county→macrocounty filter groups + fallback flag (#718) (8a0b13e)
  • feat(eval): per-release mask-regression gate (#718) — the finer second lock (b86ac69)
  • feat(neural): capability-manifest delta-gate — destructive conventions masks fail at load (#718) (3ebd726)
  • docs: HuggingFace-format model cards (en-us, fr-fr) + correct head-to-head US locality-match (759d150)
  • fix(#719): FR conventions no longer forbids street_prefix (it destroyed FR street parsing in prod) (1caf2c3)
  • fix(eval): route boundary-stress-gate through createScorer, grade at SHIP-CONFIG (#718) (c0f4b4d)
  • fix(eval): oa-resolver-eval locality-match credits the resolver's locality group (#375) (9f986ec)
  • eval: oracle-locality diagnostic — US rural locality-match is a localadmin scoring artifact (#375) (14fdba6)
  • feat(neural): canonical ProductionScorer foundation (#718) (3cd3925)
  • docs(eval): oracle substitution / ceiling analysis + SHIP-CONFIG parity (f749704)
  • docs: correct v1.7.0 with production-faithful (anchor-on) numbers + FR-flat (76b5525)
  • fix(eval): per-locale-f1 feeds anchor+gazetteer by default (was opt-in) (d7b5174)
  • docs: correct the v1.7.0 promote claim across blog + postmortem (re-eval vs real default v1.5.0) (989be91)
  • eval: v1.5.0 vs v1.7.0 promote head-to-head, HOLD v1.5.0 (04a3924)
  • docs(pipeline): propagate coarse-placer + reconcile status to the sibling pipeline docs (e5a25b9)
  • docs(pipeline): bring 'How it works now' up to date — coarse-placer, anchors, reconcile retirement (6012620)
  • docs(blog): add the two-traps anatomy + the three-bucket stop rule (b43247a)
  • docs(blog): publish 'The macro-F1 went up. Did the model get better?' (838e7aa)
  • postmortem: WALK BACK the lint 'finding' — it was sampling bias, not real (fc034b9)
  • postmortem: v2 country-scoped lint WORKS + found a real #511 issue (next-shard prune list) (e451f7d)
  • eval(#511): country-scoped full-count lint (v2) — and it found a real issue (6967d09)
  • postmortem: the firm #511-tooling lesson — full counts, not small scans (f1b65e8)
  • postmortem: finalize numbers table (shift metrics) (8e9685a)
  • postmortem: the #511-lint generalization lesson — sampling can't fix source-specificity (3b7f508)
  • docs(blog): complete the diagnosis blog coda — the fix worked, and the ceiling lesson (a4fd1e5)
  • postmortem: v1.5.1 baseline reframes v1.7.0 — net improvement, promotable (37fb5bf)
  • feat(#375): v1.7.1 country patch — country-bearing bare-locality variant (staged) (1113dce)
  • eval(#375): v1.7.0 gate — NO-PROMOTE, but the regression fix WORKED (c939983)
  • eval(#511): generalize the base-consistency lint (shard-vs-base) — v1 coarse screen (9669470)
  • docs(blog): 'The macro-F1 went up. Did the model get better?' (draft) (af3fd5f)
  • eval(#617): model-swap flags for the NPPES dedup benchmark (ed89dd4)
  • feat(#375): sync_v061 — pull the v0.6.1 balanced overlay for the v1.7.0 retrain (7307eaf)
  • eval(#375): v1.7.0 gate spec + street-recall-full blind-spot probe (d3e580f)
  • feat(#375): v1.7.0-boundary-stress recipe (bf26474)
  • feat(#375): v1.7.0 shard composition + #511 venue-vocab lint (a6da350)
  • feat(#375): balanced boundary shard — bare-locality + hn-before shapes (4d0059e)
  • eval(#375): locality-regression + affix-B/I diagnostic probes (bcddcc2)
  • eval(#375): boundary confidence probe — signal-vs-capacity diagnostic (0a6b03b)
  • eval(#375): v1.6.0 floors gate spec + post-training gate runbook (99c0758)
  • eval(#375): boundary-stress promote/no-promote gate runner (dd21e10)
  • fix(train): conventions table forbids FR street_suffix only, not street_prefix (5b9bcfe)
  • docs(modal): AGENTS.md — Modal retrain launch runbook (#375 launch) (743d104)
  • fix(#375): disable conventions loss-mask — it conflicts with the boundary shard (5e9b706)
  • feat(modal): sync_v060 — pull v0.6.0-boundary-stress overlay + latest configs (21bbb66)
  • fix(#375): re-root overlay base shards to /data (Modal volume path) (47e4440)
  • feat(#517): wire the US military po_box class into the shard builder (#717) (f9a4450)
  • fix(#375): base-consistent locality vocab — resolve the #511 overlap (not defer it) (#716) (c9b6cf8)
  • feat(#517): po_box synthesizer — NZ leaders + region-less format + US military class (#715) (40f5d20)
  • feat(#694): flip the geocoder ingest to comma-join + normalizeCase (default) (#713) (a222842)
  • feat(#375): stage the v1.6.0 retrain bundle — conventions loss-mask + expanded gate (#714) (d7a11f6)
  • docs(#696): publish "How close is close enough?" — coordinate-sufficiency concept (e87f706)
  • docs(blog): three gates made us earn it — the #1-lever night told through the gates (69cae75)
  • docs: post-merge verification in the night-16 postmortem — main is GREEN (#712) (e381f98)
  • docs: night-16 shift postmortem — the clean artifact (19 PRs) (#711) (1896cf9)
  • docs(#375): correct the #511 finding — locality/street overlap is REAL, not artifact (#710) (7c5ea53)
  • fix(#375): boundary shard base-locales-only — the #511 lint caught an AU contradiction (#709) (6231551)
  • feat(#375): expand boundary-stress diversity ~3× — and correct the inflated baseline (#708) (255edfd)
  • feat(#375): boundary-stress corpus-build glue (overlay-manifest assembler) — tested (#707) (38bd8f2)
  • feat(#375): v1.6.0-boundary-stress retrain recipe (DRAFT, DeepSeek-signed) (#706) (45b6946)
  • feat(#375): add the AU/UK slash unit-convention shape to the boundary shard (#705) (d089465)
  • eval(#375): boundary-instability baseline — the current model's gap quantified (#704) (471c21b)
  • feat(#375): boundary-instability synthetic stress shard — the #1-lever groundwork (#703) (03f37f4)
  • eval(#375): within-token punctuation weakness decomposed — it's a misnomer (#702) (039f3bd)
  • eval(#474): Overture ES postcode centroids vs GeoNames — gap already closed (#701) (86c93d0)
  • eval(#694): delimited address joins — the flip evidence (+15% rooftop, no crater) (#700) (d79a6f3)
  • feat(#694): IngestOptions.addressSeparator — opt-in delimited address join (#699) (a11bcf0)
  • chore(#694): geocode-case-diag — per-source + nocomma modes (root-caused #694) (#698) (0043d69)
  • docs(#375): failure taxonomy v1 — where Mailwoman is wrong, by how much (#697) (8a33a57)
  • chore(#694): #690 geocode-core diagnostics (case-check + geocode-case-diag) (#695) (4c464b0)
  • feat(#690): thread normalizeCase through the runtime pipeline (#693) (38ec9e0)
  • feat(#690): case-normalize all-caps input before the neural parser (#692) (f46a633)
  • eval(#619): geocoder vs provided coords — TX HHSC facilities (+ #690 all-caps finding) (#691) (11818c9)
  • eval: per-address-type head-to-head — neural vs v0 (rates, not anecdotes) (#689) (bf4c551)
  • Format. (6e1da99)
  • docs(blog): state-of-affairs post — neural vs the Pelias port (draft) (5f70cb1)
  • feat(#478): fix-v1 containment-preserving arbitration — regression fixed, not promoted (#687) (3f17bb7)
  • eval(#478): diagnose the precondition drop — loss of containment + fix plan (#686) (ec4ba52)
  • eval(#478): coordinate gate (leg 2) FAILS — arbitration not promoted (#685) (a963516)
  • feat(#478): wire arbitration into runPipeline + arena gate (increment 3) (#684) (c65b8af)
  • feat(#478): proposal coherence pass (increment 3 groundwork) (#683) (6b52a6c)
  • feat(#478): input-shape router — the arbitration prior (increment 2) (#682) (cbe0afd)
  • docs: drop duplicate record-matching tag key (fix broken docs build) (#681) (6213e0e)
  • docs: publish the matcher story (geocode-first matching + dedup yardstick) (#680) (6a46e6c)
  • Format. (7ae7902)
  • Rename blog to research. (a8139d7)
  • Fix styles. (672669e)
  • Clean up. (a88c462)
  • Clean up blog config. (e524495)
  • eval(#109): H3-cell robustness check — the org-name 68.1% holds (not a 50m artifact) (#678) (4f91a94)
  • eval(#478): grade the assembled runPipeline in the arena harness (#679) (980bd07)
  • Fix build. (827e0c8)
  • test(#595): un-stale the --default-country none NY assertion (#675) (9ed6ea9)
  • docs(agents): correct the stale TLA note — #481 removed it; the cycle is structural (#676) (dd3ea27)
  • docs(postmortem): night-16 part 2 — viz + designations + cross-source feasibility (#674) (83b9652)
  • eval(#655): option 2 is data-blocked — no non-circular cross-source weak-label anchor (#673) (cbb184a)
  • viz(record-matcher): cross-dataset linking map on the house stack (#618) (#672) (b7ae314)
  • feat(record): context-aware legal designations — jurisdiction × domain (#668) (#671) (f95a893)
  • blog: "Match where it is, not how it's spelled" — both figures, one post (#677) (68d3ea6)
  • docs(eval): org-name as the honest dedup yardstick + the climb figure (#108, #625) (#670) (4190eb6)
  • docs(viz): geocode-first decision surface — the headline matcher figure (#106) (#669) (310af3d)
  • eval(#625): dedup measurement — dual-level benchmark + gold set → the over-merge is a yardstick artifact (#667) (bcbd12b)
  • eval(#625): dedup ceiling — derive "good enough" from data; 0.85 is mis-anchored (#665) (56c9950)
  • eval(#655): cross-source threshold sweep — re-thresholded GBT can't beat FS (#664) (6da3089)
  • feat(registry): coverage reconciliation as a library + registry --reconcile (Tier 2) (#666) (12773d5)
  • feat(registry): map view — toMapHTML() + registry --map-out, on the house Protomaps stack (Tier 2) (#662) (2dd17e5)
  • fix(spatial): add repository field — unblock provenance publish of 4.10.0 (#660) (aff4b1a)