Spaces:
Sleeping
Sleeping
Commit History
-
ui: center empty-state subtitle block (override prose p margin)
Verified signatureb1b0483 -
ui: remove offline-version button + offline Space refs; center empty-state subtitle
Verified signature7661c7f -
header: white cross-link pill (override prose link color)
Verified signature375457f -
header: link to the offline (in-browser) Space
Verified signaturef34f3e7 -
deploy: refactor app onto shared coastwise/webui (server behavior unchanged)
Verified signature5e0c2e6 -
docs: link the companion offline (in-browser) Space
Verified signatureda73657 -
fix(ui): balance empty-state subtitle so centered text reads cleanly
Stephen Lee +1: Claude Opus 4.8 (1M context)The intro paragraph was centered but ragged, ending on a lone "above." orphan. Add text-wrap: balance (and explicit text-align: center) to even the line lengths and drop the orphan. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>3688d54 -
fix(ui): adapt embedded search field to dark mode; 44px touch targets
Stephen Lee +1: Claude Opus 4.8 (1M context)The prior search-field refinement set background:#fff plus .dark-prefixed override selectors, but Gradio mangles .dark custom selectors so they never applied — the field rendered white in dark mode. Use the mode-adaptive var(--block-background-fill)/var(--border-color-primary) tokens instead (white in light, slate in dark, matching the cards) and drop the dead .dark rules. Raise the Refresh button to the 44px touch-target minimum to match Ask. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>696c693 -
perf: deterministic-first model routing; trim model ctx/tokens
Stephen Lee +1: Claude Opus 4.8 (1M context)On the live CPU Space the model sat on the hot path for every question. Reorder interpret_question to try the deterministic source lookup first and call MiniCPM only when a question doesn't cleanly resolve (messy/underspecified input) — clean questions and the example chips now answer instantly, while the model still runs and normalizes the hard cases. Trim n_ctx 2048->1536 and max_tokens 400->200 so the calls that do happen are lighter. Tests: route the two model-path tests through genuinely underspecified questions (no explicit species token) so they still exercise the model + its fact-type guard. 171 pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>6d498ea -
style: refine search field + Ask button (focus, dark mode, centering)
Stephen Lee +1: Claude Opus 4.8 (1M context)Strip the Gradio block frame around the question field, add a focus ring and dark-mode input styling, and center the embedded Ask button via symmetric insets so the theme's hover transform can't displace it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>cd60448 -
fix: shorten short_description to satisfy HF's 60-char metadata limit
Stephen Lee +1: Claude Opus 4.8 (1M context)Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>2fa10cf -
fix: install llama-cpp-python from prebuilt CPU wheel (Space build was failing)
Stephen Lee +1: Claude Opus 4.8 (1M context)The live Space (Python 3.13) had no matching wheel and was compiling llama.cpp from source, which timed out -> BUILD_ERROR, taking the whole Space down. Point pip at the abetlen CPU wheel index and pin 0.3.29, which ships a py3-none-manylinux x86_64 wheel that installs without a compiler. Also drop pytest from the runtime requirements (test-only). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>e1afbd8 -
docs: fix hackathon tags to canonical namespaced slugs; honest claims
Stephen Lee +1: Claude Opus 4.8 (1M context)The org's real tag vocabulary is namespaced (track:/sponsor:/achievement:); the previous flat slugs (backyard-ai, openbmb, off-brand, ...) would not have registered for any track or prize. Corrected to: track:backyard, sponsor:openbmb, sponsor:openai, achievement:offbrand, achievement:offgrid, achievement:tinytitan, achievement:bestdemo - Drop best-agent: CoastWise is a source-validated Q&A pipeline, not a multi-step agent; claiming it would be dishonest. - Claim Off Grid (achievement:offgrid): fully offline core + in-process local model, no hosted LLM — a genuine, strong claim. - Reflect MiniCPM running in-process live on the Space (warmed at startup). - Rewrite positioning with an explicit honest basis per tag, and list what is deliberately NOT claimed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>695af4f -
feat: warm up in-process MiniCPM at startup; lock its lazy load
Stephen Lee +1: Claude Opus 4.8 (1M context)- app.py: spawn a daemon thread at startup that triggers the interpreter once, so the ~1GB GGUF downloads/loads off the request path. Keeps Space boot non-blocking and the first real question fast. No-ops in deterministic mode (no model configured) and never raises. - ai.py: guard the interpreter's lazy model load with a double-checked lock, so a question arriving while the warm-up is still loading can't trigger a second concurrent load. 171 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>2bbc136 -
feat(ui): streamline angler-focused UI
Stephen Lee +1: Claude Opus 4.8 (1M context)- Remove the optional "Beach or coastal area" field; location is parsed from the question itself (e.g. "...from Pacifica today?"), simplifying the ask flow to a single input. - Hide Gradio's stock chrome footer so the app reads as a finished product; the conservative decision-support disclaimer remains. - Expand CDFW/CDPH to full agency names on first mention (empty state) to reduce jargon for the fishing audience. - Add a subtle on-brand SVG fish accent to the empty state. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>408188e -
feat: source-derived Q&A with statewide CA ocean species coverage (#1)
Stephen S. LeeUnverified signatureSource-backed Q&A over the full California ocean sport-fishing species set. - 78 distinct species with source-verified facts (size/bag/season/closure), every value traced to a CDFW page or CCR Title 14: groundfish (RCG complex), halibut, surfperch, seabass, sharks, sturgeon, crab, salmon, SoCal gamefish (kelp/sand bass, sheephead, barracuda, bonito, yellowtail), nearshore species, invertebrates (spiny lobster, scallops, squid, clams), and no-take species. - Species resolution: model (MiniCPM) + deterministic name search with a guard that prefers specific user-typed aliases (length-aware scoring), plus a rule-card posture fallback for species without an extracted fact. - "Refresh official sources" applies live snapshot freshness to the session; structured facts stay curated and are never auto-derived from fetched HTML. - Answers state regulations directly (source shown in the evidence section). 171 tests pass; verified end-to-end on the local MiniCPM model server.c1b067e -
docs: add backlog and handoff notes for next session
Stephen Lee +1: Claude Opus 4.8 (1M context)Captures what shipped 2026-06-15 (UI redesign + deploy), the open submission backlog (demo video, social post, openai-codex integrity, openbmb/tiny-titan, source-derived-qna UI reconciliation), and handoff context. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>55bb211 -
chore: pin Gradio 6.18 sdk_version and publish live Space URL
Stephen Lee +1: Claude Opus 4.8 (1M context)- README sdk_version: 6.18.0 so the Space builds on Gradio 6 (theme/css are applied via launch(), which is Gradio-6 behavior; on 5 the styling drops). - Bump requirements to gradio>=6. - List the live Space URL in the README. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>a1b9f05 -
feat: redesign CoastWise UI (Ocean & Trust) and harden source freshness
Stephen Lee +1: Claude Opus 4.8 (1M context)UI/UX (ui-ux-pro-max "Ocean & Trust"): - Custom teal/navy theme with Lexend + Source Sans 3, branded header with offline-ready badge, status-badge answer cards, an honest "How CoastWise reached this answer" disclosure, example-question chips, light/dark pairing, responsive layout, and WCAG-minded contrast/focus. - Search-bar layout: the Ask button is embedded inside the question field. - Top source bar shows "Sources updated <time> - <freshness>" with a compact refresh icon button. Gradio 6 fixes: - Apply theme/css via launch() (silently ignored on gr.Blocks in Gradio 6). - Set answer text via the mode-adaptive --body-text-color so colors stay legible in light and dark (Gradio mangles .dark custom selectors and its ".prose *" rule outranks single-class colors). - Bounded, concurrent, offline-first Refresh that never hangs the UI, with a "Checking..." state and graceful "using last-good cache" messaging. Content/data: - Re-stamp the bundled seed cache to 2026-06-15 so an…4a604dd -
docs: revise qna normalization design
Stephen Lee5f3f619 -
docs: design source-derived qna
Stephen Leef6f9e0a
-
docs: complete Gradio smoke record
Stephen Leec201f18 -
docs: record source qna verification status
Stephen Lee66df920 -
fix: cover real query source retrieval gaps
Stephen Lee5aad229 -
feat: ship source-backed Gradio Q&A
Stephen Leea975979 -
feat: add official source cache foundation
Stephen Leea3c85ad -
feat: answer crab season from cached evidence
Stephen Lee8857545 -
feat: guard cached evidence synthesis
Stephen Leedce1360 -
feat: build cached evidence packets
Stephen Lee38d8c96 -
feat: add real query cache coverage
Stephen Lee95941cd -
feat: normalize real query aliases
Stephen Lee7cdae4e -
Block bare Dungeness topic fallbacks
Stephen Leed7e6d20 -
Tighten Dungeness fallback guard
Stephen Lee12498dd -
Tighten Dungeness generic fallback tests
Stephen Lee42968f0 -
Allow concrete Dungeness harvest answers
Stephen Lee12b7082 -
Tighten Dungeness fallback matcher
Stephen Lee222f0a1 -
test: catch more dungeness unknown status fallbacks
Stephen Lee5d0e344 -
test: catch unavailable dungeness harvest status
Stephen Lee21993da -
test: catch dungeness harvest status without authority
Stephen Lee787bc14 -
test: catch dungeness harvest status fallback
Stephen Lee9b8306e -
test: allow sourced dungeness open season answers
Stephen Leebd3c0a8 -
test: catch dungeness harvest intent fallback
Stephen Leedd077ea -
test: catch dungeness harvest status fallback
Stephen Lee7a9c247 -
test: flag dungeness open closed alternatives
Stephen Lee8e567a4 -
test: narrow dungeness concrete result guard
Stephen Leea2a9026 -
test: allow concrete dungeness direct answers
Stephen Lee7c45bab -
test: broaden dungeness fallback guard
Stephen Leea4b0d07 -
test: use semantic dungeness fallback guard
Stephen Lee9a762a9 -
test: bound forbidden claim matching
Stephen Leec5ee242 -
test: tighten forbidden claim negation scope
Stephen Lee6af4519