Skip to content

feat: real-time UX and WebSocket-driven animations #790

@Aureliolo

Description

@Aureliolo

Phase 5.1 -- Real-Time UX & Animations

Parent: #762

Context

Design principle #2: "Real-time means visible." WebSocket exists but UI updates must produce visual feedback -- not silent state changes.

Scope

  • Wire WebSocket subscriptions to ALL pages (currently only 6/15 in Vue app)
  • Update flash: subtle highlight on any card/row that receives a WebSocket update (200ms glow, fade out)
  • "Just updated" indicators: timestamp showing "2s ago" on recently changed items
  • Animated state transitions: Framer Motion for status changes (e.g. task moving from pending -> active), approval status changes, agent status changes
  • Activity stream auto-scroll: new items slide in at top with entrance animation
  • Connection status: visible indicator when WebSocket disconnects/reconnects
  • Optimistic updates: immediate UI response on user actions, rollback on error with notification

Deliverables

  • WebSocket wired to all pages
  • Update flash animation pattern
  • State transition animations
  • Connection status indicator
  • Optimistic update pattern across all CRUD operations
  • Integration tests for WebSocket event -> UI update flow

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    prio:highImportant, should be prioritizedscope:medium1-3 days of workspec:human-interactionDESIGN_SPEC Section 13 - Human Interaction Layertype:featureNew feature implementationv0.5Minor version v0.5v0.5.0Patch release v0.5.0

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions