diff --git a/webui/src/web-components/sketch-diff-range-picker.ts b/webui/src/web-components/sketch-diff-range-picker.ts
index c62078c..02dafd9 100644
--- a/webui/src/web-components/sketch-diff-range-picker.ts
+++ b/webui/src/web-components/sketch-diff-range-picker.ts
@@ -128,8 +128,6 @@
       font-size: 14px;
     }
 
-
-
     @media (max-width: 768px) {
       .commit-selector {
         max-width: 100%;
@@ -190,19 +188,19 @@
         <button
           class="commits-toggle"
           @click="${this.toggleCommitsExpansion}"
-          title="${this.commitsExpanded ? 'Hide' : 'Show'} commit range selection"
+          title="${this.commitsExpanded
+            ? "Hide"
+            : "Show"} commit range selection"
         >
-          ${this.commitsExpanded ? '▼' : '▶'} Commits
+          ${this.commitsExpanded ? "▼" : "▶"} Commits
         </button>
       </div>
-      
+
       ${this.commitsExpanded
         ? html`
-            <div class="commit-selectors">
-              ${this.renderRangeSelectors()}
-            </div>
+            <div class="commit-selectors">${this.renderRangeSelectors()}</div>
           `
-        : ''}
+        : ""}
     `;
   }
 
@@ -252,8 +250,6 @@
     `;
   }
 
-
-
   /**
    * Format a commit for display in the dropdown
    */
@@ -344,8 +340,6 @@
     }
   }
 
-
-
   /**
    * Handle From commit change
    */
@@ -376,19 +370,17 @@
    */
   getCommitSummary(): string {
     if (!this.fromCommit && !this.toCommit) {
-      return 'No commits selected';
+      return "No commits selected";
     }
 
-    const fromShort = this.fromCommit ? this.fromCommit.substring(0, 7) : '';
-    const toShort = this.toCommit ? this.toCommit.substring(0, 7) : 'Uncommitted';
-    
+    const fromShort = this.fromCommit ? this.fromCommit.substring(0, 7) : "";
+    const toShort = this.toCommit
+      ? this.toCommit.substring(0, 7)
+      : "Uncommitted";
+
     return `${fromShort}..${toShort}`;
   }
 
-
-
-
-
   /**
    * Validate that a commit hash exists in the loaded commits
    */
@@ -403,7 +395,11 @@
    * Dispatch range change event and update URL parameters
    */
   dispatchRangeEvent() {
-    const range: DiffRange = { type: "range", from: this.fromCommit, to: this.toCommit };
+    const range: DiffRange = {
+      type: "range",
+      from: this.fromCommit,
+      to: this.toCommit,
+    };
 
     // Update URL parameters
     this.updateUrlParams(range);
diff --git a/webui/src/web-components/sketch-diff2-view.ts b/webui/src/web-components/sketch-diff2-view.ts
index f20dd57..f23472d 100644
--- a/webui/src/web-components/sketch-diff2-view.ts
+++ b/webui/src/web-components/sketch-diff2-view.ts
@@ -385,8 +385,6 @@
       overflow: visible; /* Ensure content is not clipped */
     }
 
-
-
     .loading,
     .empty-diff {
       display: flex;
@@ -578,7 +576,7 @@
 
   renderFileSelector() {
     const fileCount = this.files.length;
-    
+
     return html`
       <select
         class="file-selector"
@@ -990,10 +988,10 @@
   handleFileSelection(event: Event) {
     const selectElement = event.target as HTMLSelectElement;
     const selectedValue = selectElement.value;
-    
+
     this.selectedFile = selectedValue;
     this.viewMode = selectedValue ? "single" : "all";
-    
+
     // Force re-render
     this.requestUpdate();
   }
@@ -1011,7 +1009,9 @@
    * Render single file view with full-screen Monaco editor
    */
   renderSingleFileView() {
-    const selectedFileData = this.files.find(f => f.path === this.selectedFile);
+    const selectedFileData = this.files.find(
+      (f) => f.path === this.selectedFile,
+    );
     if (!selectedFileData) {
       return html`<div class="error">Selected file not found</div>`;
     }
@@ -1058,7 +1058,11 @@
 
     if (this.commit) {
       // Convert single commit to range (commit^ to commit)
-      this.currentRange = { type: "range", from: `${this.commit}^`, to: this.commit };
+      this.currentRange = {
+        type: "range",
+        from: `${this.commit}^`,
+        to: this.commit,
+      };
     }
 
     // Then reload diff data based on the current range
