πŸ“„ event-state-machine-review.md 4,148 bytes Apr 29, 2026 πŸ“‹ Raw

Event State Machine β€” UX Review

Date: 2026-04-29
Status: Draft β€” needs Matt review


Current States (from test data)

State Count Meaning User Action
confirmed 9 βœ… On the calendar, no action needed View only
pending 3 ⏳ Not fully committed, needs decision Confirm / Decline / Modify
needs_confirmation 1 ❓ Someone asked, waiting for response Yes / No / Counter-propose

Proposed State Machine

Primary States

[needs_confirmation] ──Yes──► [confirmed]
       β”‚
       β”œβ”€β”€No──► [declined]
       β”‚
       └──Counter──► [pending]

[pending] ──Confirm──► [confirmed]
    β”‚
    β”œβ”€β”€Decline──► [cancelled]
    β”‚
    └──Modify──► [pending] (updated)

[confirmed] ──Cancel──► [cancelled]
    β”‚
    └──Reschedule──► [pending]

Visual States

State Badge Color Actions
confirmed βœ… Green Cancel, Reschedule
pending ⏳ Yellow Confirm, Decline, Modify
needs_confirmation ❓ Orange Yes, No, Counter
declined ❌ Gray (none β€” hidden by default)
cancelled 🚫 Red strikethrough (none β€” hidden by default)

Interaction Patterns by Event Type

Calendar Events (auto-extracted from emails)

  • confirmed: On Radicale calendar β†’ show "Reschedule" or "Cancel"
  • pending: Email found but not on calendar β†’ show "Add to Calendar" or "Ignore"
  • cancelled: User removed from calendar β†’ fade out

Coordination Events (from chat, HBM)

  • needs_confirmation: "Can you cover Thursday?" β†’ show "Yes / No / Propose Alt"
  • confirmed: Both parties agreed β†’ show "Reschedule" or "Cancel"
  • pending: Tentatively held, not confirmed β†’ show "Confirm / Release"

Dashboard Interactions

Card-Level Actions

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ“… Sullivan Baseball Practice           β”‚
β”‚ Today 4:30 PM β€’ St. Philip's Field    β”‚
β”‚ βœ… Confirmed                             β”‚
β”‚                                        β”‚
β”‚ [Reschedule] [Cancel]                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸ—£οΈ Costco Run                          β”‚
β”‚ Sat May 02 β€’ Aundrea asked             β”‚
β”‚ ❓ Needs Confirmation                   β”‚
β”‚                                        β”‚
β”‚ [βœ… Yes] [❌ No] [πŸ’¬ Counter]         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Bulk Actions

  • Select multiple β†’ "Confirm All" / "Decline All"
  • Swipe on mobile β†’ Quick confirm/decline

Questions for Matt

  1. Do we want "declined" and "cancelled" visible, or hidden (archive)?
    - Hidden keeps dashboard clean
    - Visible provides audit trail

  2. Should "coordination" events auto-create calendar entries when confirmed?
    - Yes: Seamless flow
    - No: Keep calendar clean, coordination stays in Event Graph only

  3. Should pending events expire?
    - After 48 hours: auto-decline?
    - After 7 days: auto-archive?

  4. Can Aundrea interact, or Matt-only?
    - Aundrea sees but can't modify (read-only)?
    - Aundrea can confirm/decline via Telegram bot?
    - Full shared access?


Priority Task Owner
P0 Matt reviews this state machine Matt
P1 Daedalus designs interaction mockups Daedalus
P2 Socrates wires state transitions (POST endpoints) Socrates
P3 Test on iPad with real interactions Matt

Prepared by Wadsworth πŸ“‹ | Awaiting Matt's feedback