diff --git a/dockerimg/dockerimg_test.go b/dockerimg/dockerimg_test.go
index c0dab1d..be5344a 100644
--- a/dockerimg/dockerimg_test.go
+++ b/dockerimg/dockerimg_test.go
@@ -336,7 +336,7 @@
 
 	for _, file := range testFiles {
 		path := filepath.Join(tmpDir, file)
-		if err := os.WriteFile(path, []byte("# test"), 0644); err != nil {
+		if err := os.WriteFile(path, []byte("# test"), 0o644); err != nil {
 			t.Fatal(err)
 		}
 	}
@@ -383,19 +383,19 @@
 
 	// Create subdirectories
 	subDir := filepath.Join(tmpDir, "subdir")
-	if err := os.MkdirAll(subDir, 0755); err != nil {
+	if err := os.MkdirAll(subDir, 0o755); err != nil {
 		t.Fatal(err)
 	}
 
 	// Create Dockerfile in subdirectory
 	subDockerfile := filepath.Join(subDir, "Dockerfile")
-	if err := os.WriteFile(subDockerfile, []byte("FROM ubuntu"), 0644); err != nil {
+	if err := os.WriteFile(subDockerfile, []byte("FROM ubuntu"), 0o644); err != nil {
 		t.Fatal(err)
 	}
 
 	// Create Dockerfile.sketch in parent directory
 	rootSketchDockerfile := filepath.Join(tmpDir, "Dockerfile.sketch")
-	if err := os.WriteFile(rootSketchDockerfile, []byte("FROM alpine"), 0644); err != nil {
+	if err := os.WriteFile(rootSketchDockerfile, []byte("FROM alpine"), 0o644); err != nil {
 		t.Fatal(err)
 	}
 
@@ -427,7 +427,7 @@
 
 	// Test prioritization: create both Dockerfile and Dockerfile.sketch in same directory
 	rootDockerfile := filepath.Join(tmpDir, "Dockerfile")
-	if err := os.WriteFile(rootDockerfile, []byte("FROM debian"), 0644); err != nil {
+	if err := os.WriteFile(rootDockerfile, []byte("FROM debian"), 0o644); err != nil {
 		t.Fatal(err)
 	}
 
diff --git a/webui/src/fixtures/dummy.ts b/webui/src/fixtures/dummy.ts
index 9eeb320..87b73bd 100644
--- a/webui/src/fixtures/dummy.ts
+++ b/webui/src/fixtures/dummy.ts
@@ -358,7 +358,6 @@
       codereview: 1,
       done: 2,
       patch: 1,
-
     },
   },
   initial_commit: "a6c5a08a451ef1082774a7affb6af58775e7bc16",
diff --git a/webui/src/web-components/sketch-container-status.test.ts b/webui/src/web-components/sketch-container-status.test.ts
index ded2917..0e93604 100644
--- a/webui/src/web-components/sketch-container-status.test.ts
+++ b/webui/src/web-components/sketch-container-status.test.ts
@@ -42,10 +42,10 @@
   await expect(component.locator("#workingDir")).toContainText(
     mockCompleteState.working_dir,
   );
-  
+
   // Show details to access the popup elements
   component.locator(".info-toggle").click();
-  
+
   await expect(component.locator("#initialCommit")).toContainText(
     mockCompleteState.initial_commit.substring(0, 8),
   );
@@ -68,8 +68,6 @@
   );
 });
 
-
-
 test("renders with partial state data", async ({ mount }) => {
   const partialState: Partial<State> = {
     state_version: 2,
@@ -99,7 +97,7 @@
 
   // Check that elements with data are properly populated
   await expect(component.locator("#hostname")).toContainText("partial-host");
-  
+
   // Show details to access the popup elements
   component.locator(".info-toggle").click();
   await expect(component.locator("#messageCount")).toContainText("10");
@@ -119,5 +117,3 @@
   // totalCost element should not exist when cost is 0
   await expect(component.locator("#totalCost")).toHaveCount(0);
 });
-
-
