Changelog

What we shipped.

helleze's own changelog, generated by helleze on every deploy.

This is the initial public release of helleze — a tool that turns git commits into human-readable changelogs. The release covers everything from the proof-of-concept through the full working system: the core LLM engine, a Cloudflare Workers service with Stripe-gated monetization, a CLI published to npm, a managed LLM proxy for keyless generation, an embeddable changelog fragment, a delightful clack-powered interactive UX, and a deploy-time integration that publishes changelogs automatically. The product was also renamed from logpost to helleze and now dogfoods its own changelog at /changelog.

New

  • Shared core engine with provider auto-detection and SHA groundingIntroduced the @helleze/core package in a Bun workspace alongside cli/ and evals/. The engine auto-detects the AI provider, calls generateObject with the versioned Release schema, enforces SHA grounding in code, and retries once if grounding fails. Default model is Sonnet 4.6; RECOMMENDED_MODELS lists the latest per provider. b9a502f
  • Cloudflare Workers service: projects, releases, changelog rendering, and Stripe monetizationDeployed a Hono-on-Workers backend backed by D1. Covers project creation (GitHub visibility check, API key minting with SHA-256 hash), release upsert, and public read endpoints — changelog.json, .html, .rss, and per-version URLs — with SSR, JSON-LD, and robots.txt configured so SEO accrues to the customer's domain. Free tier gates to one public repo; paid upgrades flow through Stripe checkout and an idempotent webhook. Includes key rotation, project deletion, and a bun:sqlite test harness. c5f514a 601effe
  • helleze CLI: init, release, and project managementPublished a standalone npm package with init (parses slug from git remote, creates project, saves key) and release (resolves baseline from ledger/--since/tag, fetches the server prompt with a bundled fallback, generates locally via the core engine, and publishes with --dry-run support). Also includes status, delete, key-rotate, and billing commands. Native keys go direct; OpenRouter + --model reaches any model. 0725039
  • Managed LLM proxy: generate changelogs without supplying your own API keyUsers without an LLM key can now route generation through the service's /v1/llm proxy, which injects helleze's OpenRouter key (Pro-gated). The proxy pins the system prompt, Release schema, model, and token caps, and enforces per-project rate-limit/quota via an llm_usage table — so a leaked LOGPOST_KEY can only generate changelogs, not make arbitrary LLM calls. BYO key mode is unchanged. The engine also gains adaptive diffs: when commits are too thin, it flags them via needsDiff, the CLI fetches just those diffs, and generation reruns. 5d97de4
  • Embeddable changelog fragment for consumer templatesGET /:owner/:repo/changelog.embed.html now returns a bare content fragment (no html/head/style wrapper) with namespaced .logpost-* CSS classes and inline JSON-LD, so teams can drop the fragment into their own page without style conflicts. The full-page changelog is unchanged. b299919
  • helleze's own changelog is served at /changelog via the real consumer embed pathThe /changelog page on helleze.com now renders by calling the same embed fragment that any customer would use, sharing Head/Nav/Footer components with the landing page. A Changelog link was added to the nav and footer. Generation uses the published npx helleze CLI. ca7ec30 d8707cd
  • urls command lists all public read endpointsA new urls command (no network or key required) prints every public read URL for a project — html, json, rss, and embed. The primary URL is also surfaced in the status command output. 3a7cad8

Improved

  • Renamed from logpost to hellezebreakingAll package names, the CLI command, domains, config and env var names, the embed pagination header (now X-Helleze-Next), and CSS hooks have been updated to helleze. The service now points at a fresh helleze D1 database. 2a87b81
  • Delightful interactive CLI with clack UX and smart first-run baselineThe CLI now uses @clack/prompts for intro/outro, spinners, selects, and confirms. TTY detection keeps CI and deploy pipelines plain and non-interactive. On first run, the baseline defaults to the full commit history with an interactive picker to narrow it — no --since flag required. A generate-then-publish split means the LLM runs once and the user confirms before anything is sent. 4fbbc15 0e044cb
  • Landing page typography and hero copy updatedHeading letter-spacing and line-height were tightened for better readability. Nav links were removed from the landing header, leaving only the CTA. The hero headline was updated to lead with shipping fast and keeping users informed. 2767bdb cf0140c

Fixed

  • Stripe webhook hardened and changelog pagination fixedThe Stripe webhook now fails closed when the signing secret is empty. Public changelog pagination switched to a composite (created_at, rowid) keyset cursor so releases sharing a millisecond timestamp are no longer silently dropped. Category labels and order were hoisted into core, and constant-time key comparison was consolidated into one shared helper. 8ea2763
  • release exits cleanly with no new commitsPreviously, running helleze release when nothing had changed since the last release threw an error and exited 1, breaking any deploy/CI pipeline that called it unconditionally. It now exits 0 with an 'up to date' message, making it safe to wire into every deploy without a guard. 077eaa2