Commit Graph

224 Commits

Author SHA1 Message Date
Zenflow
2daccf7d8c INIT (zenflow 9c6862b8)
Scan the code, build the .md files you need to make it easier for the agent to preform modifications and fix bugs
2026-03-11 09:51:35 -05:00
5c6068364b Update TEST.md to include abc456 2026-03-11 01:22:26 -05:00
768e25183d Add TEST.md with text 123 2026-03-11 01:06:52 -05:00
78069f2880 Merge pull request 'feature/external-dogs' (#50) from feature/external-dogs into master
Reviewed-on: #50
2026-03-11 01:01:48 -05:00
2cfeaf667e Merge pull request 'fix: wire external dogs end-to-end (modal, form flag, pairing simulator)' (#49) from fix/external-dogs-wiring into feature/external-dogs
Reviewed-on: #49
2026-03-11 01:01:18 -05:00
5eaa6e566c fix: GET /api/dogs honours ?include_external=1 query param for pairing simulator 2026-03-11 01:00:48 -05:00
80b497e902 fix: PairingSimulator fetches /api/dogs?include_external=1 so external dogs appear in selectors 2026-03-11 00:57:59 -05:00
8cb4c773fd fix: DogForm accepts isExternal prop — sets is_external flag, hides litter/parent pickers, shows banner 2026-03-11 00:56:51 -05:00
22e85f0d7e fix: wire Add External Dog button to DogForm modal (removes broken /dogs/new?external=1 nav) 2026-03-11 00:55:51 -05:00
aa3b1b2404 feat(nav): add External Dogs nav link and route 2026-03-10 15:27:06 -05:00
3275524ad0 feat(ui): add ExternalDogs page — full CRUD roster for external sires/dams 2026-03-10 15:26:21 -05:00
9738b24db6 feat(api): add is_external support — GET /api/dogs filters kennel dogs; GET /api/dogs/external returns external roster 2026-03-10 15:24:50 -05:00
0c84b83e75 feat(db): add is_external flag to dogs table with safe ALTER TABLE migration 2026-03-10 15:23:35 -05:00
01a5db10c0 Merge pull request 'docs: update README with COI direct-relation fix (v0.6.1)' (#48) from fix/coi-direct-relation into master
Reviewed-on: #48
2026-03-10 15:16:21 -05:00
df7d94ba9d docs: update README with COI direct-relation fix (v0.6.1) 2026-03-10 15:15:00 -05:00
af9398ec0f Merge pull request 'fix: COI correctly calculates parent×offspring and direct-relation pairings' (#47) from fix/coi-direct-relation into master
Reviewed-on: #47
2026-03-10 15:09:45 -05:00
389636ce6f fix: COI correctly calculates parent×offspring and direct-relation pairings
- Remove blanket `id !== sid && id !== did` exclusion from commonIds filter
  which was silently zeroing out COI for parent×offspring pairings because
  the sire (sid) IS the common ancestor in damMap but was being filtered out.
- Instead: exclude `did` from sireMap keys (sire can't be its own common
  ancestor with the dam) and exclude `sid` from damMap keys (same logic).
- Parent×offspring pairing now correctly yields ~25% COI as expected by
  Wright's path coefficient method.
- All other normal pairings are unaffected.
2026-03-10 15:08:33 -05:00
2164b035a8 fix(backend): move named routes above /:id wildcard — Express route order bug causing 0% COI 2026-03-10 15:01:22 -05:00
6431164d3b Merge pull request 'fix: COI direct-ancestor bug — correct Wright algorithm + frontend relation guard' (#45) from fix/pairing-coi-and-direct-relation-guard into master
Reviewed-on: #45
2026-03-10 14:57:15 -05:00
72c54f847f fix(frontend): block/warn direct parent-offspring selections in PairingSimulator 2026-03-10 14:56:09 -05:00
c949fe2502 fix(backend): rewrite COI with self-at-gen-0 Wright method + direct-relation detection endpoint 2026-03-10 14:54:59 -05:00
1dacdc9fe7 Merge pull request 'fix: correct Wright COI algorithm — handle direct parent-offspring pairings' (#44) from fix/coi-direct-ancestor-logic into master
Reviewed-on: #44
2026-03-10 14:48:04 -05:00
f5ee9837c6 fix: correct COI Wright path algorithm — include sire/dam as direct ancestors of each other 2026-03-10 14:44:27 -05:00
c7c0ec6530 Merge pull request 'fix: Trial Pairing Simulator — correct SQLite string quoting for sex filter' (#43) from fix/trial-pairing-sex-quote into master
Reviewed-on: #43
2026-03-10 14:39:16 -05:00
20fcc39a58 fix: use single quotes for sex string literals in trial-pairing SQL (SQLite double-quote = identifier) 2026-03-10 14:38:16 -05:00
d5bce0522b Merge pull request 'fix: Migration 003 - dynamic column restore to handle missing updated_at' (#42) from fix/migration-003-dynamic-columns into master
Reviewed-on: #42
2026-03-10 14:32:36 -05:00
e17ce2be29 fix: Migration 003 - use dynamic column list to handle missing updated_at in old schema 2026-03-10 14:31:58 -05:00
d1b02cb735 Merge pull request 'fix: wire runMigrations() into startup before initDatabase()' (#41) from fix/wire-migrations-to-startup into master
Reviewed-on: #41
2026-03-10 14:28:20 -05:00
e800cb91f2 fix: wire runMigrations() into startup before initDatabase() 2026-03-10 14:24:32 -05:00
7d498962c8 Merge pull request 'fix: Remove old record_type CHECK constraint from health_records (Migration 003)' (#40) from fix/health-record-type-constraint into master
Reviewed-on: #40
2026-03-10 13:08:07 -05:00
031e344fcb fix: Migration 003 - remove old record_type CHECK constraint from health_records 2026-03-10 13:06:42 -05:00
b49b2b4281 Merge pull request 'feat/startup-log' (#39) from feat/startup-log into master
Reviewed-on: #39
2026-03-10 12:59:20 -05:00
6e8f747c8a docs: Add documentation for startup log utility 2026-03-10 12:57:32 -05:00
326bf318a1 feat: Integrate startup log utility in server initialization 2026-03-10 12:56:54 -05:00
799edcf3c4 feat: Add startup log utility with system info and ASCII banner 2026-03-10 12:56:26 -05:00
4e5b695c22 Merge pull request 'fix(db): add vet_name, result, next_due to healthMigrations ALTER TABLE guards' (#38) from fix/health-records-missing-columns into master
Reviewed-on: #38
2026-03-10 12:52:40 -05:00
9b43bdab99 fix(db): add vet_name, result, next_due to healthMigrations ALTER TABLE guards
Existing databases were missing these 3 columns because they were defined
in the CREATE TABLE but not in the healthMigrations array used for
ALTER TABLE on pre-existing DBs. This caused the 'table health_records
has no column named vet_name' error in the Add Health Record modal.
2026-03-10 12:52:04 -05:00
9de792aa02 Merge pull request 'feat/phase-4b-health-genetics' (#36) from feat/phase-4b-health-genetics into master
Some checks failed
Build & Publish Docker Image / build-and-push (push) Has been cancelled
Reviewed-on: #36
2026-03-09 23:38:18 -05:00
e9588fa866 feat(ui): integrate ClearanceSummaryCard and HealthRecordForm into DogDetail 2026-03-09 23:32:41 -05:00
56458340ea feat(ui): add HealthRecordForm modal with OFA and general record support 2026-03-09 23:31:26 -05:00
bc7f54b084 feat(ui): add ClearanceSummaryCard with OFA clearance chips and GRCA eligibility badge 2026-03-09 23:30:47 -05:00
97efc937c0 feat(server): register /api/genetics route for Phase 4b 2026-03-09 23:25:15 -05:00
d9cd0bec58 feat(api): add genetics.js — DNA panel CRUD + pairing-risk endpoint 2026-03-09 23:23:46 -05:00
8635483332 feat(api): rewrite health.js with OFA clearance fields, clearance-summary, chic-eligible endpoints 2026-03-09 23:22:55 -05:00
91ad50655c feat(db): Phase 4b schema — OFA clearances, genetic_tests, cancer_history, eligibility fields 2026-03-09 23:21:44 -05:00
286b9c9bd0 feat: expand Phase 4b roadmap with full health clearance & genetics system 2026-03-09 23:19:15 -05:00
cf2a5ba8d3 Merge pull request 'feat: delete dogs + PawPrint nav icon' (#35) from feat/dog-delete-nav-icon into master
Some checks failed
Build & Publish Docker Image / build-and-push (push) Has been cancelled
Reviewed-on: #35
2026-03-09 22:59:44 -05:00
aa63e4f388 feat(nav): swap Dogs icon from Users to PawPrint 2026-03-09 22:59:02 -05:00
e44883b5e0 feat(dogs): add delete button with confirm modal on DogList 2026-03-09 22:58:41 -05:00
0ade8586f9 feat(dogs): add hard DELETE /api/dogs/:id with cascade cleanup 2026-03-09 22:57:43 -05:00