feat(taptap-cli): 同步随包手册到 taptap-cli 2026.9.22、开放数据查询、设置页加状态面板 - #130
Conversation
|
This comment has been minimized.
This comment has been minimized.
|
关于 判断依据:
本次对 这条与 #108 上的同名 finding 属同一情况,当时的处置同样是在 PR 正文补充溯源证据。如果维护者希望改为在包内声明(例如在 |
…d add a CLI status panel 一、手册同步:上游 9af17092(2026.9.11)→ origin/main d454f0effe(2026.9.22) 契约迁移(DC / OpenAPI): - 提审三步改用同一 scope 与 version_id 校验;submit-app-review 只传 release_schedule - precheck-app-review 返回 blockers / warnings / preaudit_passed;SCE 协议改走独立的 agree-sce-agreement - 删除 get-package-overview、ingest-image-to-assets、precheck-qualification、get-test-plan-overview 等, 改用 get-available-package-types、search-assets、get-qualification-status、list-test-plans - Windows 默认包 (0) 退出上传与绑定;Tap 小游戏改由 upload-mini-app-package 上传 - 版本状态统一为归一化 status(draft / reviewing / scheduled / online / offline / rejected); 普通字段每批 change 上限 5 → 10;expected_digest 退役 - 分发状态话术:由「发布后单独调整」改为「提审前先调整,随本次版本一起审核生效」 - 资质新增「判断事实优先」门禁:先确认 app_features 再推导必须资质;pending_upload 不再等同缺口 能力变更: - 开放 dashboard-stats:worker 的 EXCLUDED_SERVICES 清空,四语言描述去掉排除,新增数据查询手册 - 新增 taptap-player-feedback 手册(只读评价正文检索) - app-edit 执行细则拆分为 references/app-edit-execution-rules.md - 删除已并入 diagnostics 的 package-management-page-paths.md 二、设置页加 CLI 状态面板 - worker 新增 taptap/cli_status:复用 resolveCli 判定是否装得上,再跑 version 与 auth status --offline --json 取版本和登录态。用 --offline 是刻意的:面板在页面加载时就会探测, 不该依赖网络;两个探测沿用同一个 cli_path,避免判定与读数来自不同 binary。 - main.js 加 settings-request / settings-result 桥(reqId 去重 + 结果短时保留)。 - settings.html / settings.js 加状态面板(CLI / 登录)+「检查状态」按钮,四语言文案。 - 安装与登录判定只在 worker 里做一次,满足仓库「main.js 与 settings.js 不得各自实现同一状态判定」的规则。 版本 1.0.7 → 1.0.8。 Signed-off-by: shengyongkang <shengyongkang@xd.com>
a4579b4 to
854df6a
Compare
GaoWeiLiuXD
left a comment
There was a problem hiding this comment.
针对当前提交 854df6a 完成维护者定向审核:
- 核查 taptap-cli/ghost.json、main.js、node/worker.cjs、settings.js、四语言文案及相关测试;新增能力与设置页状态探测已由当前提交的测试和 required checks 覆盖。
- worker.cjs 复用既有单一 execFile 入口,使用固定 CLI 路径与固定参数 version、auth status --offline --json,shell:false;未新增凭证读取、网络域名、eval/Function/字符串执行或 base64 执行边界。
- dashboard-stats 及玩家反馈能力描述与实现同步,当前 Greptile Review 已对本提交给出 5/5 且无剩余 diff 外 finding;相关 review threads 已解决。
- 当前提交的 DCO、Repository-wide gates、Test and dry-run packaging for changed plugins、Greptile Review 均成功。
以上证据足以完成本 PR 的维护者审核。
|
当前 PR(head 854df6a,目标 main)已完成维护者审核,所需 CI 均已通过。是否需要我帮你合并?请 PR 作者明确回复“同意合并”或“暂不合并”;确认后将在下一轮巡检核对状态并执行合并。 |
同意合并 |
What / 改了什么
两件事:把随包手册同步到上游最新 + 给设置页加 CLI 状态面板。
一、手册同步:
9af17092(2026.9.11) →origin/maind454f0effe(2026.9.22)分两段:先同步到 2026.9.21(53 个提交改了
skills/),上游随后发布 2026.9.22,再补一节增量。上游契约迁移(DC / OpenAPI)
version_id校验;submit-app-review只传release_scheduleprecheck-app-review返回blockers/warnings/preaudit_passed;SCE 协议改走独立的agree-sce-agreementget-package-overview、ingest-image-to-assets、precheck-qualification、preview-qualification-withdrawal、get-test-plan-overview、create-delivery-batch、update-delivery-batch-quota、batch-search-assetsget-available-package-types、search-assets、get-qualification-status、list-test-plans、get-test-plan-environment、create-delivery-plan、analyze-app-status、agree-sce-agreement、get-video-detailupload-mini-app-package上传status="scheduled"、last_event);普通字段每批 change 上限 5 → 10;expected_digest退役(每条 change 必须携带expected,首次写入传[])能力变更
dashboard-stats(数据查询):worker 的EXCLUDED_SERVICES清空,四语言描述去掉数据查询排除,
whenToUse补上数据表现与玩家评价(否则能力开了也发现不了),并新增数据查询手册taptap-player-feedback手册(只读评价正文检索),保留上游三条门禁:分页硬上限page × page_size ≤ 10000(越界返回空列表且total=0)、score=positive实为score >= 3、省略
start_date只返回最近一月app-edit执行细则按上游拆分为references/app-edit-execution-rules.mdpackage-management-page-paths.md2026.9.22 增量(6 个 skills 文件,3 处语义变更)
「发布版本不会自动改变分发入口状态,如需开放请在提审前先调整,随本次版本一起审核生效」。
6 处全部更新(app-edit 执行细则 1 处、MANUAL 2 处、audit-and-history 3 处)。
app_features(联网 / 内购 / AI /IP / 文字剧情)逐项跟用户确认,再由
analyze-app-status推导必须资质;pending_upload的含义从「待补齐」改为「该槽位暂无材料(不一定必须)」。
不再平铺「8 项全部未提交」这类全量清单。
二、设置页状态面板
原先装完 CLI 后设置页没有任何反馈——装没装、什么版本、登录没有,都得回对话里问。现在:
taptap/cli_status:复用resolveCli判定是否装得上(同步,零进程开销),再跑version与auth status --offline --json取版本和登录态。用--offline是刻意的:面板在页面加载时就会探测,不该依赖网络。两个探测都沿用配置的
cli_path,否则会出现「按配置路径判定已安装、却从 PATH 上另一个 taptap-cli 读版本」的不一致。
main.js加settings-request/settings-result桥(同一条taptap-cli频道),reqId 去重 +结果短时保留,抵御设置页在唤醒竞态下的重复发送。协议照仓内既有先例(
qq-mail/taptap-maker)。settings.html/settings.js加状态面板(CLI / 登录)+「检查状态」按钮,四语言文案。不放登录按钮:登录仍走对话里那套编排,手册里的授权链接展示契约零改动。
安装与登录的判定只在 worker 里做一次,main.js 只转发、设置页只渲染——满足仓库
「
main.js与settings.js不得各自实现同一状态判定」的规则。版本
1.0.7→1.0.8(本 PR 未发布过任何中间版本,只做一次 bump)。Why / 为什么
插件 worker 按 CLI 的实时目录放行调用。上游新增的操作现在就已经可调,手册落后等于让
agent 绕过插件的执行纪律去盲调 —— 这正是
player-feedback随包、以及数据查询一并开放的理由。Review notes / 需要 review 关注
node/worker.cjs有改动(EXCLUDED_SERVICES清空、dashboard-stats描述条目、GLOBAL_RULES的协议同意口径、注释,以及新增的
cliStatus)。按.greptile规则这属于敏感改动。cliStatus没有新增execFile调用点,仍复用runBinary(测试对此有断言)。ghost.json新增settingsHeight: 480(此前未声明),并新增一个非工具类的 worker 方法。状态查询没有做成
tools[],agent 面不变,也不触发四语言 carrier 一致性校验。app-edit-audit-and-history.md自身仍提到page_path,本 PR 保持与上游一致未动。Verified / 验证
手册可读、
list_tools/call_tool正常、dashboard-stats只读查询端到端可用、写门禁仍生效、设置页状态面板正确显示 CLI 版本与登录态(本机
@taptap/cli2026.9.22)。2026.9.22 手册增量的两处行为变更也已实机确认:提审相关回答改为「要开放下载需在提审前调整分发状态,随本次版本一起审核」,
资质问题先确认
app_features五项事实再推导必须资质。未发现问题。本地已通过:
plugin-contract6/6、localization3/3、provisioning3/3、publish-workflows11/11、taptap-cli50/50。另外逐项核对:手册内全部链接可解析、无github.com/taptap/cli链接、无被拒的call_tool调用、无超 64KB 的手册文件。taptap/cli_status也已对着真实 CLI 端到端跑过(本机@taptap/cli2026.9.21),返回{installed: true, version: "2026.9.21", logged_in: true}。Worker 审查证据 / Worker review evidence
taptap/cli官方仓库;手册派生自其skills/目录,基线9af17092(2026.9.11)→origin/maind454f0effe(2026.9.22)。2026.9.21与2026.9.22均已发布到 npm,latest现为2026.9.22。随包不含 CLI 本体,执行的是用户自行安装的
@taptap/cli(MIT)。node/下任何文件;worker.cjs为原有手写源码,零第三方依赖。child_process.execFile调用本机 CLI(
shell:false),网络由 CLI 自身负责。require('child_process')一处(
execFile),无eval、new Function、spawn、execSync,无 ≥200 字符的 base64 串。