a06ddf0435
Build and Push Docker Image / build (push) Successful in 16s
- README: v0.8.1 highlights, Node 18+ requirement + client install step for manual dev setup, health/genetics features listed, release summary updated - API.md: paginated response shapes for dogs/litters, validation + status-code behavior (400/404), full breeding heat-cycle CRUD, genetics PUT/DELETE, pedigree COI/relations/cancer-lineage endpoints, corrected Litter object - DEVELOPMENT.md: two-layer migration approach documented with schema-drift warning, heat_cycles/cancer_history tables, Toast/ConfirmDialog UI patterns (no alert/window.confirm), full env-var table, auth-deferred decision noted - INSTALL.md: fixed API smoke-test (old /api/health root path doesn't exist), master -> main - ROADMAP: v0.8.1 entry; Phase 4b checkboxes reconciled with what's actually built; Phase 6 progress; pre-deploy prod-DB check added to QA list Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7.6 KiB
7.6 KiB
BREEDR Development Roadmap (v0.8.1)
🚀 Current Status: v0.8.1 (Active Development)
🔜 Next Up — Phase 4b: Health & Genetics (remaining items)
Context: Golden Retriever health clearances follow GRCA Code of Ethics and OFA/CHIC standards.
Step 1: DB Schema Extensions ✅
- Extend
health_recordstable with OFA-specific columns (test_type, result, ofa_number, expires_at, document_url) - Create
genetic_teststable (PRA, ICH, NCL, DM, MD, GR-PRA variants) - Create
cancer_historytable - Add
chic_number,age_at_death,cause_of_deathtodogstable - All changes via safe ALTER TABLE / CREATE TABLE IF NOT EXISTS guards
Step 2: API Layer ✅
- Health record CRUD (
/api/health) + document upload (POST /api/health/upload) GET /api/health/dog/:dogId/clearance-summaryGET /api/health/dog/:dogId/chic-eligible- Genetics CRUD (
/api/genetics) GET /api/genetics/pairing-risk(sire + dam carrier check)- Cancer history endpoints
Step 3: Core UI — Health Records
HealthRecordFormmodal (per-type fields, result, OFA#, expiry, doc upload, age validation)HealthTimelineon DogDetail page (records list exists; timeline view pending)ClearanceSummaryCard2×2 grid (Hip / Elbow / Heart / Eyes)ChicStatusBadgeon dog cards- Expiry logic for recurring tests (CAER, echo) in clearance summary
Step 4: Core UI — Genetics Panel ✅
GeneticTestFormmodalGeneticPanelCardon DogDetail (color-coded markers)- Pairing risk overlay on Trial Pairing Simulator
Step 5: Eligibility Checker
- Eligibility logic (
grca_eligiblecomputed in clearance summary) - Eligibility badge on dog cards
- Pre-litter eligibility warning modal
🕒 Version History & Recent Progress
-
v0.8.1 (July 6, 2026) - Sanity, Hardening & UX Pass (LATEST)
- Fresh-install fix:
heat_cyclestable + litters/health_records columns added to init.js (schema had drifted from route usage); migration runner no-ops on empty DBs;DB_PATHhonored consistently - Deps: better-sqlite3 9→11 (Node 18–24 prebuilds); removed unused auth deps (bcrypt, jsonwebtoken, express-validator, express-rate-limit) — auth deliberately deferred
- API hardening: sire/dam existence + sex validation, 404 on missing-dog updates, transactional multi-step writes, safe
photo_urlsparsing, photo-index bounds check - UX layer: toast notifications (replaces all
alert()), ConfirmDialog (replaces allwindow.confirm()), load-error banners with Retry (Promise.allSettledloaders), 404 page, nav active-state on detail routes - Fixes: Start Heat Cycle female list was always empty (wrong response key); live OFA age warning in health form; puppy sorting; mobile responsiveness (375px clean on all pages)
- Removed dead debug scripts (
test_app.js,test_express.js)
- Fresh-install fix:
-
v0.8.0 (March 12, 2026) - Reverse Pedigree & External Parentage
- Reverse Pedigree (descendants view) toggle on Pedigree page
- External dog parentage improvements (allowed assigning sire/dam to external dogs)
- Universal parent selection (sire/dam dropdowns now include all dogs)
- Updated documentation and roadmap
-
v0.7.0 (In Progress) - Phase 4b: Health & Genetics
- OFA clearance tracking (Hip, Elbow, Heart, Eyes + CHIC number)
- DNA genetic panel (PRA, ICH, NCL, DM, MD variants)
- Cancer lineage & longevity tracking
- Breeding eligibility checker (GRCA + CHIC gates)
- Health Record modal overhaul (July 6, 2026):
- Per-record-type field sets (OFA / vaccination / exam / surgery / medication / other)
- Result options scoped to the selected test; blank default (no fabricated clearances)
- Added Thyroid & Patella OFA tests; expiry only shown for recurring tests (CAER, advanced cardiac)
- Date & 24-month age validation on OFA hip/elbow
- Unified clinician field (
performed_by); deprecatedvet_name - DNA removed as a health
test_type(owned solely by Genetics module) - Delete action on the health records list
- Document upload (PDF/image) via
POST /api/health/upload
-
v0.6.1 (March 10, 2026) - COI Direct-Relation Fix
- Fixed
calculateCOIto correctly compute coefficient for parent×offspring pairings (~25%) - Removed blanket sire exclusion in ancestor mapping logic
- Fixed
-
v0.6.0 (March 9, 2026) - Champion Bloodline, Settings, Build Fixes
is_championflag on dogs table with ALTER TABLE migration guard- Champion toggle in DogForm;
✪suffix in parent dropdowns; offspring badge - Kennel settings table +
GET/PUT /api/settings+SettingsProvider useSettings.jsxrename (Vite build fix)server/index.jsfix:initDatabase()no-arg, duplicate health route removedserver/routes/settings.jsrewrite: double-encoded base64 fixed
-
v0.5.1 (March 9, 2026) - Projected Whelping Calendar
- Indigo whelp window cells (days 58–65) on month grid
Babyicon + "[Name] due" label in whelp day cells- Live whelp preview in Cycle Detail modal
-
v0.5.0 (March 9, 2026) - Breeding Tools
- Trial Pairing Simulator: COI calculator, risk badge, common ancestors
- Heat Cycle Calendar: month grid, phase color coding, suggestions
📋 Future Roadmap
✅ Phase 5: Advanced Features (IN PROGRESS)
- Reverse pedigree (descendants view)
- PDF pedigree generation
- Export to standard formats (CSV, JSON)
- Print-friendly layouts
- Multi-generation COI analysis
📅 Phase 6: Polish & Optimization
- User Experience: Toasts, confirmation dialogs, load-error banners with retry (v0.8.1)
- User Experience: Undo functionality
- Performance: Image optimization, lazy loading, API caching, pedigree recursive-CTE query (known N+1 on deep trees)
- Mobile: Responsive layouts across all pages at phone width (v0.8.1)
- Mobile: Mobile photo capture
- Documentation: API reference kept current (API.md)
- Security: Authentication/rate limiting if the app is ever exposed beyond the LAN (deps intentionally removed in v0.8.1)
✅ Completed Milestones
Phase 1: Foundation
- Docker multi-stage build & SQLite database
- Express.js API server & React 18 frontend
- Parents relationship table for sire/dam tracking
Phase 2: Core Functionality
- Dog Management (Full CRUD, photo uploads)
- Modern dark theme with glass morphism
- Branded navigation with custom logo
Phase 3: Breeding Tools
- Interactive pedigree tree visualization (React-D3-Tree)
- Litter Management & linking puppies
- Trial Pairing Simulator & Heat Cycle Calendar
- Projected Whelping identifiers
Phase 4a: Champion & Settings
- Champion bloodline tracking and badges
- Universal Kennel Settings system
🏃 Testing & Quality Assurance
- Database schema initialization guards (verified against a virgin database, v0.8.1)
- Pedigree tree rendering & zoom/pan
- Parent relationship creation logic (+ sex/existence validation, v0.8.1)
- Static asset serving (prod/dev)
- Heat cycle CRUD on fresh DB (v0.8.1)
- Health records CRUD + document upload (v0.8.1)
- Champion toggle load/save trip
- Boot against a copy of the production DB after schema changes (pre-deploy check)
How to Contribute
- Pick a feature from "Next Up" above
- Create a feature branch off
main:feat/feature-name - Implement with tests and update this roadmap
- Submit PR for review
Last Updated: July 6, 2026