null
71dfbe36cc
refactor: component splits, PWA support, CommandPalette
...
Component Splits:
- AdminPage.jsx: 1,906 -> 82 lines (logic moved to client/components/admin/ — 9 files)
- DataPage.jsx: 3,132 -> 60 lines (logic moved to client/components/data/ — 8 files)
- TrackerPage.jsx: 2,566 -> 2,132 lines (MonthlyStateDialog, StartingAmountsEditDialog, PaymentModal)
PWA:
- vite-plugin-pwa installed with NetworkFirst caching for API routes
- Square PWA icons (192x192, 512x512, apple-touch-icon)
- theme-color, apple meta tags, touch icon in index.html
- Build generates dist/sw.js + Workbox runtime
CommandPalette:
- Navigation commands, Add bill action, month jumps
- Grouped results with empty/filtered states
2026-05-28 20:53:22 -05:00
null
92cc667947
chore: bump version to v0.28.4.4
2026-05-28 20:14:00 -05:00
null
33e5c187a3
dark theme
2026-05-28 19:58:01 -05:00
null
d99ea8057e
dark theme
2026-05-28 19:40:55 -05:00
null
1f3a254c7c
brighten dark mode
2026-05-28 19:30:46 -05:00
null
8f7d0aeaff
styling
2026-05-28 04:06:37 -05:00
null
8efb7c934d
fix suggested
2026-05-28 02:53:59 -05:00
null
8122d07069
inline editing
2026-05-28 02:53:35 -05:00
null
1426ee3bb5
error handling
2026-05-28 02:34:24 -05:00
null
e8218a3dd8
bill tracker futurue
2026-05-28 02:09:49 -05:00
null
fa60ea8fbd
fix paid coloum
2026-05-28 01:38:18 -05:00
null
9d933f70cc
v0.28.01
2026-05-16 20:26:09 -05:00
null
b124e48ebc
v0.28.0
2026-05-16 15:38:28 -05:00
null
59d9d21d4c
v0.28.0
2026-05-16 10:34:32 -05:00
null
0ba315bd32
v0.28.0
2026-05-15 22:45:38 -05:00
null
48fe87ea25
corrections
2026-05-14 01:17:05 -05:00
null
c1ac14efe3
v0.24.4: analytics mobile layout + previous month payment toggle
2026-05-11 11:56:49 -05:00
null
86148a101f
feat: remove confirmation popup from status badge toggle (v0.24.3)
...
Clicking status badges (Late, Due Soon, Upcoming, Missed) now instantly
toggles paid/unpaid. Removed AlertDialog from TrackerPage.jsx — no more
confirmation dialog blocking the action.
2026-05-10 17:56:23 -05:00
null
6d42453e07
fix: status badge toggle-paid using wrong property name (v0.24.2)
...
handleTogglePaid() was using row.bill_id instead of row.id, causing
the API call to fail with an undefined bill ID. Clicking status badges
(Late, Due Soon, Upcoming, Missed) now correctly toggles paid/unpaid.
2026-05-10 17:28:26 -05:00
null
5eed5932b4
feat: replace native confirm() with shadcn/ui AlertDialog (v0.23.3)
...
- TrackerPage: confirm('Mark as paid?') → AlertDialog with dynamic bill name
- DataPage: window.confirm('Import SQLite?') → AlertDialog for import confirmation
- Both dialogs use proper shadcn/ui components (AlertDialogAction/Cancel)
- Theme-aware, accessible, consistent with app design system
- STRUCTURE.md: corrected tech stack (Vite+React, not Next.js)
- Version bumped to 0.23.3
2026-05-10 14:36:59 -05:00
null
d67fe6e61d
v0.22.0: React Query Migration
...
- Added @tanstack/react-query and @tanstack/react-query-devtools
- Created useTracker, useBills, useCategories custom hooks (useQueries.js)
- Migrated TrackerPage from manual useState/useEffect to useQuery
- Added QueryClientProvider with 2min staleTime, 1 retry, refetchOnWindowFocus: false
- Added ReactQueryDevtools for development
- Fixed error handling: useRef pattern prevents duplicate toast notifications
- Replaced load() callback with refetch() from useQuery
- Hudson security audit: 4/5 PASS (1 FAIL fixed: error handling toast duplication)
2026-05-10 03:10:43 -05:00
null
314159d241
v0.21.1: Loading Skeletons & Async State
...
- Reusable Skeleton component (line, circle, card, button, input variants)
- TrackerPage: skeleton cards, rows, buckets with aria-busy attributes
- BillsPage: skeleton rows during loading
- Bug fix: double closing brace />}} on Bucket component
- Hudson security audit: 5/5 PASS
2026-05-10 01:35:41 -05:00
null
cfb074c7cd
v0.21.0: 3-Month Trend Indicator on Tracker
...
- Backend: 3-month payment aggregation with year-wrapping, trend object in API (direction, percent_change, 3_month_avg)
- Frontend: TrendIndicator component (arrow + percentage + label), TrendCard with purple gradient
- Bug fix: Bishop fixed 3-month query to JOIN through bills for user scoping (payments table has no user_id)
- Bug fix: Ripley removed duplicate TrendIndicator function definition
- Hudson security audit: 5/5 PASS (SQL injection, user scoping, date wrapping, division by zero, XSS)
2026-05-10 01:22:51 -05:00
null
4990bf47f6
v0.20.9: Previous Month Paid column on Tracker
...
- Backend: previous month calculation with year wrapping (Jan→Dec)
- Backend: previous_month_paid per bill row, previous_month_total in summary
- Frontend: 'Last Month' column in desktop table with muted text
- Frontend: 'Last Month' in mobile view, summary card for prev month total
- Hudson security audit: 5/5 PASS (SQL injection, date wrapping, user scoping, auth, XSS)
2026-05-10 00:52:23 -05:00
kaspa
4d1709aea3
push
2026-05-09 13:03:36 -05:00
_null
d1efeece04
push
2026-05-04 20:12:57 -05:00
_null
969139251d
calendar
2026-05-04 13:14:32 -05:00
_null
b9d1366d46
initial commit
2026-05-03 19:51:57 -05:00