Add plugin overview page

Change-Id: Ia6181e68df82ce8cf16f19550aa17016f0dc7af0
diff --git a/cmd/termmapper/fuzz_test.go b/cmd/termmapper/fuzz_test.go
index 6ff68d2..ee5c80d 100644
--- a/cmd/termmapper/fuzz_test.go
+++ b/cmd/termmapper/fuzz_test.go
@@ -49,18 +49,29 @@
 		f.Fatal(err)
 	}
 
+	// Create mock config for testing
+	mockConfig := &tmconfig.MappingLists{
+		Lists: []tmconfig.MappingList{mappingList},
+	}
+
 	// Create fiber app
 	app := fiber.New(fiber.Config{
 		DisableStartupMessage: true,
 		ErrorHandler: func(c *fiber.Ctx, err error) error {
-			// Ensure we always return a valid JSON response even for panic cases
+			// For body limit errors, return 413 status code
+			if err.Error() == "body size exceeds the given limit" || errors.Is(err, fiber.ErrRequestEntityTooLarge) {
+				return c.Status(fiber.StatusRequestEntityTooLarge).JSON(fiber.Map{
+					"error": fmt.Sprintf("request body too large (max %d bytes)", maxInputLength),
+				})
+			}
+			// For other errors, return 500 status code
 			return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
-				"error": "internal server error",
+				"error": err.Error(),
 			})
 		},
 		BodyLimit: maxInputLength,
 	})
-	setupRoutes(app, m)
+	setupRoutes(app, m, mockConfig)
 
 	// Add seed corpus
 	f.Add("test-mapper", "atob", "", "", "", "", []byte(`{"@type": "koral:token"}`))                                  // Valid minimal input
@@ -152,6 +163,11 @@
 	m, err := mapper.NewMapper([]tmconfig.MappingList{mappingList})
 	require.NoError(t, err)
 
+	// Create mock config for testing
+	mockConfig := &tmconfig.MappingLists{
+		Lists: []tmconfig.MappingList{mappingList},
+	}
+
 	// Create fiber app
 	app := fiber.New(fiber.Config{
 		DisableStartupMessage: true,
@@ -169,7 +185,7 @@
 		},
 		BodyLimit: maxInputLength,
 	})
-	setupRoutes(app, m)
+	setupRoutes(app, m, mockConfig)
 
 	tests := []struct {
 		name          string