agent-Specialization/.playwright-mcp/page-2026-04-27T11-47-37-151Z.yml
JOJO e2bbd767f7 feat(host-security+ui): unify host execution/approval behavior, runtime notices, and approval overlay UX
This commit consolidates a large set of host-mode security and UX fixes across backend and frontend.

Security / execution model:
- Make permission/execution mode switches apply immediately (no deferred pending-only behavior).
- Keep runtime mode change notices durable and visible via user-message guidance path.
- Add explicit runtime message source taxonomy support and persistence:
  user / presend / guidance / notify / sub_agent / background_command.
- Ensure guidance/notify insertion is batched per tool-cycle so mid-run inserts are committed together.
- Separate notify from guidance semantics for mode-change notices.
- Add direct-mode auto-fallback handling visibility on frontend.

Approval and command gating:
- Align run_command approval pre-check logic with docker behavior for approval/auto_approval modes in host execution paths.
- Keep approval retry flow and final-result semantics intact when permission errors trigger approval.
- Externalize forbidden command keyword list into JSON config:
  config/forbidden_commands.json.
- Update forbidden command rejection message to user-facing wording:
  用户不允许执行包含“... ”的指令.

Prompt/runtime guidance:
- Refine execution-mode runtime rule text to avoid endless workaround loops:
  one safe alternative first, then request switching to direct mode when truly required.

Chat rendering / message UX:
- Prevent injected guidance/notify user-messages from incorrectly triggering assistant work header/timer chain.
- Restore correct visibility after history reload while preserving runtime-source behavior.
- Update user-header icon/label rendering by message source:
  - guidance -> 引导 + navigation icon
  - notify/sub_agent/background_command -> 通知 + bell icon
  - user/presend -> keep normal user header.
- Add new icons: static/icons/navigation.svg, static/icons/bell.svg.

Approval panel UX:
- Convert desktop approval panel from layout-compress sidebar to overlay + blur sheet.
- Fix panel transition behavior (remove unintended vertical motion; use dedicated desktop overlay transition).
- Improve approval result display:
  - decision and reason split lines,
  - green/red status styling,
  - multiline reason rendering,
  - auto-collapse delay adjusted to 3s.

Execution mode TTL feedback:
- When direct mode auto-expires to sandbox, frontend menu state is updated from status snapshot.
- Show non-auto-dismiss warning toast to explicitly notify auto-fallback.

Misc consistency updates:
- Execution mode label text cleanup in composer.
- Runtime notice wording normalization (权限模式修改为..., 执行环境修改为...).

Build/test notes:
- Frontend rebuilt after UI changes.
- Smoke tests passed for server refactor path.
2026-05-12 19:16:38 +08:00

222 lines
10 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- generic [active] [ref=e1]:
- button "开启读屏标签" [ref=e2]
- generic: 读屏标签已关闭
- generic [ref=e104]:
- banner [ref=e107]:
- generic [ref=e109]:
- generic [ref=e113]:
- textbox "搜索你感兴趣的内容" [ref=e115]: 美食教程
- button "搜索" [ref=e117] [cursor=pointer]:
- img [ref=e118]
- generic [ref=e120]: 搜索
- generic [ref=e124]:
- generic [ref=e129] [cursor=pointer]:
- img [ref=e131]:
- img [ref=e132]
- paragraph [ref=e134]: 充钻石
- generic [ref=e136]:
- link "客户端" [ref=e139] [cursor=pointer]:
- /url: https://www.douyin.com/download/pc/obj/douyin-pc-web/douyin-pc-client/7044145585217083655/releases/344418764/7.7.0/darwin-universal/douyin-v7.7.0-darwin-universal.dmg
- generic [ref=e140]:
- generic [ref=e141]:
- img [ref=e143]:
- img [ref=e144]
- paragraph [ref=e147]: 客户端
- img [ref=e149]
- generic [ref=e155]:
- img [ref=e156]:
- img [ref=e157]
- generic [ref=e160]:
- img [ref=e161] [cursor=pointer]
- img [ref=e165]
- link "下载电脑客户端" [ref=e167] [cursor=pointer]:
- /url: https://www.douyin.com/download/pc/obj/douyin-pc-web/douyin-pc-client/7044145585217083655/releases/344418764/7.7.0/darwin-universal/douyin-v7.7.0-darwin-universal.dmg
- img [ref=e168]
- text: 下载电脑客户端
- generic [ref=e173] [cursor=pointer]:
- img [ref=e175]:
- img [ref=e176]
- generic [ref=e178]: 壁纸
- list [ref=e179]:
- listitem [ref=e181]:
- generic [ref=e184] [cursor=pointer]:
- img [ref=e186]:
- img [ref=e187]
- paragraph [ref=e190]: 通知
- list [ref=e191]:
- listitem [ref=e193]:
- generic [ref=e196] [cursor=pointer]:
- img [ref=e198]:
- img [ref=e199]
- paragraph [ref=e203]: 私信
- generic [ref=e207] [cursor=pointer]:
- img [ref=e209]:
- img [ref=e210]
- paragraph [ref=e212]: 投稿
- link [ref=e215] [cursor=pointer]:
- /url: //www.douyin.com/user/self
- listitem [ref=e216]
- img [ref=e2199] [cursor=pointer]
- generic [ref=e2204]:
- generic [ref=e2205]:
- generic [ref=e2208]:
- generic [ref=e2209] [cursor=pointer]: 综合
- generic [ref=e2210] [cursor=pointer]: 视频
- generic [ref=e2211] [cursor=pointer]: 用户
- generic [ref=e2212] [cursor=pointer]: 直播
- generic [ref=e2213] [cursor=pointer]:
- img [ref=e2214]
- generic [ref=e2220]: 多列
- generic [ref=e2221] [cursor=pointer]:
- img [ref=e2222]
- generic [ref=e2225]: 单列
- generic [ref=e2227] [cursor=pointer]:
- text: 筛选
- img [ref=e2228]
- generic [ref=e2230]:
- text: 为你找到以下结果问问AI智能总结内容
- generic [ref=e2231] [cursor=pointer]:
- img [ref=e2232]
- generic [ref=e2235]: 问问AI
- generic [ref=e2239]:
- generic [ref=e2243] [cursor=pointer]:
- generic [ref=e2245]:
- img [ref=e2249]
- generic [ref=e2251]:
- generic [ref=e2252]: 01:04
- generic [ref=e2253]:
- img [ref=e2254]
- generic [ref=e2256]: 82.4万
- generic [ref=e2258]:
- generic [ref=e2259]: "现在买菜回家10分钟就能吃上。懒人一锅端「肥牛虾滑粉丝煲」#美食 #宵夜 #懒人快手菜"
- generic [ref=e2260]:
- generic [ref=e2261]: "@日食记"
- generic [ref=e2262]: · 1月20日
- generic [ref=e2266] [cursor=pointer]:
- generic [ref=e2268]:
- img [ref=e2272]
- generic [ref=e2274]:
- generic [ref=e2275]: 00:20
- generic [ref=e2276]:
- img [ref=e2277]
- generic [ref=e2279]: 179.8万
- generic [ref=e2281]:
- generic [ref=e2282]: "滑滑嫩嫩巨下饭 #家常菜 #美食 #下饭菜 #滑蛋鸡腿饭 #滑蛋饭"
- generic [ref=e2283]:
- generic [ref=e2284]: "@小陈同学~"
- generic [ref=e2285]: · 2025年12月15日
- generic [ref=e2289] [cursor=pointer]:
- generic [ref=e2291]:
- img [ref=e2295]
- generic [ref=e2297]:
- generic [ref=e2298]: 00:32
- generic [ref=e2299]:
- img [ref=e2300]
- generic [ref=e2302]: 9.6万
- generic [ref=e2304]:
- generic [ref=e2305]: "一口爆浆❗️芝士培根虾滑卷🔥外焦里嫩香晕了 #美食自己做 烤得焦香焦香的培根卷着Q弹鲜美的虾滑一口下去还有浓郁的芝士爆浆吃一口就被惊艳的味道😋口感太绝了好吃到停不下来 #虾滑 #芝士培根虾滑卷 #芝士就是力量 #空气炸锅美食"
- generic [ref=e2306]:
- generic [ref=e2307]: "@美滋美味chill"
- generic [ref=e2308]: · 2025年8月4日
- generic [ref=e2312] [cursor=pointer]:
- generic [ref=e2314]:
- img [ref=e2318]
- generic [ref=e2320]:
- generic [ref=e2321]: 00:37
- generic [ref=e2322]:
- img [ref=e2323]
- generic [ref=e2325]: 177.4万
- generic [ref=e2327]:
- generic [ref=e2328]: "神仙吃法🔥土豆虾滑卷‼焦香的土豆裹着Q弹的虾滑香香辣辣好吃哭 #美食教程 #虾滑的做法 #烤箱美食 #土豆虾滑卷"
- generic [ref=e2329]:
- generic [ref=e2330]: "@土豆超爱吃"
- generic [ref=e2331]: · 2025年3月24日
- generic [ref=e2335] [cursor=pointer]:
- generic [ref=e2337]:
- img [ref=e2341]
- generic [ref=e2343]:
- generic [ref=e2344]: 00:50
- generic [ref=e2345]:
- img [ref=e2346]
- generic [ref=e2348]: 5.6万
- generic [ref=e2350]:
- generic [ref=e2351]: "下饭一绝的台式三杯鸡!#美食教程 #三杯鸡 #下饭菜"
- generic [ref=e2352]:
- generic [ref=e2353]: "@干辣椒段儿"
- generic [ref=e2354]: · 4月4日
- generic [ref=e2358] [cursor=pointer]:
- generic [ref=e2360]:
- img [ref=e2364]
- generic [ref=e2366]:
- generic [ref=e2367]: 00:38
- generic [ref=e2368]:
- img [ref=e2369]
- generic [ref=e2371]: 44.2万
- generic [ref=e2373]:
- generic [ref=e2374]: "蜂蜜柠檬脆皮虾!香甜酥脆巨好吃!#晒出你们觉得很香的美食 #美食教程 #炸虾 #蜂蜜柠檬脆皮虾"
- generic [ref=e2375]:
- generic [ref=e2376]: "@吃货组大圆"
- generic [ref=e2377]: · 3月4日
- generic [ref=e2381] [cursor=pointer]:
- generic [ref=e2383]:
- img [ref=e2387]
- generic [ref=e2389]:
- generic [ref=e2390]: 00:44
- generic [ref=e2391]:
- img [ref=e2392]
- generic [ref=e2394]: 22.0万
- generic [ref=e2396]:
- generic [ref=e2397]: "一周吃八次都不腻的嫩鸡肉滑蛋盖饭 #盖饭#滑蛋饭 #滑蛋鸡肉饭"
- generic [ref=e2398]:
- generic [ref=e2399]: "@桃子的早餐"
- generic [ref=e2400]: · 2025年11月5日
- generic [ref=e2403]:
- paragraph [ref=e2404]: 相关搜索
- generic [ref=e2405]:
- generic [ref=e2406] [cursor=pointer]:
- img [ref=e2407]
- paragraph [ref=e2410]: 美食教程博主
- generic [ref=e2411] [cursor=pointer]:
- img [ref=e2412]
- paragraph [ref=e2415]: 美食教程家常菜
- generic [ref=e2416] [cursor=pointer]:
- img [ref=e2417]
- paragraph [ref=e2420]: 美食
- generic [ref=e2421] [cursor=pointer]:
- img [ref=e2422]
- paragraph [ref=e2425]: 做饭教程
- generic [ref=e2426] [cursor=pointer]:
- img [ref=e2427]
- paragraph [ref=e2430]: 可乐鸡翅
- generic [ref=e2431] [cursor=pointer]:
- img [ref=e2432]
- paragraph [ref=e2435]: 美食教程简单易学
- generic [ref=e2436] [cursor=pointer]:
- img [ref=e2437]
- paragraph [ref=e2440]: 家常菜
- generic [ref=e2444] [cursor=pointer]:
- generic [ref=e2446]:
- img [ref=e2450]
- generic [ref=e2452]:
- generic [ref=e2453]: 00:43
- generic [ref=e2454]:
- img [ref=e2455]
- generic [ref=e2457]: 33.0万
- generic [ref=e2459]:
- generic [ref=e2460]: "老吃家狂喜!「爆汁响铃卷」 #一人食 #爆汁响铃卷 #厨房新手的一人食 #省饭课代表 #好好吃饭大赛"
- generic [ref=e2461]:
- generic [ref=e2462]: "@°两粒盐。"
- generic [ref=e2463]: · 2025年11月27日
- generic [ref=e2467] [cursor=pointer]:
- generic [ref=e2469]:
- img [ref=e2473]
- generic [ref=e2475]:
- generic [ref=e2476]: 01:00
- generic [ref=e2477]:
- img [ref=e2478]
- generic [ref=e2480]: 406.4万
- generic [ref=e2482]:
- generic [ref=e2483]: "剪刀剪一剪,青椒变酿虾。#你的秋日美食正在派送中#好好吃饭大赛 #家常菜 #懒人快手菜"
- generic [ref=e2484]:
- generic [ref=e2485]: "@日食记"
- generic [ref=e2486]: · 2025年10月27日