You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(app-control): run map upkeep passes on the tree the upkeep PR ships #9947
The map-upkeep flow (/testing:refresh-feature-map on main, ported to /app-control:map refresh in #9934) runs its source wave and live pass on whatever branch is checked out. Only afterwards does it switch to the upkeep branch, which is created from the default branch, or merges the default branch into it. When the pass starts on a feature branch whose app code differs from the default branch, the corrections it derived describe handles or routes the upkeep PR's own app version does not have. Merging the default branch into an existing upkeep branch can likewise make the earlier evidence stale.
Fix
Either resolve and update the upkeep branch before the source wave and the live pass, or have the pass record blocked when HEAD's app tree differs from the default branch's.
Evidence: plugins/testing/skills/refresh-feature-map/SKILL.md:152-156; Codex review thread on #9934 (refresh.md:158). It exists on main, so it is deferred from that PR.
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Medium
Uncertainty: Knowable
Flags: intent
Blocked by: none
Understood: the map-upkeep flow runs its source wave and live pass on the checked-out branch, then switches to the upkeep branch. Its corrections can then describe an app tree the upkeep PR does not ship. The issue offers two fixes and picks neither, so one decision is needed.
Which fix should we take: (a) resolve and update the upkeep branch before the source wave and live pass, or (b) record blocked when HEAD's app tree differs from the default branch's? RECOMMENDED: (a). It fixes the cause, so the evidence matches the shipped tree. (b) only stops the run and leaves the feature-branch case unusable.
Possibly related (not duplicates): #9934 context, and the open map-upkeep issues on read-only enforcement and fork-PR branch adoption.
Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.
Intended outcome: Map upkeep resolves and updates the upkeep branch (create from default, or merge default into it) before the source pass and live pass, so corrections describe the tree the upkeep PR ships.
Dependencies
#9934 (the /app-control:map refresh port) must be merged before any refresh.md change; it is not in the checkout
Which fix: (a) resolve and update the upkeep branch before the source and live passes, or (b) record blocked when HEAD's app tree differs from the default branch's?
RECOMMENDED: (a) Switch to or create the upkeep branch, merge the default branch, then run Steps 4 and 5 there, so evidence matches the shipped tree. Basis: plugins/testing/skills/refresh-feature-map/SKILL.md:152-156 does the switch only after Steps 4-5; judgment
Under (a), the pass may find nothing to change (clean) and Step 2 skip logic then runs after a branch switch. Should a clean pass leave the upkeep branch merged and checked out, or return to the original branch?
RECOMMENDED: Return to the original branch after a clean pass and create or merge the upkeep branch only when a correction exists, which leaves (b)'s check as the guard for the pre-pass tree. Basis: SKILL.md:146-148 says a clean pass opens nothing; judgment
Under (a), the dirty-tree checks (untracked map, blocked on outside changes) at SKILL.md:156-165 must run before the passes, and the untracked-map case moves files with the switch. Should they move to before Step 4 unchanged?
RECOMMENDED: Yes, move them unchanged ahead of Step 4, and keep the blocked outcomes. Basis: plugins/testing/skills/refresh-feature-map/SKILL.md:156-165
Should the fix land in plugins/testing refresh-feature-map only, or also in the /app-control:map refresh port once #9934 is merged?
RECOMMENDED: Both, in separate changes. The testing skill now; the app-control refresh.md after #9934 merges (not in the checkout; no refresh.md found under plugins/app-control). Basis: issue body cites refresh.md:158 on #9934; Glob of plugins/app-control for refresh.md found none
Sources read
plugins/testing/skills/refresh-feature-map/SKILL.md:91-132: Steps 4 and 5 run the source wave and live pass on the current HEAD
plugins/testing/skills/refresh-feature-map/SKILL.md:149-170: the upkeep branch is switched to, or default merged into it, only after the passes, with dirty-tree checks and blocked outcomes
plugins/app-control: no refresh.md or upkeep text exists in the checkout
Automated refinement by the lanes App. Answer with a comment whose first line is **Decision recorded.**.
Activity
github-actions commentedon Oct 25, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Medium
Uncertainty: Knowable
Flags: intent
Blocked by: none
Understood: the map-upkeep flow runs its source wave and live pass on the checked-out branch, then switches to the upkeep branch. Its corrections can then describe an app tree the upkeep PR does not ship. The issue offers two fixes and picks neither, so one decision is needed.
blockedwhen HEAD's app tree differs from the default branch's? RECOMMENDED: (a). It fixes the cause, so the evidence matches the shipped tree. (b) only stops the run and leaves the feature-branch case unusable.Possibly related (not duplicates): #9934 context, and the open map-upkeep issues on read-only enforcement and fork-PR branch adoption.
Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Oct 25, 2026
The triage verdict left this issue at
status: needs-decision:melodic-automation-lanes commentedon Oct 25, 2026
Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.
Intended outcome: Map upkeep resolves and updates the upkeep branch (create from default, or merge default into it) before the source pass and live pass, so corrections describe the tree the upkeep PR ships.
Dependencies
Related work
Open questions
RECOMMENDED: (a) Switch to or create the upkeep branch, merge the default branch, then run Steps 4 and 5 there, so evidence matches the shipped tree. Basis: plugins/testing/skills/refresh-feature-map/SKILL.md:152-156 does the switch only after Steps 4-5; judgment
RECOMMENDED: Return to the original branch after a clean pass and create or merge the upkeep branch only when a correction exists, which leaves (b)'s check as the guard for the pre-pass tree. Basis: SKILL.md:146-148 says a clean pass opens nothing; judgment
RECOMMENDED: Yes, move them unchanged ahead of Step 4, and keep the blocked outcomes. Basis: plugins/testing/skills/refresh-feature-map/SKILL.md:156-165
RECOMMENDED: Both, in separate changes. The testing skill now; the app-control refresh.md after #9934 merges (not in the checkout; no refresh.md found under plugins/app-control). Basis: issue body cites refresh.md:158 on #9934; Glob of plugins/app-control for refresh.md found none
Sources read
Automated refinement by the lanes App. Answer with a comment whose first line is
**Decision recorded.**.