16 KiB
CLI 输出渐进披露
本文件长期跟踪 UniDesk 高频 CLI 的紧凑默认输出、语义化逐级披露、显式原始输出与错误可见性合同。单个命令、一次 dump 或一个 issue 作为 ITEM 纳入,不以临时故障扩散文件。
R1 [completed]
解决 UniDesk #1809:收敛 Gitea webhook status、trans --help 及未知/错误命令的高频 dump,建立 compact 默认输出、语义化 drill-down、显式 raw 和无 stack 错误合同;只改只读 CLI 可见性,不新增 mirror、sync、flush、trigger 或 apply,完成任务后将详细报告写入任务报告。
R1.1 [completed]
复现并冻结 #1809 的输出合同:默认输出有界、repository key/deliveryId drill-down 语义化、--full 域聚合、--raw 显式;trans --help、未知子命令和可预测 option 错误不得回显内部 stack,完成任务后将详细报告写入任务报告。
R1.2 [completed]
实现共享 CLI 错误边界与 Gitea webhook 有界逐级披露,复用既有 formatter/命令路由;默认输出给出可执行的语义化 next,不依赖临时 dump,且不增加任何交付或 mirror 写入口,完成任务后将详细报告写入任务报告。
R1.3 [completed]
覆盖 compact/full/raw、repository/deliveryId、错误参数和 trans --help 回归,完成静态验证、非草稿 PR、架构审查与自动交付后原入口验收,完成任务后将详细报告写入任务报告。
R2 [completed]
依据 UniDesk #1817 收敛 AgentRun event 高频摘要的输出爆炸,只改 UniDesk render-only CLI,不改变 AgentRun/Kafka durable event facts,完成任务后将详细报告写入任务报告。
R2.1 [completed]
默认 human 与 -o json|yaml 只展示有界 tool_call/event summary,保留 seq/type/status/commandId、命令首行、exit/duration 和 output bytes/hash/截断标记,完成任务后将详细报告写入任务报告。
R2.2 [completed]
显式 --full|--raw 或稳定 event identity 保持完整下钻,并用固定 run_d7f1cbb11ab04a75ad435ee462c2e60d 和大 output 离线夹具证明默认不再触发 dump,完成任务后将详细报告写入任务报告。
R3 [in_progress]
完善 AgentRun/Artificer 调试资源的语义化逐级披露,使 task 输入、资源引用与脱敏 provenance 可独立读取,不依赖完整资源 dump,完成任务后将详细报告写入任务报告。
R3.1 [completed]
解决 UniDesk #1819:为两个固定 Artificer task 增加 input/spec 的有界 id-specific CLI 下钻和默认 Next;只改 UniDesk render-only CLI,不提高 stdout 阈值、不修改 AgentRun/Queue/Kafka durable facts,并以真实 task 只读复现验收,完成任务后将详细报告写入任务报告。
R3.1.1 [completed]
在 UniDesk PR #1821 内修复 --input 与 --full|--raw 的组合歧义:组合使用必须稳定 fail closed,不能绕过 TaskInput 的 SecretRef-only/valuesPrinted=false 合同;补 CLI 解析测试和两项固定 task 有界只读复验后再合并,完成任务后将详细报告写入任务报告。
R3.2 [completed]
解决 UniDesk #1822:将 aipodspec/ 默认 text/json/yaml 收敛为同构、有界且 SecretRef-only 的合同摘要,固定 Artificer 样本不再触发临时 dump;显式 --full|--raw 保持完整下钻,不提高全局 stdout 阈值、不修改 AgentRun 服务端或 AipodSpec 业务配置,完成任务后将详细报告写入任务报告。
R3.3 [completed]
解决 UniDesk #1824:为 AgentRun 精确 run+seq 事件增加通用有界详情投影,使 resource-bundle-materialized 可直接验收 primary workspace lifecycle、commit、writable 与 provenance/contract hash;默认列表保持有界,JSON/YAML/human 同构,exhaustive 仅由显式 raw/完整入口提供,禁止读取 dump 二次裁剪、提高阈值或修改 durable event,完成任务后将详细报告写入任务报告。
R3.4 [completed]
解决 UniDesk #1831:收敛 AgentRun control-plane secret-sync --dry-run 的默认输出,直接披露脱敏计划与 activation fence 资源 identity/状态/语义化下钻,保证 text/JSON/YAML 同构且 valuesPrinted=false;不得读取 dump 二次裁剪、提高 stdout 阈值、改变 Secret 同步语义或手工触发 CI/CD,完成任务后将详细报告写入任务报告。
R3.5 [completed]
解决 UniDesk #1834:Artificer session send dry-run 的 Next 被渲染为 [object Object],live runner admission failure 又丢失 typed reason、已写资源 identity/mutation 状态和正式下钻。建立 text/JSON/YAML 同构的有界 session-send plan/error 投影,展示 decision、run reuse/runner create、session/run/command identity 与安全 Next;只做 render-only,不在 UniDesk 实现 session 状态机、retry/cleanup,不提高 stdout 阈值或改变 AgentRun durable facts,完成任务后将详细报告写入任务报告。
R3.6
记录 UniDesk #1835:gh issue view --json body 对 13 KiB 大正文仍触发 stdout dump,而技能要求理解 issue 前读取全文。增加 body-only 或按 section/cursor 的稳定语义化下钻,保留 body SHA 且不复制 envelope/compatibility 大字段;更新 unidesk-gh skill 清理跟随 dump 的旧 Next。不得读取 dump 二次裁剪、提高 stdout 阈值或手写 API;本支线暂不阻塞 Artificer 主线,完成任务后将详细报告写入任务报告。
R3.7 [completed]
解决 UniDesk #1837:前向兼容 AgentRun #319 的 durable runnerAdmission 成功响应,在 text/JSON/YAML 有界投影中展示 mode/state/reason/disposition、run/command/dispatchIntent/plannedRunner identity、mutation/partialWrite/recoveredPriorPartialWrite、retryability 与正式只读下钻;明确 planned runner 不等于 Kubernetes Job 已创建。旧 manager 未返回该字段时保持现有合同;只做 render-only,不在 UniDesk 实现 dispatcher/session 状态机,先合并 consumer 再合并 AgentRun producer,最终用原 Artificer session 验收,完成任务后将详细报告写入任务报告。
R3.8 [completed]
解决 UniDesk #1838:清理 gh pr create 默认输出中与自动 PR monitor/自动 CI/CD 冲突的手工 merge 和 preflight --full Next;默认只展示有界 PR observe/preflight/status,并以 typed 状态区分等待自动合并、review/check blocker 与自动链异常。手工 merge、--full/--raw 只在用户明确授权或显式披露时出现;同步修正相关 skill、长期参考和测试 fixture,禁止用错误提示诱导人工补链,完成任务后将详细报告写入任务报告。
R4 [in_progress]
依据 UniDesk #1845 为 AgentRun Session Workspace 与 Resource Binding 提供默认有界、同构、脱敏的 CLI 投影和精确下钻,不依赖临时 dump,完成任务后将详细报告写入任务报告。
R4.1 [in_progress]
实现 UniDesk #1845 的 session 默认有界投影,显示 state、latest run/command/runner、workspace/resource bundle identity、materialization 与 mismatch reason,完成任务后将详细报告写入任务报告。
R4.2
增加 session workspace/resource binding 和相关 run event 的 id-specific 下钻,保持 text/JSON/YAML 同构、SecretRef-only、valuesPrinted=false 与显式 full/raw 完整性,完成任务后将详细报告写入任务报告。
R4.3
用固定 session/run 覆盖缺字段、错绑和正确恢复样本,确认默认/详情均低于 YAML stdout 上限且不生成临时 dump;提交独立 PR,完成任务后将详细报告写入任务报告。
R5 [in_progress]
解决 UniDesk #1847:AgentRun mutation dry-run 的 Next 必须安全保留 argv 语义,并为长 reason 提供 quoted heredoc stdin 输入,完成任务后将详细报告写入任务报告。
R5.1
为 UniDesk #1847 盘点 AgentRun mutation dry-run confirm builder,统一为结构化 argv 与 shell-safe renderer,覆盖空格、引号、分号、变量、tilde、glob 与换行,完成任务后将详细报告写入任务报告。
R5.2
为 cancel/retry 等长 reason 增加 --reason-stdin quoted heredoc,和 flag 输入互斥;错误稳定显示 validation-failed、mutation=false,不回显无界正文,完成任务后将详细报告写入任务报告。
R5.3
补 text/JSON/YAML 同构测试与真实 cancel dry-run 复验,确认 Next 可直接执行且 reason hash 相同;提交独立 PR,完成任务后将详细报告写入任务报告。
R6
解决 UniDesk #1850:统一 trans 规范入口、host/workspace/k3s 的 cwd 与 scoped help,补齐验证成功非空摘要,并为 PR 自动交付及 Code Agent 跨服务诊断提供只读聚合视图;必须分层展示 durable authority 与 projection warning,禁止新增手工 trigger/sync/refresh、提高 stdout 阈值或用版本/commit 契约漂移阻塞业务。由独立子代理在 .worktree/tooling-usability、fix/tooling-usability 分支调查、实现、针对性验证并提交 PR,不自行合并,完成任务后将详细报告写入任务报告。
R7
解决 UniDesk #1880:收敛 platform-db postgres plan|status|apply 默认输出为有界、同构且脱敏的计划/状态/终态摘要;apply --wait 保留实时进度,但最终只展示 mutation/job/result/cutover blockers、role/database/app connection 与 Secret presence/fingerprint,并以显式 --full|--raw 提供完整下钻;不得提高 stdout 阈值、读取临时 dump 二次裁剪、改变 PostgreSQL 运行语义或打印完整 DATABASE_URL,完成任务后将详细报告写入任务报告。
R8 [completed]
依据用户 post-task 解决 UniDesk #1889 与 UniDesk #1890:让 Windows ps/cmd 继承 route cwd,远端文本默认走 cat/apply-patch quoted heredoc,文本传输在写入前引导,默认有界输出不再自动产生临时 dump;目标是减少同类任务的试探、转存和二次读取调用,完成任务后将详细报告写入任务报告。
R8.1 [completed]
由原生子代理解决 UniDesk #1889:统一 Windows ps/cmd/quoted-heredoc stdin 的 route cwd,补原入口测试并提交独立 PR,完成任务后将详细报告写入任务报告。
R8.2 [completed]
由原生子代理解决 UniDesk #1890:前置收敛文本 download/upload、apply-patch TTY 与默认 dump 合同,更新 scoped help、skill/reference、测试并提交独立 PR,完成任务后将详细报告写入任务报告。
R8.3 [completed]
主代理依次审查合并两个 PR,在 D518 仅使用 cat、apply-patch quoted heredoc 和有界查询完成原入口验收,关闭 issue 并记录调用数收敛证据,完成任务后将详细报告写入任务报告。
R8.4 [completed]
补齐合并后验收发现的 UniDesk #1890 残余:gh issue 默认 Next、readCommands、help、skill 与 reference 必须把 trans gh:/owner/repo/issue/ cat 作为人工正文读取首选,结构化 JSON/full/raw 仅作为显式机器披露,完成任务后将详细报告写入任务报告。
R9
解决 UniDesk #1905:收敛 Artificer 一次性 GitHub 正文输入,直接使用 quoted heredoc stdin,不再被旧参考误导为先写临时正文文件;保持既有可复用 --body-file 能力,不扩大到 Monitor 主线,完成任务后将详细报告写入任务报告。
R9.1
按 UniDesk #1905 清理冲突的 reference/skill/Next,并在 Artificer YAML prompt/resource bundle 内明确支持 stdin 时禁止一次性 /tmp 正文;补最小 render/行为测试后独立交付,当前只登记不执行,完成任务后将详细报告写入任务报告。
R10 [in_progress]
解决 UniDesk #1656(https://github.com/pikasTech/unidesk/issues/1656):由 Artificer 在独立 worktree 修复 cicd status --node 成功零输出,并统一 PaC consumer 的 registry applicability;GitOps-only 或 publisher-only 应显示 N/A 且由 PipelineRun、GitOps/Argo 与 runtime 证据闭环,只有 owning YAML 明确声明 image/registry 的 consumer 才把 registry missing 作为 blocker。保持默认输出有界、text/JSON/YAML 同构、缺失可选 YAML 事实降级为 warning,不新增严格合同或手工交付入口;补针对性测试和 unidesk-cicd 说明,提交独立 PR 且不自行合并,完成任务后将详细报告写入任务报告。