Repository navigation
fix(triage): never lose Play review feedback to a missing label - #217
Open
louiscalata wants to merge 2 commits into
Open
louiscalata wants to merge 2 commits into
louiscalata wants to merge 2 commits into
Conversation
The triage workflow crashed on gh issue create --label user-feedback (the repo had no such label), dropping the actionable low-rated reviews found on 2026-10-13/15 (runs 38416717810, 38734963328). ensure_label() now creates the label best-effort and create_issue() falls back to an unlabeled issue, so label/permission problems can never drop feedback; genuine gh failures still fail the run red. Also includes a whole-file format normalization applied by the local write hook (semantically identical; py_compile, an 18/18 stubbed-gh scenario suite, and the ast-grep rules gate all pass on these bytes).
This branch has not been deployed
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
The scheduled Play Store Review Triage workflow has been crashing whenever it finds actionable (≤3★) reviews — the issue it creates (
gh issue create --label user-feedback) fails because this repo never had auser-feedbacklabel, so real user review feedback has been silently dropped (observed on 2026-10-13 and 2026-10-15; runs 38416717810 and 38734963328 both died at issue creation right after reportingActionable (≤3★): 1).Root cause
From the failed run logs:
The label was never created in this repo (
gh label listshows nouser-feedback).Fix
ensure_label()— best-effortgh label create user-feedback(treats "already exists" as success; any other failure prints a warning and continues).create_issue()— tries the labeled create; if the failure is about the label, retries once unlabeled, so a label/permission problem can never drop feedback again. A genuine gh failure (auth/network/validation — stderr not about the label) still raisesCalledProcessError, keeping the project convention that real failures turn the run red (issue chore(metrics): repair Play review triage and acquisition reporting #61 done-criteria).roadmap.md(canonical project roadmap) and a.agents/retro.mdentry recording the lesson.Note: the diff includes a whole-file format normalization applied by the edit toolchain — semantically identical, pure reflowing; every check below ran against these exact bytes.
Verification (already run)
python3 -m py_compile scripts/triage-reviews.py— clean.After merge — verify the live path
The daily 07:00 UTC schedule also picks the fix up automatically after merge. Merging any commit additionally resets GitHub's 60-day scheduled-workflow inactivity clock (the last push before this branch was 2026-08-18).
Related
Owner gates are tracked in
roadmap.md§P2: Play package-registration deadline (issue #162 — deadline passed 2026-09-30, needs a Play Console confirmation that both packages show Registered) and the staleSENTRY_ORGActions secret (AGE-497, needs secrets-write to update).