From 479a6d838fac69b11704dbd1dd416477225c5c85 Mon Sep 17 00:00:00 2001 From: John Dietz Date: Thu, 28 Aug 2025 12:47:25 -0400 Subject: [PATCH 1/4] wrapping the returned log format to JSON structure on liveness fail --- pages/api/stream/[logFile].ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/pages/api/stream/[logFile].ts b/pages/api/stream/[logFile].ts index ace478f3..c4e57835 100644 --- a/pages/api/stream/[logFile].ts +++ b/pages/api/stream/[logFile].ts @@ -41,15 +41,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) }); eventSource.addEventListener('message', (e: MessageEvent) => { - try { - const { message } = JSON.parse(e.data); - res.write(`data: ${message}\n\n`); - } catch (parseError) { - // eslint-disable-next-line no-console - console.error('Error parsing message:', parseError); - // Send raw data if JSON parsing fails - res.write(`data: ${e.data}\n\n`); - } + // The backend sends raw log lines, not JSON objects + // We need to wrap them in a JSON structure that the frontend expects + const logData = JSON.stringify({ message: e.data }); + res.write(`data: ${logData}\n\n`); }); eventSource.addEventListener('error', (e: Event) => { From 8e49a897eb48a6845f31359e046381a49605f663 Mon Sep 17 00:00:00 2001 From: John Dietz Date: Sat, 30 Aug 2025 08:36:57 -0400 Subject: [PATCH 2/4] incorporate cris' feedback --- pages/api/stream/[logFile].ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pages/api/stream/[logFile].ts b/pages/api/stream/[logFile].ts index c4e57835..836600af 100644 --- a/pages/api/stream/[logFile].ts +++ b/pages/api/stream/[logFile].ts @@ -41,10 +41,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) }); eventSource.addEventListener('message', (e: MessageEvent) => { - // The backend sends raw log lines, not JSON objects - // We need to wrap them in a JSON structure that the frontend expects - const logData = JSON.stringify({ message: e.data }); - res.write(`data: ${logData}\n\n`); + const { message } = JSON.parse(e.data); + res.write(`data: ${message}\n\n`); }); eventSource.addEventListener('error', (e: Event) => { From e411f2638412ad0501c08de17c496e516ab316b5 Mon Sep 17 00:00:00 2001 From: John Dietz Date: Sat, 30 Aug 2025 08:38:07 -0400 Subject: [PATCH 3/4] hotwire --- .github/workflows/main.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 02cd2059..b60ce2b4 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -10,6 +10,7 @@ on: push: branches: - main + - liveness-stall # todo: remove before merge jobs: publish: runs-on: self-hosted From 7e5abd4e311fee12b9b23f628532b9da438fcddc Mon Sep 17 00:00:00 2001 From: John Dietz Date: Sat, 30 Aug 2025 09:18:28 -0400 Subject: [PATCH 4/4] handle event listener another way --- pages/api/stream/[logFile].ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pages/api/stream/[logFile].ts b/pages/api/stream/[logFile].ts index 836600af..ace478f3 100644 --- a/pages/api/stream/[logFile].ts +++ b/pages/api/stream/[logFile].ts @@ -41,8 +41,15 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) }); eventSource.addEventListener('message', (e: MessageEvent) => { - const { message } = JSON.parse(e.data); - res.write(`data: ${message}\n\n`); + try { + const { message } = JSON.parse(e.data); + res.write(`data: ${message}\n\n`); + } catch (parseError) { + // eslint-disable-next-line no-console + console.error('Error parsing message:', parseError); + // Send raw data if JSON parsing fails + res.write(`data: ${e.data}\n\n`); + } }); eventSource.addEventListener('error', (e: Event) => {