Skip to content

Releases: qte77/ldnmxx-hack

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 00:27
90d6328

v1.9.0 — Arc 018: post-launch polish

Input forgiveness, honesty, config-separation, and a visual/UX pass — all live on sortmy.london.

Input forgiveness

  • Outward postcodes (#233): "food hygiene near SE1" — the app's own placeholder — now resolves; a
    bare SE1/E8/N1/SW1A works when there's no full postcode. Migration 0006 seeds outcode centroids;
    durable across the daily cron (baked into the published gazetteer artifact too).
  • Scam natural-language (#232): "is <firm> a scam" now matches (the firm name-stem inside the
    question) — still a flag routing to the FCA register, never a verdict.

Honesty

  • Row-read (#230): the bbox widen starts at 0.5 km — a LIVE-measured 11.3× fewer rows read
    (3,248 ≤ 4k), and the over-claimed "≥10×" docs corrected to the real numbers.
  • Record dates (#234): each corpus's date line matches its semantics — care "data as of", food
    "inspected {date}", wander omits it (no more a heritage listing year shown as data freshness).

Config-separation

  • One shared usecase catalog (#235): the UI and Worker read a single source
    (shared/usecaseCatalog.ts) — no more drifting id/title/example; routable is derived.

Visual/UX

  • P5 (#237): human distances (<50 m / ~N-min walk, no more "0 km"), per-workflow glyphs, the
    result title is now the official-source link, de-duped authority, a one-line "Sources & licence:",
    a progressive hero (dek collapses after a search), suggestion chips, and a rotating placeholder.
  • No-match card (#236): routable workflows say "Try typing …"; never-auto-routed ones (Founder's
    Copilot, Sort My Route) get an accurate "Open →" ?usecase= link, not a fake keyword.

Every phase: strict RED-first TDD, CI-gated, per-phase deploy + live tier3 sweep (axe 0/0 across 3
theme variants × light/dark, no model-host hits).

v1.7.0 — Sort My Food Hygiene

Choose a tag to compare

@qte77 qte77 released this 23 Jul 15:59
4adc5c8

Arc 016 P4: a NEW civic usecase (postcode -> nearest food-hygiene ratings with inspection dates + official FSA links), built register-only - a corpus registry entry, a usecase JSON, one UI entry, and an e2e flow; zero engine edits. Serves FHRS (62.9k London establishments) from D1 via the keyless pipeline, real-rows bundled sample as fallback, FHRS OGL attribution swap-gated. See CHANGELOG.

v1.6.0 — Care real data (CQC directory)

Choose a tag to compare

@qte77 qte77 released this 23 Jul 15:03
e6a0a43

Arc 016 P3: Sort My Care (the flagship) now serves 9,345 real London care locations from D1, ingested keylessly from the CQC directory (the Syndication API is 403-gated). Signpost-honest: no ratings shown (link out to the official CQC page), community-pharmacy coverage gap stated, CQC OGL attribution rendered and enforced by the swap gate. See CHANGELOG.

v1.5.0 — Wander real data + keyless ingest pipeline

Choose a tag to compare

@qte77 qte77 released this 23 Jul 12:19
08008f6

Arc 016 P1+P2: the keyless ingest pipeline (weekly Action -> corpus-data release -> daily D1 cron with min-rows + licence-attribution swap gates) and Sort My Wander serving REAL data - 23.7k NHLE listed buildings + 12.2k OS Open Greenspace sites (London) from D1, with live Historic England / OS Crown-copyright attribution and a freshness-recency e2e assert. Bundled samples remain the outage fallback. See CHANGELOG for detail.

v1.4.0 — Sort My Route, footer version, cache-poisoning fix

Choose a tag to compare

@qte77 qte77 released this 23 Jul 00:41
64b6e66

Renames the step-free flow to Sort My Route (old ?usecase=on-it links fall back to the flagship) · the footer now shows the shipped version (build-time inject) · fix: the Pages SPA fallback can no longer be cached as an immutable asset response (ui/public/404.html disables it) after the deploy-window cache-poisoning incident — full detail in CHANGELOG + AGENT_LEARNINGS.

corpus-data (rolling)

Choose a tag to compare

@github-actions github-actions released this 23 Jul 11:32
a6e0aaf

Rolling normalised corpus artifacts published by ingest.yml. Consumed by the Worker ingest cron.

v1.3.0 — real-data operations: D1 live + self-monitoring

Choose a tag to compare

@qte77 qte77 released this 22 Jul 23:36
7eab134

v1.3.0 — real-data operations: D1 live + self-monitoring

  • D1 provisioned + live (sortmy_london_corpus, #13 closed): schema applied, DB binding on the
    deployed Worker; Pages config stays D1-free (the Worker is the sole data access, ADR 0002).
  • Empty-store fail-safe (#171): an unseeded gazetteer degrades to the bundled sample — verified
    LIVE against the empty store (sweep PASS, flagship 5/5 viewports). An outage, misconfig, or
    not-yet-seeded store can never break Care.
  • Tier-3 uptime monitor (#173): a 6-hourly (+ on-demand) credential-free Action sweeps the live
    site; FAIL ⇒ red run + artifacts + a deduped alert issue. First run green.
  • Plan/handoff 015 synced: ≈85% complete; the single remaining gate is #161 (NHS ODS TRUD,
    deferred) → then W5·B2/B3 (ingester + cron re-seed) → W4 real corpus.

Full detail: CHANGELOG.md.

v1.2.0 — real-data foundation: D1 corpus store + licence gate

Choose a tag to compare

@qte77 qte77 released this 22 Jul 22:23
1e63374

v1.2.0 — real-data foundation: D1 corpus store + licence gate

  • Engine (W6, #162): read-through CF D1 corpus store behind a CorpusSource seam — one SQL
    view per corpus over the frozen CorpusRecord, bundled sample as offline/outage fallback, D1
    binding shipped commented-out until provisioning. Interpreter untouched (open/closed).
  • Licensing (ADR 0002): serving from our own store is redistribution → licence-gated per
    source via license/redistribute_ok in data/sources.json (8-source audit). Care pivots to
    NHS ODS bulk via TRUD (the live NHS API forbids caching, #161); FCA stays link-only,
    confirming the shipped Scam design; OSM is ODbL-share-alike-conditional.
  • Security: fast-uri 3.1.4 (high) · dompurify 3.4.12 (low) · transitive sharp → 0.35.3
    via npm override
    (high, GHSA-f88m-g3jw-g9cj; boot-smoked) · dependabot ignore rules encode the
    deliberate TS-6 + zod-3 pins (#163#166).
  • Docs: ADR 0002 + ADR 0001 amendment · engineering-practices (two-channel licence gate) ·
    docs/glossary.md (all abbreviations, cross-referenced) · README/architecture synced to the
    shipped state (GitHub Models tier dropped from the free chain).

Full detail: CHANGELOG.md.
Not yet deployed — make deploy publishes; the real NHS ODS ingest is tracked in #161.

v1.0.0 — Groundwork (Londonmaxxing 003 final build)

Choose a tag to compare

@qte77 qte77 released this 06 Jul 08:45
01d2c95

Groundwork — the final Londonmaxxing 003 hackathon build, frozen at the end of the hack day (4 Jul 2026, commit 01d2c95). Development continued afterwards on main.

One AG-UI/A2UI workflow engine on a single Cloudflare Worker: POST /run?usecase=<id> drives a runStages loop (plan → tool → render) and the agent streams A2UI cards — it paints the interface, not just text. Two interchangeable London workflows behind one ?usecase= switch.

▶ Live demo: https://qte77.github.io/ldnmxx-hack/ · Worker API: https://ldnmxx-hack-worker.cloudflare-driveway392.workers.dev

Shipped in v1.0.0

  • Phase-1 E2E: SPA → POST /run?usecase=<id> (SSE) → built-in A2UI cards; useAgentSSE transport; runStages per usecase (founders-copilot + thin on-it); console Arize span per stage; optional in-dashboard BYOK; ui/worker CI + GitHub Pages deploy (#16, #17).
  • Track B search_opportunities render via a real OpenRouter model, with a deterministic stub fallback (#19); raised max_tokens so render_ui isn't truncated (#22).
  • Theme toggle + ?demo=1 keyless auto-run (#20); live A2UI component catalog + Track-A default + 100% worker observability (#24); usecase toggle swaps the example query (#25).

Switches

?usecase=founders-copilot|on-it · ?demo=1 (keyless stub) · ?theme=light|dark · BYOK (Authorization: Bearer <key>).

Deferred (post-v1.0.0 / roadmap)

AG Grid (#6), full Track A voice loop (#4 / #7 / #8), Track B depth (#9), live Companies House filing (#12), D1 (#13), A2A endpoint (#11), real Arize OTLP export (#21), AI Gateway wiring (#29), Phase-2 model pipeline (#18).

Full history in CHANGELOG.md.