diff --git a/.changeset/login-page-errors.md b/.changeset/login-page-errors.md new file mode 100644 index 0000000..674c57a --- /dev/null +++ b/.changeset/login-page-errors.md @@ -0,0 +1,5 @@ +--- +"@codelitdev/oauth-server-kit": patch +--- + +The hosted sign-in page now shows the auth API's error `message` (for example a product's signup refusal or an expired code) instead of always "Sign-in failed. Please try again.", which stays the fallback when the response has no message. diff --git a/.changeset/observability-batching.md b/.changeset/observability-batching.md new file mode 100644 index 0000000..269d284 --- /dev/null +++ b/.changeset/observability-batching.md @@ -0,0 +1,5 @@ +--- +"@codelitdev/observability": patch +--- + +Batch and retry telemetry: PostHog captures go to `/batch/` and OTLP logs are sent many records per request, every second or 50 items, with a 10-second timeout and two retries on network errors, 429 and 5xx. Previously each item was its own request, aborted after 2 seconds without a retry, so bursts or a slow network silently dropped events. Add `contextPolicy.identifierKeys` so allowlisted id properties (UUIDs) aren't masked as tokens. diff --git a/packages/oauth-server-kit/src/oauth-pages.test.ts b/packages/oauth-server-kit/src/oauth-pages.test.ts index 420a78c..9e49ac0 100644 --- a/packages/oauth-server-kit/src/oauth-pages.test.ts +++ b/packages/oauth-server-kit/src/oauth-pages.test.ts @@ -27,6 +27,43 @@ function pagesApp(overrides: Partial = {}) { return app; } +/** Runs the login page's inline script against stub DOM and fetch, submits + * the email form, and returns the error banner text. */ +async function submitEmail(html: string, response: Response): Promise { + const script = html.match(/