No description
Closes systemic gap S1 from oracle audit: parity tests now drive the REAL move pipeline, not direct primitive .apply() calls. T78 — 8 *-real.test.ts files alongside existing parity tests: - minefield-real, mr_freeze-real, parry-real, all_on_red-real, religious_conversion-real, ice_physics-real, kamikaze-real, mind_control-real - Each registers descriptor via applyCustomDescriptor (production path), drives engine.applyMove, asserts engine.session state - Existing *.test.ts files unchanged (kept as logical-semantics locks) T79 — Playwright e2e for 3 request-choice flows: - T68/1 single-player (mr_freeze) PASSES (1.7s) — real WS round-trip - T68/2 both-player (mind_control) PASSES (2.8s) — 2 browser contexts - T68/3 nested (parry) is .fixme() with documented gaps: * Gap G: trigger dispatcher uses synthetic descriptorId='__trigger__' that submitChoiceAndResume can't resolve * Gap H: cancel-capture has engine-level rollback but no compensating wire-level game.delta reversal Production additions (minimal, test-supporting): - GameClient declares protocolVersion=2 to receive request-choice broadcasts - data-testid='request-choice-modal' + data-choice-kind + data-marker-kind selectors on UI - Dev-only globalThis.__paratypeChessClient debug hook (gated on import.meta.env.DEV) - Test-only __test__.activate-descriptor WS frame handler (gated on NODE_ENV !== production) Tests: 2824 -> 2853 (+29 unit). Playwright e2e: 3 active pass + 1 .fixme(). bun run check exit 0. No regressions in 120-test e2e suite. |
||
|---|---|---|
| .github/workflows | ||
| .sisyphus | ||
| docs | ||
| packages | ||
| scripts | ||
| .gitignore | ||
| eslint.config.js | ||
| lefthook.yml | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| vitest.workspace.ts | ||
@paratype
A Doorenbos-style Rete II rules engine for TypeScript games, with an authoritative WebSocket chess demo.
Packages
packages/rete— Rete II engine corepackages/chess— Browser chess demo (React + Vite)packages/server— Authoritative Bun WebSocket server
Docs
- SPEC.md — Engine specification
- PHASES.md — Development phases & perf budgets
- RULES.md — Chess rule presets
- PROTOCOL.md — WebSocket message protocol
Getting Started
bun install && bun run check