Landing Zone · Delivery Board

Everything shipped or in motion — last 48 hours

July 6–7, 2026 · full 48h dev delta promoted to QA — every item itemized. Green = live on QA (test it) · Blue = on dev (review, promotes next) · Orange = still building

70On QA · ready to test
6On dev · ready to review
4In progress
5Held from QA
PR Area What changed Status
Live on QA — ready to test · Chat & Search
#908Chat streamingStreaming→final markdown handoff — completed lines render as markdown mid-stream, no snap/flicker on finalize (CRLF fixed)QA
#844ChatResponse-bubble + conversation-title fixes; noun-phrase session titlesQA
#761ChatWord-by-word typewriter reveal for buffered responses, with a per-user animated-typing toggle that persists across reloadsQA
ChatThinking effort defaults to off and persists the user's choice; thinking_applied/skipped breadcrumbs; top_p dropped when temperature is setQA
Chat / searchv2 web-search tool gated on the user toggle and persistedQA
#898Chat / filesUser-turn attachment chips persist in the message bubble across reload; composer stays clear on returnQA
#905Chat / filesAttached-file chips use real icons; composer chips align/wrap onto rows and detach-only (never delete the My Stuff file)QA
ChatFriendly transport-error message; SSE [DONE] sentinel handled; best-effort title falls back on 503QA
ChatScroll behavior — instant scroll on message entrance, debounced burst scroll, scroll-to-bottom after image appendQA
ChatEmpty placeholder bubble + premature action row suppressed; ordinary auto-routing toasts removedQA
ChatStreaming/markdown font-size unified; session timestamps fixedQA
Live on QA — ready to test · Prompts & Workflows (admin)
#896Prompts adminRow actions reworked — row-click opens the editor, inline pencil/archive/trash icons, confirmed hard deleteQA
#909Prompts adminRow checkboxes aligned (no hover/select layout shift); 30-second undo grace bar on deleteQA
#910 #867 #872Prompts adminActive/Inactive vocabulary + toggle on row and editor; status filter; bulk set active/inactiveQA
#906Prompts adminHomepage syncs on archive without a manual refresh; table sort/filter prefs persist across reloadQA
#901 #902Prompts adminArchive-state sync in place, info-icon description popover, Status column moved to far right, Escape/edge polishQA
#900Prompts adminEmpty category accepted so unassigned prompts save cleanly (was rejecting every save)QA
#885 #887PromptsPer-prompt admin-authored Description shown on category rows (clears properly when emptied)QA
#886PromptsEvery prompt-launch surface routes through the guided fill-in form (Library "Use prompt" and detail modal no longer send raw brackets)QA
#891Guided formPer-field upload isolation (fixes multi-upload state + required-check bypass); inline per-field required errors; labeled dropdownsQA
#880 #871Prompt formsRequired-field markers — leading or trailing asterisk in fill-in placeholders, red help stylingQA
#883Prompt editorHow-to-use panel moved below the prompt body, collapsed by defaultQA
Prompts adminReal modified-by shown; integrations column hidden; category assignment gated to admins in the live save modalQA
#809Settings / PromptsDefault-agent tab, admin-only category, duplicate modal-X fix, prompt renamesQA
PromptsSave-prompt anchored to the user turn; preview label renamed "Response preview"; upload bracket field + admin help panelQA
Workflow formsLanding/workflow form refinements — actions above preview, file attach, dynamic fieldsQA
Live on QA — ready to test · Landing & Categories
#892CategoriesAdmin-authored category Description field, shown in the category viewQA
#865CategoriesReorder consolidated onto the welcome-page tile grid (drag + on-screen arrows), persists across reload, propagates to the landing pageQA
CategoriesIn-app confirm modal for archiveQA
#874 #875LandingCategory info icon moved off prompt rows to the category title — a real focusable button that stays inside the modalQA
LandingModel card genuinely light in light mode; hero providers, footer brand, usage tooltips, flicker fixQA
LandingStability.ai provider logo rebranded and sized to match the other provider logosQA
Live on QA — ready to test · Dashboard & Usage
#857 #861 #864DashboardDate-aware KPI strip and breakdown panels honor the applied window; spend label de-dup; counts locked to barsQA
#813Dashboard / UsageTime-series split into separate spend + usage charts, max-2 metric toggle, dual-axis labelsQA
#873 #868Usage charts7-day rolling-average line; empty time-series buckets zero-filled within the requested range (server-side)QA
#870DashboardTop Users → Spend by User with Prompts pill, page size, aligned controls, "Showing X of N"; sortable Spend by Model/Group; duplicate Top Groups removedQA
#856 #858 #859UsersPeriod filter drives Sessions/Cost columns and sorting/export; preset date ranges wired; UTC default fixedQA
#866Admin usersUser Status column; "Set rate limit" jumps to the cap field; Total Cost / Cap Usage renamesQA
Admin usersCost-range + percent-used range filters; custom date-range cost; split usage columns; group fixQA
Usage capsUser-popover usage bar reconciled to the budget endpoint, red at cap; zero cap treated as block-all; limit column + cap filter in the users listQA
DashboardCost-by-level panels restored; trimmed to 6 at-a-glance sections; Export/Refresh moved to the page header; no nested scroll / sticky headerQA
AdminModel pricing rates corrected, only used/enabled models shown, N/A for absent rates, reload-robust pricing testsQA
#879UsageOverview tab hidden — code default plus the live nav-visibility setting correctedQA
Live on QA — ready to test · Image Generation
#760 #762Image genImage mode — spend-cap gate, assistant image relocation, active-model flag, image-mode lockout, API-driven defaultsQA
Image genImage-model picker enters image mode; turns routed through the streaming endpoint; image-generation model ids accepted in chat validationQA
Image genImage options panel — style preset, image count, and image-to-image / starter image wired end-to-end (backend + ChatView)QA
Image genStyle preset aligned to the Bedrock per-model contract; style gating derived from the active modelQA
Image genOversized-image clamp/downscale against Bedrock's base64 payload limit, loud on misses, verifiable artifactQA
#754Image genOptions panel bg/border match the composer; dark-mode + light-mode select fixes; shadcn quality selectQA
Image genPer-image cost line items on the image-generation tab; relative cost-tier badges replace absolute pricesQA
Image genGenerated images open full-size with a generating indicator / pending bubble; you can ask a model about a generated imageQA
Live on QA — ready to test · Sidebar & UI
SidebarCollapse/expand animation polish — smooth, GPU-accelerated restoreQA
SidebarCollapsed rail — nav icons reflow to 64px, TT wordmark/monogram, chevron stays in rail, left-aligned headerQA
SidebarUser popover stays visible when collapsed; chat search moved above favoritesQA
UIDirectional slide transitions between top-level views; sliding pill indicator on the welcome-screen tabsQA
UIWelcome prompt cards staggered reveal, smoother typing-reveal ease, orphan keyframe removedQA
UIAnnouncement banner — no gap after dismiss, poll-cycle re-animation stopped, live threshold update; off-canvas drawer overflow clippedQA
Live on QA — ready to test · Admin & Security
#899SecurityWeb search gated by Okta group membership — two-direction matrix verified (allow/block/bogus-group/case-insensitive)QA
#907SecurityWeb-search authorization enforced on the agent tool path — survives only when authorized this turn (fails closed); warning modal no longer force-enables the toggleQA
#894SecurityOutbound search queries screened for PII via Bedrock Guardrails before leaving the environmentQA
#888SecurityWebSocket search kill-switch fails closed on read errorsQA
#889Backend / filesAttached-file listing scoped to the active session — no more sweeping the user's whole corpus or other sessions' images (phantom-files bug)QA
#895 #897AdminPlacebo Retention form replaced with a read-only search-query-screening guardrail status panel (nothing editable that isn't enforced)QA
#903Admin usersImage Model Access checkboxes restyled to the app-standard green control (red error look removed)QA
#912ProfileConnections tab gated behind the nav-visibility configQA
#881Admin shellAdmin user profile moved to the sidebar bottom; real pending-approvals count on the review-queue badge; user groups from JIT data regardless of SCIMQA
#877ModelsGPT-5.4 / GPT-5.5 no longer selectable anywhereQA
#882BackendSystem-prompt current date computed per request — warm Lambdas no longer report stale datesQA
#890 #893InfraGuardrail IAM groundwork (both Lambda roles); CloudWatch log retention codified at 90 days incl. the three never-expire groupsQA
Infra / CIAPI-gateway CORS allow/expose headers codified, X-Request-Id allowed, image-gen feature flag wired to the QA build; cost_events index + ESR migration fixes registeredQA
QA caveats — two things to know while testing
notePrompt descriptionsDescription code is live on QA, but the description data still needs a seed run on the QA DB — prompts show body-snippets on QA until thenPending seed
noteMCP ServersIntentionally hidden on QA via config (not reverted) — #684 (per-user OAuth / Connections) stays held, not part of this promotionHidden by design
On dev — ready to review, promotes next (Sierra's list)
Admin SettingsDuplicate annotations removed — Image-Model Allowed Groups and Web Search each showed the "all unchecked = all users" / "hidden when disabled" note twiceOn dev
DashboardEmpty info icons on the Active Users and Prompts tiles (no hover text) removedOn dev
User Settings · UsageTwo inaccurate/confusing panels removed (Chat Sessions/Saved Prompts/Agents/Files; and Default Agent/My Agent/Messages)On dev
User Settings · My DataBlank "My Data" tab removed — download/delete already live under Privacy & ExportOn dev
Chat · InstructionsBottom instruction panel was hidden behind the input box — spacing added so it's fully visibleOn dev
Chat History"Today" group relabeled "Recent"On dev
In progress — still being built (Sierra's list)
Chat HistoryDelete a chat from history — soft-hide with confirm, in the side panel and the history pageIn progress
User Settings · Usage"Request Increase" — copyable email + prefilled mailto (admin-settable address)In progress
DashboardSpend by Model to include image models (Stable Diffusion, Stable Image, GPT) — bring the dashboard in line with the usage tableIn progress
WorkflowsLanding/workflow images slow to load (~8s) — least-invasive lazy-load + caching fix (fuller S3/CDN option held in reserve)In progress
Held from QA — pending your call
#670Search / securityWeb-search warning modal — user must acknowledge "no confidential / PII data" every time the toggle turns onHeld
#684MCPPer-user OAuth connections and a Profile Connections tabHeld
#854Image modelsPer-user and per-model-group access controlHeld
#853InfraImport the existing staging Lambda instead of recreating itHeld
#855DependenciesSafe patch/minor dependency bumpsHeld
Needs your call (parked, not guessed)
#899Security semanticsUnchecking the LAST group = "everyone allowed" (documented dark-default), not "nobody". Contradicts the mental model that unchecking a group revokes it. Flip empty→"nobody/fail-closed"? Broad blast radius — your decision.Decide
InfraTerraform apply (guardrail env vars + IAM + 90-day retention) — unblocks live-testing #894/#890/#893. Needs your backend.tf "go".Your go
#865Category taxonomyDev has TWO parallel taxonomies: 8 seeded slugs renamed via the CMS (Voice/Target/Launch/Perform/Pulse/Elevate…, 74 prompts) vs. real client departments (Brands & Properties=62, Finance=13, Music, Talent… no category doc). Which is canonical? Reseed + reassign? Design call (Kieran's Figma).Decide
KnowledgeKB round plan written (5 PRs + staging purge runbook) — 5 design questions in §8 for you before build. Per-search audit-log plan also awaiting your review.Review