Skip to content

Releases: Nobook1121/The-Veil

v0.4.3b

v0.4.3b Pre-release
Pre-release

Choose a tag to compare

@Nobook1121 Nobook1121 released this 05 Oct 04:02

发布日期:2026-10-05

变更时间:2026-10-05

本次更新重做 AI 平台配置流程:默认不再预置任何已配置的模型提供商,改由前端内置模板驱动「添加平台」,并在后端补齐「列出 / 删除平台」接口、权限与操作日志;同时修复一批交互与导入问题(控制台回车卡死、封面被裁剪、ESC 关闭剧本编辑器、开关颜色、baseurl 被自动补全等),拆分超长模块并清理无用代码。发布包同时调整打包原则:开启首次部署引导,且不打包自动构建与开发侧功能。

AI 平台配置(重做)

  • 默认不预置平台:新部署的 data/config/aiplatform/ 只保留 default-request.json,不再随包提供 aliyun / deepseek / lmstudio / openai / openrouter / siliconflow 等已配置好的平台,用户进入后在「添加平台」里自行创建第一条。内置能力仅以「模板」形式保留在前端,用于预填。
  • 「添加平台」弹窗:
    • 顶部居中为供应商头像选择区:未选择时按供应商名称首字生成文字头像(色相由名称推导,稳定区分),选择内置供应商时使用内置头像;用户仍可自行上传覆盖(data URL,上限 1MB)。
    • 依次为供应商名称(选择内置自动填写、可修改)、API Key、baseurl;baseurl 右侧新增「完整 URL」开关:关闭时程序自动拼接 /chat/completions 等后半段,用户只需填写兼容服务的端点地址(不以斜杠结尾即可),打开时按用户填写的完整地址请求。
    • 折叠的「高级选项」包含:提供商类型(OpenAI 官方格式 / OpenAI 兼容 / Anthropic,选择内置自动填写)与请求模型(可添加多个,每个可勾选为默认启用)。
    • 右下角为「取消 / 测试连接 / 添加(编辑时为保存)」;「测试连接」沿用既有的平台测试方法。
  • 供应商卡片:保存后渲染为横向一条卡片——左侧头像、供应商名称,右侧置右排列「启用」(点击后变色且文字变为「使用中」,同时启用平台)、「编辑」「检测连通」(均为纯图标,检测连通复用既有测试方法)、「删除」控件。
  • 后端接口与治理:新增 GET /api/config/aiplatform(列出磁盘上的全部平台,读取时剥离 api_key)与 DELETE /api/config/aiplatform/<platform>(删除平台配置、对应 secret 及该平台的模型请求模板目录);两者均要求 settings.ai_models 权限节点并写入操作日志。
  • 配置元数据:平台配置新增 provider_type、base_url_full、default_model 字段(仅作元数据持久化 / 展示,不改变后端聊天请求构造)。
  • 内置模板:阿里云百炼、硅基流动、DeepSeek、OpenRouter、LM Studio、OpenAI;LM Studio 现可选择具体模型,并作为 OpenAI 兼容平台使用。

模型请求与 Responses API

  • base_url 不再由用户在输入后被动补全:新增 ai_capabilities.chat_completions_endpoint() 统一在请求时归一化端点,用户填写的地址不会再被就地改写成 /v1/chat/completions。
  • 新增 Responses API 能力探测与传输层(ai_capabilities.probe_responses_api / agents/responses_transport.py):对支持 /responses + previous_response_id 的端点做轻量真实探测,仅在用户显式开启且探测通过时启用有状态续答以减少重复计费;任何异常立即锁定并回退到 chat/completions。
  • 每个模型平台新增「请求模板」按钮,用户可自行编辑该模型请求体的写法(沿用 data/config/aimodel/<platform>/<model>.json)。

剧本编辑与导入

  • 剧本编辑界面的封面图片不再被错误裁剪;「上传封面」按钮文字右侧的多余空白去除。
  • 剧本编辑器支持按 Esc 或点击窗口遮罩关闭;剧本内有改动时,关闭前按与关闭按钮一致的文案询问是否保留草稿。
  • 剧本导入支持 .doc(与既有 .docx / .doc 等一并通过文本抽取管线处理)。
  • 模块摘要与剧本导入共用的 AI 接入逻辑从 routes/scenarios.py 抽出为 scenario_ai.py / routes/scenario_summary.py,路由层只负责 HTTP 编排。

界面与交互修复

  • 控制台按回车不再导致控制台失去响应。
  • 开关控件颜色修正:选中态统一使用主题色(不再固定为蓝色),聚焦 / 失焦时原点不再在灰与蓝之间闪烁。
  • 保存模型平台配置成功后的提示由浏览器原生弹窗改为网页内提示。
  • 角色卡标签卡右上角「角色卡广场」按钮现可正确跳转到「探索发现」中的角色卡广场。
  • AI 在聊天中返回的错误信息进行 i18n。
  • 新增 debug 模式:仅当管理员开启后,日志才打印完整的 AI 请求与返回内容。

首次部署引导与发布

  • 首次部署引导开启:发布包内 data/config/site.json 的 setup_dismissed 置为 false,且不包含任何 OWNER 数据,使 /api/setup/status 返回 setup_required=true,启动后即进入引导。
  • 发布包不预置模型提供商:不打包 data/config/aiplatform/*.json(仅保留 default-request.json)与 data/config/aimodel/**。
  • 发布包不包含自动构建:server.py 的前端自动构建改为开发侧开关 AI_TRPG_DEV_BUILD=1(默认关闭),发布包直接使用随包的 dist/ 构建产物,且在没有 npm 的环境也能正常启动。
  • 发布包排除开发侧内容:tests/、开发 / 校验脚本与内部计划文档等不再打包。

代码质量

  • 拆分 backend/trpg_server/routes/chat.py(1552 → 887 行):纯函数与上下文装配逻辑抽出到新增的 routes/chat_helpers.py,并补充「蓝图注册路由」回归用例。
  • 拆分剧本前端视图:抽出 views/scenario-helpers.ts(i18n / 转义 / 权限 / 弹窗工具、保存冷却)与 views/scenario-modules.ts(模块数据模型与编辑器)。
  • AIPlatformManager 显式实现 AIPlatformManager 接口,接口与实现签名不一致时会在类型检查阶段报错。
  • 删除无用函数(前端 15 个、后端 8 个)、精简未使用的导入、为代码补充注释,并将前端大量硬编码文案改为 i18n。

验证

  • 前端 TypeScript 类型检查:通过
  • 前端生产构建:通过
  • 后端测试:311 passed

v0.4.2b

v0.4.2b Pre-release
Pre-release

Choose a tag to compare

@Nobook1121 Nobook1121 released this 03 Oct 06:44

v0.4.2b

发布日期:2026-10-02

变更时间:2026-10-02

本次更新完善角色卡技能系统与职业系统:按 COC 7e 官方基础值校准技能目录,新增技能专精选择与多层可配置的技能基础值体系;并将内置职业扩充至 11 类共 112 个,支持分类选择与一键就职。

新增

  • 技能目录按官方基础值校准:读唇 1、计算机使用 5、爆破 1、炮术 1、电子学 1;并按用户补充写入催眠 1、潜水 1、驯兽 5、狙击枪 5。
  • 格斗专精基础值:斗殴 25、剑 20、矛 20、斧 15、绞索 15、链锯 10、连枷 10、鞭 5;射击专精基础值:手枪 20、步/霰 25、冲锋枪 15、狙击枪 5、弓 15、机枪 10、重武器 10。
  • 技能专精改为「按钮 + 弹窗」:带专精的技能在技能名右侧显示按钮,未选择时显示「选择{技能名}」(如「选择语言」),点击后弹窗单选出该技能的专精,确认后按钮显示专精名且基础值切换为该专精的基础值;取消与确认均可回退。
  • 专精写入通过 applySkillSpecialty(技能行, 专精键) 统一完成,选择职业等流程可直接调用以写入专精并重算基础值。
  • 技能基础值支持三层配置:管理员设置(角色卡规则)、房间规则、用户个性化设置(保存在当前浏览器),三处均可点击「设置技能基础值」弹窗按技能(含专精)逐个覆盖,留空表示沿用默认值。
  • 生效优先级为:房间规则 > 用户个性化 > 管理员设置(仅兜底)> 技能目录默认 > 动态值(闪避 = DEX/2、母语 = EDU);管理员默认值仅在房规与用户个性化都未填写时生效。
  • 自定义技能(custom)不设默认基础值,由用户在技能行直接填写。
  • 进入房间选择角色卡或绑定角色卡时,若角色卡基础值超过房间规则上限则提示;用户确认继续后自动把超出部分降低为房间规则上限并重算成功率,取消则回到选择界面另选角色卡。
  • 导入角色卡时以导入文件中的技能基础值为主,并提示其中超过设定上限的技能名。
  • 房间码支持点击复制,房间卡片与房间详情页均可一键复制。
  • 创建房间时可选择可见性:公开房间展示给所有玩家,私人房间(默认)仅能通过房间码加入;该配置可在后续「房间规则」中随时更改。
  • 管理员的用户管理界面新增用户组管理:角色列支持直接升级 / 降级用户组。
  • 主页聊天框支持发送图片、视频等文件(新增文件上传接口,图片以缩略图、视频与其它文件以链接形式发送)。
  • 小工具「骰娘」新增大成功 / 大失败阈值面板,仅对当前用户可见、仅影响该面板内判定。
  • 骰娘大成功 / 大失败阈值改为「全房间统一」:可在「房间规则」内按房间配置,未配置时回落到管理员设置页的默认阈值;/check 与 KP 后端检定工具均遵循「房规 > 管理员默认」优先级。

聊天与房间体验

  • 聊天消息中的图片显示为缩略图(最大 260×200),点击后在当前页面内的浮层放大预览(Esc 或点击遮罩关闭),不跳转、不下载。
  • 聊天消息中的视频改为内嵌播放器直接播放,并提供「放大」按钮在页面内全屏浮层播放。
  • 房间成员离线/上线时通过 Socket.IO 广播 room_members_changed,房间内其他玩家即时刷新在线状态。
  • 用户角色被调整(如管理员降级为 user)时广播 role_changed 与 room_members_changed:房间成员列表按实时角色渲染配色与标签,降级后不再保留管理员配色,当事人权限即时刷新。
  • 聊天输入框上方显示「xxx 正在输入」提示(多人时合并显示,4 秒无输入自动消失)。
  • 修复自己发送的长消息换行后未左对齐的问题。

职业系统

  • 内置职业由 1 个扩充至 112 个,按 11 个类别组织(文艺工作、工农商、职工、学者、医疗系统、运动/探险、服务业、宗教相关、灰色/无职、罪犯、军警政);每个职业一个 JSON(data/occupations/builtin/<id>.json),含 nameKey/categoryKey(i18n 键,中英双语)、creditRating、occupationSkillPoints.terms、occupationSkills、skillBases。
  • 「选择职业」弹窗改为类别手风琴:初始只列类别行(含职业数量),点击展开为该类别 2 列网格的职业卡片;卡片显示职业名、本职技能、信用评级、职业点数。
  • 卡片「就职」一键完成:写入职业名、按 terms 自动算出职业点数写入「职业点数」栏位(choose 项取候选属性最高值,如音乐家 = EDU×2 + DEX/POW×2 较高者)、自动勾选确定的专职技能,并对带专精的本职技能写入专精并重算基础值(「或」「任意 N 项」等模糊条目不打勾、不写专精)。
  • 技能列表上方新增一行提示:职业名、信用评级、全部本职技能(含「或」「任意 N 项」等模糊表述)。
  • 职业本职技能条目区分三类语义:确定技能(打勾)、chooseOne(「A 或 B」)、freeChoice(「任意 N 项…」);打勾判定仅取确定技能。
  • 新增 tests/test_occupation_catalog.py(6 条校验):文件与 id 一致且唯一、必填字段与 categoryKey 合法性、信用评级范围、点数 terms 合法(attribute/choose 均为合法属性键、multiplier 为正整数)、本职技能的 skillKey/specialtyKey 存在于技能目录、skillBases 键存在于技能目录。

修复

  • 修正多处以 0 作为默认基础的技能(读唇 / 计算机使用 / 爆破 / 炮术 / 潜水 / 电子学),此前与官方值不符。
  • 修正闪避、母语的动态基础值此前被静态默认值短路、始终不生效的问题。
  • 修复技能专精弹窗与既有同名弹窗 id 重复导致的渲染异常。
  • 修复 TOML 字符串值读取时未还原 \"、\\ 等转义导致嵌套配置(以 JSON 字符串保存的技能基础值)读不到、且反复保存会不断叠加转义的问题。
  • 自动存档改由服务端系统后台定时触发:不再依赖玩家浏览器的定时器,服务端按 general.toml 的 [autosave](enabled/interval)为到期的活跃房间写入自动存档节点,触发来源记为系统;写入后广播 room_autosave_created 让房间内客户端刷新节点列表。
  • AI KP 不再编造 COC7 目录中不存在的技能:检定名会对照技能目录(含专精,兼容常见中文变体)校验,未知技能直接拒绝并提示改用标准检定名;系统提示同步强调只能使用标准属性或角色卡上已有的技能。
  • 修复「导入剧本」时 AI 不遵循剧本的问题(不再依赖压缩上下文,改为补齐剧情来源与结构索引):
    • 新增 KnowledgeBaseService.catalog(),按知识块顺序生成章节目录;直接导入的剧本会把该目录注入系统提示,让模型像普通剧本一样先掌握整体剧情结构。
    • 直接导入剧本的检索结果保留全文(不再按 1200 字符截断),并单独放大直接导入的召回章节数,减少情节被截断或漏检。
    • 场景静态核心纳入 global_summary,导入剧本的剧情简介随每次请求稳定注入。
    • 直接导入剧本时不再向模型暴露 room.get_scenario_module / room.activate_scenario_scene 这两个无意义的场景工具,避免模型反复无效调用并浪费轮次。
  • 降低 AI token 改用不损失信息的方式:撤销此前的上下文压缩(场景静态卡有界、历史 6000/10、工具结果 2000 字符、折叠旧工具结果均已回滚),改为通过「导入剧本目录 + 全文检索」保证剧情完整性,并通过裁剪无意义工具、稳定系统提示前缀(命中 provider 前缀缓存)来控制开销。
  • 修复导入剧本「知识库召回始终固定、不随剧情推进变化」的问题:
    • 检索 query 由「仅当前一句」改为拼接最近 3 轮对话(每条截断 500 字符、总量 1500 字符),泛化输入也能带上剧情上下文参与匹配。
    • 词法分改用 BM25(IDF 在硬过滤后的子语料上计算),冷门词(专有人名/地名)权重更高;词法与向量分各自归一化到 [0,1] 后按查询类型动态调权(规则类问题偏词法,叙事类偏向量)。
    • 新增房间级章节游标 rooms/<room_id>/knowledge_cursor.json({scenario, rounds, timed}):rounds 记录每轮召回的章节,兜底路径优先返回冷却之外的章节,使召回随剧情推进前进;timed 记录每个章节的粘滞/冷却剩余轮数(见下「世界书检索」)。
  • 优化导入剧本的「遗忘」兜底:词法与向量均未命中时仍返回知识块(导入剧本没有场景模块,内容仅在知识块中),避免模型因检索为空而声称剧本缺失。
  • 修复「直接导入剧本」报错 Scenario import failed: Import job not found:POST /api/scripts/import 返回的字段是 jobId/scriptId,前端此前误按 id 读取,导致轮询到 /api/scripts/import/undefined 并报 404。现改为使用文档化的 jobId/scriptId 契约(ScenarioImportStart),新增回归用例覆盖「创建 → 轮询 → 发布」全链路。
  • 优化导入剧本的切块与召回(父子块):
    • 按 Markdown 标题与「第X章/节/幕/场景」标题分块(一个场景/章节一块);仅当正文超过子块上限时才继续切分,且优先在自然段边界处切分,避免句子被拦腰截断。
    • 每个子块写入所属章节(chapter_path / metadata.section);检索命中子块后按 chunk 顺序向两侧回填同章节的相邻块(受父块上限约束),合并为一条「完整章节」结果,续块重复的「【章节】」前缀会被去重。
    • 因此返回条数天然收敛为「章节数」,在不截断内容的前提下减少重复上下文。
  • 知识库检索与剧本切块改为可配置:管理员设置页新增「知识库检索与剧本切块」区块,对应 general.toml 的 [ai.knowledge]:
    • top_k_default(默认 5,1-32):带场景模块的剧本每次召回的章节数量。
    • top_k_direct(默认 6,1-32):直接导入剧本每次召回的章节数量。
    • chunk_child_max_chars(默认 800,200-8000):导入剧本子块字符上限,越小召回越精确,修改后需重新导入剧本才会生效。
    • chunk_parent_max_chars(默认 2400,200-16000):命中后回填同章节内容的字符上限。
    • sticky_rounds(默认 1,0-10)/ cooldown_rounds(默认 3,0-20):关键词激活章节的粘滞/冷却轮数(条目可用自身字段覆盖)。
  • 历史压缩改为「双层滚动摘要 + 关键事实」:压缩时把已有滚动摘要与新增对话一并交给模型融合,输出 {narrative ≤250字, key_facts[...]};关键事实按 地点/NPC/物品/决策 分类落盘,避免叙事压缩后关键剧情事实丢失。模型返回非 JSON 时自动退化为纯文本摘要。

世界书检索(lorebook)

知识块新增一组「世界书」字段(keywords / secondary_keywords / secondary_logic / is_constant / tier / probability / group / group_weight / priority / order / trigger_chunks / sticky_rounds / cooldown_rounds / delay_rounds),在导入剧本时可自动派生,也可在剧本列表点击「世界书」按钮按章节手工调整。

  • 关键词直命中通道:检索 query 命中章节触发词时直接激活该章节(拉丁词按整词、CJK 按子串匹配),不再依赖语义相似度;只有全部未命中时才回退到既有的 BM25 + 向量通道。命中分用于同分排序(主键每次命中计 1 分,副键计 0.5 分)。
  • 副键门槛:secondary_keywords 与 secondary_logic(and_any 默认 / and_all / not_any / not_all)对主键命中做二次筛选,用于「A 且(或)B 才激活」的条目。
  • 常驻条目:is_constant 的章节每轮都注入,且不受冷却、概率、分组竞争影响(世界观/背景类章节自动标记)。
  • 硬状态机门控:章节生命周期为 激活 → 粘滞(sticky_remaining)→ 冷却(cooldown_remaining)→ 可再次激活,状态存于游标 timed。粘滞期内的章节即便本轮无命中也被强制注入;冷却期内的章节被硬门控挡下。只有「关键词通道」激活的非常驻条目会写入计时状态,纯语义命中不写。
  • 排序与分层:tier(core 优先于 background,archived 在硬过滤阶段直接排除)、priority、order 参与最终排序;prompt_slot 语义保留未启用。
  • 概率激活:probability(0-100)对非强制条目按概率丢弃(默认 100 即必定注入)。
  • 分组竞争:同 group 的条目只保留 group_weight 最高(并列取分高)的一条,避免同类条目重复。
  • 递归扫描:trigger_chunks 的条目正文会继续去匹配其它条目的触发词,把长剧本里互相引用的设定串联起来;深度(默认 3)、步数(2000)、激活条目数(400)三重封顶,并带环检测。
  • 注入 token 预算:lorebook_token_budget 默认 0(不限制);仅为超大剧本显式设置时才生效,超出预算的低优先级章节会被整体丢弃,绝不截断正文。
  • 导入期自动派生:按「引号专名(「」《》【】“”)→ 括号拉丁人名(如 (Iriuma Zousu))→ 章节标题词 → 大写拉丁词 → 正文重复 2-4 字 n-gram」的顺序派生触发词(去重截断为 8 个);标题含「简介/背景/前言/世界观/序幕/导入/序章/设定」的章节标记为常驻,含「主线/核心/关键/真相/结局」的标记为 core;派生触发词 ≥2 个的条目允许递归触发。
    • 噪声过滤(参考 docs/样本 的真实剧本范例校准):括号内的整句注释((详见下文))不再当专名;含数字的年龄/页码/骰式(34岁、SC 0/1、1d5+DB)与目录点线标题(孩子与绣花鞋......)直接丢弃;标题首行即正文时超长整句不再成为触发词;The/You 等英文句首词剔除。
    • n-gram 碎片剔除:子串出现次数与包含它的更长词相等时判定为碎片(查员 ⊂ 调查员、冯季 ⊂ 冯季阳、钥匙 ⊂ 铜钥匙),且内含规则书泛词(如果调查、果调查员)的跨词边界 n-gram 也不再采纳,避免高频碎片挤占触发词名额。
  • 新增配置项(general.toml 的 [ai.knowledge],管理员设置页「知识库检索与剧本切块」区块):keyword_channel_enabled(默认 true)、recursive_scanning(默认 true)、max_recursion_depth(默认 3,0-10)、lorebook_token_budget(默认 0,0-200000)。
  • 新增「世界书」编辑入口:剧本卡片上的「世界书」按钮(仅管理员/剧本所有者可见)打开编辑器,按章节列出各知识块的世界书字段,可修改触发词/副键/常驻/分层/分组/优先级/概率/粘滞-冷却-延迟轮数等并逐章节保存(写入知识索引,不影响已生成向量)。对应后端 GET/PUT /api/scripts/<id>/knowledge,读取时优先使用已落盘的知识索引,缺失时按剧本模块即时构建。
  • 修复剧本删除后,其他玩家或旧链接仍能看到该剧本的问题(同步清理向量库与知识索引,并过滤已归档剧本)。
  • 修复房间内有新玩家通过邀请码进入时会直接触发开始剧本的问题;现在只有房主或管理员点击「开启剧本」后才会开始。
  • 修复角色卡编辑界面「自定义」按钮点击后无反应的问题。
  • 修复通过控制台命令修改用户组不生效的问题,并支持升级与降级(新增 user demote,user promote 支持指定角色)。
  • 修复 KP 无法调用触发器资源库内容、只能调用场景栏位触发器的问题。
  • 优化 KP 过度引导:禁止主动提示、禁止「你要做什么:1…2…」式选项列表、禁止无故要求检定,该约束每轮重新注入,多轮对话或历史压缩后也不会遗忘。
  • 修复多轮调用工具(截断、检定等)后 AI 不回复的问题(工具轮次结束后自动收尾叙事,兜底生成回复)。
  • 修复文档 / PDF 直接导入仍会生成场景卡的问题:直接导入改为按标题语义切块并嵌入,不生成场景卡;直接导入剧本为只读,编辑时提示「无法编辑导入剧本」并显示向量数量。
  • 修复角色卡技能栏修改「本质技能上限」时的联动 bug:输入中间值(如先输入 9)不再立即把其它技能上限裁剪到 9,改在确认后按最终上限生效。
  • 修复骰娘部分检定内容显示为英文的问题(如 stealth),现在统一显示为中文技能名。
  • 修复 KP 回复整段一次性蹦出、观感突兀的问题:回复改为逐字渐进显现(本机与其他玩家一致),受「启用 AI 流式输出」开关控制,默认开启,并遵循系统「减少动态效果」偏好;查看历史记录时不重放动画。
  • 修复达到最大工具调用轮数或等待超时后 AI 静默无响应的问题:现在不再直接截断,而是自动收尾叙事(用已有工具结果兜底生成回复),并在聊天框与日志中给出明确说明(如「本次回复已达到最大工具调用轮数 N,KP 已停止继续调用工具并收尾」)。
  • 修复 general.toml 中带点号段名(ai.small_models、ai.prompt)被反复转义污染、导致这两段配置永远读不到的问题:保存时点号段名按 TOML 点分键原样输出,前端与后端读取时统一还原段名外层引号,并对历史脏数据做有界收敛。

其它

  • 角色卡序列化新增 specialtyKey 透传,专精在保存与读取(含导入导出)后不丢失;旧数据缺省为空,向后兼容。
  • 房间规则新增 skill_bases 字段:仅接受对象,键为技能键(带专精为 skillKey.specialtyKey),值规范化到 0–99 整数,非法项按「未填写」丢弃。
  • 管理员设置页现有「允许编辑技能基础值」开关本次未接入新流程(导入角色卡始终保留基础值),暂予保留待后续确认。
  • 管理员设置「权限配置」页汉化:后端返回的权限分组/节点此前只有英文占位文案(label 为 id、description 为 Permissions for ...),现按 id 在前端用 i18n 覆盖为「导航 / 账号管理 / 剧本 / 角色卡 / 系统设置 / 房间」六组及全部 25 个权限节点的中文名称与说明;角色开关(USER / ADMIN / OWNER)也显示为「普通用户 / 管理员 / 所有者」。切换英文界面时显示对应英文,data-permission-role 仍保持原始角色 id,不影响保存。
  • 新增「强制切换房间剧本」:房间详情页新增「切换剧本」按钮(仅管理员/房主可见,已归档房间不可用),可把房间换绑到另一个剧本。切换前弹窗给出风险提示,需勾选确认后才能执行。对应后端 POST /api/rooms/<id>/scenario-switch。与「同剧本换版本、尽量保留绑定」的 scenario-migration 明确区分。
    • 聊天记录保留:切换剧本不会清空房间聊天记录,但其中涉及旧剧本的内容可能与新剧本冲突,弹窗中已提示可能「剧本错乱」。
    • 剧情进度视情况重置:弹窗新增「继承剧情进度」选项,选择列表保留当前剧本并标注「当前剧本·最新版本」,选中当前剧本时默认勾选继承——用于切换到同一剧本的最新版本并继续游玩。勾选继承时保留线索/物品/任务/已触发事件/滚动摘要与「已开始」标记,仅同步场景指针(若旧场景在新版本中已不存在则回退到新剧本开场);不勾选时整体重置为新剧本开场状态(清空进度、清除「已开始」标记需重新开场、删除检索游标)。后端以 preserve_progress 布尔参数区分两种模式,默认重置。

v0.3.4b

v0.3.4b Pre-release
Pre-release

Choose a tag to compare

@Nobook1121 Nobook1121 released this 22 Sep 15:38

The beta version of software.

This is the first beta/test release of aibased-trpg. It is intended for early testing and feedback. Please note that this build may contain bugs, incomplete features, or breaking changes.

📦 Release Asset

  • File: aibased-trpg-0.3.4.zip

🔐 SHA-256 Checksum

32C4069F6E03F3E2B488296864FD108767BA9CE67D7A746D60D16F87644BE384

⚠️ Beta Disclaimer

This is an early test version. Use it at your own risk, and avoid using it in production environments without proper backups.

🐛 Bug Reports & Feedback

If you find any issues or have suggestions, please open an issue on GitHub. Your feedback is greatly appreciated.

🙏 Thank You