From c14eb4829251be411a522fb6f43e5db9bcb6628b Mon Sep 17 00:00:00 2001 From: JSONbored <49853598+JSONbored@users.noreply.github.com> Date: Mon, 27 Jul 2026 13:31:33 -0700 Subject: [PATCH] hotfix(manifest): restore the loopover-ui path rename and bundled-fallback sync lost in #9455's squash-merge #9455 (screenshot-table gate re-enable) had two commits locally -- the initial add, and a follow-up fixup correcting the whenPaths prefix from the pre-rename apps/gittensory-ui to apps/loopover-ui, plus syncing src/config/loopover-repo-focus-manifest.ts (the bundled fallback) to match. The merged commit on main contains only the first: `.loopover.yml` still names apps/gittensory-ui (renamed away on 2026-07-14, so the gate has been enabled but silently INERT on every real PR -- the exact #9433 failure mode), and the bundled fallback has no screenshotTableGate block at all, which fails `npm run manifest:drift-check` -- a required, blocking step in test:ci -- for every PR against this repo until fixed. Restores both: corrects the path prefix, and re-adds the matching bundled-fallback block. Re-verified against the engine's own matchesAny matcher and a clean manifest-drift-check run. --- .loopover.yml | 10 +++++----- src/config/loopover-repo-focus-manifest.ts | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.loopover.yml b/.loopover.yml index 631a1be3fe..6a84b2fef0 100644 --- a/.loopover.yml +++ b/.loopover.yml @@ -113,20 +113,20 @@ settings: draftPrClosePolicy: close # Before/after screenshot-table gate (#2006), re-enabled after the 2026-07-26 false-close incident -- # config-as-code this time so the scoping survives DB moves and is reviewable in git history. The incident: - # the gate was enabled with over-broad path scoping that swept in apps/gittensory-ui/public/**, and + # the gate was enabled with over-broad path scoping that swept in apps/loopover-ui/public/**, and # public/openapi.json is a GENERATED artifact this repo's own contribution rules require regenerating on # every API change (`npm run ui:openapi`) -- so perfectly good non-visual API PRs were auto-closed for # missing screenshots (5 PRs recovered by hand). whenPaths below therefore names only paths whose changes - # are genuinely visual, and deliberately EXCLUDES apps/gittensory-ui/public/** (generated + static assets) + # are genuinely visual, and deliberately EXCLUDES apps/loopover-ui/public/** (generated + static assets) # and src/routeTree.gen.ts (generated, sits outside routes/). A PR touching only excluded paths is simply # out of scope -- the gate never evaluates it. screenshotTableGate: enabled: true action: close whenPaths: - - "apps/gittensory-ui/src/components/**" - - "apps/gittensory-ui/src/routes/**" - - "apps/gittensory-ui/src/styles.css" + - "apps/loopover-ui/src/components/**" + - "apps/loopover-ui/src/routes/**" + - "apps/loopover-ui/src/styles.css" # Agent-layer autonomy dial (#773): without this block every action class defaults to "observe" # (deny-by-default) -- loopover had NO repository_settings DB row at all, so merge/close/approve # actions were silently never taken regardless of review verdict (#6401, #6402 sat fully reviewed, diff --git a/src/config/loopover-repo-focus-manifest.ts b/src/config/loopover-repo-focus-manifest.ts index b027c8a8ff..076094ef82 100644 --- a/src/config/loopover-repo-focus-manifest.ts +++ b/src/config/loopover-repo-focus-manifest.ts @@ -115,6 +115,22 @@ settings: trustMaintainerAuthoredIssueForReward: true reviewEvasionProtection: close draftPrClosePolicy: close + # Before/after screenshot-table gate (#2006), re-enabled after the 2026-07-26 false-close incident -- + # config-as-code this time so the scoping survives DB moves and is reviewable in git history. The incident: + # the gate was enabled with over-broad path scoping that swept in apps/loopover-ui/public/**, and + # public/openapi.json is a GENERATED artifact this repo's own contribution rules require regenerating on + # every API change (\`npm run ui:openapi\`) -- so perfectly good non-visual API PRs were auto-closed for + # missing screenshots (5 PRs recovered by hand). whenPaths below therefore names only paths whose changes + # are genuinely visual, and deliberately EXCLUDES apps/loopover-ui/public/** (generated + static assets) + # and src/routeTree.gen.ts (generated, sits outside routes/). A PR touching only excluded paths is simply + # out of scope -- the gate never evaluates it. + screenshotTableGate: + enabled: true + action: close + whenPaths: + - "apps/loopover-ui/src/components/**" + - "apps/loopover-ui/src/routes/**" + - "apps/loopover-ui/src/styles.css" # Agent-layer autonomy dial (#773): without this block every action class defaults to "observe" # (deny-by-default) -- loopover had NO repository_settings DB row at all, so merge/close/approve # actions were silently never taken regardless of review verdict (#6401, #6402 sat fully reviewed,