From 3983a8a788cf176688e201bd29fd4e13d802a0e8 Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 2 Jun 2026 11:34:05 +0530 Subject: [PATCH 1/5] ci: add Windows test job to CI pipeline Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7cc9e45a..b2521d5d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,3 +31,26 @@ jobs: - name: Test run: bun test + + test-windows: + name: Test (Windows) + runs-on: windows-latest + timeout-minutes: 10 + defaults: + run: + working-directory: ./packages/chronicle + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.3.9 + + - name: Install dependencies + run: bun install --frozen-lockfile + working-directory: . + + - name: Test + run: bun test From d83155309f2210c615c26c5baeaffb7fc9278b4a Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 2 Jun 2026 11:36:12 +0530 Subject: [PATCH 2/5] ci: add smoke tests for dev, build, and start commands on Ubuntu and Windows Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 57 +++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2521d5d..5c415bec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,13 +32,14 @@ jobs: - name: Test run: bun test - test-windows: - name: Test (Windows) - runs-on: windows-latest - timeout-minutes: 10 - defaults: - run: - working-directory: ./packages/chronicle + smoke-test: + name: Smoke Test (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] steps: - name: Checkout uses: actions/checkout@v4 @@ -50,7 +51,43 @@ jobs: - name: Install dependencies run: bun install --frozen-lockfile - working-directory: . - - name: Test - run: bun test + - name: Build CLI + run: bun run build:cli + working-directory: ./packages/chronicle + + - name: Build example + run: ./packages/chronicle/bin/chronicle.js build --config examples/basic/chronicle.yaml + shell: bash + + - name: Smoke test dev server + shell: bash + run: | + ./packages/chronicle/bin/chronicle.js dev --config examples/basic/chronicle.yaml --port 3001 & + DEV_PID=$! + for i in $(seq 1 30); do + if curl -sf http://localhost:3001/api/health > /dev/null 2>&1; then + echo "Dev server ready" + break + fi + sleep 2 + done + curl -sf http://localhost:3001/api/health | grep -q '"ok"' + echo "Dev server health check passed" + kill $DEV_PID 2>/dev/null || true + + - name: Smoke test start server + shell: bash + run: | + ./packages/chronicle/bin/chronicle.js start --config examples/basic/chronicle.yaml --port 3002 & + START_PID=$! + for i in $(seq 1 30); do + if curl -sf http://localhost:3002/api/health > /dev/null 2>&1; then + echo "Start server ready" + break + fi + sleep 2 + done + curl -sf http://localhost:3002/api/health | grep -q '"ok"' + echo "Start server health check passed" + kill $START_PID 2>/dev/null || true From 7f4fba9358d4afb89fbf7b570884b3d18735a13c Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 2 Jun 2026 11:47:25 +0530 Subject: [PATCH 3/5] fix: use node-process runner for nitro dev on Windows node-worker runner fails on Windows due to Nitro 3 beta + Vite 8 environment API incompatibility. Fallback to node-process runner which uses child process instead of worker threads. Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/chronicle/src/cli/commands/dev.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/chronicle/src/cli/commands/dev.ts b/packages/chronicle/src/cli/commands/dev.ts index 2dc4b2c4..e204480a 100644 --- a/packages/chronicle/src/cli/commands/dev.ts +++ b/packages/chronicle/src/cli/commands/dev.ts @@ -16,6 +16,10 @@ export const devCommand = new Command('dev') await linkContent(projectRoot, config); + if (process.platform === 'win32' && !process.env.NITRO_DEV_RUNNER) { + process.env.NITRO_DEV_RUNNER = 'node-process'; + } + console.log(chalk.cyan('Starting dev server...')); const { createServer } = await import('vite'); From 3904419ffecda7478daf92ba786c70daf8d4dbe1 Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 2 Jun 2026 14:11:05 +0530 Subject: [PATCH 4/5] chore: add comment explaining Windows dev runner workaround Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/chronicle/src/cli/commands/dev.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/chronicle/src/cli/commands/dev.ts b/packages/chronicle/src/cli/commands/dev.ts index e204480a..f8cc703b 100644 --- a/packages/chronicle/src/cli/commands/dev.ts +++ b/packages/chronicle/src/cli/commands/dev.ts @@ -16,6 +16,7 @@ export const devCommand = new Command('dev') await linkContent(projectRoot, config); + // Nitro 3's default node-worker runner fails on Windows due to Vite 8 environment API incompatibility if (process.platform === 'win32' && !process.env.NITRO_DEV_RUNNER) { process.env.NITRO_DEV_RUNNER = 'node-process'; } From 142dc0e5f8a606cd38786c50646078736073323f Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 2 Jun 2026 14:11:20 +0530 Subject: [PATCH 5/5] ci: add macOS to smoke test matrix Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c415bec..62df9dee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, macos-latest] steps: - name: Checkout uses: actions/checkout@v4