Skip to content

Accept Reborn live QA success wording variants - #5436

Merged
serrrfirat merged 1 commit into
mainfrom
codex/reborn-qa-flake-text-gates
Jun 30, 2026
Merged

serrrfirat merged 1 commit into
mainfrom
codex/reborn-qa-flake-text-gates

Conversation

@serrrfirat

Copy link
Copy Markdown
Collaborator

Summary

  • make brittle Reborn WebUI v2 live QA reply gates accept equivalent successful wording seen in the 2026-06-30 04:29 Istanbul canary
  • cover endpoint status, GitHub release routine creation, Gmail-to-Sheet live chat, and Hacker News search wording
  • add matcher regression cases based on the observed assistant replies

Notes

This intentionally does not mask QA 5D or QA 7A/7C. QA 5D did not observe a Slack marker. QA 7A hit a model/provider protocol error. QA 7C created then removed triggers, leaving no persisted routine. Those need product/model or trace-specific follow-up rather than text-gate widening.

Verification

  • python3 -m pytest scripts/reborn_webui_v2_live_qa/test_run_live_qa.py -q

@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-5436 June 30, 2026 07:14 Destroyed
@github-actions github-actions Bot added the size: S 10-49 changed lines label Jun 30, 2026
@coderabbitai

coderabbitai Bot commented Jun 30, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes
    • Improved validation for several live chat scenarios, making status, email-to-sheet, routine automation, and discussion-thread responses more specific and reliable.
    • Tightened matching for some assistant replies so the expected content is checked more accurately across different cases.
  • Tests
    • Updated automated checks to accept clearer alternative response formats.

Walkthrough

Four required_text patterns in Live QA cases are replaced with more specific multi-token alternatives covering endpoint status, Gmail-to-Sheet, GitHub release Slack routine, and Hacker News keyword. Unit tests are updated to expect and accept the new structured token lists.

Live QA required_text updates

Layer / File(s) Summary
required_text tightening
scripts/reborn_webui_v2_live_qa/run_live_qa.py
qa_3b_endpoint_status_live_chat, qa_6c_gmail_to_sheet_live_chat, qa_4d_github_release_slack_routine, and qa_8b_hn_keyword_live_chat each replace a generic token with a specific multi-alternative pattern.
Unit test alignment
scripts/reborn_webui_v2_live_qa/test_run_live_qa.py
test_required_text_accepts_explicit_alternatives, test_hn_live_chat_accepts_hacker_news_url_host, and test_live_google_side_effect_cases_install_required_extensions updated to expect the new token structures.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • nearai/ironclaw#5423: Introduced _required_text_matches and explicit |-separated wording alternatives for routine/trigger/automation/cron/schedule variants — the direct foundation this PR extends.

Poem

🔍 "status" was vague, now "HTTP 200" rings true,
"routine" bloomed to cron, schedule, trigger too.
The sheet now knows near.ai mail by name,
HN gets its id= in the matching game.
Assertions tightened, tests aligned with care —
evidence-first, no fuzzy tokens there. 🦀

🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description has a summary and verification, but it omits most required template sections such as change type, linked issue, impact, rollback, and review follow-through. Add the missing template sections, especially Change Type, Linked Issue, Security Impact, Blast Radius, Rollback Plan, and Review Follow-Through.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title is clearly related to the PR, though it does not use the preferred Conventional Commits style.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Jun 30, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates several QA test cases in run_live_qa.py to use more flexible matching criteria for required_text by providing alternative matching strings separated by pipe (|). It also updates the corresponding unit tests in test_run_live_qa.py to verify these new matching patterns. I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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 `@scripts/reborn_webui_v2_live_qa/run_live_qa.py`:
- Line 1188: The live QA gate in _required_text_matches is too loose because
required_text is a single pipe-delimited string, so any one token can satisfy
the check. Update the affected required_text entries in run_live_qa.py to use
separate list items for each required signal, and tighten the gate so it
requires all intended conditions rather than OR-ing unrelated tokens; verify the
same pattern in the other highlighted call sites as well.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: dd55f0d9-6a04-4e05-987b-48a9a577fc43

📥 Commits

Reviewing files that changed from the base of the PR and between efcacdc and 77083d7.

📒 Files selected for processing (2)
  • scripts/reborn_webui_v2_live_qa/run_live_qa.py
  • scripts/reborn_webui_v2_live_qa/test_run_live_qa.py

prompt=_qa_sheet_prompt("qa_3b_endpoint_status_live_chat"),
marker=None,
required_text=["status"],
required_text=["status|http|200|up|running|responded"],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

These gates became single-token OR matches.

_required_text_matches() ANDs list elements but ORs the | terms inside each element. With one pipe-delimited string here, the case passes on any one token: bare 200/up, bare created, or bare discussion/id=. That weakens the live QA gate enough to greenlight unrelated replies.

Suggested fix
-        required_text=["status|http|200|up|running|responded"],
+        required_text=["status|http|responded", "200", "up|running"],
...
-        required_text=["routine|trigger|automation|cron|schedule|created"],
+        required_text=["routine|trigger|automation|cron|schedule", "created"],
...
-        required_text=["news.ycombinator.com|hacker news|hn|discussion|id="],
+        required_text=["news.ycombinator.com|hacker news|hn", "discussion|item", "id="],

Also applies to: 2771-2771, 3314-3314

🤖 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 `@scripts/reborn_webui_v2_live_qa/run_live_qa.py` at line 1188, The live QA
gate in _required_text_matches is too loose because required_text is a single
pipe-delimited string, so any one token can satisfy the check. Update the
affected required_text entries in run_live_qa.py to use separate list items for
each required signal, and tighten the gate so it requires all intended
conditions rather than OR-ing unrelated tokens; verify the same pattern in the
other highlighted call sites as well.

@railway-app

railway-app Bot commented Jun 30, 2026

Copy link
Copy Markdown

🚅 Deployed to the ironclaw-pr-5436 environment in ironclaw-ci-preview

Service Status Web Updated (UTC)
ironclaw ✅ Success (View Logs) Web Jun 30, 2026 at 7:14 am

@serrrfirat
serrrfirat merged commit 25e2dfe into main Jun 30, 2026
32 checks passed
@serrrfirat
serrrfirat deleted the codex/reborn-qa-flake-text-gates branch June 30, 2026 07:58

This branch was successfully deployed

No deployments
ironclaw-ci-preview / ironclaw-pr-5436 — 77083d7a Deployed Jun 30, 2026 by railway-app[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: low Changes to docs, tests, or low-risk modules size: S 10-49 changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant