Commit Graph

318 Commits

Author SHA1 Message Date
chihlasm
b7a126299a merge: integrate fix/color-audit-cleanup into dashboard redesign
Resolve focus ring conflict in StartSessionInput — keep explicit
rgba values over Tailwind primary/20 for consistency with design system.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 06:09:33 +00:00
chihlasm
34b0f2ade9 fix: eliminate deprecated cyan, glass-border, and off-palette colors site-wide
- Replace all rgba(6,182,212,...) cyan focus borders and accents with
  rgba(249,115,22,...) ember orange across 21+ component files
- Remove all var(--glass-border) references (undefined variable) with
  var(--color-border-default) across 24 files
- Remove deprecated blur orbs and glass-morphism effects from
  SurveyPage, SurveyThankYouPage, and LoginPage
- Migrate landing.css from hardcoded hex to CSS custom properties
  (~97 replacements for single-source theming)
- Fix off-palette grays in FlowPilotAnalyticsPage chart styling
  (#8891a0 → #848b9b, #18191f → var(--color-bg-card))
- Update stale comments: "cyan brand" → "accent brand" in GlowEdge,
  "gradient cyan square" → "gradient orange square" in BrandLogo
- Rename glow-cyan SVG filter ID to glow-accent
- Fix category color comment: "cyan" → "deep orange"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 05:42:08 +00:00
chihlasm
4be8388a44 refactor: remove Recent Sessions from dashboard, hide Active when empty
Active Sessions section now auto-hides when there are no active sessions
(same pattern as PendingEscalations). Recent Sessions removed from
dashboard entirely — users access history via the History page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 05:41:37 +00:00
chihlasm
dbe66a0568 feat: bold dashboard redesign with inline stats, section labels, and chip icons
Restructure QuickStartPage for a more professional, informative layout:
- Left-aligned hero greeting (text-4xl) with date context and inline stat strip
- GreetingStatStrip shows resolved/active/MTTR at a glance
- Remove collapsible toggle — dashboard stats always visible
- Section labels with trailing border lines for visual hierarchy
- Suggestion chips with category icons, card-style hover, press feedback
- Fix cyan focus ring and icon color to ember orange design system
- Session cards: line-clamp-2 descriptions, font-medium text, problem_domain metadata
- Widen container max-w-3xl → max-w-4xl for breathing room
- Add .impeccable.md and .github/copilot-instructions.md design context
- CLAUDE.md audit: fix stale references, remove duplication, update counts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 05:04:20 +00:00
chihlasm
3c0a29115c feat: AI marker system prompt fixes, TaskLane activation, and FlowPilot updates
- Fix system prompt to ensure [QUESTIONS]/[ACTIONS] markers in AI responses
- Add format reminder injection to user messages for marker compliance
- Wire TaskLane activation in prefill and resume paths
- Add ActionCardGroup component for structured question/action rendering
- Update FlowPilot session and step card components
- Update ai-session schemas and types for marker data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 19:57:39 +00:00
chihlasm
ca60b77d9a feat: collapsible chat sidebar with top bar mode
Sidebar collapses to a horizontal top bar with "New" and "History"
buttons plus active chat title. Persists to localStorage. Fixes
layout nesting so TaskLane renders correctly when sidebar is collapsed.
Also removes chat input separator line.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 19:53:18 +00:00
chihlasm
56aaa276ee fix: remove unused imports for clean production build
Remove unused Wrench import from TaskLane, unused BranchMap import
and handleBranchSwitch from AssistantChatPage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:09:14 +00:00
chihlasm
0983c1ac9e feat: TaskLane partial submit, edit done cards, preview, and resize
- Enable submit when at least 1 item is answered (not all required)
- Dynamic label: "Send 2 of 6 Responses" vs "Send All Responses"
- Done cards are clickable to reopen for editing
- Collapsible preview shows formatted message before sending
- Resizable via left-edge grip handle, width persists to localStorage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:05:36 +00:00
chihlasm
d8e62a7108 fix: clear TaskLane on chat switch and remove double border
- Reset TaskLane state in handleNewChat and selectChat
- Conditionally remove chat input top border when TaskLane is open

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:02:26 +00:00
chihlasm
db43dfa08e fix: make branch hover scrim non-interactive so cards remain clickable
Scrim now uses pointer-events-none — it dims visually but clicks pass
through to the cards beneath. Dismissal relies on onMouseLeave on the
wrapper div, which fires when the mouse leaves the card area.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 23:35:02 +00:00
chihlasm
b96f4a42bb fix: dismiss branch hover card when mouse leaves to scrim
The fixed scrim was catching the mouse, keeping the hover alive
indefinitely. Now the scrim has onMouseEnter={() => setIsHovered(false)}
so moving the mouse anywhere off the expanded card dismisses it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 23:30:32 +00:00
chihlasm
5eb99e35c1 feat: branch hover card pops out in front with backdrop dim
On hover, the card:
- Grows slightly wider and floats directly over the base card
- Shows detail content (tried, result, reason, steps)
- Dims everything behind it with a fixed black/30 scrim
- Heavy drop shadow for depth (0 8px 32px rgba(0,0,0,0.5))
- Status-colored border maintained

Active branch still shows detail inline (no hover needed).
Cards below don't shift — the expanded version is position: absolute.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 23:26:20 +00:00
chihlasm
8180aa69b0 feat: branch hover detail as floating popover instead of inline expand
- Active branch: detail shows inline below the card header (no push)
- Hovered non-active: detail appears as a floating popover to the
  RIGHT of the card (position: absolute, z-50, left-full)
- Popover has shadow, status-colored border, fade+zoom entrance
- Cards no longer shift or push siblings on hover
- Extracted BranchDetail component shared by both inline and popover

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 23:20:38 +00:00
chihlasm
0f70cca905 feat: restyle branch sidebar — real cards, scale animation, visible labels
BranchMap header:
- GitBranch icon: text-muted → text-accent-text
- "Branch Map" label: text-muted → text-muted-foreground
- Count: text-muted → text-muted-foreground with font-medium

BranchNode cards:
- Now proper cards: bg-card/60 with 1px border-default, rounded-lg, p-2.5
- Active card: accent-tinted border, subtle glow
- Hover animation: scale(1.02) + shadow — card lifts toward the user
  instead of expanding downward
- Detail section: uses scale-y transform from origin-top, feels like
  the card is growing rather than content sliding down
- Status-aware border colors (accent/success/danger/warning)
- Detail labels ("Tried:", "Result:") now text-foreground font-medium
  instead of invisible text-muted
- Depth indentation via marginLeft instead of paddingLeft

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 23:09:59 +00:00
chihlasm
55d24118e0 feat: resizable sidebar, branch hover preview, Fork Point label fix
- Sidebar: click-and-drag resize handle (200-500px range), accent
  highlight on drag, cursor changes to col-resize
- BranchNode: hover/active expands to show context_summary (tried,
  result), status_reason, and step count with smooth animation
- ForkCard: "Fork Point" label changed from text-muted to
  text-accent-text for visibility against bg-card

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 22:55:11 +00:00
chihlasm
01836d6a2d fix: replace text-secondary with text-muted-foreground in branching components
In Tailwind v4, text-secondary resolves to --color-secondary (#2e3140),
a dark surface color — NOT --color-text-secondary (#848b9b). This made
all secondary text invisible on dark backgrounds.

The correct class is text-muted-foreground which maps to #848b9b.
This matches the pattern used by existing FlowPilot components.

Also reverts the unnecessary index.css variable bump from prior commit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 22:36:01 +00:00
chihlasm
4c42522925 fix: bump text-secondary from #848b9b to #a0a7b8 for better contrast
Old value had ~4.2:1 contrast on bg-page (#1a1c23), borderline for
readability. New value gives ~5.5:1 — noticeably more readable while
still clearly subordinate to text-primary (#e2e5eb).

Also updates muted-foreground Tailwind semantic alias to match.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 22:29:13 +00:00
chihlasm
20302900b8 fix: improve text contrast on DevBranchingPage
- Page subtitle: text-secondary → text-primary
- Helper text: text-muted → text-secondary
- Section labels: text-muted → text-secondary
- Detail card labels: text-muted → text-secondary
- Detail card values: text-primary → text-heading
- Detail card body: text-secondary → text-primary

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:51:24 +00:00
chihlasm
0bd1090a5b fix: improve text contrast in ForkCard and BranchRevivalCard
- ForkCard: fork reason → text-heading, option labels → text-heading,
  descriptions → text-primary, unselected options get bg-elevated/50
- BranchRevivalCard: evidence description → text-primary

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:21:13 +00:00
chihlasm
029d31ba0b fix: replace hardcoded colors with CSS variables in branching components
All semantic colors now use design system tokens:
- #34d399 → text-success / bg-success-dim
- #f87171 → text-danger / bg-danger-dim
- #eab308 → text-warning / bg-warning-dim
- yellow-400 → text-warning / bg-warning-dim / border-warning
- #ea580c → hover:bg-accent-hover
- red-400 → text-danger / bg-danger-dim

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:05:02 +00:00
chihlasm
bdbc2d9bf5 fix: add font-heading to branching component headings
Match production design system — Bricolage Grotesque on h1/h2 elements.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 21:00:38 +00:00
chihlasm
f564832cc4 feat: add /dev/branching test page for branching components
Standalone page with mock data showing BranchMap, ForkCard,
BranchTransitionBar, BranchRevivalCard, HandoffModal, and
ResolutionOutputPanel — no API calls needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:22:11 +00:00
chihlasm
19283fdeb6 fix: add missing branching files and TypeScript fix
- Add BranchRevivalCard, BranchTransitionBar, useHandoff, useResolutionOutputs, SessionQueuePage
- Fix useFlowPilotSession: add is_branching/active_branch_id defaults

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 13:40:13 +00:00
chihlasm
c8778bb4e7 fix: align frontend API paths with backend endpoints
- handoffs: /handoffs/queue → /ai-sessions/queue, claim needs sessionId
- resolutions: /resolution-outputs → /outputs
- branches: /status suffix removed from PATCH path
- Add SessionQueuePage route at /queue

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 13:36:05 +00:00
chihlasm
dfe19f88e3 feat: add ResolutionOutputPanel with three-tab view, edit, and push
Three tabs: PSA Notes (FileText), KB Article (BookOpen), Client Summary
(MessageSquare). Content area shows generated or edited text in monospace.
Edit mode swaps in a textarea. Action bar: Edit, Copy to clipboard (with
checkmark feedback), Push to PSA (disabled when already pushed).
Uses resolutionsApi directly without a custom hook.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 10:22:53 +00:00
chihlasm
1707f8f3d4 feat: add HandoffModal for unified park/escalate
Fixed overlay with park/escalate intent toggle (accent-dim when active),
notes textarea, elevated priority checkbox (escalate only), and Cancel/Submit
buttons. Mobile responsive: items-end on mobile, items-center on sm+.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 10:12:13 +00:00
chihlasm
b08e28030b feat: add ForkCard component for in-chat fork decision points
Renders fork reason text and a list of option buttons. Selected option
gets an accent border and accent-dim background. Unselected options use
border-default. GitFork icon in header.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 10:01:45 +00:00
chihlasm
c0dfa7c230 feat: add BranchMap sidebar with BranchNode tree visualization
BranchNode renders a branch button with depth-based indent, status icon,
and status badge using the design system color palette. BranchMap builds
a tree from the flat branch list via buildTree/flattenTree and renders
all nodes with a GitBranch header.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:51:30 +00:00
chihlasm
f5056d2e84 feat: add useBranching hook for branch state management
Manages branch list and active branch ID with useState. Exposes loadBranches,
createFork, switchBranch, updateStatus, reviveBranch, and sendMessage actions
via useCallback. Errors surface via toast notifications.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:30:58 +00:00
chihlasm
30d7d6e5a3 feat: add frontend API clients for branches, handoffs, and resolutions
Adds branchesApi (getBranches, createFork, updateBranchStatus, switchBranch,
reviveBranch, sendBranchMessage), handoffsApi (createHandoff, listHandoffs,
claimHandoff, getQueue), and resolutionsApi (getOutputs, editOutput, pushOutput).
All exported from api/index.ts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:20:36 +00:00
chihlasm
fc8b73f765 feat: add TypeScript types for branching, handoffs, and resolution outputs
Adds BranchResponse, ForkPointResponse, BranchSwitchResponse, HandoffResponse,
QueueItemResponse, ResolutionOutputResponse and related request/response types.
Extends AISessionDetail with is_branching and active_branch_id fields.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 08:50:02 +00:00
chihlasm
ff985fb755 refactor: replace cyan accent with ember orange across entire frontend
Swap accent color from cyan (#22d3ee) to ember orange (#f97316) site-wide.
Cyan caused contrast issues and felt generic — orange brings warmth and
urgency fitting for a troubleshooting tool.

Changes:
- CSS variables: accent, accent-hover, accent-dim, accent-text, primary, ring
- Warning color shifted from amber (#fbbf24) to yellow (#eab308) for
  semantic separation from orange accent
- Brand SVGs: logo gradient updated to orange
- 50+ component files: all hardcoded cyan hex values, Tailwind cyan-*
  classes, and rgba(34,211,238,...) glow values replaced
- landing.css: all 45+ cyan references + 5 old border color fixes
- DESIGN-SYSTEM.md bumped to v5 with decisions log
- CLAUDE.md: all color references synced to charcoal palette + orange accent
- PWA theme-color meta tag updated to match sidebar (#10121a)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 07:37:44 +00:00
chihlasm
ba8dbefcd2 fix: improve inline code contrast in AI chat responses
bg-white/[0.08] was too subtle — text was unreadable against the dark
background. Bump to bg-white/[0.12] with a subtle border and
text-foreground for proper contrast.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 05:50:33 +00:00
chihlasm
c5bf0ad00e fix: replace bg-accent with neutral backgrounds on code/kbd elements
bg-accent maps to bright cyan (#22d3ee) in Tailwind v4 — wrong for
code elements and keyboard shortcut badges. This was a recurring issue
across the app where every backticked term glowed cyan.

- Code blocks: bg-accent → bg-code (#14161e)
- Inline code: bg-accent → bg-white/[0.08] (subtle neutral tint)
- Kbd badges: bg-accent → bg-white/[0.08]
- AI chat markdown: same fixes in MarkdownContent.tsx

Cyan remains reserved for interactive elements (buttons, active nav,
links) per the design system.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 05:45:58 +00:00
chihlasm
8e7f13d2f8 refactor: remove dead assistant_chat system, consolidate image helpers
The old /assistant/chats/* CRUD endpoints and assistant_chat_service
chat functions were unused — the frontend exclusively uses
/ai-sessions/{id}/chat (unified_chat_service) for all chat operations.

Removed:
- Chat CRUD endpoints (create, list, get, send, delete, conclude)
- assistant_chat_service: create_chat, send_message,
  generate_conclusion_summary, CONCLUSION_SYSTEM_PROMPT
- Frontend: assistantChatApi chat methods, dead types
  (AssistantChat, AssistantChatMessage, ConcludeChatRequest, etc.)

Kept:
- /assistant/retention endpoints (used by ChatRetentionSettingsPage)
- Shared AI infrastructure (_call_ai, _call_anthropic_cached,
  ASSISTANT_SYSTEM_PROMPT, _auto_title) — imported by unified_chat_service

Moved:
- fetch_upload_images + resize_image_for_vision → storage_service.py
  (shared location, not tied to dead endpoint)

Also added "Image Analysis" section to system prompt so Claude knows
to describe attached screenshots.

-650 lines of dead code removed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 05:28:06 +00:00
chihlasm
3b682069d3 feat: wire image uploads into AI assistant chat (vision support)
- Backend: ChatMessageRequest accepts upload_ids, endpoint fetches
  images from S3, base64-encodes them, passes to Claude as multimodal
  content blocks (vision API)
- Backend: add download_file() to storage_service for fetching from S3
- Frontend: handleSend collects completed upload IDs from pendingUploads
  and includes them in the sendChatMessage API call
- Frontend: prefill handler passes upload IDs from dashboard nav state
- Enables paste-screenshot → AI-sees-it flow end-to-end

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 04:39:54 +00:00
chihlasm
48f2b3faaf fix: stale chunk auto-reload + image paste upload UX
- Add lazyWithRetry wrapper for all lazy-loaded routes to auto-reload
  on stale chunk errors after deploys (prevents ErrorBoundary flash)
- Show toast notification when image paste/upload fails due to storage
  not configured (503), instead of silent tiny error thumbnails
- Remove failed uploads from thumbnail strip on 503 (was showing
  confusing retry icon)
- Pass completed upload IDs in navigation state from dashboard input
- Suppress Sentry dialog for chunk load errors (deploy artifacts)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 04:21:41 +00:00
chihlasm
65eb630254 chore: migrate dev env to Traefik reverse proxy with HTTPS
Replace direct port exposure with Traefik labels for dev.resolutionflow.com
routing. Adds basic auth on frontend, TLS via Let's Encrypt, and updates
Vite allowedHosts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 02:13:47 +00:00
f397f5b002 Revert "fix(qa): ISSUE-001 — feedback panel bleeds on mobile due to Tailwind v4 translate"
This reverts commit fbf30f9c73.
2026-03-23 21:28:04 +00:00
fbf30f9c73 fix(qa): ISSUE-001 — feedback panel bleeds on mobile due to Tailwind v4 translate
Tailwind v4's translate-x-full uses the CSS `translate` property instead of
`transform: translateX()`. This caused the feedback panel to remain visually
visible on the right edge of the viewport. Switch to inline transform style
for reliable cross-browser behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 21:25:01 +00:00
b414502062 feat: unified sessions — merge assistant chat into ai_sessions table
Add session_type ('guided'|'chat') and title columns to ai_sessions,
enabling both FlowPilot guided sessions and assistant chat sessions to
live in a single table. This is the foundation for a unified session
history and consistent UX across both interaction modes.

Backend:
- Migration 066: session_type + title columns
- unified_chat_service: chat sessions on ai_sessions with same AI/RAG
- POST /ai-sessions supports session_type='chat' creation
- POST /ai-sessions/{id}/chat for chat messages
- DELETE /ai-sessions/{id} for session deletion
- session_type filter on GET /ai-sessions

Frontend:
- AssistantChatPage rewired to aiSessionsApi (no more assistantChatApi)
- /assistant/:sessionId route for deep-linking
- Session history: type filter pills (All/Guided/Chat), type icons
- Dashboard: both types shown with correct routing and icons
- Fixed glass-border → border-default in dashboard components

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 17:29:25 +00:00
72678e7f26 feat: rich input for assistant chat — paste, drag-drop, attach, logs
Upgraded AssistantChatPage input from basic textarea to ChatGPT-style:
- Paste images (Ctrl+V) with thumbnail previews
- Drag-and-drop files with drop zone overlay
- Attach button for images, logs, docs, PDFs
- Expandable "Paste Logs" section for raw error output
- Conclude session button moved into toolbar row
- Auto-growing textarea
- Replaced all glass-border dividers with border-border/border-default

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:28:19 +00:00
73c529d6f3 feat: beta feedback widget — frictionless in-session feedback
Full-stack beta feedback system:

Backend:
- BetaFeedback model with reaction, category, text, page context
- POST /feedback/beta (any auth user), GET /feedback/beta (admin, filtered)
- Alembic migration 065 with indexes on user_id, reaction, created_at

Frontend:
- Persistent "Feedback" tab on right edge of all authenticated pages
- Slide-out panel: quick reaction (👍😐👎), category pills, optional text
- Auto-captures page URL and FlowPilot session ID
- Hidden on mobile (<640px), closes on Escape/outside click
- Shows "Thanks!" confirmation then auto-closes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:12:06 +00:00
483653f5fc fix: remove unused props from FlowPilotSession after action bar removal
canResolve, canEscalate, onResolve, onEscalate, onPause, onAbandon are
now handled at the page level in FlowPilotSessionPage header. Remove
from component interface to fix TS6133 build errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:45:20 +00:00
0ec59276c7 refactor: move FlowPilot actions to header bar, fix dividers
- Moved Resolve/Escalate/Share Update buttons from fixed bottom bar into
  the session header. Desktop: inline buttons + overflow menu (Pause/Close).
  Mobile: single overflow menu with all actions.
- Removed FlowPilotActionBar from bottom — message input is now the only
  fixed element at bottom, giving more breathing room.
- Replaced jarring white dividers (var(--glass-border)) with subtle
  border-border (#2e3240) throughout FlowPilot session.
- Restyled status badge from button-looking element to dot + text indicator
  with semantic colors (green=resolved, amber=escalated).
- Reduced content padding from pb-32 to pb-24.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:41:28 +00:00
b118e158d4 feat: rich message bar in FlowPilot — paste, drag-drop, attach, logs
Upgraded FlowPilotMessageBar from basic textarea to ChatGPT-style input:
- Paste images (Ctrl+V) with thumbnail preview
- Drag-and-drop files with drop zone overlay
- Attach button (images, logs, docs, PDFs)
- Expandable "Paste Logs" section for raw error output
- Auto-growing textarea with focus ring
- Adjusted bottom offset for slimmer action bar

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:25:37 +00:00
e205c44448 fix: FlowPilot action bar single-row layout on mobile
Action bar was flex-col on mobile, creating two rows that covered the
message input. Now a single horizontal row on all screen sizes — Resolve
and Escalate always show labels, secondary actions (Pause, Close, Update)
show icon-only on mobile.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:09:05 +00:00
701ae7c7e7 fix: assistant chat mobile layout — sidebar hidden, slide-out toggle
Chat sidebar was rendering side-by-side on mobile causing squished layout.
Now hidden on mobile with a "Chats" toggle button + "+ New" in a compact
header bar. Sidebar slides out as an overlay on mobile, auto-closes on
chat selection.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 09:34:45 +00:00
778a172f4e fix: resolve TypeScript build errors in StatusUpdateModal and FlowPilotSessionPage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 06:43:54 +00:00
7eaeb660dd fix: dashboard and omnibar route to /assistant chat, not /pilot guided flow
Aligns with copilot-first GTM direction — the dashboard chat input and
CommandPalette "Troubleshoot with FlowPilot" now launch the conversational
AI chat (/assistant), not the structured diagnostic flow (/pilot). Guided
flows remain accessible from the sidebar "Flows" section.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 06:36:51 +00:00