fix(#404): preserve non-English Monitor feedback in retry artifacts - #405
Merged
Conversation
`_filter_blocker_retry_feedback` used English-only keyword lists as a hard gate: any feedback whose lines matched no BLOCKER term was silently replaced by a generic placeholder, making non-English feedback (Russian, etc.) permanently inaccessible to the Actor retry. The fix makes the keyword filter a *ranking hint*, not a gate: - When BLOCKER keywords match: keep the highlighted lines at the top, then append a "Full Monitor feedback:" section with the complete original text, so nothing is ever dropped. - When no keywords match (non-English / non-standard phrasing): forward the full original text with a note that classification did not match, instead of replacing it with the placeholder. Tests updated to reflect the new contract: non-blocking lines now appear in the full-feedback section (previously dropped), and two new regression tests assert that Russian-language feedback survives into the retry artifact and is never replaced by the old English-only placeholder. Closes #404 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UnGW5EaWsfZ5rKNKmSiiDX
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughChangesMonitor retry feedback
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Monitor
participant _filter_blocker_retry_feedback
participant RetryArtifact
Monitor->>_filter_blocker_retry_feedback: Return Monitor feedback
_filter_blocker_retry_feedback->>RetryArtifact: Write prioritized blockers and full feedback
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #404 —
_filter_blocker_retry_feedbackused English-only keyword lists as a hard gate: any feedback whose lines matched no BLOCKER term was silently replaced by a generic placeholder, making non-English (e.g. Russian) Monitor feedback permanently invisible to the Actor retry.The root cause:
.map/scripts/map_orchestrator.pyBLOCKER_FEEDBACK_TERMS/NON_BLOCKING_FEEDBACK_TERMSare English-only literals, and_filter_blocker_retry_feedbackreturned a generic placeholder whenkept_lineswas empty — dropping the operator's original text entirely.Changes
src/mapify_cli/templates_src/map/scripts/map_orchestrator.py.jinja(source of truth) and its two rendered copies:_filter_blocker_retry_feedbacknow uses the keyword filter as a ranking hint, not a gate:"Full Monitor feedback:"section with the complete original text.tests/test_map_orchestrator.py:test_feedback_file_forwards_only_blocker_items→ renamed and updated: blocker lines are still highlighted, but non-blocking lines are now present in the full-feedback section (intentional behavior change).test_wave_feedback_forwards_only_blocker_items→ same update.test_feedback_file_non_english_feedback_preserved— new regression test: Russian-language feedback survives into the retry artifact unchanged.test_wave_feedback_non_english_preserved— same for the wave path.Test plan
uv run ruff check src/ tests/— 0 errorsuv run python -m pyright src/— 0 errors, 0 warningsuv run pytest tests/ -x -q— 4320 passed, 4 skippedmake check— exit 0make check-render— no diff (rendered copies match jinja source)Generated by Claude Code
Summary by CodeRabbit
Bug Fixes
Tests