Commit graph

52 commits

Author SHA1 Message Date
7d07bb78ba
feat(server): add room registry with codes + tokens (P4.3) 2026-04-16 17:09:43 -06:00
817b4d95f3
feat(server): add protocol schemas + validation (P4.2) 2026-04-16 17:07:21 -06:00
25695d69b2
feat(server): scaffold Bun HTTP+WS server with health + logging (P4.1) 2026-04-16 17:03:42 -06:00
13af8ddab3
test(chess): e2e full-flow scenario; tag Phase 3 (P3.15) 2026-04-16 16:55:28 -06:00
a75b6f041b
feat(chess): add localStorage auto-save and restore (P3.14) 2026-04-16 16:24:49 -06:00
3fdeb5822d
feat(chess): add JSON export/import with validation (P3.13) 2026-04-16 16:14:46 -06:00
bc753aadfd
feat(chess): add Save/Load panel + time-travel undo (P3.12) 2026-04-16 16:12:15 -06:00
116cbb42b5
feat(chess): add rule-toggle UI with compatibility warnings (P3.11) 2026-04-16 16:05:04 -06:00
d367f51171
feat(chess): add interactive Chessboard with drag-drop (P3.10) 2026-04-16 16:01:34 -06:00
0f891fa013
feat(chess): scaffold Vite + React app (P3.9) 2026-04-16 15:54:32 -06:00
8436df7986
feat(chess): add all 15 preset custom rules P3.4-P3.8 2026-04-16 15:32:18 -06:00
cf1a8a3aab
feat(chess): add preset rules 1-3 (P3.4)
Introduces PresetRegistry + three pawn-focused preset rules from
RULES.md (pawns-move-backward, double-pawn-sprint,
pawn-diagonal-no-capture). Presets register themselves via
side-effect imports and expose getExtraMoves/filterMoves hooks for
the ChessEngine to invoke during move generation (engine wiring is
P3.11). Registry enforces incompatibility and requires invariants.
2026-04-16 15:30:14 -06:00
35e270e3b5
feat(rete): add Immer snapshots at tick boundaries (P3.2) 2026-04-16 15:25:35 -06:00
c5c00153ab
feat(rete): add replay engine + state-hash determinism verifier (P3.3) 2026-04-16 15:25:13 -06:00
aa5105d1c7
feat(rete): add append-only event log with monotonic sequence (P3.1) 2026-04-16 15:24:11 -06:00
6baab9f3fd
test(chess): replay 5 classic FIDE games; Phase 2 acceptance gate (P2.23)
- packages/chess/src/engine.ts — ChessEngine integrates all rule modules
  (pawn, knight, sliding, king, castling, en-passant, promotion, check,
  checkmate, stalemate, draws) into a playable game without the Rete
  production network
- packages/chess/src/pgn.ts — minimal SAN/PGN parser with full
  disambiguation support (file/rank hints, full from-square)
- packages/chess/tests/fide-games/classic-games.test.ts — 5 game tests:
  Fool's Mate, Scholar's Mate, Ruy López, Sicilian Defence, Italian Game

All 5 tests green; typecheck clean.
2026-04-16 15:18:57 -06:00
f94ab386a8
feat(chess): add checkmate detection (P2.19) 2026-04-16 15:06:27 -06:00
3f8a38bb41
feat(chess): add insufficient material draw (P2.22) 2026-04-16 15:05:54 -06:00
29ea2136b8
feat(chess): add 50-move and threefold repetition rules (P2.21) 2026-04-16 15:05:33 -06:00
20a18e6c78
feat(chess): add stalemate detection (P2.20) 2026-04-16 15:04:38 -06:00
6b760c9535
feat(chess): add check detection + self-check filter (P2.18) 2026-04-16 15:00:39 -06:00
fbdf10ec51
feat(chess): add pawn promotion rule (P2.17) 2026-04-16 14:58:31 -06:00
6938a2aedb
feat(chess): add en passant rule (P2.16) 2026-04-16 14:57:58 -06:00
f1da22641f
feat(chess): add castling rules (P2.15) 2026-04-16 14:57:39 -06:00
d9eaeb2f06
feat(chess): add turn order + move integration (P2.13) 2026-04-16 14:54:30 -06:00
483e4ef686
feat(chess): add capture resolution (P2.14) 2026-04-16 14:53:37 -06:00
83d99778db
feat(chess): add king basic move rules (P2.12) 2026-04-16 14:52:51 -06:00
1013c40e2a
feat(chess): add bishop/rook/queen sliding rules (P2.11) 2026-04-16 14:52:39 -06:00
6994d5fe55
feat(chess): add knight move rules (P2.10) 2026-04-16 14:51:56 -06:00
9a87e57007
feat(chess): add pawn move/capture rules (P2.9) 2026-04-16 14:51:49 -06:00
eb58441752
feat(chess): add movement primitive rules (P2.8) 2026-04-16 14:49:03 -06:00
d4cee82b20
feat(chess): add coordinate + color helpers (P2.7) 2026-04-16 14:47:04 -06:00
cc584d4e33
feat(chess): add starting-position fact generator (P2.6) 2026-04-16 14:46:34 -06:00
ea4d6e9a69
feat(chess): add attribute schema and piece fact shape (P2.5) 2026-04-16 14:46:27 -06:00
aabd4a396a
feat(rete): add FilterNode (P1.9), ExistentialNode (P2.2), AggregationNode (P2.4) — commit missing files 2026-04-16 14:26:26 -06:00
08515012b1
feat(rete): add NCC nodes (P2.3) 2026-04-16 14:22:21 -06:00
1731c43eb2
feat(rete): add negation nodes (NOT) (P2.1) 2026-04-16 14:21:39 -06:00
0401295bbc
test(rete): port pararules golden tests; tag Phase 1 parity (P1.14)
10 integration tests in packages/rete/tests/golden/ manually wire
AlphaNode → BetaMemory → JoinNode → ProductionNode chains and drive
them via Session.insert/retract. Each test maps to a pararules Nim
reference test (documented in GOLDEN-MAP.md).

Coverage: packages/rete/src at 96.8% statements / 95.4% branch /
97.8% functions — all well above the 90% Phase 1 gate.

Tests: 227 total (166 pre-existing + 61 new golden), all green.
2026-04-16 14:16:19 -06:00
0259268e34
feat(rete): add deterministic conflict resolution (P1.13) 2026-04-16 14:01:32 -06:00
3104d33985
feat(rete): add derived facts with thenFinally + truth maintenance (P1.11) 2026-04-16 13:59:24 -06:00
04804545da
feat(rete): add cycle detection with recursionLimit (P1.12) 2026-04-16 13:58:12 -06:00
572ffd27e0
feat(rete): add query/queryAll API (P1.10) 2026-04-16 13:54:11 -06:00
8046da7728
feat(rete): add FilterNode with registered predicates (P1.9)
FilterNode applies registered predicates to tokens via PredicateRegistry. Conjunction (AND) semantics across multiple FilterSpecs. Constructor-time validation throws UnknownPredicateError for missing predicates. Tracks passed tokens so left-deactivate routes only forwarded matches. Updated PredicateFn signature to accept static args alongside bindings. 100% line/func coverage; 8 unit tests covering pass/block/AND/deactivate paths.
2026-04-16 13:53:37 -06:00
ea27fd1539
feat(rete): add JoinNode with variable-binding equality tests (P1.8) 2026-04-16 13:50:54 -06:00
eb01a88fe9
feat(rete): add BetaMemory + Token propagation (P1.7) 2026-04-16 13:47:50 -06:00
c4b1eb0a61
feat(rete): add JSON serialize/deserialize round-trip (P1.6) 2026-04-16 13:44:14 -06:00
f9b17346c3
feat(rete): add typed rule builder + handler registry (P1.5) 2026-04-16 13:42:21 -06:00
76b21ddd5f
feat(rete): add Session lifecycle (P1.4) 2026-04-16 13:39:54 -06:00
2501edd886
feat(rete): add AlphaNetwork with inverted-index dispatch (P1.3) 2026-04-16 13:38:24 -06:00
72a1723522
feat(rete): add WorkingMemory with deterministic iteration (P1.2) 2026-04-16 13:37:47 -06:00