docs: update HISTORY, FUTURE, DEVELOPMENT_LOG for v0.22.0

This commit is contained in:
null 2026-05-10 03:14:40 -05:00
parent d67fe6e61d
commit 5c35b20c00
3 changed files with 46 additions and 24 deletions

View File

@ -6,6 +6,38 @@
---
### v0.22.0 — React Query Migration
**Status:** ✅ COMPLETED
**Date:** 2026-05-10
**Priority:** MEDIUM
| Agent | Status | Time | Notes |
|-------|--------|------|-------|
| Neo | ❌ FAILED | 2s | Rate-limited, partial work only (installed deps, started TrackerPage migration) |
| Ripley | ✅ COMPLETED | — | Completed React Query migration, fixed error handling, version bump |
| Bishop | ✅ COMPLETED | 2m57s | 8/8 PASS |
| Hudson | ✅ COMPLETED | 26s | 4/5 PASS (1 FAIL fixed: error handling toast duplication) |
**Files modified:** `client/App.jsx`, `client/hooks/useQueries.js` (new), `client/pages/TrackerPage.jsx`, `package.json`, `package-lock.json`
**Work Completed:**
- [x] Installed @tanstack/react-query + @tanstack/react-query-devtools
- [x] Created custom hooks: useTracker, useBills, useCategories
- [x] Migrated TrackerPage from useState/useEffect to useTracker() hook
- [x] Added QueryClientProvider with sensible defaults
- [x] Added ReactQueryDevtools for development
- [x] Fixed load→refetch callback references
- [x] Fixed error handling: useRef pattern prevents duplicate toasts
**Security Audit (Hudson):**
1. Query key injection: ✅ PASS — safe numeric params
2. DevTools exposure: ✅ PASS — only API data, dev-only
3. Refetch callback safety: ✅ PASS — no uncontrolled loops
4. Error handling: ❌ FAIL → ✅ FIXED — useRef pattern prevents duplicate toasts
5. Cache configuration: ⚠️ INFO — long cache acceptable for UX
---
### v0.21.0 — 3-Month Trend Indicator
**Status:** 🔄 IN PROGRESS
**Date:** 2026-05-10

View File

@ -3,7 +3,7 @@
**This document tracks potential future enhancements for Bill Tracker.**
**Last Updated:** 2026-05-10
**Current Version:** v0.21.1
**Current Version:** v0.22.0
## How to Use This Document
@ -39,29 +39,6 @@ Items are grouped under their priority section heading (`## 🔴 CRITICAL`, `##
### 🟡 MEDIUM
### Add React Query (TanStack Query) for server state management
**Priority:** MEDIUM
**Added:** 2026-05-08 by Scarlett
**Description:**
Currently using manual `useState`/`useEffect` patterns with custom `api` wrapper for data fetching. This leads to duplicated loading/error handling, stale data issues, and no request caching.
**Rationale:**
Developer experience and performance. React Query provides:
- Automatic request caching and stale-while-revalidate
- Background refetching
- Optimistic updates
- Request deduplication
- Built-in loading/error states
**Implementation Notes:**
- Replace manual API calls in pages with `useQuery`, `useMutation`
- Add query keys for cache invalidation
- Implement global query client with React Query DevTools
- Gradual migration: start with TrackerPage, then BillsPage, then AnalyticsPage
- Files likely to be modified: `client/pages/*.jsx`, add `client/hooks/useQueryClient.js`
- Estimated effort: 4-6 hours for full migration
### Architecture: Business Logic Mixed with Route Handlers
**Priority:** MEDIUM
**Added:** 2026-05-08 by Neo

View File

@ -1,5 +1,18 @@
# Bill Tracker — Changelog
## v0.22.0
### Added
- **React Query Migration** — TrackerPage now uses TanStack Query (useQuery) for data fetching with caching, stale-while-revalidate, and auto-refetch
- **Custom Query Hooks**`useTracker()`, `useBills()`, `useCategories()` in `client/hooks/useQueries.js`
- **Query DevTools** — React Query DevTools available in development mode
- **QueryClientProvider** — Global config with 2min staleTime, 1 retry, refetchOnWindowFocus disabled
### Changed
- TrackerPage: replaced manual `useState`/`useEffect` with `useTracker()` hook
- `load()` callback replaced by `refetch()` from React Query
- Error handling: `useEffect` + `useRef` pattern prevents duplicate toast notifications
## v0.21.1
### Added