Skip to content

feat(cards): 完善卡片与授权默认配置 - #768

Merged
deepcoldy merged 2 commits into
deepcoldy:masterfrom
hyperdai:codex/private-card-default
Aug 8, 2026
Merged

feat(cards): 完善卡片与授权默认配置#768
deepcoldy merged 2 commits into
deepcoldy:masterfrom
hyperdai:codex/private-card-default

Conversation

@hyperdai

@hyperdai hyperdai commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

改动内容

  • 保留新机器人默认开启自动任务卡片,并继续提供手动 /card 私密快照选项。
  • 将自动卡片、无卡片状态反馈、卡片内容和手动 /card 按实际生效条件整理,避免互相覆盖或误解。
  • 为新授权卡增加默认有效期,可选 1 小时、8 小时、1 天和 7 天;旧配置缺省仍按 1 小时。
  • 保留原有授权与额度布局,只增补默认授权时长;额度未配置时,授权卡每人 3 条、Oncall 不限,填写后两处共用额度。
  • 群内 /botconfig 和中英文公开文档与上述额度语义保持一致;额度支持 1–1000 自由输入,主卡展示当前值和历史超限值的兼容规则。
  • 已有授权、已发出的 pending 卡以及显式 /grant @用户 N 不受配置变更影响。

为什么

原配置把自动卡片、手动 /card 和无卡片反馈放在同一层级,用户难以判断开关的作用范围;同时授权卡默认时长只能在卡片中逐次调整,后台无法统一配置。

这次保持公开卡片、privateCarddisableStreamingCard 的既有存储语义,新增字段均为可选配置,避免升级后改变老机器人的行为。

影响面

  • Dashboard:Bot 配置中的“消息卡片”和“权限与安全”。
  • Lark:未授权申请卡、/grant @用户 生成的授权卡与 /botconfig 配置卡。
  • 会话:不改变普通群、话题群、私聊的卡片发送能力边界。
  • CLI / 后端:不涉及 CLI 适配器、PTY/Tmux 或跨平台进程逻辑。

界面截图

消息卡片

消息卡片配置

授权与额度

授权与额度配置

验证

  • BOTMUX_NO_CLAIM=1 pnpm build:通过。
  • 额度自由输入与卡片回调相关测试:309/309 通过。
  • pnpm test:全量并发运行仍会出现本 PR 之外的 integration 时序超时;额度、卡片、回调与消息解析相关用例隔离运行全部通过。
  • git diff --check:通过。
  • pnpm switch:here && pnpm daemon:restart:daemon 与 Dashboard 均 online。
  • Playwright:在 1600×1200 视口检查“消息卡片”和“授权与额度”实际页面,布局、层级和控件对齐正常。

@hyperdai
hyperdai requested a review from deepcoldy as a code owner August 6, 2026 12:44

@deepcoldy deepcoldy left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

结论:请求修改。核心数据流与 Dashboard 交互基本成立,但本 PR 要澄清的额度契约尚未覆盖所有公开配置入口。

  1. 额度“未配置”语义仍在群内 /botconfig 和公开文档中错误显示为“不限”。 buildConfigCardquota == null 时选择 card.config.quota_off,而中英文文案仍是“不限 / Unlimited”(src/im/lark/card-builder.ts:105-114src/i18n/zh.ts:450-451src/i18n/en.ts:447-448)。实际上未配置时,新授权卡会取 3 条,只有 Oncall 不限。docs-site/docs/{zh,en}/bots-json.md:151 也仍写成“不配则授权无限”。请把这些用户可见入口统一为“授权卡 3 条 / Oncall 不限”的真实契约,并补相应测试。

  2. /botconfig 的额度下拉无法表示 Dashboard 当前允许保存的值。 它的 options 只有 off,5,10,20,50,100,但 initial_option 直接使用任意已存额度。Dashboard 接受 1–1000,历史值还可能 >1000,所以 3、12、1000、5000 等都会产生“不在 options 中的 initial_option”;这与本 PR 为授权卡修复的 orphan initial-option 问题同类。请让群内配置卡能安全展示任意合法/legacy 当前值,且 legacy >1000 的卡片夹取 1000、Oncall 保留原值的差异要可解释,避免整张卡无效或当前态误导。

已确认无问题的部分:

  • 未配置时授权卡 3 条、Oncall 不限;配置后两处共用额度,运行时分支一致。
  • legacy >1000 在新授权卡表单中夹到 1000,Oncall 仍使用原值;Dashboard 单改时长不会覆盖 legacy 额度。
  • grantDefaultDurationMs 的解析、持久化、内存同步、自动申请卡和 owner /grant 两条消费链路一致;pending 与卡片初值同步。
  • 卡片设置 UI 的两个反相开关、失败回滚、单飞保存和无障碍错误状态逻辑正确。
  • 与最新 origin/master 三方合并无冲突,git diff --check 通过。

验证:

  • BOTMUX_NO_CLAIM=1 pnpm build:通过。
  • 13 个相关测试文件:686/686 通过。
  • pnpm test:12643 通过、20 跳过;group-join-shared-routingbeforeAll 在并发全量运行时一次 10s 超时,隔离重跑 14/14 通过。
  • 当前 PR 无 CI checks。

流程项:这是 Dashboard UI 重构,PR 描述目前没有实际截图;请按仓库规范补充截图示意。

保留公开卡片和手动 /card 的既有语义,避免新配置改变老机器人的默认行为。\n\n补充授权卡默认时长和额度控制,并将后台交互收敛为熟悉的配置结构,降低升级与使用成本。
@hyperdai
hyperdai force-pushed the codex/private-card-default branch from 4bcd2af to 798dd46 Compare August 7, 2026 08:37
@hyperdai

hyperdai commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

已按 review 意见修正并同步到本 PR:

  • 统一 /botconfig 与中英文公开文档的缺省额度语义:授权卡每人 3 条,Oncall 不限。
  • /botconfig 额度下拉现在可安全展示 3、12、1000 等任意 1–1000 当前值。
  • 历史 >1000 额度使用只读 legacy 初始项,并明确说明“新授权卡最多 1000,Oncall 保留原值”,避免 orphan initial option 让整卡无效。
  • PR 描述已补充“消息卡片”与“授权与额度”两张实际 Dashboard 截图。
  • 已 rebase 到最新 origin/master

验证:BOTMUX_NO_CLAIM=1 pnpm build、519/519 相关测试、全量 pnpm testgit diff --check 均通过;Playwright 已对 1600×1200 实际页面做视觉检查。

统一群内配置卡与公开文档的默认额度说明,避免用户把
授权卡默认 3 条误解为全部不限。额度继续支持 1–1000
自由输入,并兼容历史超限值及已经发出的旧版下拉卡。
@hyperdai
hyperdai force-pushed the codex/private-card-default branch from 798dd46 to 8915008 Compare August 7, 2026 08:49
@hyperdai

hyperdai commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

补充修正:额度交互保持产品原设计,不使用固定档位下拉。

  • Dashboard 继续原地输入 1–1000,没有改动。
  • /botconfig 主卡展示当前值;点击「设置消息额度」后,在私信输入卡中自由填写 1–1000,留空恢复“授权卡 3 条 / Oncall 不限”。
  • 已发出的旧版下拉卡回调仍兼容,升级后不会失效。

验证:相关测试 309/309、BOTMUX_NO_CLAIM=1 pnpm buildgit diff --check 均通过;live daemon 已重启到最新提交。

@deepcoldy
deepcoldy merged commit 6bee267 into deepcoldy:master Aug 8, 2026
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.

2 participants