Commit Graph
10 Commits
Author SHA1 Message Date
joywayer 8eae3258ca fix(platform): preserve recoverable outcomes and terminal sessions 2026-09-05 10:50:55 +08:00
joywayer 1e3a21b476 refactor(platform): complete decoupled vertical runtime 2026-09-05 10:21:28 +08:00
joywayer 30547f6a54 feat(platform): expose restricted game host and commands 2026-09-05 07:25:21 +08:00
joywayer a383c0330e fix(platform): snapshot session fault errors safely 2026-09-05 07:05:06 +08:00
joywayer 77b2bff40a fix(platform): recognize session faults across realms 2026-09-05 06:49:59 +08:00
joywayer 224df1c21c fix(platform): preserve session failures and URL syntax 2026-09-05 06:38:00 +08:00
joywayer f25211c64e fix(sdk): release lifecycle validation modules 2026-09-05 01:07:20 +08:00
joywayer f2823c398a feat(sdk): add isolated single-game sessions 2026-09-05 01:00:51 +08:00
joywayer e1556d50f4 feat(sdk): define single-game public contracts 2026-09-05 00:41:39 +08:00
joywayerandClaude Opus 5 d10c43e6ea feat(framework): sdk 子游戏对接边界(IGameModule + GameContext)
GameContext(子游戏调用框架的唯一入口):
- 受限 net.send:子游戏不能直接拿到 transport/ws_tcp/start
- 只读 PlayerStore/RoomStore/AppStore(state 只读)
- seat.toView/fromView:替代旧 ChangeToStatus
- events: 子游戏自定义事件总线

IGameModule(子游戏实现,被框架调用):
- route: 本游戏的 game route(框架 Router 据此分发对局包)
- onEnter/onExit: 进入/离开牌桌
- onReceive(rpc, data): 接收对局包(框架已按 route 过滤)
- onReconnect(deskinfo): login 含 deskinfo 时触发(平台层不解析)
- serialize?(): 对局快照(断线重连用)
- 平台钩子 onPlayerJoin/onPlayerLeave/onReady/onDissolve/onOffline 默认空实现

架构零耦合规则 §3 保证:子游戏只能 import sdk + core 类型,
无法触碰 platform/net 内部实现。

118/118 tests pass, typecheck exit 0。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 19:50:49 +08:00