revi-converse — run bilans
Newest first. Template: README.md.
2026-09-02 — GitHub review-thread + /revi <question> lanes, first live e2e (runs 01a063d4 / 01a063d5)
- Status: validated
- Versions: bot as of
d4611df0(PR #626) · iterion5c0a1ea2(v3.93.0, prod) - Method: real end-to-end on prod (
iterion.fabrique.social.gouv.fr) against a live repo — test PR SocialGouv/questions-ecrites#65 (deliberately flawed python helper), auto-reviewed by Revi (5 inline findings, every planted flaw caught), then the two conversational lanes exercised as a human (devthejo), never simulated. PR closed unmerged + branch deleted after. - Result — both lanes proved, first try:
- Reply-to-a-suggestion: human reply in an inline thread at 20:34:00 →
revi_converselaunched at 20:34:02 (2 s) → the bot's grounded answer posted IN the same thread by iterion-bot at 20:34:53. 53 s end-to-end. /revi <question>as a plain PR comment: routed by the generic command registry (when_args_present→ revi-converse), run launched in ~5 s, finished in 2 min — and the answer landed as a reply INSIDE the thread of the finding the question was about (the bot resolved which finding the question targeted by itself). Better anchoring than the flat PR comment we expected.
- Reply-to-a-suggestion: human reply in an inline thread at 20:34:00 →
- Value: the GitLab conversation parity is now real on GitHub, and answer quality was strong — the bot honestly deflated a severity when challenged (env-only
EXPORT_DIR⇒ injection not user-reachable) while keeping its defence-in-depth reservations, instead of doubling down. - Findings / misses: none in the runs themselves. The rollout mechanics all behaved as designed: re-provision ×13 regenerated hook +
event_allowlist(3 events) from the converse bot's own manifest event, preservedreview_request_logins(the 🔁 carry), and migrated the historical{rate:1,burst:10}to{2,60}unpinned — zero manual PATCH. - Engine hardening (the road to this run): the Revi loop on PR #626 itself took 5 rounds / 13 findings, all real, all fixed — among them a self-conversation loop on PAT connections opened by the round-3 WhoAmI fix (caught by round 4), the
RateLimitPinnedcarry (a default bump must reach existing webhooks without erasing operator choices, pre-pin PATCHes adopted), and the review-comment firehose becoming its own opt-in manifest event so the ninepull_request_commentbots don't pay one delivery per inline comment against the un-raisable org monthly quota. - Frictions filed: zero-touch Billy died 3× on the repo's
.mcp.jsonsentry server (unbootable on runner pods,native:b2e46831) and once on the usage cap doing its job; the/revicommand lane still has no fork guard (forge.PullRefcarries no head repo —native:4363d723). - Lessons for next run: replying to a top-level review comment can never trigger the lane (thread-opening comments are structurally filtered) — reply INSIDE a thread the bot participates in. On PAT/OAuth connections the posting identity is the token's own; the PAT owner cannot converse with the bot (their replies are self-filtered by design).
