Skip to content

Commit b8116b3

Browse files
committed
docs: add comprehensive TODO list for future improvements
- Organized by priority (P1-P6) - Includes effort estimates and file references - Covers platform fixes, performance, UI/UX, and architecture - Defines implementation schedule and success metrics
1 parent 2bbb761 commit b8116b3

File tree

1 file changed

+303
-0
lines changed

1 file changed

+303
-0
lines changed

TODO.md

Lines changed: 303 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,303 @@
1+
# SourceGit Iniationware Edition - Development TODO
2+
3+
## Overview
4+
This document tracks planned improvements and features for the SourceGit Iniationware Edition. Items are organized by priority and estimated effort.
5+
6+
---
7+
8+
## 🔴 Priority 1 - Critical Fixes (Immediate)
9+
10+
### Platform-Specific Issues
11+
12+
#### Linux
13+
- [ ] **Fix Desktop File MimeType** [`build/resources/_common/applications/sourcegit.desktop`]
14+
- Remove incorrect `MimeType=inode/directory` causing unwanted app launches
15+
- Issue: #1650
16+
- Effort: 15 minutes
17+
18+
#### macOS
19+
- [ ] **Fix ARM64 ZIP Release Build** [`build-macos-signed.sh`]
20+
- ARM64 ZIP releases potentially broken
21+
- Issue: #1723
22+
- Test on Apple Silicon hardware
23+
- Effort: 2 hours
24+
25+
### Authentication & Security
26+
27+
- [ ] **GPG Signing Support Enhancement** [`src/Commands/Commit.cs`]
28+
- Add GPG_TTY environment variable detection
29+
- Provide clear error messages when GPG signing fails
30+
- Issue: #1645
31+
- Effort: 1 hour
32+
33+
- [ ] **SSH Agent Authentication Fix** [`src/Commands/Command.cs`]
34+
- Linux SSH agent broken since v2025.28
35+
- Review SSH_AUTH_SOCK handling
36+
- Issue: #1670
37+
- Effort: 2 hours
38+
39+
---
40+
41+
## 🟡 Priority 2 - High Impact Features (Next Sprint)
42+
43+
### Merge Conflict Resolution
44+
45+
- [ ] **Built-in 3-Way Merge Editor**
46+
- Create new view: `src/Views/MergeConflictResolver.axaml`
47+
- Implement conflict parser: `src/Models/ConflictParser.cs`
48+
- Add inline editing capabilities
49+
- Reference: Similar to GitKraken's conflict resolution
50+
- Effort: 2 weeks
51+
52+
### Enhanced Diff Viewer
53+
54+
- [ ] **Minimap Navigation** [`src/Views/DiffView.axaml.cs`]
55+
- Add scrollable minimap showing file overview
56+
- Highlight changed regions in minimap
57+
- Click-to-navigate functionality
58+
- Effort: 3 days
59+
60+
- [ ] **Word-Level Diff Highlighting** [`src/Views/TextDiffView.axaml.cs`]
61+
- Implement word-by-word comparison algorithm
62+
- Add inline highlighting for changed words
63+
- Effort: 2 days
64+
65+
- [ ] **Auto-Jump to First Change** [`src/Views/DiffView.axaml.cs`]
66+
- When "Show full file" is enabled, auto-scroll to first diff
67+
- Issue: #1655
68+
- Effort: 4 hours
69+
70+
### Advanced Search System
71+
72+
- [ ] **Global Repository Search**
73+
- New ViewModel: `src/ViewModels/GlobalSearch.cs`
74+
- Search across all registered repositories
75+
- Index commit messages, file names, and content
76+
- Effort: 1 week
77+
78+
- [ ] **Full-Text Commit Search** [`src/Commands/QueryCommits.cs`]
79+
- Implement commit message indexing
80+
- Add search filters (author, date, branch)
81+
- Effort: 3 days
82+
83+
---
84+
85+
## 🟢 Priority 3 - Performance Optimizations
86+
87+
### Memory Management
88+
89+
- [ ] **LRU Cache for Commit Graph** [`src/ViewModels/Repository.cs:2429-2432`]
90+
- Replace basic caching with LRU implementation
91+
- Add memory pressure detection
92+
- Implement size limits and eviction policies
93+
- Effort: 2 days
94+
95+
- [ ] **Performance Logging to File** [`src/Models/PerformanceMonitor.cs:203-204`]
96+
- Implement optional file-based logging
97+
- Add log rotation and size limits
98+
- Create performance analysis tools
99+
- Effort: 1 day
100+
101+
### macOS Optimizations
102+
103+
- [ ] **FSEvents Integration** [`src/Native/MacOS.cs`]
104+
- Replace FileSystemWatcher with native FSEvents
105+
- Better performance for large repositories
106+
- Create new class: `src/Native/MacOSFileWatcher.cs`
107+
- Effort: 1 week
108+
109+
- [ ] **Apple Silicon Detection & Optimization**
110+
```csharp
111+
// Add to src/Native/MacOS.cs
112+
public bool IsAppleSilicon() =>
113+
RuntimeInformation.ProcessArchitecture == Architecture.Arm64;
114+
```
115+
- Optimize Git path detection for ARM64
116+
- Add ARM64-specific process optimizations
117+
- Effort: 2 days
118+
119+
### Async Operations
120+
121+
- [ ] **Convert Blocking Operations to Async** [`src/ViewModels/`]
122+
- Audit all ViewModels for blocking operations
123+
- Convert to async/await with ConfigureAwait(false)
124+
- Priority files:
125+
- `Repository.cs`
126+
- `WorkingCopy.cs`
127+
- `Histories.cs`
128+
- Effort: 3 days
129+
130+
---
131+
132+
## 🔵 Priority 4 - UI/UX Enhancements
133+
134+
### Drag & Drop Support
135+
136+
- [ ] **Commit Cherry-Pick via Drag** [`src/Views/Histories.axaml.cs`]
137+
- Enable dragging commits between branches
138+
- Visual feedback during drag operation
139+
- Effort: 3 days
140+
141+
- [ ] **File Operations Drag & Drop** [`src/Views/WorkingCopy.axaml.cs`]
142+
- Drag files to stage/unstage
143+
- Create patches via drag to desktop
144+
- Effort: 2 days
145+
146+
### Interactive Git Graph
147+
148+
- [ ] **Graph Filtering** [`src/Views/Histories.axaml`]
149+
- Filter by author
150+
- Filter by date range
151+
- Filter by branch
152+
- Effort: 3 days
153+
154+
- [ ] **Inline Commit Search** [`src/Views/Histories.axaml`]
155+
- Add search box directly in graph view
156+
- Real-time filtering as you type
157+
- Effort: 2 days
158+
159+
### Theme System
160+
161+
- [ ] **High Contrast Mode**
162+
- Create new theme: `src/Resources/Themes/HighContrast.axaml`
163+
- WCAG 2.1 AA compliance
164+
- Effort: 2 days
165+
166+
- [ ] **Custom Theme Editor**
167+
- New view: `src/Views/ThemeEditor.axaml`
168+
- Live preview of theme changes
169+
- Export/import theme files
170+
- Effort: 1 week
171+
172+
---
173+
174+
## 🟣 Priority 5 - Advanced Features
175+
176+
### Repository Templates
177+
178+
- [ ] **Template System**
179+
- New model: `src/Models/RepositoryTemplate.cs`
180+
- Predefined templates for common project types
181+
- Custom template creation
182+
- Effort: 1 week
183+
184+
- [ ] **Pre-commit Hook Management**
185+
- UI for managing Git hooks
186+
- Template library for common hooks
187+
- New view: `src/Views/GitHooksManager.axaml`
188+
- Effort: 3 days
189+
190+
### Team Collaboration
191+
192+
- [ ] **Pull Request Preview** (Read-Only)
193+
- Fetch PR data from GitHub/GitLab APIs
194+
- Display PR status and reviews
195+
- New ViewModel: `src/ViewModels/PullRequestViewer.cs`
196+
- Effort: 2 weeks
197+
198+
- [ ] **Enhanced Issue Tracker Integration**
199+
- Auto-link issues in commit messages
200+
- Show issue status inline
201+
- Effort: 1 week
202+
203+
### Git Advanced Features
204+
205+
- [ ] **Git Worktree Enhanced UI**
206+
- Dedicated worktree management view
207+
- Visual worktree switching
208+
- New view: `src/Views/WorktreeManager.axaml`
209+
- Effort: 1 week
210+
211+
- [ ] **Partial Clone Support**
212+
- UI for configuring partial clones
213+
- Visual indicators for partial repositories
214+
- Effort: 3 days
215+
216+
- [ ] **Git LFS Improvements**
217+
- Better visual indicators for LFS files
218+
- LFS file size warnings
219+
- Batch LFS operations
220+
- Effort: 3 days
221+
222+
---
223+
224+
## 🟤 Priority 6 - Architecture & Long-term
225+
226+
### Plugin System
227+
228+
- [ ] **Plugin Architecture Foundation**
229+
- Design plugin API
230+
- Create plugin loader: `src/Plugins/PluginManager.cs`
231+
- Plugin manifest format
232+
- Effort: 3 weeks
233+
234+
- [ ] **Example Plugins**
235+
- GitLab integration plugin
236+
- Custom theme plugin
237+
- External tool integration plugin
238+
- Effort: 2 weeks
239+
240+
### Code Quality
241+
242+
- [ ] **Error Handling Standardization**
243+
- Create centralized error handler
244+
- Structured logging system
245+
- User-friendly error messages
246+
- Effort: 1 week
247+
248+
- [ ] **Unit Test Coverage**
249+
- Add tests for critical components
250+
- Target 80% coverage for new code
251+
- Set up CI/CD test automation
252+
- Effort: Ongoing
253+
254+
---
255+
256+
## Implementation Schedule
257+
258+
### Sprint 1 (Week 1-2)
259+
- All Priority 1 fixes
260+
- Start Built-in Merge Editor design
261+
- Begin Enhanced Diff Viewer work
262+
263+
### Sprint 2 (Week 3-4)
264+
- Complete Enhanced Diff Viewer
265+
- Implement Advanced Search foundation
266+
- Start Memory Management improvements
267+
268+
### Sprint 3 (Week 5-6)
269+
- Complete Merge Conflict Resolution
270+
- macOS optimizations
271+
- Async operations conversion
272+
273+
### Sprint 4 (Week 7-8)
274+
- UI/UX enhancements
275+
- Drag & Drop support
276+
- Theme system improvements
277+
278+
### Future Sprints
279+
- Advanced features
280+
- Plugin system
281+
- Team collaboration features
282+
283+
---
284+
285+
## Success Metrics
286+
287+
- **Performance**: 30% reduction in memory usage for large repos
288+
- **Stability**: 90% reduction in crash reports
289+
- **Features**: Feature parity with GitKraken for core functionality
290+
- **User Satisfaction**: 4.5+ star rating on package managers
291+
292+
---
293+
294+
## Notes
295+
296+
- Items marked with issue numbers reference upstream SourceGit issues
297+
- Effort estimates assume single developer working full-time
298+
- Priority can be adjusted based on user feedback and telemetry
299+
- This list will be updated as items are completed or new issues discovered
300+
301+
---
302+
303+
Last Updated: 2025-09-09

0 commit comments

Comments
 (0)