ghst light

← Back to blog

The Board v0.1.2: Dispatch Workflow Refinements

The Board v0.1.2 is out. Onboarding starts soon, so this release is about getting the system ready for dispatchers who haven't seen it before — views that make sense on first use, SMS workflows that don't need explanation, and code that won't surprise anyone with state bugs.

What shipped

40+ improvements across dispatch workflows, communications, and infrastructure.

Dispatch Views

  • Consolidated calendar view into card view with call type and date grouping — fewer clicks to see the same information
  • Position cards now always show call duration — no more guessing at shift length
  • Added group-by-dispatcher view to jobs list — helps multi-dispatcher operations track who's handling what
  • Setup and strike call types now handled correctly in hours calculator and timeline
  • House roster rank now computed over the full roster, not the filtered subset — seniority stays accurate regardless of filters
  • Same-show assignments distinguished from external conflicts in the timeline — dispatchers can tell at a glance whether a worker is busy on the same gig or a different one

Roster & Spreadsheet

  • Roster UI overhaul — filter sheet, group headers, and jump navigation for faster crew lookup
  • Spreadsheet legend now grouped by skill hierarchy
  • Skeleton loader and theme overhaul for the spreadsheet view
  • Optimistic UI updates for position field edits in both views — changes feel instant
  • Priority system overhauled, job status types consolidated, badge readability improved

SMS & Communications

  • Dispatch log now classifies SMS by type — offer, confirmation, decline, inquiry — with pipeline ordering based on intent
  • Clear button on comms action items for irrelevant messages — stops noise from blocking the needs-action queue
  • SMS conversations no longer auto-mark as processed when viewed — dispatcher control over workflow state
  • Simplified JobCommsHub into a focused action queue — one thing at a time

Performance & Real-time

  • Eliminated N+1 queries in batch SMS send and board jobs API
  • Fixed double render on group toggle and search input lag
  • Resolved infinite render loops in dispatch page and roster
  • Fixed WebSocket connection race condition
  • Restored WebSocket real-time cache invalidation pipeline
  • Composite indexes added to the database for multi-job views

Code Health & Infrastructure

  • Added ESLint and fixed a critical React hooks violation that was causing state bugs
  • Resolved exhaustive-deps warnings across the entire codebase — 10 batched pull requests
  • Extracted shared position-grid components into CrewcallGrid
  • "Keep me logged in" option added to login
  • Fixed Docker build, backup service DB filename, Redis bound to localhost only

What's next

Stability. Onboarding is next week — after that, the focus is making sure it holds up under real daily use before adding anything new.

The light stays on.