Skip to content

feat(console): What's new — a user-facing feed generated from the changelog (v0.433.0) - #806

Merged
vikasprogrammer merged 1 commit into
mainfrom
feat/whats-new
Sep 10, 2026
Merged

feat(console): What's new — a user-facing feed generated from the changelog (v0.433.0)#806
vikasprogrammer merged 1 commit into
mainfrom
feat/whats-new

Conversation

@vikasprogrammer

Copy link
Copy Markdown
Owner

Adds a user-facing What's new feed, generated from CHANGELOG.md (option B). The changelog is written for the people building Agentric. People using it need one sentence of "you can now …" and a place to try it.

How it works

  • Opting in. A changelog entry joins the feed with a **For users:** line as the last line of its bullet, or **For admins:** for owner/admin-only features. Untagged entries never appear.
  • Parsing. src/edge/whats-new.ts reads CHANGELOG.md once per process; the file only changes on deploy. A tag runs to the end of its bullet. Entries under Unreleased never show. A missing file just means an empty feed.
  • Console. A What's new link sits under the sidebar version and opens a dialog grouped by release. It has "New" highlights and an unread badge per member. A console link inside an entry, e.g. [Open Tasks](#/tasks), is its "try it" and closes the dialog.
  • Unread rule. Each member's last-opened version is stored in settings (whats_new_seen:<member>). Anything released after it counts as new. Someone who has never opened it sees the last 14 days as new, not the whole history.
  • API. GET /api/whats-new filters admin entries by role. POST /api/whats-new/seen marks the feed read.
  • Backfill. v0.430.0–v0.432.0 have their tags, and the convention is added to CLAUDE.md → Versioning.

One source of truth: a feature can't reach the feed without a changelog entry, and the feed can't drift from what shipped.

Verification

  • New scripts/whats-new-test.cjs (16 checks) covers the parse, the unseen rule, the real changelog, and the per-member marker. It's added to test:governance, which passes along with typecheck and the web build.
  • Checked visually on a scratch tenant: badge (7), the dialog, and the badge clearing after it's opened.

⚠ This touches server code, so it needs a server restart.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HA3jrB7rENd2zadgxP56Lu

…ngelog (v0.433.0)

Changelog entries a user would notice now carry a `**For users:**` (or `**For admins:**`) line; the
server parses those into a What's new dialog under the sidebar version, grouped by release, with a
per-member unread badge (last-opened version in settings; first visit = last 14 days), role-scoped admin
entries, and console links as the "try it". Unreleased never shows. Backfilled v0.430.0-v0.432.0;
convention documented in CLAUDE.md -> Versioning.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HA3jrB7rENd2zadgxP56Lu
@vikasprogrammer
vikasprogrammer merged commit f92def6 into main Sep 10, 2026
1 check passed
@vikasprogrammer
vikasprogrammer deleted the feat/whats-new branch September 10, 2026 11:24
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.

1 participant