在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用ui-worker
星标8
分支0
更新时间2026年3月30日 16:15
UI 层交互改造 worker,处理键盘/鼠标/菜单/进度条/Toast 相关功能
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
UI 层交互改造 worker,处理键盘/鼠标/菜单/进度条/Toast 相关功能
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | ui-worker |
| description | UI 层交互改造 worker,处理键盘/鼠标/菜单/进度条/Toast 相关功能 |
NOTE: Startup and cleanup are handled by worker-base. This skill defines the WORK PROCEDURE.
所有涉及 UI 交互改造的 feature:键盘处理、鼠标支持、Toast 改造、操作菜单、进度条、分页。
None. 所有工作通过 cargo test/cargo clippy/cargo fmt 完成。
mission.md, AGENTS.md, and .factory/library/architecture.md for full context.validation-contract.md that this feature fulfills.#[cfg(test)] modules within the relevant source files (follow project convention).AppSnapshot, KeyEvent, call handle_key(), assert on rx.try_recv().AppSnapshot, MouseEvent, call handle_mouse(), assert on commands.CoreState, call handler function, assert on state changes and effects.ratatui::TestBackend, call draw functions, assert on buffer content.src/ui/tui/, src/messages/app.rs, src/app/state.rs, src/core/reducer/.AppCommand variants to src/messages/app.rs as needed.App/AppSnapshot fields as needed.cargo test — all tests must pass.cargo clippy --all-targets -- -D warnings — no warnings.cargo fmt --check — no issues.cargo run and test the interaction.{
"salientSummary": "Implemented Space key conflict fix in search mode. When search input has focus, Space sends SearchInputChar instead of PlayerTogglePause. Added 5 unit tests in keyboard.rs covering all View/focus combinations. All tests pass, clippy clean.",
"whatWasImplemented": "Modified handle_key() in keyboard.rs to check for Search+HeaderSearch focus before triggering PlayerTogglePause on Space. Added unit tests for Space behavior in Search/Playlists/Lyrics views with different focus states.",
"whatWasLeftUndone": "",
"verification": {
"commandsRun": [
{ "command": "cargo test -- keyboard", "exitCode": 0, "observation": "12 tests passed, 0 failed" },
{ "command": "cargo clippy --all-targets -- -D warnings", "exitCode": 0, "observation": "No warnings" },
{ "command": "cargo fmt --check", "exitCode": 0, "observation": "Formatted correctly" }
],
"interactiveChecks": []
},
"tests": {
"added": [
{
"file": "src/ui/tui/keyboard.rs",
"cases": [
{ "name": "space_in_search_input_sends_char", "verifies": "VAL-SPACE-001" },
{ "name": "space_in_search_input_not_toggle", "verifies": "VAL-SPACE-002" },
{ "name": "space_in_search_body_center_is_toggle", "verifies": "VAL-SPACE-003" },
{ "name": "space_in_playlists_is_toggle", "verifies": "VAL-SPACE-004" },
{ "name": "space_in_lyrics_is_toggle", "verifies": "VAL-SPACE-005" }
]
}
]
},
"discoveredIssues": []
}