- Replace 4-card stats grid with single horizontal bar showing
total items, high priority count, submissions, and total budget
- Add search input for filtering by name/description
- Add priority filter dropdown
- Move Add Item button to header row next to Export/Refresh
- Widen filter dropdowns to prevent text truncation
Replace single vote button with up/down voting system:
- Users can upvote OR downvote (not both)
- Clicking same vote removes it, different vote changes it
- Items sorted by score (upvotes - downvotes) by default
- Score displayed with color coding (green/red/muted)
Also adds PDF/CSV export with jspdf and onSuccess callback
for add dialog refresh.
- Add parentId column to wishlist_comments for reply threading
- Create wishlist_comment_votes table for up/down voting
- Add deleteComment action (owner-only, cascades to replies)
- Add toggleCommentVote action with toggle behavior
- Update getItemWithComments to return nested CommentWithMeta
- Create CommentItem component with voting UI and reply support
- One level of reply depth enforced (can't reply to replies)
- add D1 database with drizzle ORM for wishlist data
- create wishlist items, votes, and comments tables
- implement server actions for CRUD, voting, comments
- add wishlist page with auth protection
- create components: stats, filters, item cards, add dialog, detail drawer
- add optimistic updates for voting
- update sidebar navigation with Infrastructure Wishlist link
- configure middleware to use WORKOS_REDIRECT_URI env var for local dev
- add WorkOS AuthKit authentication with middleware protection
- add dashboard with sidebar layout (shadcn/ui components)
- add contributor documentation (CONTRIBUTING, CODE_OF_CONDUCT,
SECURITY, START-HERE, Documentation/)
- add CI workflow for lint and build on PRs
- switch from pnpm to bun
- add CLAUDE.md and AGENTS.md for AI assistant context