From fb74023ef853fce0ba9b0f650c946f7fe7564c5f Mon Sep 17 00:00:00 2001 From: grimicorn-agent Date: Sun, 6 Sep 2026 16:36:21 -0700 Subject: [PATCH 1/7] Add production build step to CI --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 63498b6..2459987 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,3 +19,4 @@ jobs: - run: npm run lint - run: npm run typecheck - run: npm run test:ci + - run: npm run build From 207f05b93f6fd051d89f6924672330a6cdb0b321 Mon Sep 17 00:00:00 2001 From: grimicorn-agent Date: Sun, 6 Sep 2026 16:37:50 -0700 Subject: [PATCH 2/7] Smoke-test the built CLI entry point in CI --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2459987..d437842 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,3 +20,4 @@ jobs: - run: npm run typecheck - run: npm run test:ci - run: npm run build + - run: node dist/index.js --help From d29875ed587d5dd731a182565f18820920e17861 Mon Sep 17 00:00:00 2001 From: grimicorn-agent Date: Sun, 6 Sep 2026 16:40:05 -0700 Subject: [PATCH 3/7] Assert smoke-test output and isolate its config store --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d437842..d19fc78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,4 +20,6 @@ jobs: - run: npm run typecheck - run: npm run test:ci - run: npm run build - - run: node dist/index.js --help + - run: node dist/index.js --help | grep -q 'Usage: markpost ' + env: + XDG_CONFIG_HOME: ${{ runner.temp }}/markpost-config From 5101c711aac6b3ceff2e5bf75947cfe4bd8780c8 Mon Sep 17 00:00:00 2001 From: grimicorn-agent Date: Sun, 6 Sep 2026 16:43:30 -0700 Subject: [PATCH 4/7] Fix pipefail blind spot and add diagnostics to smoke-test step --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d19fc78..355c07f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,9 @@ jobs: - run: npm run typecheck - run: npm run test:ci - run: npm run build - - run: node dist/index.js --help | grep -q 'Usage: markpost ' + - name: Built CLI prints top-level help + run: | + node dist/index.js --help > help.txt + grep -q '^Usage: markpost ' help.txt || { echo "top-level usage line changed — update ci.yml or src/index.ts:157"; cat help.txt; exit 1; } env: XDG_CONFIG_HOME: ${{ runner.temp }}/markpost-config From d7df695be8e022cdb0a787a5894c9c030d9ff301 Mon Sep 17 00:00:00 2001 From: Grimicorn Agent Date: Mon, 7 Sep 2026 21:21:43 -0700 Subject: [PATCH 5/7] Address code review: redirect help output to RUNNER_TEMP, avoid stale line-number pointer, document XDG_CONFIG_HOME scope, capture stderr --- .github/workflows/ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 355c07f..2e420c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,9 @@ jobs: - run: npm run build - name: Built CLI prints top-level help run: | - node dist/index.js --help > help.txt - grep -q '^Usage: markpost ' help.txt || { echo "top-level usage line changed — update ci.yml or src/index.ts:157"; cat help.txt; exit 1; } + node dist/index.js --help > "$RUNNER_TEMP/help.txt" 2>&1 + grep -q '^Usage: markpost ' "$RUNNER_TEMP/help.txt" || { echo "top-level usage line changed — update ci.yml or HELP_TEXT in src/index.ts"; cat "$RUNNER_TEMP/help.txt"; exit 1; } env: + # conf -> env-paths reads XDG_CONFIG_HOME on Linux only; this keeps the + # help smoke test off any real config store. Revisit if runs-on changes. XDG_CONFIG_HOME: ${{ runner.temp }}/markpost-config From 05b350bc4d544bd80fdc8133e45101b3511fcceb Mon Sep 17 00:00:00 2001 From: Grimicorn Agent Date: Mon, 7 Sep 2026 21:24:01 -0700 Subject: [PATCH 6/7] Surface diagnostics when the built CLI crashes, not just on a changed help line --- .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 2e420c1..e7c537c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: - run: npm run build - name: Built CLI prints top-level help run: | - node dist/index.js --help > "$RUNNER_TEMP/help.txt" 2>&1 + node dist/index.js --help > "$RUNNER_TEMP/help.txt" 2>&1 || { echo "built CLI failed to run — see output below"; cat "$RUNNER_TEMP/help.txt"; exit 1; } grep -q '^Usage: markpost ' "$RUNNER_TEMP/help.txt" || { echo "top-level usage line changed — update ci.yml or HELP_TEXT in src/index.ts"; cat "$RUNNER_TEMP/help.txt"; exit 1; } env: # conf -> env-paths reads XDG_CONFIG_HOME on Linux only; this keeps the From 2bb0476ad4acfdb0cae4c6c0f63314dfed8a644a Mon Sep 17 00:00:00 2001 From: Grimicorn Agent Date: Mon, 7 Sep 2026 21:27:36 -0700 Subject: [PATCH 7/7] Preserve the CLI's actual exit status in the crash diagnostic --- .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 e7c537c..0514562 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: - run: npm run build - name: Built CLI prints top-level help run: | - node dist/index.js --help > "$RUNNER_TEMP/help.txt" 2>&1 || { echo "built CLI failed to run — see output below"; cat "$RUNNER_TEMP/help.txt"; exit 1; } + node dist/index.js --help > "$RUNNER_TEMP/help.txt" 2>&1 || { status=$?; echo "built CLI exited $status — see output below"; cat "$RUNNER_TEMP/help.txt"; exit 1; } grep -q '^Usage: markpost ' "$RUNNER_TEMP/help.txt" || { echo "top-level usage line changed — update ci.yml or HELP_TEXT in src/index.ts"; cat "$RUNNER_TEMP/help.txt"; exit 1; } env: # conf -> env-paths reads XDG_CONFIG_HOME on Linux only; this keeps the