Changelog
Recent product updates
2026-02-22
Features
- ui: consolidate toast notifications
- auth: log sign-in errors for debugging and monitoring
- profile: continue issue 43 ban notice and appeal flow
- moderation: hide active banned user content
- profile: show ban status notice on user's own profile page
Fixes
- admin: stabilize dashboard fetch hook effect dependencies
- toasts: avoid global toast pre-dismiss race
- toasts: address PR review feedback
- auth: address all PR #65 review comments
- api: address new pr review comments
- auth: address pr review hardening feedback
- auth: redirect to profile only for banned users
- auth: allow banned sign-in with restricted account access
- moderation: honor admin override in comment visibility counts
- auth: bypass cached roles for authorization
- cache: align following feed counts and invalidations
- cache: address remaining review thread issues
- cache: address PR review follow-up comments
- cache: adjust comment count cache invalidation to use batch function
2026-02-21
Features
- layout: add admin-only hamburger menu in header
- admin: add resilient widget refresh status indicators
- bot: implement specific issue flag (pnpm bot:issue <number>)
- bot: add production-ready autonomous implementation system
- admin: add react-datepicker for ban end date
- admin: add datepicker to ban end date
- admin: add role-based protection for ban/disable actions
- bans: add ban appeal UI on home page for banned users
- comments: add graceful error handling with toast messages
- ui: hide post/comment engagement UI for banned/disabled users
- posts: prevent banned/disabled users from post engagement actions
- admin: hide ban button for already-banned users and show banned status badge
- admin: add ban management UI and environment validation
- admin: add site administration for bans, appeals, and content moderation
Fixes
- admin: address widget refresh review feedback
- account: support Escape cancel in public name editor
- account: save public name edits on Enter key
- admin: sync dashboard time-window labels with selected filter
- pr-review: address GitHub Copilot PR review comments
- api: standardize 4xx error payloads
- api: standardize ban validation errors
- admin: handle ban errors without throw
- ui: make datepicker visible above dialog
- ui: render datepicker outside dialog
- ui: restore datepicker icon click
- ui: match datepicker icon to input text
- ui: improve datepicker icon contrast
- admin: hide unavailable user actions
- bans: prevent resubmission of appeals after denial
- admin: correct request body field for appeal grant/deny API
- posts: add HTTP status to delete errors and close dialog on failure
- comments: close delete dialog on both success and error
- admin: add DELETE handler for removing user bans
- bans: respect unique constraint on userId by updating existing bans instead of creating new ones
- api: prevent duplicate bans and improve error logging in ban endpoint
- ui: change TextPromptDialog description container from p to div to support nested JSX elements
- api: correct ban response format to match BanManagementWidget interface expectations
- admin: allow empty end date in ban dialog since it is optional
- admin: render ban duration dialog description with proper HTML line breaks instead of literal \n characters
- tests: resolve TypeScript errors for process.env assignments
- build: correct instrumentation import path and remove deprecated config
2026-02-20
Features
- admin: Add real-time dashboard with analytics widgets
- admin: implement privilege-based role assignment
- admin: add role assignment API endpoints
- error-handling: add global error pages and admin route with friendly messages
- auth: add user roles and auditing
Fixes
- admin: Add missing timeWindow prop to test component renders
- Add comprehensive test coverage for admin dashboard API routes and fix data exposure
- admin: Address all PR review issues - complete dashboard implementation
- admin: address all PR review comments
- tests: wrap async state updates in waitFor to eliminate act() warnings
- auth: address PR feedback for roles
2026-02-17
Features
- social: add profile pictures to FollowListModal
- social: add inline follow buttons with icon variant
- social: implement user following system
- profile: add authored post feed to profile pages
- home: remove 'Welcome to Down In A Hole' title
- layout: move Create Post button to header
Fixes
- follow: normalize handle to lowercase in follow endpoints
- api: address PR review feedback on user posts endpoint
- posts: ensure feed refreshes when post created in header
- posts: handle PostFeedRefresh context outside provider
2026-02-15
Features
- posts: add author-only analytics details section on post detail
- layout: make header sticky
- comments: animate reply editor transitions
- comments: cancel reply editor on Escape
- posts: add unique view counts with tooltip
- comments: sync parent counts and improve count labels
- comments: submit comments on enter and remove post buttons
- account: reorganize profile sections and enforce edit focus behavior
- layout: add changelog footer link and two-column grouping
- changelog: add public changelog page from generated history
- users: add editable public name with handle fallback
- comments: add owner-only soft delete with continuity placeholder
- posts: add owner-only soft delete with dialog confirmation
- comments: add signed-in comment and reply inputs
- comments: add expandable comments tray with nested replies
- ui: add SVG favicon and header brand icon
- track post views from feed cards
- implement post view tracking analytics
- auto-refresh feed when posts are created
Fixes
- posts: address copilot review feedback for analytics
- views: exclude post owner from view tracking
- changelog: remove commit hashes from public entries
- comments: place reply cursor at end of prefilled mention
- markdown: auto-link @handle mentions in posts and comments
- comments: animate comments tray open/close before unmount
- move view count to bottom left of post card
2026-02-14
Features
- Add post detail page
- Add post feed with infinite scrolling
- Add create post feature with responsive modal dialog
- conditional sign-out redirect based on route protection status
- issue-15: implement posts, comments, likes, and views schema
- add about page with mission statement and link from footer
- profile: add public handle route
- account: edit markdown description
- account: edit handle with validation
- account: show handle and markdown bio
- user: add handle and description fields
- account: add pagination to sign-in history
- ui: improve AuthStatus visibility and add profile image link
- app: share layout chrome
- add account page and sign-in history
- auth: add prisma auth schema
Fixes
- Add missing 'beforeEach' import in AuthStatus.test.tsx
- Replace 'as never' with 'as Response' in fetch mock tests
- Add proper type annotation for 'this' in HTMLDialogElement mock
- markdown: enforce https-only links and add mailto support
- link account email and await params
- test: correct coverage thresholds and typings
- resolve auth build errors
2026-02-13
Features
- add Google OAuth authentication with NextAuth.js
Fixes
- allow Node 22+ in engines field