docs: mark all tasks in ephemeral passes & event cockpit plan complete
This commit is contained in:
parent
f5bafbca78
commit
e9a9fb500f
@ -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
|
||||||
```
|
```
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user