# Menu-Group Phase 1 完工 SUMMARY

| 項目 | 內容 |
|------|------|
| Feature | 側邊欄選單分組（menu-group） |
| Branch | `feature/menu-group` |
| 完工日期 | 2026-05-26 |
| 狀態 | 全功能測試 PASS，待 Task F（jedi-auth 進版 + Nexus push）|

---

## Commits 清單

| Repo | Hash | 說明 |
|------|------|------|
| jedi-auth | `869630f` | feat(user-service): add _prune_empty_groups |
| compliance-manager-be | `4afd6c2d` | feat(db): menu-group restructure migration |
| compliance-manager-fe | `3ee8236` | feat(menu): remove grcItems + i18n group keys |
| compliance-manager-fe | `b59c2dd` | fix(i18n): wire zh-cn/menu.json |
| compliance-manager-fe | `0d1ca8b` | fix(menu): AppMenuItem sub-menu rendering |
| compliance-manager-fe | `3f66675` | fix(permissions): getUserPagePermissions 改遞迴搜尋 |

jedi-auth 版本尚未 bump（`0.1.18`），主專案 `pyproject.toml` 仍為 path dep 狀態（Task F 待執行）。

---

## 改動範圍

### DB（已執行）
- `public.ui_routes` 新增 7 個分組節點（sort 10~70）
- 新增 2 個搬遷項（`project-dashboard` / `my-tasks`）
- 27 筆既有葉節點 pid/sort 更新

### jedi-auth 套件
- `get_user_web_ui_routes()` 末段加剪枝 → 空分組自動隱藏
- 3 個 unit tests

### FE
- `AppMenu.vue` 移除 grcItems 寫死
- `AppMenuItem.vue` 加分組展開 + 遞迴 render 子節點（設計文件預測有誤，實作時補修）
- `src/utils/userUtil.js` `getUserPagePermissions` 改遞迴 `findNode`（`.flat()` 對物件 items 屬性無效，巢狀 menu 後所有操作按鈕消失）
- i18n：zh-tw / en / zh-cn 補 7 個 group-* key

---

## 行為差異

- **選單結構**：扁平 39 項 → 7 個可展開分組（29 葉節點在分組內）
- **空分組**：無任何可見子節點時自動隱藏
- **搬遷項**：`project-dashboard` / `my-tasks` 改從 DB 取得

---

## 已知待辦（Task F）

由 user 明確下指令後執行：

1. jedi-auth `pyproject.toml` bump `0.1.18 → 0.1.19`
2. jedi-auth commit + push origin
3. jedi-auth 推 Nexus
4. 主專案 `pyproject.toml` 還原 path dep → pin `jedi-auth==0.1.19`
5. `poetry update jedi-auth`
6. 主專案 commit（`pyproject.toml` + `poetry.lock`）
7. push（所有 repo）

---

## 規範文件清單

| 文件 | 路徑 |
|------|------|
| 白話需求 | `docs/features/FR-029-2605-menu-group/requirement-detail.md` |
| 設計說明（含 §11 補記） | `docs/features/FR-029-2605-menu-group/design.md` |
| 實作計畫 | `docs/features/FR-029-2605-menu-group/implementation-plan.md` |
| changelog（feat） | `docs/changelog/2026-05-26-feat-menu-group-restructure.md` |
| changelog（fix AppMenuItem） | `docs/changelog/2026-05-26-fix-appmenuitem-submenu-rendering.md` |
| changelog（fix getUserPagePermissions） | `docs/changelog/2026-05-26-fix-getuserpagepermissions-nested-menu.md` |
| analysis（AppMenuItem） | `docs/analysis/2026-05-26-appmenuitem-submenu-missing.md` |
| analysis（getUserPagePermissions） | `docs/analysis/2026-05-26-getuserpagepermissions-flat-regression.md` |
| rollback SQL | `docs/features/FR-029-2605-menu-group/design.md` 附錄 C |
