This website requires JavaScript.
6b86a90d3d
chore(deploy): bump image to fc45b6d2 [skip ci]
Gitea CI
2026-06-23 17:07:21 +00:00
fc45b6d261
Merge pull request 'fix(web): CI-owned wasm artifacts + e2e harness fixes' (#95 ) from fix/web-ci-reproducible-and-e2e into master
funman300
2026-06-23 17:01:04 +00:00
2328643223
ci(web): replace wasm freshness gate with CI-side rebuild-and-commit
funman300
2026-06-23 09:59:28 -07:00
5b2b234c54
fix(web-e2e): expose serialize() on classic bridge; use real clock API
funman300
2026-06-22 12:46:12 -07:00
9c473d6a51
fix(web): make wasm builds reproducible so the freshness gate passes
funman300
2026-06-22 12:46:12 -07:00
ff6efe433f
chore(deploy): bump image to b3a8575b [skip ci]
Gitea CI
2026-06-22 19:22:38 +00:00
250875bd10
chore(deploy): bump image to da165f16 [skip ci]
Gitea CI
2026-06-22 19:14:14 +00:00
b3a8575bbd
Merge pull request 'ci(web-e2e): prebuild server so Playwright webServer stops timing out' (#94 ) from ci/web-e2e-prebuild-server into master
funman300
2026-06-22 19:11:22 +00:00
5091d1b397
ci(web-e2e): prebuild server so Playwright webServer stops timing out
funman300
2026-06-22 12:09:47 -07:00
da165f1622
Merge pull request 'ci(web): add precise wasm-freshness gate; drop flawed drift heuristic' (#93 ) from ci/web-wasm-freshness-gate into master
funman300
2026-06-22 19:03:49 +00:00
43076a48d6
ci(web): add precise wasm-freshness gate; drop flawed drift heuristic
funman300
2026-06-22 12:03:00 -07:00
9c3afebf56
chore(deploy): bump image to 5af69d75 [skip ci]
Gitea CI
2026-06-22 19:02:23 +00:00
5af69d7551
Merge pull request 'fix(web): regenerate stale WASM artifacts against current master' (#92 ) from fix/regenerate-web-wasm into master
funman300
2026-06-22 18:56:31 +00:00
6c9259beff
fix(web): regenerate stale WASM artifacts against current master
funman300
2026-06-22 11:53:56 -07:00
dde65a7e30
Merge pull request 'refactor(core): card_game redundancy cleanup + derive scoring from upstream stats' (#88 ) from refactor/strip-card_game-redundancies into master
funman300
2026-06-22 18:44:37 +00:00
e3b8a403ef
style(engine): clear latent android-only clippy warnings in hud_plugin
funman300
2026-06-22 11:39:21 -07:00
9299176b2d
refactor(android): forbid unsafe workspace-wide, quarantine JNI in app (#91 )
funman300
2026-06-22 11:32:26 -07:00
6a9352cde1
docs: correct font-embed claims in font_plugin and CLAUDE.md
funman300
2026-06-22 11:04:11 -07:00
8995a8ae9c
refactor(core): move compute_time_bonus into scoring module
funman300
2026-06-22 11:04:11 -07:00
0d5c9cdb1d
refactor(core): delegate check_win to Session::is_win
funman300
2026-06-12 14:22:35 -07:00
ceb9c950a1
chore: add pedantic workspace lints (#90 )
funman300
2026-06-12 13:05:28 -07:00
9bbb57134f
refactor: persist replay/save moves as KlondikeInstruction, not pile coords (#89 )
funman300
2026-06-12 12:43:47 -07:00
e0a858d4e8
refactor: remove card.rs / card_to_id; use card_game::Card directly (#83 )
funman300
2026-06-11 19:33:47 -07:00
5c992cbdca
refactor: replace local DrawMode with upstream klondike::DrawStockConfig (#82 )
funman300
2026-06-11 16:01:11 -07:00
d045781119
chore: gitignore .claude-flow scratch dirs
funman300
2026-06-11 15:12:18 -07:00
f0871c03e8
chore: gitignore local helper scripts
funman300
2026-06-11 15:10:18 -07:00
e841a7ab4f
refactor: delete solitaire_data::solver wrapper; solve via card_game directly
funman300
2026-06-11 15:04:47 -07:00
424c8b2d50
perf(engine): route remaining drag card→entity lookups through CardEntityIndex
funman300
2026-06-11 11:05:24 -07:00
372b6423d8
refactor(core): derive score/undo/recycle from upstream session stats
funman300
2026-06-11 10:36:31 -07:00
9e3c6b06b0
chore: gitignore local agent-tooling artifacts
funman300
2026-06-10 21:17:04 -07:00
f0832f3dfa
refactor: remove leftover redundancies after card_game migration
funman300
2026-06-10 20:12:03 -07:00
ef1efdc3b5
refactor(core): make KlondikeInstruction the move currency
funman300
2026-06-10 16:58:28 -07:00
dc4cf45ea0
build(deps): switch klondike/card_game to Quaternions registry
funman300
2026-06-10 16:58:13 -07:00
0d3f037672
refactor: consolidate card_to_id into solitaire_core
funman300
2026-06-10 10:14:20 -07:00
cac77a54a6
refactor: slim solver to card_game-native types
funman300
2026-06-10 10:05:47 -07:00
2d0359c2ee
build(deps): switch card_game/klondike to mainline fb01881f
funman300
2026-06-10 09:34:56 -07:00
056459619b
refactor(core): derive draw_mode/is_won/move_count/is_auto_completable from session
funman300
2026-06-10 09:24:03 -07:00
1438fd6265
refactor(core): complete card_game::Card migration across engine + wasm
funman300
2026-06-09 17:45:34 -07:00
920f2c8597
refactor(core): move solver to solitaire_data, DrawMode to klondike_adapter, remove pile/solver/schema_version
funman300
2026-06-09 09:38:04 -07:00
37a21b9b42
docs: record android avd smoke
funman300
2026-06-08 19:24:42 -07:00
956a7777e2
chore(deploy): bump image to 32400356 [skip ci]
Gitea CI
2026-06-09 02:14:53 +00:00
712ed6be80
docs: clarify android support status
funman300
2026-06-08 19:14:48 -07:00
324003562b
test: cover mobile card label glyphs
funman300
2026-06-08 19:13:40 -07:00
a69a774edf
docs: refresh handoff after runbooks
funman300
2026-06-08 19:12:15 -07:00
df4887fb36
docs: update android smoke test runbook
funman300
2026-06-08 19:11:02 -07:00
d0fa79fa1a
chore(deploy): bump image to 159774f8 [skip ci]
Gitea CI
2026-06-09 02:10:35 +00:00
159774f811
docs: add analytics validation runbook
funman300
2026-06-08 19:09:22 -07:00
cac85156d8
chore(deploy): bump image to 7fe6ac6c [skip ci]
Gitea CI
2026-06-09 02:09:09 +00:00
b3c4d08dfc
docs: avoid stale handoff head hash
funman300
2026-06-08 19:06:07 -07:00
f313cfd8b7
docs: update session handoff state
funman300
2026-06-08 19:05:20 -07:00
7fe6ac6c1c
docs: catch up handoff and changelog
funman300
2026-06-08 19:03:40 -07:00
6193d31497
fix(engine): centre modal cards within usable area (status-bar + gesture-bar)
funman300
2026-06-08 17:34:28 -07:00
26f1b00186
docs(core,data): complete Phases 0–2 of in-place card_game rewrite
funman300
2026-06-08 16:59:18 -07:00
56e3b62269
fix(core): correct recycle_count drift and score compound error on undo
funman300
2026-06-08 16:53:58 -07:00
9bcf13d8f2
test(core,data): verify schema-v3 round-trip; pin upstream git deps
funman300
2026-06-08 15:41:50 -07:00
9372c9cba6
chore(deploy): bump image to 7dbf34c1 [skip ci]
Gitea CI
2026-06-08 18:14:35 +00:00
7dbf34c163
fix(server): move bcrypt to spawn_blocking, async file I/O, validate JWT_SECRET
funman300
2026-06-08 11:05:45 -07:00
7fa91b6fb4
data(seeds): regenerate difficulty seeds (2026-06-04)
funman300
2026-06-08 11:05:37 -07:00
becfda0f6c
fix(android): auto-discover SDK/NDK in build script, strip native libs
funman300
2026-06-08 11:05:31 -07:00
fa786bafcf
feat(android): wire Android Keystore JNI via OnceLock
funman300
2026-06-08 11:05:23 -07:00
d864d985c8
refactor(engine,wasm,data): route all klondike/card_game imports through solitaire_core
funman300
2026-06-08 11:04:05 -07:00
ae1ecc8559
refactor(core): unify Suit/Rank with card_game upstream types
funman300
2026-06-08 10:57:49 -07:00
5e8735886f
refactor(core): integrate card_game/klondike deps cleanly
funman300
2026-06-08 10:46:29 -07:00
8bd2fb89eb
test: expand WASM unit tests and add web behavior e2e specs
funman300
2026-06-02 14:12:42 -07:00
2b1ad2161a
test(e2e): add Playwright spec for /play Bevy canvas route
funman300
2026-06-02 14:03:25 -07:00
f4f2ef7b7d
chore(deploy): bump image to 2cf72821 [skip ci]
Gitea CI
2026-06-02 20:45:47 +00:00
2cf728210e
feat(e2e): add window.__FERROUS_DEBUG__ bridge to /play for automation
funman300
2026-06-02 13:41:07 -07:00
9ae940dff6
chore(deploy): bump image to 8b262afc [skip ci]
Gitea CI
2026-06-02 20:36:31 +00:00
8b262afcd2
fix(web): clamp wgpu surface to CSS pixels on HiDPI to prevent wasm panic
funman300
2026-06-02 13:28:25 -07:00
b966708228
chore(deploy): bump image to 8b736cae [skip ci]
Gitea CI
2026-06-02 20:27:59 +00:00
8b736cae3c
debug(input): log drag failures to browser console for diagnosis
funman300
2026-06-02 13:22:42 -07:00
31fc0eb9ec
chore(deploy): bump image to de7ae168 [skip ci]
Gitea CI
2026-06-02 20:04:37 +00:00
de7ae16830
fix(onboarding): delay first-run modal until splash screen despawns
funman300
2026-06-02 12:59:58 -07:00
e80ac5e636
chore(deploy): bump image to d45b7cb8 [skip ci]
Gitea CI
2026-06-02 19:44:37 +00:00
f8d15d39f2
chore(deploy): bump image to 763fdb48 [skip ci]
Gitea CI
2026-06-02 19:43:43 +00:00
d45b7cb82b
feat(e2e): add Playwright browser test suite for web routes
funman300
2026-06-02 12:40:30 -07:00
763fdb486f
fix(input): hit-test deck at correct position; accept waste click too
funman300
2026-06-02 12:39:01 -07:00
2f9cd1a32d
chore(deploy): bump image to 1cdb78ca [skip ci]
Gitea CI
2026-06-02 19:26:23 +00:00
1cdb78caf2
chore: cargo fmt across workspace; add analytics domain to CSP
funman300
2026-06-02 12:21:32 -07:00
baf524ec75
fix(web): rebuild Bevy canvas WASM; add SolitaireGame interactive API
funman300
2026-06-02 12:21:20 -07:00
9ff0585454
fix(ci): remove Quaternions registry auth; add canvas WASM drift guard
funman300
2026-06-02 12:20:56 -07:00
64f975ed6d
fix(ux): 14 cross-platform UX/UI fixes from 500-game audit
funman300
2026-06-01 21:23:52 -07:00
4dc5956552
chore(deploy): bump image to 20e52221 [skip ci]
Gitea CI
2026-06-01 22:30:58 +00:00
20e5222148
fix(engine): send confirmed:true from game-over screen New Game handlers
funman300
2026-06-01 15:26:07 -07:00
627b116c12
chore(deploy): bump image to 44e90ff5 [skip ci]
Gitea CI
2026-06-01 22:03:04 +00:00
44e90ff582
fix(ci): pass Quaternions registry token as Docker build secret
funman300
2026-06-01 14:58:25 -07:00
0bae839e3b
fix(wasm): gate wasm32-only imports behind cfg, add binaryen wasm-opt pass
funman300
2026-06-01 14:53:36 -07:00
c68cf96488
fix(web): add WgpuSettingsPriority::WebGL2 for Chromium shader compatibility
funman300
2026-06-01 14:24:27 -07:00
a92ac066a6
fix(web): resolve wasm32 runtime panics; game boots and renders in Firefox
funman300
2026-06-01 14:16:19 -07:00
f464aab543
fix(web): clean up wasm32 build warnings and wire /play route to Bevy canvas
funman300
2026-06-01 13:55:39 -07:00
835a48fe9d
feat(web): add solitaire_web Bevy WASM build targeting play.html canvas
funman300
2026-06-01 13:46:45 -07:00
9260ca7994
refactor: migrate PileType → KlondikePile across core/wasm/engine
funman300
2026-06-01 13:13:35 -07:00
ca612f51f1
Revert "refactor(core): split game_state.rs into submodule directory"
funman300
2026-05-29 18:51:59 -07:00
dba154cf92
refactor(core): split game_state.rs into submodule directory
funman300
2026-05-29 18:24:47 -07:00
258abd198e
chore(core): remove dead card_to_kl / suit_to_kl / rank_to_kl helpers
funman300
2026-05-29 18:11:54 -07:00
389fdd1fb0
docs: add card-game integration guide (closes #76 )
funman300
2026-05-29 18:04:41 -07:00
6309d3325f
fix(engine): auto-complete delay + right-click shake on no legal move
funman300
2026-05-29 18:01:34 -07:00
862f7e4b48
chore(core): delete deck.rs and scoring.rs
funman300
2026-05-29 17:42:30 -07:00
6496e130f3
feat(core): Step 2 — replace pile management with Session<Klondike>
funman300
2026-05-29 17:31:09 -07:00
d4796fa252
feat(core): integrate klondike v0.3.0 / card_game v0.4.0 — solver + serde newtypes
funman300
2026-05-29 15:43:32 -07:00