Skip to content

release: v0.10.0 - #27

Merged
jal-co merged 8 commits into
mainfrom
release/v0.10.0
May 29, 2026
Merged

release: v0.10.0#27
jal-co merged 8 commits into
mainfrom
release/v0.10.0

Conversation

@jal-co

@jal-co jal-co commented May 29, 2026

Copy link
Copy Markdown
Owner

What

Release v0.10.0 — rolls up PRs #25 and #26 (which were stacked on #24 and merged into each other but never made it up to main) plus the version bump.

Why

PR #24 (test:) made it to main, but #25 (chore: community files) and #26 (feat: TUI polish) merged into their stacked bases, leaving main 8 commits behind. This PR brings everything up and ships it as 0.10.0.

Contents

Commit From What
docs: add CONTRIBUTING, CODE_OF_CONDUCT, and issue/PR templates #25 Community files modelled on jal-co/shieldcn
chore: add FUNDING.yml for github and ko-fi #25 Sponsorship links
ci: add PR auto-labeler and commit-check workflows #25 Auto-label PRs by branch prefix + changed files; enforce Conventional Commits / Conventional Branch on every PR to main
docs(readme): link Contributing and Code of Conduct sections #25 Point README at the new files
feat(tui): integrate clack frame, p.tasks, and CI/TTY fallback #26 Continuous clack frame, 4-phase scaffold with p.tasks, per-prompt descriptions with doc links, auto-promote --yes in non-TTY
feat(www): match landing terminal demo to the real TUI output #26 Hero terminal on scnstack.sh renders pixel-for-pixel like a real --yes run
style(www): widen landing terminal so the TUI boxes fit #26 Macbook stage + window cap so the 62-col summary box doesn't clip
chore: bump version to 0.10.0 this PR package.json + package-lock.json

Why 0.10.0 not 1.0.0

CLI is still iterating quickly (this is the 3rd version bump in a week) and we haven't formally committed to a stable flag/output contract yet. 1.0.0 should be a deliberate "we won't break this" promise — save it for when the surface settles.

Testing

npm run lint        # clean
npm run build       # 144 KB bundle, version 0.10.0
npm run test:ci     # 62 passed (62), ~1s

After merge

Tag v0.10.0 and publish a GitHub Release — .github/workflows/publish.yml is wired to fire on release: [published] and runs lint + build + tests before npm publish --provenance --access public.

jal-co added 8 commits May 28, 2026 18:16
Add the community files contributors expect, modelled on jal-co/shieldcn:

- CONTRIBUTING.md  conventional branches and commits, test suite docs,
                  auto-labelling table, project layout
- CODE_OF_CONDUCT.md  Contributor Covenant 3.0 (verbatim)
- PULL_REQUEST_TEMPLATE.md  what / why / type / checklist
- ISSUE_TEMPLATE/bug.yml      structured bug report (CLI version, PM,
                              framework, docs engine, command, repro)
- ISSUE_TEMPLATE/feature.yml  feature request with category dropdown
- ISSUE_TEMPLATE/framework.yml  request a new framework or docs engine
- ISSUE_TEMPLATE/config.yml   contact links (docs, builder, discussions)
- labeler.yml + workflow  label PRs by branch prefix (feat/, fix/,
  docs/, etc.) and by changed files (.github/** => ci, www/** =>
  website, src/generators/frameworks/** => framework, test/** => test)
- commit-check workflow  enforce conventional commit messages and
  conventional branch names on every PR into main

CONTRIBUTING.md already documents the prefixes; this wires them up
server-side. Husky is intentionally not added \u2014 CI is the source of
truth so there is no extra dev-machine setup.
Point the README Contributing section at the new CONTRIBUTING.md and
CODE_OF_CONDUCT.md instead of a generic 'open an issue' message.
The interactive flow was rendering custom boxes and spinners outside
clack's prompt context, which caused gutter discontinuities and
phantom \u2502 lines next to p.note boxes. Rework the whole flow to live
inside one continuous clack frame:

- Replace printHeader() with brandedIntro() passed to p.intro() so the
  logo opens the frame with \u250c and every later prompt connects to a
  single left gutter
- Replace per-prompt help blocks, defaults box, and review box with
  p.note so frames align
- Replace the 12 manual s.start/s.stop pairs in scaffold.ts with three
  p.tasks() arrays grouped into Phase 1 (scaffold), Phase 2 (registry +
  components), Phase 3 (docs/theme/extras), and Phase 4 (install +
  shadcn skill + git init, skipped under SCN_STACK_SKIP_INSTALL)
- Replace printSummaryBox/printFooter with p.note + p.outro so the
  frame closes cleanly with \u2514
- Auto-promote --yes when stdin isn't a TTY (CI, pipes) via p.isCI()
  and p.isTTY(process.stdin) so the CLI never hangs waiting for input
  that will never arrive
- Render the three-bar logo in bold white to match the wordmark
- Each prompt now prints a multi-line description with doc links via
  printPromptHelp() (terminal-native URL linking handles clickability)
The hero terminal on scnstack.sh streamed a simplified sequence
(\u25c6 prompt list, \u2713 task ticks) that didn't reflect what the CLI
actually shows. Rewrite the STEPS array from a live FORCE_COLOR=1
capture so the demo renders pixel-for-pixel like the real terminal:

- Open with the white three-bar logo and the clack frame \u250c
- Show the Defaults applied (--yes) for my-ui \u2500\u256e p.note box
  with all 10 config rows, padded to the real box width of 44 cols
- Phase headers [1/4]..[4/4] with bold titles and dim subtitles
- \u25c7 task completions (clack's submit symbol) under each phase
- Final \u2713 my-ui created \u2500\u256e summary p.note (62 cols) with cd /
  pnpm dev / Registry URL / Build / Add commands
- Close with \u2514  my-ui ready with Next.js + Fumadocs in 4.2s \ud83c\udf89

Box geometry (body width, title \u2500\u256e bleed of +2 cols, bottom \u251c\u2500\u256f
of -4 cols) was measured directly from the captured TUI rather than
guessed, so rows, title row, and bottom edge all line up.

Cursor hide/show CSI escapes (\x1b[?25l / \x1b[?25h) are intentionally
omitted because ansi-to-react only handles SGR \u2014 they would render
as visible garbage.
The macbook frame was capped at 920px and the inner terminal window
at 390px, which clipped the new 62-col summary box on the right.

- Bump the macbook stage from max-w-3xl to max-w-5xl
- Bump the photo shell maxWidth from 920px to 1100px
- Raise the .macbook-window-frame cap from min(88%, 390px) to
  min(94%, 820px) so the terminal actually fills the macbook screen
- Raise .macbook-terminal max-height from 252px to 320px and the
  inline TerminalContent max-h from 214px to 260px so the full demo
  (logo + defaults box + 4 phases + summary + outro) fits without
  vertical clipping
@vercel

vercel Bot commented May 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
scn-stack Ready Ready Preview, Comment May 29, 2026 1:20am

Request Review

@github-actions github-actions Bot added docs Documentation changes ci CI/CD and workflow changes website Changes to www/ (scnstack.sh) labels May 29, 2026
@jal-co
jal-co merged commit a06d10e into main May 29, 2026
5 checks passed
@jal-co
jal-co deleted the release/v0.10.0 branch May 29, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD and workflow changes docs Documentation changes website Changes to www/ (scnstack.sh)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant