crackerjack 0.34.2__tar.gz → 0.35.0__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.
Potentially problematic release.
This version of crackerjack might be problematic. Click here for more details.
- {crackerjack-0.34.2 → crackerjack-0.35.0}/CHANGELOG.md +10 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/PKG-INFO +1 -1
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/__main__.py +3 -4
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/documentation_agent.py +2 -2
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/options.py +41 -9
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/publish_manager.py +3 -3
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/progress_components.py +3 -5
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/dependency_monitor.py +2 -2
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/health_metrics.py +2 -2
- {crackerjack-0.34.2 → crackerjack-0.35.0}/pyproject.toml +1 -1
- {crackerjack-0.34.2 → crackerjack-0.35.0}/uv.lock +13 -13
- {crackerjack-0.34.2 → crackerjack-0.35.0}/.github/FUNDING.yml +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/.gitignore +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/.pre-commit-config.yaml +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/AGENTS.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/CLAUDE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/LICENSE +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/QWEN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/README.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/RULES.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/SECURITY.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/ai/AGENT-CAPABILITIES.json +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/ai/AGENT_SELECTION.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/ai/AI-REFERENCE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/ai/ERROR-PATTERNS.yaml +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/adapters/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/adapters/lsp_client.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/adapters/rust_tool_adapter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/adapters/rust_tool_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/adapters/skylos_adapter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/adapters/zuban_adapter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/architect_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/base.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/coordinator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/dry_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/formatting_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/import_optimization_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/performance_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/performance_helpers.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/proactive_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/refactoring_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/refactoring_helpers.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/security_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/test_creation_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/test_specialist_agent.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/agents/tracker.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/api.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/cache_handlers.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/cache_handlers_enhanced.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/facade.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/handlers.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/interactive.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/cli/utils.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/code_cleaner.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/config/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/config/global_lock_config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/config/hooks.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/async_workflow_orchestrator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/autofix_coordinator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/container.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/enhanced_container.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/file_lifecycle.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/performance.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/performance_monitor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/phase_coordinator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/proactive_workflow.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/resource_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/service_watchdog.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/session_coordinator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/timeout_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/websocket_lifecycle.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/core/workflow_orchestrator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/docs/INDEX.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/docs/generated/api/API_REFERENCE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/docs/generated/api/CLI_REFERENCE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/docs/generated/api/CROSS_REFERENCES.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/docs/generated/api/PROTOCOLS.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/docs/generated/api/SERVICES.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/documentation/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/documentation/ai_templates.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/documentation/dual_output_generator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/documentation/mkdocs_integration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/documentation/reference_generator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/dynamic_config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/errors.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/async_hook_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/cached_hook_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/hook_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/hook_lock_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/individual_hook_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/lsp_aware_hook_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/executors/tool_proxy.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/hooks/lsp_hook.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/intelligence/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/intelligence/adaptive_learning.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/intelligence/agent_orchestrator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/intelligence/agent_registry.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/intelligence/agent_selector.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/intelligence/integration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/interactive.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/async_hook_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/hook_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/test_command_builder.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/test_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/test_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/test_manager_backup.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/managers/test_progress.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/cache.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/client_runner.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/context.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/dashboard.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/enhanced_progress_monitor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/enhanced_progress_monitor.tcss +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/file_monitor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/progress_monitor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/progress_monitor.tcss +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/rate_limiter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/server.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/server_core.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/service_watchdog.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/state.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/task_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/core_tools.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/error_analyzer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/execution_tools.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/execution_tools_backup.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/intelligence_tool_registry.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/intelligence_tools.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/monitoring_tools.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/monitoring_tools.py.backup +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/proactive_tools.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/progress_tools.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/utility_tools.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/tools/workflow_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket/app.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket/endpoints.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket/jobs.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket/monitoring_endpoints.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket/server.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket/websocket_handler.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mcp/websocket_server.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mixins/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/mixins/error_handling.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/models/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/models/config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/models/config_adapter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/models/protocols.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/models/resource_protocols.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/models/task.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/monitoring/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/monitoring/ai_agent_watchdog.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/monitoring/metrics_collector.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/monitoring/regression_prevention.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/monitoring/websocket_server.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/orchestration/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/orchestration/advanced_orchestrator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/orchestration/coverage_improvement.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/orchestration/execution_strategies.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/orchestration/test_progress_streamer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/plugins/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/plugins/base.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/plugins/hooks.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/plugins/loader.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/plugins/managers.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/pyproject.toml +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/security/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/security/audit.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/anomaly_detector.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/api_extractor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/backup_service.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/bounded_status_operations.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/cache.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/changelog_automation.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/config_integrity.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/config_merge.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/config_template.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/contextual_ai_assistant.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/coverage_badge_service.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/coverage_ratchet.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/debug.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/dependency_analyzer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/documentation_generator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/documentation_service.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/enhanced_filesystem.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/enterprise_optimizer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/error_pattern_analyzer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/file_hasher.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/filesystem.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/git.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/heatmap_generator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/initialization.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/input_validator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/intelligent_commit.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/log_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/logging.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/lsp_client.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/memory_optimizer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/metrics.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/parallel_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/pattern_cache.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/pattern_detector.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/performance_benchmarks.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/performance_cache.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/performance_monitor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/predictive_analytics.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/quality_baseline.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/quality_baseline_enhanced.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/quality_intelligence.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/regex_patterns.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/regex_utils.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/secure_path_utils.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/secure_status_formatter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/secure_subprocess.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/security.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/security_logger.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/server_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/smart_scheduling.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/status_authentication.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/status_security_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/terminal_utils.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/thread_safe_status_collector.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/tool_version_service.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/unified_config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/validation_rate_limiter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/version_analyzer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/version_checker.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/websocket_resource_limiter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/services/zuban_lsp_service.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/slash_commands/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/slash_commands/init.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/slash_commands/run.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/slash_commands/status.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/tools/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/tools/fix_terminal.sh +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/tools/validate_input_validator_patterns.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/tools/validate_regex_patterns.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/uv.lock +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/architecture/API_REFERENCE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/architecture/ARCHITECTURE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/archive/CONFIG_MANAGEMENT_REPLACEMENT_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/archive/CONFIG_MERGE_REMOVAL_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/archive/DOCUMENTATION_REORGANIZATION_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/development/IDE-SETUP.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/development/RUST_TOOLING_FRAMEWORK.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/COMPLEXITY_REFACTORING_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/COVERAGE_BADGE_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/CURRENT_IMPLEMENTATION_STATUS.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/DOCUMENTATION_SYSTEM_ARCHITECTURE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/EXPERIMENTAL-EVALUATION.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/FEATURE_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_IMPLEMENTATION_SUMMARY.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/RESILIENT_HOOK_ARCHITECTURE_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/STAGE_HEADERS_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/TIMEOUT_ARCHITECTURE_SOLUTION.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/TYPE_ANNOTATION_FIXING_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/UVXUSAGE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/ZUBAN_LSP_INTEGRATION_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/planning/ZUBAN_TOML_PARSING_BUG_ANALYSIS.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/security/INPUT_VALIDATOR_SECURITY_AUDIT.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/security/SECURITY-AUDIT.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/security/SECURITY_AUDIT_REPORT.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/security/SECURITY_AUDIT_STATUS_DISCLOSURE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/security/SECURITY_HARDENING_REPORT.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/security/SECURITY_SUBPROCESS_HARDENING_REPORT.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/systems/BACKUP_SYSTEM.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/systems/CACHING_SYSTEM.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/systems/DASHBOARD_ARCHITECTURE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/systems/MCP_INTEGRATION.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/systems/MONITORING_INTEGRATION.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/docs/systems/UNIFIED_MONITORING_ARCHITECTURE.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/example.mcp.json +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/excalidraw.log +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/fix_typing_imports.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/mypy.ini +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/scripts/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/scripts/integrate_resource_management.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/scripts/performance_benchmark.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/templates/api_reference.md.template +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/templates/changelog_entry.md.template +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/templates/user_guide.md.template +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/test_docs_site/site/docs/api-reference.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/test_docs_site/site/docs/getting-started.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/test_docs_site/site/docs/index.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/test_docs_site/site/docs/stylesheets/extra.css +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/test_docs_site/site/mkdocs.yml +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/base_test.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/conftest.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/coverage.json +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/data/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/data/comments_sample.txt +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/data/docstrings_sample.txt +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/data/expected_comments_sample.txt +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/data/init.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/docs/HEALTH_METRICS_TESTING_SUMMARY.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/docs/TEST_COVERAGE_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/docs/TEST_IMPLEMENTATION_PLAN.md +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/run_tests.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/scripts/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/scripts/agent_audit_report.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/scripts/run_test_suite.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test___main__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_ai_agent_workflow.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_ai_optimized_documentation.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_async_hook_executor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_changelog_generation.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_cli/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_cli/test_global_lock_options.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_cli_semantic_naming.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_coordinator_performance.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_core_autofix_coordinator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_core_comprehensive.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_core_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_core_enhanced_container.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_core_modules.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_core_performance.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_documentation_agent_simple.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_dynamic_config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_dynamic_config_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_end_to_end_integration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_enhanced_filesystem.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_enhanced_filesystem_comprehensive.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_enhanced_filesystem_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_execution_speed_optimization.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_executors/__init__.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_executors/test_lock_integration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_fast_hooks_behavior.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_filesystem_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_final_validation.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_global_lock_config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_hook_lock_manager.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_hook_manager_simple.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_import_coverage_consolidated.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_input_validation.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_intelligence_system.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_large_modules_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_main_entry_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_main_module.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_managers_consolidated.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_mcp_progress_monitor.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_mcp_server.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_models_comprehensive.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_models_config_adapter_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_models_focused.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_models_task_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_modernized_code.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_performance_agent_enhanced.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_performance_agent_simple.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_performance_benchmarks_focused.py.bak +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_phase_coordinator_simple.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_plugins_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_proactive_agent_system.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_protocol_compliance.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_publish_manager_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_pytest_features.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_regex_patterns.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_resource_cleanup_integration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_secure_path_utils.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_secure_status_formatter.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_security_audit.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_security_hardening.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_security_integration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_services_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_session_coordinator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_session_coordinator_coverage.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_simple_tool_version_service.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_simple_workflow.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_stage_workflow_execution_order.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_structured_errors.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_structured_logging.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_syntax_validation.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_terminal_restoration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_terminal_state.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_timeout_system.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_unified_api.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_unified_config.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_unified_monitoring_dashboard.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_validate_regex_patterns_tool.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_version_analyzer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_version_bump_analyzer.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_websocket_endpoints.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_workflow_fast_hooks.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_workflow_integration.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tests/test_workflow_orchestrator.py +0 -0
- {crackerjack-0.34.2 → crackerjack-0.35.0}/tools/validate_regex_patterns_standalone.py +0 -0
|
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.35.0] - 2025-09-15
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- cli: Add 'auto' option to BumpOption enum and fix URL formatting
|
|
13
|
+
|
|
14
|
+
### Documentation
|
|
15
|
+
|
|
16
|
+
- config: Update CHANGELOG, CLAUDE, pyproject
|
|
17
|
+
|
|
8
18
|
## [0.34.2] - 2025-09-15
|
|
9
19
|
|
|
10
20
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crackerjack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.35.0
|
|
4
4
|
Summary: Crackerjack Python project management tool
|
|
5
5
|
Project-URL: documentation, https://github.com/lesleslie/crackerjack
|
|
6
6
|
Project-URL: homepage, https://github.com/lesleslie/crackerjack
|
|
@@ -11,7 +11,6 @@ from crackerjack.services.git import GitService
|
|
|
11
11
|
|
|
12
12
|
from .cli import (
|
|
13
13
|
CLI_OPTIONS,
|
|
14
|
-
BumpOption,
|
|
15
14
|
create_options,
|
|
16
15
|
handle_interactive_mode,
|
|
17
16
|
handle_standard_mode,
|
|
@@ -1220,9 +1219,9 @@ def main(
|
|
|
1220
1219
|
update_precommit: bool = CLI_OPTIONS["update_precommit"],
|
|
1221
1220
|
verbose: bool = CLI_OPTIONS["verbose"],
|
|
1222
1221
|
debug: bool = CLI_OPTIONS["debug"],
|
|
1223
|
-
publish:
|
|
1224
|
-
all:
|
|
1225
|
-
bump:
|
|
1222
|
+
publish: str | None = CLI_OPTIONS["publish"],
|
|
1223
|
+
all: str | None = CLI_OPTIONS["all"],
|
|
1224
|
+
bump: str | None = CLI_OPTIONS["bump"],
|
|
1226
1225
|
strip_code: bool = CLI_OPTIONS["strip_code"],
|
|
1227
1226
|
run_tests: bool = CLI_OPTIONS["run_tests"],
|
|
1228
1227
|
benchmark: bool = CLI_OPTIONS["benchmark"],
|
|
@@ -325,8 +325,8 @@ class DocumentationAgent(SubAgent):
|
|
|
325
325
|
|
|
326
326
|
All notable changes to this project will be documented in this file.
|
|
327
327
|
|
|
328
|
-
The format is based on [Keep a Changelog](https
|
|
329
|
-
and this project adheres to [Semantic Versioning](https
|
|
328
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
329
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
330
330
|
|
|
331
331
|
{entry}
|
|
332
332
|
"""
|
|
@@ -2,15 +2,36 @@ import typing as t
|
|
|
2
2
|
import warnings
|
|
3
3
|
from enum import Enum
|
|
4
4
|
|
|
5
|
+
import click
|
|
5
6
|
import typer
|
|
6
7
|
from pydantic import BaseModel, field_validator, model_validator
|
|
7
8
|
|
|
8
9
|
|
|
10
|
+
def parse_bump_option_with_flag_support(
|
|
11
|
+
ctx: click.Context, param: click.Parameter, value: str | None
|
|
12
|
+
) -> str | None:
|
|
13
|
+
"""Parse bump option that supports both flag usage (-p) and value usage (-p patch)."""
|
|
14
|
+
if value is None:
|
|
15
|
+
return None
|
|
16
|
+
|
|
17
|
+
# If the value starts with a dash, it's likely another flag that typer mistakenly captured
|
|
18
|
+
if value.startswith("-"):
|
|
19
|
+
# Put the value back into the arguments for typer to process
|
|
20
|
+
if hasattr(ctx, "protected_args"):
|
|
21
|
+
ctx.protected_args.insert(0, value)
|
|
22
|
+
elif hasattr(ctx, "args"):
|
|
23
|
+
ctx.args.insert(0, value)
|
|
24
|
+
return "interactive"
|
|
25
|
+
|
|
26
|
+
return value
|
|
27
|
+
|
|
28
|
+
|
|
9
29
|
class BumpOption(str, Enum):
|
|
10
30
|
patch = "patch"
|
|
11
31
|
minor = "minor"
|
|
12
32
|
major = "major"
|
|
13
33
|
interactive = "interactive"
|
|
34
|
+
auto = "auto"
|
|
14
35
|
|
|
15
36
|
def __str__(self) -> str:
|
|
16
37
|
return str(self.value)
|
|
@@ -91,7 +112,7 @@ class Options(BaseModel):
|
|
|
91
112
|
strip_code: bool | None = None # Replaces clean
|
|
92
113
|
run_tests: bool = False # Replaces test
|
|
93
114
|
ai_fix: bool | None = None # Replaces ai_agent
|
|
94
|
-
full_release:
|
|
115
|
+
full_release: str | None = None # Replaces all
|
|
95
116
|
show_progress: bool | None = None # Replaces track_progress
|
|
96
117
|
advanced_monitor: bool | None = None # Replaces enhanced_monitor
|
|
97
118
|
coverage_report: bool | None = None # Replaces coverage_status
|
|
@@ -223,6 +244,11 @@ class Options(BaseModel):
|
|
|
223
244
|
return None
|
|
224
245
|
if value == "":
|
|
225
246
|
return BumpOption.interactive
|
|
247
|
+
|
|
248
|
+
# Handle case where typer parsed a flag as the value (e.g., -p -c becomes value="-c")
|
|
249
|
+
if isinstance(value, str) and value.startswith("-"):
|
|
250
|
+
return BumpOption.interactive
|
|
251
|
+
|
|
226
252
|
try:
|
|
227
253
|
return BumpOption(value.lower())
|
|
228
254
|
except ValueError:
|
|
@@ -275,9 +301,12 @@ CLI_OPTIONS = {
|
|
|
275
301
|
None,
|
|
276
302
|
"-p",
|
|
277
303
|
"--publish",
|
|
304
|
+
callback=parse_bump_option_with_flag_support,
|
|
278
305
|
help=(
|
|
279
|
-
"Bump version and publish to PyPI (patch, minor, major). "
|
|
280
|
-
"Use 'interactive' to be prompted for version selection."
|
|
306
|
+
"Bump version and publish to PyPI (patch, minor, major, auto). "
|
|
307
|
+
"Use 'interactive' to be prompted for version selection. "
|
|
308
|
+
"Use 'auto' to automatically use AI recommendations. "
|
|
309
|
+
"When used as a flag (-p), defaults to 'interactive'."
|
|
281
310
|
),
|
|
282
311
|
case_sensitive=False,
|
|
283
312
|
),
|
|
@@ -285,14 +314,16 @@ CLI_OPTIONS = {
|
|
|
285
314
|
None,
|
|
286
315
|
"-a",
|
|
287
316
|
"--all",
|
|
288
|
-
|
|
317
|
+
callback=parse_bump_option_with_flag_support,
|
|
318
|
+
help="Full release workflow: bump version, run quality checks, and publish (patch, minor, major, auto). When used as a flag (-a), defaults to 'interactive'.",
|
|
289
319
|
case_sensitive=False,
|
|
290
320
|
),
|
|
291
321
|
"bump": typer.Option(
|
|
292
322
|
None,
|
|
293
323
|
"-b",
|
|
294
324
|
"--bump",
|
|
295
|
-
|
|
325
|
+
callback=parse_bump_option_with_flag_support,
|
|
326
|
+
help="Bump version (patch, minor, major, auto). When used as a flag (-b), defaults to 'interactive'.",
|
|
296
327
|
case_sensitive=False,
|
|
297
328
|
),
|
|
298
329
|
"benchmark": typer.Option(
|
|
@@ -644,7 +675,8 @@ CLI_OPTIONS = {
|
|
|
644
675
|
None,
|
|
645
676
|
"-a",
|
|
646
677
|
"--full-release",
|
|
647
|
-
|
|
678
|
+
callback=parse_bump_option_with_flag_support,
|
|
679
|
+
help="Complete release workflow: strip code, run tests, bump version, and publish (patch, minor, major, auto). Equivalent to `-x -t -p <version> -c`. When used as a flag (-a), defaults to 'interactive'.",
|
|
648
680
|
case_sensitive=False,
|
|
649
681
|
),
|
|
650
682
|
"show_progress": typer.Option(
|
|
@@ -869,8 +901,8 @@ def create_options(
|
|
|
869
901
|
update_precommit: bool,
|
|
870
902
|
verbose: bool,
|
|
871
903
|
debug: bool,
|
|
872
|
-
publish:
|
|
873
|
-
bump:
|
|
904
|
+
publish: str | None,
|
|
905
|
+
bump: str | None,
|
|
874
906
|
benchmark: bool,
|
|
875
907
|
test_workers: int,
|
|
876
908
|
test_timeout: int,
|
|
@@ -953,7 +985,7 @@ def create_options(
|
|
|
953
985
|
strip_code: bool | None = None,
|
|
954
986
|
run_tests: bool = False,
|
|
955
987
|
ai_fix: bool | None = None,
|
|
956
|
-
full_release:
|
|
988
|
+
full_release: str | None = None,
|
|
957
989
|
show_progress: bool | None = None,
|
|
958
990
|
advanced_monitor: bool | None = None,
|
|
959
991
|
coverage_report: bool | None = None,
|
|
@@ -284,7 +284,7 @@ class PublishManagerImpl:
|
|
|
284
284
|
[
|
|
285
285
|
"keyring",
|
|
286
286
|
"get",
|
|
287
|
-
"https
|
|
287
|
+
"https://upload.pypi.org/legacy/",
|
|
288
288
|
"__token__",
|
|
289
289
|
],
|
|
290
290
|
)
|
|
@@ -315,7 +315,7 @@ class PublishManagerImpl:
|
|
|
315
315
|
" 1. Set environment variable: export UV_PUBLISH_TOKEN=<your-pypi-token>",
|
|
316
316
|
)
|
|
317
317
|
self.console.print(
|
|
318
|
-
" 2. Use keyring: keyring set[t.Any] https
|
|
318
|
+
" 2. Use keyring: keyring set[t.Any] https://upload.pypi.org/legacy/ __token__",
|
|
319
319
|
)
|
|
320
320
|
self.console.print(
|
|
321
321
|
" 3. Ensure token starts with 'pypi-' and is properly formatted",
|
|
@@ -434,7 +434,7 @@ class PublishManagerImpl:
|
|
|
434
434
|
package_name = self._get_package_name()
|
|
435
435
|
|
|
436
436
|
if package_name and current_version:
|
|
437
|
-
url = f"https
|
|
437
|
+
url = f"https://pypi.org/project/{package_name}/{current_version}/"
|
|
438
438
|
self.console.print(f"[cyan]🔗[/ cyan] Package URL: {url}")
|
|
439
439
|
|
|
440
440
|
def _get_package_name(self) -> str | None:
|
|
@@ -157,11 +157,9 @@ class JobDataCollector:
|
|
|
157
157
|
"network_operations",
|
|
158
158
|
timeout=5.0,
|
|
159
159
|
):
|
|
160
|
-
websocket_base = self.websocket_url.replace(
|
|
161
|
-
"
|
|
162
|
-
|
|
163
|
-
"wss: //",
|
|
164
|
-
"https: //",
|
|
160
|
+
websocket_base = self.websocket_url.replace("ws://", "http://").replace(
|
|
161
|
+
"wss://",
|
|
162
|
+
"https://",
|
|
165
163
|
)
|
|
166
164
|
|
|
167
165
|
async with (
|
|
@@ -452,13 +452,13 @@ class DependencyMonitorService:
|
|
|
452
452
|
|
|
453
453
|
import requests
|
|
454
454
|
|
|
455
|
-
url = f"https
|
|
455
|
+
url = f"https://pypi.org/pypi/{package}/json"
|
|
456
456
|
self._validate_pypi_url(url)
|
|
457
457
|
|
|
458
458
|
parsed = urlparse(url)
|
|
459
459
|
|
|
460
460
|
if parsed.scheme != "https" or parsed.netloc != "pypi.org":
|
|
461
|
-
msg = f"Invalid URL: only https
|
|
461
|
+
msg = f"Invalid URL: only https://pypi.org URLs are allowed, got {url}"
|
|
462
462
|
raise ValueError(msg)
|
|
463
463
|
|
|
464
464
|
response = requests.get(url, timeout=10, verify=True)
|
|
@@ -347,11 +347,11 @@ class HealthMetricsService:
|
|
|
347
347
|
try:
|
|
348
348
|
from urllib.parse import urlparse
|
|
349
349
|
|
|
350
|
-
url = f"https
|
|
350
|
+
url = f"https://pypi.org/pypi/{package_name}/json"
|
|
351
351
|
|
|
352
352
|
parsed = urlparse(url)
|
|
353
353
|
if parsed.scheme != "https" or parsed.netloc != "pypi.org":
|
|
354
|
-
msg = f"Invalid URL: only https
|
|
354
|
+
msg = f"Invalid URL: only https://pypi.org URLs are allowed, got {url}"
|
|
355
355
|
raise ValueError(msg)
|
|
356
356
|
|
|
357
357
|
if not parsed.path.startswith("/pypi/") or not parsed.path.endswith(
|
|
@@ -165,15 +165,15 @@ css = [
|
|
|
165
165
|
|
|
166
166
|
[[package]]
|
|
167
167
|
name = "blessed"
|
|
168
|
-
version = "1.
|
|
168
|
+
version = "1.22.0"
|
|
169
169
|
source = { registry = "https://pypi.org/simple" }
|
|
170
170
|
dependencies = [
|
|
171
171
|
{ name = "jinxed", marker = "sys_platform == 'win32'" },
|
|
172
172
|
{ name = "wcwidth" },
|
|
173
173
|
]
|
|
174
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
174
|
+
sdist = { url = "https://files.pythonhosted.org/packages/7c/51/a72df7730aa34a94bc43cebecb7b63ffa42f019868637dbeb45e0620d26e/blessed-1.22.0.tar.gz", hash = "sha256:1818efb7c10015478286f21a412fcdd31a3d8b94a18f6d926e733827da7a844b", size = 6660050, upload-time = "2025-09-15T19:15:26.551Z" }
|
|
175
175
|
wheels = [
|
|
176
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
176
|
+
{ url = "https://files.pythonhosted.org/packages/11/b7/a19b55c4cd0b5ca5009ca11d3634994758a1a446976b8e7afa25e719613c/blessed-1.22.0-py2.py3-none-any.whl", hash = "sha256:a1fed52d708a1aa26dfb8d3eaecf6f4714bff590e728baeefcb44f2c16c8de82", size = 85078, upload-time = "2025-09-15T19:15:24.787Z" },
|
|
177
177
|
]
|
|
178
178
|
|
|
179
179
|
[[package]]
|
|
@@ -398,7 +398,7 @@ wheels = [
|
|
|
398
398
|
|
|
399
399
|
[[package]]
|
|
400
400
|
name = "crackerjack"
|
|
401
|
-
version = "0.34.
|
|
401
|
+
version = "0.34.2"
|
|
402
402
|
source = { editable = "." }
|
|
403
403
|
dependencies = [
|
|
404
404
|
{ name = "aiofiles" },
|
|
@@ -963,7 +963,7 @@ wheels = [
|
|
|
963
963
|
|
|
964
964
|
[[package]]
|
|
965
965
|
name = "huggingface-hub"
|
|
966
|
-
version = "0.34.
|
|
966
|
+
version = "0.34.5"
|
|
967
967
|
source = { registry = "https://pypi.org/simple" }
|
|
968
968
|
dependencies = [
|
|
969
969
|
{ name = "filelock" },
|
|
@@ -975,9 +975,9 @@ dependencies = [
|
|
|
975
975
|
{ name = "tqdm" },
|
|
976
976
|
{ name = "typing-extensions" },
|
|
977
977
|
]
|
|
978
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
978
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1f/08/306b0d3db3679b3c07cab9ce117a920de77f3ea4dba6ba27646660518619/huggingface_hub-0.34.5.tar.gz", hash = "sha256:f676c6db41bc3fbd4020f520c842a0548f4c9a3f698dbfa6514bd8e41c3ab52a", size = 460006, upload-time = "2025-09-15T14:24:24.734Z" }
|
|
979
979
|
wheels = [
|
|
980
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
980
|
+
{ url = "https://files.pythonhosted.org/packages/79/3d/55ef77a0539b0124efd47d8b3759bf49e880f57729f7123c0311b41a9bb8/huggingface_hub-0.34.5-py3-none-any.whl", hash = "sha256:fea377adc6e9b6c239c1450e41a1409cbf2c6364d289c04c31d7dbaa222842e3", size = 562219, upload-time = "2025-09-15T14:24:22.851Z" },
|
|
981
981
|
]
|
|
982
982
|
|
|
983
983
|
[[package]]
|
|
@@ -1003,15 +1003,15 @@ wheels = [
|
|
|
1003
1003
|
|
|
1004
1004
|
[[package]]
|
|
1005
1005
|
name = "hypothesis"
|
|
1006
|
-
version = "6.138.
|
|
1006
|
+
version = "6.138.17"
|
|
1007
1007
|
source = { registry = "https://pypi.org/simple" }
|
|
1008
1008
|
dependencies = [
|
|
1009
1009
|
{ name = "attrs" },
|
|
1010
1010
|
{ name = "sortedcontainers" },
|
|
1011
1011
|
]
|
|
1012
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1012
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d2/d9/933014091e35e849a1555bc87866809dd985bb558d43734e5b9cd2191c1f/hypothesis-6.138.17.tar.gz", hash = "sha256:2419eef387211c63bed091938cf17fa909898f064d320e996bcd90383f5ce3c6", size = 466016, upload-time = "2025-09-15T22:09:21.512Z" }
|
|
1013
1013
|
wheels = [
|
|
1014
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1014
|
+
{ url = "https://files.pythonhosted.org/packages/92/81/fbb1beddafb8bfc1deff69cbf6e2aaba10c1c7bdafe7a323845539ba14af/hypothesis-6.138.17-py3-none-any.whl", hash = "sha256:b2cf91f1926445cf4d44f5ec9a955c7f637f93e34247ac04e4fb44d010141c85", size = 533688, upload-time = "2025-09-15T22:09:18.063Z" },
|
|
1015
1015
|
]
|
|
1016
1016
|
|
|
1017
1017
|
[[package]]
|
|
@@ -2604,7 +2604,7 @@ wheels = [
|
|
|
2604
2604
|
|
|
2605
2605
|
[[package]]
|
|
2606
2606
|
name = "session-mgmt-mcp"
|
|
2607
|
-
version = "0.3.
|
|
2607
|
+
version = "0.3.7"
|
|
2608
2608
|
source = { registry = "https://pypi.org/simple" }
|
|
2609
2609
|
dependencies = [
|
|
2610
2610
|
{ name = "crackerjack" },
|
|
@@ -2622,9 +2622,9 @@ dependencies = [
|
|
|
2622
2622
|
{ name = "transformers" },
|
|
2623
2623
|
{ name = "typer" },
|
|
2624
2624
|
]
|
|
2625
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
2625
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ed/ce/c062659fbb3b4b05f71ad5c5229b80310d1297aa38abe8f1ca14447272a6/session_mgmt_mcp-0.3.7.tar.gz", hash = "sha256:e8c2a251772ee06d4e8b1d53b7f413af1d745e2886467ca9db96b058adfba23d", size = 491514, upload-time = "2025-09-16T02:27:32.692Z" }
|
|
2626
2626
|
wheels = [
|
|
2627
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2627
|
+
{ url = "https://files.pythonhosted.org/packages/bf/41/ffb2a66455d9fe29efe7c46387295a604f29fc006f522edda0fe7784114e/session_mgmt_mcp-0.3.7-py3-none-any.whl", hash = "sha256:eacf82edd79d9a012642181c5769eb5d9f768d3ad98ee17c06dc16600517d483", size = 219032, upload-time = "2025-09-16T02:27:30.908Z" },
|
|
2628
2628
|
]
|
|
2629
2629
|
|
|
2630
2630
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/docs/generated/api/CROSS_REFERENCES.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{crackerjack-0.34.2 → crackerjack-0.35.0}/crackerjack/documentation/dual_output_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|