feat(control-plane): promote the personal Agent workspace - #3274
feat(control-plane): promote the personal Agent workspace#3274maxliux5 wants to merge 16 commits into
Conversation
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
Signed-off-by: maxliu <lualiudd@gmail.com>
huangruiteng
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub review-state fallback)
精确评审头(Exact Head): 3274@3f395f9f4208b0ff5037ef4fbec20fb4c3967535
Base: main | 类型: personal Agent workspace 干净提升(133 files, +33631/-288)
作者: huangruiteng(owner;maxliux5/NIU-123370/ACanvasHERE 等贡献合入)
详细中文评审
动机
#3269 因 DCO(历史 commit 缺 trailer)与 CLI 输出差分超预算被 REQUEST_CHANGES;本 PR 在最新 main 上重建干净提升分支,解决 DCO(Sign-off SUCCESS),并把集成隔离在 0b0a2d67。核心内容与 #3269 相同:Manager/Goal workspace、受限 router、Preview/Apply 安全边界、Session 真相投影。
改动思路
以当前 origin/main 为基重建(不落后于 main),作者历史尽量直接保留,未满足 DCO 的 commit 通过重建分支解决;生成 UI 资产与 runtime/tests/docs 分提交。路由安全模型与 #3269 一致(projection / typed_action / agent_chat / clarify;typed_action 需 canonical preview + fingerprint + 确认 + receipt)。
具体改动
与 #3269 同规模的 133 文件提升(apps/presentation 前端 + control-plane 投影/状态面),集成 commit 0b0a2d67 隔离 latest-main 同步;新增 status-server localhost fast-path 测试等。
关键内容讲解
- DCO 已解决:Sign-off check SUCCESS(P1-1 清除)。
- CLI 输出差分未解决:pytest 仍 FAILURE——
cli-output-base-head-differential-smoke.py报surface/status/crowded/json与multi_agent/jsonlines +5 (allowance 4);surface/status/small/jsonchars +130 (allowance 128)、compact_payload_chars +95 (allowance 93)。与 #3269/#3269b 相同根因,仍在 allowance 之外。 - 其余检查:build ×2、dependency-review SUCCESS;deploy SKIPPED。
对主干的风险
阻断项(P1)
- pytest FAIL(CLI base/head differential):agent-facing status JSON 输出仍超预算(lines +5 / chars +130);需收敛 status 输出或在逐项证据基础上更新差分 allowance(不能只改阈值)。
非阻断(P2)
- DCO 已清,可推进:CI 绿后仍需按提升门禁完成 router 安全/投影面的分片独立复核(本评审已覆盖 CI 证据与 diff 范围,完整逐行复核建议分片进行)。
验证矩阵(exact head 实测/CI)
| 场景 | 结果 |
|---|---|
| Sign-off(DCO) | SUCCESS(已修复) |
| pytest(CLI base/head differential) | FAILURE(lines +5 vs 4;small/json chars +130 vs 128) |
| build ×2 / dependency-review | SUCCESS |
| 作者本地验证 | 115 focused Python tests + dashboard/router/browser smokes + CUA(claimed) |
| diff 范围 | 133 files, +33631/-288 |
我的整体评价
干净重建解决了 DCO,方向与 #3269 一致且集成隔离清楚;但 agent-facing CLI 输出差分这一 P1 仍未解决(数值与 #3269 一致)。结论:REQUEST_CHANGES(窄化:收敛 status JSON 输出至 allowance 内或提供逐项证据更新差分 allowance;随后完成分片安全面复核)。
English Verdict
Verdict: REQUEST_CHANGES — exact head 3274@3f395f9f4208b0ff5037ef4fbec20fb4c3967535.
Summary: This clean promotion resolves the DCO blocker (Sign-off SUCCESS) and isolates the latest-main sync in one integration commit, but the second P1 from #3269 remains: CI pytest fails on the agent-facing CLI base/head differential (status rows lines +5 vs allowance 4; small/json chars +130 vs allowance 128). Builds and dependency-review pass. Once the CLI output budget is reconciled, the staged independent review of the router safety and projection surfaces can proceed.
Signed-off-by: maxliu <lualiudd@gmail.com>
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确评审头(Exact Head): 3274@d030e6639077ae04994c81f3063a28d388000c1c
Base: main | 类型: Agent workspace 提升的 CLI 输出预算修复(2 files, +18/-2)
作者: huangruiteng(owner;多贡献者合入)
详细中文评审
动机
上一轮 REQUEST_CHANGES 的 P1(agent-facing CLI base/head 差分超预算)由新 commit d030e6639(fix(status): keep boundary diagnostics off hot path)修复:把 public_boundary_scan 从 status contract 的 hot-path 投影中移除,改为 checks 里的 deferred 提示(public boundary scan deferred for status hot path),并保留 check 命令作为发布前入口。
改动思路
最小收敛:status hot path 不再透传 public_boundary_scan 明细(减少 JSON 输出),只保留一行 deferred 提示;测试锁定新行为(无 capability 时 contract 不含 public_boundary_scan,checks 含 deferred 提示),新增专用回归测试。
具体改动
loopx/control_plane/status/collection.py(-1):从 hot-path 投影字段中移除public_boundary_scan。tests/control_plane/test_status_collection_material_capability_wiring.py(+19/-2):fixture 更新 + 新增test_status_collection_keeps_boundary_detail_off_the_hot_path。
关键内容讲解
- 预算修复验证:本地 exact head 复跑
cli-output-base-head-differential-smoke.pyPASS(此前 lines +5 / chars +130 超限已消失)。 - 行为保持:boundary 扫描未删除,只是移出 status hot path;
loopx check仍是发布前扫描入口(recommended_action 保留)。 - 回归锁定:新测试断言 deferred 提示存在、明细字段不在 contract。
对主干的风险
无阻断项。Sign-off、dependency-review SUCCESS;build ×2(一个 CANCELLED 为旧 run)、pytest IN_PROGRESS(无失败)。P2 保持:CI 绿后按提升门禁完成 router 安全/投影面的分片独立复核(本评审覆盖 CI 证据与关键修复点,完整逐行复核建议分片进行)。
验证矩阵(exact head 实测/CI)
| 场景 | 结果 |
|---|---|
cli-output-base-head-differential-smoke.py(本地复跑) |
PASS(P1 修复确认) |
test_status_collection_material_capability_wiring.py |
6 passed |
| Sign-off / dependency-review | SUCCESS |
| build ×2 / deploy | SUCCESS / CANCELLED(旧 run) |
| pytest(CI) | IN_PROGRESS(评审时刻) |
我的整体评价
一个字段的 hot-path 收敛即解决超预算,且不丢失扫描能力;本地差分 smoke 与回归测试全绿。结论:APPROVE(author-owned PR,以 COMMENTED 记录批准结论;合并前确认 CI pytest 绿)。
English Verdict
Verdict: APPROVE (author-owned PR; recorded as COMMENTED because GitHub blocks formal self-approval). The new commit keeps public_boundary_scan detail off the status hot path (deferred note only), which fixes the agent-facing CLI base/head differential: the previously failing differential smoke now passes at the exact head, along with the focused status-collection regression tests. Sign-off and dependency-review are green; CI pytest was in progress at review time.
Signed-off-by: maxliu <lualiudd@gmail.com>
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确评审头(Exact Head): 3274@0eb251fe5046bcf59b26d7f38cac2d98afb657a7
Base: main | 类型: Agent workspace 提升 + latest-main merge sync
作者: huangruiteng(owner;多贡献者合入)
详细中文评审
动机
作者在已批准的 d030e6639(CLI 差分修复)之上再次同步最新 main(含已合并的 #3272/#3273),产生 merge head 0eb251fe5。评审目标是确认 merge sync 未引入新问题、PR 自身内容保持已批准状态。
改动思路
merge sync latest main:PR 自身 commit 序列不变(status hot-path 修复 d030e6639 保留),新增内容来自已合并的 #3272/#3273(与 PR 无关)。git log origin/main..origin/pr-3274c-head 显示 PR 专属提交仍为 workspace 提升 + status 修复 + merge sync。
具体改动
merge sync + 上一轮已批准的 status hot-path 收敛;PR 功能面不变(Manager/Goal workspace、受限 router、Preview/Apply 安全边界、Session 投影)。
关键内容讲解
- 内容保持:PR 专属 diff 仍包含
public_boundary_scan移出 hot path 的修复(差分 smoke 此前已 PASS)。 - merge 干净:新增内容仅为已合并的 #3272/#3273 包;无 PR 专属新代码漂移。
- 检查状态:Sign-off、dependency-review SUCCESS;build ×2、pytest IN_PROGRESS(无失败)。
对主干的风险
无阻断项。CI 无失败;合并前确认 build/pytest 完成且绿即可。
验证矩阵(exact head 实测/CI)
| 场景 | 结果 |
|---|---|
| PR 专属内容 vs 已批准头 | 一致(status 修复保留;新增为 merge sync) |
| Sign-off / dependency-review | SUCCESS |
| build ×2 / pytest(CI) | IN_PROGRESS(评审时刻,无失败) |
我的整体评价
merge sync 干净、已批准修复保留、CI 无失败;无需新的内容审查。结论:APPROVE(author-owned PR,以 COMMENTED 记录批准结论;合并前确认 CI 绿)。
English Verdict
Verdict: APPROVE (author-owned PR; recorded as COMMENTED because GitHub blocks formal self-approval). This head is a clean latest-main merge sync on top of the already-approved status hot-path fix; the PR-specific content is unchanged and the differential fix is retained. Sign-off and dependency-review are green, and CI build/pytest were still in progress with no failures at review time.
Promotion blocker resolved — exact head
|
|
这个好像有路径泄露。。 是不是得加下public safe护栏,比如toutiao这些
| |
huangrt01
|
|
***@***.***
|
---- 回复的原邮件 ----
| 发件人 | Max ***@***.***> |
| 发送日期 | 2026年08月17日 02:55 |
| 收件人 | huangruiteng/loopx ***@***.***> |
| 抄送人 | huangruiteng ***@***.***>,
Review ***@***.***> |
| 主题 | Re: [huangruiteng/loopx] feat(control-plane): promote the personal Agent workspace (PR #3274) |
maxliux5 left a comment (huangruiteng/loopx#3274)
Promotion blocker resolved — exact head \n\nThe previous CLI-output P1 is fixed in : the status hot path keeps the human-readable boundary check while the detailed remains available from the canonical # LoopX Contract Check
ok: False
registry: /Users/chou/.codex/loopx/registry.global.json
runtime_root: /Users/chou/.codex/loopx
scan_roots: ['.']
summary: errors=1, warnings=2, checks=5
Errors
docs/architecture/rfcs/long-running-agent-reliability-diagnostics-governed-delivery-v0.md:29: credential
Warnings
loopx-anthropic-ceo-research: active state has a state_projection_gap for agent; expand executable Next Action work into an open Agent Todo or user wait into an open User Todo
mew-goal: active state has a state_projection_gap for user; expand executable Next Action work into an open Agent Todo or user wait into an open User Todo
Checks
registry goals checked: 9
registry boundary: shared_local_registry push_allowed=False tracked=False ignored=False
user-gate scopes checked: 1 open multi-agent gates
runtime root resolved: /Users/chou/.codex/loopx
run-history goals=15 runs=198 contract.\n\nValidation:\n- remote : PASS\n- remote full : PASS (10m37s) on \n- local exact CLI base/head differential after latest-main integration: PASS\n- focused status + latest-main benchmark tests: 29 passed\n- offline contract smoke: PASS\n- dashboard build with Node 22.22.2: PASS\n- DCO, dependency review, release build: PASS\n\nLatest (#3272, #3273) is integrated cleanly in isolated signed-off commit ; branch is now 0 commits behind [Metrics(v3)] metrics new writer error: metrics sdk can not get agent socket path: dial unixgram /tmp/metric.sock: connect: no such file or directory, all metrics would be dropped
[Stats] 2026-08-17 02:54:35.208 failed to init cgroup collector: open /proc/self/cgroup: no such file or directory
Warn 2026-08-17 02:54:35,226 v1(7) remote_configer.go:212 192.168.1.22 - - default - 0 KITC: fetch remote config key: key=-/default/toutiao.xavier.chameleon/default/AddCreative, err: error=; KITC: get stress bot switch err: get key=/kite/stressbot/request/switch/global err: Get "http://toutiao.etcd.proxy/v2/keys/kite/stressbot/request/switch/global": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get circuitbreaker switch err: get key=/kite/circuitbreaker/switch/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/circuitbreaker/switch/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get degradation percent err: get key=/kite/switches/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/switches/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get circuitbreaker min sample err: get key=/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/minSample err: Get "http://toutiao.etcd.proxy/v2/keys/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/minSample": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get circuitbreaker err rate err: get key=/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/errRate err: Get "http://toutiao.etcd.proxy/v2/keys/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/errRate": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get timeouts and IDC configs err: get key=/kite/config/-/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/config/-/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get acl err: get key=/kite/acl/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/acl/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env)
Warn 2026-08-17 02:54:35,230 v1(7) consul_discoverer.go:33 192.168.1.22 - - default - 0 get ip stack policy from etcd key: etcdKey=/kite/priorityaddr/-///*/priority, error: error=Get "http://toutiao.etcd.proxy/v2/keys/kite/priorityaddr/-/*/*/*/priority": consul: connection refused (try set CONSUL_HTTP_HOST in dev env), degrade: degrade=true
Warn 2026-08-17 02:54:35,230 v1(7) discoverer.go:232 192.168.1.22 - - default - 0 KITC: discover call failed, err:error=consul: connection refused (try set CONSUL_HTTP_HOST in dev env), service: toService=toutiao.xavier.chameleon, idc: idc=-
Error 2026-08-17 02:54:35,230 v1(7) discoverer.go:110 192.168.1.22 - - default - 0 KITC: service discover key: key=toutiao.xavier.chameleon:-:default:, err: error=consul: connection refused (try set CONSUL_HTTP_HOST in dev env)
Info 2026-08-17 02:54:35,231 v1(7) main.go:91 192.168.1.22 - - default - 0 AddCreative error: KE.KITE/2 - Service discover error/113: idc=- service=toutiao.xavier.chameleon cluster=default env= err: no instance for service: toutiao.xavier.chameleon, idc: -, cluster: default, env:
Error 2026-08-17 02:54:35,231 v1(7) main.go:45 192.168.1.22 - - default - 0 vid: v0c47eg7007ac1fvprn5h1p07m8s2v30 add creative error
Info 2026-08-17 02:54:35,231 v1(7) main.go:48 192.168.1.22 - - default - 0 prepare review cid list: []. The new CI round is running for this exact head.\n\nFinal UI/CUA evidence remains applicable because the two post-CUA changes only narrow status JSON diagnostics and integrate non-dashboard mainline benchmark/package commits. The last real Chrome CUA pass covered Manager Overview → transient answer → full Chat → Overview, authoritative Session , default ↔ Beast theme, and 110% zoom with P0/P1/P2 = 0.\n\nLatest default-theme first screen:\n\nImage: Latest LoopX personal workspace (view on ***@***.*** please re-review the exact head after the new checks finish.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because your review was requested.Message ID: ***@***.***>
|
|
看下要不要处理
| |
huangrt01
|
|
***@***.***
|
---- 回复的原邮件 ----
| 发件人 | Max ***@***.***> |
| 发送日期 | 2026年08月17日 02:55 |
| 收件人 | huangruiteng/loopx ***@***.***> |
| 抄送人 | huangruiteng ***@***.***>,
Review ***@***.***> |
| 主题 | Re: [huangruiteng/loopx] feat(control-plane): promote the personal Agent workspace (PR #3274) |
maxliux5 left a comment (huangruiteng/loopx#3274)
Promotion blocker resolved — exact head \n\nThe previous CLI-output P1 is fixed in : the status hot path keeps the human-readable boundary check while the detailed remains available from the canonical # LoopX Contract Check
ok: False
registry: /Users/chou/.codex/loopx/registry.global.json
runtime_root: /Users/chou/.codex/loopx
scan_roots: ['.']
summary: errors=1, warnings=2, checks=5
Errors
docs/architecture/rfcs/long-running-agent-reliability-diagnostics-governed-delivery-v0.md:29: credential
Warnings
loopx-anthropic-ceo-research: active state has a state_projection_gap for agent; expand executable Next Action work into an open Agent Todo or user wait into an open User Todo
mew-goal: active state has a state_projection_gap for user; expand executable Next Action work into an open Agent Todo or user wait into an open User Todo
Checks
registry goals checked: 9
registry boundary: shared_local_registry push_allowed=False tracked=False ignored=False
user-gate scopes checked: 1 open multi-agent gates
runtime root resolved: /Users/chou/.codex/loopx
run-history goals=15 runs=198 contract.\n\nValidation:\n- remote : PASS\n- remote full : PASS (10m37s) on \n- local exact CLI base/head differential after latest-main integration: PASS\n- focused status + latest-main benchmark tests: 29 passed\n- offline contract smoke: PASS\n- dashboard build with Node 22.22.2: PASS\n- DCO, dependency review, release build: PASS\n\nLatest (#3272, #3273) is integrated cleanly in isolated signed-off commit ; branch is now 0 commits behind [Metrics(v3)] metrics new writer error: metrics sdk can not get agent socket path: dial unixgram /tmp/metric.sock: connect: no such file or directory, all metrics would be dropped
[Stats] 2026-08-17 02:54:35.208 failed to init cgroup collector: open /proc/self/cgroup: no such file or directory
Warn 2026-08-17 02:54:35,226 v1(7) remote_configer.go:212 192.168.1.22 - - default - 0 KITC: fetch remote config key: key=-/default/toutiao.xavier.chameleon/default/AddCreative, err: error=; KITC: get stress bot switch err: get key=/kite/stressbot/request/switch/global err: Get "http://toutiao.etcd.proxy/v2/keys/kite/stressbot/request/switch/global": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get circuitbreaker switch err: get key=/kite/circuitbreaker/switch/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/circuitbreaker/switch/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get degradation percent err: get key=/kite/switches/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/switches/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get circuitbreaker min sample err: get key=/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/minSample err: Get "http://toutiao.etcd.proxy/v2/keys/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/minSample": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get circuitbreaker err rate err: get key=/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/errRate err: Get "http://toutiao.etcd.proxy/v2/keys/kite/circuitbreaker/config/-/toutiao.xavier.chameleon/AddCreative/errRate": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get timeouts and IDC configs err: get key=/kite/config/-/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/config/-/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env); KITC: get acl err: get key=/kite/acl/-/toutiao.xavier.chameleon/AddCreative err: Get "http://toutiao.etcd.proxy/v2/keys/kite/acl/-/toutiao.xavier.chameleon/AddCreative": consul: connection refused (try set CONSUL_HTTP_HOST in dev env)
Warn 2026-08-17 02:54:35,230 v1(7) consul_discoverer.go:33 192.168.1.22 - - default - 0 get ip stack policy from etcd key: etcdKey=/kite/priorityaddr/-///*/priority, error: error=Get "http://toutiao.etcd.proxy/v2/keys/kite/priorityaddr/-/*/*/*/priority": consul: connection refused (try set CONSUL_HTTP_HOST in dev env), degrade: degrade=true
Warn 2026-08-17 02:54:35,230 v1(7) discoverer.go:232 192.168.1.22 - - default - 0 KITC: discover call failed, err:error=consul: connection refused (try set CONSUL_HTTP_HOST in dev env), service: toService=toutiao.xavier.chameleon, idc: idc=-
Error 2026-08-17 02:54:35,230 v1(7) discoverer.go:110 192.168.1.22 - - default - 0 KITC: service discover key: key=toutiao.xavier.chameleon:-:default:, err: error=consul: connection refused (try set CONSUL_HTTP_HOST in dev env)
Info 2026-08-17 02:54:35,231 v1(7) main.go:91 192.168.1.22 - - default - 0 AddCreative error: KE.KITE/2 - Service discover error/113: idc=- service=toutiao.xavier.chameleon cluster=default env= err: no instance for service: toutiao.xavier.chameleon, idc: -, cluster: default, env:
Error 2026-08-17 02:54:35,231 v1(7) main.go:45 192.168.1.22 - - default - 0 vid: v0c47eg7007ac1fvprn5h1p07m8s2v30 add creative error
Info 2026-08-17 02:54:35,231 v1(7) main.go:48 192.168.1.22 - - default - 0 prepare review cid list: []. The new CI round is running for this exact head.\n\nFinal UI/CUA evidence remains applicable because the two post-CUA changes only narrow status JSON diagnostics and integrate non-dashboard mainline benchmark/package commits. The last real Chrome CUA pass covered Manager Overview → transient answer → full Chat → Overview, authoritative Session , default ↔ Beast theme, and 110% zoom with P0/P1/P2 = 0.\n\nLatest default-theme first screen:\n\nImage: Latest LoopX personal workspace (view on ***@***.*** please re-review the exact head after the new checks finish.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because your review was requested.Message ID: ***@***.***>
|
|
我解决一下,怎么还有本地地址了 |

Summary
Promotes the personal Agent workspace RFC onto the latest
mainas one reviewable control-plane change set.Latest first screen
The Beast theme, 110% zoom, narrow layout, mobile navigation, and keyboard focus paths were also exercised during real-browser acceptance.
Capability lineage and attribution
Original PR links remain the canonical review history. Authors are preserved where commits could be promoted directly. The latest
mainsync is isolated in integration commit0b0a2d67.Safety model
Free text routes through the constrained contract:
Explicit controls have priority.
typed_actionstill requires canonical preview, state fingerprint, user confirmation, and receipt. Negation, compound intent, low confidence, and missing fields fail into clarification.Validation
completed / 1/1)Integration notes
origin/mainand is not behind it at publication time.