Releases
v4.0.0
Compare
Sorry, something went wrong.
No results found
ci(publish): retry the HF weight fetch (transient 429 throttling) (#349 ) (31c7847 )
feat: inference-side anchor channel — make v0.9 anchor models runnable end-to-end (#240 ) (#348 ) (c97d709 )
chore(release): reconcile 4.0.0 — installable closure, DRY versions, drop R2 (#347 ) (018c8fb )
docs(blog): "Which way does a postcode point?" — the anchor's order asymmetry (#346 ) (ef3b0ab )
docs(shift): final night-7 postmortem — demo tier (4 + S38 doc), ES, 22 PRs (#345 ) (09f1024 )
feat(corpus): acquire Spain OA data — ES now shard-ready (multi-locale) (#344 ) (0bb7a4e )
feat(demo): containment hierarchy tree view (S35) (#343 ) (78e600e )
docs(demo): S38 service-worker cache — design notes + the cross-origin gotchas (#342 ) (9b8a50a )
docs(shift): finalize night-7 postmortem — arc concluded + demo tier (#341 ) (2c0b8ce )
feat(demo): copy-result-as-JSON button (S40) (#340 ) (a7131bd )
feat(demo): per-stage timing breakdown panel (S37) (#339 ) (fe1dd34 )
feat(demo): span-highlight visualizer — tint the raw input by parse confidence (S34) (#338 ) (a43e56f )
docs(eval): record the anchor-fork decision — accept the asymmetry (DeepSeek, delegated authority) (#337 ) (4e8300f )
docs(eval): v0.9.4 dual-injection failed — order-robustness arc concluded (#336 ) (ca1f3b7 )
feat(corpus): acquire Italy OA data — IT now shard-ready (multi-locale) (#335 ) (fda31c0 )
feat(train): v0.9.4 dual-injection anchor — inject at the postcode AND position 0 (#327 ) (#334 ) (837678e )
feat(corpus): NL postcode normalization — both orders now build for NL (#333 ) (079906b )
feat(corpus): build-locale-shard streaming reservoir — FR/US-scale CSVs without OOM (#332 ) (9fee6a5 )
docs: night-7 shift postmortem (order robustness — corpus lever exhausted) (#331 ) (41472d5 )
docs(eval): v0.9.3 region-tail follow-up — the corpus lever is exhausted (#329 ) (f81f987 )
feat(corpus): v0.9.3 region-tail — international German renders City, Region Postcode (#328 ) (03f48c2 )
docs(eval): v0.9.2 both-order retrain — the anchor and word order fight over German (#326 ) (24b4958 )
feat(eval): order-robustness eval harness + anchor-aware per-locale-F1 + commit diag scripts (#325 ) (82027fb )
feat(cli): parse --default-country to scope the resolver (NY → US state, not a foreign homonym) (#324 ) (86fb18f )
feat(corpus): both-order German synthesis + native-order eval asset (order-robustness) (#323 ) (edbe1f9 )
docs(eval): anchor pilot finding (#239 /#240 ) (#321 ) (3172e9f )
feat: inference-side postcode-anchor channel — the verdict build (#239 /#240 ) (#322 ) (7f4269b )
feat(train): wire the anchor channel through the data pipeline + curriculum (#239 /#240 ) (#320 ) (fa140f8 )
feat(train): gold-span anchor→subtoken alignment for the pilot (#239 /#240 ) (#319 ) (5753e67 )
Refine. (b27c496 )
docs(blog): "The map runs out before the country does" — CJK arena writeup (#314 ) (83b5b8a )
feat(train): postcode-anchor conditioning channel for the de-risk pilot (#239 /#240 ) (#318 ) (8326a0a )
feat(postcode): extend anchor coverage to ES/IT/GB, with GB outward aggregation (#240 ) (#317 ) (affe045 )
eval(postcode): A/B the anchor country posterior — uniform stays, de-biased rejected (#240 ) (#316 ) (0748d9d )
docs(eval): correct night-6 budget — actual ~$11.55, under cap (false alarm) (#315 ) (0bbcaf4 )
Add generated theme. (3237fc7 )
docs(eval): fold KR coarse resolution + TW-blocked confirmation into night-6 postmortem (#313 ) (2fd32f2 )
feat(resolver): KR coarse resolution — point-primary CJK build (#293 ) (#312 ) (2d21bb2 )
train(corpus): bare-street v2 — fix the no-house-number gap (continue-train) (#310 ) (a1670be )
docs(eval): bare-street v2 result (negative) + budget caution (#311 ) (0c75a8c )
docs(eval): night-6 shift postmortem (#309 ) (3437280 )
chore(manifest): pin JP CJK sources (admin-jp/kr/tw, postalcode-jp, KEN_ALL) (#307 ) (774b84e )
feat(corpus): bare-street synth shard — the v0.8.0 harness lever (#308 ) (95eb651 )
train(config): v0.8.0 calibration candidate — v0.7.2 + label_smoothing=0.05 (#306 ) (ec2eb19 )
docs(eval): CJK arena — Japan resolves at 94% with no city polygons (#292 ) (#304 ) (cd773b5 )
feat(resolver): Japan coarse resolution via KEN_ALL name-match (#292 ) (#303 ) (4422eb9 )
feat(normalize): CJK pre-parse normalization — strip 〒, fold full-width (#291 ) (#302 ) (bd3eb72 )
feat(resolver): convention asset — build-from-source, queried on demand (#290 ) (#301 ) (f84c908 )
feat(resolver): Geographic Rule Engine core — convention dispatch (#289 ) (#300 ) (7cf07a0 )
docs(plan): Direction E — the Geographic Rule Engine (epic #288 ) (#299 ) (64d35d6 )
docs(eval): multi-locale coordinate-first resolver report (#287 ) (4115dbc )
eval(resolver): quantify FR/NL coordinate-first PIP-containment (#286 ) (61618cc )
chore(eval): default --wof attaches postcode-locality-intl.db (coord-first on by default) (#285 ) (0dc7797 )
feat(resolver): GB + NL coordinate-first + ES/IT/NL admin rebuild + read-only asset (#284 ) (6b9689d )
feat(resolver): generalize postcode→locality to FR + multi-locale shared table (#283 ) (a015599 )
feat(resolver): postcode/city conflict flag + falsehoods eval (#276 ) (#282 ) (1ab53c3 )
feat(resolver): coordinate-first locality soft-scoring — DE 77→93% (#275 ) (#281 ) (543bc62 )
feat(resolver): postcode→locality candidate table from source (#274 ) (#280 ) (e1d8ecf )
eval(resolver): coordinate-first ceiling probe (#274 ) — hybrid ceiling 93.9% DE (#279 ) (0a7556a )
eval(resolver): PIP-containment metric (#273 ) — gold point inside resolved WOF polygon (#278 ) (f51234e )
docs(plan): coordinate-first resolver & falsehood-aware reconciliation (#277 ) (2b40ea7 )
fix(decoder): hand a trailing postcode over-extension BACK to the city, not to O (#272 ) (1107aff )
PR3 Pilot A: self-conditioning negative result + FiLM ONNX export fix (#271 ) (fbc43b7 )
chore(modal): diagnose_corpus takes --corpus-dir + verifies rows pass the filter (#270 ) (d4a826a )
feat(corpus): assemble the DE-inclusive corpus for the PR3 pilot (#269 ) (30764e4 )
feat(train): PR3 self-conditioning architecture + Pilot A config (no GPU yet) (#268 ) (9e64b3b )
docs(plan): PR3 — the self-conditioned retrain (plan, not a launch) (#267 ) (e428d25 )
docs(blog): humanizer pass — de-stack a tailing negation (#266 ) (035bab0 )
docs(blog): "Does a postcode know what country it's in?" (#265 ) (0ccebba )
feat(anchor): system-gate the postcode anchor's street check (PR1 of system-conditioning) (#264 ) (5e1a41f )
feat(codex): add Canada, UK, and Japan address systems (ca/gb/jp) (#263 ) (ca0d7a5 )
feat(codex): add the French address system (codex/fr) + wire anchor voie + eval region matcher (#262 ) (c818ca9 )
fix(eval): codex-aware region matcher — fold German states to ISO codes (lookupGermanState) (#261 ) (abf8f36 )
feat(codex): add the German address system (codex/de) + wire the anchor to it (#260 ) (aff642b )
feat(codex): new @mailwoman/codex package + position-aware postcode anchor (#240 ) (#258 ) (6c20605 )
feat(eval): wire the postcode anchor into the resolver eval (neural+anchor row) (#240 ) (#257 ) (1fa4805 )
feat(postcode-anchor): GeoNames centroid backfill — adds ES/IT, lifts DE, fixes Milan (#240 ) (#256 ) (39a479a )
docs(reference): add gazetteer/coordinate-source companion section + GeoNames probe (#255 ) (a69d604 )
docs(eval): update night-5 postmortem — browser resolver + dual-target (#253 ) (#254 ) (3caa9d2 )
feat(postcode-anchor): browser flat-binary resolver — completes the dual-target (#240 ) (#253 ) (dda34d6 )
docs(plan): mark the postcode anchor shipped in the staged plan (US/NL/FR/DE) (#252 ) (9002d82 )
docs(eval): night-5 shift postmortem — the postcode anchor (US/NL/FR/DE) (#251 ) (7e1bbce )
feat(postcode-anchor): add NL (clean 100%-placed locale) + WOF data-quality survey (#240 ) (#250 ) (64a77d4 )
feat(postcode-anchor): opt-in fuzzy (edit-distance-1) typo/OCR tolerance (#240 ) (#249 ) (0c407e1 )
feat(postcode-anchor): ancestor-fallback backfill + centroid-accuracy eval (#240 ) (#248 ) (95211f1 )
feat(postcode-anchor): multi-locale postcode anchor — extractor + gazetteer + soft country posterior (#240 ) (#247 ) (9a4dcd8 )
docs(eval): humanizer pass on the German postmortem + reconcile stale pre-run framing (#246 ) (f65bcd1 )
docs(plan): anchor-based parsing & multi-locale architecture direction (#238 ) (5d86f20 )
docs(eval): German order-shard result — order learnable, recipe REVERTed (#237 ) (dd4b7a6 )
docs(eval): add FR to the multi-locale roadmap (not an order locale) (#236 ) (388f529 )
refactor(corpus): locale-generic synthesizer (synthesizeLocaleRow) (#235 ) (60a0d97 )
Multi-locale roadmap + multi-script tokenizer scoping (night-shift 2026-06-02) (#234 ) (f04f6b2 )
Multi-locale German coverage + eval tooling (night-shift 2026-06-02) (#233 ) (b13579c )
docs(blog): rewrite the remaining clipped contrastive negations (#232 ) (77da781 )
docs(articles): house-voice cleanup (concepts + understanding + retrospectives) (#231 ) (4e05e5a )
docs(blog): house-voice cleanup across 13 posts (DeepSeek-reviewed) (#230 ) (6488ae2 )
fix(train): support-aware val F1 + honest blank charts + dashboard legend (Layer 1) (#228 ) (71ce3fc )
fix(decoder): repair fragmented multi-word locality spans (Saint Paul → one span) (#226 ) (d756bd3 )
fix(publish): correct FST filename casing in HF-bucket publish (BCP-47) (#225 ) (a8d6e5a )
docs: two-scoreboards retrospective + blog post (neural vs rules parsing) (#224 ) (137e344 )
eval(v0.8.1): MLM decisive round — verdict DROP pretraining (no ceiling benefit) (#223 ) (b6f6bdf )
eval(resolver): gazetteer-alias locality matching + per-row failure dump (#222 ) (0e9f698 )
chore(train): v0.8.1 decisive-round fine-tune configs (100k, v0.7.2 recipe) (#221 ) (f931bfa )
fix(train): _shard_paths — prefer valid manifest paths, re-root only stale ones (#220 ) (6541ec4 )
chore(train): v0.8.0 fine-tune A/B configs (pretrained-init vs scratch) (#219 ) (0d73c42 )
fix(train): re-root MANIFEST shard paths under corpus_dir (portability) (#218 ) (749b31e )
chore(train): v0.8.0 MLM pre-training config (#217 ) (ef4407e )
feat(train): MLM self-supervised pre-training mode (#216 ) (4bc8267 )
docs(eval): reframe OA eval intro as the neural-vs-Pelias head-to-head (#215 ) (169253f )
feat(eval): neural-vs-Pelias-parser head-to-head on OA + self-reporting (#214 ) (06966d8 )
feat(decoder): AddressTree.system + per-system containment indirection (#213 ) (b8302f2 )
fix(eval): correct OA eval numbers (96.1% loc / p50 2.4km — were fabricated) (#212 ) (831b263 )
feat(eval): OpenAddresses real-point resolver eval (non-circular accuracy) (#211 ) (b5d4d42 )
feat(resolver): exact-match tiering + parent fallback (+8.5pp Acc@1) (#209 ) (11b00b4 )
docs(plan): self-supervised pre-training experiment spec (MLM/ELECTRA vs CLM) (#210 ) (cc5592c )
docs(eval): harness is v0-lineage — reframe to the resolver scoreboard (#208 ) (d050848 )
feat(train): optional Trackio experiment tracking → HF Space dashboard (#207 ) (8b5e747 )
feat(resolver): Direction C Phase 1 — resolver country+abbrev fixes, postcode shard, e2e eval (#205 ) (69487b5 )
fix(docs): escape bare {address, lat/lon} in plan doc — fixes red Docs build on main (#206 ) (70fdab6 )
parser: unit-repair pass + parser-improvement backlog (#201 ) (4d45e66 )
feat(eval): third capability arena — labeled postal-standards edge cases (#200 ) (08bbf09 )
docs(eval): v0.7.2 intersection-bare eval — EXPERIMENTAL verdict (#202 ) (b96ad3e )
docs(plan): resolver routing + end-to-end eval — Direction C plan (#203 ) (f79c370 )
chore(wof): canonical custom-built gazetteer — delete off-the-shelf, reproducible rebuild (8057a8b )
feat(eval): corpus-perturbation neutral arena — the vindication result (f6ee9b3 )
feat(eval): libpostal cross-architecture benchmark + --symmetric-match (513203c )
data(eval): harvested external validation corpora + survey (4d08d3c )
feat(corpus): v0.7.2 — bare intersections + @ connector (eb02bc2 )
test(pipeline): update safeClassify assertion for postcode-repair default-on (1363e02 )
docs(blog): "The model that never saw an intersection" — v0.7 discoveries (2850442 )
fix(modal): vol.reload() so train/diagnose see post-deploy shard additions (36c0a31 )
feat(pipeline): postcode repair on by default (operator-signed, #35 ) (3901fed )
chore(eval): refresh golden v0.1.2 MANIFEST counts/shas (operator-signed) (94893ae )
feat(corpus): intersection shard-build script + export generator (06d69b8 )
feat(corpus): intersection synthesizer — close the #1 harness coverage gap (a3236b0 )
test(decoder): unit tests for #37 tree-validity checker (b894ac7 )
test(neural): unit tests for #35 postcode repair (7e0ed88 )
docs(eval): product-level confirmation — neural lags rule-only at hybrid level (647f333 )
fix(neural): resolveWeights drops model-card on explicit paths → STAGE3 evals empty (2c4c55e )
docs(eval): intersection root-cause — corpus gap, not decode bug (a519f23 )
docs(eval): harness ceiling analysis — release metric is coverage-bound (369c7bb )
docs(eval): night-3 postmortem — calibration gate result + iteration-2 config (30e2099 )
feat(eval): #33 step 2 — lexical-feature locale detection probe (51c1932 )
feat(eval): #33 locale-gate baseline + #31 push-button gate runner (ae77c89 )
feat(decoder): #37 — AddressTree structural-validity checker (ce21571 )
feat(eval): target arbitrary model + postcode-repair in eval harnesses (60a4d94 )
feat(train): #31 — v0.7.0 calibration config (label_smoothing=0.1) (66f2129 )
feat(neural): #35 — deterministic postcode regex repair pass (e34684e )
feat(eval): #34 — deterministic 90/10 dev/test split of golden v0.1.2 (132949a )
fix(docs): unblock docs-build CI — escape MDX <digit, repair links, define tags (c819fe6 )
Format. (6f8ea75 )
feat(eval): postcode-only harness + v0.6.x retrospective and v0.7 plan (d030473 )
feat(eval): postcode-only harness + v0.6.x retrospective and v0.7 plan (fc7dda0 )
docs(evals): v0.6.3 step 100K — HOLD, dilution mechanism confirmed (283f611 )
feat(viz+docs): per-tag F1 charts + containment-and-tree-projection sub-article (e103d4a )
docs(concepts): three bite-size architecture sub-articles (00f35eb )
docs(viz): embed v0.6.x training curves into eval + concept docs (3032b5a )
feat(train): v0_6_4-rebalance-no-street — counter dilution (02d29bc )
feat(scripts): verify-shard-acks gates training on lint acknowledgment (61fa475 )
feat(scripts): training visualization (log parse + SVG line chart) (4e43970 )
chore(scripts): eval-v062-checkpoint accepts output-dir tag arg (35a5784 )
docs(concepts): how-the-model-reasons + corpus-poisoning-vulnerability (6acdfa6 )
feat(scripts): corpus linter v1 — catches "5th Avenue Theatre" class of failures (0f43f01 )
docs(evals): v0.6.2 step 100K eval — HOLD per gate, v0.6.3 addresses the gap (a93b2e0 )
feat(train): v0_6_3-house-venue training config (a73e651 )
feat(scripts): --source-name flag on both shard builders (c35dadf )
feat(corpus): v0.6.3 prep — filter venue pool + synth-house-venue companion shard (a6a6223 )
investigate(eval): confidence distribution probe — both runs equally overconfident (893625a )
chore(scripts): eval-v062-checkpoint defaults to --stage3-fold (38aa01c )
feat(eval): Stage-3-aware fold + v0.6.2b half-weight parallel run (ab6bdbc )
eval(falsehoods): catalog expansion — postcodes + numbers/format/hierarchy rows (76f57b3 )
chore(scripts): v0.6.2 model-card template (b8c3343 )
feat(scripts): v0.6.2 checkpoint eval pipeline (b6f4679 )
docs(evals): fp32-CRF diagnostic — PASS verdict (45b89e4 )
feat(train): v0_6_2-stage3-rebalance training config (831b526 )
feat(train): crf_fp32 diagnostic flag + small training config (839e6db )
feat(scripts): extract-tuples-de-gb for v0.6.2 bilingual no-street shard (00549da )
feat(eval): 2D pre-publish eval gate + structured JSON output (51b7034 )
feat(corpus): synth-no-street counter-example shard for v0.6.2 retrain (8d22415 )
eval(falsehoods): catalog falsehoods-streets.md cases as 22 structured eval rows (497bd65 )
eval(neural): v0-vs-neural harness — honest assessment finds 14.4% pass (b03b13a )
eval(neural): Layer 1 morphology FST against v0.6.1 — decoder-only fix is insufficient (30349d5 )
feat(neural): street-morphology emission prior + ParseOpts wiring (7b61743 )
feat(resolver): street-morphology FST builder (Layer 1 infrastructure) (efc6f2e )
docs(concepts): WOF hierarchy gap + four-layer street-supplement architecture (6084805 )
fix(corpus): synth-street test no longer asserts components.country (94b19ed )
Add wof graph command for node-link JSON output. (1881dc2 )
Flesh out WOF diagram support. (be43fc4 )
Flesh out design. (78b14cc )
Fix loading. (98944c8 )
Flesh out demo clean up. (fd9c023 )
feat(skills): scaffold /night-shift skill (6cadf68 )
feat(skills): scaffold /night-shift skill (2d17725 )
Format. (23948b5 )
Ignore Claude worktrees. (f2f887f )
docs: night shift 2026-05-28 postmortem (a0ca1a3 )
Format. (801b441 )
docs: promote FST gazetteer prior concept to a full article (1ef0e5e )
docs: v0.6.1 error analysis — experimental release with mixed results (a755d28 )
feat(corpus): street-decomposition synthesizer for v0.6.1 (e33dc56 )
You can’t perform that action at this time.