docs: mark all tasks in ephemeral passes & event cockpit plan complete

This commit is contained in:
Tyler Gillispie 2026-08-25 09:42:09 -07:00
parent f5bafbca78
commit e9a9fb500f

View File

@ -49,7 +49,7 @@ tracking.
- Produces: `GET /pass?token=...` endpoint and updated Hand-Off Modal in - Produces: `GET /pass?token=...` endpoint and updated Hand-Off Modal in
`SessionsPage.tsx` `SessionsPage.tsx`
- [ ] **Step 1: Write the failing test for `GET /pass`** - [x] **Step 1: Write the failing test for `GET /pass`**
```typescript ```typescript
// in server/main.test.ts // in server/main.test.ts
@ -95,22 +95,22 @@ Deno.test("GET /pass - Ephemeral Magic Link 1-Click Redemption", async (t) => {
}); });
``` ```
- [ ] **Step 2: Run test to verify it fails** Run: - [x] **Step 2: Run test to verify it fails** Run:
`deno test server/main.test.ts --filter "Ephemeral Magic Link"` Expected: `deno test server/main.test.ts --filter "Ephemeral Magic Link"` Expected:
FAIL (404 Not Found on `/pass`) FAIL (404 Not Found on `/pass`)
- [ ] **Step 3: Implement `GET /pass` in `server/main.ts`** Extract token from - [x] **Step 3: Implement `GET /pass` in `server/main.ts`** Extract token from
`?token=...`, validate against Valkey/DB, set cookie with `?token=...`, validate against Valkey/DB, set cookie with
`getCookieDomain()`, resolve target app domain if scoped to a specific `getCookieDomain()`, resolve target app domain if scoped to a specific
app, and return `c.redirect(targetUrl)`. app, and return `c.redirect(targetUrl)`.
- [ ] **Step 4: Update `ui/components/SessionsPage.tsx`** Add the **"1-Click - [x] **Step 4: Update `ui/components/SessionsPage.tsx`** Add the **"1-Click
Magic Link"** copy card tab alongside the CLI and cURL header tabs. Magic Link"** copy card tab alongside the CLI and cURL header tabs.
- [ ] **Step 5: Run tests to verify they pass** Run: `deno task test` Expected: - [x] **Step 5: Run tests to verify they pass** Run: `deno task test` Expected:
PASS (All tests passing) PASS (All tests passing)
- [ ] **Step 6: Commit and Push** - [x] **Step 6: Commit and Push**
```bash ```bash
git add server/main.ts server/main.test.ts ui/components/SessionsPage.tsx git add server/main.ts server/main.test.ts ui/components/SessionsPage.tsx
@ -143,7 +143,7 @@ git push origin main && git push gitea main
`guest_<slug>_<index>` session `guest_<slug>_<index>` session
- `GET /join/:slug`: CLI 1-liner (`?format=env` or `?format=json`) - `GET /join/:slug`: CLI 1-liner (`?format=env` or `?format=json`)
- [ ] **Step 1: Write the failing tests for Event creation and redemption** - [x] **Step 1: Write the failing tests for Event creation and redemption**
```typescript ```typescript
Deno.test("Multi-Claim Event Passes & Join Endpoints", async (t) => { Deno.test("Multi-Claim Event Passes & Join Endpoints", async (t) => {
@ -159,16 +159,16 @@ Deno.test("Multi-Claim Event Passes & Join Endpoints", async (t) => {
}); });
``` ```
- [ ] **Step 2: Run test to verify it fails** Run: - [x] **Step 2: Run test to verify it fails** Run:
`deno test server/main.test.ts --filter "Multi-Claim Event"` Expected: `deno test server/main.test.ts --filter "Multi-Claim Event"` Expected:
FAIL FAIL
- [ ] **Step 3: Add `event_passes` schema in `server/db.ts`** Include columns: - [x] **Step 3: Add `event_passes` schema in `server/db.ts`** Include columns:
`id`, `slug`, `pin_code`, `name`, `app_id`, `role`, `max_seats`, `id`, `slug`, `pin_code`, `name`, `app_id`, `role`, `max_seats`,
`seats_claimed`, `lifespan_hours`, `created_by`, `is_active`, `seats_claimed`, `lifespan_hours`, `created_by`, `is_active`,
`expires_at`, `created_at`. `expires_at`, `created_at`.
- [ ] **Step 4: Implement Event API routes in `server/main.ts` and SSR UI - [x] **Step 4: Implement Event API routes in `server/main.ts` and SSR UI
Pages** Pages**
- Create `ui/components/EventJoinPage.tsx` for `/join` PIN code entry. - Create `ui/components/EventJoinPage.tsx` for `/join` PIN code entry.
- Create `ui/components/EventSplashPage.tsx` for `/e/:slug` 1-click workshop - Create `ui/components/EventSplashPage.tsx` for `/e/:slug` 1-click workshop
@ -176,10 +176,10 @@ Deno.test("Multi-Claim Event Passes & Join Endpoints", async (t) => {
- Implement `GET /join/:slug` returning `export AUTH_YES_TOKEN="..."` when - Implement `GET /join/:slug` returning `export AUTH_YES_TOKEN="..."` when
`?format=env`. `?format=env`.
- [ ] **Step 5: Run tests to verify they pass** Run: `deno task test` Expected: - [x] **Step 5: Run tests to verify they pass** Run: `deno task test` Expected:
PASS PASS
- [ ] **Step 6: Commit and Push** - [x] **Step 6: Commit and Push**
```bash ```bash
git add server/db.ts server/main.ts ui/components/EventJoinPage.tsx ui/components/EventSplashPage.tsx server/main.test.ts git add server/db.ts server/main.ts ui/components/EventJoinPage.tsx ui/components/EventSplashPage.tsx server/main.test.ts
@ -207,7 +207,7 @@ git push origin main && git push gitea main
- Event Management Deck in `SessionsPage.tsx` with live seat counter - Event Management Deck in `SessionsPage.tsx` with live seat counter
(`38 / 50`) and master kill switch (`38 / 50`) and master kill switch
- [ ] **Step 1: Write failing tests for Event Kill-Switch & Extension** - [x] **Step 1: Write failing tests for Event Kill-Switch & Extension**
```typescript ```typescript
Deno.test("Event Cockpit & Master Kill Switch", async (t) => { Deno.test("Event Cockpit & Master Kill Switch", async (t) => {
@ -220,27 +220,27 @@ Deno.test("Event Cockpit & Master Kill Switch", async (t) => {
}); });
``` ```
- [ ] **Step 2: Run test to verify it fails** Run: - [x] **Step 2: Run test to verify it fails** Run:
`deno test server/main.test.ts --filter "Event Cockpit"` Expected: FAIL `deno test server/main.test.ts --filter "Event Cockpit"` Expected: FAIL
- [ ] **Step 3: Implement `POST /api/events/:id/end` and - [x] **Step 3: Implement `POST /api/events/:id/end` and
`POST /api/events/:id/extend` in `server/main.ts`** Fetch all session IDs `POST /api/events/:id/extend` in `server/routes/events.ts`** Fetch all session IDs
created under the event pass, delete them from Valkey and PostgreSQL, created under the event pass, delete them from Valkey and PostgreSQL,
record in audit ledger, and mark event `is_active = false`. record in audit ledger, and mark event `is_active = false`.
- [ ] **Step 4: Update `ui/components/SessionsPage.tsx` with Event Cockpit - [x] **Step 4: Update `ui/components/SessionsPage.tsx` with Event Cockpit
Deck** Display active events with live progress bar Deck** Display active events with live progress bar
(`Seats Claimed / Capacity`), PIN badge, copy links, `[+1h Extend]` and (`Seats Claimed / Capacity`), PIN badge, copy links, `[+1h Extend]` and
`[🔴 End Workshop & Revoke All]`. `[🔴 End Workshop & Revoke All]`.
- [ ] **Step 5: Run full quality gates** Run: - [x] **Step 5: Run full quality gates** Run:
`deno fmt && deno task lint && deno task check && deno task test` `deno fmt && deno task lint && deno task check && deno task test`
Expected: All pass. Expected: All pass.
- [ ] **Step 6: Commit and Push** - [x] **Step 6: Commit and Push**
```bash ```bash
git add server/main.ts ui/components/SessionsPage.tsx ui/mod.ts server/main.test.ts git add server/routes/events.ts ui/components/SessionsPage.tsx ui/mod.ts server/main.test.ts
git commit -m "feat(cockpit): add live event metrics, seat roster, and master kill-switch" git commit -m "feat(cockpit): add live event metrics, seat roster, and master kill-switch"
git push origin main && git push gitea main git push origin main && git push gitea main
``` ```