beta: header chip flagged by BETA_MODE config (default on)

This commit is contained in:
Giorgio Gilestro 2026-05-25 22:42:19 +02:00
parent 8bc546220d
commit a7d657e1b4
4 changed files with 20 additions and 0 deletions

View file

@ -90,6 +90,7 @@ class Settings(BaseSettings):
# by app.services.openrouter._resolve_tone.
CASSANDRA_TONE: str = "INTERMEDIATE" # NOVICE | INTERMEDIATE
CASSANDRA_ANALYSIS: str = "SPECULATIVE" # DRY | SPECULATIVE
BETA_MODE: bool = True # Shows a "BETA" pill in the app header. Flip to False at GA.
# Config file locations (overridable for tests)
BASELINE_TOML: Path = Field(default_factory=lambda: CONFIG_DIR / "default.toml")

View file

@ -1708,3 +1708,19 @@ a.btn-secondary:hover { color: var(--accent); border-color: var(--accent); }
.tier-card li.tier-card__excluded { color: var(--muted); }
.tier-card li.tier-card__excluded::before { content: "✕ "; color: var(--dim); }
.tier-card__cta { margin-top: auto; }
/* BETA indicator pill in the app header — see app/templates/base.html. */
.beta-chip {
display: inline-block;
margin-left: 8px;
padding: 2px 7px;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.14em;
font-family: var(--font-mono);
color: var(--bg);
background: var(--accent);
border-radius: 2px;
vertical-align: middle;
user-select: none;
}

View file

@ -138,6 +138,7 @@
<div class="app">
<header class="app-header">
<a href="/" class="brand" aria-label="Dashboard">{{ BRAND_NAME }}</a>
{% if BETA_MODE %}<span class="beta-chip" title="Beta — feedback welcome at hello@read.markets">BETA</span>{% endif %}
<nav>
<a href="/" class="{% if request.url.path == '/' %}active{% endif %}">Dashboard</a>
<a href="/news" class="{% if request.url.path == '/news' %}active{% endif %}">News</a>

View file

@ -9,6 +9,7 @@ from fastapi.templating import Jinja2Templates
from markupsafe import Markup, escape
from app import branding
from app.config import get_settings
from app.services.glossary import wrap_glossary
@ -75,3 +76,4 @@ templates.env.globals["TAGLINE"] = branding.TAGLINE
templates.env.globals["LEGAL_OPERATOR"] = branding.LEGAL_OPERATOR
templates.env.globals["OPERATOR_EMAIL"] = branding.OPERATOR_EMAIL
templates.env.globals["OPERATOR_JURISDICTION"] = branding.OPERATOR_JURISDICTION
templates.env.globals["BETA_MODE"] = get_settings().BETA_MODE