Skip to content

feat(widgets): refresh from the desktop, extra large, author hints - #92

Merged
jiunbae merged 1 commit into
mainfrom
feat/desktop-widget-refresh
Oct 7, 2026
Merged

jiunbae merged 1 commit into
mainfrom
feat/desktop-widget-refresh

Conversation

@jiunbae

@jiunbae jiunbae commented Oct 7, 2026

Copy link
Copy Markdown
Member

From the follow-up list after 0.6.0 (items 1–3).

Refresh button

  • RefreshShelfWidgetIntent (a Button(intent:)) writes requests/<id>.json in the App Group and posts a Darwin notification. A sandboxed extension may post one, and it carries no data.
  • SharedShelfPublisher reads the requests, refreshes only widgets that are offered, and publishes and reloads the answer at once, past the 30 s and 15 min throttles. A request with no answer lapses after 60 s.
  • The widget shows a refreshing symbol while a request is pending. Its timeline drops that state when the request lapses.

Extra large: .systemExtraLarge, with two-column list and meters and a 6×2 grid.

Shelf tip: a dismissible banner explains how to add BarShelf to the desktop. It shows only in builds that have the App Group.

Author hints

  • Manifest desktop.style and desktop.offer, decoded leniently.
  • UINode desktopRole: item, title, subtitle, value, detail, status, and hide. Hidden nodes are scrubbed before sharing.
  • Documented in WIDGET-SPEC and AGENTS.md §8B, and the embedded agent spec is regenerated.

Also

  • Korean strings for everything new.
  • RELEASE_NOTES rewritten for 0.6.1.

Checks: 572 tests, 0 failures. New tests cover marked items, hide and scrub, author roles, the lenient manifest block, request lapse and path safety, and publisher answer and clear. Both extension schemes build, and previews were rendered at every size.

🤖 Generated with Claude Code

- A ↻ button on medium and larger desktop widgets (the stale clock in
  the small size) asks BarShelf to refresh that widget now. The request
  goes through a file in the App Group plus a Darwin notification; the
  answer is published and reloaded at once, past the usual throttles,
  and a request with no answer lapses after a minute.
- An extra-large size: two-column lists and meters, a 6×2 grid.
- A dismissible tip on the Shelf about desktop widgets.
- Widget authors can set desktop.style and desktop.offer in the
  manifest, and desktopRole (item, title, subtitle, value, detail,
  status, hide) on any node; hidden nodes are not shared at all.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@jiunbae
jiunbae merged commit 80deb71 into main Oct 7, 2026
1 check passed
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