Files
mission-control/AGENTS.md
teernisse f5ce8a9091 feat(followup): implement PLAN-FOLLOWUP.md gap fixes
Complete implementation of 7 slices addressing E2E testing gaps:

Slice 0+1: Wire Actions + ReasonPrompt
- FocusView now uses useActions hook instead of direct act() calls
- Added pendingAction state pattern for skip/defer/complete actions
- ReasonPrompt integration with proper confirm/cancel flow
- Tags support in DecisionEntry interface

Slice 2: Drag Reorder UI
- Installed @dnd-kit (core, sortable, utilities)
- QueueView with DndContext, SortableContext, verticalListSortingStrategy
- SortableQueueItem wrapper component using useSortable hook
- pendingReorder state with ReasonPrompt for reorder reasons
- Cmd+Up/Down keyboard shortcuts for accessibility
- Fixed: Store item ID in PendingReorder to avoid stale queue reference

Slice 3: System Tray Integration
- tray.rs with TrayState, setup_tray, toggle_window_visibility
- Menu with Show/Quit items
- Left-click toggles window visibility
- update_tray_badge command updates tooltip with item count
- Frontend wiring in AppShell

Slice 4: E2E Test Updates
- Fixed test selectors for InboxView, Queue badge
- Exposed inbox store for test seeding

Slice 5: Staleness Visualization
- Already implemented in computeStaleness() with tests

Slice 6: Quick Wiring
- onStartBatch callback wired to QueueView
- SyncStatus rendered in nav area
- SettingsView renders Settings component

Slice 7: State Persistence
- settings-store with hydrate/update methods
- Tauri backend integration via read_settings/write_settings
- AppShell hydrates settings on mount

Bug fixes from code review:
- close_bead now has error isolation (try/catch) so decision logging
  and queue advancement continue even if bead close fails
- PendingReorder stores item ID to avoid stale queue reference

E2E tests for all ACs (tests/e2e/followup-acs.spec.ts):
- AC-F1: Drag reorder (4 tests)
- AC-F2: ReasonPrompt integration (7 tests)
- AC-F5: Staleness visualization (3 tests)
- AC-F6: Batch mode (2 tests)
- AC-F7: SyncStatus (2 tests)
- ReasonPrompt behavior (3 tests)

Tests: 388 frontend + 119 Rust + 32 E2E all passing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 17:28:28 -05:00

3.2 KiB

AGENTS.md - Mission Control Agent Swarm

Project Overview

Mission Control is an ADHD-centric personal productivity hub built with Tauri 2.0 + React 19. It unifies GitLab activity (via lore CLI) and beads task tracking (via br CLI) into a single native interface.

Core principle: Surface THE ONE THING you should be doing right now.

Architecture

Frontend (React 19 + Vite)     Backend (Tauri/Rust)
        |                              |
        |---- IPC (invoke) ----------->|
        |                              |
        |                     CLI Traits (mockable)
        |                              |
        |                     lore --robot (GitLab)
        |                     br (beads tasks)
        |                     bv --robot-* (triage)

Key Files

Path Purpose
src/App.tsx Main React component
src-tauri/src/lib.rs Tauri app setup
src-tauri/src/data/lore.rs Lore CLI trait + types
src-tauri/src/data/beads.rs Beads CLI trait + types
src-tauri/src/commands/mod.rs Tauri IPC commands
PLAN.md Full implementation plan
CLAUDE.md Project-specific Claude instructions

Agent Coordination

Team Name

purrfect-beaming-lynx

Beads Task Management

Use br and bv for task coordination:

# Get triage recommendations
bv --robot-triage | jq '.triage.quick_ref.top_picks'

# List all beads
br list --json

# Claim a task
br update <bead-id> --status in_progress

# Complete a task
br close <bead-id> --reason "Completed: <summary>"

# Show bead details
br show <bead-id> --json

Communication

Use SendMessage tool for agent-to-agent coordination:

  • Message teammates directly by name
  • Use broadcast sparingly (only for critical team-wide issues)
  • Check task list after completing each task

Current Status

Completed:

  • Phase 0: Test infrastructure (Vitest, Playwright, Rust mocks)
  • Phase 1: Tauri scaffold, React shell, CLI traits
  • Phase 2: Bridge + Data Layer (GitLab-Beads sync, state persistence)
  • Phase 3: UI Components (FocusView, QueueView, InboxView, Settings, Debug)
  • Phase 4: Navigation + keyboard shortcuts (Cmd+1-4, Cmd+,)
  • Phase 5: TanStack Query data layer, error boundaries
  • bv triage integration (get_triage, get_next_pick commands)

In Progress:

  • UI polish and edge case handling
  • Decision log analysis features

Development Commands

# Run dev (frontend + backend)
npm run tauri:dev

# Frontend only
npm run dev

# Run tests
npm run test           # Vitest
npm run test:e2e       # Playwright
cargo test             # Rust

# Lint
npm run lint
cargo clippy -- -D warnings

Visual Verification

Playwright MCP tools can connect to http://localhost:1420 for UI inspection:

  • browser_navigate - Load pages
  • browser_snapshot - Get accessibility tree
  • browser_take_screenshot - Visual verification

Critical Constraints

  1. CLI over libraries - Shell out to lore/br/bv, don't import them
  2. Trait-based mocking - All CLI interactions via traits for testability
  3. TDD - Write failing test first, then implement
  4. No any - Use unknown with type guards in TypeScript
  5. jj for VCS - Use jj, not git (see global CLAUDE.md)