agent-Specialization/.playwright-mcp/page-2026-04-27T10-11-52-601Z.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

101 lines
3.2 KiB
YAML

- generic [active] [ref=e1]:
- banner [ref=e2]:
- heading "Infinite Scroll Gallery" [level=1] [ref=e3]
- generic [ref=e4]:
- generic [ref=e5]:
- text: "Items loaded:"
- strong [ref=e6]: "12"
- generic [ref=e7]:
- text: "Scroll position:"
- strong [ref=e8]: "0"
- text: px
- generic [ref=e9]:
- text: "Viewport:"
- strong [ref=e10]: "669"
- text: px
- main [ref=e11]:
- generic [ref=e15]:
- generic [ref=e17]: 🎨
- generic [ref=e18]:
- generic [ref=e19]: "Item #1"
- generic [ref=e20]:
- generic [ref=e21]: 2026/4/27
- generic [ref=e22]: 141 views
- generic [ref=e23]:
- generic [ref=e25]: 🚀
- generic [ref=e26]:
- generic [ref=e27]: "Item #2"
- generic [ref=e28]:
- generic [ref=e29]: 2026/4/27
- generic [ref=e30]: 11 views
- generic [ref=e31]:
- generic [ref=e33]:
- generic [ref=e34]:
- generic [ref=e35]: "Item #3"
- generic [ref=e36]:
- generic [ref=e37]: 2026/4/27
- generic [ref=e38]: 716 views
- generic [ref=e39]:
- generic [ref=e41]: 💎
- generic [ref=e42]:
- generic [ref=e43]: "Item #4"
- generic [ref=e44]:
- generic [ref=e45]: 2026/4/27
- generic [ref=e46]: 126 views
- generic [ref=e47]:
- generic [ref=e49]: 🔥
- generic [ref=e50]:
- generic [ref=e51]: "Item #5"
- generic [ref=e52]:
- generic [ref=e53]: 2026/4/27
- generic [ref=e54]: 211 views
- generic [ref=e55]:
- generic [ref=e57]:
- generic [ref=e58]:
- generic [ref=e59]: "Item #6"
- generic [ref=e60]:
- generic [ref=e61]: 2026/4/27
- generic [ref=e62]: 233 views
- generic [ref=e63]:
- generic [ref=e65]: 🌟
- generic [ref=e66]:
- generic [ref=e67]: "Item #7"
- generic [ref=e68]:
- generic [ref=e69]: 2026/4/27
- generic [ref=e70]: 342 views
- generic [ref=e71]:
- generic [ref=e73]: 💫
- generic [ref=e74]:
- generic [ref=e75]: "Item #8"
- generic [ref=e76]:
- generic [ref=e77]: 2026/4/27
- generic [ref=e78]: 396 views
- generic [ref=e79]:
- generic [ref=e81]: 🎭
- generic [ref=e82]:
- generic [ref=e83]: "Item #9"
- generic [ref=e84]:
- generic [ref=e85]: 2026/4/27
- generic [ref=e86]: 153 views
- generic [ref=e87]:
- generic [ref=e89]: 🎪
- generic [ref=e90]:
- generic [ref=e91]: "Item #10"
- generic [ref=e92]:
- generic [ref=e93]: 2026/4/27
- generic [ref=e94]: 219 views
- generic [ref=e95]:
- generic [ref=e97]: 🎨
- generic [ref=e98]:
- generic [ref=e99]: "Item #11"
- generic [ref=e100]:
- generic [ref=e101]: 2026/4/27
- generic [ref=e102]: 959 views
- generic [ref=e103]:
- generic [ref=e105]: 🚀
- generic [ref=e106]:
- generic [ref=e107]: "Item #12"
- generic [ref=e108]:
- generic [ref=e109]: 2026/4/27
- generic [ref=e110]: 635 views
- paragraph [ref=e14]: Loading more items...