feat(harness): self-management flag + approved-task parser (PRD-141 U…#392
Conversation
…S-020)
First (safe) step of Phase 5. Adds HARNESS_SELF_MANAGEMENT_ENABLED to config
(default OFF — nothing in Phase 5 takes effect unless it is true) and a pure
_parse_harness_task() that reconstructs a prescription dict from an approved
[HARNESS] board task. No execution yet.
The parser is the exact inverse of the producer in _phase_apply(): it reads the
'[HARNESS] {change_type} for {target_name}' title and the markdown
'**Risk Score/Current/Proposed/Rationale/Expected Improvement:**' sections, and
resolves target_id from target_name via an injected agents map. Fail-safe
defaults: unparseable JSON -> {}, unknown risk -> 5 (max, never auto-applies),
unresolved target -> target_id None (consumers must skip, never guess).
4 tests in new tests/test_harness_self_management.py (valid, invalid,
unresolved-target, flag-defaults-false). python-reviewer: all checks PASS, no
CRITICAL/HIGH.
|
Warning Review limit reached
More reviews will be available in 32 minutes and 59 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…S-020)
First (safe) step of Phase 5. Adds HARNESS_SELF_MANAGEMENT_ENABLED to config (default OFF — nothing in Phase 5 takes effect unless it is true) and a pure _parse_harness_task() that reconstructs a prescription dict from an approved [HARNESS] board task. No execution yet.
The parser is the exact inverse of the producer in _phase_apply(): it reads the '[HARNESS] {change_type} for {target_name}' title and the markdown 'Risk Score/Current/Proposed/Rationale/Expected Improvement:' sections, and resolves target_id from target_name via an injected agents map. Fail-safe defaults: unparseable JSON -> {}, unknown risk -> 5 (max, never auto-applies), unresolved target -> target_id None (consumers must skip, never guess).
4 tests in new tests/test_harness_self_management.py (valid, invalid, unresolved-target, flag-defaults-false). python-reviewer: all checks PASS, no CRITICAL/HIGH.