From 401ee80cd53482084e22a07f10a9905c1f80d782 Mon Sep 17 00:00:00 2001 From: Matt Toohey Date: Thu, 7 May 2026 09:38:21 +1000 Subject: [PATCH 1/3] fix: remove diff sidebar reference section Signed-off-by: Matt Toohey --- .../src/lib/features/diff/DiffModal.svelte | 22 +- .../features/diff/DiffReferenceSection.svelte | 224 ------------------ 2 files changed, 3 insertions(+), 243 deletions(-) delete mode 100644 apps/staged/src/lib/features/diff/DiffReferenceSection.svelte diff --git a/apps/staged/src/lib/features/diff/DiffModal.svelte b/apps/staged/src/lib/features/diff/DiffModal.svelte index 1a26833f..4a761d59 100644 --- a/apps/staged/src/lib/features/diff/DiffModal.svelte +++ b/apps/staged/src/lib/features/diff/DiffModal.svelte @@ -3,13 +3,13 @@ Opened from a branch card or timeline item. Contains: - DiffViewer (renders the selected file's diff) - - File sidebar on the right with tree view, review status, reference files, comments + - File sidebar on the right with tree view, review status, comments Props: branchId, commitSha (optional), scope, onClose. State management: - diffViewerState: file list + on-demand diff cache - - reviewState: lazy review creation, comments, reviewed paths, reference files + - reviewState: lazy review creation, comments, reviewed paths --> - -
-
-
- REFERENCE - {#if referenceFiles.length > 0} - {referenceFiles.length} - {/if} -
-
-
- -{#if referenceFiles.length > 0} - -{/if} - - From 1e6bbcb8990b39549ec17f01a7ff1b593a7f0969 Mon Sep 17 00:00:00 2001 From: Matt Toohey Date: Mon, 11 May 2026 16:53:04 +1000 Subject: [PATCH 2/3] fix: remove unused addReferenceFile and removeReferenceFile exports These functions in commands.ts had no remaining callers after the reference section UI was removed in the prior commit. Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Matt Toohey --- apps/staged/src/lib/commands.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/apps/staged/src/lib/commands.ts b/apps/staged/src/lib/commands.ts index 5e57b990..113a3158 100644 --- a/apps/staged/src/lib/commands.ts +++ b/apps/staged/src/lib/commands.ts @@ -802,16 +802,6 @@ export function getDeletedComments(reviewId: string): Promise { return invoke('get_deleted_comments', { reviewId }); } -/** Add a reference file to a review. */ -export function addReferenceFile(reviewId: string, path: string): Promise { - return invoke('add_reference_file', { reviewId, path }); -} - -/** Remove a reference file from a review. */ -export function removeReferenceFile(reviewId: string, path: string): Promise { - return invoke('remove_reference_file', { reviewId, path }); -} - // ============================================================================= // Auto review // ============================================================================= From bdaea5e9bf372b4b4eb23dfe280543718f73d67a Mon Sep 17 00:00:00 2001 From: Matt Toohey Date: Mon, 11 May 2026 17:05:20 +1000 Subject: [PATCH 3/3] fix: remove reference file types and logic from diff-viewer package Co-Authored-By: Claude Opus 4.6 (1M context) --- .../lib/features/diff/reviewState.svelte.ts | 2 +- packages/diff-viewer/src/lib/state/index.ts | 2 +- .../src/lib/state/reviewState.svelte.ts | 79 +------------------ packages/diff-viewer/src/lib/types.ts | 2 - 4 files changed, 4 insertions(+), 81 deletions(-) diff --git a/apps/staged/src/lib/features/diff/reviewState.svelte.ts b/apps/staged/src/lib/features/diff/reviewState.svelte.ts index 5ebbf6f8..cfd1bd68 100644 --- a/apps/staged/src/lib/features/diff/reviewState.svelte.ts +++ b/apps/staged/src/lib/features/diff/reviewState.svelte.ts @@ -1,5 +1,5 @@ // Re-export types from shared package -export { type ReviewState, type ReferenceFile } from '@builderbot/diff-viewer/state'; +export { type ReviewState } from '@builderbot/diff-viewer/state'; // Re-export with Staged's Tauri commands pre-bound import * as commands from '../../api/commands'; diff --git a/packages/diff-viewer/src/lib/state/index.ts b/packages/diff-viewer/src/lib/state/index.ts index 97b40c36..41ec37ae 100644 --- a/packages/diff-viewer/src/lib/state/index.ts +++ b/packages/diff-viewer/src/lib/state/index.ts @@ -4,7 +4,7 @@ export { type DiffViewerState, } from './diffViewerState.svelte'; -export { createReviewState, type ReviewState, type ReferenceFile } from './reviewState.svelte'; +export { createReviewState, type ReviewState } from './reviewState.svelte'; export { createScrollController } from './scrollController.svelte'; diff --git a/packages/diff-viewer/src/lib/state/reviewState.svelte.ts b/packages/diff-viewer/src/lib/state/reviewState.svelte.ts index c7eda105..c3ec3b87 100644 --- a/packages/diff-viewer/src/lib/state/reviewState.svelte.ts +++ b/packages/diff-viewer/src/lib/state/reviewState.svelte.ts @@ -13,18 +13,12 @@ * This is a factory — each DiffModal creates its own instance. */ -import type { DiffCommands, ReviewCommands, Comment, Span, Review, FileContent } from '../types'; +import type { ReviewCommands, Comment, Span, Review } from '../types'; // ============================================================================= // Type // ============================================================================= -/** A reference file loaded into the sidebar. */ -export interface ReferenceFile { - path: string; - content: FileContent; -} - export interface ReviewState { /** The review record (null until first persistent action). */ review: Review | null; @@ -34,8 +28,6 @@ export interface ReviewState { deletedComments: Comment[]; /** Paths marked as reviewed. */ reviewedPaths: string[]; - /** Reference files pinned for viewing. */ - referenceFiles: ReferenceFile[]; /** Whether the review is being created/loaded. */ loading: boolean; } @@ -55,7 +47,7 @@ export interface ReviewState { * ID the lookup would return an arbitrary match. */ export function createReviewState( - commands: ReviewCommands & Pick, + commands: ReviewCommands, branchId: string, commitSha: string, scope: 'branch' | 'commit', @@ -66,7 +58,6 @@ export function createReviewState( comments: [], deletedComments: [], reviewedPaths: [], - referenceFiles: [], loading: false, }); @@ -88,11 +79,6 @@ export function createReviewState( state.comments = review.comments; state.reviewedPaths = review.reviewed; - // Load reference files in background - if (review.referenceFiles.length > 0) { - loadReferenceFilesFromPaths(review.referenceFiles); - } - // Load deleted comments in background loadDeletedComments(review.id); @@ -123,10 +109,6 @@ export function createReviewState( state.comments = review.comments; state.reviewedPaths = review.reviewed; - if (review.referenceFiles.length > 0) { - loadReferenceFilesFromPaths(review.referenceFiles); - } - // Load deleted comments in background loadDeletedComments(review.id); } @@ -266,24 +248,6 @@ export function createReviewState( } } - /** - * Load reference files from persisted paths (fire-and-forget). - */ - async function loadReferenceFilesFromPaths(paths: string[]): Promise { - const results = await Promise.allSettled( - paths.map(async (path) => { - const file = await commands.getFileAtRef(branchId, 'HEAD', path); - return { path: file.path, content: file.content } as ReferenceFile; - }) - ); - - const loaded: ReferenceFile[] = []; - for (const result of results) { - if (result.status === 'fulfilled') loaded.push(result.value); - } - state.referenceFiles = loaded; - } - /** * Toggle reviewed status of a file. */ @@ -302,43 +266,6 @@ export function createReviewState( return state.reviewedPaths.includes(path); } - // ========================================================================= - // Reference file actions - // ========================================================================= - - /** - * Add a reference file. Creates the review if it doesn't exist yet. - * Loads file content from the repo at HEAD. - */ - async function addReferenceFile(path: string): Promise { - // Don't add duplicates - if (state.referenceFiles.some((f) => f.path === path)) return; - - const reviewId = await ensureReviewExists(); - if (!reviewId) return; - - try { - const file = await commands.getFileAtRef(branchId, 'HEAD', path); - state.referenceFiles = [...state.referenceFiles, { path: file.path, content: file.content }]; - await commands.addReferenceFile(reviewId, path); - } catch (e) { - console.error('Failed to add reference file:', e); - } - } - - /** - * Remove a reference file (optimistic). - */ - async function removeReferenceFile(path: string): Promise { - state.referenceFiles = state.referenceFiles.filter((f) => f.path !== path); - - if (state.review) { - commands.removeReferenceFile(state.review.id, path).catch((e) => { - console.error('Failed to remove reference file from DB:', e); - }); - } - } - /** * Delete all comments (optimistic, single atomic backend call). */ @@ -368,7 +295,5 @@ export function createReviewState( unmarkReviewed, toggleReviewed, isReviewed, - addReferenceFile, - removeReferenceFile, }; } diff --git a/packages/diff-viewer/src/lib/types.ts b/packages/diff-viewer/src/lib/types.ts index 9932b575..a8132f27 100644 --- a/packages/diff-viewer/src/lib/types.ts +++ b/packages/diff-viewer/src/lib/types.ts @@ -194,6 +194,4 @@ export interface ReviewCommands { markReviewed(reviewId: string, path: string): Promise; unmarkReviewed(reviewId: string, path: string): Promise; - addReferenceFile(reviewId: string, path: string): Promise; - removeReferenceFile(reviewId: string, path: string): Promise; }