Changelog

What we shipped.

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

This release ships the core leter product: a D1-backed state layer, a remote MCP server with eight tools, an X publish worker with DO-alarm scheduling, a server-rendered web queue, and a scene capture command that proposes narratives and uploads screenshots to R2. It also adds an audience community-sweep command, a distribution eval harness that reproduces the taste-judge convergence, and a rewritten marketing landing page. Product specs, memory files, and planning docs are consolidated in the repo.

New

  • Leter state core: D1 schema and models for file-backed memoryMigration 0005_leter_state.sql introduces the full leter schema: people, voice_rules, profiles, moments, slots, versions, judgments, channels, queue, and ledger. Models follow the src/models pattern; tests cover CAS conflict, hold/publish flow, and streak semantics. 2d1ebc6
  • Remote MCP server with eight person-tokened toolsPOST /mcp speaks stateless JSON-RPC over HTTP — onboarding is claude mcp add --transport http. Eight tools are wired to the state core: slot_open, slot_get, draft_revise, judgment_post, queue_list, memory_get, memory_teach, and brief_get. Every call authenticates a person via hashed bearer token so judgments and edits land attributed. e5cfaa0 dcecd9b d9b20be
  • X publish worker and DO-alarm schedulerPOST /v1/leter/queue/:id/publish posts text-native with a trailing URL split into a reply; POST /schedule sets publish_at and arms the PublishScheduler Durable Object alarm, which publishes due items and re-arms for the next. Held and already-published items are refused; the route returns 503 without credentials. 3a696e5
  • Server-rendered web queue with traffic-light verdictsA Hono page at /leter shows first sentences with amber/green/red dots for your verdict, ready, and held states. Clicking a post opens keep/edit/kill controls with a note field; queued items support lift-hold and send-back (which reopens the slot and logs the retraction as taste data). Auth uses the same personal token as MCP, set once as a cookie at /leter/login. f6bede0 fdca491
  • Leter skill v0: draft, refine, teach, posted, status, resetThe skill/ directory ships the first leter skill bundle — six commands documented in skill/reference/ and routed through skill/SKILL.md. Every product onboards through the setup flow; human input is interview answers and judgments, never file edits. 7a39c24 05f5f32 bf830e0 1457623
  • /leter scene capture command (C1): propose, iterate, screenshot, uploadThe scene skill command mines the codebase and leter's product memory to propose a narrative, iterates until agreement, then captures screenshots and uploads changed PNGs to R2 when a project key is configured. The flow stops at mine checkpoint, interview, and judgment gates — capture refuses to run with empty interview or judgments. The agreed one-line story persists in scenes.json. ce21385 a27add8 f8fb7bb 25fc114 927f7ce 72f47ea 27d6d10 196b436
  • Hosted captures: R2 store, upload and manifest routes, immutable serveMigration 0007_captures.sql adds content-addressed capture history in R2 and D1. Project-key-authed PNG upload includes two-level dedup (unchanged slot is a no-op; known bytes under a new slot skip the R2 put), a latest-per-slot manifest for the CLI's prior-hash diff, and public immutable serving at /c/:sha. 1052c9b
  • /leter audience community sweep across HN, Reddit, and XThe audience command sweeps Hacker News, Reddit, and X for relevant community signals and returns ranked, cited findings. It started as a POC and is now a first-class leter skill command, with the engine bundled in skill/scripts/audience/ and documented at skill/reference/audience.md. 2773c7b 624dfe0

Improved

  • Marketing landing page rewrittenThe landing page copy and layout in src/views/landing.tsx and src/views/layout.tsx have been rewritten based on a new brief and page spec in marketing/helleze/. The RSS feed link is preserved and the apex test tracks the updated copy. f40fec3 e8e8479
  • Changelog section labels carry their category as a CSS classEach section label in the changelog view now includes its category as a CSS class (issue #12), making it easier to style or filter entries by type. de12ce8

Fixed

  • Login form preserves the destination through manual sign-inThe /leter/login form now carries the intended destination so users land where they were headed after authenticating, rather than at a fixed post-login page. fdca491