Skip to content

fix(worldbook): enforce group card binding and remove UI redundant reloads - #204

Merged
3316891527 merged 1 commit into
devfrom
fix/worldbook-ui-latency
Nov 13, 2026
Merged

3316891527 merged 1 commit into
devfrom
fix/worldbook-ui-latency

Conversation

@3316891527

Copy link
Copy Markdown
Owner

变更说明 / Description

背景与动机 / Context and motivation

两个 bug:

  1. 世界书 UI 的"分组绑定角色卡"功能只保存了元数据,运行时没有读取 groups.json,导致分组绑定的卡片对条目实际不起过滤作用。
  2. 每次创建、更新、删除、切换或移入分组操作完成后,UI 都会额外发起两次 IPC 读取列表,造成几百毫秒到 2 秒不等的卡顿。

改动范围 / Changes

  • src/main.ts / dist/main.js:readEnabledEntries 新增并行读取 groups.json,构建条目→组绑定卡列表的索引;matchesCharacterCardWithGroups 在条目没有直接绑定时检查所属组的 character_card_ids;空绑定组仍为全局;条目级绑定优先。两个 hook 均改用新函数。
  • src/ui/worldbook_manager/index.ui.ts / dist/ui/worldbook_manager/index.ui.js:doToggle、doDelete、doSave(创建 & 编辑)、doImport、doSaveGroup、doDeleteGroup、doCopyToGroup 改为直接用 RPC 返回值更新本地 state,不再触发完整列表重新加载;仅显式刷新和首次加载走全量读取。
  • tests/worldbook_group_isolation.test.cjs:覆盖组绑定生效、组绑定隔离(card_A 条目不出现在 card_B)、空绑定保持全局、条目级绑定优先共 4 个回归用例。

兼容性与风险 / Compatibility and risks

存储格式不变;只改注入过滤逻辑,原有条目级 character_card_id 行为不受影响。UI 本地状态逻辑依赖 RPC 返回值与存储一致,失败路径不变。

关联 Issue / Related issue

N/A。来源于 fix/worldbook-ui-latency 修复分支。

验证方式 / Verification

检查或命令:node --check dist/main.js; node --check dist/ui/worldbook_manager/index.ui.js
结果:syntax OK
测试用例:tests/worldbook_group_isolation.test.cjs(4 项)
本地未运行:完整 Gradle / Android 构建(无 SDK 配置)

检查清单 / Checklist

  • dist 与 src 保持同步,语法检查通过
  • 新增 4 项分组隔离回归测试
  • 目标分支为 dev
  • 不改存储格式,不改分支保护

…ilter

Entries belonging to groups with character_card_ids bindings are now
scoped to only those character cards during system prompt and finalize
hooks. Entries without any binding remain global as before; the entry-level
character_card_id still takes priority over group-level scoping.

Also removes redundant post-mutation list reloads from the UI by
using the values returned by create/update/delete/toggle/copyToGroup
operations to update local state directly.

Adds 4 group isolation regression tests covering the corrected behaviour.
@3316891527
3316891527 merged commit f5ebc03 into dev Nov 13, 2026
4 checks passed
@3316891527
3316891527 deleted the fix/worldbook-ui-latency branch November 14, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant