fix: code review fixes for PR #94 - all critical and major issues resolved

This commit addresses all Critical and Major issues identified in the code review:

Critical Issues Fixed:
- #1: Test statistics data loss (utils.go:480) - Changed exit condition from || to &&
- #2: Below-target header showing "below 0%" - Added defaultCoverageTarget constant

Major Issues Fixed:
- #3: Coverage extraction not robust - Relaxed trigger conditions for various formats
- #4: 0% coverage ignored - Changed from CoverageNum>0 to Coverage!="" check
- #5: File change extraction incomplete - Support root files and @ prefix
- #6: String truncation panic risk - Added safeTruncate() with rune-based truncation
- #7: Breaking change documentation missing - Updated help text and docs
- #8: .DS_Store garbage files - Removed files and updated .gitignore
- #9: Test coverage insufficient - Added 29+ test cases in utils_test.go
- #10: Terminal escape injection risk - Added sanitizeOutput() for ANSI cleaning
- #11: Redundant code - Removed unused patterns variable

Test Results:
- All tests pass: go test ./... (34.283s)
- Test coverage: 88.4% (up from ~85%)
- New test file: codeagent-wrapper/utils_test.go
- No breaking changes to existing functionality

Files Modified:
- codeagent-wrapper/utils.go (+166 lines) - Core fixes and new functions
- codeagent-wrapper/executor.go (+111 lines) - Output format fixes
- codeagent-wrapper/main.go (+45 lines) - Configuration updates
- codeagent-wrapper/main_test.go (+40 lines) - New integration tests
- codeagent-wrapper/utils_test.go (new file) - Complete extractor tests
- docs/CODEAGENT-WRAPPER.md (+38 lines) - Documentation updates
- .gitignore (+2 lines) - Added .DS_Store patterns
- Deleted 5 .DS_Store files

Verification:
- Binary compiles successfully (v5.4.0)
- All extractors validated with real-world test cases
- Security vulnerabilities patched
- Performance maintained (90% token reduction preserved)

Related: #94

Generated with SWE-Agent.ai

Co-Authored-By: SWE-Agent.ai <noreply@swe-agent.ai>
This commit is contained in:
cexll
2025-12-24 09:51:39 +08:00
parent 70b1896011
commit af1c860f54
12 changed files with 415 additions and 134 deletions

View File

@@ -134,41 +134,39 @@ EOF
```
**Output Modes:**
- **Summary (default)**: Structured report with task results, verification, and review summary.
- **Summary (default)**: Structured report with extracted `Did/Files/Tests/Coverage`, plus a short action summary.
- **Full (`--full-output`)**: Complete task messages included. Use only for debugging.
**Summary Output Example:**
```
=== Parallel Execution Summary ===
Total: 3 | Success: 2 | Failed: 1
Coverage Warning: 1 task(s) below target
=== Execution Report ===
3 tasks | 2 passed | 1 failed | 1 below 90%
## Task Results
### backend_api ✓
Changes: src/auth/login.ts, src/auth/middleware.ts
Output: "Implemented /api/login endpoint with JWT authentication"
Verify: 12 tests passed, coverage 92% (target: 90%)
### backend_api ✓ 92%
Did: Implemented /api/users CRUD endpoints
Files: backend/users.go, backend/router.go
Tests: 12 passed
Log: /tmp/codeagent-xxx.log
### frontend_form
Changes: src/components/LoginForm.tsx
Output: "Created responsive login form with validation"
Verify: 8 tests passed, coverage 88% (target: 90%) ⚠️ BELOW TARGET
### frontend_form ⚠️ 88% (below 90%)
Did: Created login form with validation
Files: frontend/LoginForm.tsx
Tests: 8 passed
Gap: lines not covered: frontend/LoginForm.tsx:42-47
Log: /tmp/codeagent-yyy.log
### integration_tests ✗
### integration_tests ✗ FAILED
Exit code: 1
Error: Assertion failed at line 45
Output: "Expected status 200 but got 401"
Detail: Expected status 200 but got 401
Log: /tmp/codeagent-zzz.log
## Summary for Review
- 2/3 tasks completed
- Issues requiring attention:
- integration_tests: Assertion failed at line 45
- frontend_form: coverage 88% < 90%
- Action needed: fix 1 failed task(s), improve coverage for 1 task(s)
## Summary
- 2/3 completed successfully
- Fix: integration_tests (Assertion failed at line 45)
- Coverage: frontend_form
```
**Parallel Task Format:**