Captures real wall-clock + real NVML energy + Mellea grounding
pass-rate from the warmed lablab demo Space, run on 2026-05-09.
All four addresses pass with all five Stones firing on the three
single_address queries; Carleton Manor falls through to a
neighborhood-intent route because the geocoder can't pin the
literal NYCHA development name (documented as such, not failure).
Headline numbers:
median wall-clock 123.4 s
median per-query energy 1.51 Wh / 5435 J
median tokens / query 4434
calls measured on real GPU 48 / 48 (100%)
Mellea grounding pass rate 4 / 4 on every query
Adds:
scripts/probe_benchmarks.py — collector that consumes
/api/agent/stream, accumulates the full SSE trace, and
emits a per-query JSON record (paragraph, mellea, emissions,
by-Stone fired counts, errored vs by-design skips, geocode).
Reproducer for any row in BENCHMARKS.md.
docs/BENCHMARKS.md — per-query result tables + aggregates +
where-the-energy-goes bre…
docs: full README + new EMISSIONS / DEPLOY / CHANGELOG / CONTRIBUTING
Documents the post-droplet L4 topology, the per-call NVML energy
ledger, and the production deploy commands so the repo presents
itself the way an open-source civic tech project should — without
breaking any of the existing app structure or deploy paths.
New files
- docs/EMISSIONS.md full pipeline for real GPU power readings:
what's measured vs. estimated, the NVML
sampler in inference-vllm/proxy.py, the
bracket-sample LLM client path, the
hardware fallback table, and how to verify
with scripts/probe_stones_fire.py.
- docs/DEPLOY.md production topology diagram, env-var
reference for both Spaces, per-Space
deploy commands, local-dev recipes.
- CHANGELOG.md release log starting from the v0.5.0
hackathon submission tag.
- CONTRIBUTING.md quickstart + repo structure + house …
fix(redeploy): use cached huggingface-cli login by default
HF_TOKEN was a hard requirement; HfApi() falls back to the
~/.cache/huggingface/token written by 'huggingface-cli login' so the
env var is unnecessary when the user is already authed.
- update_hf_env.sh: HfApi(token=os.environ.get('HF_TOKEN')) — None
routes to cached login.
- redeploy.sh: replace the HF_TOKEN guard with a real auth probe via
HfApi().whoami(); exits early with a clear hint if neither path is
authed.
- runbook: drop the HF_TOKEN= prefix from the quick-redeploy snippet.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Mark scripts/update_hf_env.sh + scripts/redeploy.sh as landed (was a 'gap')
- Add RIPRAP_NYCHA_REGISTERS=1 to the post-redeploy env block (without
it the FSM never attaches step_nycha / step_doe_schools / step_doh_hospitals)
- Document the May 9 source-committed droplet fixes:
* _build_chip_tensor 5-D handling for eo_chip_cache chips
* TerraMind synthesis adapter via /v1/terramind dispatch
Both inherit on destroy + redeploy via scripts/deploy_droplet.sh
- Bump 'Last verified' to 2026-05-09 with all three terramind paths
+ prithvi_eo_live confirmed firing in the live trace
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Live-introspected from droplet 569363721 (2026-05-06). Captures exact
docker run flags for vllm + riprap-models, ROCm/Docker apt sources,
firewall state, startup/restart behavior, secrets inventory (names
only), health-check commands, and a gaps list (update_hf_env.sh and
redeploy.sh are missing).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sync: bring HF Space to parity with origin/main (squash, XET-backed)
Squash-merge of all commits on origin/main not present on HF Space:
- fix(riprap-models): port v2 test_transform patch (services container)
- feat(map): wire TerraMind LULC + Ida 2021 HWM map layers
- fix(map): MapLegend booleans, FloodNet tier proxy
- fix(slides): deck visual fixes
- docs: live-system screenshots (now as LFS/XET pointers, not raw blobs)
- chore: repo cleanup, session artifacts to docs/sessions/
- chore: LFS tracking rules for screenshot and slide PNGs/PPTX
Binary files (screenshots + deck.pptx) are stored as git-lfs/git-xet
pointers so HF's pre-receive hook accepts them. git-xet handles
upload to XET object store during the push.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Squashed from 5438cc8..6904684. The slides/asce/deck.pptx is tracked
via git-lfs (added *.pptx to .gitattributes), so this commit carries
only the LFS pointer — no binary blob in history.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bumps docs/design_handoff/ from v0.4.4 to v0.4.5. Drops in:
V0.4.5_SPEC.md — nine polish deltas on top of shipped v0.4.4:
1. Status semantics — split `error` into 5 states
(fired / silent_by_design / warned / errored / not_invoked)
2. Capstone meta-card field-mapping (rerolls, grounding pass
count, citations resolved, wall-clock)
3. Provenance roster: full inventory per Stone, not_invoked
slots rendered explicitly
4. Touchstone gains TerraMind LULC + Prithvi-NYC-Pluvial cards
5. Lodestone gains the fine-tuned TTM card alongside zero-shot
6. Drop the "anomaly" tag (redundant after #1)
7. LAYERS panel restructured by Stone
8. Card-to-map hover linking + fitBounds() on register click
9. Stone-tinted accent tokens (5 muted hint colors, 3px left-rule
on Stone headers, 6px dot in cold-start, print → #999)
CLAUDE_CODE_PROMPT.md — points at v0.4.5 spec; v0.4.4 README stays
as reference for everything not changing.
Ripr…
docs: drop in design handoff bundle (Findings v0.4.4)
Vendors the entire design_handoff_riprap_findings/ archive under
docs/design_handoff/ — README.md + CLAUDE_CODE_PROMPT.md + JSX/HTML
prototypes + tokens.css. Kept alongside the code so the JSX references
are inspectable next to the Svelte port that consumes them.
The JSX is React-based prototype, not production. Per the handoff:
> Recreate them as Svelte components. Lift visual values, copy, and
> interaction logic from the references; do not transpile JSX to
> Svelte.
This branch ships the v0.4.4 Findings region (5 Stones, 12 card
variants, run-health strip, smart provenance, hover linking, card
grammar reference) following that order of work.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>