diff --git a/apps/web/app/robots.ts b/apps/web/app/robots.ts new file mode 100644 index 0000000000..285780318e --- /dev/null +++ b/apps/web/app/robots.ts @@ -0,0 +1,14 @@ +import type { MetadataRoute } from "next"; + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: "*", + allow: "/", + }, + sitemap: [ + "https://www.getinboxzero.com/sitemap.xml", + "https://docs.getinboxzero.com/sitemap.xml", + ], + }; +} diff --git a/apps/web/utils/outlook/retry.test.ts b/apps/web/utils/outlook/retry.test.ts index 687ad388da..0136251d48 100644 --- a/apps/web/utils/outlook/retry.test.ts +++ b/apps/web/utils/outlook/retry.test.ts @@ -94,12 +94,40 @@ describe("isRetryableError", () => { expect(result.retryable).toBe(true); }); + it("identifies 412 as conflict error", () => { + const errorInfo = { status: 412, errorMessage: "Precondition failed" }; + const result = isRetryableError(errorInfo); + expect(result.isConflictError).toBe(true); + expect(result.retryable).toBe(true); + }); + + it("identifies ErrorIrresolvableConflict code as conflict error", () => { + const errorInfo = { + code: "ErrorIrresolvableConflict", + errorMessage: "Change key conflict", + }; + const result = isRetryableError(errorInfo); + expect(result.isConflictError).toBe(true); + expect(result.retryable).toBe(true); + }); + + it("identifies conflict by message pattern", () => { + const errorInfo = { + status: 409, + errorMessage: "The change key passed does not match", + }; + const result = isRetryableError(errorInfo); + expect(result.isConflictError).toBe(true); + expect(result.retryable).toBe(true); + }); + it("identifies non-retryable errors", () => { const errorInfo = { status: 404, errorMessage: "Not found" }; const result = isRetryableError(errorInfo); expect(result.retryable).toBe(false); expect(result.isRateLimit).toBe(false); expect(result.isServerError).toBe(false); + expect(result.isConflictError).toBe(false); }); it("identifies rate limit by message pattern", () => { diff --git a/version.txt b/version.txt index 25137a5330..7ca5c6864b 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v2.18.9 +v2.18.10