@mehmetsagir/git-ai 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,14 +1,13 @@
1
- # Git AI
1
+ # git-ai
2
2
 
3
- AI-powered git commit tool. Analyzes changes, groups them logically, and creates commits in Conventional Commits format.
3
+ AI-powered git commit tool that analyzes your changes, groups them logically, and creates meaningful commits following the Conventional Commits standard.
4
4
 
5
5
  ## Features
6
6
 
7
- - **Smart Grouping**: Groups related files together by feature
8
- - **Conventional Commits**: Uses standard commit message format (feat, fix, refactor, etc.)
9
- - **All Changes Included**: Handles tracked, untracked, new, and deleted files
10
- - **Safe**: Shows commit plan for approval before committing
11
- - **Stash Viewer**: Browse git stashes in a web UI with syntax highlighting
7
+ - **Smart Commit Grouping** - AI analyzes your changes and groups related files together by feature or purpose
8
+ - **Conventional Commits** - Automatically generates commit messages in standard format (`feat`, `fix`, `refactor`, `chore`, etc.)
9
+ - **Stash Viewer** - Browse and manage git stashes in a beautiful web UI with diff viewer
10
+ - **Safe Workflow** - Always shows a commit plan for your approval before making any changes
12
11
 
13
12
  ## Installation
14
13
 
@@ -18,26 +17,33 @@ npm install -g @mehmetsagir/git-ai
18
17
 
19
18
  ## Setup
20
19
 
20
+ Before using git-ai, you need to configure your OpenAI API key:
21
+
21
22
  ```bash
22
23
  git-ai setup
23
24
  ```
24
25
 
25
- Enter your OpenAI API key when prompted.
26
+ You'll be prompted to enter your OpenAI API key. Get one from [OpenAI Platform](https://platform.openai.com/api-keys).
27
+
28
+ ## Commands
26
29
 
27
- ## Usage
30
+ ### `git-ai commit`
31
+
32
+ Analyze all changes in your repository and create intelligent commits.
28
33
 
29
34
  ```bash
30
35
  git-ai commit
31
36
  ```
32
37
 
33
- The tool will:
34
- 1. Analyze all changes (staged, unstaged, and untracked)
35
- 2. Group related files by feature
36
- 3. Show commit plan for approval
37
- 4. Create commits
38
-
39
- ### Example
38
+ **What it does:**
39
+ 1. Scans all changes (staged, unstaged, and untracked files)
40
+ 2. Sends diff to AI for analysis
41
+ 3. Groups related files together
42
+ 4. Generates commit messages for each group
43
+ 5. Shows you the commit plan for approval
44
+ 6. Creates commits after your confirmation
40
45
 
46
+ **Example output:**
41
47
  ```
42
48
  🤖 Git AI
43
49
 
@@ -73,29 +79,41 @@ Changes:
73
79
  ⚠ Don't forget to push: git push
74
80
  ```
75
81
 
76
- ## Commands
77
-
78
- | Command | Description |
79
- |---------|-------------|
80
- | `git-ai setup` | Configure OpenAI API key |
81
- | `git-ai commit` | Analyze and create commits |
82
- | `git-ai stash` | View git stashes in browser |
83
- | `git-ai reset` | Reset configuration |
82
+ ### `git-ai stash`
84
83
 
85
- ### Stash Viewer
84
+ Open a web-based UI to browse and manage your git stashes.
86
85
 
87
86
  ```bash
88
87
  git-ai stash
89
88
  ```
90
89
 
91
- Opens a browser with a visual interface to view all your git stashes:
92
- - See all stashes with branch, message, and date
93
- - Click to expand and view the full diff
90
+ **Features:**
91
+ - View all stashes in a clean list
92
+ - Click to see changed files and full diff
93
+ - VS Code-style split diff view (Original | Modified)
94
+ - Apply stash to your working directory
95
+ - Delete stashes you no longer need
94
96
  - Syntax highlighting for code changes
95
97
 
98
+ ### `git-ai setup`
99
+
100
+ Configure or update your OpenAI API key.
101
+
102
+ ```bash
103
+ git-ai setup
104
+ ```
105
+
106
+ ### `git-ai reset`
107
+
108
+ Reset all configuration (removes stored API key).
109
+
110
+ ```bash
111
+ git-ai reset
112
+ ```
113
+
96
114
  ## Configuration
97
115
 
98
- Config file: `~/.git-ai/config.json`
116
+ Configuration is stored in `~/.git-ai/config.json`:
99
117
 
100
118
  ```json
101
119
  {
@@ -106,63 +124,111 @@ Config file: `~/.git-ai/config.json`
106
124
  ## Requirements
107
125
 
108
126
  - Node.js >= 14.0.0
109
- - OpenAI API key
110
127
  - Git repository
128
+ - OpenAI API key
111
129
 
112
- ## Changelog
130
+ ## Contributing
113
131
 
114
- ### v0.0.18
115
- **Stash Viewer Improvements**
132
+ Contributions are welcome! Here's how you can help:
116
133
 
117
- - Redesigned UI with navigation pattern (click stash to view details, back button to return)
118
- - VS Code-style split diff view (Original | Modified)
119
- - Added Apply and Delete stash actions
120
- - Toast notifications for action feedback
121
- - Added git-ai branding footer with GitHub link
134
+ ### Development Setup
135
+
136
+ 1. **Clone the repository**
137
+ ```bash
138
+ git clone https://github.com/mehmetsagir/git-ai.git
139
+ cd git-ai
140
+ ```
122
141
 
123
- ### v0.0.16
124
- **Stash Viewer**
142
+ 2. **Install dependencies**
143
+ ```bash
144
+ npm install
145
+ ```
125
146
 
126
- - New `git-ai stash` command
127
- - Browse stashes in a web UI
128
- - View diffs with syntax highlighting
129
- - Click to expand/collapse each stash
147
+ 3. **Build the project**
148
+ ```bash
149
+ npm run build
150
+ ```
130
151
 
131
- ### v0.0.15
132
- **Code Cleanup**
152
+ 4. **Test locally**
153
+ ```bash
154
+ # Run directly
155
+ node bin/git-ai [command]
133
156
 
134
- - Removed 7 unused functions from git.ts (54% smaller)
135
- - Removed unused `createPatch` from hunk-parser.ts
136
- - Cleaned up package.json metadata
137
- - Added `bugs` and `homepage` fields
157
+ # Or link globally
158
+ npm link
159
+ git-ai [command]
160
+ ```
161
+
162
+ ### Project Structure
163
+
164
+ ```
165
+ src/
166
+ ├── index.ts # CLI entry point and command routing
167
+ ├── git.ts # Git operations (using simple-git)
168
+ ├── openai.ts # OpenAI API integration
169
+ ├── commit.ts # Commit workflow logic
170
+ ├── stash.ts # Stash viewer web UI
171
+ ├── config.ts # Configuration management
172
+ ├── setup.ts # Setup wizard
173
+ ├── reset.ts # Reset configuration
174
+ ├── prompts.ts # AI prompts for commit analysis
175
+ ├── types.ts # TypeScript type definitions
176
+ └── utils/
177
+ ├── errors.ts # Error handling utilities
178
+ └── hunk-parser.ts # Diff parsing utilities
179
+ ```
138
180
 
139
- ### v0.0.14
140
- **Major Refactor - Stability Release**
181
+ ### Making Changes
141
182
 
142
- **Added:**
143
- - Catch-all group for files missed by AI grouping
144
- - Support for untracked (new) files in commit analysis
145
- - Robust diff parser with file path validation
183
+ 1. Create a new branch for your feature
184
+ ```bash
185
+ git checkout -b feature/your-feature-name
186
+ ```
146
187
 
147
- **Changed:**
148
- - Simplified to file-based grouping (more reliable than hunk-based)
149
- - Improved error handling throughout
188
+ 2. Make your changes and test them locally
150
189
 
151
- **Removed:**
152
- - User management features (add, list, remove users)
153
- - Editor-based commit message editing
154
- - Update notifier
155
- - Hunk-level commit splitting (caused file corruption issues)
156
- - Summary command
190
+ 3. Build and verify there are no TypeScript errors
191
+ ```bash
192
+ npm run build
193
+ ```
157
194
 
158
- **Fixed:**
159
- - Parser no longer misinterprets diff content as file names
160
- - All changed files now included in commits (no orphaned files)
161
- - No more "corrupt patch" errors
195
+ 4. Commit your changes using conventional commits format
196
+ ```bash
197
+ git commit -m "feat: add new feature"
198
+ ```
162
199
 
163
- ### v0.0.13 and earlier
164
- - Initial releases with experimental hunk-based commit splitting
200
+ 5. Push and create a pull request
201
+ ```bash
202
+ git push origin feature/your-feature-name
203
+ ```
204
+
205
+ ### Commit Message Guidelines
206
+
207
+ We follow [Conventional Commits](https://www.conventionalcommits.org/):
208
+
209
+ - `feat:` - New features
210
+ - `fix:` - Bug fixes
211
+ - `refactor:` - Code changes that neither fix bugs nor add features
212
+ - `chore:` - Maintenance tasks
213
+ - `docs:` - Documentation changes
214
+ - `style:` - Code style changes (formatting, etc.)
215
+ - `test:` - Adding or updating tests
216
+
217
+ ### Reporting Issues
218
+
219
+ Found a bug or have a suggestion? [Open an issue](https://github.com/mehmetsagir/git-ai/issues) with:
220
+
221
+ - Clear description of the problem or suggestion
222
+ - Steps to reproduce (for bugs)
223
+ - Expected vs actual behavior
224
+ - Your environment (Node.js version, OS, etc.)
165
225
 
166
226
  ## License
167
227
 
168
228
  MIT
229
+
230
+ ## Links
231
+
232
+ - [GitHub Repository](https://github.com/mehmetsagir/git-ai)
233
+ - [npm Package](https://www.npmjs.com/package/@mehmetsagir/git-ai)
234
+ - [Report Issues](https://github.com/mehmetsagir/git-ai/issues)
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAOxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAGnD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2B3D;AAeD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAoBnD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CA8C1D;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjE;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMnC,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAOxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAGnD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2B3D;AAeD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAoBnD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CA8C1D;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjE;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D"}
package/dist/git.js CHANGED
@@ -51,10 +51,12 @@ exports.applyStash = applyStash;
51
51
  exports.dropStash = dropStash;
52
52
  const simple_git_1 = __importDefault(require("simple-git"));
53
53
  const path = __importStar(require("path"));
54
- const git = (0, simple_git_1.default)(process.cwd());
54
+ function getGit() {
55
+ return (0, simple_git_1.default)(process.cwd());
56
+ }
55
57
  async function isGitRepository() {
56
58
  try {
57
- await git.status();
59
+ await getGit().status();
58
60
  return true;
59
61
  }
60
62
  catch {
@@ -62,11 +64,11 @@ async function isGitRepository() {
62
64
  }
63
65
  }
64
66
  async function hasChanges() {
65
- const status = await git.status();
67
+ const status = await getGit().status();
66
68
  return status.files.length > 0;
67
69
  }
68
70
  async function getChangedFiles() {
69
- const status = await git.status();
71
+ const status = await getGit().status();
70
72
  const files = [];
71
73
  const seen = new Set();
72
74
  for (const f of status.files) {
@@ -106,27 +108,27 @@ function isBinaryFile(filePath) {
106
108
  async function stageFiles(files) {
107
109
  if (files.length === 0)
108
110
  return;
109
- await git.add(files);
111
+ await getGit().add(files);
110
112
  }
111
113
  async function unstageAll() {
112
114
  try {
113
- await git.reset(["HEAD"]);
115
+ await getGit().reset(["HEAD"]);
114
116
  }
115
117
  catch {
116
118
  // Ignore if nothing staged
117
119
  }
118
120
  }
119
121
  async function createCommit(message) {
120
- await git.commit(message);
122
+ await getGit().commit(message);
121
123
  }
122
124
  async function getStagedFiles() {
123
- const status = await git.status();
125
+ const status = await getGit().status();
124
126
  return status.staged;
125
127
  }
126
128
  async function getFullDiff() {
127
129
  let diff = "";
128
130
  try {
129
- const unstaged = await git.diff();
131
+ const unstaged = await getGit().diff();
130
132
  if (unstaged)
131
133
  diff = unstaged;
132
134
  }
@@ -134,7 +136,7 @@ async function getFullDiff() {
134
136
  // Ignore
135
137
  }
136
138
  try {
137
- const staged = await git.diff(["--cached"]);
139
+ const staged = await getGit().diff(["--cached"]);
138
140
  if (staged) {
139
141
  diff = diff ? diff + "\n" + staged : staged;
140
142
  }
@@ -147,7 +149,7 @@ async function getFullDiff() {
147
149
  async function getStashList() {
148
150
  try {
149
151
  // Use git.raw for better compatibility
150
- const result = await git.raw(["stash", "list", "--format=%H|%s|%ci"]);
152
+ const result = await getGit().raw(["stash", "list", "--format=%H|%s|%ci"]);
151
153
  if (!result || !result.trim())
152
154
  return [];
153
155
  const lines = result.trim().split("\n");
@@ -167,7 +169,7 @@ async function getStashList() {
167
169
  catch (err) {
168
170
  // Fallback: try without format
169
171
  try {
170
- const result = await git.raw(["stash", "list"]);
172
+ const result = await getGit().raw(["stash", "list"]);
171
173
  if (!result || !result.trim())
172
174
  return [];
173
175
  const lines = result.trim().split("\n");
@@ -193,7 +195,7 @@ async function getStashList() {
193
195
  }
194
196
  async function getStashDiff(index) {
195
197
  try {
196
- const result = await git.raw(["stash", "show", "-p", `stash@{${index}}`]);
198
+ const result = await getGit().raw(["stash", "show", "-p", `stash@{${index}}`]);
197
199
  return result || "";
198
200
  }
199
201
  catch {
@@ -202,7 +204,7 @@ async function getStashDiff(index) {
202
204
  }
203
205
  async function getStashFiles(index) {
204
206
  try {
205
- const result = await git.raw(["stash", "show", "--name-only", `stash@{${index}}`]);
207
+ const result = await getGit().raw(["stash", "show", "--name-only", `stash@{${index}}`]);
206
208
  if (!result)
207
209
  return [];
208
210
  return result.trim().split("\n").filter(f => f.trim());
@@ -212,9 +214,9 @@ async function getStashFiles(index) {
212
214
  }
213
215
  }
214
216
  async function applyStash(index) {
215
- await git.raw(["stash", "apply", `stash@{${index}}`]);
217
+ await getGit().raw(["stash", "apply", `stash@{${index}}`]);
216
218
  }
217
219
  async function dropStash(index) {
218
- await git.raw(["stash", "drop", `stash@{${index}}`]);
220
+ await getGit().raw(["stash", "drop", `stash@{${index}}`]);
219
221
  }
220
222
  //# sourceMappingURL=git.js.map
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAsrBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+GpD"}
1
+ {"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAkvBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+GpD"}
package/dist/stash.js CHANGED
@@ -42,12 +42,20 @@ const child_process_1 = require("child_process");
42
42
  const chalk_1 = __importDefault(require("chalk"));
43
43
  const git = __importStar(require("./git"));
44
44
  const PORT = 3847;
45
+ function safeJsonEmbed(obj) {
46
+ return JSON.stringify(obj)
47
+ .replace(/</g, '\\u003c')
48
+ .replace(/>/g, '\\u003e')
49
+ .replace(/&/g, '\\u0026');
50
+ }
45
51
  function getHtml(data) {
46
- const stashesJson = JSON.stringify(data.stashes);
47
52
  const diffsJson = {};
48
53
  const filesJson = {};
49
54
  data.diffs.forEach((v, k) => { diffsJson[k] = v; });
50
55
  data.files.forEach((v, k) => { filesJson[k] = v; });
56
+ const stashesJsonSafe = safeJsonEmbed(data.stashes);
57
+ const diffsJsonSafe = safeJsonEmbed(diffsJson);
58
+ const filesJsonSafe = safeJsonEmbed(filesJson);
51
59
  return `<!DOCTYPE html>
52
60
  <html>
53
61
  <head>
@@ -85,30 +93,33 @@ function getHtml(data) {
85
93
  align-items: center;
86
94
  gap: 8px;
87
95
  }
88
- .back-btn {
96
+ .header-nav {
89
97
  display: flex;
90
98
  align-items: center;
91
- gap: 6px;
99
+ gap: 12px;
100
+ width: 100%;
101
+ }
102
+ .back-btn {
103
+ display: inline-flex;
104
+ align-items: center;
105
+ gap: 4px;
92
106
  background: none;
93
107
  border: none;
94
108
  color: #58a6ff;
95
109
  cursor: pointer;
96
- font-size: 12px;
97
- padding: 4px 8px;
98
- border-radius: 4px;
99
- transition: background 0.1s;
110
+ font-size: 13px;
111
+ padding: 0;
112
+ transition: opacity 0.15s;
100
113
  }
101
- .back-btn:hover { background: #3c3c3c; }
114
+ .back-btn:hover { opacity: 0.8; }
102
115
  .back-btn svg {
103
- width: 14px;
104
- height: 14px;
116
+ width: 16px;
117
+ height: 16px;
105
118
  }
106
119
  .stash-title {
107
120
  color: #4ec9b0;
108
- font-size: 12px;
121
+ font-size: 13px;
109
122
  font-weight: 500;
110
- text-transform: none;
111
- letter-spacing: normal;
112
123
  }
113
124
  .sidebar-footer {
114
125
  padding: 14px 16px;
@@ -184,14 +195,14 @@ function getHtml(data) {
184
195
  }
185
196
  .toast {
186
197
  position: fixed;
187
- bottom: 20px;
198
+ top: 20px;
188
199
  right: 20px;
189
200
  padding: 12px 20px;
190
201
  border-radius: 6px;
191
202
  font-size: 13px;
192
203
  color: #fff;
193
204
  opacity: 0;
194
- transform: translateY(10px);
205
+ transform: translateY(-10px);
195
206
  transition: opacity 0.2s, transform 0.2s;
196
207
  z-index: 1000;
197
208
  }
@@ -201,6 +212,36 @@ function getHtml(data) {
201
212
  }
202
213
  .toast.success { background: #238636; }
203
214
  .toast.error { background: #da3633; }
215
+ .loader-overlay {
216
+ position: fixed;
217
+ top: 0;
218
+ left: 0;
219
+ right: 0;
220
+ bottom: 0;
221
+ background: rgba(0, 0, 0, 0.5);
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: center;
225
+ z-index: 999;
226
+ opacity: 0;
227
+ visibility: hidden;
228
+ transition: opacity 0.2s, visibility 0.2s;
229
+ }
230
+ .loader-overlay.show {
231
+ opacity: 1;
232
+ visibility: visible;
233
+ }
234
+ .loader {
235
+ width: 40px;
236
+ height: 40px;
237
+ border: 3px solid #3c3c3c;
238
+ border-top-color: #58a6ff;
239
+ border-radius: 50%;
240
+ animation: spin 0.8s linear infinite;
241
+ }
242
+ @keyframes spin {
243
+ to { transform: rotate(360deg); }
244
+ }
204
245
  .sidebar-content {
205
246
  flex: 1;
206
247
  overflow-y: auto;
@@ -410,11 +451,14 @@ function getHtml(data) {
410
451
  </div>
411
452
  </div>
412
453
  <div class="toast" id="toast"></div>
454
+ <div class="loader-overlay" id="loader">
455
+ <div class="loader"></div>
456
+ </div>
413
457
 
414
458
  <script>
415
- let stashes = ${stashesJson};
416
- let diffs = ${JSON.stringify(diffsJson)};
417
- let files = ${JSON.stringify(filesJson)};
459
+ let stashes = ${stashesJsonSafe};
460
+ let diffs = ${diffsJsonSafe};
461
+ let files = ${filesJsonSafe};
418
462
  let isLoading = false;
419
463
 
420
464
  let currentView = 'list'; // 'list' or 'detail'
@@ -474,13 +518,15 @@ function getHtml(data) {
474
518
 
475
519
  // Update header with back button
476
520
  document.getElementById('sidebarHeader').innerHTML = \`
477
- <button class="back-btn" onclick="renderStashList()">
478
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
479
- <path d="M15 18l-6-6 6-6"/>
480
- </svg>
481
- Back
482
- </button>
483
- <span class="stash-title">stash@{\${index}}</span>
521
+ <div class="header-nav">
522
+ <button class="back-btn" onclick="renderStashList()">
523
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
524
+ <path d="M15 18l-6-6 6-6"/>
525
+ </svg>
526
+ Back
527
+ </button>
528
+ <span class="stash-title">stash@{\${index}}</span>
529
+ </div>
484
530
  \`;
485
531
 
486
532
  // Render file list with action buttons
@@ -645,6 +691,14 @@ function getHtml(data) {
645
691
  setTimeout(() => { toast.classList.remove('show'); }, 3000);
646
692
  }
647
693
 
694
+ function showLoader() {
695
+ document.getElementById('loader').classList.add('show');
696
+ }
697
+
698
+ function hideLoader() {
699
+ document.getElementById('loader').classList.remove('show');
700
+ }
701
+
648
702
  async function refreshData() {
649
703
  const res = await fetch('/api/data');
650
704
  const data = await res.json();
@@ -656,6 +710,7 @@ function getHtml(data) {
656
710
  async function applyStash(index) {
657
711
  if (isLoading) return;
658
712
  isLoading = true;
713
+ showLoader();
659
714
 
660
715
  try {
661
716
  const res = await fetch('/api/apply/' + index, { method: 'POST' });
@@ -672,6 +727,7 @@ function getHtml(data) {
672
727
  showToast('Failed to apply stash', 'error');
673
728
  }
674
729
 
730
+ hideLoader();
675
731
  isLoading = false;
676
732
  }
677
733
 
@@ -680,6 +736,7 @@ function getHtml(data) {
680
736
  if (!confirm('Are you sure you want to delete this stash? This cannot be undone.')) return;
681
737
 
682
738
  isLoading = true;
739
+ showLoader();
683
740
 
684
741
  try {
685
742
  const res = await fetch('/api/drop/' + index, { method: 'POST' });
@@ -696,6 +753,7 @@ function getHtml(data) {
696
753
  showToast('Failed to delete stash', 'error');
697
754
  }
698
755
 
756
+ hideLoader();
699
757
  isLoading = false;
700
758
  }
701
759
 
package/dist/stash.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mehmetsagir/git-ai",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "AI-powered git commit tool that analyzes diffs and creates conventional commit messages",
5
5
  "main": "dist/index.js",
6
6
  "bin": {