Skip to content

Commit e966c80

Browse files
authored
Improve UX & Bug fixes (#14)
### Added - Dark Mode support - Live token count updates during file selection - Separated include/exclude configuration boxes for better organization - Auto detect and exclude binary files - Use .gitignore to exclude files/folders ### Improved - Enhanced UX/UI with better spacing and visual hierarchy - Faster UI rendering and response times - Simplified text entry for file patterns (vs. YAML format) ### Fixed - Multiple bug fixes in file selection and processing - Added robust testing for file selection edge cases
1 parent cf27977 commit e966c80

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+5280
-1434
lines changed

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [v0.2.0] - 2025-03-31
6+
7+
### Added
8+
9+
- Dark Mode support
10+
- Live token count updates during file selection
11+
- Separated include/exclude configuration boxes for better organization
12+
- Auto detect and exclude binary files
13+
- Use .gitignore to exclude files/folders
14+
15+
### Improved
16+
17+
- Enhanced UX/UI with better spacing and visual hierarchy
18+
- Faster UI rendering and response times
19+
- Simplified text entry for file patterns (vs. YAML format)
20+
21+
### Fixed
22+
23+
- Multiple bug fixes in file selection and processing
24+
- Added robust testing for file selection edge cases
25+
526
## [v0.1.0] - 2025-03-11
627

728
Initial release of the AI Code Fusion application with the following features:

README.md

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ A desktop application for preparing and optimizing code repositories for AI proc
1414

1515
### Download
1616

17-
Download the latest version for your platform from the [Releases page](https://github.com/user/repo/releases).
17+
Download the latest version for your platform from the [Releases page](https://github.com/codingworkflow/ai-code-fusion/releases).
1818

1919
### Windows
2020

@@ -36,45 +36,41 @@ Download the latest version for your platform from the [Releases page](https://g
3636

3737
## Usage Guide
3838

39-
### 1. Configuration
39+
### 1. Start and Filters
4040

41-
Configure file filtering to include or exclude specific file types and patterns.
41+
The application now features both Dark and Light modes for improved user experience.
42+
![Start Panel Dark Mode](assets/ai_code_fusion_1.jpg)
4243

43-
![Config Panel](assets/ai_code_fusion_1.jpg)
44+
![Start Panel Light Mode](assets/ai_code_fusion_2.jpg)
4445

45-
- Set file extensions to include (e.g., `.js`, `.py`, `.cpp`)
46-
- Define patterns to exclude (e.g., `node_modules`, `.git`, `build`)
47-
- Choose your token counting model based on your target AI system
46+
Extended file filtering options:
47+
48+
- Exclude specific file types and patterns (using glob patterns) to remove build folders, venv, node_modules, .git from tree view and file selection
49+
- Automatically exclude files based on .gitignore files in your repository
50+
- Reduce selection to only the file extensions you specify
51+
- Display token count in real-time during selection (can be disabled for very large repositories)
52+
- Include file tree in output (recommended for better context in AI models)
4853

4954
### 2. File Selection
5055

51-
Select files and directories to analyze and process.
56+
Select specific files and directories to analyze and process.
5257

53-
![Source Panel](assets/ai_code_fusion_2.jpg)
58+
![Analysis Panel](assets/ai_code_fusion_3.jpg)
5459

5560
- Browse and select your root project directory
5661
- Use the tree view to select specific files or folders
57-
- See file counts and sizes in real-time
58-
59-
### 3. Token Analysis
60-
61-
Get accurate token estimations before processing.
62-
63-
![Analysis Panel](assets/ai_code_fusion_3.jpg)
64-
65-
- View token counts per file and total
66-
- See character and line counts
67-
- Get estimations for different AI models
62+
- See file counts and token sizes in real-time (when token display is enabled)
6863

69-
### 4. Final Processing
64+
### 3. Final Processing
7065

7166
Generate the processed output ready for use with AI systems.
7267

7368
![Processing Panel](assets/ai_code_fusion_4.jpg)
7469

75-
- Get the final processed content
76-
- Copy directly to clipboard
77-
- Export to file if needed
70+
- View the final processed content ready for AI systems
71+
- Copy content directly to clipboard for immediate use
72+
- Export to file for later reference
73+
- Review files by token count to help identify large files you may want to exclude
7874

7975
## Building from Source
8076

@@ -88,8 +84,8 @@ Generate the processed output ready for use with AI systems.
8884

8985
```bash
9086
# Clone the repository
91-
git clone https://github.com/user/repo.git
92-
cd repo
87+
git clone https://github.com/codingworkflow/ai-code-fusion
88+
cd ai-code-fusion
9389

9490
# Install dependencies
9591
make setup

assets/ai_code_fusion_1.jpg

26.9 KB
Loading

assets/ai_code_fusion_2.jpg

-3.06 KB
Loading

assets/ai_code_fusion_3.jpg

-45.5 KB
Loading

assets/ai_code_fusion_4.jpg

-56.8 KB
Loading

docs/CONFIGURATION.md

Lines changed: 122 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,92 @@
11
# Configuration Guide
22

3-
The AI Code Fusion uses a YAML configuration for file filtering. This document explains the available configuration options and best practices.
3+
AI Code Fusion uses YAML configuration for file filtering. This document explains the available configuration options and best practices.
44

55
## Configuration Format
66

7-
The application uses YAML format for its configuration:
8-
9-
```yaml
10-
# File extensions to include (with dot)
11-
include_extensions:
12-
- .py
13-
- .ts
14-
- .js
15-
- .md
16-
- .ini
17-
- .yaml
18-
- .yml
19-
- .kt
20-
- .go
21-
- .scm
22-
- .php
7+
The application uses YAML format for its configuration. Below is an example showing common configuration patterns:
8+
9+
### File extensions to include (with dot)
10+
11+
```
12+
.py
13+
.ts
14+
.js
15+
.md
16+
.ini
17+
.yaml
18+
.yml
19+
.kt
20+
.go
21+
.scm
22+
.php
2323
2424
# Patterns to exclude (using fnmatch syntax)
25-
exclude_patterns:
26-
# Version Control
27-
- '**/.git/**'
28-
- '**/.svn/**'
29-
- '**/.hg/**'
30-
- '**/vocab.txt'
31-
- '**.onnx'
32-
- '**/test*.py'
33-
34-
# Dependencies
35-
- '**/node_modules/**'
36-
- '**/venv/**'
37-
- '**/env/**'
38-
- '**/.venv/**'
39-
- '**/.github/**'
40-
- '**/vendor/**'
41-
- '**/website/**'
42-
43-
# Build outputs
44-
- '**/test/**'
45-
- '**/dist/**'
46-
- '**/build/**'
47-
- '**/__pycache__/**'
48-
- '**/*.pyc'
49-
50-
# Config files
51-
- '**/.DS_Store'
52-
- '**/.env'
53-
- '**/package-lock.json'
54-
- '**/yarn.lock'
55-
- '**/.prettierrc'
56-
- '**/.prettierignore'
57-
- '**/.gitignore'
58-
- '**/.gitattributes'
59-
- '**/.npmrc'
60-
61-
# Documentation
62-
- '**/LICENSE*'
63-
- '**/LICENSE.*'
64-
- '**/COPYING'
65-
- '**/CODE_OF**'
66-
- '**/CONTRIBUTING**'
67-
68-
# Test files
69-
- '**/tests/**'
70-
- '**/test/**'
71-
- '**/__tests__/**'
25+
# Version Control
26+
'**/.git/**'
27+
'**/.svn/**'
28+
'**/.hg/**'
29+
'**/vocab.txt'
30+
'**.onnx'
31+
'**/test*.py'
32+
33+
# Dependencies
34+
'**/node_modules/**'
35+
'**/venv/**'
36+
'**/env/**'
37+
'**/.venv/**'
38+
'**/.github/**'
39+
'**/vendor/**'
40+
'**/website/**'
41+
42+
# Build outputs
43+
'**/test/**'
44+
'**/dist/**'
45+
'**/build/**'
46+
'**/__pycache__/**'
47+
'**/*.pyc'
48+
49+
# Config files
50+
'**/.DS_Store'
51+
'**/.env'
52+
'**/package-lock.json'
53+
'**/yarn.lock'
54+
'**/.prettierrc'
55+
'**/.prettierignore'
56+
'**/.gitignore'
57+
'**/.gitattributes'
58+
'**/.npmrc'
59+
60+
# Documentation
61+
'**/LICENSE*'
62+
'**/LICENSE.*'
63+
'**/COPYING'
64+
'**/CODE_OF**'
65+
'**/CONTRIBUTING**'
66+
67+
# Test files
68+
'**/tests/**'
69+
'**/test/**'
70+
'**/__tests__/**'
7271
```
7372

7473
## Configuration Options
7574

7675
### Include Extensions
7776

78-
The `include_extensions` section specifies file extensions that should be processed. Only files with these extensions will be considered for processing.
77+
The `include_extensions` section specifies which file extensions should be processed. Only files with these extensions will be considered for processing.
7978

8079
Example:
8180

82-
```yaml
83-
include_extensions:
84-
- .py # Include Python files
85-
- .js # Include JavaScript files
86-
- .md # Include Markdown files
81+
```
82+
.py # Include Python files
83+
.js # Include JavaScript files
84+
.md # Include Markdown files
8785
```
8886

8987
### Exclude Patterns
9088

91-
The `exclude_patterns` section specifies patterns for files and directories that should be excluded from processing, even if they have an included extension.
89+
The `exclude_patterns` section defines patterns for files and directories that should be excluded from processing, even if they have a matching extension from the include list.
9290

9391
Patterns use the fnmatch syntax:
9492

@@ -98,11 +96,10 @@ Patterns use the fnmatch syntax:
9896

9997
Example:
10098

101-
```yaml
102-
exclude_patterns:
103-
- '**/node_modules/**' # Exclude all node_modules directories
104-
- '**/.git/**' # Exclude Git directories
105-
- '**/test*.py' # Exclude Python files that start with 'test'
99+
```
100+
'**/node_modules/**' # Exclude all node_modules directories
101+
'**/.git/**' # Exclude Git directories
102+
'**/test*.py' # Exclude Python files that start with 'test'
106103
```
107104

108105
## Best Practices
@@ -111,53 +108,65 @@ exclude_patterns:
111108
2. **Group related patterns** with comments for better organization
112109
3. **Be specific with extensions** to avoid processing unnecessary files
113110
4. **Use the file preview** to verify your configuration is working as expected
114-
5. **Check token counts** to ensure you stay within your model's context limit
111+
5. **Check token counts** to ensure you stay within your model's context limits
115112

116113
## Common Configurations
117114

115+
Here are some typical configurations for different project types:
116+
118117
### For JavaScript/TypeScript Projects
119118

120-
```yaml
121-
include_extensions:
122-
- .js
123-
- .jsx
124-
- .ts
125-
- .tsx
126-
- .md
127-
- .json
128-
129-
exclude_patterns:
130-
- '**/node_modules/**'
131-
- '**/dist/**'
132-
- '**/build/**'
133-
- '**/.cache/**'
134-
- '**/coverage/**'
135-
- '**/*.test.*'
136-
- '**/*.spec.*'
119+
#### include_extensions:
120+
121+
```
122+
.js
123+
.jsx
124+
.ts
125+
.tsx
126+
.md
127+
.json
128+
```
129+
130+
#### #### exclude_patterns:
131+
132+
```
133+
'**/node_modules/**'
134+
'**/dist/**'
135+
'**/build/**'
136+
'**/.cache/**'
137+
'**/coverage/**'
138+
'**/*.test.*'
139+
'**/*.spec.*'
137140
```
138141

139142
### For Python Projects
140143

141-
```yaml
142-
include_extensions:
143-
- .py
144-
- .md
145-
- .yml
146-
- .yaml
147-
- .ini
148-
149-
exclude_patterns:
150-
- '**/venv/**'
151-
- '**/.venv/**'
152-
- '**/__pycache__/**'
153-
- '**/*.pyc'
154-
- '**/tests/**'
155-
- '**/.pytest_cache/**'
144+
#### include_extensions:
145+
146+
```
147+
.py
148+
.md
149+
.yml
150+
.yaml
151+
.ini
152+
```
153+
154+
#### #### exclude_patterns:
155+
156+
```
157+
'**/venv/**'
158+
'**/.venv/**'
159+
'**/__pycache__/**'
160+
'**/*.pyc'
161+
'**/tests/**'
162+
'**/.pytest_cache/**'
156163
```
157164

158165
## Troubleshooting
159166

160-
- **No files are processed**: Check that the file extensions match your project files
161-
- **Too many files are processed**: Add more specific exclude patterns
162-
- **Important files are excluded**: Check for conflicting exclude patterns
163-
- **Token count is too high**: Add more exclude patterns to reduce the number of files
167+
If you encounter issues with your configuration:
168+
169+
- **No files are processed**: Verify that your include extensions match your project's file types
170+
- **Too many files are processed**: Add more specific exclude patterns to filter unwanted files
171+
- **Important files are excluded**: Check for conflicting exclude patterns that might be too broad
172+
- **Token count is too high**: Add more exclude patterns to reduce the number of processed files

0 commit comments

Comments
 (0)