22e85f0d7e
fix: wire Add External Dog button to DogForm modal (removes broken /dogs/new?external=1 nav)
jason2026-03-11 00:55:51 -05:00
aa3b1b2404
feat(nav): add External Dogs nav link and route
jason2026-03-10 15:27:06 -05:00
3275524ad0
feat(ui): add ExternalDogs page — full CRUD roster for external sires/dams
jason2026-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
jason2026-03-10 15:24:50 -05:00
0c84b83e75
feat(db): add is_external flag to dogs table with safe ALTER TABLE migration
jason2026-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
jason2026-03-10 15:16:21 -05:00
df7d94ba9d
docs: update README with COI direct-relation fix (v0.6.1)
jason2026-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
jason2026-03-10 15:09:45 -05:00
389636ce6f
fix: COI correctly calculates parent×offspring and direct-relation pairings
jason2026-03-10 15:08:33 -05:00
2164b035a8
fix(backend): move named routes above /:id wildcard — Express route order bug causing 0% COI
jason2026-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
jason2026-03-10 14:57:15 -05:00
72c54f847f
fix(frontend): block/warn direct parent-offspring selections in PairingSimulator
jason2026-03-10 14:56:09 -05:00
c949fe2502
fix(backend): rewrite COI with self-at-gen-0 Wright method + direct-relation detection endpoint
jason2026-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
jason2026-03-10 14:48:04 -05:00
f5ee9837c6
fix: correct COI Wright path algorithm — include sire/dam as direct ancestors of each other
jason2026-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
jason2026-03-10 14:39:16 -05:00
20fcc39a58
fix: use single quotes for sex string literals in trial-pairing SQL (SQLite double-quote = identifier)
jason2026-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
jason2026-03-10 14:32:36 -05:00
e17ce2be29
fix: Migration 003 - use dynamic column list to handle missing updated_at in old schema
jason2026-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
jason2026-03-10 14:28:20 -05:00
e800cb91f2
fix: wire runMigrations() into startup before initDatabase()
jason2026-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
jason2026-03-10 13:08:07 -05:00
031e344fcb
fix: Migration 003 - remove old record_type CHECK constraint from health_records
jason2026-03-10 13:06:42 -05:00
b49b2b4281
Merge pull request 'feat/startup-log' (#39) from feat/startup-log into master
jason2026-03-10 12:59:20 -05:00
a234444302
Merge pull request 'fix(server): call initDatabase() with no args to match updated db/init.js; remove duplicate health route' (#30) from feat/ui-theme-settings-champion into master
jason2026-03-09 22:29:56 -05:00
6ac1518c40
fix(server): call initDatabase() with no args to match updated db/init.js; remove duplicate health route
jason2026-03-09 22:29:20 -05:00
5994ad5374
Merge pull request 'feat/ui-theme-settings-champion' (#29) from feat/ui-theme-settings-champion into master
jason2026-03-09 22:26:17 -05:00