Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .superpowers/sdd/progress.md
Original file line number Diff line number Diff line change
Expand Up @@ -814,3 +814,21 @@ Task 4: complete (verification-only, no source changes). Full regression guard g
=== P5.3.5 FINAL WHOLE-BRANCH REVIEW (opus, 294a59f..7aaa2f3) — READY TO MERGE: YES WITH FOLLOW-UPS, 0 Critical / 0 Important (blocking) / 2 Minor (noted, no action) ===
Independently reproduced the core empirical finding a THIRD time (implementer, Task 2's own reviewer, now the final reviewer) — stood up the real stack, ran the scale test clean (7/7), then temporarily removed the ANALYZE fix and confirmed the timing assertion correctly fails on the zone-filter shape at 303.9ms (near-identical to the two prior independent reproductions: 311.6ms and 302.9ms), restored, confirmed clean PASS again. Also confirmed the scale test cleanly SKIPS (not fails) when TEST_DATABASE_URL is unset, so contributors without a local Postgres are unaffected. Cross-task consistency verified: Task 2's forward-referencing comment (written before Task 3 existed) now accurately describes the real PGStore.AnalyzeAttendeesTable/BulkCreateAttendees at final HEAD. Minor (noted, no action): (1) the 100ms timing assertion is a single-sample measurement per shape, not best-of-N — margin is generous (100ms vs ~2-18ms observed) so flake risk is low but non-zero; if it ever flakes on a noisy CI runner, fix via best-of-N/median, not by raising the bound; (2) ANALYZE attendees runs table-wide once per 500-row bulk-import chunk (not scoped to just-inserted rows, since Postgres's ANALYZE doesn't support that) — reviewer's own research confirmed ANALYZE takes only a SHARE UPDATE EXCLUSIVE lock (doesn't block concurrent reads/writes) and is sampling-based, so no real multi-tenant contention risk, just modest redundant per-chunk work; a future cleanup could run it once at end-of-import instead. Gates (reviewer-run): full backend suite 617+/617+ (both with and without TEST_DATABASE_URL), go vet, go build, golangci-lint all clean. Scope confirmed exactly 9 files, zero migrations, zero new indexes — the "pivot to a measured fix" narrative holds up fully against the actual diff.
P5.3.5 5K-ATTENDEE PERFORMANCE INITIATIVE COMPLETE — 10 commits 294a59f..7aaa2f3 on branch backend/p5.3.5-5k-perf. This closes the entire P5.3 phase and the whole panel-rewrite initiative. Next: push + PR.
P6.1 Task 1: complete (bc391ff..4bbf479, review Spec ✅ + Approved; note: implementer hit RTK lint-masking hazard, misreported lint — reviewer verified lint green at HEAD; minor noted: no SSR-fallback test)
P6.1 Task 2: complete (4bbf479..6d26ddc, review Spec ✅ + Approved; minors noted: TabBarItemProps no HTMLAttributes spread, testid in prod markup [plan-mandated])
P6.1 Task 3: complete (6d26ddc..96684c1, review Spec ✅ + Approved; minors noted for final review: optimistic copied-state w/o clipboard .catch [plan-mandated], no type=button on copy Button [pre-existing pattern], re-click no timer reset, single-flavor test coverage)
P6.1 Task 4: complete (96684c1..5aa7f04, review Spec ✅ + Approved; RU glossary fix gateCheckinTitle→'Станция регистрации' [brief-authorized, verified]; minor: report key miscount 17 vs 16)
P6.1 Task 5: complete (5aa7f04..fccdf75, review Spec ✅ + Approved; all 7 routes gated w/ correct flavors, /team+monitor+staff ungated verified; flaky StaffZonesDialog Escape-race noted as PRE-EXISTING [stash-verified unrelated]; minors: report math slip, review-package tail truncation [tooling])
P6.1 Task 6: complete (fccdf75..8757654 incl. fix round 1, review Spec ✅ + Approved after fix; fix added sheet-close test + exact:true on all tab links; minors carried to final review: MoreSheet row duplication, unrolled tab links, Monitor/Attendees aria-current not directly asserted, comment placement nit)
P6.1 Task 7: complete (8757654..b121811, review Spec ✅ + Approved, zero findings)
P6.1 Task 8: complete (b121811..9e0d5ff, review Spec ✅ + Approved; no test scoping needed [verified independently]; full-suite load flakiness reproduced pre-existing w/ diff stashed; minor: redundant grid comments [plan-mandated])
P6.1 Task 9: complete (9e0d5ff..cc09695, review Spec ✅ + Approved; zero-collision claim verified against full test read; minor: Circle icon shared by skipped/not_done — MinusCircle would match ReadinessCell precedent)

=== PANEL P6.1 — MOBILE COMPANION FOUNDATIONS & SHELL (plan docs/superpowers/plans/2026-07-22-panel-p6.1-mobile-foundations.md, branch feature/panel-p6.1-mobile-foundations) ===
Tasks 1–9 executed subagent-per-task with per-task spec+quality reviews (entries above): useIsMobile+AGENTS rules (4bbf479) → ui TabBar (6d26ddc) → ui DesktopOnlyGate (96684c1) → panel DesktopOnly wrapper+gate EN/RU (5aa7f04) → Tier-3 route gates (fccdf75) → EventTabBar/MoreSheet + ui bottom-sheet variant (54389d2 + fix 8757654: sheet-close test, exact tab-link matching) → workspace phone shell + viewport-fit (b121811) → monitor interim stack (9e0d5ff) → ReadinessStrip + Home padding (cc09695).
Task 10 final sweep: gates green — packages/ui 334/334; panel 1526 pass (2 pre-existing load flakes in UNTOUCHED files, AttendeeDrawer + BadgeEditorPage in-flight timing tests, both 103/103 green in isolation); typecheck clean; lint clean (verified via rtk proxy — the plain run reproduced the documented RTK masking artifact); build clean; PWA-lite verified pre-existing (manifest.json + icons in dist/, landed with logo refresh PR #94 — no manifest work this phase).
LIVE 390px WALK (real stack: docker compose db + Go backend + vite dev server, admin@test.com seed): login/home/overview+strip/staff light+dark all fit; monitor phone stack live over SSE (LIVE pill, station staleness dot); attendees + badge gates render correct flavors with working "Link copied" and Back to Overview; More sheet lists desktop sections and closes on row tap; desktop width restores rail/top-nav/real badge editor on the SAME url. WALK FOUND 1 REAL BUG: AppShell header min-content was 452px > 390 (org switcher + ON-PREM tag + gap-4), inflating the mobile layout viewport and dragging the fixed tab bar wide — fixed in a2f3129 (gap-2 md:gap-4, version tag hidden below sm, truncating org name), re-verified live at coherent 390: header/tab bar/scrollWidth all exactly 390, zero horizontal overflow. Note: the browser-pane emulation does not dispatch matchMedia change events, so the live resize flip needed a reload — the flip itself is unit-tested with real listener events (useIsMobile.test).
Carry-forwards: attendees gate TEMPORARY until P6.3 search list; monitor stack INTERIM until P6.2 board-8f layout; staff "signed in" liveness dropped from v1 (not in API contract). Minor findings parked for final review triage: DesktopOnlyGate optimistic copied-state w/o clipboard .catch + no type=button (pre-existing pattern); MoreSheet row markup duplication; unrolled tab links; Monitor/Attendees aria-current not directly asserted; ReadinessStrip shares Circle icon for skipped/not_done (MinusCircle would match ReadinessCell); T6 comment placement nit.
=== P6.1 FINAL WHOLE-BRANCH REVIEW (fable, 094d447..bb84eb5) — READY TO MERGE: YES, 0 Critical / 0 Important / 6 new Minor (all follow-up) ===
Reviewer independently re-ran all new + adjacent suites (25/25 panel-new, 5/5 ui-new, 37/37 adjacent) and re-checked route-guard interplay (checkin beforeLoad → launch gate: one coherent gate, no loop). All 8 parked per-task minors triaged FINE-AS-FOLLOW-UP; highest-priority follow-up for P6.2 first commit: DesktopOnlyGate clipboard .catch (on-prem plain-http serves navigator.clipboard=undefined → silent no-op yet "copied" announced) + ReadinessStrip MinusCircle; when first TabBar badge consumer lands (P6.2), add sr-only badge label — dot must not ship sighted-only. New minors also noted: MoreSheet survives phone→desktop crossing while open; gate h2-without-h1 on org-level routes (P6.4 a11y sweep); `sm` disclosure in AppShell version tag is space-driven, not a second cutover (clarify in AGENTS.md some day).
P6.1 PR #106 bot review round 1: CodeRabbit 7 actionable + 2 nitpicks. 8 fixed in 382a69e (clipboard tri-state w/ copyFailedLabel prop + gateCopyFailed EN/RU, 44px bottom-sheet close, badge→sr-only string, md version-tag cutoff, aria-expanded, MinusCircle skipped, isError&&!data retain-last-known-good, typed test fixture); 1 declined w/ reason (STEP_LABEL_KEYS→shared move = standalone refactor, pre-existing pattern); badge visible-indicator part declined per board 8r. Gates green (ui 335, panel 1526, typecheck, lint). All 7 threads replied, single push.
Loading