Commit graph

5 commits

Author SHA1 Message Date
frankbria
30cdf78331 fix(loop): replace non-existent --prompt-file with -p flag
The build_claude_command() function was incorrectly using --prompt-file
which doesn't exist in Claude Code CLI. This fix:

- Replaces --prompt-file with -p flag plus prompt content
- Reads prompt content via $(cat "$prompt_file") before execution
- Adds error handling for missing prompt files
- Maintains shell injection safety through array-based command building
- Updates comments to reflect the correct approach

Adds 6 TDD tests verifying the fix:
- Uses -p flag instead of --prompt-file
- Reads prompt file content correctly
- Handles missing prompt file
- Includes all modern CLI flags
- Handles multiline prompt content
- Prevents shell injection

Test count: 145 -> 151 (all passing)
2026-01-09 13:44:50 -07:00
frankbria
7407f0f45b test(cli): add --allowed-tools test and code review report
Address code review finding by adding dedicated test for
--allowed-tools flag validation.

Add code review report documenting:
- 0 critical issues
- 0 major issues
- 1 minor issue (addressed in this commit)
- 6 positive findings

Test count: 27 CLI parsing tests (105 total unit tests)

Refs #10
2026-01-08 22:42:50 -07:00
frankbria
fffcc26427 test(cli): add comprehensive CLI argument parsing tests
Add 26 new BATS tests validating all CLI flags in ralph_loop.sh:

- Help flag tests (2): --help, -h short flag
- Flag value tests (6): --calls, --prompt, --monitor, --verbose, --timeout
- Status flag tests (2): --status with/without status.json
- Circuit breaker tests (2): --reset-circuit, --circuit-status
- Invalid input tests (3): unknown flag, invalid timeout, invalid format
- Multiple flags tests (3): combinations, all flags, early exit
- Flag order tests (2): verify order independence
- Short flag tests (6): -c, -p, -s, -m, -v, -t equivalence

Test strategy uses --help as early-exit escape to validate parsing
without triggering main loop execution.

Closes #10
2026-01-08 22:38:23 -07:00
frankbria
da5640ef8e feat(cli): add modern CLI commands with JSON output support (Phase 1.1)
Implements Issue #28 - modernize CLI commands for better Claude integration.

Key changes:
- Add JSON output format support with --output-format flag (default: json)
- Add session continuity with --continue flag and .claude_session_id file
- Add tool permissions via --allowed-tools flag
- Add build_loop_context() for loop-aware context injection
- Add detect_output_format() and parse_json_response() for JSON parsing
- Maintain backward compatibility with text output fallback
- Add version checking with check_claude_version()

New CLI options:
- --output-format json|text: Control Claude output format
- --allowed-tools "Write,Read,Bash(git *)": Restrict tool permissions
- --no-continue: Disable session continuity

Test coverage:
- 20 new JSON parsing tests (test_json_parsing.bats)
- 23 new CLI modern tests (test_cli_modern.bats)
- All 98 tests passing (100% pass rate)
2026-01-08 20:39:18 -07:00
frankbria
8ad49e6f27 Add comprehensive test infrastructure and core unit tests
Implemented Phase 1 of the test implementation plan:

Test Infrastructure:
- BATS testing framework with helper utilities
- Mock system for external dependencies
- Fixture library for test data
- GitHub Actions CI/CD pipeline
- npm test scripts configured

Core Unit Tests (35 tests, 100% pass rate):
- Rate limiting tests (15 tests)
  * can_make_call() function - 7 tests
  * increment_call_counter() function - 6 tests
  * Edge cases - 2 tests

- Exit detection tests (20 tests)
  * Test saturation detection - 4 tests
  * Done signals detection - 4 tests
  * Completion indicators - 3 tests
  * @fix_plan.md validation - 5 tests
  * Error handling - 4 tests

Documentation:
- IMPLEMENTATION_PLAN.md - Complete 6-week roadmap
- TEST_IMPLEMENTATION_SUMMARY.md - Detailed achievement report
- STATUS.md - Quick status overview

Test Coverage:
- ~87% coverage of core ralph_loop.sh logic
- All tests passing with 100% success rate
- Average execution time: <1 second per test

Files Added:
- tests/unit/test_rate_limiting.bats
- tests/unit/test_exit_detection.bats
- tests/helpers/test_helper.bash
- tests/helpers/mocks.bash
- tests/helpers/fixtures.bash
- .github/workflows/test.yml
- package.json with test scripts

Next Steps: Continue with Weeks 2-6 per IMPLEMENTATION_PLAN.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 22:56:02 -07:00