Skip to content

fix: 恢复安全 nodeprobe 四轴状态与前台身份 - #86

Merged
Florious95 merged 26 commits into
mainfrom
pr/nodeprobe-fg-comms
Sep 7, 2026
Merged

fix: 恢复安全 nodeprobe 四轴状态与前台身份#86
Florious95 merged 26 commits into
mainfrom
pr/nodeprobe-fg-comms

Conversation

@Florious95

@Florious95 Florious95 commented Sep 6, 2026

Copy link
Copy Markdown
Owner

恢复 provider、activity、session_name、health 的独立投影,并保留 Ctrl+C 返回 shell 后不复活残留 Agent 的前台身份判断。探测使用受限 list-panes 与窄字段 ps,包含 Pi 生命周期通道和 fail-closed 控制。

已验源码 4f77e3b;CI 实际 checkout 6e47021 与其完整 tree 相同。交付 head 4619b56;run 34090337772 三 jobs success,Rust 46 lib + 1 main + 1 fake_tmux,G-SAFE 合成隔离调用及拒绝控制通过。详细证据保留在 DELIVERY.md / N-RECEIPT.json。

用户已完成最终组合的手机验收并授权合并。此 PR 已以 merge commit 进入 main;完整 App 与服务端依赖按后续 owning PR 顺序并线。历史 archwiki partial 和独立验收未覆盖项不追认成通过。

claude and others added 3 commits September 3, 2026 06:13
Synchronize tools/nodeprobe from 863c316 (auto-discovered .js observer,
default pi-activity dir, web /api/status schema 1, unique-Pi missing
channel health=normal). Replace Go title/process classifiers with a
typed nodeprobe adapter, extend protocol/APP data models with four
axes, and leave list/icon/animation/favorite UI unchanged.
After Ctrl+C back to zsh, listing still showed an Agent icon because
walk_comms matched every descendant, including SN leftovers, while the
foreground group (stat +) was the shell.

Identity now prefers the tty foreground process group so a nested Agent
in a bash wrapper still matches, but a background leftover does not.
Closes #85.
5ee2f9c dropped every pane whose job-control foreground was still zsh,
including live Agent TUIs that left the fg process group. PR11 then
filtered unknown and listing went empty.

Identity now: Agent in fg group wins; if tmux current command is a shell,
do not promote background leftovers; otherwise keep the full descendant
walk. Also embed providers.tsv so a cross-compiled binary still loads
the whitelist when CARGO_MANIFEST_DIR is gone.

Both reds: leftover_background_agent_is_not_identity and
running_agent_still_identified_when_shell_holds_plus.

Copy link
Copy Markdown
Owner Author

四轴兼容性复核:不能用本 PR 的 Cargo 绿色作为 Pi 工作状态回归的验收

核对 HEAD 81790368e41900a9085c722e89147924f0806dfe、base b267127ed1d6be1d76033936d89adff984775b15。本次没有修改本 PR 的代码,没有 merge、部署、改 pin、重启 daemon 或访问 :9900。

已确认的事实,不等于生产归因

HEAD 的 tools/nodeprobe/src/lib.rs 的 Report/Node 仍是旧结构:没有 schema_version/activity/session_name/health。base 也同样缺少这些字段。因此不能把这项缺失写成“PR86 的两个新增提交删了四轴”,简单 revert 这两个提交也不会恢复四轴。

corral-serve PR11 head 1858a535 的 adapter 要求 schema_version=1,并验证 activity、state/activity 一致性、health。按这两个 Rust 版本的声明构造合成 JSON,运行摘出的 Go 类型/验证谓词:两份旧结构都得到 schema_version=0 want=1;只补 schema_version 仍得到 invalid activity ""。这只是接口反例,不是执行 nodeprobe、真实 Pi 或同一 daemon 的运行验收

同一服务端 manifest 仍钉 binary SHA-256 8ef9c5fe89ae76f2c8eb6aeb16bf5fb9060a79bcf81aa4d790df3f4614c2fb5f、source_commit 863c316ff66add549f8fa6dd215cedeedd037f8b。目前尚未把用户给出的生产 f629d77/33b4c48 与该 PR/服务器 commit 形成可验证对应,不能断言当前 Pi 故障就是本 PR 引入。

保持分开的四条追踪

  1. Grok 桌面正常、手机不亮:App health 投影已在原 owning PR73 撤掉引入点,见 fix: 会话列表工作态不再受 health 否决 #73 (comment) 。不能用 Pi 两端失败覆盖这一条。
  2. Codex 是否在工作:必须看 activity/health 与 listing/Level2,不是名字;尚无本轮现场采样。
  3. Codex 名字为 node:Name <- window_name 在服务端 PR6 parent 已存在;未改名、未回退 PR11 Agent-only 过滤。
  4. Pi 两端没有工作状态:仍属服务端/探测链单独待复现;没有用 App 改动宣称修复。

进入回退/部署前缺少的验收

需要同一 daemon、同一组仍运行的合成 Agent,核对原/新二进制摘要及各自源码 SHA,并实际发 listing/Level2;只保留 ref、计数、Provider、activity、session_name、health、Name 等状态/结构字段。ref 集合不得变空或丢仍运行的 Agent,也不得把 bash 加回来。

本轮未连接生产/验收 daemon,所以没有这份计数与 ref 对照。保持本 PR 未合并,不把接口反例、Cargo 通过或 App 投影通过替代它。未读取 pane 正文、真实 argv、凭据或真实对话。

@Florious95
Florious95 changed the base branch from main to pr/status-core-nodeprobe-863c September 7, 2026 05:17
@Florious95
Florious95 changed the base branch from pr/status-core-nodeprobe-863c to main September 7, 2026 16:17
@Florious95
Florious95 merged commit 5f1bba8 into main Sep 7, 2026
3 checks passed
@Florious95 Florious95 changed the title fix: Ctrl+C 回 shell 后不再把残留 Agent comm 当身份 fix: 恢复安全 nodeprobe 四轴状态与前台身份 Sep 7, 2026
@Florious95
Florious95 deleted the pr/nodeprobe-fg-comms branch September 8, 2026 00:40
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