Changelog
What shipped, phase by phase — summarized from the build history.
UI-2
UnreleasedApp-shell polish — one nav, no emoji icons, premium pass on every page.
- Shared <AppNav/> (sticky, backdrop-blur, active-page state) replaces 11 duplicated per-page headers, mounted once via an app/(app) route-group layout
- ⌘K hint chip in the nav opens the existing command palette
- Command palette, empty states, and artifact chips: emoji glyphs replaced with hand-inlined SVG icons
- Consistent page headers, card hover states, and focus-visible rings across Chat, Documents, Missions, Agents, Templates, Evals, Usage, Automations, Playground, and Voice
- Chat page: hue-tinted avatar tiles per agent, refined message bubbles, compact mono tool-call cards
UI-1
2026-07-18Premium landing redesign — product-forward bento grid + display hero.
- New display hero with a live agent-trace animation and gradient headline
- Six-pillar bento feature grid with hue-tinted icon tiles and hand-built product vignettes (chat, mission board, sparkline)
- Honest stats strip (9 agents, 2 runtimes, 106 backend tests, 21 E2E, 94ms p95) and an ops-layer section
- Shared hue tokens, dot texture, and reveal-on-scroll primitives added to globals.css for reuse across the app shell
Phase 12
2026-07-16Production hardening — auth, rate limiting, deploy safety. Phase 12 complete.
- Bearer JWT auth + per-resource ownership across all 15 routers; pages gated via proxy.ts, / and /changelog stay public
- Per-user (JWT email, else IP) rate limiting with a Redis-backed store and a memory fallback
- Deploy safety: one-shot DB migration job, /health/ready readiness check, background embedding-model pre-warm
- 98 → 106 backend tests across the phase; 21/21 E2E with the new auth flow
Phase 11
2026-07-16Quality pass — E2E coverage, pagination, error monitoring, a real load test.
- Playwright E2E suite: 20 tests across two projects (deterministic + LLM-dependent), skippable via E2E_SKIP_LLM=1
- Uniform limit/offset pagination + deterministic ordering on every DB-backed list endpoint
- DSN-gated Sentry error monitoring, backend and frontend, no-op until a key is configured
- k6 load test: lists p95 94ms at ~414 rps, writes p95 96ms, 0% errors over 48.6k requests
Phase 10 N
2026-07-16Voice agent via Vapi — keys-optional scoped demo.
- New /voice page: live call via the Vapi web SDK when a key is configured, a designed not-configured state otherwise
- GET /api/v1/voice/config gates on VAPI_PUBLIC_KEY server-side — the API key itself is never exposed to the browser
Phase 10 M
2026-07-16Second agent runtime — Pydantic AI alongside LangGraph.
- New pydantic-ai-slim runtime with real delta streaming, wrapped web_search + search_documents tools, and budget checks
- Per-agent runtime selection (default: LangGraph); new built-in Fact Checker agent runs on the Pydantic AI path
Phase 10 L
2026-07-16Prompt Playground — side-by-side model/temperature A/B testing.
- New /playground page: run the same prompt against two model configs in parallel, compare cost, latency, and output
- Load a variant's model + system prompt straight from an existing agent; save and reload comparisons as experiments
Phase 10 K
2026-07-12Command palette, designed empty states, and this changelog.
- ⌘K / Ctrl+K command palette for jumping to any page without the mouse
- Shared EmptyState component — replaces bare "No X yet" text across Chat, Documents, Missions, Agents, Evals, Automations, and Templates
- This changelog page
Phase 10 J
2026-07-12Sandboxed artifacts side panel.
- Agent replies can render code, markdown, and Vega-Lite charts as clickable chips that open in a resizable side panel
- Streaming-safe fence parser and an escape-then-transform markdown renderer with a URL allowlist
- Chart rendering (vega-embed) is lazily imported so it never bloats the main bundle
Phase 10 I
2026-07-11Scheduled runs + inbound webhooks — the automation platform half of Phase 10.
- Cron-scheduled mission runs (Automations page) backed by an arq worker poller
- Inbound webhook triggers with bearer-secret auth and {payload} template substitution
- Both surfaced in a new /automations page
Phase 10 H
2026-07-11Roster expansion — four new built-in agents.
- SQL Analytics agent — natural language to read-only SQL over a demo schema
- Competitor Monitor, Meeting-Notes→CRM, and Outreach agents, each with an eval case
- send_slack and push_to_crm tools that degrade gracefully without keys configured
Phase 9
2026-07-11Reliability pass — durability, web access, and ops hygiene.
- Pluggable web search (Tavily / Exa / SearXNG) plus a trafilatura-based fetch_url tool
- Durable Postgres LangGraph checkpointer, replacing the in-memory saver
- Durable arq/Redis orchestration — mission runs survive an API restart
- Seeded golden eval cases as a real CI regression gate
- Structured JSON logging, request-ID middleware, env-configurable CORS
Phase 8
2026-07-11LangGraph runtime, landing page, and production packaging.
- LangGraph agent runtime promoted to the default execution path
- Premium landing page with a live agent-trace hero and feature grid
- Interview-grade README, DEMO.md, and LICENSE
- Local production packaging — Dockerfiles, one-command compose, Kubernetes manifests