Skip to content

Commit 44f6641

Browse files
prazgaitisclaude
andauthored
Fix PR day scoring and polish achievements UI (#240)
* Add backend lint for admin activity lifecycle * Fix PR day scoring to exclude system bonuses and improve achievements UI - Add isUserLoggedActivity filter to exclude category_leader and mini_game activities from PR day calculations and mini-game point computations - Add qualifying activities display to earned achievement cards on profiles - Add admin "Earned by Participants" section to achievements management page - Move achievements card above streak calendar on user profiles - Polish achievements card to match mini-game card design system Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix manypkg lint: align eslint range and sort backend deps Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3ea6936 commit 44f6641

12 files changed

Lines changed: 596 additions & 175 deletions

File tree

.claude/napkin.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
| 2026-03-10 | self | Passed a dynamic-route path with `[]` and `()` unquoted into `rg`, and zsh globbing failed again while comparing mini-game profile files | Quote every individual dynamic route path in shell commands, even when mixing them with normal paths in the same invocation |
1919
| 2026-03-10 | self | Ran workspace-scoped ESLint from `apps/web` but still passed repo-root file paths, so ESLint reported no matching files | When using `pnpm -F web exec ...` from the workspace directory, pass paths relative to `apps/web` |
2020
| 2026-03-11 | self | Created a task markdown file with shell redirection instead of `apply_patch` | Use `apply_patch` for file creation/editing, including task files required by repo process |
21+
| 2026-03-23 | self | Assumed backend drift would already be covered by repo lint, but only `apps/web` had ESLint wired | When adding architectural guards for Convex/backend code, first verify the package actually has a `lint` script and ESLint config |
2122
| 2026-03-01 | self | Started repo exploration before reading `.claude/napkin.md` again | Always run `cat .claude/napkin.md` as the very first command in a new session |
2223
| 2026-03-01 | self | CSV row typing was too narrow (`string | number`) and failed once boolean `isNegative` values were added | For CSV builders, include all emitted scalar types up front (`string | number | boolean`) or coerce before push |
2324
| 2026-03-01 | self | After `pnpm -F web add ...`, got `lockfile only installation` warning and later typecheck failed on missing workspace modules | Run `pnpm install` after filtered add commands when warned about lockfile-only state, then re-run checks |
@@ -157,4 +158,5 @@
157158
| 2026-03-01 | self | Wrote pagination test assuming followed activity order by logical date; query order was by insertion/descending index order | In feed tests, assert membership or deterministic ordering inputs; don't assume `loggedDate` sort unless query enforces it |
158159
| 2026-03-02 | self | When adding a new `usePaginatedQuery` for a different Convex query alongside an existing one, both must stay mounted (hooks can't be conditional in React); use `"skip"` arg on the inactive query | Always use `"skip"` sentinel for Convex paginated queries that should be inactive based on tab state |
159160
- `followingOnly` feed filters applied after pagination can return empty initial pages despite available matches later; skip empty pages server-side before returning a page.
161+
- Backend architectural drift is best guarded with narrow ESLint rules on the specific mutation entrypoints rather than broad import bans that interfere with legitimate admin edit/comment flows.
160162
| 2026-03-11 | self | Tried to read a Next route file with unquoted brackets and zsh globbed it | Always single-quote `app/**/[param]/**` paths in shell commands |

0 commit comments

Comments
 (0)