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

247 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 [ref=e1]:
- button "开启读屏标签" [ref=e2]
- generic: 读屏标签已关闭
- generic [ref=e4]:
- generic [ref=e6]:
- link [ref=e7] [cursor=pointer]:
- /url: //www.douyin.com/jingxuan
- generic [ref=e12]:
- 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=e27] [cursor=pointer]:
- /url: https://www.douyin.com/?recommend=1&from_nav=1
- generic [ref=e30]: 推荐
- link "搜索" [ref=e35] [cursor=pointer]:
- /url: https://www.douyin.com/aisearch?from_nav=1
- generic [ref=e38]: 搜索
- link "关注" [ref=e44] [cursor=pointer]:
- /url: https://www.douyin.com/follow?from_nav=1
- generic [ref=e47]: 关注
- link "朋友" [active] [ref=e2050] [cursor=pointer]:
- /url: https://www.douyin.com/friend?from_nav=1
- generic [ref=e55]: 朋友
- img [ref=e2052]
- link "我的" [ref=e60] [cursor=pointer]:
- /url: https://www.douyin.com/user/self?from_nav=1
- generic [ref=e63]: 我的
- link "直播" [ref=e69] [cursor=pointer]:
- /url: https://live.douyin.com/?from_nav=1
- generic [ref=e72]: 直播
- link "放映厅" [ref=e77] [cursor=pointer]:
- /url: https://www.douyin.com/vs?from_nav=1
- generic [ref=e80]: 放映厅
- link "短剧" [ref=e85] [cursor=pointer]:
- /url: https://www.douyin.com/series?from_nav=1
- generic [ref=e88]: 短剧
- generic [ref=e641]:
- img [ref=e2054]
- generic [ref=e643] [cursor=pointer]:
- img [ref=e644]
- generic [ref=e645]: 下载抖音精选
- generic [ref=e654]:
- img [ref=e657] [cursor=pointer]
- img [ref=e661] [cursor=pointer]
- img [ref=e665] [cursor=pointer]
- img [ref=e668] [cursor=pointer]:
- img [ref=e669]
- contentinfo [ref=e671]:
- generic [ref=e672]:
- generic [ref=e673]:
- generic [ref=e675]: 2026 © 抖音
- link "京ICP备16016397号-3" [ref=e677] [cursor=pointer]:
- /url: https://beian.miit.gov.cn/
- link "icon京公网安备 11000002002046号" [ref=e679] [cursor=pointer]:
- /url: http://www.beian.gov.cn/portal/registerSystemInfo
- img "icon" [ref=e680]
- text: 京公网安备 11000002002046号
- link "广播电视节目制作经营许可证" [ref=e682] [cursor=pointer]:
- /url: https://lf3-static.bytednsdoc.com/obj/eden-cn/ild_jw_upfbvk_lm/ljhwZthlaukjlkulzlp/license/jiemuzhizuojingying.jpg
- link "京B2-20170846" [ref=e684] [cursor=pointer]:
- /url: https://lf3-static.bytednsdoc.com/obj/eden-cn/ild_jw_upfbvk_lm/ljhwZthlaukjlkulzlp/license/zengzhixuke.jpg
- link "网络文化许可证-京网文-20250181-061号" [ref=e686] [cursor=pointer]:
- /url: https://lf-douyin-pc-web.douyinstatic.com/obj/douyin-pc-web/20250519-201253.jpeg
- generic [ref=e688]: 互联网宗教信息服务许可证 京20250000017
- generic [ref=e690]: 药品医疗器械网络信息服务备案 网药械信息备字2023第00570号
- generic [ref=e692]: 互联网新闻信息服务许可证 11220230001
- generic [ref=e694]:
- link "网络谣言曝光台" [ref=e696] [cursor=pointer]:
- /url: https://www.piyao.org.cn/yybgt/index.htm
- link "网上有害信息举报" [ref=e698] [cursor=pointer]:
- /url: https://www.12377.cn/
- generic [ref=e700]: 违法和不良信息举报 400-140-2108
- generic [ref=e702]: 算法推荐专项举报 sfjubao@bytedance.com
- generic [ref=e704]: 网络内容从业人员违法违规行为举报 feedback@douyin.com
- generic [ref=e706]: 体育饭圈专项举报 tyfq@bytedance.com
- generic [ref=e708]:
- link "广告投放" [ref=e710] [cursor=pointer]:
- /url: https://www.oceanengine.com/resource/douyin
- link "用户服务协议" [ref=e712] [cursor=pointer]:
- /url: https://www.douyin.com/agreements/?id=6773906068725565448
- link "隐私政策" [ref=e714] [cursor=pointer]:
- /url: https://www.douyin.com/agreements/?id=6773901168964798477
- link "账号找回" [ref=e716] [cursor=pointer]:
- /url: https://www.douyin.com/recovery_account/
- link "联系我们" [ref=e718] [cursor=pointer]:
- /url: https://www.douyin.com/aboutus/
- link "加入我们" [ref=e720] [cursor=pointer]:
- /url: https://www.douyin.com/aboutus/
- link "营业执照" [ref=e722] [cursor=pointer]:
- /url: https://www.douyin.com/business_license/
- link "友情链接" [ref=e724] [cursor=pointer]:
- /url: https://www.douyin.com/friend_links
- link "站点地图" [ref=e726] [cursor=pointer]:
- /url: https://www.douyin.com/htmlmap/hotauthor_0_1
- link "下载抖音" [ref=e728] [cursor=pointer]:
- /url: https://www.douyin.com/downloadpage/pc
- link "抖音电商" [ref=e730] [cursor=pointer]:
- /url: https://mix.jinritemai.com/falcon/mix_page/index.html
- generic [ref=e105]:
- banner [ref=e108]:
- generic [ref=e110]:
- generic [ref=e114]:
- textbox "搜索你感兴趣的内容" [ref=e116]
- button "搜索" [ref=e118] [cursor=pointer]:
- img [ref=e119]
- generic [ref=e121]: 搜索
- generic [ref=e731]:
- generic [ref=e736] [cursor=pointer]:
- img [ref=e738]:
- img [ref=e739]
- paragraph [ref=e741]: 充钻石
- link "客户端" [ref=e746] [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=e747]:
- generic [ref=e748]:
- img [ref=e750]:
- img [ref=e751]
- paragraph [ref=e754]: 客户端
- img [ref=e756]
- generic [ref=e762] [cursor=pointer]:
- img [ref=e764]:
- img [ref=e765]
- generic [ref=e767]: 壁纸
- list [ref=e768]:
- listitem [ref=e770]:
- generic [ref=e773] [cursor=pointer]:
- img [ref=e775]:
- img [ref=e776]
- paragraph [ref=e779]: 通知
- list [ref=e780]:
- listitem [ref=e782]:
- generic [ref=e785] [cursor=pointer]:
- img [ref=e787]:
- img [ref=e788]
- paragraph [ref=e792]: 私信
- generic [ref=e796] [cursor=pointer]:
- img [ref=e798]:
- img [ref=e799]
- paragraph [ref=e801]: 投稿
- link [ref=e804] [cursor=pointer]:
- /url: //www.douyin.com/user/self
- listitem [ref=e805]
- generic [ref=e2056]:
- generic [ref=e2059]:
- img [ref=e2061]:
- img [ref=e2062]
- img [ref=e2066]:
- img [ref=e2067]
- generic [ref=e2072]:
- generic [ref=e2074]:
- generic [ref=e2077] [cursor=pointer]:
- generic [ref=e2079]:
- img [ref=e2083]:
- img [ref=e2084]
- generic [ref=e2092]:
- img [ref=e2095]:
- img [ref=e2096]
- img [ref=e2100]
- img [ref=e2104]:
- img [ref=e2105]
- generic [ref=e2109]:
- button [ref=e2110]
- generic [ref=e2111]: 清屏
- generic [ref=e2114]:
- button [ref=e2115]
- generic [ref=e2116]: 连播
- generic [ref=e2119]:
- generic [ref=e2121]:
- link [ref=e2122]:
- /url: //www.douyin.com/user/MS4wLjABAAAAGsvBEOPzaNLEzgTgDIs_4mkNw7xMi45CffPL_jK0BSI
- listitem [ref=e2124]
- img [ref=e2125]
- generic [ref=e2129]:
- img [ref=e2131]:
- img [ref=e2132]
- generic [ref=e2134]: "23"
- generic [ref=e2136]:
- img [ref=e2138]:
- img [ref=e2139]
- generic [ref=e2141]: "15"
- generic [ref=e2142]:
- img [ref=e2144]:
- img [ref=e2145]
- generic [ref=e2147]: 收藏
- generic [ref=e2149]:
- img [ref=e2152]:
- img [ref=e2153]
- generic [ref=e2155]: 分享
- img [ref=e2157]
- generic [ref=e2161]:
- button [ref=e2162]
- generic:
- img
- generic:
- img
- generic [ref=e2165]:
- generic [ref=e2166]:
- generic [ref=e2173]: "@缡淮"
- generic [ref=e2174]: · 4月14日
- generic [ref=e2176]:
- img [ref=e2177]
- text: 图文
- generic [ref=e2187]: 所有人立刻马上恭喜我笑着从理发店走出来˶╹ꇴ╹˶
- generic [ref=e2189]:
- generic [ref=e2190]: 及时接收作品更新提醒
- generic [ref=e2191]: 下载电脑客户端
- img [ref=e2193]
- generic [ref=e2196]:
- generic [ref=e2199]:
- generic [ref=e2201]:
- generic [ref=e2202]:
- img [ref=e2205] [cursor=pointer]:
- img [ref=e2206]
- generic [ref=e2208] [cursor=pointer]:
- generic [ref=e2209]: 00:00
- generic [ref=e2210]: /
- generic [ref=e2211]: 00:32
- generic [ref=e2216]:
- img [ref=e2219] [cursor=pointer]:
- img [ref=e2220]
- img [ref=e2224] [cursor=pointer]:
- img [ref=e2225]
- img [ref=e2229] [cursor=pointer]:
- img [ref=e2230]
- img [ref=e2236] [cursor=pointer]
- generic [ref=e2239] [cursor=pointer]: 倍速
- generic [ref=e2242] [cursor=pointer]: 智能
- generic [ref=e2245] [cursor=pointer]:
- button [ref=e2246]
- generic [ref=e2247]: 清屏
- generic [ref=e2250] [cursor=pointer]:
- button [ref=e2251]
- generic [ref=e2252]: 连播
- generic:
- img
- generic [ref=e2255]:
- generic [ref=e2256]:
- generic [ref=e2263]: "@缡淮"
- generic [ref=e2264]: · 4月9日
- generic [ref=e2269] [cursor=pointer]:
- generic [ref=e2272]: 抱歉 怕你偷学我的技术 所以跟你打的时候 我故意打的很菜 我的真实实力是神话三300分 只不过为了避免你自卑 我一直在乱打而已
- link "#无畏契约" [ref=e2274]:
- /url: //www.douyin.com/search/%E6%97%A0%E7%95%8F%E5%A5%91%E7%BA%A6?aweme_id=7626530028070729125&enter_from=friend&gid=7626530028070729125&source=pc_click_hashtag_feed
- img [ref=e2278]
- generic [ref=e2285]: 暂时没有更多了