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.
185 lines
6.1 KiB
YAML
185 lines
6.1 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]: "24"
|
|
- generic [ref=e7]:
|
|
- text: "Scroll position:"
|
|
- strong [ref=e8]: "786"
|
|
- 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
|
|
- generic [ref=e111]:
|
|
- generic [ref=e113]: ⭐
|
|
- generic [ref=e114]:
|
|
- generic [ref=e115]: "Item #13"
|
|
- generic [ref=e116]:
|
|
- generic [ref=e117]: 2026/4/27
|
|
- generic [ref=e118]: 143 views
|
|
- generic [ref=e119]:
|
|
- generic [ref=e121]: 💎
|
|
- generic [ref=e122]:
|
|
- generic [ref=e123]: "Item #14"
|
|
- generic [ref=e124]:
|
|
- generic [ref=e125]: 2026/4/27
|
|
- generic [ref=e126]: 225 views
|
|
- generic [ref=e127]:
|
|
- generic [ref=e129]: 🔥
|
|
- generic [ref=e130]:
|
|
- generic [ref=e131]: "Item #15"
|
|
- generic [ref=e132]:
|
|
- generic [ref=e133]: 2026/4/27
|
|
- generic [ref=e134]: 656 views
|
|
- generic [ref=e135]:
|
|
- generic [ref=e137]: ✨
|
|
- generic [ref=e138]:
|
|
- generic [ref=e139]: "Item #16"
|
|
- generic [ref=e140]:
|
|
- generic [ref=e141]: 2026/4/27
|
|
- generic [ref=e142]: 18 views
|
|
- generic [ref=e143]:
|
|
- generic [ref=e145]: 🌟
|
|
- generic [ref=e146]:
|
|
- generic [ref=e147]: "Item #17"
|
|
- generic [ref=e148]:
|
|
- generic [ref=e149]: 2026/4/27
|
|
- generic [ref=e150]: 145 views
|
|
- generic [ref=e151]:
|
|
- generic [ref=e153]: 💫
|
|
- generic [ref=e154]:
|
|
- generic [ref=e155]: "Item #18"
|
|
- generic [ref=e156]:
|
|
- generic [ref=e157]: 2026/4/27
|
|
- generic [ref=e158]: 192 views
|
|
- generic [ref=e159]:
|
|
- generic [ref=e161]: 🎭
|
|
- generic [ref=e162]:
|
|
- generic [ref=e163]: "Item #19"
|
|
- generic [ref=e164]:
|
|
- generic [ref=e165]: 2026/4/27
|
|
- generic [ref=e166]: 316 views
|
|
- generic [ref=e167]:
|
|
- generic [ref=e169]: 🎪
|
|
- generic [ref=e170]:
|
|
- generic [ref=e171]: "Item #20"
|
|
- generic [ref=e172]:
|
|
- generic [ref=e173]: 2026/4/27
|
|
- generic [ref=e174]: 475 views
|
|
- generic [ref=e175]:
|
|
- generic [ref=e177]: 🎨
|
|
- generic [ref=e178]:
|
|
- generic [ref=e179]: "Item #21"
|
|
- generic [ref=e180]:
|
|
- generic [ref=e181]: 2026/4/27
|
|
- generic [ref=e182]: 335 views
|
|
- generic [ref=e183]:
|
|
- generic [ref=e185]: 🚀
|
|
- generic [ref=e186]:
|
|
- generic [ref=e187]: "Item #22"
|
|
- generic [ref=e188]:
|
|
- generic [ref=e189]: 2026/4/27
|
|
- generic [ref=e190]: 238 views
|
|
- generic [ref=e191]:
|
|
- generic [ref=e193]: ⭐
|
|
- generic [ref=e194]:
|
|
- generic [ref=e195]: "Item #23"
|
|
- generic [ref=e196]:
|
|
- generic [ref=e197]: 2026/4/27
|
|
- generic [ref=e198]: 112 views
|
|
- generic [ref=e199]:
|
|
- generic [ref=e201]: 💎
|
|
- generic [ref=e202]:
|
|
- generic [ref=e203]: "Item #24"
|
|
- generic [ref=e204]:
|
|
- generic [ref=e205]: 2026/4/27
|
|
- generic [ref=e206]: 20 views
|
|
- paragraph [ref=e14]: Loading more items... |