auth-yes/tasks/checklist.md
Tyler Gillispie 081cd9c765 feat(arch): adopt hypermedia & vertical slicing paradigm (Datastar + Deno SSR)
- Establish server-driven hypermedia architecture with Datastar to eliminate brittle imperative client DOM manipulation
- Codify vertical feature slicing (routes, queries, fragments co-located by domain)
- Formalize right-sized dual transport: standard text/html for user mutations, targeted SSE for Valkey pub/sub broadcasts
- Define zero-trust guardrails: untrusted client signals, 16KB payload bounds, rate limiting, and data-ignore subtree protection
- Establish hypermedia error protocol (4xx/5xx return JSX error fragments) and mid-stream SSE resilience
- Add active task checklist with granular 1-to-1 items and shared component suggestions
- Update AGENTS.md with AI-optimized engineering principles (SRP, bounded files, flat call chains, distinctive naming)
2026-08-27 16:51:16 -07:00

94 lines
4.6 KiB
Markdown

# Active Task Checklist
### Sticky Navigation Header
- [ ] `sticky-sub-header-docking`: Dock the sticky `Sessions & Events`
sub-header directly beneath the main navigation bar so it scrolls smoothly
without overlapping or covering top navigation elements.
- [ ] `sticky-sub-header-opaque-bg`: Ensure the sticky sub-header has an opaque
background so underlying cards do not bleed through on scroll.
### Single Session Creation (DirectPassDrawer)
- [ ] `single-session-form-hiding`: Hide the single session creation form upon
minting so only the completed handoff card is displayed.
- [ ] `single-session-cancel-button-removal`: Remove the Cancel button from the
view once a single session has been created.
- [ ] `single-session-copy-button-styling`: Style the 1-Click Link copy button
using the standard outline style matching other copy actions.
- [ ] `single-session-submit-button-label`: Label the single session drawer
submit button as "Create Session".
- [ ] `single-session-handoff-ok-button`: Label the single session handoff
completion button as "OK".
### Multi-Claim Event Creation (WorkshopDrawer)
- [ ] `event-submit-button-label`: Label the multi-claim event drawer submit
button as "Create Event".
- [ ] `event-handoff-ok-button`: Label the multi-claim event handoff completion
button as "OK".
### Dropdown Accordion Headers
- [ ] `single-session-accordion-arrow-fix`: Eliminate the broken double arrow
(`> >`) from the single session optional settings dropdown header.
- [ ] `single-session-accordion-label`: Label the single session optional
settings dropdown header as "Customize App Permissions & Scopes
(Optional)".
- [ ] `workshop-accordion-arrow-fix`: Eliminate the broken double arrow (`> >`)
from the workshop pass optional settings dropdown header.
- [ ] `workshop-accordion-label`: Label the workshop pass optional settings
dropdown header as "Custom Vanity Slug & PIN Code (Optional)".
### Rapid Creation & Tab State
- [ ] `single-session-create-another-button`: Add a "Create Another" button on
the single session handoff card that clears the form and starts a new
session in one click.
- [ ] `event-create-another-button`: Add a "Create Another" button on the event
handoff card that clears the form and starts a new event in one click.
- [ ] `handoff-tab-lock-state`: Disable switching between Single Session and
Multi-Claim Event tabs while viewing a completed handoff card.
- [ ] `handoff-tab-unlock-on-reset`: Re-enable tab switching when the user
clicks "Create Another" or closes the drawer.
### Expired Events Management
- [ ] `expired-events-query-split`: Separate event passes into active events and
expired events based on their expiration timestamp and status.
- [ ] `expired-events-collapsible-accordion`: Organize expired events into a
dedicated collapsible `<details>` section titled "📁 Expired Events (N)"
below active events.
- [ ] `expired-events-card-styling`: Display expired event passes with distinct
muted styling and expired status badges.
- [ ] `expired-events-1click-reopen`: Provide a one-click "+1h Reopen" button on
naturally expired events to add time and reactivate them.
### Guest Drawer Telemetry & Sync
- [ ] `guest-drawer-telemetry-backend`: Fetch the last activity action, last
activity timestamp, and agent flag for each attendee.
- [ ] `guest-drawer-last-action-display`: Display the attendee's last recorded
action and relative time on their guest card.
- [ ] `guest-drawer-client-badge`: Display a client icon (such as Web or CLI) on
each attendee card based on their recorded action.
- [ ] `guest-drawer-timer-sync-on-extend`: Dynamically update the countdown
timer and expiration time in the open guest drawer when an event is
extended.
---
## Suggestions & Architectural Notes (Ideas to Evaluate)
- **Shared Drawer / Form Component Extraction:** The Single Session
(`DirectPassDrawer.tsx`) and Multi-Claim Event (`WorkshopDrawer.tsx`) creation
forms share many common UI features (app selection dropdown, lifespan preset
pills, optional settings accordion, action bars, and handoff cards). Consider
consolidating shared form sections or extracting common sub-components to
reduce code duplication and ensure consistent state handling.
- **Unified Handoff Card Pattern:** The post-creation handoff state across both
forms follows the exact same pattern (badge header, copy buttons for
links/CLI/tokens, and dual `[ Create Another ]` + `[ OK ]` footer). A shared
component or common helper could streamline handoff rendering and state resets
across both modes.