feat: AI auto-fix + Gemini Flash provider #93

Merged
chihlasm merged 14 commits from feat/ai-autofix-gemini into main 2026-02-27 07:32:24 +00:00

14 Commits

Author SHA1 Message Date
chihlasm
6fc76187c0 fix: add diagnostic logging and increase scaffold max_tokens to 2048
The "Unterminated string" JSON parse error is likely caused by Gemini
output truncation at 1024 tokens. Increases scaffold max_tokens to 2048
and adds logging for: raw response text, finish_reason (truncation
detection), and JSON parse failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 00:15:01 -05:00
chihlasm
957f13b993 fix: use correct google-genai async API and remove debug endpoint
The google-genai SDK uses `client.aio.models.generate_content()` for
async calls, not `client.models.generate_content_async()` which doesn't
exist. Also removes the temporary /ai/provider-debug endpoint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 00:08:20 -05:00
chihlasm
dc68d992a4 debug: add temporary /ai/provider-debug endpoint
Shows which provider is selected and whether keys are loaded.
Remove after debugging the 502 on PR env.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 00:02:47 -05:00
chihlasm
0fb3126fd2 fix: add error logging and error type to AI builder 502 responses
The generic "AI provider error" message made debugging impossible.
Now logs the full exception traceback and includes the error class
name in the 502 response detail.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 23:49:07 -05:00
chihlasm
29dc95e920 feat: add AI auto-fix UI — types, API client, ValidationSummary button, review modal, and TreeEditorPage wiring
- New ai-fix.ts types for request/response
- fixTree() method on treesApi
- "Fix with AI" button in ValidationSummary (shows for fixable errors)
- AIFixReviewModal with per-fix apply/skip and apply-all
- TreeEditorPage orchestrates the fix flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:29:53 -05:00
chihlasm
b3925150d7 feat: add POST /ai/fix-tree endpoint for AI-powered validation fixes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:25:38 -05:00
chihlasm
373736c594 feat: add AI fix service with prompt building and validation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:25:34 -05:00
chihlasm
5f8653e481 feat: add Pydantic schemas for AI fix-tree endpoint
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:21:36 -05:00
chihlasm
eb7ea7ddd9 refactor: migrate AI tree generator to provider abstraction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:20:48 -05:00
chihlasm
55be033ecb feat: add AI provider abstraction with Gemini and Anthropic support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:16:45 -05:00
chihlasm
be041d0d29 feat: add Gemini Flash config vars to Settings
Adds AI_PROVIDER, GOOGLE_AI_API_KEY, AI_MODEL_GEMINI, and
AI_MODEL_ANTHROPIC config vars. Updates ai_enabled to check
either provider key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:08:53 -05:00
chihlasm
bbf6e2a33b chore: add google-genai SDK dependency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:08:10 -05:00
chihlasm
5df32aa9da docs: add implementation plan for AI auto-fix and Gemini provider
12-task plan covering: SDK install, config, provider abstraction,
service migration, fix service, endpoint, frontend types/API,
ValidationSummary button, review modal, and TreeEditorPage wiring.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:33:34 -05:00
chihlasm
6527b33d05 docs: add AI auto-fix and Gemini Flash provider design
Design for two combined features: Gemini 2.5 Flash as primary AI
provider with Claude fallback, and AI-powered auto-fix for validation
errors in the tree editor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:28:33 -05:00