Commit Graph

19 Commits (411ba7b34c0c23ad217a7897835097887a28a036)

Author SHA1 Message Date
boojack 411ba7b34c feat(about): add about page with bird sprites 1 month ago
boojack 638e4f398e feat(placeholder): add woodpecker tilemap 1 month ago
boojack cf55f11072 feat(frontend): add pixel bird tilemaps 1 month ago
boojack ca2bc4eb84 chore: render placeholder ascii pieces as components 1 month ago
boojack aa5cb455e9 refactor(web): use `/` as the home route instead of `/home`
Home now lives at `/` directly. Unauthenticated visitors are sent to
`/explore` by the landing gate; old `/home` URLs redirect to `/` for
bookmark compatibility.
1 month ago
boojack 8c16ffa1f1
feat: add <Placeholder> component with ASCII bird states (#5949)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 month ago
boojack a6024eebf1
perf: lazy load heavy first-screen dependencies (#5947) 1 month ago
boojack f3f059b2f7 chore: add batch get settings API 1 month ago
boojack 88ac3ec31e feat(stats): support filtered all-user stats
- Add state and filter inputs to ListAllUserStats and reuse it for explore/archive sidebar stats.
- Reduce duplicate home initialization requests by sharing stats/settings data paths.
- Include memo paragraph regression coverage from the current working tree.
1 month ago
boojack ef55013418
feat(memo): create memos on the selected calendar date (#5925) 2 months ago
Steven 8daef1dc89 feat(activity-calendar): aggregate by ViewContext.timeBasis
Fixes the inconsistency where switching the memo list to update_time
left the activity heatmap aggregating by created_time. The heatmap
now follows the same time basis as the list it sits next to.

Backend
- UserStats gains memo_updated_timestamps (additive proto field, tag 8).
- GetUserStats and ListAllUserStats populate it alongside the existing
  memo_created_timestamps. No DB migration; memo.updated_ts already
  exists on every row.

Frontend
- useFilteredMemoStats reads timeBasis from ViewContext and selects
  the matching timestamp source.
- StatisticsView and MonthNavigator forward timeBasis through to
  MonthCalendar / YearCalendar so tooltip text matches the basis
  ("X memos in DATE" vs "X memos updated on DATE").
- Falls back to memoCreatedTimestamps when an old server returns an
  empty memoUpdatedTimestamps array (detected by length divergence,
  since protobuf-es deserializes missing repeated fields as []).

Tests
- Backend: TestGetUserStats_MemoUpdatedTimestamps verifies the field
  is populated and reflects post-creation updates.
- Frontend: filtered-memo-stats covers create/update source switching
  and the old-server fallback path; activity-calendar-tooltip covers
  basis-aware label selection.

Spec and implementation plan committed under docs/superpowers/.
2 months ago
Steven a0b6417689 chore: bump pnpm to 11.0.1 and align list test assertions 2 months ago
boojack 18e729fe00 chore(memo): simplify markdown task list rendering 2 months ago
boojack e2c60845ea fix(markdown): split mixed task and bullet lists 2 months ago
boojack 34c90dd5e1 chore: remove duplicate tags from share image preview 2 months ago
boojack d688914b28
feat(auth): add SSO user identity linkage (#5883) 2 months ago
boojack b5863d76be
fix(web): preserve task checkbox state (#5867) 2 months ago
boojack 88cb58ab64
refactor(web/routing): guard-based auth flow, migrate tests to Vitest (#5848) 2 months ago
boojack 7e21b728b3 fix: harden memo content iframe and HTML sanitization 2 months ago