同安装协作消息
与安装级共享存档使用相同安装边界,所有同安装实例均可发布和读取。网页不能选择安装、档案、目标实例或本机路径,无新增 Capability;配置、权限和存档仍各有既定所有者。
接口与预算
collaboration.publish {value}返回{id}。value 为 JSON 值,Stringify 后 UTF-8 最多 16 KiB。只接受当前激活包的有效实例。id 为宿主 UUID。collaboration.get {afterId}返回{found,id,value};afterId 必须为 null 或宿主 UUID。没有有效记录、记录已过期或 id 未变化时 found=false、id/value 均 null;有新记录时返回最新值。每个消费者保存自己的 afterId,读取不消费或确认记录。
每个安装只保留最新一条,发布覆盖旧条,不积压历史;慢消费者可以错过中间消息。服务记录全局最多 64 条、最多 1 MiB 消息正文,另有固定范围的身份及失效票据元数据;桥接和响应临时副本沿用现有消息/请求队列限额,不将此配额描述为整个进程的硬内存上限。单条 30 秒单调时间到期,后台有界清理,访问时也回收。每安装每秒最多四次、每分钟六十次,全局每分钟二百四十次有效格式发布尝试;失败不能无限绕过额度。
消息仅在 Services 内存中,重启不恢复,不作为可靠存档、事务确认、权限委托或宿主命令。作者必须校验业务内容;得到存档变化提示后仍读取成功快照,不直接应用消息中的进度、奖励或权限。重载、停用、包切换、卸载和权限/资源绑定变化均可丢弃记录。已经交付网页的字节无法撤回,直接联网边界不变。
事务与取消
Services 捕获实例及安装身份,直接处理安装内的有界内存消息,不读取档案选择文件。每次执行和最终投递检查取消、实例/安装、当前包和来源文档。正文先验证和序列化,发布前再次检查;已发布值在请求响应丢失时可保留,消费者可读取确认。
发布记录只保存固定数量的来源依赖:来源实例生命周期、文档代次、安装级授权/绑定信任代次。撤权或撤绑定在元数据提交失败时也先失效信任代次,再授权不复活旧消息。最终读取投递另捕获安装视图失效代次,来源文档在读取和 UI 投递之间关闭、记录被替换或到期时也拒绝旧结果;同安装其他视图变化可以保守取消在途读取。文档释放只走有界短内存锁,不在 UI 执行磁盘 IO 或等待事务/存储锁。
正常退出关闭机会不接受新的协作方法,保存仍使用 saves.*。后台回收和显示更新复用宿主已有有界队列。
作者使用
写入成功后可发布{revision}作为变更提示;其他实例读取提示后仍须通过saves.load读取成功快照。消息可能覆盖、丢失或过期,作者需要按业务设计补读、合并与冲突重试,不能从消息直接授予收益或覆盖进度。所有实例具有相同接口资格,不设宿主主副角色。