Commit Graph

734 Commits

Author SHA1 Message Date
Fahad
57200a8a2e Precommit updated to always perform external analysis (via _other_ model) unless specified not to. This prevents Claude from being overconfident and inadequately performing subpar precommit checks.
Improved precommit continuations to be immediate
Workflow state restoration added between stateless calls
Fixed incorrect token limit check
2025-08-20 15:19:01 +04:00
Fahad
0af9202012 Precommit updated to take always prefer external analysis (via _other_ model) unless specified not to. This prevents Claude from being overconfident and inadequately performing subpar precommit checks. 2025-08-20 11:55:40 +04:00
Fahad
00f944e6f9 Added recommendation 2025-08-20 09:12:22 +04:00
Fahad
266b93d0de Cleanup 2025-08-20 06:03:43 +01:00
Beehive Innovations
9504fc4209 Merge pull request #235 from shaunbuswell/pre-commit-fixes
worktree gitignore
2025-08-20 08:37:30 +04:00
semantic-release
f9c1ab4205 chore(release): 1.0.0
Automatically generated by python-semantic-release
2025-08-20 04:37:06 +00:00
Beehive Innovations
027c734c64 Merge pull request #217 from svnlto/main
feat: streamline GitHub Actions workflows and improve contributor experience
2025-08-20 08:36:21 +04:00
Beehive Innovations
a4e31e25e9 Merge pull request #234 from spotty118/update-opus-4.1
feat: Update Claude models to Opus 4.1 and Sonnet 4.1
2025-08-20 08:32:29 +04:00
Beehive Innovations
f94d1419a6 Merge pull request #230 from svnlto/docs/clean-refactor
docs: comprehensive documentation refactor and model updates
2025-08-20 08:30:42 +04:00
ElevanaLtd
3d8893235a update gitignore 2025-08-17 23:49:54 +01:00
ElevanaLtd
08be82cc35 worktree gitignore 2025-08-17 23:48:26 +01:00
google-labs-jules[bot]
0959d6f0fa feat: Update Claude models to Opus 4.1 and Sonnet 4.1
This commit updates all references to Claude Opus 4 and Sonnet 4 to their newer 4.1 versions throughout the codebase.

The changes include:
- Updating model names in `conf/custom_models.json` and `providers/dial.py`.
- Updating aliases and descriptions to match the new model versions.
- Updating `.env.example` to reflect the new model names.
- Updating all relevant test suites to use the new model names and ensure all tests pass.
2025-08-17 16:08:52 +00:00
Sven Lito
9f5c77fbad fix: align PR template with actual semantic-release and Docker workflows
The PR template was outdated and misaligned with the actual workflow behavior
introduced in PR #217. Key fixes:

- **Semantic Release**: Now matches pyproject.toml configuration
  - feat → MINOR, fix/perf → PATCH (not refactor)
  - Added missing 'build' type from allowed_tags
  - Fixed breaking change syntax (feat\!, BREAKING CHANGE: in body)
  - Removed incorrect 'breaking:' prefix format

- **Docker Builds**: Clarified independence from versioning
  - Builds trigger on file changes (Python, Docker files)
  - Manual triggering via 'docker-build' label
  - Removed misleading 'trigger Docker build + version bump' claims

- **Conventional Commits**: Added link to official specification

The template now accurately reflects the semantic-release config and
docker-pr.yml workflow implementation, preventing contributor confusion.
2025-08-12 15:20:34 +07:00
Sven Lito
392c22ef06 docs: add PATH environment variable to uvx configuration
Address gemini-code-assist bot feedback by adding explicit PATH
environment variable to ensure uvx-executed scripts can find
necessary executables regardless of inherited environment.

Maintains simplified 'command: uvx' while adding execution robustness.
2025-08-12 15:12:16 +07:00
Sven Lito
b9a4db1352 Update docs/advanced-usage.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-08-12 15:08:21 +07:00
Sven Lito
c2c6d5aa4d Update README.md
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-08-12 15:08:12 +07:00
Sven Lito
3c80850d8a chore: remove obsolete scripts directory
The manual version bumping script (scripts/bump_version.py) is now obsolete
since PR #217 introduced semantic-release automation for version management.

- Removed scripts/ directory and bump_version.py script
- Updated .dockerignore to remove reference to deleted script

Semantic versioning is now handled automatically by GitHub Actions workflows
using conventional commits and semantic-release tooling.
2025-08-12 14:59:17 +07:00
Sven Lito
a204bda25d docs: remove backup files from cherry-pick 2025-08-12 14:47:35 +07:00
Sven Lito
80ac32038e docs: major README refactor and comprehensive documentation improvements
README improvements:
- Reduce README from 725 to 169 lines (77% reduction)
- Focus on quick start and essential information
- Link to detailed docs instead of duplicating content
- Improve scannability with clear sections and emojis
- Add concise tool categorization and workflows

Documentation structure:
- Create comprehensive getting-started.md guide
- Move detailed setup instructions from README
- Include troubleshooting, configuration templates
- Add step-by-step installation for all methods

Benefits:
- Faster onboarding for new users
- Progressive disclosure of information
- Better GitHub discovery experience
- Maintainable documentation structure
- Clear separation of concerns

The README now serves as an effective landing page while the
detailed documentation provides comprehensive guidance.
2025-08-12 14:47:14 +07:00
Sven Lito
a0fbc078e8 docs: update model references and add missing GPT-5 and Gemini 2.0 models
- Add missing models to all tool parameter documentation
- Update model table in advanced-usage.md with GPT-5 series
- Add Gemini 2.0 Flash and Flash Lite models
- Include detailed capabilities for each model variant
- Fix model parameter consistency across all tool docs

Models added:
- GPT-5 (gpt5): Advanced reasoning with 400K context
- GPT-5 Mini (gpt5-mini): Efficient variant
- GPT-5 Nano (gpt5-nano): Fast, low-cost variant
- Gemini 2.0 Flash (flash-2.0): Audio/video support
- Gemini 2.0 Flash Lite (flashlite): Text-only lightweight
2025-08-12 14:47:06 +07:00
Sven Lito
ab397d7b6a fix: remove fork PR comment step due to permission restrictions
Fork PRs cannot write comments due to security restrictions.
Job summary provides build status information instead.
2025-08-12 14:08:43 +07:00
Sven Lito
31585b3bfa feat: streamline docker-pr workflow with label support
- Add docker-build label triggering for manual builds
- Use sticky comments for cleaner PR feedback
- Streamlined job conditions and messaging
- Consistent with improved workflow design
2025-08-12 14:05:09 +07:00
Sven Lito
1d1cd44a42 rename: auto-version.yml → docker-pr.yml for clarity
- Reflects actual functionality (Docker PR builds)
- Consistent with improved workflow naming
2025-08-12 14:00:09 +07:00
Sven Lito
ce2e15e406 fix: handle fork PR permissions in Docker workflow
- Only push to registry for internal PRs (same repository)
- Build-only for fork PRs to test Docker compatibility
- Separate comments and summaries for different PR types
- Fixes permission issues with fork contributions
2025-08-12 13:58:46 +07:00
Sven Lito
22f729a150 Merge branch 'main' of https://github.com/BeehiveInnovations/zen-mcp-server 2025-08-12 13:27:29 +07:00
Beehive Innovations
e6213d4ca1 Merge pull request #227 from svnlto/fix/uvx-resource-packaging
fix: uvx resource packaging issues for OpenRouter functionality
2025-08-11 12:31:49 -07:00
Sven Lito
db07fa4651 Apply Black formatting to fix CI formatting check 2025-08-10 22:21:16 +07:00
Sven Lito
673d78be6d Fix failing tests and exclude .zen_venv from linting
- Fix test_resource_loading_success by removing outdated mock targeting non-existent 'files' import
- Simplify resource loading test to validate registry functionality directly
- Add .zen_venv exclusion to ruff and black in code_quality_checks.sh
- All tests now passing (793/793) with clean linting
2025-08-10 22:18:08 +07:00
Sven Lito
5e599b9e7d Complete PR review feedback implementation with clean importlib.resources approach
- Remove redundant path checks between Path("conf/custom_models.json") and Path.cwd() variants
- Implement proper importlib.resources.files('conf') approach for robust packaging
- Create conf/__init__.py to make conf a proper Python package
- Update pyproject.toml to include conf* in package discovery
- Clean up verbose comments and simplify resource loading logic
- Fix test mocking to use correct importlib.resources.files target
- All tests passing (8/8) with proper resource and fallback functionality

Addresses all gemini-code-assist bot feedback from PR #227
2025-08-10 22:13:25 +07:00
Sven Lito
84de9b026f Address PR review feedback: Implement proper importlib.resources approach
Improvements based on gemini-code-assist bot feedback:

1. **Proper importlib.resources implementation:**
   - Use files("providers") / "../conf/custom_models.json" for resource loading
   - Prioritize resource loading over file system paths for packaged environments
   - Maintain backward compatibility with explicit config paths and env variables

2. **Remove redundant path checks:**
   - Eliminated duplicate Path("conf/custom_models.json") and Path.cwd() / "conf/custom_models.json"
   - Streamlined fallback logic to development path + working directory only

3. **Enhanced test coverage:**
   - Mock-based testing of actual fallback scenarios with Path.exists
   - Proper resource loading simulation and failure testing
   - Comprehensive coverage of both resource and file system modes

4. **Robust error handling:**
   - Graceful fallback from resources to file system when resource loading fails
   - Clear logging of which loading method is being used
   - Better error messages indicating resource vs file system loading

The implementation now follows Python packaging best practices using importlib.resources
while maintaining full backward compatibility and robust fallback behavior.

Tested: All 8 test cases pass, resource loading works in development,
file system fallback works when resources fail.
2025-08-10 21:36:40 +07:00
Sven Lito
5565f59a1c Fix uvx resource packaging issues for OpenRouter functionality
Resolves issues #203, #186, #206, #185 where OpenRouter model registry
completely failed to load in uvx installations due to inaccessible
conf/custom_models.json file.

Changes:
- Implement multiple path resolution strategy in OpenRouterModelRegistry
  - Development: Path(__file__).parent.parent / "conf" / "custom_models.json"
  - UVX working dir: Path("conf/custom_models.json")
  - Current working dir: Path.cwd() / "conf" / "custom_models.json"
- Add importlib-resources fallback for Python < 3.9 compatibility
- Add comprehensive test suite for path resolution scenarios
- Ensure graceful handling when config files are missing

The fix restores full OpenRouter functionality (15 models, 62+ aliases)
for users installing via uvx while maintaining backward compatibility
for development and explicit config scenarios.

Tested: All path resolution scenarios pass, OpenRouter models load correctly
2025-08-10 21:27:48 +07:00
Beehive Innovations
123851d50a Merge pull request #222 from svnlto/fix/pip-detection-clean
fix: pip detection inconsistency in non-interactive shells
2025-08-09 12:09:50 -07:00
Sven Lito
ee520825b4 fix: address PR review feedback on test quality
- Remove broken test with unused mock parameter
- Replace placeholder test with actual validation of diagnostic messages
- Remove unused imports (MagicMock, patch)
- Fix whitespace and formatting issues
- Ensure all 6 tests pass with meaningful assertions

Addresses high-priority feedback from PR review comments.
2025-08-08 23:58:19 +07:00
Sven Lito
8c38ef44b5 test: remove empty placeholder test cases
Remove 7 empty test methods that contained only 'pass' statements:
- TestPipDetectionPlatformCompatibility (4 methods)
- TestPipDetectionRegression (3 methods)

Keep working tests that have actual logic and assertions.
2025-08-08 23:53:48 +07:00
Sven Lito
cce6f7106c style: format test file with black 2025-08-08 23:49:24 +07:00
Sven Lito
7c6ec4a928 fix: resolve pip detection inconsistency in non-interactive shells
- Convert virtual environment Python paths to absolute paths to ensure
  consistency across different shell environments (Git Bash, WSL, etc.)
- Add enhanced diagnostic information when pip detection fails to help
  users troubleshoot path and environment issues
- Improve error messages with specific guidance for different platforms
- Fix black configuration to exclude .zen_venv directory from formatting
- Add comprehensive test suite for pip detection edge cases

Fixes #188
2025-08-08 23:49:24 +07:00
Sven Lito
bbf4afa327 feat: optimize PR Docker build to only run for relevant changes
- Add path filters to only trigger Docker builds for Python/Docker-related changes
- Includes: **.py, requirements*.txt, pyproject.toml, Dockerfile, docker-compose.yml, .dockerignore
- Avoids unnecessary builds for documentation-only or workflow-only PRs
- Saves CI resources and avoids permission issues for irrelevant changes
2025-08-08 17:51:24 +07:00
Sven Lito
a5597bbcde feat: add semantic PR validation workflow
- Validates PR titles against conventional commit standards
- Adds helpful comments when titles don't follow format
- Auto-deletes comments when titles are fixed
- Uses standard GITHUB_TOKEN (no special app setup needed)
- Enforces consistency with semantic-release workflow
2025-08-08 17:48:53 +07:00
Sven Lito
fcaf0d6917 fix: correct pre-commit global exclude pattern and remove redundant excludes
- Remove $ anchor from global exclude pattern to properly exclude files within directories
- Remove redundant exclude properties from black and ruff hooks since global exclude now handles it
- Ensures isort hook also excludes test_simulation_files/ consistently

Addresses reviewer feedback on PR #217
2025-08-08 17:39:25 +07:00
Sven Lito
af3a81543c feat: streamline GitHub Actions workflows and improve contributor experience
- Replace complex auto-version.yml with simple PR Docker build workflow
  - Builds Docker images for all PRs using pr-number-sha tagging
  - Removes redundant versioning logic (semantic-release handles this)
  - Adds automatic PR comments with Docker usage instructions

- Optimize test.yml workflow triggers
  - Remove redundant push triggers on main branch
  - Focus on PR testing only for better developer feedback

- Add docker-release.yml for production releases
  - Triggers on GitHub release publication
  - Multi-platform builds (linux/amd64, linux/arm64)
  - Updates release notes with Docker installation instructions

- Add semantic-release.yml workflow for automated versioning
  - Uses conventional commits for version bumping
  - Automatically generates releases and tags
  - Integrates with Docker workflow via release triggers

- Add pre-commit configuration for automatic code quality
  - Includes ruff (with auto-fix), black, isort
  - Provides faster development workflow option

- Enhance contribution documentation
  - Add pre-commit hook option as recommended approach
  - Keep manual script option for comprehensive testing
  - Improve developer workflow guidance

Fixes #215 (automatic changelog generation)
Addresses #110 (Docker builds automation)
References #107 (improved version tracking)

This creates a clean, modern CI/CD pipeline that eliminates redundancy
while addressing multiple community requests around changelog generation,
Docker builds, and release automation.
2025-08-08 17:33:51 +07:00
Fahad
e29deb23db Improvements to consensus 2025-08-08 12:59:41 +05:00
Fahad
b212cae5de Fixed labeling 2025-08-08 12:35:30 +05:00
Fahad
1c3dea3a08 Fixed labeling 2025-08-08 12:33:41 +05:00
Fahad
cded4c1251 Merge branch 'refactor-image-validation' 2025-08-08 12:01:28 +05:00
Fahad
9c3bf26b83 Bump version 2025-08-08 11:57:53 +05:00
Fahad
74ec6210f9 Better portability 2025-08-08 11:55:27 +05:00
Beehive Innovations
e67a66f582 Merge pull request #193 from nsp/feat/continue-setup-without-api-keys
feat: Continue Python environment setup even without API keys
2025-08-07 23:29:50 -07:00
Beehive Innovations
d969582473 Merge pull request #179 from GiGiDKR/fix-pr#151
fix: PR#151 - Enhance cross-platform support
2025-08-07 23:21:25 -07:00
Beehive Innovations
a1e0a57d6a Merge pull request #192 from nsp/refactor-image-validation
refactor: Extract image validation to provider base class
2025-08-07 23:19:41 -07:00
Fahad
f9dd55cfd3 Fix linting issues: add missing base64 import and remove unused import
- Add missing base64 import in providers/base.py
- Remove unused base64 import from providers/openai_compatible.py
- All tests now pass (19/19 image validation tests)
- Code quality checks pass 100%
2025-08-08 11:17:50 +05:00