Skip to content

fix: fail on unreadable lint inputs and stabilize theme index builds - #89

Closed
bugstan wants to merge 2 commits into
Nutlope:mainfrom
bugstan:fix/sloplint-unreadable-input
Closed

bugstan wants to merge 2 commits into
Nutlope:mainfrom
bugstan:fix/sloplint-unreadable-input

Conversation

@bugstan

@bugstan bugstan commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Fix two reproducible CLI/check failures in separate commits.

sloplint previously printed cannot read for a missing input but returned success if another input was clean. --before also wrote an incomplete snapshot. It now exits 2 during file collection, before reporting or snapshot writes. Reproduce with node skills/hallmark/scripts/sloplint.mjs valid.css missing.css --scope component --tier floor --json, where valid.css contains /* Hallmark · component: text */ followed by p { color: var(--color-text); }.

The existing CI index-freshness check also failed on an unchanged checkout after the index's build day: theme.mjs index changed only built, and git diff --exit-code rejected it. Preserve the previous build date when the generated theme entries are identical. Changed entries still regenerate with the current date, and missing or malformed indexes still rebuild. The existing exact-diff CI check remains unchanged.

Add regressions to the existing refcheck.mjs runner for clean and unreadable lint inputs, incomplete snapshots, stable index output across build dates, changed metadata, and index reconstruction. No new dependencies or workflow changes.

Validation:

  • Both new regression groups were observed failing before their respective fixes and passing afterward.
  • Complete local verify sequence on Node v20.20.2 (matching CI's Node 20 major): refcheck.mjs clean across 99 reference files; all 48 themes validate; theme.mjs index followed by git diff --exit-code -- skills/hallmark/references/themes/index.json passes.
  • Independent CLI checks cover missing input alone, both mixed-input orders, and --before, with no success report or partial snapshot.
  • Independent simulated-date checks confirm byte-identical indexes across years, an updated date after a real metadata change, and recovery from missing/malformed indexes.
  • git diff --check passes.

GitHub Actions for this external contribution requires maintainer approval; local verification does not claim a completed remote CI run.

@vercel

vercel Bot commented Oct 25, 2026

Copy link
Copy Markdown

@bugstan is attempting to deploy a commit to the Together AI Team on Vercel.

A member of the Team first needs to authorize it.

@bugstan bugstan changed the title fix(sloplint): fail when an input path cannot be read fix: fail on unreadable lint inputs and stabilize theme index builds Oct 25, 2026
@Luffixos

Copy link
Copy Markdown
Collaborator

Thanks @bugstan, both bugs were real and the second one would have failed CI on main. We fixed them a little differently: sloplint now exits 2 only when a path you passed on the command line can't be read (so one broken symlink deep in a project doesn't stop the whole run), and the theme index no longer writes a built date at all, since nothing reads it. The commit (118a471) credits you as co-author and lands on main with the next push.

@Luffixos Luffixos closed this Oct 27, 2026
Luffixos added a commit that referenced this pull request Oct 27, 2026
2 new themes: Refract and Vantage, plus fixes from #84 and #89
timothybrush pushed a commit to timothybrush/hallmark that referenced this pull request Oct 27, 2026
…index carries no build date, so the index check passes on any day

From the report in Nutlope#89.

Co-authored-by: bugstan <29607505+bugstan@users.noreply.github.com>
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