May 4, 2026
Commits
558983a — Mount tsweb on users + data; skip flaky on-prem chat tests
Fixes a deployment crash loop caused by Phase A's top-level from tsweb import ... hoists in auth.py and data_endpoint.py. Since auth.py is imported by every service that needs AuthContext, a hard dependency on tsweb crashed containers that don't mount it. Replaced top-level imports with per-function image layering via Modal 1.1.0's Image.add_local_python_source("tsweb") — only the users and data functions that actually call tsweb at request time get the package.
Also tags two Bruno chat-stream tests (Chat Stream Multi Provider, Chat Stream Per Provider History) with skip-ci. Both call providers=["gemini","modal"] which hits the on-prem Ollama box; it was unreachable from dev, and the 60s per-test timeout × 3 retries pushed the suite to 15+ minutes. Tests remain for manual use when the on-prem box is up.
Changed:
dev/users/auth.py— reverted eagerfrom tsweb import locationhoist; tsweb stays lazy in_resolve_location_context; inline warning against re-adding top-level importdev/data/data_endpoint.py— reverted eagerfrom data import synchoist; layered tsweb onto data image via_data_image = core.dataImage.add_local_python_source("tsweb")dev/users/users_endpoint.py— layered tsweb onto users image via_users_image = core.grizzlebearImage.add_local_python_source("tsweb")bruno/.../Chat Stream Multi Provider.bru— addedskip-citagbruno/.../Chat Stream Per Provider History.bru— addedskip-citag
e3e6cf3 — Add descriptors and reorder demo cards on static site
Mobile-session and model-proxy now lead the demo grid on the static site landing page. Each card gains a short descriptor paragraph (.demo-desc CSS class) explaining what the demo does.
Changed:
dev/static_site/templates/index.html— demo list reordered (mobile-session, model-proxy first); each<li>now includes a<p class="demo-desc">blurbdev/static_site/assets/css/site.css—.demo-descstyling (14px, muted color, 400 weight)