Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/quality-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '20'
node-version: '24'
cache: yarn

- run: yarn install --frozen-lockfile
Expand Down
6 changes: 5 additions & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ import typescript from '@typescript-eslint/eslint-plugin';
import typescriptParser from '@typescript-eslint/parser';
import reactHooks from 'eslint-plugin-react-hooks';
import jsxA11y from 'eslint-plugin-jsx-a11y';
import importPlugin from 'eslint-plugin-import';
// eslint-plugin-import-x: maintained fork of eslint-plugin-import that supports
// ESLint 10 (the original 2.x crashes on import/order — removed getTokenOrCommentAfter).
// Registered under the `import` plugin key so all `import/*` rule names stay unchanged.
import importPlugin from 'eslint-plugin-import-x';
import prettier from 'eslint-plugin-prettier';
import prettierConfig from 'eslint-config-prettier';

Expand Down Expand Up @@ -38,6 +41,7 @@ export default [
crypto: 'readonly',
btoa: 'readonly',
TextEncoder: 'readonly',
URL: 'readonly',
URLSearchParams: 'readonly',
alert: 'readonly',
// DOM types
Expand Down
8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@
"format:check": "prettier --check src/",
"check-all": "yarn type-check && yarn lint && yarn format:check"
},
"resolutions": {
"vite": "8.1.2",
"rolldown": "1.1.3"
},
"browserslist": {
"production": [
">0.2%",
Expand Down Expand Up @@ -65,14 +69,14 @@
"@vitest/ui": "4.1.9",
"eslint": "^10.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-import-x": "^4.17.1",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-prettier": "5.5.6",
"eslint-plugin-react-hooks": "^7.1.1",
"jsdom": "29.1.1",
"prettier": "3.8.4",
"typescript": "^6.0.3",
"vite": "8.1.0",
"vite": "8.1.2",
"vitest": "4.1.9"
}
}
16 changes: 9 additions & 7 deletions src/components/status/HealthPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,9 @@ function HealthPage() {
</h1>

<p className='health-intro' data-testid='health-intro'>
how this is gathered: four independent sources. your browser pings each
site live for response time; continuous uptime and incidents come from{' '}
how this is gathered: four independent sources. your browser pings
each site live for response time; continuous uptime and incidents come
from{' '}
<a
href='https://github.com/swantron/uptime-monitor'
target='_blank'
Expand All @@ -221,7 +222,8 @@ function HealthPage() {
uptime-monitor
</a>{' '}
(a 5-minute cron writing to a public gist); per-deploy verification —
proof the new build is actually serving traffic end-to-end — comes from{' '}
proof the new build is actually serving traffic end-to-end — comes
from{' '}
<a
href='https://github.com/swantron/watchtron'
target='_blank'
Expand All @@ -230,8 +232,8 @@ function HealthPage() {
>
watchtron
</a>
; and the deployments / infrastructure tabs read the github actions and
digitalocean apis.
; and the deployments / infrastructure tabs read the github actions
and digitalocean apis.
</p>

{/* Overall Status Summary */}
Expand Down Expand Up @@ -385,8 +387,8 @@ function HealthPage() {
<p className='health-section-note'>
each service shows a live response time (measured from your
browser now), continuous uptime from uptime-monitor&apos;s
5-minute checks, and the last verified deploy from watchtron (✓ =
the new build was proven serving end-to-end).
5-minute checks, and the last verified deploy from watchtron (✓
= the new build was proven serving end-to-end).
</p>
<ServiceHealth
ref={serviceHealthRef}
Expand Down
1 change: 1 addition & 0 deletions src/components/status/ServiceHealth.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
fetchWatchtronStatus,
getDeployForUrl,
} from '../../services/watchtronApiService';

import ServiceHealth from './ServiceHealth';

// Mock runtime config
Expand Down
5 changes: 3 additions & 2 deletions src/components/ui/Projects.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,11 @@ interface BloggingItem {
const BLOGGING: BloggingItem[] = [
{
slug: 'minifier-cli',
title: 'minifier-cli: shrink any docker image without touching its dockerfile',
title:
'minifier-cli: shrink any docker image without touching its dockerfile',
year: '2026',
description:
'born from vuln noise on third-party images we run but don\'t own — traces runtime file access, rebuilds from scratch.',
"born from vuln noise on third-party images we run but don't own — traces runtime file access, rebuilds from scratch.",
url: 'https://swantron.com/2026/06/01/minifier-cli/',
},
{
Expand Down
Loading
Loading