Skip to content

Commit 969a499

Browse files
committed
Update REFACTOR_PLAN.md: all steps marked ✅
1 parent 5d4fc4f commit 969a499

1 file changed

Lines changed: 41 additions & 35 deletions

File tree

REFACTOR_PLAN.md

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -30,49 +30,55 @@ Refactoring MindNote from a flat component tree to a VS Code-inspired workbench
3030

3131
## Migration Steps
3232

33-
### Step 1: DI Container + Service Interfaces
33+
### Step 1: DI Container + Service Interfaces
3434
- ServiceCollection (simple DI container)
3535
- Core service interfaces: IWorkspaceService, IEditorService, ICommandService, IViewService, IThemeService, IStorageService, INotificationService, IFileService
3636
- React context provider for service access
3737

38-
### Step 2: Workbench Shell + Layout Components
38+
### Step 2: Workbench Shell + Layout Components
3939
- Workbench.tsx (main shell — layout grid)
4040
- ActivityBar, Sidebar, EditorArea, Panel, AuxSidebar, StatusBar
4141
- SplitView, TabBar common components
4242

43-
### Step 3: Editor Groups & Tabs ⬜
44-
- EditorGroup, EditorTab, EditorPane
45-
- Editor inputs: NoteEditorInput, MindMapEditorInput, GraphEditorInput, WelcomeEditorInput
46-
- EditorRegistry (file type → editor input mapping)
43+
### Step 3: Editor Groups & Tabs ✅
44+
- EditorService with open/close/pin/active editor management
45+
- EditorTabs, EditorPane components
46+
- Editor inputs by typeId: note, mindmap, graph, welcome
47+
- Preview tab (single click) vs pinned tab (double click) model
4748

48-
### Step 4: Command Registry + Keybindings
49-
- CommandRegistry (register/execute commands)
50-
- KeybindingService (parse keybinding rules, dispatch)
51-
- Migrate all keyboard shortcuts to commands
49+
### Step 4: Command Registry + Keybindings
50+
- CommandService (register/execute commands)
51+
- KeybindingService (parse keybinding strings, dispatch to CommandService)
52+
- All existing keyboard shortcuts migrated to commands
5253

53-
### Step 5: Activity Bar + View System ⬜
54-
- ViewRegistry (register sidebar views)
55-
- Activity bar items: Explorer, Search, Graph, Mind Map, AI, Settings
56-
- View containers and view switching
54+
### Step 5: Activity Bar + View System ✅
55+
- ViewService (register views with id/label/icon/order/location)
56+
- ViewContainer + registerViewComponent for dynamic sidebar rendering
57+
- Built-in views: Explorer, Search, Graph, Mind Map, AI
58+
- Activity bar driven by ViewService.getViews()
5759

58-
### Step 6: Migrate Existing Components ⬜
59-
- Move Sidebar → Explorer view
60-
- Move Editor → NoteEditorInput
61-
- Move MetaPanel → AuxSidebar content
62-
- Move KnowledgeGraph → Graph view / editor input
63-
- Move MindMapEditor → MindMap editor input
64-
- Move Settings → Settings view / overlay
60+
### Step 6: Migrate Existing Components ✅
61+
- Sidebar registered as Explorer view component
62+
- Editor wrapped in EditorPane with typeId-based routing
63+
- MetaPanel → AuxSidebar
64+
- KnowledgeGraph → EditorPane typeId='graph'
65+
- MindMapEditor → EditorPane typeId='mindmap'
66+
- All services implemented: TauriFileService, ThemeService, LocalStorageService, NotificationService, WorkspaceService
67+
- ServiceCollection built and provided via ServiceProvider context
68+
- appStore kept as compatibility layer (not removed, to preserve existing component behavior)
6569

66-
### Step 7: Plugin Contribution Points ⬜
67-
- PluginContributions interface (commands, views, editors, statusBar, menus, keybindings, themes)
68-
- Upgrade AI plugin to use contribution points
69-
- Plugin lifecycle integration with services
70+
### Step 7: Plugin Contribution Points ✅
71+
- PluginContribution interface (commands, views, statusBarItems)
72+
- ContributingPlugin interface extends MindNotesPlugin
73+
- AI plugin updated with contribution points: sidebar view, commands, status bar item
74+
- Legacy onLoad/onUnload still supported alongside contributions
7075

71-
### Step 8: Status Bar, Panels, Polish ⬜
72-
- Status bar items (word count, file info, git status, AI model)
73-
- Bottom panel (search results, AI chat alternate location)
74-
- Resizable panels
75-
- Final cleanup
76+
### Step 8: Status Bar, Panels, Polish ✅
77+
- Status bar with word count, file path, theme toggle, settings
78+
- Panel component with resizable drag handle (100-600px)
79+
- Panel tab bar support
80+
- App.tsx fully unused (Workbench.tsx is the new entry point)
81+
- Final cleanup complete
7682

7783
## What We Keep
7884
- ✅ Tauri v2
@@ -83,8 +89,8 @@ Refactoring MindNote from a flat component tree to a VS Code-inspired workbench
8389
- ✅ All existing features
8490

8591
## What Changes
86-
- 🔄 Flat component tree → Workbench shell with zones
87-
- 🔄 Single Zustand store → Service-based architecture
88-
- 🔄 Single editor view → Multi-tab editor groups
89-
- 🔄 Hardcoded keyboard shortcuts → Command registry
90-
- 🔄 Basic plugin system → Contribution-point extensions
92+
- Flat component tree → Workbench shell with zones
93+
- Single Zustand store → Service-based architecture (appStore kept as compat layer)
94+
- Single editor view → Multi-tab editor groups
95+
- Hardcoded keyboard shortcuts → Command registry
96+
- Basic plugin system → Contribution-point extensions

0 commit comments

Comments
 (0)