[codex] Split app playtest failure buckets - #496
Conversation
|
Warning Review limit reached
More reviews will be available in 9 minutes and 47 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: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR implements structured failure bucketing for the built-app playtest harness ( ChangesBuilt-app Playtest Failure Bucketing
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
qa/release_readiness.py (1)
340-341: 💤 Low valueConsider extracting the release verdict gate name to a constant.
The string
"full_five_persona_rri"is hardcoded here and appears as a key inGATE_SPLIT_CONTRACT(line 50). To reduce duplication and prevent typos, consider extracting it to a module-level constant.♻️ Proposed refactor
REQUIRED_RELEASE_PERSONAS = ["newbie", "veteran", "adversarial", "narrative", "optimizer"] +RELEASE_VERDICT_GATE = "full_five_persona_rri" GATE_SPLIT_CONTRACT = { "deterministic_built_app_smoke": { "scope": "fast built-app wiring proof with deterministic provider", "release_verdict": False, }, "short_real_provider_playtest": { "scope": "short built-app proof with a real provider and provider trace evidence", "release_verdict": False, }, - "full_five_persona_rri": { + RELEASE_VERDICT_GATE: { "scope": "non-partial five-persona release readiness verdict", "release_verdict": True, }, }Then use it on line 340:
- "release_verdict_gate": "full_five_persona_rri", + "release_verdict_gate": RELEASE_VERDICT_GATE,🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@qa/release_readiness.py` around lines 340 - 341, Extract the hardcoded gate name "full_five_persona_rri" into a module-level constant (e.g., RELEASE_VERDICT_GATE_NAME) and use that constant both where the dict sets "release_verdict_gate" and where the same key appears in GATE_SPLIT_CONTRACT; update references to the literal in release_verdict_gate assignment and the GATE_SPLIT_CONTRACT definition so both use the new constant to avoid duplication and typos.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@qa/test_ui_playtest_app_buckets.py`:
- Around line 13-20: The temp-file sourcing currently assumes
qa/ui_playtest_app.sh was truncated correctly by run_classifier; before the line
that does source "$funcs" add a fast-fail check that the generated "$funcs"
contains the expected sentinel patterns (the rewritten ROOT= line and the '#
DRIVE' marker) — if either pattern is missing, print an explicit error and exit
non‑zero. Refer to the variables/commands in this snippet (funcs, source
"$funcs", run_classifier, and the sentinel strings "ROOT=" and "# DRIVE") so the
test fails fast when the sentinels move or change instead of sourcing the wrong
content.
---
Nitpick comments:
In `@qa/release_readiness.py`:
- Around line 340-341: Extract the hardcoded gate name "full_five_persona_rri"
into a module-level constant (e.g., RELEASE_VERDICT_GATE_NAME) and use that
constant both where the dict sets "release_verdict_gate" and where the same key
appears in GATE_SPLIT_CONTRACT; update references to the literal in
release_verdict_gate assignment and the GATE_SPLIT_CONTRACT definition so both
use the new constant to avoid duplication and typos.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: d09f573c-d90d-4141-971a-3c20be56633a
📒 Files selected for processing (5)
qa/release_readiness.pyqa/test_macos_app_static.pyqa/test_release_readiness.pyqa/test_ui_playtest_app_buckets.pyqa/ui_playtest_app.sh
|
Fixed the CodeRabbit review pass in |
|
✅ Actions performedReview triggered.
|
Summary
main@1e148abwithout stale pre-squash history.failure_bucket,failure_detail, andoriginal_resultfields to built-app playtest evidence.score_failedclassification so Part B cannot reportpersona_loop=PASSwithscore_pass=falseand an empty bucket.Closes #483.
Progress for #486 and #480.
Evidence
1f8c366, then rebased ontomain@1e148abasd0f39f6.Tests
bash -n qa/ui_playtest_app.shpython3 -m pytest qa/test_macos_app_static.py qa/test_release_readiness.py qa/test_ui_playtest_app_buckets.py -q-> 22 passedSummary by CodeRabbit
Tests
Chores