Skip to content

feat: M6 release prep: CI, visual tests, README, licences - #9

Merged
hyamero merged 9 commits into
feat/m5-skillfrom
feat/m6-release
Sep 29, 2026
Merged

hyamero merged 9 commits into
feat/m5-skillfrom
feat/m6-release

Conversation

@hyamero

@hyamero hyamero commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Stacked on #8 (M5).

  • CI (.github/workflows/ci.yml):
    • check job: install → unit tests → typecheck → build → CLI smoke.
    • e2e job: runs in the Playwright v1.63 container, covering the viewer e2e, visual regression and the CLI delivered-file and live-serve e2e.
    • Visual snapshots are always uploaded as an artifact; this is how the Linux baselines get into the repo.
  • Visual regression: 6 baselines (sample, grouped and gallery, each in light and dark). They are Linux-only because font rasterisation differs per OS, and the spec is skipped elsewhere unless VISUAL=1. Regenerate them with visual:update (Docker) or CI's update-visual run.
  • README: what stackmap is and why, quick start (npx skills add hyamero/stackmap), CLI, diagram format, viewer features, development, credits (archify, Cocoon AI, ELK, Geist, Simple Icons). It includes screenshots taken from a real delivered file.
  • Licences:
    • root LICENSE (MIT, with archify's notice for the adapted skill text)
    • THIRD_PARTY_NOTICES.md covering everything shipped in the viewer and CLI bundles, plus the elkjs runtime dependency and the full OFL text
    • Bundling strips licence comments, so every delivered HTML now carries a short attribution comment, and the build enforces it.
  • npm: @hyamero/stackmap now has metadata, publishConfig.access: public, and a prepack step that copies the README, LICENSE and notices in.
    • The dry-run caught npm dropping bin for a ./-prefixed path; that's fixed and pinned by a test.
    • The packed tarball installs in a clean project, and npx stackmap validate/deliver work from it.
  • Fix: revealed nodes (search, deep link) are now centred between the toolbar and the zoom bar.

Not done here (needs you): npm publish (from packages/cli, run bun publish so workspace: ranges are rewritten), and a v0.1.0 tag and release.

Found by the first CI run: Linux Chromium snaps every glyph advance to whole pixels and skips kerning, so text is up to about 6% wider than on macOS. Card-fit could therefore pass a title that truncates on Linux. measureText now takes the larger of the kerned fractional width and the Linux snapped width (plus 1px for hinting). Unit tests are pinned to widths CI observed, and the card-fit e2e now checks the dangerous direction on every platform.

CI is green (test · typecheck · build, e2e · visual).

@hyamero
hyamero merged commit ddeda1e into feat/m5-skill Sep 29, 2026
2 checks passed
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.1.0-rc.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.1.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant