feat(client): widget "what's new" changelog popup (#31) - #74
Open
MateuszPaulski wants to merge 3 commits into
Open
feat(client): widget "what's new" changelog popup (#31)#74MateuszPaulski wants to merge 3 commits into
MateuszPaulski wants to merge 3 commits into
Conversation
Curated release highlights now surface in-widget: a Radix dialog auto-shows once per new version (gated on identity, silent seed for first-time users) with a manual re-open button in the panel header. Last-seen version persists through the client settings store as a new registered whatsNewSeen entry. Closes #31. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
🤖 airside-agent review —
Implementation is spec-faithful and well-tested (settings-store persistence, identity-gated once-per-version auto-show, patch changeset). The high (merge main + re-apply onto updated files) is being auto-fixed. |
# Conflicts: # packages/client/src/app/app.tsx # packages/client/src/marker/MarkerLayer.test.tsx # packages/client/src/panel/PanelDrawer.test.tsx # packages/client/src/panel/PanelListView.tsx
Merge origin/main into agent/issue-31 (icon-set unification, branding footer), replace the raw sparkle glyph with a SparkleIcon in the widget icon set, and tighten the whats-new-seen setting validate to version-shaped strings. Airside-Agent-Fix: true Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
🤖 airside-agent review — |
MateuszPaulski
marked this pull request as ready for review
July 3, 2026 17:03
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the in-widget "what's new" release-highlights popup from the approved spec (v2) on #31.
What changed
packages/client/src/whatsnew/slicehighlights.ts— hand-curated, newest-firstHIGHLIGHTScontent file (the first entry's version doubles as the "latest announced version"; no build-time version constant).version.ts— pure helpers: numeric-tuplecompareVersions(so0.9.1<0.10.0),entriesNewerThan,latestVersion.storage.ts—whatsNewSeenSetting: SettingEntry<string | null>(on-disk keyairside:whats-new-seen), registered in the client settings store per ADR-0046/0047 — no hand-rolledlocalStorageaccess.WhatsNewModal.tsx— presentational Radix dialog mirroringIdentityModal(portal container,air:tokens, sharedButton, "Got it" dismiss).WhatsNewProvider.tsx— owns the auto-show-once-per-version flow, gated on identity-present:nulllast-seen seeds silently (no popup for brand-new reviewers), older last-seen opens with every newer entry, newest first, dismissal persists the latest version. ExposesuseWhatsNew()for manual re-open (single latest entry).WhatsNewProvidermounts insideIdentityProviderinapp.tsx; a✦ghost icon button (aria-label="What's new") joins the panel-list header next to the close button.whatsNewSeenregistration inENTRIES; the genericstore.test.tssuite (read-once count, defaults, round-trip, malformed-JSON, wrong-type) now covers the new key.HIGHLIGHTSinvariants (non-empty, unique strictly-descending versions, well-formed entries), modal rendering/dismiss, and provider auto-show/seed/persist/once-only/identity-gate behaviour (each case seedslocalStoragethenresetSettings()per the ADR-0046 read-once rule).RELEASING.mdgains the "prepend aHIGHLIGHTSentry when cutting a user-facing release" step, with a pointer fromCLAUDE.md's Changesets section.@airnauts/airside-clientpatch.Verification
pnpm lint(biome ci) — exit 0.pnpm --filter @airnauts/airside-client test— 58 files, 405 tests passed.pnpm --filter @airnauts/airside-client build— tsup +tsc --build --forcegreen.Closes #31
🤖 Draft opened by airside-agent — automated build of #31.