fix: sync API docs, register content-aware-resize, normalize tool counts

- Fix 23 OpenAPI schema discrepancies across 16+ tools (wrong ranges,
  missing fields, incorrect schemas for gif-tools/collage/ocr)
- Add content-aware-resize to canonical TOOLS array and landing BentoGrid
- Normalize tool count to 47 across README, docs, landing, i18n, OpenAPI
- Remove dead "automation" ToolCategory variant
- Add BMP and JPEG XL format decoding via ImageMagick
- Add libopenexr-dev to Docker runtime image
- Update e2e test selectors for current pipeline builder UI
This commit is contained in:
SnapOtter
2026-04-24 23:27:08 +08:00
parent 7f62bc32db
commit 8633dba431
18 changed files with 211 additions and 84 deletions
+3 -3
View File
@@ -8,12 +8,12 @@ const nunito = Nunito({ subsets: ["latin"], variable: "--font-nunito" });
export const metadata: Metadata = {
title: "SnapOtter | Self-Hosted Image Processing",
description:
"40+ image processing tools with local AI. Runs 100% offline. No data leaves your network. Open source and free forever.",
"47 image processing tools with local AI. Runs 100% offline. No data leaves your network. Open source and free forever.",
metadataBase: new URL("https://snapotter.com"),
openGraph: {
title: "SnapOtter | Self-Hosted Image Processing",
description:
"40+ image processing tools with local AI. Runs 100% offline. No data leaves your network.",
"47 image processing tools with local AI. Runs 100% offline. No data leaves your network.",
url: "https://snapotter.com",
siteName: "SnapOtter",
type: "website",
@@ -30,7 +30,7 @@ export const metadata: Metadata = {
card: "summary_large_image",
title: "SnapOtter | Self-Hosted Image Processing",
description:
"40+ image processing tools with local AI. Runs 100% offline. No data leaves your network.",
"47 image processing tools with local AI. Runs 100% offline. No data leaves your network.",
images: ["/og-image.svg"],
},
};