29 Commits

Author SHA1 Message Date
opencode
9e39dabb42 fix: fix docker build for CI 2026-07-05 23:59:30 +00:00
opencode
8af3e5f1d5 Merge pull request #20: fix: add /api/chat endpoint for streaming (closes #10) 2026-07-05 07:16:56 +00:00
opencode
55ec1d663c Merge pull request #19: fix: add conversation history management (closes #9) 2026-07-05 07:16:53 +00:00
opencode
8918900118 Merge pull request #18: fix: add retry logic with exponential backoff (closes #8) 2026-07-05 07:15:47 +00:00
opencode
57da263433 Merge pull request #17: fix: disable SSL verification on non-TLS connections (closes #7) 2026-07-05 07:15:43 +00:00
opencode
a681cf3ca8 Merge pull request #16: fix: add requests.Session with SSL verification control (closes #6) 2026-07-05 07:13:57 +00:00
jarianc
29bec257fa Merge branch 'main' into fix/issue-6 2026-07-05 02:09:48 -05:00
jarianc
0fff7aaf42 Merge pull request 'fix: remove hardcoded LAN IP from default base_url (closes #5)' (#15) from fix/issue-5 into main
Reviewed-on: https://git.home.ms/jarianc/Clover/pulls/15
2026-07-05 02:09:19 -05:00
jarianc
7d66ec7e6c Merge branch 'main' into fix/issue-5 2026-07-05 02:08:51 -05:00
jarianc
868626c23c Merge pull request 'fix: prevent path traversal in file operations (closes #2, #4)' (#14) from fix/issue-2 into main
Reviewed-on: https://git.home.ms/jarianc/Clover/pulls/14
2026-07-05 02:08:05 -05:00
jarianc
f9644168da Merge branch 'main' into fix/issue-2 2026-07-05 02:07:13 -05:00
jarianc
560759b718 Merge pull request 'fix: prevent command injection via shell=True (closes #1, #3)' (#13) from fix/issue-1 into main
Reviewed-on: https://git.home.ms/jarianc/Clover/pulls/13
2026-07-05 02:06:50 -05:00
opencode
3bb50c4925 fix: use /api/chat endpoint for proper multi-turn conversations (issue #10)
- Replace /api/generate with /api/chat endpoint
- Send messages as proper list with role/content structure
- Preserve multi-turn semantics (system/user/assistant roles)
- Compatible with OpenAI-compatible endpoints
- Filter invalid message roles before sending
2026-07-05 07:04:52 +00:00
opencode
4a676a604a fix: add retry with exponential backoff for API calls (issue #9)
- Retry up to 3 times with exponential backoff (2s base delay)
- Retries on 5xx errors, timeouts, and connection errors
- Configurable via CLOVER_MAX_RETRIES and CLOVER_RETRY_BASE_DELAY
- Logs retry attempts with delay and attempt number
2026-07-05 07:04:13 +00:00
opencode
33258ce2ad fix: add sliding window to conversation history (issue #8)
- Add _trim_conversation_history() with message count + token limits
- Configurable via CLOVER_MAX_HISTORY_MESSAGES (default: 20)
- Configurable via CLOVER_MAX_HISTORY_TOKENS (default: 8000)
- Trims oldest messages first, preserves last 6 minimum
- Prevents OOM and degraded LLM quality on long sessions
2026-07-05 07:03:20 +00:00
opencode
fde9ab9b39 fix: replace sys.path.insert(0) with safe sys.path.append (issue #7)
- Append project root instead of inserting at position 0
- Prevents import shadowing of system packages
- Check for duplicates before adding to sys.path
- Add __init__.py to models package
2026-07-05 07:02:43 +00:00
opencode
72e164f6a9 fix: add requests.Session with SSL verification control (issue #6)
- Use requests.Session for connection pooling and consistent headers
- Add CLOVER_SSL_VERIFY config option (default: true)
- Warn on non-TLS connections to non-localhost endpoints
- SSL verification can be disabled for self-signed certs
2026-07-05 07:02:15 +00:00
opencode
1207f2c9cf fix: remove hardcoded LAN IP from default base_url (issue #5)
- Replace hardcoded 192.168.8.223:11434 with error placeholder
- Fail loudly if CLOVER_BASE_URL not set in .env
- Add helpful error message in validate_config()
2026-07-05 07:01:34 +00:00
opencode
7680fea98e fix: prevent path traversal in file operations (issue #2, #4)
- Add _validate_path() using os.path.realpath() to resolve symlinks
- Enforce working directory chroot (CLOVER_PROJECT_ROOT env var)
- All file ops (read, create, update, delete, list) now validated
- Block access to files outside project directory
2026-07-05 07:01:13 +00:00
opencode
496ac5ec7c fix: prevent command injection via shell=True (issue #1, #3)
- Replace shell=True with shell=False + shlex.split()
- Add command whitelist to restrict allowed executables
- Parse commands safely to prevent metacharacter injection (;, &&, |, backticks)
2026-07-05 07:00:29 +00:00
jarianc
b25fb3c1c6 Merge pull request 'CI: remove --no-cache for docker layer caching' (#12) from ci-fix-nocache into main
Reviewed-on: https://git.home.ms/jarianc/Clover/pulls/12
2026-07-04 22:24:59 -05:00
Jarian
8a726daae3 CI: remove --no-cache for docker layer caching 2026-07-05 03:05:11 +00:00
Jarian
3574466464 CI: add generalized workflow 2026-07-05 02:46:25 +00:00
Jarian Cottingham
5e7fb444f5 Add Docker configuration for Clover service including health check endpoint 2026-01-26 19:19:51 -06:00
Jarian Cottingham
9fa0adae53 docs: Add comprehensive CHANGELOG and update gitignore
- Added detailed CHANGELOG.md documenting all new features
- Updated .gitignore to properly handle tool files
- Documented migration guide and usage examples
2026-01-15 01:24:09 -06:00
Jarian Cottingham
392bcfa2ef feat: Implement AI agent with multi-turn conversation and tool calling
Major enhancements to Clover CLI:

 New Features:
- AI agent with multi-turn conversation capabilities
- Tool calling system with 11+ tools for file operations, Git, linting, etc.
- Step-by-step AI assistance with play-by-play commentary
- Enhanced interactive mode with better UX

🔧 Core Components Added:
- ai_agent.py: Main AI agent with conversation management
- models/: API client and model management system
- Comprehensive tool system for development tasks

🛠️ Tools Available:
- File operations (create, read, update, delete)
- Command execution with safety checks
- Git operations (status, diff, commit, push)
- Code linting and formatting
- Project structure analysis
- Security scanning and dependency management

💡 User Experience:
- Real-time tool execution summaries
- File creation with full path visibility
- Error handling and retry mechanisms
- Clean conversation flow until task completion

🧹 Repository Cleanup:
- Added comprehensive .gitignore
- Removed __pycache__ directories and build artifacts
- Organized project structure

The AI can now actually create files, run commands, and work through complex
development tasks step-by-step with full transparency.
2026-01-15 01:23:40 -06:00
Jarian Cottingham
c4e1c3eecf basic ui implemented 2026-01-13 02:00:28 -06:00
Jarian Cottingham
c101db8ba4 Progress tracking impemented 2026-01-13 00:16:00 -06:00
Jarian Cottingham
7e8d31af6e Clover created 2026-01-13 00:07:41 -06:00