fixfleet 0.3.1__tar.gz → 0.4.1__tar.gz

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.
Files changed (51) hide show
  1. fixfleet-0.4.1/PKG-INFO +502 -0
  2. fixfleet-0.4.1/README.md +474 -0
  3. fixfleet-0.4.1/bugfixer/__init__.py +6 -0
  4. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/_subprocess.py +38 -6
  5. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/api/openai_compat.py +33 -16
  6. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/cli/claude.py +3 -0
  7. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/cli/codex.py +3 -0
  8. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/budget.py +10 -0
  9. fixfleet-0.4.1/bugfixer/gitlab.py +61 -0
  10. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/json_api.py +87 -15
  11. fixfleet-0.4.1/bugfixer/providers/__init__.py +36 -0
  12. fixfleet-0.4.1/bugfixer/providers/azure.py +258 -0
  13. fixfleet-0.4.1/bugfixer/providers/base.py +125 -0
  14. fixfleet-0.4.1/bugfixer/providers/bitbucket.py +189 -0
  15. fixfleet-0.4.1/bugfixer/providers/github.py +205 -0
  16. fixfleet-0.4.1/bugfixer/providers/gitlab.py +183 -0
  17. fixfleet-0.4.1/bugfixer/providers/jira.py +236 -0
  18. fixfleet-0.4.1/bugfixer/providers/linear.py +236 -0
  19. fixfleet-0.4.1/bugfixer/providers/registry.py +53 -0
  20. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/state.py +3 -3
  21. fixfleet-0.4.1/fixfleet.egg-info/PKG-INFO +502 -0
  22. {fixfleet-0.3.1 → fixfleet-0.4.1}/fixfleet.egg-info/SOURCES.txt +11 -1
  23. {fixfleet-0.3.1 → fixfleet-0.4.1}/pyproject.toml +3 -2
  24. {fixfleet-0.3.1 → fixfleet-0.4.1}/tests/test_all.py +78 -0
  25. fixfleet-0.4.1/tests/test_providers_qa.py +637 -0
  26. fixfleet-0.3.1/PKG-INFO +0 -249
  27. fixfleet-0.3.1/README.md +0 -221
  28. fixfleet-0.3.1/bugfixer/__init__.py +0 -6
  29. fixfleet-0.3.1/bugfixer/gitlab.py +0 -210
  30. fixfleet-0.3.1/fixfleet.egg-info/PKG-INFO +0 -249
  31. {fixfleet-0.3.1 → fixfleet-0.4.1}/LICENSE +0 -0
  32. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/__init__.py +0 -0
  33. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/api/__init__.py +0 -0
  34. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/base.py +0 -0
  35. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/cli/__init__.py +0 -0
  36. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/cli/aider.py +0 -0
  37. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/cli/cursor.py +0 -0
  38. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/cli/gemini.py +0 -0
  39. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/cli/qwen.py +0 -0
  40. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/backends/registry.py +0 -0
  41. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/cli.py +0 -0
  42. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/confidence.py +0 -0
  43. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/config.py +0 -0
  44. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/locator.py +0 -0
  45. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/parser.py +0 -0
  46. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/prompt.py +0 -0
  47. {fixfleet-0.3.1 → fixfleet-0.4.1}/bugfixer/ui.py +0 -0
  48. {fixfleet-0.3.1 → fixfleet-0.4.1}/fixfleet.egg-info/dependency_links.txt +0 -0
  49. {fixfleet-0.3.1 → fixfleet-0.4.1}/fixfleet.egg-info/entry_points.txt +0 -0
  50. {fixfleet-0.3.1 → fixfleet-0.4.1}/fixfleet.egg-info/top_level.txt +0 -0
  51. {fixfleet-0.3.1 → fixfleet-0.4.1}/setup.cfg +0 -0
@@ -0,0 +1,502 @@
1
+ Metadata-Version: 2.4
2
+ Name: fixfleet
3
+ Version: 0.4.1
4
+ Summary: Auto-fix bugs from GitHub, GitLab, Jira, Linear, Bitbucket, or Azure DevOps with AI agents — bring your own CLI or free API.
5
+ Author: Yash Koladiya
6
+ License-Expression: GPL-3.0-or-later
7
+ Project-URL: Homepage, https://github.com/Yash-Koladiya30/fixfleet
8
+ Project-URL: Repository, https://github.com/Yash-Koladiya30/fixfleet
9
+ Project-URL: Issues, https://github.com/Yash-Koladiya30/fixfleet/issues
10
+ Keywords: gitlab,ai-agent,bug-fixer,claude-code,codex,gemini,cursor,aider,ollama,groq,openrouter,agentic-ai,automation,cli-tool,developer-tools
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Software Development :: Bug Tracking
22
+ Classifier: Topic :: Software Development :: Quality Assurance
23
+ Classifier: Topic :: Utilities
24
+ Requires-Python: >=3.9
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Dynamic: license-file
28
+
29
+ <div align="center">
30
+
31
+ <img src="vscode/media/icon.png" alt="FixFleet" width="140" />
32
+
33
+ # FixFleet
34
+
35
+ ### AI Bug Fixer for GitHub · GitLab · Jira · Linear · Bitbucket · Azure DevOps
36
+
37
+ *Reads open bug issues from any tracker, parses stack traces, pre-narrows the search to the right files, dispatches to your AI of choice, and scores fix confidence. All local. No commits. Bring your own AI.*
38
+
39
+ <p>
40
+ <a href="https://pypi.org/project/fixfleet/"><img src="https://img.shields.io/pypi/v/fixfleet.svg?label=pypi&color=2D6A4F&style=for-the-badge" alt="PyPI" /></a>
41
+ <a href="https://marketplace.visualstudio.com/items?itemName=YashKoladiya30.fixfleet"><img src="https://img.shields.io/visual-studio-marketplace/v/YashKoladiya30.fixfleet?label=vscode&color=722F37&style=for-the-badge" alt="VSCode Marketplace" /></a>
42
+ <a href="https://www.gnu.org/licenses/gpl-3.0"><img src="https://img.shields.io/badge/license-GPL_v3-C8A47E?style=for-the-badge" alt="License GPL v3" /></a>
43
+ <img src="https://img.shields.io/badge/python-3.9+-1F2421?style=for-the-badge" alt="Python 3.9+" />
44
+ </p>
45
+
46
+ <p>
47
+ <a href="#-screenshots"><b>Screenshots</b></a> •
48
+ <a href="#-install"><b>Install</b></a> •
49
+ <a href="#-connect-your-tracker-token-setup-guides"><b>Token setup</b></a> •
50
+ <a href="#-how-it-works"><b>How it works</b></a> •
51
+ <a href="#-supported-ai-agents"><b>AI backends</b></a> •
52
+ <a href="#-faq"><b>FAQ</b></a>
53
+ </p>
54
+
55
+ </div>
56
+
57
+ ---
58
+
59
+ ## 📸 Screenshots
60
+
61
+ <table>
62
+ <tr>
63
+ <td width="33%" align="center">
64
+ <img src="vscode/media/screenshots/welcome.png" alt="Welcome screen" />
65
+ <br/><sub><b>Welcome</b><br/>3-step onboarding</sub>
66
+ </td>
67
+ <td width="33%" align="center">
68
+ <img src="vscode/media/screenshots/settings-credentials.png" alt="Settings credentials" />
69
+ <br/><sub><b>Settings</b><br/>GitLab credentials + project</sub>
70
+ </td>
71
+ <td width="33%" align="center">
72
+ <img src="vscode/media/screenshots/settings-backends.png" alt="Settings backends" />
73
+ <br/><sub><b>AI Backends</b><br/>Pick your agent · date filter</sub>
74
+ </td>
75
+ </tr>
76
+ </table>
77
+
78
+ ---
79
+
80
+ ## 📦 Install
81
+
82
+ ### 🪄 VSCode Extension (recommended — premium UI)
83
+
84
+ <a href="https://marketplace.visualstudio.com/items?itemName=YashKoladiya30.fixfleet"><img src="https://img.shields.io/badge/Install_from_Marketplace-722F37?style=for-the-badge&logo=visualstudiocode&logoColor=white" alt="Install from VSCode Marketplace" /></a>
85
+
86
+ Or paste in terminal:
87
+ ```bash
88
+ code --install-extension YashKoladiya30.fixfleet
89
+ ```
90
+
91
+ ### 🐍 Python CLI (terminal-only users)
92
+
93
+ ```bash
94
+ pip3 install --user fixfleet
95
+ fixfleet
96
+ ```
97
+
98
+ > ⚠️ If `fixfleet: command not found` — add user-bin to PATH:
99
+ > ```bash
100
+ > echo 'export PATH="$(python3 -m site --user-base)/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
101
+ > ```
102
+
103
+ ---
104
+
105
+ ## ⚡ Quick start (60 seconds)
106
+
107
+ 1. **Install** the VSCode extension (1 click above)
108
+ 2. **Get an access token** for your tracker — [full guides below](#-connect-your-tracker-token-setup-guides)
109
+ 3. **Click 🚀 FixFleet icon** in VSCode activity bar → **Configure** → pick provider → paste token + project URL → save
110
+ 4. **Click any bug** in sidebar → premium detail panel opens
111
+ 5. **Click ✨ Fix This Bug with AI** → AI agent reads the code, fixes the bug, scores confidence
112
+ 6. **Review the diff, commit yourself** — FixFleet never commits or pushes
113
+
114
+ ---
115
+
116
+ ## 🔑 Connect Your Tracker (Token Setup Guides)
117
+
118
+ FixFleet supports **6 issue trackers**. Pick yours below — each guide covers exactly where to click, which permissions to grant, and what to paste into FixFleet.
119
+
120
+ > 🔒 **Security note:** tokens are stored in your VSCode user settings on your machine only. FixFleet has no servers — your token goes directly from your laptop to your tracker's API and nowhere else.
121
+
122
+ <details>
123
+ <summary><b>🟧 GitLab</b> — gitlab.com or self-hosted</summary>
124
+
125
+ ### 1. Generate the token
126
+
127
+ 1. Open **https://gitlab.com/-/user_settings/personal_access_tokens** (or `https://YOUR-GITLAB-HOST/-/user_settings/personal_access_tokens` for self-hosted)
128
+ 2. Click **"Add new token"**
129
+ 3. Fill in:
130
+ - **Token name**: `fixfleet`
131
+ - **Expiration date**: up to 1 year ahead
132
+ 4. **Select scopes** — tick ONE of:
133
+ - ✅ `read_api` — read-only (list + read bugs). Enough for fixing.
134
+ - ✅ `api` — read + write. Needed later for auto-commenting / closing issues.
135
+ 5. Click **"Create personal access token"**
136
+ 6. **Copy the token immediately** — GitLab shows it only once. Format: `glpat-xxxxxxxxxxxxxxxxxxxx`
137
+
138
+ ### 2. What to paste in FixFleet
139
+
140
+ | Field | Value |
141
+ |---|---|
142
+ | Provider | **GitLab** |
143
+ | Token | `glpat-xxxxxxxxxxxxxxxxxxxx` |
144
+ | Project URL | `https://gitlab.com/group/project` — any GitLab URL works (with `.git`, `/-/issues`, SSH form, or short `group/project`) |
145
+
146
+ ### Requirements
147
+ - Bugs must carry the label **`Bug`** (capital B) to show up
148
+ - Your account needs at least **Reporter** role on the project
149
+
150
+ </details>
151
+
152
+ <details>
153
+ <summary><b>⬛ GitHub</b> — github.com or GitHub Enterprise</summary>
154
+
155
+ ### 1. Generate the token (classic PAT)
156
+
157
+ 1. Open **https://github.com/settings/tokens**
158
+ 2. Click **"Generate new token"** → **"Generate new token (classic)"**
159
+ 3. Fill in:
160
+ - **Note**: `fixfleet`
161
+ - **Expiration**: 90 days or custom
162
+ 4. **Select scopes** — tick ONE of:
163
+ - ✅ `repo` — full repository access (covers private repos)
164
+ - ✅ `public_repo` — public repos only (lighter permission)
165
+ 5. Click **"Generate token"**
166
+ 6. **Copy immediately** — shown once. Format: `ghp_xxxxxxxxxxxxxxxxxxxx`
167
+
168
+ *Alternative: fine-grained PATs also work — grant "Issues: Read" on the target repository.*
169
+
170
+ ### 2. What to paste in FixFleet
171
+
172
+ | Field | Value |
173
+ |---|---|
174
+ | Provider | **GitHub** |
175
+ | Token | `ghp_xxxxxxxxxxxxxxxxxxxx` |
176
+ | Project URL | `https://github.com/owner/repo` — also accepts `.git`, `/issues`, SSH, or short `owner/repo` |
177
+
178
+ ### Requirements
179
+ - Bugs must carry the label **`bug`** (lowercase — GitHub's default label)
180
+ - Pull requests are automatically filtered out
181
+
182
+ </details>
183
+
184
+ <details>
185
+ <summary><b>🟦 Jira</b> — Atlassian Cloud (*.atlassian.net)</summary>
186
+
187
+ ### 1. Generate the API token
188
+
189
+ 1. Open **https://id.atlassian.com/manage-profile/security/api-tokens**
190
+ 2. Click **"Create API token"**
191
+ 3. **Label**: `fixfleet` → click **Create**
192
+ 4. **Copy the token** — shown once
193
+
194
+ ### 2. Combine email + token ⚠️ IMPORTANT
195
+
196
+ Jira authenticates with your **Atlassian account email AND the token together**. Paste them combined with a colon:
197
+
198
+ ```
199
+ your-email@example.com:your-api-token
200
+ ```
201
+
202
+ Example: `jane@acme.com:ATATT3xFfGF0aBcDeFgH...`
203
+
204
+ ### 3. What to paste in FixFleet
205
+
206
+ | Field | Value |
207
+ |---|---|
208
+ | Provider | **Jira** |
209
+ | Token | `email@example.com:api-token` (combined with `:`) |
210
+ | Project URL | `https://yourcompany.atlassian.net/browse/MYPROJ-1` or `https://yourcompany.atlassian.net/jira/projects/MYPROJ` |
211
+
212
+ > ⚠️ **Must paste the full URL** (not just the project key) — FixFleet reads your Atlassian host from it.
213
+
214
+ ### Requirements
215
+ - Issues must have **Issue Type = Bug**
216
+ - Issues in any status except Done-category show up
217
+ - Your account needs **Browse Projects** permission
218
+
219
+ </details>
220
+
221
+ <details>
222
+ <summary><b>🟪 Linear</b> — linear.app</summary>
223
+
224
+ ### 1. Generate the API key
225
+
226
+ 1. Open **https://linear.app/settings/api**
227
+ 2. Under **"Personal API keys"** click **"Create key"**
228
+ 3. **Label**: `fixfleet` → create
229
+ 4. **Copy** — format: `lin_api_xxxxxxxxxxxxxxxxxxxx`
230
+
231
+ ### 2. What to paste in FixFleet
232
+
233
+ | Field | Value |
234
+ |---|---|
235
+ | Provider | **Linear** |
236
+ | Token | `lin_api_xxxxxxxxxxxxxxxxxxxx` (paste as-is) |
237
+ | Project URL | `https://linear.app/yourworkspace/team/ENG/all` or any issue URL like `https://linear.app/yourworkspace/issue/ENG-42/...` — also accepts bare team key `ENG` |
238
+
239
+ ### Requirements
240
+ - Issues must carry the label **`Bug`**
241
+ - Issues in Backlog / Todo / In-Progress states show up (completed/canceled excluded)
242
+ - FixFleet works per **team** — the team key (e.g. `ENG`) comes from your URL
243
+
244
+ </details>
245
+
246
+ <details>
247
+ <summary><b>🟫 Bitbucket</b> — bitbucket.org (Cloud)</summary>
248
+
249
+ ### 1. Generate an App Password
250
+
251
+ 1. Open **https://bitbucket.org/account/settings/app-passwords/**
252
+ 2. Click **"Create app password"**
253
+ 3. **Label**: `fixfleet`
254
+ 4. **Permissions** — tick:
255
+ - ✅ **Issues → Read**
256
+ 5. Click **Create** → **copy the password** — shown once
257
+
258
+ ### 2. Combine username + app password ⚠️ IMPORTANT
259
+
260
+ Bitbucket authenticates with your **username AND app password together**. Find your username at https://bitbucket.org/account/settings/ (it's NOT your email). Paste combined:
261
+
262
+ ```
263
+ your-username:your-app-password
264
+ ```
265
+
266
+ Example: `janedoe:ATBBxxxxxxxxxxxxxxxx`
267
+
268
+ ### 3. What to paste in FixFleet
269
+
270
+ | Field | Value |
271
+ |---|---|
272
+ | Provider | **Bitbucket** |
273
+ | Token | `username:app-password` (combined with `:`) |
274
+ | Project URL | `https://bitbucket.org/workspace/repo` or short `workspace/repo` |
275
+
276
+ ### Requirements
277
+ - The repo's **issue tracker must be enabled** (Repository settings → Issue tracker)
278
+ - Issues with **kind = bug** and **state = open** show up
279
+ - Bitbucket Server (self-hosted) is NOT supported — Cloud only
280
+
281
+ </details>
282
+
283
+ <details>
284
+ <summary><b>🟦 Azure DevOps</b> — dev.azure.com Boards</summary>
285
+
286
+ ### 1. Generate a PAT
287
+
288
+ 1. Open **https://dev.azure.com** → sign in
289
+ 2. Click the **user settings icon** (top-right, next to your avatar) → **"Personal access tokens"**
290
+ 3. Click **"+ New Token"**
291
+ 4. Fill in:
292
+ - **Name**: `fixfleet`
293
+ - **Organization**: select your org (or "All accessible organizations")
294
+ - **Expiration**: up to 1 year
295
+ 5. **Scopes** → click **"Custom defined"** → find **Work Items** → tick:
296
+ - ✅ **Read**
297
+ 6. Click **Create** → **copy the token** — shown once
298
+
299
+ ### 2. What to paste in FixFleet
300
+
301
+ | Field | Value |
302
+ |---|---|
303
+ | Provider | **Azure DevOps** |
304
+ | Token | the PAT alone (no email, no colon — paste as-is) |
305
+ | Project URL | `https://dev.azure.com/yourorg/yourproject` or short `yourorg/yourproject` |
306
+
307
+ ### Requirements
308
+ - Work items must have **Work Item Type = Bug**
309
+ - Bugs in any state except Closed/Done/Resolved/Removed show up
310
+ - Priority field maps automatically: 1 → High, 2 → Medium, 3-4 → Low
311
+
312
+ </details>
313
+
314
+ ### Token format cheat-sheet
315
+
316
+ | Provider | Paste format | Example |
317
+ |---|---|---|
318
+ | GitLab | token alone | `glpat-abc123...` |
319
+ | GitHub | token alone | `ghp_abc123...` |
320
+ | Jira | `email:token` | `jane@acme.com:ATATT3x...` |
321
+ | Linear | key alone | `lin_api_abc123...` |
322
+ | Bitbucket | `username:app-password` | `janedoe:ATBBabc...` |
323
+ | Azure DevOps | PAT alone | `a1b2c3d4...` |
324
+
325
+ ---
326
+
327
+ ## 🧠 How it works
328
+
329
+ ```
330
+ ┌─ Open bug issue (GitHub / GitLab / Jira / Linear / Bitbucket / Azure DevOps)
331
+
332
+ ├─ Parse: description, steps, expected/actual, stack traces, logs
333
+
334
+ ├─ Locate: extract file paths, symbols, stack frames → rank candidates → inline top file
335
+
336
+ ├─ Dispatch to AI agent (Claude / Codex / Gemini / Cursor / Aider / Qwen / any free API)
337
+
338
+ ├─ Score confidence: diff focus + self-rating + file relevance + hedge density
339
+
340
+ └─ Done — local-only changes ready for your review
341
+ ```
342
+
343
+ **Token-aware**: per-issue, session, and daily budgets prevent paid-plan overruns.
344
+
345
+ **Multi-backend**: detected CLI agents shown as installed; pick one per session.
346
+
347
+ **Confidence scored**: every fix gets a 0.0–1.0 score so you know which to review first.
348
+
349
+ ---
350
+
351
+ ## 🤖 Supported AI agents
352
+
353
+ ### CLI backends (uses your existing paid plans)
354
+
355
+ | Agent | Plan source |
356
+ |---|---|
357
+ | 🟪 **Claude Code** | Claude Pro / Max |
358
+ | 🟢 **Codex** | ChatGPT Plus / Pro |
359
+ | 🟦 **Gemini CLI** | Google AI free tier |
360
+ | ⚫ **Cursor Agent** | Cursor Pro |
361
+ | 🟧 **Aider** | Bring your own key |
362
+ | 🟨 **Qwen Code** | Alibaba free tier |
363
+
364
+ ### API backends (free-tier friendly)
365
+
366
+ One OpenAI-compatible client serves all:
367
+
368
+ | Provider | Free | Get key |
369
+ |---|---|---|
370
+ | **Groq** | ✅ | https://console.groq.com/keys |
371
+ | **Google Gemini** | ✅ | https://aistudio.google.com/apikey |
372
+ | **OpenRouter** | ✅ | https://openrouter.ai/keys |
373
+ | **Cerebras** | ✅ | https://cloud.cerebras.ai |
374
+ | **Ollama** (local) | ✅ | https://ollama.com |
375
+ | **LM Studio** (local) | ✅ | https://lmstudio.ai |
376
+
377
+ ---
378
+
379
+ ## 🎯 Why FixFleet
380
+
381
+ ### vs. doing it manually
382
+ Triages 50 bugs in the time it takes you to read 5.
383
+
384
+ ### vs. AI inside the issue (e.g. GitLab Duo, GitHub Copilot Workspace)
385
+ - **Costs nothing extra** — uses AI plans you already pay for
386
+ - **Edits actual files locally**, not just comments
387
+ - **You pick the AI** — not locked to one vendor
388
+ - **One tool for all trackers** — GitHub + GitLab + Jira + Linear + Bitbucket + Azure DevOps
389
+ - **Works on private/self-hosted instances** without exposing source to a SaaS
390
+
391
+ ### vs. running Claude/Codex CLI manually
392
+ - **Structured prompts** — extracts steps/logs automatically
393
+ - **Pre-narrows file scope** — saves 60–80% tokens
394
+ - **Confidence scoring** — review only uncertain fixes
395
+ - **Budget caps** — never blows through paid quotas
396
+
397
+ ---
398
+
399
+ ## ❓ FAQ
400
+
401
+ <details>
402
+ <summary><b>Does this use any paid backend / hidden costs?</b></summary>
403
+
404
+ No. FixFleet runs **100% locally** on your machine. No FixFleet servers, no Azure, no cloud component. You pay for nothing beyond AI plans you already own. The VSCode extension is free. The PyPI package is free. Updates forever, free.
405
+
406
+ </details>
407
+
408
+ <details>
409
+ <summary><b>What's the difference between the VSCode extension and the CLI?</b></summary>
410
+
411
+ Same engine, two interfaces:
412
+ - **CLI** (`pip install fixfleet`) — interactive terminal flow, beautiful styled output. The guided interactive mode currently supports GitLab; for the other trackers use the JSON flags (`fixfleet --list-bugs-json --provider github ...`) or the extension.
413
+ - **VSCode extension** — premium UI sidebar + click-to-fix workflow for all 6 trackers, calls the CLI under the hood
414
+
415
+ Install both if you want flexibility. Extension auto-installs the CLI on first run if missing.
416
+
417
+ </details>
418
+
419
+ <details>
420
+ <summary><b>Will it ever commit or push my changes?</b></summary>
421
+
422
+ Never. FixFleet edits files locally and leaves your working tree dirty. You review the diff (`git diff`), then commit + push manually. This is intentional — AI fixes need human review before shipping.
423
+
424
+ </details>
425
+
426
+ <details>
427
+ <summary><b>Which issue trackers are supported?</b></summary>
428
+
429
+ All six, fully implemented:
430
+
431
+ | Tracker | Bug filter | Notes |
432
+ |---|---|---|
433
+ | **GitLab** | label `Bug` | gitlab.com + self-hosted |
434
+ | **GitHub** | label `bug` | github.com + Enterprise, PRs auto-filtered |
435
+ | **Jira** | Issue Type = Bug | Atlassian Cloud |
436
+ | **Linear** | label `Bug` | per-team |
437
+ | **Bitbucket** | kind = bug | Cloud only |
438
+ | **Azure DevOps** | Work Item Type = Bug | Boards |
439
+
440
+ Paste any URL — FixFleet auto-detects the provider. See [Token setup guides](#-connect-your-tracker-token-setup-guides).
441
+
442
+ </details>
443
+
444
+ <details>
445
+ <summary><b>Does it work with self-hosted GitLab / GitHub Enterprise?</b></summary>
446
+
447
+ Yes. Paste your full URL (e.g. `https://gitlab.mycompany.com/group/project`) and FixFleet auto-detects the host. No config needed.
448
+
449
+ </details>
450
+
451
+ <details>
452
+ <summary><b>Which AI should I use?</b></summary>
453
+
454
+ - **Best quality** → Claude Code (Claude Pro)
455
+ - **Fastest** → Groq (free Llama 3.3 70B)
456
+ - **Biggest free quota** → Google Gemini API
457
+ - **Fully offline** → Ollama with `qwen2.5-coder:7b`
458
+
459
+ </details>
460
+
461
+ <details>
462
+ <summary><b>How is FixFleet different from Cursor / Cody / Copilot?</b></summary>
463
+
464
+ Those are **autocomplete + chat** tools. FixFleet is a **bug-triage automator** — reads your bug tracker, dispatches each ticket to an AI, scores the fix. They complement each other.
465
+
466
+ </details>
467
+
468
+ <details>
469
+ <summary><b>Is my code sent to FixFleet servers?</b></summary>
470
+
471
+ There are no FixFleet servers. Your code goes from your machine → directly to whichever AI provider you pick (Anthropic / OpenAI / Google / Groq / Ollama / etc.) using your own credentials. FixFleet is open-source — read the code and verify.
472
+
473
+ </details>
474
+
475
+ ---
476
+
477
+ ## 🛡️ Privacy & Security
478
+
479
+ - 🔒 Tokens typed via `getpass` — never echoed, never written to repo
480
+ - 🛡️ Issue content fenced in prompts to prevent prompt-injection from malicious issue authors
481
+ - 📂 Config + state stored in `~/.bugfixer.json` / `~/.bugfixer-state.json` (your home dir, never in any repo)
482
+ - 🚫 Never commits, never pushes, never collects telemetry
483
+
484
+ ---
485
+
486
+ ## 📜 License
487
+
488
+ **GPL-3.0-or-later** — see [LICENSE](LICENSE).
489
+
490
+ This means anyone can use, study, modify, and redistribute FixFleet — but **derivative works must also be open-source under GPL-3**. No closed-source forks. No proprietary repackaging.
491
+
492
+ Built by **[Yash Koladiya](https://github.com/Yash-Koladiya30)** • © 2026.
493
+
494
+ ---
495
+
496
+ <div align="center">
497
+
498
+ **If FixFleet saved you time, drop a ⭐ on the repo**.
499
+
500
+ [Report a bug](https://github.com/Yash-Koladiya30/fixfleet/issues) · [Request feature](https://github.com/Yash-Koladiya30/fixfleet/issues) · [VSCode Extension](https://marketplace.visualstudio.com/items?itemName=YashKoladiya30.fixfleet) · [PyPI Package](https://pypi.org/project/fixfleet/)
501
+
502
+ </div>