工程日志
FlopForge 的本地优先 Rust/WASM 架构
本地优先并不只是“编译成 WebAssembly”。它还要求明确执行域、有界内存、可取消任务、旧结果隔离,以及缓存字节和页面结论之间可信的证据边界。
无需账户编辑发布证据输入留在本地
Rust 负责数学和规则契约
牌编码、合法牌局状态、牌型排序、精确枚举、博弈树、CFR/DCFR、checkpoint 身份和重放验证,应当留在强类型核心代码中,而不是由 UI 复制一套逻辑。
浏览器界面负责展示和编排这些契约,不能静默创造第二套扑克引擎。
Worker 隔离长时间任务
规则重放必须在精确胜率或策略计算运行时仍然保持响应。明确请求所有权可以防止旧任务修改刚刚编辑的新配置。
Worker 致命错误应立即拒绝所有等待调用;终止与取消必须产生唯一、有界的终态。
本地缓存不等于自动获得证据资格
IndexedDB 可以保存 checkpoint 和 snapshot,但 UI 不能把 localStorage 文本直接当成合格推荐。恢复过程需要身份检查、hash 校验,并在匹配的 Rust/WASM 会话中重新重放。
损坏记录应可删除,让新的合法求解修复同一个 key;仅仅质量较低的合法结果则不能被误判为损坏。
静态知识页让扩展成本接近零
指南、手牌案例、RSS、搜索索引和社交元数据都在构建时生成并作为静态文件分发,不需要社区数据库或服务端求解器。
只有应用路由加载较重的 Worker/WASM;内容页面保持轻量并可被独立抓取。
继续使用 FLOPFORGE
查看产品方法与证据边界
阅读计算范围、证据规则、缓存边界以及明确不支持的结论。FAQ
本页不应回避的问题
为什么不把求解放到服务器?
浏览器计算可以避免远程算力账单,也能让用户输入留在本地,但必须接受严格的内存与性能预算。
为什么需要多个 Worker?
单个 Worker 会让快速规则操作排在长时间胜率或求解任务之后;独立执行域可以保护主交互路径。
静态页面还能交互吗?
可以。小型计算器和站内搜索都能用本地 JavaScript 完成,无需数据库、账户系统或服务器 API。

