From b5e080aa8f654d359ab6692deb6f072f0b753793 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 25 Jul 2026 17:54:22 +0000 Subject: [PATCH] docs: record #1217 prlanded merge and the confirmed #082 mitigation PR #1217 squash-merged to main as 20300bb9 with PR required green and post-merge push CI green. Content verified on main: canRestoreFocusTo at both restore call sites, bounded reclaims, the event-driven settle window and no setInterval. #082 previously recorded racing the sync bot as the only workaround. Applying skip-branch-sync first stops the re-sync loop outright, which is what let #1217 hold a green head long enough to merge. --- docs/branch-review-ledger.md | 1 + docs/outstanding-issues.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/branch-review-ledger.md b/docs/branch-review-ledger.md index b8951711..e4ef92f2 100644 --- a/docs/branch-review-ledger.md +++ b/docs/branch-review-ledger.md @@ -987,3 +987,4 @@ This file is append-only. Never rewrite or delete an existing review record; app | 2026-07-25 | cursor/alias-slot-disjointness-guard-6273 (PR #1215) | `406cf21eb730809fb06df00b1a9299e3462c728a` | prlanded — generalized #030 contracts + ledger #081 | LANDED. Squash `b2d794c532ea8b7e259751005165f69906fcd784`. Adds two table-independent guards to `tests/eval-document-matching.test.ts`: pairwise alias disjointness across every multi-slot eval case, and the structural rule that one document can never satisfy every slot of a multi-slot case. Also opened ledger item #081 for the then-open PR #1196 alias conflict. Content verified by tree comparison against the squash commit (identical); remote branch deleted at merge, local pruned. | `npm run verify:cheap` green; hosted `PR required` green; tree-identity check `git diff b2d794c5 406cf21e` empty. No provider-backed checks. | | 2026-07-25 | cursor/ledger-081-closeout-6273 (PR #1220) | `84e91194ecca7f74c0d70b9e30e1dbd05ab7853f` | prlanded — archive outstanding item #081 | LANDED. Squash `e7e60c6d02a37c1f5958cb97936bd3533c7a2f46`. #081 moved from Open items to Resolved/archive after PR #1196 was closed 2026-07-25 as superseded by #913 / current main; successor #1198 does not touch `src/lib/eval-document-matching.ts`, and the #1215 contracts fail closed on any re-added dual-listed alias. Merge friction worth recording: a `github-actions[bot]` branch-sync merge landed every 10-20 minutes and every bot-authored head produced `action_required` workflow runs, so the three required checks never reported and both normal and `--admin` merges were refused; runs on agent-pushed heads execute normally, so the resolution was to push an own-authored head and merge on green. Content verified by tree comparison against the squash commit (identical); remote branch deleted at merge, local pruned. | `npm run verify:cheap` on merged main: 387 files / 3431 tests pass; hosted CI, SAST, Secret Scan and PR Policy green on `84e91194`; `npm run docs:check-links` pass. No provider-backed checks. | | 2026-07-26 | cursor/global-header-scroll-hide-4fd7 (PR #1222) | `af235c399d8298fcbb28c6e7a990fafdf27d3531` / squash `0b82a826dd7953a14c56491ae9e52f3fae77ee5b` | prlanded after squash merge | MERGED. Cross-breakpoint header hide/reveal; two-dot content diff vs `origin/main` empty; remote branch deleted by `delete_branch_on_merge`. Required contexts (Gitleaks, PR required, PR policy) SUCCESS on the merged head, along with Build, Unit coverage, Static PR checks, Production UI and Advisory UI. `skip-branch-sync` was applied first because repeated pr-branch-sync bot merges left every new head `action_required` (same pattern as #1214). | `gh pr view` MERGED by BigSimmo; `git diff origin/main af235c39` empty; post-merge main is green except `worker-image`, which failed in Set up Docker Buildx on `registry-1.docker.io` context deadline exceeded - a Docker Hub flake unrelated to this UI-only diff, and not a required context. No provider-backed checks. | +| 2026-07-25 | PR #1217 / `cursor/sheet-focus-hardening-c6d3` | head `65f7580ce4f4821f8d1ad55aa2c84b7e11ca62fe` / squash `20300bb9f60dee09632fdce27d1191dde19e92b5` | prlanded after squash merge | LANDED. Two-dot content diff of `src`/`tests` vs `origin/main` empty; `sheet-focus.ts` on main carries `canRestoreFocusTo`, `MAX_CONSECUTIVE_RECLAIMS`, the 10s event-driven settle window and no `setInterval`; `sheet.tsx` restores through `canRestoreFocusTo` at both call sites. Hosted PR required SUCCESS (Static/Safety/Unit/Build/Production UI/Advisory UI); post-merge push CI on `20300bb9` SUCCESS (CI, Docker image build, SAST, Secret Scan). Remote feature branch deleted by merge. The one red rollup entry was a `pull_request_target` PR Policy run cancelled by its own successor, which reported SUCCESS. | `gh pr view` state=MERGED mergedBy=BigSimmo; `git diff origin/main HEAD -- src tests` empty; `git show origin/main:...` symbol checks; `gh run list --branch main` on the squash commit. No provider-backed checks. | diff --git a/docs/outstanding-issues.md b/docs/outstanding-issues.md index 0e00bc7b..6e480397 100644 --- a/docs/outstanding-issues.md +++ b/docs/outstanding-issues.md @@ -130,7 +130,7 @@ removed after current-main verification; it is not missing recommended work. | #040 | P3 | rec | Add targeted visual-regression baselines | Keep a small approved baseline set for high-value desktop/mobile surfaces and accessibility modes instead of screenshotting every route. Start with account/settings, document viewer, mode homes and bottom-composer interactions; define an intentional-update workflow before enabling blocking comparisons. | design audit reconciliation; session 2026-07-22 | 2026-07-22 | | #079 | P3 | task | Disposition retained worktrees in bounded cleanup batches | **Outcome:** the retained reconciliation tail is gradually classified without another disruptive all-worktree sweep. **Next:** process no more than ten worktrees per explicitly scheduled pass using current owner/process metadata, open-PR state, exact review-ledger coverage, ancestry, and cherry-pick-aware content proof. **Success:** remove only clean, inactive, bundled worktrees whose content is merged or explicitly rejected; record every disposition and retain recovery evidence. **Stop:** preserve dirty, active, secret-bearing, post-freeze, paused, or ambiguous work and never use reset, force deletion, broad clean, or process killing. | final reconciliation inventory retained 104 independent worktrees; session 2026-07-24 | 2026-07-24 | | #080 | P3 | rec | Re-test the removed admission-to-discharge alias widening | **Outcome:** decide with measured evidence whether the user-approved 2026-07-21 widening (NMHS admission-to-discharge titles satisfying the admission expectation) belongs back on the wide-tier `AdmissionCommunityPts` list. #030 removed it so one document could not fill both comparison slots, but coverage now enforces distinct document identities by maximum matching, so the widening is no longer a false-pass route and its removal may instead cost legitimate admission credit. **Next:** with approval, run an eval-canary baseline/post pair over the admission-discharge comparison cases with and without those two titles. **Success:** restore only on measured non-regression (recall pinned 1.0, zero per-case reciprocal-rank regressions); otherwise record keep-removed and close. **Stop:** never restore on offline reasoning alone. | `src/lib/eval-document-matching.ts`; #030 archive row; session 2026-07-25 | 2026-07-25 | -| #082 | P2 | issue | Bot branch-sync heads leave required checks unapproved | **Outcome:** an open PR stops stalling when the `github-actions[bot]` sync merge updates its branch. Every bot-authored head produces `action_required` runs for CI, SAST and Secret Scan, so the three required checks never report: PR #1220 was blocked through five successive syncs, and both a normal and an `--admin` merge were refused. Heads pushed by an agent or human still run normally, so the only workaround is pushing an own-authored head and merging before the next sync. **Next:** pick one fix — allow the sync bot in the repository Actions approval setting, push the sync with a token whose runs auto-execute, or drop auto-sync. **Success:** a bot-synced PR reaches green required checks with no manual push. **Stop:** never widen approval settings for fork/untrusted actors or clear the block by bypassing required checks. | PR #1220 run history 2026-07-25 (heads e927cc3c, e74ce083, 84a224ba, 54bea70b, 0ab9e331); session 2026-07-25 | 2026-07-25 | +| #082 | P2 | issue | Bot branch-sync heads leave required checks unapproved | **Outcome:** an open PR stops stalling when the `github-actions[bot]` sync merge updates its branch. Every bot-authored head produces `action_required` runs for CI, SAST and Secret Scan, so the three required checks never report: PR #1220 was blocked through five successive syncs, and both a normal and an `--admin` merge were refused. Heads pushed by an agent or human still run normally, so the mitigation is the `skip-branch-sync` label plus an own-authored head (cleared PR #1217). **Next:** pick one fix — allow the sync bot in the repository Actions approval setting, push the sync with a token whose runs auto-execute, or drop auto-sync. **Success:** a bot-synced PR reaches green required checks with no manual push. **Stop:** never widen approval settings for fork/untrusted actors or clear the block by bypassing required checks. | PR #1220 run history 2026-07-25 (heads e927cc3c, e74ce083, 84a224ba, 54bea70b, 0ab9e331); session 2026-07-25 | 2026-07-25 | ## Resolved / archive