SIGN IN SIGN UP

announcement: split persistent footer from version-specific bullets

The Discord invite was previously baked into ANNOUNCEMENT_FEATURES for
v0.21.7. Splitting it into a dedicated ANNOUNCEMENT_FOOTER constant keeps
it visible in every announcement going forward without re-adding the
bullet to each release's features list. The renderer separates the footer
from the bullets with one blank line so the persistent invite stays
visually distinct from the version-specific 'what's new' bullets.

All three surfaces now share the same shape:

  ✨ Magic Context — what's new in v<VERSION>:

    • <bullet 1>
    • <bullet 2>
    ...

  Join us on Discord: https://discord.gg/F2uWxjGnU

Surface plumbing:
- shared/announcement.ts: added ANNOUNCEMENT_FOOTER export.
- plugin/rpc-handlers.ts: get-announcement now returns footer too.
- tui/data/context-db.ts: AnnouncementResponse gains footer field.
- tui/index.tsx: appends footer with blank-line separator.
- plugin/conflict-warning-hook.ts: sendStartupAnnouncement takes
  an explicit footer parameter and appends it the same way.
- index.ts: passes ANNOUNCEMENT_FOOTER through to Desktop path.
- pi-plugin/src/index.ts: composes notify message via sections array
  with the footer appended after a blank line.

ANNOUNCEMENT_VERSION is unchanged (still 0.21.7) so users who haven't
seen this announcement yet will see the new format. Users who already
dismissed v0.21.7 won't see it re-fire — that's the intended contract
for the version-keyed persistence file.
U
ualtinok committed
cbeae21b326ef5c2f92fa0571efc441ba34ecbca
Parent: ba6a334