agent-Specialization/.playwright-mcp/page-2026-04-27T12-27-14-418Z.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

209 lines
12 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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=e4]:
- generic [ref=e6]:
- link [ref=e7] [cursor=pointer]:
- /url: //www.douyin.com/jingxuan
- generic [ref=e13]:
- generic [ref=e15]:
- link "精选" [ref=e19] [cursor=pointer]:
- /url: https://www.douyin.com/jingxuan?from_nav=1
- generic [ref=e22]: 精选
- link "推荐" [ref=e26] [cursor=pointer]:
- /url: https://www.douyin.com/?recommend=1&from_nav=1
- generic [ref=e29]: 推荐
- link "搜索" [ref=e33] [cursor=pointer]:
- /url: https://www.douyin.com/aisearch?from_nav=1
- generic [ref=e36]: 搜索
- link "关注" [ref=e40] [cursor=pointer]:
- /url: https://www.douyin.com/follow?from_nav=1
- generic [ref=e43]: 关注
- link "朋友" [ref=e47] [cursor=pointer]:
- /url: https://www.douyin.com/friend?from_nav=1
- generic [ref=e50]: 朋友
- link "我的" [ref=e54] [cursor=pointer]:
- /url: https://www.douyin.com/user/self?from_nav=1
- generic [ref=e57]: 我的
- link "直播" [ref=e62] [cursor=pointer]:
- /url: https://live.douyin.com/?from_nav=1
- generic [ref=e65]: 直播
- link "放映厅" [ref=e69] [cursor=pointer]:
- /url: https://www.douyin.com/vs?from_nav=1
- generic [ref=e72]: 放映厅
- link "短剧" [ref=e76] [cursor=pointer]:
- /url: https://www.douyin.com/series?from_nav=1
- generic [ref=e79]: 短剧
- generic [ref=e81]:
- img [ref=e84] [cursor=pointer]
- img [ref=e88] [cursor=pointer]
- img [ref=e92] [cursor=pointer]
- generic [ref=e94]:
- banner [ref=e97]:
- generic [ref=e99]:
- generic [ref=e103]:
- textbox "搜索你感兴趣的内容" [ref=e105]
- button "搜索" [ref=e107] [cursor=pointer]:
- img [ref=e108]
- generic [ref=e110]: 搜索
- generic [ref=e114]:
- generic [ref=e116] [cursor=pointer]:
- img [ref=e118]:
- img [ref=e119]
- paragraph [ref=e121]: 充钻石
- link "客户端" [ref=e126] [cursor=pointer]:
- /url: ""
- generic [ref=e128]:
- img [ref=e130]:
- img [ref=e131]
- paragraph [ref=e134]: 客户端
- generic [ref=e136] [cursor=pointer]:
- img [ref=e138]:
- img [ref=e139]
- paragraph [ref=e141]: 壁纸
- list [ref=e142]:
- generic [ref=e145] [cursor=pointer]:
- img [ref=e147]:
- img [ref=e148]
- paragraph [ref=e151]: 通知
- generic [ref=e155] [cursor=pointer]:
- img [ref=e157]:
- img [ref=e158]
- paragraph [ref=e160]: 投稿
- link [ref=e163] [cursor=pointer]:
- /url: //www.douyin.com/user/self
- listitem [ref=e164]
- generic [ref=e166]:
- tablist [ref=e167]:
- tab "全部" [selected] [ref=e168]
- tab "公开课" [ref=e169] [cursor=pointer]
- tab "游戏" [ref=e170] [cursor=pointer]
- tab "二次元" [ref=e171] [cursor=pointer]
- tab "音乐" [ref=e172] [cursor=pointer]
- tab "影视" [ref=e173] [cursor=pointer]
- tab "美食" [ref=e174] [cursor=pointer]
- tab "知识" [ref=e175] [cursor=pointer]
- tab "小剧场" [ref=e176] [cursor=pointer]
- tab "生活vlog" [ref=e177] [cursor=pointer]
- tab "体育" [ref=e178] [cursor=pointer]
- tab "旅行" [ref=e179] [cursor=pointer]
- tab "亲子" [ref=e180] [cursor=pointer]
- tab "动物" [ref=e181] [cursor=pointer]
- tab "三农" [ref=e182] [cursor=pointer]
- tab "汽车" [ref=e183] [cursor=pointer]
- tab "美妆穿搭" [ref=e184] [cursor=pointer]
- tabpanel "全部" [ref=e186]:
- generic [ref=e192]:
- generic [ref=e195] [cursor=pointer]:
- generic [ref=e197]:
- 'img "美国最便宜盒饭VS最贵盒饭一盒4斤和一份500块谁更离谱 #美国美食#美食#国外美食#美国#盒饭" [ref=e199]'
- generic [ref=e202]:
- generic [ref=e203]: 10:19
- generic [ref=e204]:
- img [ref=e205]:
- img [ref=e206]
- generic [ref=e208]: 24.4万
- generic [ref=e210]:
- generic [ref=e211]: "美国最便宜盒饭VS最贵盒饭一盒4斤和一份500块谁更离谱 #美国美食#美食#国外美食#美国#盒饭"
- generic [ref=e213]:
- generic [ref=e214]: "@子文又饿了"
- generic [ref=e215]: · 2月24日
- generic [ref=e218] [cursor=pointer]:
- generic [ref=e220]:
- 'img "谁是系列巅峰?深度解析《爱情公寓》五季风格差异 #爱情公寓 #曾小贤 #陈赫 #影视 #电视剧" [ref=e222]'
- generic [ref=e225]:
- generic [ref=e226]: 23:29
- generic [ref=e228]: 9.1万
- generic [ref=e230]:
- generic [ref=e231]: "谁是系列巅峰?深度解析《爱情公寓》五季风格差异 #爱情公寓 #曾小贤 #陈赫 #影视 #电视剧"
- generic [ref=e233]:
- generic [ref=e234]: "@毛知竹"
- generic [ref=e235]: · 3月14日
- generic [ref=e238] [cursor=pointer]:
- generic [ref=e240]:
- 'img "最该被4399下架的童年阴影恐怖游戏小女孩放学回家后发现家中竟然发生了可怕的惨案#恐怖游戏 #游戏解说 #恐怖游戏解说#4399童年小游戏" [ref=e242]'
- generic [ref=e245]:
- generic [ref=e246]: 08:32
- generic [ref=e248]: "6854"
- generic [ref=e250]:
- generic [ref=e251]: "最该被4399下架的童年阴影恐怖游戏小女孩放学回家后发现家中竟然发生了可怕的惨案#恐怖游戏 #游戏解说 #恐怖游戏解说#4399童年小游戏"
- generic [ref=e253]:
- generic [ref=e254]: "@里由"
- generic [ref=e255]: · 6天前
- generic [ref=e258] [cursor=pointer]:
- generic [ref=e260]:
- 'img "全世界最神秘的国家朝鲜!他们一日三餐都吃什么? 我居然能实现了海鲜自由?!沉浸式体验朝鲜的一天#交换世界计划 #环球旅行 #青年创作者成长计划 #朝鲜 #春节旅行好去处" [ref=e262]'
- generic [ref=e265]:
- generic [ref=e266]: 08:10
- generic [ref=e268]: 5.5万
- generic [ref=e270]:
- generic [ref=e271]: "全世界最神秘的国家朝鲜!他们一日三餐都吃什么? 我居然能实现了海鲜自由?!沉浸式体验朝鲜的一天#交换世界计划 #环球旅行 #青年创作者成长计划 #朝鲜 #春节旅行好去处"
- generic [ref=e273]:
- generic [ref=e274]: "@鱼十七Justin"
- generic [ref=e275]: · 2月18日
- generic [ref=e278] [cursor=pointer]:
- generic [ref=e280]:
- 'img "连跑五把绝密航天都会经历什么65 不容易65期大免保终于出3x3了!!!#三角洲行动 #三角洲曼德尔砖搬砖攻略 #三角洲s9回声新赛季 #三角洲行动猛攻剧场" [ref=e282]'
- generic [ref=e285]:
- generic [ref=e286]: 08:55
- generic [ref=e288]: 12.5万
- generic [ref=e290]:
- generic [ref=e291]: "连跑五把绝密航天都会经历什么65 不容易65期大免保终于出3x3了!!!#三角洲行动 #三角洲曼德尔砖搬砖攻略 #三角洲s9回声新赛季 #三角洲行动猛攻剧场"
- generic [ref=e293]:
- generic [ref=e294]: "@阿尔萨鱼"
- generic [ref=e295]: · 4月18日
- generic [ref=e298] [cursor=pointer]:
- generic [ref=e300]:
- 'img "《狂飙》深度解读35期高启强将计就计『补发』 #狂飙 #影视经典补完计划 #了不起的精讲团 #绘影绘声 #高启强" [ref=e302]'
- generic [ref=e305]:
- generic [ref=e306]: 08:34
- generic [ref=e308]: 3.6万
- generic [ref=e310]:
- generic [ref=e311]: "《狂飙》深度解读35期高启强将计就计『补发』 #狂飙 #影视经典补完计划 #了不起的精讲团 #绘影绘声 #高启强"
- generic [ref=e313]:
- generic [ref=e314]: "@绘影绘声"
- generic [ref=e315]: · 2月23日
- generic [ref=e318] [cursor=pointer]:
- generic [ref=e320]:
- 'img "六套在大坝只能算个萝莉 #三角洲行动 #三角洲s8蝶变时刻新赛季 #假期结束接着洲 #三角洲行动攻略#无名教学" [ref=e322]'
- generic [ref=e325]:
- generic [ref=e326]: 02:15
- generic [ref=e328]: 61.9万
- generic [ref=e330]:
- generic [ref=e331]: "六套在大坝只能算个萝莉 #三角洲行动 #三角洲s8蝶变时刻新赛季 #假期结束接着洲 #三角洲行动攻略#无名教学"
- generic [ref=e333]:
- generic [ref=e334]: "@安澜(三角洲行动)"
- generic [ref=e335]: · 3月9日
- generic [ref=e338] [cursor=pointer]:
- generic [ref=e340]:
- 'img "一口气看完放开那个女巫,理工男穿越中世纪干工业革命! #放开那个女巫 #动漫推荐 #国漫" [ref=e342]'
- generic [ref=e345]:
- generic [ref=e346]: 18:30
- generic [ref=e348]: 2.4万
- generic [ref=e350]:
- generic [ref=e351]: "一口气看完放开那个女巫,理工男穿越中世纪干工业革命! #放开那个女巫 #动漫推荐 #国漫"
- generic [ref=e353]:
- generic [ref=e354]: "@澄子动漫"
- generic [ref=e355]: · 4天前
- generic [ref=e358] [cursor=pointer]:
- generic [ref=e360]:
- 'img "体验越南帝王洗头,四手服务,爽到飞起! #青年创作者成长计划 #交换世界计划 #环球旅行 #勇闯东南亚 #越南" [ref=e362]'
- generic [ref=e365]:
- generic [ref=e366]: 11:29
- generic [ref=e368]: 9.5万
- generic [ref=e370]:
- generic [ref=e371]: "体验越南帝王洗头,四手服务,爽到飞起! #青年创作者成长计划 #交换世界计划 #环球旅行 #勇闯东南亚 #越南"
- generic [ref=e373]:
- generic [ref=e374]: "@海风"
- generic [ref=e375]: · 4月8日
- generic [ref=e378] [cursor=pointer]:
- generic [ref=e380]:
- 'img "绝航2.0单38分钟清全图。绝对欧美之人 @重楼(三角洲行动) #三角洲行动 #三角洲s8蝶变时刻新赛季 #新春来三角洲接红 #三角洲新春接红攻略 #威龙" [ref=e382]'
- generic [ref=e385]:
- generic [ref=e386]: 08:36
- generic [ref=e388]: 7.1万
- generic [ref=e390]:
- generic [ref=e391]: "绝航2.0单38分钟清全图。绝对欧美之人 @重楼(三角洲行动) #三角洲行动 #三角洲s8蝶变时刻新赛季 #新春来三角洲接红 #三角洲新春接红攻略 #威龙"
- generic [ref=e393]:
- generic [ref=e394]: "@玖七(三角洲行动)"
- generic [ref=e395]: · 2月6日