From 7396d23335f8eb311ea728401566fde9a22940b7 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Mon, 26 Oct 2026 09:27:26 +0000 Subject: [PATCH] AI tracker: owner-only tabs no longer 500 (cache-control set twice: layout + page load) --- src/routes/trackers/ai/bots/+page.server.ts | 3 ++- src/routes/trackers/ai/setup/+page.server.ts | 3 ++- src/routes/trackers/ai/usage/+page.server.ts | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/routes/trackers/ai/bots/+page.server.ts b/src/routes/trackers/ai/bots/+page.server.ts index 5906bed..36a0f4a 100644 --- a/src/routes/trackers/ai/bots/+page.server.ts +++ b/src/routes/trackers/ai/bots/+page.server.ts @@ -4,8 +4,9 @@ import type { PageServerLoad } from './$types'; // Owner only: one row per Grok Bot agent, short summaries written by Daisy (no transcripts). export const load: PageServerLoad = async (event) => { + // cache-control comes from the ai layout (owner) and hooks.server.ts; setting it here too threw + // header_already_set (500) for the owner. requireOwner(event); - event.setHeaders({ 'cache-control': 'private, no-store' }); return { bots: await loadBots(), now: Date.now(), diff --git a/src/routes/trackers/ai/setup/+page.server.ts b/src/routes/trackers/ai/setup/+page.server.ts index c12b2ca..aa74e00 100644 --- a/src/routes/trackers/ai/setup/+page.server.ts +++ b/src/routes/trackers/ai/setup/+page.server.ts @@ -15,8 +15,9 @@ import type { Actions, PageServerLoad, RequestEvent } from './$types'; // Actions don't run the load, so each one checks the owner again (hooks.server.ts also 404s // this path for everyone else). export const load: PageServerLoad = async (event) => { + // No setHeaders here: the ai layout already sets cache-control for the owner (setting it + // twice throws), and hooks.server.ts adds private, no-store on owner-only paths. requireOwner(event); - event.setHeaders({ 'cache-control': 'private, no-store' }); return { providers: await loadSetup(), now: Date.now(), diff --git a/src/routes/trackers/ai/usage/+page.server.ts b/src/routes/trackers/ai/usage/+page.server.ts index b3d4bbc..c008763 100644 --- a/src/routes/trackers/ai/usage/+page.server.ts +++ b/src/routes/trackers/ai/usage/+page.server.ts @@ -6,8 +6,9 @@ import type { Actions, PageServerLoad } from './$types'; // Owner only: dated usage numbers per provider. Actions don't run the load, so each // action checks the owner again (hooks.server.ts also 404s this path for everyone else). export const load: PageServerLoad = async (event) => { + // cache-control comes from the ai layout (owner) and hooks.server.ts; setting it here too threw + // header_already_set (500) for the owner. requireOwner(event); - event.setHeaders({ 'cache-control': 'private, no-store' }); return { entries: await loadUsage(), seo: { title: 'AI tracker ยท usage', description: 'My AI usage.', index: false }