Skip to content

PROD-2312: reserve ✗ glyph for real failures, use ○ for benign skips#181

Merged
5PK merged 1 commit into
mainfrom
PROD-2312-skip-glyph
Jul 14, 2026
Merged

PROD-2312: reserve ✗ glyph for real failures, use ○ for benign skips#181
5PK merged 1 commit into
mainfrom
PROD-2312-skip-glyph

Conversation

@5PK

@5PK 5PK commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Root cause

The push/sync per-line log emitted the red ✗ failure glyph for several benign skips, making runs look catastrophically broken. The glyph is chosen by log status in `src/core/logs.ts` (`failed` → red ✗, `skipped` → yellow ○), and the `.error(...)` vs `.skipped(...)` logger helpers map to those statuses. A handful of skip paths incremented the skip counter (or recorded a preflight `action: "skip"`) but logged via `logger..error(...)`, so the per-line glyph disagreed with the actual outcome.

The phase-summary counts were already correct — these paths already did `skipped++` / recorded `action: "skip"`. This change only fixes the per-line glyph; no counts change.

Call sites changed

  • `src/lib/pushers/container-pusher.ts` (~line 91): target container was deleted → `.error` → `.skipped`. Records preflight `action: "skip"` and does `skipped++; continue;`.
  • `src/lib/pushers/model-pusher.ts` (~line 105): model missing required id/referenceName ("...skipping") → `.error` → `.skipped`. Does `skipped++; continue;`.
  • `src/lib/pushers/page-pusher/process-page.ts` (~line 56): missing page template in source data ("...skipping") → `.error` → `.skipped`. Records preflight `action: "skip"` and returns `{ status: "skip" }`.

Left unchanged (genuine failures / conflicts, verified)

Reviewed every `logger..error(...)` call under `src/lib/pushers/**`. All remaining ones are real failures (catch blocks with `failed++`, `throw`, or `return { status: "failure" }`), or conflicts recorded as `action: "conflict"` (e.g. container/gallery/asset "target changed; use --overwrite"). One change-detection catch logs an error but still processes the item, so it is not a skip. These were intentionally not touched.

Testing

`npm run type-check` passes. No new unit test added: the status→glyph mapping is covered by `src/core/tests/logs.test.ts` and the skip-count paths by existing pusher tests; reproducing the deleted-target-mapping branch would require non-trivial ContainerMapper filesystem setup for little added coverage.

🤖 Generated with Claude Code

…ilure glyph

The push/sync per-line log used the red ✗ failure glyph for several
benign skips, making runs look catastrophically broken even though the
phase summary already counted them correctly as skips. These call sites
increment the skip counter (or record a preflight action: "skip") but
logged via logger.<entity>.error(...), which maps to the failed/✗ glyph.
Switch them to logger.<entity>.skipped(...) so they render the yellow ○
skip glyph.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@5PK 5PK requested a review from jules-exel July 14, 2026 14:35
@5PK 5PK marked this pull request as ready for review July 14, 2026 14:35
@5PK 5PK merged commit 8d7723b into main Jul 14, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants