feat(desktop): add mutation review guardrails

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Senior Frontend Engineer
2026-03-31 08:47:14 +00:00
parent bf6f8bc0bf
commit 35040ef0c9
7 changed files with 1084 additions and 125 deletions

View File

@@ -37,6 +37,7 @@ pnpm run desktop:dev
pnpm run desktop:build
pnpm run desktop:tauri:dev
pnpm run desktop:tauri:build
pnpm run desktop:tauri:build:all
```
说明:
@@ -45,9 +46,10 @@ pnpm run desktop:tauri:build
- 仓库通过 `.npmrc` 固定安装 devDependencies避免宿主机的 `NODE_ENV=production` 破坏桌面构建链路。
- `cargo test -p redis-core` 默认验证共享后端核心,包括 mock Redis 握手与命令执行测试,避免在缺少桌面系统库时阻断后端迭代。
- `pnpm --filter @redis-gui/desktop test` 运行桌面前端的最小单测基线;当前覆盖共享错误映射层,避免后续功能迭代把后端错误码重新退回成零散文案拼接。
- `pnpm run desktop:dev` 启动浏览器态工作台壳层,用于检查布局、交互和 demo fallback此模式下没有 Tauri 命令桥。
- `pnpm run desktop:dev` 启动浏览器态工作台壳层,用于检查布局、交互和 demo fallback此模式下没有 Tauri 命令桥,但会在当前会话内保留 mock string 保存和 TTL 调整结果,便于做壳层级交互验收
- `pnpm run desktop:tauri:dev` 启动带 Tauri 后端桥的桌面工作台;连接测试和命令执行会调用现有 `test_redis_connection``execute_redis_command` 命令,因此需要完整的 Tauri Linux 运行依赖。
- `pnpm run desktop:tauri:build` 会先执行桌面前端 build再进入 Tauri/Rust 的真实打包流程;当前 Linux `.deb``.rpm` 产物位于仓库根 `target/release/bundle/`
- `pnpm run desktop:tauri:build` 是当前推荐的稳定 Linux 打包入口,只生成已验证可出的 `.deb``.rpm` 产物;产物位于仓库根 `target/release/bundle/`
- `pnpm run desktop:tauri:build:all` 保留完整 bundle 调查路径;当前会在 AppImage 的 `linuxdeploy` 阶段失败,因此不应作为默认 QA 打包命令。
- Linux 上进入 Tauri 打包前,可先用 `pkg-config --modversion gtk+-3.0 webkit2gtk-4.1 libsoup-3.0` 做原生依赖预检查;任一缺失都会阻断桌面包产物生成。
## Local Redis Smoke Fixture
@@ -79,9 +81,15 @@ pnpm run desktop:tauri:dev
## Current Frontend Scope
- 首版可见界面现在已接入真实的桌面 browse / inspect / string save / TTL update 路径,但仍保持危险操作和完整产品化流程在后续阶段演进。
- 当前前端消费 `backend_bootstrap``test_redis_connection``browse_redis_keys``read_redis_value``write_redis_value``execute_redis_command`;浏览器态仍保持明确的 demo fallback。
- 当前前端消费 `backend_bootstrap``test_redis_connection``browse_redis_keys``read_redis_value``create_redis_value``write_redis_value``update_redis_key_ttl``execute_redis_command`;浏览器态仍保持明确的 demo fallback。
- 当前仓库还包含一个 string-only 的 `Add key` 可见入口,走 `create_redis_value` 合约;该能力已在仓库中实现,但阶段验收仍需按 `docs/redis-gui-v1-product-requirements.md``docs/qa/acceptance-matrix.md` 单独判断,不应自动算入当前基线签收。
- 当前前端还通过共享错误映射层统一消费 `redis-core` 的稳定错误码使连接测试、浏览、读取、保存、TTL 和命令执行失败都落到一致的操作提示上。
- `inspect_redis_key``update_redis_key_ttl` 已在桌面桥可用;当前 UI 已暴露 TTL 设置与移除控制,但删除执行仍保持未开放状态。
- 当前 phase 的 string 保存、TTL 设置和 TTL 移除在执行前都会进入 scoped review重复展示 connection / DB / key 语境与 current-vs-next 变化,并阻止 no-op 提交直接触达 live bridge。
- inspector 现在对 `hash/list/set/zset/stream` 提供结构化只读面板,不再要求操作者从原始 JSON 文本中手动解析 typed value。
- inspector 现在还会明确显示当前 inspect 状态、value surface 语义、下一步操作路径和 key facts降低 string / structured / missing / demo fallback 场景下的误读成本。
- DB switcher 现在默认覆盖 `db0``db15`,并会在当前作用域落到更高 DB 时保留对应选项,避免 UI 退回到四个固定 DB 的弱验证面。
- 连接测试、key browse、value inspector 和命令托盘在 Tauri 桌面运行时走真实后端桥;浏览器态 `pnpm run desktop:dev` 会明确回退到 demo 数据,不伪装成真实 Redis 行为。
- 浏览器态现在还会在单次会话内同步 mock string 保存、TTL 设置和 TTL 移除的可见状态,保证壳层演示与 UI 反馈一致,但这仍不构成任何 live Redis 证据。
- utility rail 现在额外提供本地 smoke assist 面板,可直接切换到 `127.0.0.1:6380 / db0` 的 fixture 路径、聚焦 `smoke:*` 键,并预填安全 smoke 命令。
- 具体 UI/UX 边界与 QA 验收入口见 `docs/frontend-workspace-baseline.md``docs/qa/acceptance-matrix.md`