From b7d9d91b1a0d8dd12072c8a5ebc2c766e8126130 Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Fri, 1 May 2026 12:08:29 +0100 Subject: [PATCH 1/3] fix(events): replace 50% opacity on cancelled rows with strikethrough MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The .is-cancelled row used opacity:0.5, which dragged --text-faint (#665c4b) on the cream background to a 2.1:1 ratio against #f4efe4 — serious axe violation flagged in CI. Strikethrough on the title and tagline conveys the cancelled state without crushing contrast; the existing .cancelled-tag in --ember still flags the row. --- app/pages/events/index.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/pages/events/index.vue b/app/pages/events/index.vue index 3a64189..66c90e9 100644 --- a/app/pages/events/index.vue +++ b/app/pages/events/index.vue @@ -232,8 +232,12 @@ const isAlmostFull = (event) => { .event-row:hover { padding-left: 4px; } -.event-row.is-cancelled { - opacity: 0.5; +.event-row.is-cancelled .event-title a { + text-decoration: line-through; + text-decoration-thickness: 1px; +} +.event-row.is-cancelled .event-tagline { + text-decoration: line-through; } .event-date-col { From b45f92a574dd9562f68ed3156d69e8c9c8842461 Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Fri, 1 May 2026 12:08:35 +0100 Subject: [PATCH 2/3] fix(board-channels): dev stub slackChannelId must match update schema The ALLOW_DEV_TEST_ENDPOINTS short-circuit on create wrote 'dev-stub-' as the channel ID. boardChannelUpdateSchema requires ^[A-Z0-9]+$, so the very next edit on the same channel hit a 400 from Zod and the table never updated. Use base36-uppercased timestamp with a 'CDEV' prefix so the stub survives a round-trip through the patch route. Live path is unchanged. --- server/api/admin/board-channels.post.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/api/admin/board-channels.post.js b/server/api/admin/board-channels.post.js index b49d81f..bc4a9f8 100644 --- a/server/api/admin/board-channels.post.js +++ b/server/api/admin/board-channels.post.js @@ -25,7 +25,9 @@ export default defineEventHandler(async (event) => { if (!slackChannelId) { if (process.env.ALLOW_DEV_TEST_ENDPOINTS === 'true') { - slackChannelId = `dev-stub-${Date.now()}` + // Match the Slack channel ID format (^[A-Z0-9]+$) so the value + // round-trips through boardChannelUpdateSchema on subsequent edits. + slackChannelId = `CDEV${Date.now().toString(36).toUpperCase()}` console.log('[slack] DEV MODE — skipping createChannel', { name: body.name, slackChannelId }) } else { const slack = getSlackAdminService() From c3695de5ca74cf0cf7926d3927a9cf66c111bbc7 Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Fri, 1 May 2026 12:08:41 +0100 Subject: [PATCH 3/3] fix(ci): set BASE_URL so pre-registrant invite route doesn't 500 invite.post.js requires process.env.BASE_URL to build the invite link, returning 500 when unset. The CI workflow stubbed Resend / Mongo / JWT but missed BASE_URL, so the admin-pre-registrants invite spec timed out waiting for the success toast. Set BASE_URL to the test server's URL on both jobs. --- .forgejo/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml index 5c0ed37..f3348bf 100644 --- a/.forgejo/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -30,6 +30,7 @@ jobs: NUXT_PUBLIC_COMING_SOON: 'false' NODE_ENV: development ALLOW_DEV_TEST_ENDPOINTS: 'true' + BASE_URL: http://localhost:3000 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -100,6 +101,7 @@ jobs: NUXT_PUBLIC_COMING_SOON: 'false' NODE_ENV: development ALLOW_DEV_TEST_ENDPOINTS: 'true' + BASE_URL: http://localhost:3000 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4