This website requires JavaScript.
aebb401c44
docs: update for card_game v0.4.0 / klondike v0.3.0 — undo scoring + solver
docs/card-game-integration
funman300
2026-05-29 15:08:32 -07:00
57c4b5aacf
feat(core): card/pile conversion utils and GameMode-aware scoring (steps 2-prep, 5)
funman300
2026-05-29 14:38:41 -07:00
f1914b4398
feat(core): add klondike v0.2.0 dep and KlondikeAdapter (integration steps 1, 3, 4)
funman300
2026-05-29 14:34:22 -07:00
a550a0cdf9
docs: update integration doc to reflect klondike v0.2.0 / card_game v0.3.0
funman300
2026-05-29 14:07:34 -07:00
0a6eb8c610
Revert "docs: update integration doc to reflect klondike v0.2.0 / card_game v0.3.0"
funman300
2026-05-29 14:06:00 -07:00
bb92bb333b
docs: update integration doc to reflect klondike v0.2.0 / card_game v0.3.0
funman300
2026-05-29 14:05:35 -07:00
38e4c0341e
feat(engine): reactive render — animations drive RequestRedraw, focused_mode reactive on Android
funman300
2026-05-29 13:54:54 -07:00
8f5193035b
docs: update card-game-integration with PR discussion outcomes
funman300
2026-05-29 13:44:36 -07:00
c21c0ebf99
docs: revise integration plan — all gaps closed in Ferrous Solitaire wrapper
funman300
2026-05-28 16:23:05 -07:00
ccf280ea50
fix(engine): add missing modal scrim guard to leaderboard panel
v0.39.1
funman300
2026-05-28 15:52:47 -07:00
ccccdd2b40
docs: add card-game integration gap analysis
funman300
2026-05-28 15:28:44 -07:00
f1d96012f1
fix(engine): add modal scrim guard to toggle_stats_screen (#75 )
funman300
2026-05-28 15:19:24 -07:00
dc0ce8cd02
chore(deploy): bump image to 7eb1181e [skip ci]
Gitea CI
2026-05-28 21:45:02 +00:00
7eb1181e50
fix(server): accept nil user_id placeholder in push; use received_at for leaderboard (#73 , #74 )
funman300
2026-05-28 14:41:02 -07:00
f444378184
fix(engine): toast on challenge exhaustion, block input during auto-complete (#71 , #72 )
funman300
2026-05-28 14:24:09 -07:00
927598202e
feat(engine,data): add tap-to-select touch input mode (#70 )
funman300
2026-05-28 14:04:40 -07:00
4c517f4ccd
chore(deploy): bump image to 6e407a3e [skip ci]
Gitea CI
2026-05-28 20:45:06 +00:00
6e407a3ea7
fix(engine,server): safe area clamp, analytics batch, achievement save order, daily rollover, replay validation, leaderboard opt-in (#56 , #60 , #61 , #62 , #66 , #68 )
funman300
2026-05-28 13:07:22 -07:00
8cb4c9808e
fix(wasm,stats): surface replay errors to JS, deduplicate win events per frame (#65 , #69 )
funman300
2026-05-27 21:53:15 -07:00
dbe728fef7
refactor(engine): deduplicate TABLEAU_FAN_FRAC constant (#59 )
funman300
2026-05-27 19:57:49 -07:00
0437c36463
fix(assets,theme): remove assert in svg_loader, log theme failures, fix default theme id (#58 , #63 , #64 )
funman300
2026-05-27 19:36:05 -07:00
35fde160fa
fix(ui): add modal guard to profile, make modal dimensions responsive (#57 , #67 )
funman300
2026-05-27 19:21:09 -07:00
cfdf27c8c7
fix(time-attack): clamp timer to zero and pause during overlays (#54 , #55 )
funman300
2026-05-27 19:13:42 -07:00
bd49364553
fix(android): replace forbidden Unicode chars in win_summary and splash (#52 , #53 )
funman300
2026-05-27 19:03:11 -07:00
a3b9293cd9
chore(engine): final cleanup after platform abstraction refactor (closes #51 )
funman300
2026-05-27 18:08:00 -07:00
ce536b0176
refactor(engine): audit and rationalize platform cfg gates (closes #49 )
funman300
2026-05-27 18:00:57 -07:00
7a523f3963
chore(deploy): bump image to 561395fc [skip ci]
Gitea CI
2026-05-28 00:34:41 +00:00
561395fca6
feat(data,engine): implement NativeStorage and WasmStorage backends (closes #48 )
funman300
2026-05-27 17:30:35 -07:00
a8ceed97a9
refactor(engine): migrate gameplay plugins into CoreGamePlugin (closes #45 , closes #46 )
funman300
2026-05-27 17:08:54 -07:00
86bafdd679
feat(engine): add platform abstraction trait skeleton (closes #47 )
funman300
2026-05-27 16:58:42 -07:00
3885b334ec
refactor(app): extract build_app(), add CoreGamePlugin placeholder (closes #42 , closes #44 )
funman300
2026-05-27 16:41:40 -07:00
5a71e2bc0a
fix(engine): ensure dragged card stack z-order is above all piles (closes #35 )
funman300
2026-05-27 16:01:49 -07:00
04aea8595a
docs(claude): add dealsbe.com AI tools directory to user resources
funman300
2026-05-27 15:13:06 -07:00
e46b3fce2e
chore(deploy): bump image to 25c43db6 [skip ci]
Gitea CI
2026-05-27 21:44:57 +00:00
25c43db61e
fix(ci): use git switch to avoid deploy dir/branch ambiguity
funman300
2026-05-27 14:44:35 -07:00
c2eff2ed96
ci: add comment to retrigger docker build
funman300
2026-05-27 14:38:37 -07:00
099ceab47c
ci: re-trigger docker build after transient failure
funman300
2026-05-27 14:36:54 -07:00
22661eac66
fix(wasm): rebuild pkg with take_from_foundation fix (closes #36 )
funman300
2026-05-27 13:41:24 -07:00
a5a81ccc8e
test(core): possible_instructions Foundation→Tableau coverage
funman300
2026-05-27 13:26:42 -07:00
e3188faddc
fix(engine): foundation→tableau drag hints, z-lift, and Android battery drain
funman300
2026-05-27 13:17:28 -07:00
07c05179c3
chore(deploy): bump image to ecab227b [skip ci]
Gitea CI
2026-05-19 23:58:50 +00:00
a2f02e1cbc
ci(argocd): watch deploy branch for kustomization updates
v0.39.0
funman300
2026-05-19 16:58:29 -07:00
8426d89856
chore(deploy): bump image to da601beb [skip ci]
Gitea CI
2026-05-19 23:58:25 +00:00
ecab227b8d
ci(deploy): push kustomization updates to deploy branch, not master
funman300
2026-05-19 16:57:20 -07:00
da601bebd6
fix(engine,wasm,web): detect no-legal-moves correctly and surface banner
funman300
2026-05-19 16:53:52 -07:00
a2dd8d220c
chore(deploy): bump image to d5d869a6 [skip ci]
Gitea CI
2026-05-19 23:31:16 +00:00
d5d869a6c8
fix(multi): resolve 16 bugs from comprehensive rules and code review
funman300
2026-05-19 16:27:04 -07:00
e50ff02274
fix(multi): resolve 16 bugs from comprehensive rules and code review
v0.38.0
funman300
2026-05-19 16:27:04 -07:00
42898c0b3f
chore(deploy): bump image to f6e7de10 [skip ci]
Gitea CI
2026-05-19 22:53:25 +00:00
f6e7de1093
fix(core): make take_from_foundation true by default across all clients
v0.37.0
funman300
2026-05-19 15:44:04 -07:00
8f3689761d
fix(core): make take_from_foundation true by default across all clients
v0.36.12
funman300
2026-05-19 15:44:04 -07:00
b5a780ddf4
chore(deploy): bump image to 90eb5fd2 [skip ci]
Gitea CI
2026-05-19 22:40:59 +00:00
3322fd4250
fix(wasm): enable take-from-foundation in web game client
v0.36.11
funman300
2026-05-19 15:40:16 -07:00
90eb5fd207
feat(web): persist game state across page refreshes with resume dialog
v0.36.10
funman300
2026-05-19 15:38:07 -07:00
76cf41e7a9
fix(ui): open sync-setup modal when Connect clicked from Settings
v0.36.9
funman300
2026-05-19 15:32:14 -07:00
fae5933d29
fix(engine): enable take-from-foundation for restored and startup games
v0.36.8
funman300
2026-05-19 15:26:42 -07:00
6cd8c6c013
fix(multi): resolve 3 remaining Android UI bugs
v0.36.7
funman300
2026-05-19 15:16:24 -07:00
ec94cb34aa
fix(layout): reserve action-bar height so tableau never hides behind buttons
v0.36.6
funman300
2026-05-19 14:55:09 -07:00
40768f3b0a
feat(engine): scale action-bar glyph font size dynamically on Android
v0.36.5
funman300
2026-05-19 14:45:49 -07:00
2186f55913
fix(engine): fix classic-card corner label colours and HUD-band overlap
v0.36.4
funman300
2026-05-19 14:34:04 -07:00
e0f369d322
fix(engine): raise STACK_FAN_FRAC above corner label z to fix foundation pile bleed-through
v0.36.3
funman300
2026-05-19 14:00:59 -07:00
ea98774ccb
chore(deploy): bump image to ea9dd848 [skip ci]
Gitea CI
2026-05-19 20:44:38 +00:00
ea9dd848fd
fix(multi): resolve 14 bugs from second comprehensive review
funman300
2026-05-19 13:40:32 -07:00
a328059933
fix(ci): add workflow_dispatch trigger to android-release workflow
funman300
2026-05-19 13:25:12 -07:00
18659d19d1
chore(deploy): bump image to 7840ef9e [skip ci]
v0.36.2
Gitea CI
2026-05-19 20:19:02 +00:00
7840ef9eb2
fix(multi): resolve 26 bugs found in comprehensive codebase review
funman300
2026-05-19 13:14:47 -07:00
6d061d23a1
fix(engine): cancel stale win-cascade CardAnimation on new-game; refresh Android corner label text on resize (closes #6 , closes #7 )
funman300
2026-05-19 11:31:45 -07:00
25f22231a6
fix(test): make leaderboard opt-in/opt-out tests robust under parallel runner (closes #5 )
funman300
2026-05-19 11:31:38 -07:00
c66ff26d1d
fix(engine): lift card z during CardAnim to prevent corner bleed-through
funman300
2026-05-19 11:31:32 -07:00
cd792b20b2
chore: ignore ruflo runtime state files
funman300
2026-05-19 11:31:24 -07:00
73c7f50f74
chore(deploy): bump image to 83c40116 [skip ci]
Gitea CI
2026-05-19 02:03:57 +00:00
83c40116af
fix(web): freeze timer when auto-complete begins (closes #4 )
funman300
2026-05-18 18:59:51 -07:00
347d5a4b4f
chore(deploy): bump image to 93f2ceaa [skip ci]
Gitea CI
2026-05-19 01:50:10 +00:00
93f2ceaabe
fix(web): rebuild WASM pkg — foundation→tableau moves now work
funman300
2026-05-18 18:45:51 -07:00
e390b72222
chore(tooling): add ruflo-core scaffolding and MCP server registration
funman300
2026-05-18 17:19:28 -07:00
3650788dc5
fix(engine): prevent stock-tap from toggling HUD on Android
funman300
2026-05-18 17:09:54 -07:00
ac36c73d40
fix(engine): prevent stock-tap from toggling HUD on Android
v0.36.1
funman300
2026-05-18 17:09:54 -07:00
39cf8dcd6c
chore(deploy): bump image to 456b4d42 [skip ci]
Gitea CI
2026-05-18 20:29:08 +00:00
456b4d42e3
refactor(core): explicit Rank discriminants, checked arithmetic, possible_instructions
v0.36.0
funman300
2026-05-18 13:25:13 -07:00
e1c8ae0743
docs: recreate SESSION_HANDOFF.md — v0.35.1 state
funman300
2026-05-18 00:16:11 -07:00
8f86d66ffe
fix(engine): fix three leaderboard bugs — wrong toast type, stale name label, name not synced to server
v0.35.1
funman300
2026-05-17 23:55:22 -07:00
87aec5bdf2
feat(engine): gate decorative motion animations under reduce_motion_mode
v0.35.0
funman300
2026-05-17 23:18:11 -07:00
6f5cebdb02
fix(engine): fire WarningToastEvent on sync pull failure
funman300
2026-05-17 22:57:03 -07:00
9c96e2fade
chore(deploy): bump image to eb6c93fb [skip ci]
Gitea CI
2026-05-18 05:48:06 +00:00
eb6c93fb55
fix(engine): silence B0004 by adding Transform to ModalScrim
funman300
2026-05-17 22:43:59 -07:00
4aafc0a53d
refactor(engine): name HUD popover Z-layers; replace raw arithmetic (M-24)
funman300
2026-05-17 21:35:35 -07:00
c8878d6e8b
docs(engine): fix stale FOCUS_RING colour comment from Cyan to brick-red (M-23)
funman300
2026-05-17 21:31:17 -07:00
2e52f544f1
fix(data): enforce 32-char display_name limit at sync client boundary (M-22)
funman300
2026-05-17 21:29:38 -07:00
2301cc65d3
fix(data): align android_keystore temp extension with cleanup glob (M-21)
funman300
2026-05-17 21:26:23 -07:00
0ecc1a92fd
refactor(core): add missing derives to AchievementContext (M-20)
funman300
2026-05-17 21:22:54 -07:00
132fea911c
refactor(core): use saturating_add for move_count increments (M-19)
funman300
2026-05-17 21:20:26 -07:00
18d7937b51
refactor(core): derive Copy for DrawMode; drop redundant .clone() calls (M-18)
funman300
2026-05-17 21:18:23 -07:00
fa84152429
fix(engine): correct Android help hint label from → to ! (M-17)
funman300
2026-05-17 21:08:11 -07:00
ffed6b27e9
perf(engine): share Tokio runtime across all network tasks (M-16)
funman300
2026-05-17 20:58:51 -07:00
7fc98f8801
fix(wasm): state() and step() return Result so errors throw JS exceptions (CR-6)
funman300
2026-05-17 20:48:30 -07:00
a4dfb0c6db
fix(engine): differentiate leaderboard opt-in vs opt-out error toasts (M-12)
funman300
2026-05-17 20:47:28 -07:00
67271266e1
refactor(data,core): consolidate APP_DIR_NAME and add #[must_use] on pure fns
funman300
2026-05-17 20:43:47 -07:00
aa7b0f6eed
perf(engine): gate frame-hot ECS systems on resource changes
funman300
2026-05-17 20:37:01 -07:00
69c6e88188
fix(core,sync,data): deterministic pile serialization, undo skip, url-encode bytes, merge_at
funman300
2026-05-17 20:28:46 -07:00
1eb40433a9
fix(server): auth-guard avatar serving, atomic write, user_id assertion in merge
funman300
2026-05-17 20:22:38 -07:00