crackerjack 0.31.18__tar.gz → 0.33.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.31.18 → crackerjack-0.33.0}/.gitignore +3 -0
- {crackerjack-0.31.18/crackerjack → crackerjack-0.33.0}/.pre-commit-config.yaml +1 -1
- {crackerjack-0.31.18 → crackerjack-0.33.0}/CHANGELOG.md +239 -0
- crackerjack-0.33.0/CLAUDE.md +207 -0
- crackerjack-0.33.0/PERFORMANCE-BENCHMARK-REPORT.md +377 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/PKG-INFO +2 -2
- crackerjack-0.33.0/REFACTORING-REPORT.md +439 -0
- crackerjack-0.33.0/REFACTORING_SUMMARY.md +141 -0
- crackerjack-0.33.0/SECURITY-AUDIT.md +178 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/.gitignore +3 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0/crackerjack}/.pre-commit-config.yaml +1 -1
- crackerjack-0.33.0/crackerjack/CLAUDE.md +207 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/__main__.py +1 -1
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/refactoring_agent.py +67 -46
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/cli/handlers.py +7 -7
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/config/hooks.py +36 -6
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/async_workflow_orchestrator.py +2 -2
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/enhanced_container.py +67 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/phase_coordinator.py +211 -44
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/workflow_orchestrator.py +723 -72
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/dynamic_config.py +1 -25
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/publish_manager.py +22 -5
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/test_command_builder.py +19 -13
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/test_manager.py +15 -4
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/server_core.py +162 -34
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/core_tools.py +1 -1
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/execution_tools.py +16 -3
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/workflow_executor.py +130 -40
- crackerjack-0.33.0/crackerjack/mixins/__init__.py +5 -0
- crackerjack-0.33.0/crackerjack/mixins/error_handling.py +214 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/models/config.py +9 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/models/protocols.py +114 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/models/task.py +3 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/pyproject.toml +8 -2
- crackerjack-0.33.0/crackerjack/security/__init__.py +1 -0
- crackerjack-0.33.0/crackerjack/security/audit.py +226 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/config.py +3 -2
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/config_merge.py +11 -5
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/coverage_ratchet.py +22 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/git.py +121 -22
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/initialization.py +25 -9
- crackerjack-0.33.0/crackerjack/services/memory_optimizer.py +477 -0
- crackerjack-0.33.0/crackerjack/services/parallel_executor.py +474 -0
- crackerjack-0.33.0/crackerjack/services/performance_benchmarks.py +343 -0
- crackerjack-0.33.0/crackerjack/services/performance_cache.py +443 -0
- crackerjack-0.33.0/crackerjack/services/performance_monitor.py +633 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/security.py +63 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/security_logger.py +9 -1
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/tools/validate_regex_patterns.py +14 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/uv.lock +4 -4
- crackerjack-0.33.0/performance_benchmark_results.json +63 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/pyproject.toml +8 -2
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/conftest.py +1 -1
- crackerjack-0.33.0/tests/scripts/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_ai_agent_workflow.py +1 -1
- crackerjack-0.33.0/tests/test_fast_hooks_behavior.py +355 -0
- crackerjack-0.33.0/tests/test_final_validation.py +257 -0
- crackerjack-0.31.18/tests/test_performance_benchmarks_focused.py → crackerjack-0.33.0/tests/test_performance_benchmarks_focused.py.bak +2 -2
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_phase_coordinator_simple.py +52 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_protocol_compliance.py +6 -0
- crackerjack-0.33.0/tests/test_security_audit.py +143 -0
- crackerjack-0.33.0/tests/test_security_integration.py +220 -0
- crackerjack-0.33.0/tests/test_simple_workflow.py +149 -0
- crackerjack-0.33.0/tests/test_validate_regex_patterns_tool.py +286 -0
- crackerjack-0.33.0/tests/test_workflow_fast_hooks.py +379 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/uv.lock +4 -4
- crackerjack-0.31.18/CLAUDE.md +0 -588
- crackerjack-0.31.18/complexipy.csv +0 -3702
- crackerjack-0.31.18/crackerjack/CLAUDE.md +0 -588
- crackerjack-0.31.18/crackerjack/services/performance_benchmarks.py +0 -628
- crackerjack-0.31.18/feature-implementation-optimization.md +0 -152
- crackerjack-0.31.18/feature-implementation-plan.md +0 -7927
- crackerjack-0.31.18/session_handoff_20250906_110220.md +0 -29
- crackerjack-0.31.18/test-implementation-plan.md +0 -643
- {crackerjack-0.31.18 → crackerjack-0.33.0}/.github/FUNDING.yml +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/AGENT-CAPABILITIES.json +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/AGENTS.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/AI-AGENT-RULES.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/AI-REFERENCE.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/ERROR-PATTERNS.yaml +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/LICENSE +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/PERFORMANCE_AGENT_ENHANCEMENTS.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/QWEN.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/README-AI-AGENT.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/README.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/REFACTORING_AGENT_ENHANCEMENTS.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/RULES.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/SECURITY.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/UVXUSAGE.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/RULES.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/architect_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/base.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/coordinator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/documentation_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/dry_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/formatting_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/import_optimization_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/performance_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/performance_helpers.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/proactive_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/refactoring_helpers.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/security_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/test_creation_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/test_specialist_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/agents/tracker.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/api.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/cli/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/cli/interactive.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/cli/options.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/cli/utils.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/code_cleaner.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/config/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/config/global_lock_config.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/autofix_coordinator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/container.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/file_lifecycle.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/performance.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/performance_monitor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/proactive_workflow.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/resource_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/service_watchdog.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/session_coordinator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/timeout_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/core/websocket_lifecycle.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/errors.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/example.mcp.json +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/executors/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/executors/async_hook_executor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/executors/cached_hook_executor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/executors/hook_executor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/executors/hook_lock_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/executors/individual_hook_executor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/intelligence/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/intelligence/adaptive_learning.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/intelligence/agent_orchestrator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/intelligence/agent_registry.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/intelligence/agent_selector.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/intelligence/integration.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/interactive.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/async_hook_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/hook_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/test_executor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/test_manager_backup.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/managers/test_progress.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/cache.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/client_runner.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/context.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/dashboard.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/enhanced_progress_monitor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/enhanced_progress_monitor.tcss +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/file_monitor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/progress_components.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/progress_monitor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/progress_monitor.tcss +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/rate_limiter.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/server.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/service_watchdog.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/state.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/task_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/error_analyzer.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/execution_tools_backup.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/intelligence_tool_registry.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/intelligence_tools.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/monitoring_tools.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/monitoring_tools.py.backup +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/proactive_tools.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/progress_tools.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/tools/utility_tools.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/websocket/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/websocket/app.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/websocket/endpoints.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/websocket/jobs.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/websocket/server.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/websocket/websocket_handler.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/mcp/websocket_server.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/models/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/models/config_adapter.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/models/resource_protocols.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/monitoring/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/monitoring/ai_agent_watchdog.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/monitoring/regression_prevention.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/orchestration/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/orchestration/advanced_orchestrator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/orchestration/coverage_improvement.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/orchestration/execution_strategies.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/orchestration/test_progress_streamer.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/plugins/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/plugins/base.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/plugins/hooks.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/plugins/loader.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/plugins/managers.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/py313.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/backup_service.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/bounded_status_operations.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/cache.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/config_integrity.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/contextual_ai_assistant.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/debug.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/dependency_monitor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/enhanced_filesystem.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/file_hasher.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/filesystem.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/health_metrics.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/input_validator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/log_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/logging.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/metrics.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/pattern_cache.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/pattern_detector.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/regex_patterns.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/regex_utils.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/secure_path_utils.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/secure_status_formatter.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/secure_subprocess.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/server_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/smart_scheduling.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/status_authentication.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/status_security_manager.py +0 -0
- /crackerjack-0.31.18/crackerjack/tools/__init__.py → /crackerjack-0.33.0/crackerjack/services/terminal_utils.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/thread_safe_status_collector.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/tool_version_service.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/unified_config.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/validation_rate_limiter.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/version_checker.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/services/websocket_resource_limiter.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/slash_commands/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/slash_commands/init.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/slash_commands/run.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/slash_commands/status.md +0 -0
- {crackerjack-0.31.18/scripts → crackerjack-0.33.0/crackerjack/tools}/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/tools/fix_terminal.sh +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/crackerjack/tools/validate_input_validator_patterns.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/AI_AGENT_DEBUGGING.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/API_REFERENCE.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/ARCHITECTURE.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/BACKUP_SYSTEM.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/DASHBOARD_ARCHITECTURE.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/FUTURE-ENHANCEMENTS.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/MCP_INTEGRATION.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/MONITORING_INTEGRATION.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/RESOURCE_CLEANUP_IMPLEMENTATION.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/SUB_AGENT_MONITORING_DESIGN.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/VERIFICATION_WORKFLOW.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/WORKFLOW_KNOWLEDGE_BASE.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/security/INPUT_VALIDATOR_SECURITY_AUDIT.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/security/SECURITY_AUDIT_REPORT.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/security/SECURITY_AUDIT_STATUS_DISCLOSURE.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/security/SECURITY_HARDENING_REPORT.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/docs/security/SECURITY_SUBPROCESS_HARDENING_REPORT.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/example.mcp.json +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/excalidraw.log +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/requirements.txt +0 -0
- {crackerjack-0.31.18/tests → crackerjack-0.33.0/scripts}/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/scripts/integrate_resource_management.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/scripts/performance_benchmark.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/.coverage +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/HEALTH_METRICS_TESTING_SUMMARY.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/TESTING.md +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/TEST_COVERAGE_PLAN.md +0 -0
- {crackerjack-0.31.18/tests/data → crackerjack-0.33.0/tests}/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/coverage.json +0 -0
- {crackerjack-0.31.18/tests/scripts → crackerjack-0.33.0/tests/data}/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/data/comments_sample.txt +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/data/docstrings_sample.txt +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/data/expected_comments_sample.txt +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/data/init.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/scripts/agent_audit_report.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/scripts/run_test_suite.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test___main__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_async_hook_executor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_cli/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_cli/test_global_lock_options.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_core_autofix_coordinator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_core_comprehensive.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_core_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_core_enhanced_container.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_core_modules.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_core_performance.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_documentation_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_documentation_agent_simple.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_dynamic_config.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_dynamic_config_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_enhanced_filesystem.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_enhanced_filesystem_comprehensive.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_enhanced_filesystem_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_executors/__init__.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_executors/test_lock_integration.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_filesystem_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_global_lock_config.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_hook_lock_manager.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_hook_manager_simple.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_import_coverage_consolidated.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_import_optimization_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_input_validation.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_intelligence_system.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_large_modules_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_main_entry_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_main_module.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_managers_consolidated.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_mcp_progress_monitor.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_mcp_server.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_models_comprehensive.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_models_config_adapter_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_models_focused.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_models_task_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_modernized_code.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_performance_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_performance_agent_enhanced.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_performance_agent_simple.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_plugins_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_proactive_agent_system.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_publish_manager_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_py313_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_pytest_features.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_refactoring_agent.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_regex_patterns.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_resource_cleanup_integration.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_secure_path_utils.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_secure_status_formatter.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_security_hardening.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_services_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_session_coordinator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_session_coordinator_coverage.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_simple_tool_version_service.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_stage_workflow_execution_order.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_structured_errors.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_structured_logging.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_terminal_restoration.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_terminal_state.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_timeout_system.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_unified_api.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_unified_config.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_websocket_endpoints.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_workflow_integration.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tests/test_workflow_orchestrator.py +0 -0
- {crackerjack-0.31.18 → crackerjack-0.33.0}/tools/validate_regex_patterns_standalone.py +0 -0
|
@@ -89,11 +89,14 @@ __pycache__/
|
|
|
89
89
|
/dist/
|
|
90
90
|
/error-context.json
|
|
91
91
|
/examples/
|
|
92
|
+
/feature-implementation-*.md
|
|
92
93
|
/hooks-analysis.json
|
|
93
94
|
/htmlcov/
|
|
94
95
|
/project-structure.json
|
|
95
96
|
/quality-metrics.json
|
|
96
97
|
/scratch/
|
|
98
|
+
/session_handoff_*.md
|
|
99
|
+
/test-implementation-*.md
|
|
97
100
|
/test-results.xml
|
|
98
101
|
/tests/.benchmarks/
|
|
99
102
|
/tests/htmlcov/
|
|
@@ -3,7 +3,7 @@ repos:
|
|
|
3
3
|
hooks:
|
|
4
4
|
- id: validate-regex-patterns
|
|
5
5
|
name: validate-regex-patterns
|
|
6
|
-
entry: uv run python
|
|
6
|
+
entry: uv run python -m crackerjack.tools.validate_regex_patterns
|
|
7
7
|
language: system
|
|
8
8
|
files: \.py$
|
|
9
9
|
exclude: ^\.venv/
|
|
@@ -5,6 +5,245 @@ 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
|
+
## [Unreleased] - 2025-09-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- feat: add new feature
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- fix: resolve bug in parser
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [Unreleased] - 2025-09-07
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- feat: add new feature
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- fix: resolve bug in parser
|
|
26
|
+
|
|
27
|
+
## [Unreleased] - 2025-09-07
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- feat: add new feature
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- fix: resolve bug in parser
|
|
36
|
+
|
|
37
|
+
## [Unreleased] - 2025-09-07
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- feat: add new feature
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
- fix: resolve bug in parser
|
|
46
|
+
|
|
47
|
+
## [Unreleased] - 2025-09-07
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- feat: add new feature
|
|
52
|
+
|
|
53
|
+
### Fixed
|
|
54
|
+
|
|
55
|
+
- fix: resolve bug in parser
|
|
56
|
+
|
|
57
|
+
## [Unreleased] - 2025-09-06
|
|
58
|
+
|
|
59
|
+
### Added
|
|
60
|
+
|
|
61
|
+
- feat: add new feature
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- fix: resolve bug in parser
|
|
66
|
+
|
|
67
|
+
## [Unreleased] - 2025-09-06
|
|
68
|
+
|
|
69
|
+
### Added
|
|
70
|
+
|
|
71
|
+
- feat: add new feature
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
|
|
75
|
+
- fix: resolve bug in parser
|
|
76
|
+
|
|
77
|
+
## [Unreleased] - 2025-09-06
|
|
78
|
+
|
|
79
|
+
### Added
|
|
80
|
+
|
|
81
|
+
- feat: add new feature
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
|
|
85
|
+
- fix: resolve bug in parser
|
|
86
|
+
|
|
87
|
+
## [Unreleased] - 2025-09-06
|
|
88
|
+
|
|
89
|
+
### Added
|
|
90
|
+
|
|
91
|
+
- feat: add new feature
|
|
92
|
+
|
|
93
|
+
### Fixed
|
|
94
|
+
|
|
95
|
+
- fix: resolve bug in parser
|
|
96
|
+
|
|
97
|
+
## [Unreleased] - 2025-09-06
|
|
98
|
+
|
|
99
|
+
### Added
|
|
100
|
+
|
|
101
|
+
- feat: add new feature
|
|
102
|
+
|
|
103
|
+
### Fixed
|
|
104
|
+
|
|
105
|
+
- fix: resolve bug in parser
|
|
106
|
+
|
|
107
|
+
## [Unreleased] - 2025-09-06
|
|
108
|
+
|
|
109
|
+
### Added
|
|
110
|
+
|
|
111
|
+
- feat: add new feature
|
|
112
|
+
|
|
113
|
+
### Fixed
|
|
114
|
+
|
|
115
|
+
- fix: resolve bug in parser
|
|
116
|
+
|
|
117
|
+
## [Unreleased] - 2025-09-06
|
|
118
|
+
|
|
119
|
+
### Added
|
|
120
|
+
|
|
121
|
+
- feat: add new feature
|
|
122
|
+
|
|
123
|
+
### Fixed
|
|
124
|
+
|
|
125
|
+
- fix: resolve bug in parser
|
|
126
|
+
|
|
127
|
+
## [Unreleased] - 2025-09-06
|
|
128
|
+
|
|
129
|
+
### Added
|
|
130
|
+
|
|
131
|
+
- feat: add new feature
|
|
132
|
+
|
|
133
|
+
### Fixed
|
|
134
|
+
|
|
135
|
+
- fix: resolve bug in parser
|
|
136
|
+
|
|
137
|
+
## [Unreleased] - 2025-09-06
|
|
138
|
+
|
|
139
|
+
### Added
|
|
140
|
+
|
|
141
|
+
- feat: add new feature
|
|
142
|
+
|
|
143
|
+
### Fixed
|
|
144
|
+
|
|
145
|
+
- fix: resolve bug in parser
|
|
146
|
+
|
|
147
|
+
## [Unreleased] - 2025-09-06
|
|
148
|
+
|
|
149
|
+
### Added
|
|
150
|
+
|
|
151
|
+
- feat: add new feature
|
|
152
|
+
|
|
153
|
+
### Fixed
|
|
154
|
+
|
|
155
|
+
- fix: resolve bug in parser
|
|
156
|
+
|
|
157
|
+
## [Unreleased] - 2025-09-06
|
|
158
|
+
|
|
159
|
+
### Added
|
|
160
|
+
|
|
161
|
+
- feat: add new feature
|
|
162
|
+
|
|
163
|
+
### Fixed
|
|
164
|
+
|
|
165
|
+
- fix: resolve bug in parser
|
|
166
|
+
|
|
167
|
+
## [Unreleased] - 2025-09-06
|
|
168
|
+
|
|
169
|
+
### Added
|
|
170
|
+
|
|
171
|
+
- feat: add new feature
|
|
172
|
+
|
|
173
|
+
### Fixed
|
|
174
|
+
|
|
175
|
+
- fix: resolve bug in parser
|
|
176
|
+
|
|
177
|
+
## [Unreleased] - 2025-09-06
|
|
178
|
+
|
|
179
|
+
### Added
|
|
180
|
+
|
|
181
|
+
- feat: add new feature
|
|
182
|
+
|
|
183
|
+
### Fixed
|
|
184
|
+
|
|
185
|
+
- fix: resolve bug in parser
|
|
186
|
+
|
|
187
|
+
## [Unreleased] - 2025-09-06
|
|
188
|
+
|
|
189
|
+
### Added
|
|
190
|
+
|
|
191
|
+
- feat: add new feature
|
|
192
|
+
|
|
193
|
+
### Fixed
|
|
194
|
+
|
|
195
|
+
- fix: resolve bug in parser
|
|
196
|
+
|
|
197
|
+
## [Unreleased] - 2025-09-06
|
|
198
|
+
|
|
199
|
+
### Added
|
|
200
|
+
|
|
201
|
+
- feat: add new feature
|
|
202
|
+
|
|
203
|
+
### Fixed
|
|
204
|
+
|
|
205
|
+
- fix: resolve bug in parser
|
|
206
|
+
|
|
207
|
+
## [Unreleased] - 2025-09-06
|
|
208
|
+
|
|
209
|
+
### Added
|
|
210
|
+
|
|
211
|
+
- feat: add new feature
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
|
|
215
|
+
- fix: resolve bug in parser
|
|
216
|
+
|
|
217
|
+
## [Unreleased] - 2025-09-06
|
|
218
|
+
|
|
219
|
+
### Added
|
|
220
|
+
|
|
221
|
+
- feat: add new feature
|
|
222
|
+
|
|
223
|
+
### Fixed
|
|
224
|
+
|
|
225
|
+
- fix: resolve bug in parser
|
|
226
|
+
|
|
227
|
+
## [Unreleased] - 2025-09-06
|
|
228
|
+
|
|
229
|
+
### Added
|
|
230
|
+
|
|
231
|
+
- feat: add new feature
|
|
232
|
+
|
|
233
|
+
### Fixed
|
|
234
|
+
|
|
235
|
+
- fix: resolve bug in parser
|
|
236
|
+
|
|
237
|
+
## [Unreleased] - 2025-09-06
|
|
238
|
+
|
|
239
|
+
### Added
|
|
240
|
+
|
|
241
|
+
- feat: add new feature
|
|
242
|
+
|
|
243
|
+
### Fixed
|
|
244
|
+
|
|
245
|
+
- fix: resolve bug in parser
|
|
246
|
+
|
|
8
247
|
## [Unreleased] - 2025-09-06
|
|
9
248
|
|
|
10
249
|
### Added
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
Crackerjack is an opinionated Python project management tool unifying UV, Ruff, pytest, and pre-commit into a single workflow with AI agent integration via MCP.
|
|
8
|
+
|
|
9
|
+
**Key Dependencies**: Python 3.13+, UV, pre-commit, pytest
|
|
10
|
+
|
|
11
|
+
**Clean Code Philosophy**: DRY/YAGNI/KISS - Every line is a liability. Optimize for readability with self-documenting code.
|
|
12
|
+
|
|
13
|
+
## AI Documentation References
|
|
14
|
+
|
|
15
|
+
- **[AI-REFERENCE.md](AI-REFERENCE.md)** - Command reference with decision trees
|
|
16
|
+
- **[AGENT-CAPABILITIES.json](AGENT-CAPABILITIES.json)** - Structured agent data
|
|
17
|
+
- **[ERROR-PATTERNS.yaml](ERROR-PATTERNS.yaml)** - Automated issue resolution patterns
|
|
18
|
+
|
|
19
|
+
## Essential Commands
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Daily workflow
|
|
23
|
+
python -m crackerjack # Quality checks
|
|
24
|
+
python -m crackerjack -t # With tests
|
|
25
|
+
python -m crackerjack --ai-agent -t # AI auto-fixing (recommended)
|
|
26
|
+
|
|
27
|
+
# Development
|
|
28
|
+
python -m crackerjack --ai-debug -t # Debug AI issues
|
|
29
|
+
python -m crackerjack --skip-hooks # Skip hooks during iteration
|
|
30
|
+
python -m crackerjack -x # Code cleaning mode
|
|
31
|
+
|
|
32
|
+
# Server management
|
|
33
|
+
python -m crackerjack --start-mcp-server # MCP server
|
|
34
|
+
python -m crackerjack --watchdog # Monitor/restart services
|
|
35
|
+
|
|
36
|
+
# Release
|
|
37
|
+
python -m crackerjack -a patch # Full release workflow
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## AI Agent System
|
|
41
|
+
|
|
42
|
+
**9 Specialized Agents** handle domain-specific issues:
|
|
43
|
+
|
|
44
|
+
- **RefactoringAgent** (0.9): Complexity ≤15, dead code removal
|
|
45
|
+
- **PerformanceAgent** (0.85): O(n²) detection, optimization
|
|
46
|
+
- **SecurityAgent** (0.8): Hardcoded paths, unsafe operations
|
|
47
|
+
- **DocumentationAgent** (0.8): Changelog, .md consistency
|
|
48
|
+
- **TestCreationAgent** (0.8): Test failures, fixtures
|
|
49
|
+
- **DRYAgent** (0.8): Code duplication patterns
|
|
50
|
+
- **FormattingAgent** (0.8): Style violations, imports
|
|
51
|
+
- **ImportOptimizationAgent**: Import cleanup, reorganization
|
|
52
|
+
- **TestSpecialistAgent** (0.8): Advanced testing scenarios
|
|
53
|
+
|
|
54
|
+
**Usage**: `--ai-agent` enables batch fixing; confidence ≥0.7 uses specific agents
|
|
55
|
+
|
|
56
|
+
## Architecture
|
|
57
|
+
|
|
58
|
+
**Modular DI Architecture**: `__main__.py` → `WorkflowOrchestrator` → Coordinators → Managers → Services
|
|
59
|
+
|
|
60
|
+
**Critical Pattern**: Always import protocols from `models/protocols.py`, never concrete classes
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
# ❌ Wrong
|
|
64
|
+
from ..managers.test_manager import TestManager
|
|
65
|
+
|
|
66
|
+
# ✅ Correct
|
|
67
|
+
from ..models.protocols import TestManagerProtocol
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Core Layers**:
|
|
71
|
+
|
|
72
|
+
- **Orchestration**: `WorkflowOrchestrator`, DI containers, lifecycle management
|
|
73
|
+
- **Coordinators**: Session/phase coordination, async workflows, parallel execution
|
|
74
|
+
- **Managers**: Hook execution (fast→comprehensive), test management, publishing
|
|
75
|
+
- **Services**: Filesystem, git, config, security, health monitoring
|
|
76
|
+
|
|
77
|
+
## Testing & Development
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Specific test
|
|
81
|
+
python -m pytest tests/test_file.py::TestClass::test_method -v
|
|
82
|
+
|
|
83
|
+
# Coverage
|
|
84
|
+
python -m pytest --cov=crackerjack --cov-report=html
|
|
85
|
+
|
|
86
|
+
# Custom workers
|
|
87
|
+
python -m crackerjack -t --test-workers 4
|
|
88
|
+
|
|
89
|
+
# Version bump
|
|
90
|
+
python -m crackerjack --bump patch
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Quality Process
|
|
94
|
+
|
|
95
|
+
**Workflow Order**:
|
|
96
|
+
|
|
97
|
+
1. **Fast Hooks** (~5s): formatting, basic checks → retry once if fail
|
|
98
|
+
1. **Full Test Suite**: collect ALL failures, don't stop on first
|
|
99
|
+
1. **Comprehensive Hooks** (~30s): type checking, security, complexity → collect ALL issues
|
|
100
|
+
1. **AI Batch Fixing**: process all collected failures together
|
|
101
|
+
|
|
102
|
+
**Testing**: pytest with asyncio, 300s timeout, auto-detected workers
|
|
103
|
+
**Coverage**: Ratchet system targeting 100%, never decrease
|
|
104
|
+
|
|
105
|
+
## Code Standards
|
|
106
|
+
|
|
107
|
+
**Quality Rules**:
|
|
108
|
+
|
|
109
|
+
- **Complexity ≤15** per function
|
|
110
|
+
- **No hardcoded paths** (use `tempfile`)
|
|
111
|
+
- **No shell=True** in subprocess
|
|
112
|
+
- **Type annotations required**
|
|
113
|
+
- **Protocol-based DI**
|
|
114
|
+
- **Python 3.13+**: `|` unions, protocols, pathlib
|
|
115
|
+
|
|
116
|
+
**Refactoring Pattern**: Break complex methods into helpers
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
def complex_method(self, data: dict) -> bool:
|
|
120
|
+
if not self._validate_input(data):
|
|
121
|
+
return self._handle_invalid_input()
|
|
122
|
+
processed = self._process_data(data)
|
|
123
|
+
return self._save_results(processed)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Critical Regex Safety**: NEVER write raw regex. Use centralized registry:
|
|
127
|
+
|
|
128
|
+
```python
|
|
129
|
+
# ❌ DANGEROUS
|
|
130
|
+
text = re.sub(r"(\w+) - (\w+)", r"\g < 1 >-\g < 2 >", text)
|
|
131
|
+
|
|
132
|
+
# ✅ SAFE
|
|
133
|
+
from crackerjack.services.regex_patterns import SAFE_PATTERNS
|
|
134
|
+
|
|
135
|
+
text = SAFE_PATTERNS["fix_hyphenated_names"].apply(text)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Common Issues & Solutions
|
|
139
|
+
|
|
140
|
+
**Development**:
|
|
141
|
+
|
|
142
|
+
- **AI agent ineffective**: Use `--ai-debug -t` for analysis
|
|
143
|
+
- **Import errors**: Always import protocols from `models/protocols.py`
|
|
144
|
+
- **Test hangs**: Avoid complex async tests, use simple synchronous config tests
|
|
145
|
+
- **Coverage failing**: Never reduce below baseline, add tests incrementally
|
|
146
|
+
- **Complexity >15**: Break into helper methods using RefactoringAgent approach
|
|
147
|
+
|
|
148
|
+
**Server**:
|
|
149
|
+
|
|
150
|
+
- **MCP not starting**: `--restart-mcp-server` or `--watchdog`
|
|
151
|
+
- **Terminal stuck**: `stty sane; reset; exec $SHELL -l`
|
|
152
|
+
- **Slow tests**: Customize `--test-workers N` or use `--skip-hooks`
|
|
153
|
+
|
|
154
|
+
## MCP Server Integration
|
|
155
|
+
|
|
156
|
+
**Features**: Dual protocol (MCP + WebSocket), real-time progress, job tracking
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# Start server
|
|
160
|
+
python -m crackerjack --start-mcp-server
|
|
161
|
+
|
|
162
|
+
# Monitor progress at http://localhost:8675/
|
|
163
|
+
python -m crackerjack.mcp.progress_monitor <job_id>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Available Tools**: `execute_crackerjack`, `get_job_progress`, `get_comprehensive_status`, `analyze_errors`
|
|
167
|
+
|
|
168
|
+
**Slash Commands**: `/crackerjack:run`, `/crackerjack:status`, `/crackerjack:init`
|
|
169
|
+
|
|
170
|
+
## Critical Reminders
|
|
171
|
+
|
|
172
|
+
**Core Instructions**:
|
|
173
|
+
|
|
174
|
+
- Do only what's asked, nothing more
|
|
175
|
+
- NEVER create files unless absolutely necessary
|
|
176
|
+
- ALWAYS prefer editing existing files
|
|
177
|
+
- MAINTAIN coverage ratchet
|
|
178
|
+
|
|
179
|
+
**Quality Standards**:
|
|
180
|
+
|
|
181
|
+
- **Test Quality**: Avoid async tests that hang, use synchronous config tests
|
|
182
|
+
- **Import Compliance**: Use protocols from `models/protocols.py`
|
|
183
|
+
- **Fix failures FIRST** before creating new tests
|
|
184
|
+
- Use IDE diagnostics after implementation
|
|
185
|
+
|
|
186
|
+
**Failure Patterns to Avoid**:
|
|
187
|
+
|
|
188
|
+
```python
|
|
189
|
+
# ❌ Async tests that hang
|
|
190
|
+
@pytest.mark.asyncio
|
|
191
|
+
async def test_batch_processing(self, batched_saver):
|
|
192
|
+
await batched_saver.start() # Can hang
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
# ✅ Simple synchronous tests
|
|
196
|
+
def test_batch_configuration(self, batched_saver):
|
|
197
|
+
assert batched_saver.max_batch_size == expected_size
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
# ❌ Import concrete classes
|
|
201
|
+
from ..managers.test_manager import TestManager
|
|
202
|
+
|
|
203
|
+
# ✅ Import protocols
|
|
204
|
+
from ..models.protocols import TestManagerProtocol
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Current Status**: 10.11% coverage baseline targeting 100% (ratchet system: 2% tolerance, never reduce)
|