Skip to content

tre-systems/rowspire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rowspire

Rowspire is an open-source browser strategy game with two distinct AI opponents: a deterministic tactical search engine and a learned neural challenger. React and Vite power the interface, Rust/WebAssembly runs both opponents off the main thread, and Cloudflare Workers Static Assets delivers the installable PWA.

Anonymous product metrics count game starts and completions by opponent, difficulty, mode, starting side, result, and move count. No board state, move sequence, browser, or user identifier is collected.

Play Rowspire

Rowspire difficulty and opponent selection

Capabilities

  • Tactical Search and neural MCTS strategies run off the main thread in one Web Worker.
  • Relaxed, Standard, and Expert levels tune both opponents for newcomers and experienced players.
  • Human-versus-AI play and a Search-versus-ML watch mode.
  • Responsive, accessible animation with reduced-motion support.
  • Validated local persistence and offline recovery after service-worker activation.
  • Cross-runtime conformance plus unit, AI, and browser release gates.

Development

Requires Node.js 22.12 or later, a Rust toolchain, cargo-audit 0.22.2, wasm-pack 0.15.0, and wasm-bindgen-cli 0.2.122. Graphviz is required to refresh architecture diagrams.

npm ci
npm run dev

The development server is available at http://localhost:5173.

Commands

Command Purpose
npm run dev Build WASM/PWA assets and start the Cloudflare Vite development server
npm run build Lint, type-check, audit, and create the deployable Worker/static-asset output
npm run check Run the complete release gate, including tests and production-preview E2E
npm run check:slow Add the feature-gated slow Rust tests to the release gate
npm run test Run Vitest unit tests
npm run test:coverage Run Vitest with enforced coverage thresholds
npm run test:rust Run Rust tests for every target and feature
npm run test:e2e Build and run Playwright against the production preview
npm run generate:types Regenerate TypeScript transport types from Rust
npm run check:types Reject drift between Rust exports and committed TypeScript bindings
npm run audit:dependencies Check npm advisories/signatures and the RustSec advisory database
npm run diagrams Render the Graphviz architecture diagrams
npm run train Generate/load training data, train under caffeinate, and replace ML weights
npm run deploy Build and deploy with Wrangler
npm run smoke:production Verify the live shell, manifest, WASM, ML weights, and canonical redirect

Documentation

Document Scope
Architecture Patterns, boundaries, ownership, AI, delivery, and safeguards
Diagram guide Graphviz/Mermaid scope, visual conventions, and rendering
Contributor instructions Coding, testing, and maintenance rules
Security policy Supported code and private vulnerability reporting

Delivery

Every pull request runs the release gate and CodeQL. Every push to main repeats validation, deploys the tested output to Cloudflare, and smoke-tests production. Actions and toolchains are immutable; production credentials are exposed only to the build or deployment step that needs them.

License

MIT

About

Open-source browser strategy game with tactical-search and neural-network AI, built with React, Rust/WASM, Vite, and Cloudflare.

Topics

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors