You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| 2026-02-16 | self | Ran eslint command with unquoted bracketed path (`app/api/challenges/[id]/...`) and zsh globbing failed | Quote any CLI path containing `[]` in this repo, including lint/file-specific commands |
7
+
| 2026-02-16 | user | Fade behavior was interpreted as full hide, and reappearing nav felt inactive | Use partial opacity dimming (not `opacity-0`), keep nav interactive, and restore stronger foreground styling when revealed |
8
+
| 2026-02-16 | self | Tried to use `python` for a quick text edit and the command wasn't available here | Use `apply_patch` or shell-native tools for small file edits; avoid Python for routine edits in this repo |
9
+
| 2026-02-16 | user | After enabling `viewportFit: \"cover\"`, top dashboard feed nav could sit under mobile browser top chrome/notch | When using safe-area viewport mode, add top inset offsets to mobile main content and sticky top elements |
10
+
| 2026-02-16 | user | Implemented mobile nav hide-on-scroll too aggressively; user perceived nav as disappearing entirely | Keep mobile bottom nav persistently visible by default; add hide-on-scroll only as an opt-in, tuned enhancement |
11
+
| 2026-02-16 | self | Ran `pnpm -F web exec eslint` with `apps/web/...` paths, which failed because the command runs from `apps/web`| Use package-relative paths (e.g., `components/...`, `app/...`) when executing commands inside a filtered workspace |
12
+
| 2026-02-16 | self | Ran `rg` with unquoted path containing `[id]` so zsh expanded it and command failed | Always single-quote paths with glob chars (`[]`, `()`) in shell commands |
6
13
| 2026-02-11 | self | Ran `ls` before reading napkin (again) | Always read `.claude/napkin.md` before any other command |
7
14
| 2026-02-10 | self | Ran `ls` before reading napkin | Always read `.claude/napkin.md` before any other command |
8
15
| 2026-02-10 | self | Used backticks in a shell-quoted PR body so the shell tried to execute `turbo`| Use a heredoc or escape backticks when passing PR bodies to shell commands |
@@ -13,20 +20,28 @@
13
20
## User Preferences
14
21
- Hide navbar on full-screen flow pages (invite, dashboard, admin) via `ConditionalHeader` patterns + remove `page-with-header` class
- For mobile bottom nav visual style, prefer transparent icon treatment over standout filled purple CTA button.
24
+
- For production troubleshooting UX, do not add user-facing alerts for transient feed/connection issues; log to Sentry instead.
16
25
17
26
## Patterns That Work
18
27
- Convex queries can join related data inline (e.g., activity types + categories in one query)
19
28
-`conditional-header.tsx` DASHBOARD_LAYOUT_PATTERNS array controls navbar visibility per route
20
29
- Admin console sidebar approach was scrapped — revisit admin nav design in the future
21
30
- Mobile feed performance improves by skipping non-critical per-item work (engagement count scans and media URL generation) on initial query
22
31
- For mobile perceived performance, SSR the first feed page from server auth and then let client `usePaginatedQuery` take over for realtime/pagination
32
+
- For mobile browser chrome collapse behavior, use document scrolling on mobile and keep internal `overflow-y-auto` scrollers only on desktop breakpoints.
33
+
- For x-like translucent mobile bottom nav, use low-alpha supported background (`supports-[backdrop-filter]:bg-zinc-950/15`) plus stronger blur/saturation.
34
+
- If user prefers no glass treatment, remove all `backdrop-*` and `supports-[backdrop-filter]:*` classes and use a plain alpha background (`bg-zinc-950/55`).
35
+
- Scroll-direction-driven nav fade works with a throttled `requestAnimationFrame` + `opacity` transition, and avoids layout jumps versus translate-based hide.
36
+
- For Convex mobile diagnostics, prefer env-gated verbose logs (`NEXT_PUBLIC_CONVEX_DEBUG=1`, `AUTH_LOG_LEVEL=DEBUG`) plus Sentry capture over user-facing banners.
23
37
24
38
## Patterns That Don't Work
25
39
- Deriving env vars inside `convex deploy --cmd` shell strings — escaping hell, fragile, hard to debug. Instead, derive them in `next.config.ts` which runs at build time and can set `process.env` before Next.js compiles.
26
40
27
41
## Domain Notes
28
42
- Scoring configs have types: distance, duration, count, variant
29
43
-`page-with-header` CSS class = `pt-16` to offset fixed navbar
44
+
- Dashboard layout uses `h-dvh` + `overflow-hidden` shell with an internal `main` scroller (`overflow-y-auto`); mobile browser chrome hide behavior is tied to this choice.
30
45
- Seed data lives in `packages/backend/actions/seed.ts`
31
46
- Schema changes auto-deploy locally via `pnpm dev`
32
47
- Local Convex HTTP routes (`httpAction`, `/api/v1/*`) are served from site origin (`127.0.0.1:3211`), not cloud origin (`127.0.0.1:3210`)
0 commit comments