Commit Graph

1032 Commits

Author SHA1 Message Date
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
Beehive Innovations
c993942efc Update base.py
removed unused import
2025-08-08 10:13:19 +04:00
Beehive Innovations
f7a079bc35 Merge branch 'main' into refactor-image-validation 2025-08-07 23:12:00 -07:00