# Changelog All notable changes to Agnes AI Data Analyst. Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html), pre-1.0 — public surface (CLI flags, REST endpoints, `instance.yaml` schema, `extract.duckdb` contract) may shift between minor versions; breaking changes called out under **Changed** or **Removed** with the **BREAKING** marker. CalVer image tags (`stable-YYYY.MM.N`, `dev-YYYY.MM.N`) are produced for every CI build; semver tags (`v0.X.Y`) are cut at release boundaries and reference the same commit as a `stable-*` tag from the same day. --- ## [Unreleased] ### Added - New `marketplace.curators_url` config item (editable via `/admin/server-config` → **Marketplace** section). Drives the "See all curators →" link on the `/marketplace` curated-tab info block; when empty the link is hidden (matches today's behaviour). SSRF-guarded on save (private-IP allowlist, same posture as `data_source.keboola.stack_url`). - `/home` now opens with a value-first intro hero — eyebrow greeting, one-line product framing, **Set up in ~15 min** / **Just browse** CTAs, and a four-pillar row (Data packages · Plugins · Skills · Memory) — so analysts understand *what* the instance is before any install step. - New **Your first session** narrative on `/home` walks through the five beats of a real session (launch → pick project → memory loads → ask → close) with mock terminal frames so the visual rhythm is obvious before the user copies their first command. - Setup wizard inside the install-hero now carries a progress chip (`Step 1 of N · ~15 min · One-time · Reversible`), a thin progress bar, and per-step number badges next to each install block. ### Changed - Default `instance.theme` flipped from `navy` to `blue`. The brand-blue palette is now the out-of-the-box look; `navy` (dark hero + mint-green CTAs) is the opt-in via `AGNES_INSTANCE_THEME` / `instance.theme` / admin server-config. Existing instances that explicitly set `navy` are unaffected; instances relying on the implicit default will switch to blue. - `/home` palette shifted from blue to green/navy: brand accent is now `#2ea877` (mint green) on light surfaces, hero card is navy `#0f1b3a`, code panels are near-black `#0c1224` with warm-yellow `#ffd866` accents. The existing `--hp-primary` token alias is reused so all downstream rules pick up the new green automatically; instance theme overrides via `config.theme_overrides()` still win. - VS Code surface tile on `/home` carries a **Recommended** pill so new analysts default to the editor flow. - "Want to look around first?" section renamed to **Explore your workspace**, with an `id="look-around"` anchor wired to the new hero's secondary CTA. - `/home` setup wizard restructured to match the published design spec section by section: header (eyebrow + heading + lede) floats above the card, install hero is a plain bordered surface (no accent strip), per-step labels drop the `Step N —` prefix, and the closing strip is a single flex row with the `agnes pull` waiting status on the left and the *Already set up? Mark me as onboarded →* fallback link on the right. - VS Code surface tile on `/home` now renders the recommended-layout screenshot (served from `/static/img/vscode-layout.png`) and opens a full-page lightbox on click. Falls back to the labeled EXPLORER/TERMINAL panel when the image is missing. - Workspace install path moved to `~/Desktop/{workspace_dir}` across every step, surface card, and shortcut command. The Step 2 recommendation callout acknowledges home-folder placement as a valid fallback. - Step 1 verify text in the install hero reintroduces the Enterprise plan as the Finance and Legal option alongside Pro / Max 5× / Max 20×. - Step 6 shortcut installs a shell *function* (not an alias) so arguments pass through with `"$@"` (unix) and `@args` (Windows), and offers an end-user **Auto / YOLO** permission toggle — `--permission-mode auto` by default, `--dangerously-skip-permissions` for the YOLO variant. - Step 5 *Or paste manually* fallback `
` is now inline on the copy-script button row (right-aligned when closed, full-width preview when opened); the description above the row reads at the standard step-lede size instead of the previous 13px chip. ### Fixed - Pre-login pages (`/login`, magic-link screens, first-time `/setup`) now honour the configured `instance.theme`. `base_login.html` sets `` from `instance_theme`, and the navy variant flips the `.login-features` hero panel from brand-blue `--primary` to the deep-navy gradient — eliminating the jarring blue → navy flip after sign-in on navy-configured instances. - Skill / agent detail pages nested inside a Flea Market plugin rendered the parent plugin's title on the hero instead of the skill/agent name. The frontend fallback chain branched on `source === 'curated'` and so flea-inner items fell through to `d.plugin_name`, which the inner-detail API populates with the parent entity name. Branch now keys on the presence of an inner segment in the URL so inner items use `d.name || innerName` (the actual skill/agent name) and standalone flea plugins keep their `d.plugin_name`. - `/activity-center` audit-log hero rendered as half-width because `_page_hero.html` was nested inside `
`, a flex row that pinned the time-range + auto-refresh controls beside it. The hero is now a sibling rendered before the `
` so it spans the full container width like every other admin page; the controls keep their original flex row underneath. - Same flex-row squeeze applied to `/admin/users`, `/admin/access`, `/admin/groups`, `/admin/marketplaces`, `/admin/server-config`, `/admin/welcome`, `/admin/workspace-prompt`, `/admin/sessions`, `/admin/sessions/`, `/admin/usage`. Each had `_page_hero.html` nested inside a `display: flex; justify-content: space-between` toolbar that pinned the page filter/search controls next to the hero. Hero now renders outside the toolbar so it spans the full container width; toolbar continues to hold only the controls. - Page-shell canonicalised — `.container` in `style-custom.css` now sets the canonical `1280px` max-width and `16px 32px 48px` padding so every page (admin, marketplace, catalog, profile, /home, /setup-advanced) inherits the same nav-to-hero gap and side gutters. Per-page `.container:has(.) { max-width: none }` + `.-page { max-width: 1400px }` overrides removed from `admin_users`, `admin_access`, `admin_groups`, `admin_marketplaces`, `admin_welcome`, `admin_workspace_prompt`. `.page-header--hero` no longer self-constrains via `max-width: var(--width-app)`; the container provides the width so the hero sits flush with the toolbar / table beneath it. - `_page_chrome.html` trimmed to just the page-background tint for the redesign scopes (`/home`, `/store`, `/setup-advanced`); the duplicate `.container` + `.container > main` rules it carried are redundant with the new canonical container. - Marketplace hero unified with the canonical `.page-header--hero` box. The bespoke `.mp-hero` rule duplicated padding, radius, gradient, shadow, and font sizes that already lived on `.page-header--hero`; markup is now `