Skip to content

Undefiled 684 b#745

Open
Luke-Bilhorn wants to merge 57 commits intodevfrom
Undefiled-684-B
Open

Undefiled 684 b#745
Luke-Bilhorn wants to merge 57 commits intodevfrom
Undefiled-684-B

Conversation

@Luke-Bilhorn
Copy link
Copy Markdown
Contributor

@Luke-Bilhorn Luke-Bilhorn commented Mar 13, 2026

Hi Matt


Note

Medium Risk
Changes cross-webview navigation and multi-column opening behavior, which could introduce race conditions or incorrect scroll targets across panels. Also adds new message types and HTML injection via highlighted source rendering that must remain properly escaped.

Overview
Search navigation now syncs scrolling across open Codex editors: the webview sends searchNavigateToCell, the extension forwards scrollToCell to other panels, and cells briefly highlight after programmatic scroll.

Parallel Passages opening behavior is updated to open corresponding .source and .codex side-by-side (when present) and uses a shared getCellDisplayLabel utility to replace the old [NO LABEL: ...] fallback.

Parallel view search results gain optional highlighting for source/target text (with persisted highlightSearchResults), and types are extended to include the new searchNavigateToCell/scrollToCell messages.

Written by Cursor Bugbot for commit 07c4098. This will update automatically on new commits. Configure here.

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix prepared fixes for both issues found in the latest run.

  • ✅ Fixed: Unused import of getCellDisplayLabel in CommentsView
    • Removed the unused getCellDisplayLabel import from CommentsView.tsx.
  • ✅ Fixed: Jump-to-cell fires even when both file opens fail
    • openFileAtLocation now tracks whether a source or codex editor was actually opened and only updates cellToJumpTo when at least one open succeeds.

Create PR

Or push these changes by commenting:

@cursor push a00d338422
Preview (a00d338422)
diff --git a/src/providers/parallelPassagesWebview/customParallelPassagesWebviewProvider.ts b/src/providers/parallelPassagesWebview/customParallelPassagesWebviewProvider.ts
--- a/src/providers/parallelPassagesWebview/customParallelPassagesWebviewProvider.ts
+++ b/src/providers/parallelPassagesWebview/customParallelPassagesWebviewProvider.ts
@@ -158,6 +158,7 @@
                 const isSource = stringUri.includes(".source");
                 const sourceUri = isSource ? parsedUri : getCorrespondingSourceUri(parsedUri);
                 const codexUri = isSource ? getCorrespondingCodexUri(parsedUri) : parsedUri;
+                let didOpenEditor = false;
 
                 if (sourceUri) {
                     try {
@@ -166,6 +167,7 @@
                             "vscode.openWith", sourceUri, "codex.cellEditor",
                             { viewColumn: vscode.ViewColumn.One }
                         );
+                        didOpenEditor = true;
                     } catch { /* file doesn't exist */ }
                 }
 
@@ -176,9 +178,14 @@
                             "vscode.openWith", codexUri, "codex.cellEditor",
                             { viewColumn: vscode.ViewColumn.Two }
                         );
+                        didOpenEditor = true;
                     } catch { /* file doesn't exist */ }
                 }
 
+                if (!didOpenEditor) {
+                    throw new Error("No source or codex file could be opened for the requested location");
+                }
+
                 updateWorkspaceState(this._context, {
                     key: "cellToJumpTo",
                     value: cellId,

diff --git a/webviews/codex-webviews/src/CommentsView/CommentsView.tsx b/webviews/codex-webviews/src/CommentsView/CommentsView.tsx
--- a/webviews/codex-webviews/src/CommentsView/CommentsView.tsx
+++ b/webviews/codex-webviews/src/CommentsView/CommentsView.tsx
@@ -35,7 +35,6 @@
     DropdownMenuTrigger,
 } from "../components/ui/dropdown-menu";
 import bibleBooksData from "../assets/bible-books-lookup.json";
-import { getCellDisplayLabel } from "../utils/cellDisplayUtils";
 import { useVirtualizer } from "@tanstack/react-virtual";
 
 const vscode = acquireVsCodeApi();

This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.

…ing to occur when a different cell was clicked in the target column.
@cursor
Copy link
Copy Markdown

cursor bot commented Mar 14, 2026

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

…estone and for the file—before we had "X of Y of Z", which was pretty confusing.

The AI also made it so that we highlight each result we click to—if this is nice, we can keep it; if not, I'll take it out!
… moved here. Stray UI choices we want to give to the savvy user can go here. I've added a toggle for search highlighting in the search panel.
@cursor
Copy link
Copy Markdown

cursor bot commented Mar 14, 2026

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Fikitti and others added 14 commits March 14, 2026 18:10
Refactor mergeOriginalFilesHashes function and add comprehensive unit tests

- Changed the mergeOriginalFilesHashes function to be exported for external use.
- Introduced a new test suite for mergeOriginalFilesHashes, covering various scenarios including handling undefined inputs, merging entries with different hashes, and deduplicating referencedBy and originalNames.
- Ensured that version numbers are correctly managed and that fileNameToHash is built accurately from merged entries.
…-mergeoriginalfileshashes

Added a resolver test for merging Original file hashes
When a project has a pinnedExtension for codex-editor, updateExtensionVersions
now skips the codexEditor floor bump. This prevents the version gate from
blocking collaborators who are intentionally running a pinned (older) version
after the project was last opened on a newer build.

frontierAuthentication ratcheting is unaffected.
Tests were disabled in aabd942 during a MetadataManager refactor with no
specific failure documented. All existing tests pass cleanly in the current
VS Code test environment.

Adds three new cases to cover the pin-aware ratchet behaviour introduced
in the previous commit: no-pin (ratchet works normally), codex-editor pin
active (codexEditor bump suppressed), and frontier pin irrelevance
(frontierAuthentication still ratchets when codex-editor is pinned).
Both codexEditor and frontierAuthentication ratchet checks now read from
meta.pinnedExtensions (keyed by extension id) instead of the old singular
meta.pinnedExtension object. Updates test fixtures to match.
On Windows, fs.writeFile can resolve before the written bytes are
visible to a subsequent read, causing readFile to return empty content
from a file that stat reports as non-empty. The function already
retried on transient EntryNotFound errors; extend the same 25 ms retry
loop to cover this empty-content case so callers are not spuriously
blocked from saving.
One test in the search/replace suite was using a bare JSON.parse on a
direct readFile call instead of the existing readJsonFromDiskWithRetry
helper, making it susceptible to the same Windows filesystem flush
timing flakiness that the helper was introduced to guard against.
Update ratchet suppression to use publisher.name format
(e.g. 'project-accelerate.codex-editor-extension') instead of
short names. Aligns with conductor's metadata.json key format.
…ength > 0 gate.

  - This restores results when a file is unchecked (possibly yielding zero results) and then checked again.
…earchTab.tsx.

- UI height consistency for the ParallelView (eliminates scrollbar).
@cursor
Copy link
Copy Markdown

cursor bot commented Mar 26, 2026

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@cursor
Copy link
Copy Markdown

cursor bot commented Mar 26, 2026

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@cursor
Copy link
Copy Markdown

cursor bot commented Mar 26, 2026

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@LeviXIII LeviXIII changed the base branch from main to dev March 26, 2026 15:36
@BenjaminScholtens BenjaminScholtens changed the base branch from dev-old to dev March 27, 2026 16:34
@Luke-Bilhorn Luke-Bilhorn linked an issue Mar 31, 2026 that may be closed by this pull request
Luke-Bilhorn and others added 3 commits March 30, 2026 20:25
- Remove stale node_modules/@types/better-sqlite3 (not in package.json, caused ENOTDIR on npm i)
- Replace undeclared `combinedResults` with `results` in search.ts (merge conflict residue)
- Remove duplicate `export const CURRENT_SCHEMA_VERSION = 16` from sqliteIndex.ts, which conflicted with the new import from schema.ts
@LeviXIII LeviXIII self-requested a review March 31, 2026 15:13
LeviXIII
LeviXIII previously approved these changes Mar 31, 2026
Sign up for free to 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.

Search and Replace V2 - Fixes and improvements

7 participants