Skip to content

[Grok/dsh 60] 隐私、反馈与观测控制 #192

Closed

Description

@Blackman99

Parent

#132

Ticket: 60

Status: ready-for-agent

User Stories: 30, 63, 64(见父规格)

What to build

用户能保存本地反馈草稿、明确提交反馈,并选择是否向自定目的地发送脱敏诊断或观测数据。

Acceptance criteria

  • 非必要遥测、会话跟踪与内容分享默认关;开启目标、内容开关和管理限制可检查。
  • 反馈草稿不自动发送,用户提交、失败保留、再次编辑和明确删除在所有模式一致。
  • 测试实际出站流量不包含未授权提示、密钥或无配置官方端点,诊断预览说明脱敏边界。
  • 兼容参考公开反馈/观测格式并接入实际配置目的地;各能力的模型必要流量与遥测分开说明。

Blocked by

Delivery contract

用户于2026-09-20批准当前测试与任务拆分。按父规格的已安装产物/真实终端和公开协议测试验收;实际实现须带适用的文档、Changeset及必要检查。ready-for-agent表示任务已定义,不表示前置任务已完成,也不授权自动开始本轮实施、购买付费资源或发布软件版本。

Activity

  1. self-assigned this
    on Sep 22, 2026
  2. Blackman99 commented on Sep 22, 2026

    @Blackman99
    OwnerAuthor

    按用户2026-09-20的实施授权领取 Ticket60 / #192;本次只记录领取,未启动实施工作者,也不表示已实现。已重新读取 #132 的80张子票、正文/评论和实际 blocked-by(native 177 边,无截断)。已在 rewrite/grok-dsh-20260920 集成并关闭:#133–#141、#149、#154、#160、#161、#165、#189、#193。隔离集成 HEAD/origin 均为 db756a47a43bfbff0be6a167e5a1bf1b0b54b28a,跟踪树干净。

    当前独立就绪且未被未核销领取占用的只有 #192。#142/#150/#152/#153 仍由 Blackman99 领取且审查未通过,不重试、不重领、不覆盖其现有评论。未领取任何被阻塞后继,也未领取 #212(最终发布/默认切换仍需新的明确批准)。

    实施必须从独立集成树精确基线 db756a47a43bfbff0be6a167e5a1bf1b0b54b28a 开始。前置均已关闭且提交仍在该分支上:

  3. Blackman99 commented on Sep 22, 2026

    @Blackman99
    OwnerAuthor

    Ticket 60 / #192 不能集成。两位独立审查员均拒绝 worker HEAD 9c53a330cdec18a025826da0b11c41248526ccc5(父提交就是基线 db756a47a43bfbff0be6a167e5a1bf1b0b54b28a;merge-base --is-ancestor 退出 0)。实施者在 103 轮后因 max_tokens 截断,没有留下可审查的修复提交。本控制器未 cherry-pick、未推送、未关闭。隔离集成 HEAD 仍为 db756a47a43bfbff0be6a167e5a1bf1b0b54b28a(db756a4 )。

    控制器核对的是该提交,不是工作区里未提交的改动:

    1. PrivacyPolicy 只在 from_config 拷贝 share_content、share_session、trace_upload、trace_url。提交内 rust/src/privacy.rs 没有发送或过滤路径读取这四个字段。submit_draft 只看 policy.feedback 和 feedback_url。打开替代 URL 后,内容共享、会话跟踪和 trace 上传没有可观察的出口。
    2. submit_draft 在 feedback 开启且目标不是官方子串时,原样 POST title 和 details。share_content 不改变正文,也没有默认脱敏。
    3. submission_from_draft 只在 metadata.structured_feedback 放 schema_version / source / type。注释说用户 metadata 不能覆盖该键,但没有剥离实现。公开参考字段 task_category 与 failure_mode 既未覆盖,也未记为兼容差异。
    4. parse_feedback 把 save|list|show|edit|delete|submit|preview 以外的首词报成 unsupported feedback command。审查员在已安装产品上看到:裸 /feedback 打印 no local feedback drafts;/feedback The fold hid the prompt 在全屏和 minimal 都打印 unsupported feedback command The;Escape 不关闭列表。PTY 只覆盖 /feedback save --title,没有会话内失败、再编辑、删除。
    5. is_official_endpoint 是小写子串包含(api.x.ai、grok.com、x.ai/、sentry.io),不是解析后的 host 比较。查询串里的官方 host 会被误拒;子串匹配不到的官方 host 不会被拒。post_json 不限制 http/https。

    工作树保留:/Users/zhaodongsheng/.grok/worktrees/my-projects-codsh/subagent-01a0ca13-52db-7111-8f05-08e2ecf98b7f。HEAD 仍是被拒绝的 9c53a33。其上还有未提交改动(含未跟踪 rust/src/feedback_ui.rs),不是已审查提交,不要丢弃,也不要在集成分支上手合。

    修复要求:在同一工作树用新提交完成——每个开关都有真实的替代发送或明确拒绝,官方 host 按 URL host 拒绝且只允许 http/https;默认脱敏,仅 share_content 有效开启时包含草稿正文;使用公开 structured_feedback 信封并剥离用户提供的同名键;headless 与 /feedback 共用草稿、编辑、失败保留和删除,TTY 要覆盖失败、再编辑和删除。然后两位独立审查该新 HEAD。#132 与 #212 不关闭。

  4. Blackman99 commented on Sep 22, 2026

    @Blackman99
    OwnerAuthor

    Integrated on rewrite/grok-dsh-20260920 at a0504be561acbcacb146f8467a349c023fa9eb68.

    Cherry-picked db756a47..1e6af27 from the worker worktree (no tags, no force):

    • a172ed8 feat(rust): keep feedback local until an explicit opt-in submit (9c53a33)
    • a0504be fix(rust): make privacy switches stop the matching send (1e6af27)

    Combined tree matches worker 1e6af27354db6ed7ad0b564407d9f0da6dfc59cd (b01e874b66b35426f186e3bd277c958121f9383b).

    Evidence in the combined tree:

    • pnpm run typecheck: pass
    • TMPDIR=/tmp pnpm test: 80 files, 2246 tests passed
    • cargo fmt --check, cargo clippy --locked --workspace --all-targets -- -D warnings, cargo test --locked --workspace: pass (194 + 61 + 2 + 379)
    • pnpm run build:rust then TMPDIR=/tmp python3 scripts/rust-privacy-pty-test.py: {"ok": true, "output": "/tmp/codsh-rust-privacy-nmqmuz_i"}
    • native SHA-256 882de6ef927836c6006b19f5cbab18509c4a2e5c74187ce53e47f17eee362579 (gitignored packages/cli/native/)

    Pushed db756a4..a0504be to origin/rewrite/grok-dsh-20260920 only. Main was not modified. No npm release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions