Skip to content

feat(changelog): readable terminal output and a clear project baseline - #82

Merged
psmyrdek merged 2 commits into
masterfrom
feat/changelog-pretty-output
Oct 6, 2026
Merged

psmyrdek merged 2 commits into
masterfrom
feat/changelog-pretty-output

Conversation

@psmyrdek

@psmyrdek psmyrdek commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

10x changelog printed each release's raw markdown (### Highlights, **\name`**`). It now renders from the entry's structured fields and states where the project stands.

  • Releases: vX.Y.Z — <date>, highlights as wrapped • bullets, then changed skills / prompts / rules / config templates grouped by type with a status mark (+ new, ~ changed, - removed, > renamed) and a one-line summary. Wrapping follows the terminal width (max 100 columns).
  • Header: This project is on toolkit v2.59.2 (recorded by 10x sync on 2026-10-05) — 2 newer releases: / You're up to date — no toolkit changes since then. Without a recorded version it says so and ends with: run 10x sync to record this project's toolkit version so 10x changelog shows only what changed since.
  • Safety: remote strings are passed through sanitize before reaching the terminal (the raw markdown path didn't). Colours only on an interactive stderr and respect NO_COLOR.
  • Refactor: the hand-rolled ANSI helpers move from bench to lib/format.ts (plus wrapText), shared by both commands.
  • JSON: additive only — baseline.recordedAt for a synced baseline; markdown stays in the entries for JSON consumers.

Test plan

  • bun test — 999 pass; 3 failing Stop-hook tests are the known local bash 3.2 (mapfile) failures
  • New tests: structured rendering (no ###), synced/up-to-date header, sync hint for none/applied, colours on TTY vs NO_COLOR, control-code stripping, wrapText
  • typecheck, lint, build
  • Rendered against production data (v2.59.3, v2.59.2)

🤖 Generated with Claude Code

psmyrdek and others added 2 commits October 6, 2026 09:28
Render each release from its structured fields instead of printing the
raw markdown: highlights as wrapped bullets, then changed artifacts
grouped by type with a coloured status mark and summary. Remote strings
are sanitized; colours follow NO_COLOR and stderr TTY. The header now
states the project's recorded toolkit version, and without one it says
so and explains that 10x sync starts tracking. The ANSI helpers move
from bench to lib/format for reuse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@psmyrdek
psmyrdek merged commit 1645e99 into master Oct 6, 2026
8 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