agent-Specialization/.playwright-mcp/page-2026-04-27T11-47-52-113Z.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

363 lines
17 KiB
YAML
Raw Permalink 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日
- generic [ref=e2492] [cursor=pointer]:
- generic [ref=e2494]:
- img [ref=e2498]
- generic [ref=e2500]:
- generic [ref=e2501]: 00:17
- generic [ref=e2502]:
- img [ref=e2503]
- generic [ref=e2505]: 3.0万
- generic [ref=e2507]:
- generic [ref=e2508]: "香香辣辣的,真的巨下饭! #美食 #香辣肉丝 #家常菜 #下饭菜 #抖音美食推荐官"
- generic [ref=e2509]:
- generic [ref=e2510]: "@小陈同学~"
- generic [ref=e2511]: · 2025年12月30日
- generic [ref=e2515] [cursor=pointer]:
- generic [ref=e2517]:
- img [ref=e2521]
- generic [ref=e2523]:
- generic [ref=e2524]: 00:56
- generic [ref=e2525]:
- img [ref=e2526]
- generic [ref=e2528]: 53.8万
- generic [ref=e2530]:
- generic [ref=e2531]: "看惯了网上高贵的生活 来看看普通人的晚餐 天冷了 做一锅热腾腾的肉末豆腐煲有多幸福!#肉末豆腐煲 #青年创作者成长计划 #满级吃商指南 #男人会做饭竞争对手少一半 #好好吃饭"
- generic [ref=e2532]:
- generic [ref=e2533]: "@99的晚餐Vlog"
- generic [ref=e2534]: · 1月25日
- generic [ref=e2538] [cursor=pointer]:
- generic [ref=e2540]:
- img [ref=e2544]
- generic [ref=e2546]:
- generic [ref=e2547]: 00:21
- generic [ref=e2548]:
- img [ref=e2549]
- generic [ref=e2551]: "2064"
- generic [ref=e2553]:
- generic [ref=e2554]: "女人会做饭生活更浪漫,一道简单的家常菜,能不能勾起你的食欲呢#家常菜#美食 #下饭菜 #干锅花菜 #抖音生活观察计划"
- generic [ref=e2555]:
- generic [ref=e2556]: "@鱼妈爱做菜"
- generic [ref=e2557]: · 2025年12月27日
- generic [ref=e2561] [cursor=pointer]:
- generic [ref=e2563]:
- img [ref=e2567]
- generic [ref=e2569]:
- generic [ref=e2570]: 01:37
- generic [ref=e2571]:
- img [ref=e2572]
- generic [ref=e2574]: 8.4万
- generic [ref=e2576]:
- generic [ref=e2577]: "终于复刻了超火🔥的脆烤土豆🥔沙拉‼️味道真的太绝了‼️ #脆烤土豆沙拉 #土豆沙拉 #土豆沙拉做法 #节后甩肉大作战 #早午餐"
- generic [ref=e2578]:
- generic [ref=e2579]: "@JC的料理日记"
- generic [ref=e2580]: · 3月12日
- generic [ref=e2584] [cursor=pointer]:
- generic [ref=e2586]:
- img [ref=e2590]
- generic [ref=e2592]:
- generic [ref=e2593]: 02:12
- generic [ref=e2594]:
- img [ref=e2595]
- generic [ref=e2597]: 16.8万
- generic [ref=e2599]:
- generic [ref=e2600]: 这是我家孩子最爱吃的一道家常菜,每个星期都要做好几回,鲜香嫩滑,酸甜开胃,拌上米饭每次都能吃好几碗#番茄滑肉
- generic [ref=e2601]:
- generic [ref=e2602]: "@小陈爱美食"
- generic [ref=e2603]: · 2024年10月9日
- generic [ref=e2607] [cursor=pointer]:
- generic [ref=e2609]:
- img [ref=e2613]
- generic [ref=e2615]:
- generic [ref=e2616]: 00:41
- generic [ref=e2617]:
- img [ref=e2618]
- generic [ref=e2620]: 8.9万
- generic [ref=e2622]:
- generic [ref=e2623]: "0失败‼可乐鸡翅年糕🔥浓郁脱骨👉巨开胃下饭 #创作者中心 #创作灵感 1分钟学会这道👉鲜香浓郁的鸡翅简单又美味老人小孩都爱吃~ 无法拒绝的焦香甜糯~ #可乐鸡翅 #做菜我是认真的 #我的美食日记"
- generic [ref=e2624]:
- generic [ref=e2625]: "@美滋美味chill"
- generic [ref=e2626]: · 2025年9月22日
- generic [ref=e2630] [cursor=pointer]:
- generic [ref=e2632]:
- img [ref=e2636]
- generic [ref=e2638]:
- generic [ref=e2639]: 01:24
- generic [ref=e2640]:
- img [ref=e2641]
- generic [ref=e2643]: 40.1万
- generic [ref=e2645]:
- generic [ref=e2646]: "为什么它叫公瑾爆蛋?但吃起来绝对好吃!绝对是鸡蛋下饭的天花板 #公瑾爆蛋#糖醋荷包蛋#复刻“公瑾爆蛋”#留学生#家常菜"
- generic [ref=e2647]:
- generic [ref=e2648]: "@夏叔厨房"
- generic [ref=e2649]: · 3月17日
- generic [ref=e2653] [cursor=pointer]:
- generic [ref=e2655]:
- img [ref=e2659]
- generic [ref=e2661]:
- generic [ref=e2662]: 00:34
- generic [ref=e2663]:
- img [ref=e2664]
- generic [ref=e2666]: 5.7万
- generic [ref=e2668]:
- generic [ref=e2669]: "软嫩多汁,比肉还香#抖音美食推荐官 #抖音美食创作者 #美食教程 #家常菜 #香煎豆腐"
- generic [ref=e2670]:
- generic [ref=e2671]: "@小西吃饭啦"
- generic [ref=e2672]: · 3月7日
- generic [ref=e2676] [cursor=pointer]:
- generic [ref=e2678]:
- img [ref=e2682]
- generic [ref=e2684]:
- generic [ref=e2685]: 00:16
- generic [ref=e2686]:
- img [ref=e2687]
- generic [ref=e2689]: 37.2万
- generic [ref=e2691]:
- generic [ref=e2692]: "五分钟就能搞定的下饭菜,简直太香了! #葱烧肥牛 #下饭菜 #家常菜 #抖音美食推荐官 #抖音美食创作人"
- generic [ref=e2693]:
- generic [ref=e2694]: "@小陈同学~"
- generic [ref=e2695]: · 3月25日
- generic [ref=e2698]:
- paragraph [ref=e2699]: 相关搜索
- generic [ref=e2700]:
- generic [ref=e2701] [cursor=pointer]:
- img [ref=e2702]
- paragraph [ref=e2705]: 美食教程博主
- generic [ref=e2706] [cursor=pointer]:
- img [ref=e2707]
- paragraph [ref=e2710]: 美食教程家常菜
- generic [ref=e2711] [cursor=pointer]:
- img [ref=e2712]
- paragraph [ref=e2715]: 美食
- generic [ref=e2716] [cursor=pointer]:
- img [ref=e2717]
- paragraph [ref=e2720]: 做饭教程
- generic [ref=e2721] [cursor=pointer]:
- img [ref=e2722]
- paragraph [ref=e2725]: 可乐鸡翅
- generic [ref=e2726] [cursor=pointer]:
- img [ref=e2727]
- paragraph [ref=e2730]: 美食教程简单易学
- generic [ref=e2731] [cursor=pointer]:
- img [ref=e2732]
- paragraph [ref=e2735]: 家常菜