Skip to content

perf(bundle): precompute cross-mode differentials index to slim the lazy chunk (#012) - #1287

Merged
BigSimmo merged 24 commits into
mainfrom
claude/site-audit-quick-wins-21v9gb
Jul 28, 2026
Merged

perf(bundle): precompute cross-mode differentials index to slim the lazy chunk (#012)#1287
BigSimmo merged 24 commits into
mainfrom
claude/site-audit-quick-wins-21v9gb

Conversation

@BigSimmo

@BigSimmoBigSimmo commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Realizes ledger item #12. The cross-mode "Also in your library" strip dynamically imports cross-mode-differentials.ts, which statically pulled the full ~1.2 MB differentials snapshot (via @/lib/differentials) just to build a tiny {slug,title,clinicalHinge} + presentations + aliases catalog. That dynamic import is the only path by which the snapshot reached the lazy cross-mode chunk (verified — neither cross-mode-links.tsx nor cross-mode-links.ts imports differentials statically).

Precompute the trimmed catalog at build time and import that instead:

  • scripts/build-cross-mode-differentials-index.mjs projects data/differentials-snapshot.jsonsrc/data/cross-mode-differentials-index.json (~53 KB vs ~1.2 MB, ~22× smaller), mirroring the existing build-therapies-index.mjs generator. --check fails when the committed index is stale, comparing parsed values so Prettier's formatting never trips the gate.
  • cross-mode-differentials.ts now returns the precomputed JSON and no longer imports @/lib/differentials, so the lazy chunk drops the snapshot.
  • check:cross-mode-index is wired into verify:cheap next to check:therapy-data-index.
  • tests/cross-mode-differentials-index.test.ts asserts the index equals the live projection over the full snapshot — guarding against both snapshot-content drift and any divergence in the projection / alias-filter logic.

No behaviour change:crossModeDifferentialCatalog() returns the same catalog, proven equal (deep-equal test) to the live projection.

RAG impact: no retrieval behaviour change — this is a client-bundle slim of a display-only cross-mode links catalog; no retrieval/ranking/selection/eval or answer-generation code is touched (cross-mode-differentials.ts is not a protected RAG surface).

Verification

  • npm run check:cross-mode-index — drift gate passes (still passes after Prettier reformat, confirming the parsed-value compare)
  • npm run testfull suite green: 3557 passed / 5 skipped / 0 failed, incl. the new drift test and the existing cross-mode-links.test.ts
  • npm run typecheck — clean
  • npm run lint — clean
  • npm run check:knip — clean (new script referenced via package.json, JSON imported by the lib, no unused/unresolved)
  • npm run docs:check-scripts + npm run docs:check-index — clean
  • Size + import-graph proof: data/differentials-snapshot.json is 1,195,263 B; the trimmed index is 53,104 B, and the snapshot is no longer statically reachable from the cross-mode dynamic import.
  • npm run build:analyze — not run in-session (heavy); the import-graph removal is deterministic and CI runs the production build.

Risk and rollout

  • Risk: Low. Pure build-time projection; runtime returns the same catalog (deep-equal to the live projection). If the snapshot ever changes without regenerating, check:cross-mode-index (in verify:cheap/CI) and the drift test both fail closed with a clear "re-run the generator" message.
  • Rollback: revert the single commit (restores the runtime projection over the full snapshot).
  • Provider or production effects: None.

Clinical Governance Preflight

N/A — no ingestion, answer generation, search/ranking, source rendering, document access, privacy, production env, or clinical output surface is touched. This is a client-bundle optimization of a cross-mode UI links catalog.

Notes


Generated by Claude Code

Summary by CodeRabbit

  • Performance

    • Improved cross-mode clinical matching by switching to a lightweight, precomputed index rather than loading the full dataset.
    • Reduced the cross-mode index footprint to ~53 KB.
  • Reliability

    • Added an automated “check” to detect stale or malformed cross-mode index data.
    • Expanded CI and added tests to confirm correct index content, alias filtering, and runtime loading behavior.
  • Documentation

    • Updated script listings and refreshed the review/issue ledger to reflect the new cross-mode index and resolution status.

…azy chunk (#12)
The cross-mode "Also in your library" strip dynamically imports
cross-mode-differentials.ts, which statically pulled the full ~1.2 MB
differentials snapshot (via @/lib/differentials) just to build a tiny
{slug,title,clinicalHinge} + presentations + aliases catalog. That path
is the only reason the snapshot landed in the lazy cross-mode chunk.
Precompute the trimmed catalog at build time and import that instead:
- scripts/build-cross-mode-differentials-index.mjs projects
data/differentials-snapshot.json into src/data/cross-mode-differentials-
index.json (~53 KB vs ~1.2 MB), mirroring the therapies-index generator.
`--check` fails when the committed index is stale (parsed-value compare,
so Prettier formatting never trips it).
- cross-mode-differentials.ts now returns the precomputed JSON and no
longer imports @/lib/differentials, so the lazy chunk drops the snapshot.
- check:cross-mode-index is wired into verify:cheap next to
check:therapy-data-index.
- tests/cross-mode-differentials-index.test.ts asserts the index equals
the live projection over the full snapshot, guarding against both
snapshot-content and projection/alias-filter drift.
No behaviour change: crossModeDifferentialCatalog() returns the same
catalog, proven equal to the live projection. Resolves ledger #12.
RAG impact: no retrieval behaviour change — this is a client bundle slim
of a display-only cross-mode links catalog; no retrieval/ranking/
selection/eval or answer-generation code is touched.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UbhUVWVJRwDibC2YtJ6aRX
@supabase

supabaseBot commented Jul 27, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai

coderabbitaiBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@cursor[bot], you've reached your PR review limit, so we couldn't start this review.

Next review available in:18 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 21e32c02-dad1-434c-bedf-a62873407e1f

📥 Commits

Reviewing files that changed from the base of the PR and between d9284bd and 78897c1.

📒 Files selected for processing (4)
  • docs/branch-review-ledger.md
  • docs/outstanding-issues.md
  • tests/cross-mode-differentials-index.test.ts
  • tests/ui-smoke.spec.ts
📝 Walkthrough

Walkthrough

The PR adds a generated cross-mode differentials index, switches runtime loading to that artifact, adds drift and content validation, wires the check into CI, and updates related documentation and issue ledgers.

Changes

Cross-mode index

Layer / File(s)Summary
Index generation and data artifact
scripts/build-cross-mode-differentials-index.mjs, src/data/cross-mode-differentials-index.json
Generates a trimmed catalog of diagnoses, presentations, and filtered aliases, with --check validation against the source snapshot.
Runtime catalog integration
src/lib/cross-mode-differentials.ts, src/components/clinical-dashboard/cross-mode-links.tsx, tests/cross-mode-differentials-index.test.ts, tests/client-performance-boundaries.test.ts
Loads the precomputed index at runtime and verifies parity, import boundaries, populated data, alias filtering, and dynamic loading.
Verification and project records
package.json, .github/workflows/ci.yml, docs/scripts-index.md, docs/outstanding-issues.md, docs/branch-review-ledger.md
Adds the npm and CI drift checks, documents the build script, and records the resolved issue and review status.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
participant Snapshot as differentials-snapshot
participant Builder as build-cross-mode-differentials-index.mjs
participant Index as cross-mode-differentials-index.json
participant Dashboard as cross-mode-links.tsx
participant Catalog as cross-mode-differentials.ts
Snapshot->>Builder: provide source differential data
Builder->>Index: generate trimmed catalog
Dashboard->>Catalog: dynamically import catalog
Catalog->>Index: load precomputed index
Index-->>Dashboard: return cross-mode data
Loading

Possibly related PRs

Suggested reviewers:cursoragent

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly summarizes the main change: precomputing the cross-mode index to reduce lazy-chunk bundle size.
Description check✅ PassedThe description matches the template well, with Summary, Verification, Risk and rollout, Clinical Governance Preflight, and Notes all present.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/site-audit-quick-wins-21v9gb

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

The gate-manifest guard requires every verify:cheap gate to also run
explicitly in CI. Add the "Cross-mode differentials index drift" step
next to the therapy-data-index one so check:cross-mode-index is enforced
on PRs, matching the verify:cheap wiring.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UbhUVWVJRwDibC2YtJ6aRX
@BigSimmo
BigSimmo marked this pull request as ready for review July 27, 2026 22:26
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@BigSimmo
BigSimmo enabled auto-merge (squash) July 27, 2026 22:26
@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

@cursoragent run bugbot on this please

@cursor

cursorBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Bugbot on PR #1287 (97ab067b): no P0/P1 defects. Catalog projection, --check drift gate, and CI wiring look sound.

Findings

SevLocationFindingDisposition
P2src/lib/cross-mode-differentials.tsRe-importing @/lib/differentials would put the ~1.2 MB snapshot back in the lazy chunk while check:cross-mode-index and the equivalence test stay green.Left open — add an import-graph lock if you want this guarded
P3cross-mode-links.tsx commentStill says the dynamic import keeps the “1.2 MB snapshot” out; it now loads the ~53 KB index.Left open
P3docs/scripts-index.mdNew generator not listed next to build-therapies-index.mjs.Left open

Cleared

  • Precomputed index deep-equals the live projection (201 diagnoses / 31 presentations / 20 alias keys)
  • --check compares parsed values (Prettier-safe); stale/invalid JSON fails closed
  • Gate is in verify:cheap / static-pr; no skip path

No hosted cursor[bot] Bugbot threads were on the PR, so this was a repo pr-bugbot pass. Ledger row appended and pushed (70d140ed). Say if you want the P2 import-graph guard implemented.

Open in WebOpen in Cursor

@BigSimmo
BigSimmo disabled auto-merge July 27, 2026 22:27
cursoragentand others added 2 commits July 27, 2026 22:30
Append-only review record for the cross-mode differentials index
perf PR at 97ab067 — no P0/P1; residual P2 is missing import-graph lock.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
…ugbot #1287)
Address the three non-blocking Bugbot findings on #1287:
- P2: add an import-graph guard so a future re-add of a static
`import … from "@/lib/differentials"` (or the raw snapshot) to
cross-mode-differentials.ts fails the test — the value-equality check
alone stays green regardless of how the catalog is produced, so it
could not catch the ~1.2 MB snapshot silently returning to the lazy
chunk.
- P3: update the stale cross-mode-links.tsx comment (it now loads the
~53 KB precomputed index, not the full snapshot).
- P3: list build-cross-mode-differentials-index.mjs in docs/scripts-index.md
next to build-therapies-index.mjs.
Test-only + docs/comment; no runtime behaviour change.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UbhUVWVJRwDibC2YtJ6aRX

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/branch-review-ledger.md`:
- Line 1148: Update the ledger entry for PR `#1287` to reflect the final stack:
remove or mark as historical the “no import-graph lock” residual, stale
cross-mode-links.tsx comment, and missing scripts-index entry, and record the
corresponding completed safeguards and final verification results using the
existing check names.
In `@tests/cross-mode-differentials-index.test.ts`:
- Around line 37-50: Update the test “does not statically import the heavy
differentials module” to inspect the resolved module graph or build output
rather than only regexing cross-mode-differentials.ts. Recursively follow
resolved imports, including non-from forms and transitive helpers, and assert
that the lazy cross-mode graph contains cross-mode-differentials-index.json but
neither `@/lib/differentials` nor differentials-snapshot.
🪄 Autofix (Beta)

❌ Autofix failed (check again to retry)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 06c1e2bb-428d-418d-b230-6425bb76a4c6

📥 Commits

Reviewing files that changed from the base of the PR and between 7740535 and 18fcfae.

📒 Files selected for processing (10)
  • .github/workflows/ci.yml
  • docs/branch-review-ledger.md
  • docs/outstanding-issues.md
  • docs/scripts-index.md
  • package.json
  • scripts/build-cross-mode-differentials-index.mjs
  • src/components/clinical-dashboard/cross-mode-links.tsx
  • src/data/cross-mode-differentials-index.json
  • src/lib/cross-mode-differentials.ts
  • tests/cross-mode-differentials-index.test.ts

Comment threaddocs/branch-review-ledger.md
Comment threadtests/cross-mode-differentials-index.test.ts Outdated
…Rabbit #1287)
Address CodeRabbit's two Minor findings on the follow-up head:
- Import-graph guard was a shallow regex on one file's `from` imports; a
transitive helper import or a dynamic import()/require form could
reintroduce @/lib/differentials while staying green. Replace it with an
allowlist: cross-mode-differentials.ts may import ONLY the precomputed
index + the (type-only) catalog type — every collected specifier
(from / import() / require / side-effect) must be in the allowlist, so
any reintroduction surfaces as a disallowed specifier. (Comment mentions
aren't specifiers, so the explanatory "@/lib/differentials" reference is
correctly ignored.)
- The branch-review-ledger is append-only, so instead of editing the
Bugbot row, append a superseding record noting the three residuals
(import-graph lock, stale comment, scripts-index entry) are addressed,
with the final verification.
Test-only + append-only ledger record; no runtime change.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UbhUVWVJRwDibC2YtJ6aRX
@github-actions

Copy link
Copy Markdown
Contributor

CI triage

CI failed on this PR. Automated classification of the 2 failed job(s):

  • Production UIneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.
  • PR requiredneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.

Compared with main CI run #5981 (success).

Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger.

cursoragentand others added 4 commits July 27, 2026 22:57
Prevent a silent bundle regression: re-importing @/lib/differentials into
the lazy cross-mode catalog would restore the ~1.2 MB snapshot while the
data-equality gates stay green. Assert the trimmed JSON index import and
the dynamic load site in cross-mode-links, and refresh the stale comment.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Append-only follow-up for the cross-mode differentials import-graph lock.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Remote landed an allowlist guard in the index test; keep local consumer
dynamic-import lock and reconcile the comment conflict.
# Conflicts:
#	src/components/clinical-dashboard/cross-mode-links.tsx
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/branch-review-ledger.md`:
- Line 1149: Correct the ledger entry’s test attribution: state that
tests/client-performance-boundaries.test.ts guards the dynamic import in
cross-mode-links.tsx, and identify tests/cross-mode-differentials-index.test.ts
as enforcing the cross-mode-differentials.ts allowlist. Preserve the remaining
test result and audit details.
🪄 Autofix (Beta)

❌ Autofix failed (check again to retry)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 07dbae48-adee-4bc5-917a-65ac063d096a

📥 Commits

Reviewing files that changed from the base of the PR and between 18fcfae and d9284bd.

📒 Files selected for processing (3)
  • docs/branch-review-ledger.md
  • tests/client-performance-boundaries.test.ts
  • tests/cross-mode-differentials-index.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • tests/cross-mode-differentials-index.test.ts

Comment threaddocs/branch-review-ledger.md
@coderabbitai

coderabbitaiBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

⚠️Branch updated during autofix.

The branch was updated while autofix was in progress. Please try again.

@coderabbitai

coderabbitaiBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

⚠️Branch updated during autofix.

The branch was updated while autofix was in progress. Please try again.

cursoragentand others added 2 commits July 27, 2026 23:11
Production UI failed on a hydration overlap: getByTestId('differentials-home')
resolved to two nodes after the mode=differentials redirect. Wait for a single
settled owner (same helper as the mode-home loop) so transient duplicates do
not trip Playwright strict mode while permanent doubles still fail.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

@cursoragent please review this and fix the merge conflicts and find out the cause and ensure no regression and fix any other open comments also and failing CI testing

@cursor

cursorBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

PR #1287 is mergeable again at 5704a9dd (GitHub was CONFLICTING from staleness, not a real content fight).

Merge conflict cause

Both tips only appended docs/branch-review-ledger.md (merge=union). git merge-tree was clean; GitHub still showed DIRTY because the branch was behind main’s #1284 ledger rows. Merged origin/main — auto-merged with no markers.

Open comments

CommentDisposition
Import-graph should walk resolved graphFixed — recursive runtime walk from cross-mode-differentials.ts (services/forms pattern) + entry allowlist
Ledger “no import-graph lock” residualSuperseded (append-only; closeout row)
Ledger test attributionCorrected in closeout row; threads replied + resolved

CI / regression

  • Prior head already had Production UI + PR required green (hydration settle fix).
  • Focused vitest after graph guard: 10/10; check:cross-mode-indexPASS.
  • New head CI is re-running (BLOCKED until checks settle — expected).
Open in WebOpen in Cursor

@coderabbitai

coderabbitaiBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Cannot run autofix: This PR has merge conflicts.

Please resolve the conflicts with the base branch and try again.

Alternatively, use @coderabbitai resolve merge conflict to automatically resolve the conflicts.

GitHub marked the PR CONFLICTING/DIRTY while merge-tree was clean:
both tips only appended docs/branch-review-ledger.md (union merge).
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@coderabbitai

coderabbitaiBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Cannot run autofix: This PR has merge conflicts.

Please resolve the conflicts with the base branch and try again.

Alternatively, use @coderabbitai resolve merge conflict to automatically resolve the conflicts.

cursoragentand others added 2 commits July 27, 2026 23:35
Strengthen the CodeRabbit follow-up: recursively resolve runtime imports
from cross-mode-differentials.ts so a helper (or value-import of an
allowlisted type module) cannot reintroduce @/lib/differentials or the
snapshot while a surface regex stays green. Keep the entry allowlist as
a fast fail.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Record main sync (ledger-only stale DIRTY), resolved-graph guard, and
correct attribution for the consumer vs catalog import locks.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

@cursoragent please review all the issues in this PR. Please resolve failing CI and any merge conflicts or also any comments outstanding or issues you see. Please fix this now.

@cursor

cursorBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Fixed and pushed (cec73fe4). The only live failure was Static PR Format check.

IssueStatus
CI — Format checkFixed — Prettier on tests/cross-mode-differentials-index.test.ts
Merge conflictsNone — mergeable; earlier DIRTY was ledger staleness vs main (already synced)
CodeRabbit commentsAll 3 already fixed/resolved (resolved-graph walk, ledger residuals, attribution)
Production UIAlready fixed earlier (hydration settle); will re-run on this tip

Required checks are re-running on the new head (BLOCKED until they settle).

Open in WebOpen in Cursor

cursoragentand others added 2 commits July 27, 2026 23:45
Static PR Format check failed solely on this file after the resolved-graph
guard landed; no logic change.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@cursor

cursorBot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Closeout status (cec73fe4)

Merge conflicts: none. GitHub earlier CONFLICTING/DIRTY was ledger-append staleness vs #1284; origin/main is merged, merge-tree CLEAN, 0 behind.

Failing CI (this tip):

  • Static PR checks / Format check — fixed. Prettier only on tests/cross-mode-differentials-index.test.ts after the resolved-graph guard (662a93f8).

Review comments: all three CodeRabbit threads dispositioned + resolved (resolved-graph walk; ledger residuals superseded append-only; test attribution corrected).

Earlier Production UI failure: already fixed via expectSingleSettledOwner on the differentials redirect smoke test; was green on prior head.

Fresh required checks will rerun on this tip.

@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

@cursoragent please resolve all CI failing tests after understanding the issue. Please also fix any comments and resolve them and also ensure that you fix with smallest required fix with best coding practice and u derstabding the fix rather than simple patch. Please fix any merge conflicts and ensure any issues are found. Please resolve any issues you find. Please also run bugbot. Please mark comments resolved also once you resolve them.

@cursor

cursorBot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

PR #1287 is mergeable again at 860dd809.

What was wrong

  • CI: Already green on the prior tip (format + Production UI fixed earlier).
  • Merge: Main had advanced ~17 commits; real conflict was only docs/outstanding-issues.md (not a fake DIRTY). Ledger/ui-smoke auto-merged.
  • Bugbot P2:#012 was Resolved, but still listed in the recommended queue — fixed per /issues done.

Fixes landed

  1. Merged origin/main; kept #012 in Resolved while keeping main’s newer open/archive rows.
  2. Queue closeout: order 20 → #013, #016; #017 no longer says Before #012.
  3. All 3 CodeRabbit threads confirmed resolved.
  4. Bugbot: no P0/P1 product defects.

Required checks are re-running on this tip (BLOCKED until they settle).

Open in WebOpen in Cursor

cursoragentand others added 4 commits July 28, 2026 01:39
Main advanced with RAG/search/mockup work. Real conflict was only in
docs/outstanding-issues.md: keep #12 in Resolved (this PR) while retaining
main's newer open/resolved rows (#24 open; #19/#29/#80/#84 archive).
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Append-only closeout for the outstanding-issues merge resolution and
re-verification after syncing current origin/main.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Per /issues done: remove #12 from the recommended execution queue
composite (#13/#16 remain) and drop the Before #12 sequencing hint
on #17. #12 stays in Resolved/archive with the shipped outcome.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@cursor

cursorBot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Status at 860dd809

CI: Prior tip was fully green (Static PR, Production UI, PR required). Fresh checks re-run after main sync.

Merge conflicts: Real conflict vs advanced main was only docs/outstanding-issues.md (ledger + ui-smoke auto-merged). Resolved by keeping #012 in Resolved/archive while retaining main’s newer open/archive rows, then finished /issues done queue closeout (order 20 → #013,#016; #017 no longer sequences Before #012). git merge-tree vs origin/main is CLEAN.

CodeRabbit threads: all three dispositioned and resolved (resolved-graph import walk; ledger residuals superseded; attribution corrected).

Bugbot (post-sync): no P0/P1 product defects. One P2 (stale #012 in recommended queue) fixed in 742b0d15. Residual risk: entry allowlist still permits a future value import of @/lib/cross-mode-links (type-only today).

@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

@cursoragent fix the merge conflicts and find the cause of them and resolve and also fix the failing CI

@cursor

cursorBot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Fixed and pushed (78897c17). PR is MERGEABLE again.

IssueCauseFix
Merge CONFLICTING/DIRTYStaleness — 1 commit behind main; merge-tree was clean (ledger union only)Merged origin/main
Static PR Format checkPrettier on docs/outstanding-issues.md after the #012 queue rewriteReformatted; no content change

Required checks are re-running on the new tip.

Open in WebOpen in Cursor

cursoragentand others added 3 commits July 28, 2026 01:51
GitHub CONFLICTING/DIRTY was staleness: merge-tree clean; only overlapping
path is append-only branch-review-ledger.md (union) plus main's RAG claim
support hardening.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Static PR Format check failed solely on docs/outstanding-issues.md after
the recommended-queue rewrite; no content change beyond formatting.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@cursor

cursorBot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Fixed at 78897c17

Merge conflicts (cause): GitHub CONFLICTING/DIRTY while git merge-tree was CLEAN. Branch was 1 commit behind main (11a4ed74 numeric claim-truncation). Overlap was append-only docs/branch-review-ledger.md (union) — staleness, not a content fight. Merged origin/main cleanly.

Failing CI (cause): Static PR Format check — Prettier on docs/outstanding-issues.md after the #012 recommended-queue rewrite. Reformatted (b90d659b); no semantic change. #012 remains Resolved and out of the queue.

PR is MERGEABLE again; required checks re-running on this tip.

@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

@cursoragent fix failing semgrep test

@cursor

cursorBot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Nothing to fix — Semgrep is already green, and #1287 is merged.

  • PR tip 78897c17: Semgrep + ingestion gate passed
  • Post-merge main (2381ad51): SAST run also passed both jobs

If the UI still shows a red Semgrep check, it’s a stale result from an older SHA.

Open in WebOpen in Cursor

@BigSimmo
BigSimmo merged commit 2381ad5 into mainJul 28, 2026
20 of 21 checks passed
@BigSimmo
BigSimmo deleted the claude/site-audit-quick-wins-21v9gb branch July 28, 2026 02:20
@cursor

cursorBot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Semgrep status

No failing Semgrep to fix on this PR.

If GitHub still shows an older red Semgrep check, it’s stale UI from a prior SHA; the merge commit and final tip are green.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@BigSimmo@claude@cursoragent