peregrine/app
pyr0ball 95c5a12196
Some checks failed
CI / test (push) Has been cancelled
feat(cloud): add Heimdall tier resolution to cloud_session
Calls /admin/cloud/resolve after JWT validation to inject the user's
current subscription tier (free/paid/premium/ultra) into session_state
as cloud_tier. Cached 5 minutes via st.cache_data to avoid Heimdall
spam on every Streamlit rerun. Degrades gracefully to free on timeout
or missing token.

New env vars: HEIMDALL_URL, HEIMDALL_ADMIN_TOKEN (added to .env.example
and compose.cloud.yml). HEIMDALL_URL defaults to http://cf-license:8000
for internal Docker network access.

New helper: get_cloud_tier() — returns tier string in cloud mode, "local"
in local-first mode, so pages can distinguish self-hosted from cloud.
2026-03-10 12:31:14 -07:00
..
.streamlit chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
components feat: paste/drag-drop image component, remove server-side Playwright capture button 2026-03-03 14:40:47 -08:00
pages feat(cloud): fix backup/restore for cloud mode — SQLCipher encrypt/decrypt 2026-03-09 22:41:44 -07:00
wizard feat: BYOK unlocks LLM features regardless of tier 2026-03-02 11:34:36 -08:00
__init__.py fix: add app/__init__.py so wizard submodule is importable inside Docker 2026-02-25 21:41:09 -08:00
app.py feat(peregrine): wire cloud_session into pages for multi-tenant db path routing 2026-03-09 20:22:17 -07:00
cloud_session.py feat(cloud): add Heimdall tier resolution to cloud_session 2026-03-10 12:31:14 -07:00
feedback.py fix: save form data to non-widget state on Next, fix disabled timing, pass page title 2026-03-03 15:17:45 -08:00
Home.py feat(peregrine): wire cloud_session into pages for multi-tenant db path routing 2026-03-09 20:22:17 -07:00
telemetry.py feat(cloud): Privacy & Telemetry tab in Settings + update_consent() 2026-03-09 22:14:22 -07:00