Skip to content

agent-widgets 0.2.0

Choose a tag to compare

@Surdeddd Surdeddd released this 14 Sep 14:14
· 37 commits to main since this release

The loop is closed: an agent now sees its widget on the real desktop and compares it with the preview, and a ship nobody has seen is no longer a success. A free Apple ID is enough to sign.

Upgrade: git pull && make install, then aw geometry --measure once to read the real widget sizes of this Mac.

Behavior change: aw ship without a desktop screenshot now exits 5 (SHIP_UNVERIFIED) instead of 0. Put the dev slot on the desktop once; aw slot waits for it.

What's new

  • aw slot waits until the person puts the dev slot on the desktop, then measures sizes and captures it (SLOT_TIMEOUT).
  • A free Apple ID is enough for signing: docs and SIGNING_MISSING now say so; aw preview needs no certificate. Verified: this repository is built, signed and installed with a free Personal Team.
  • aw ship without a desktop screenshot no longer reports success: exit 5, stage unverified (SHIP_UNVERIFIED).
  • aw geometry [--measure] reads the real desktop widget sizes of this Mac from the system log; previews, the sheet and window matching use them, and aw doctor warns while they are unknown (GEOMETRY_UNKNOWN).
  • The dev slot shot is compared with the preview cell of the sample it shows: aw shot and aw ship write <id>-<family>-compare.png (preview, desktop, outlines) and warns with SHOT_MISMATCH when the size or the outlines differ.
  • Feeds are never silent: exit 127 / 126 become FEED_COMMAND_NOT_FOUND with the missing program and the feed PATH, the status keeps the exit code and the last stderr lines, and aw doctor reports every feed — ok N min ago, the last failure, or STALE_DATA after three missed runs.
  • Feed secrets live in aw.local.json: a feed gets only the names it lists in feed.secrets, a missing value stops it with FEED_SECRET_MISSING, and aw doctor warns when secrets are in the shared aw.json (SECRETS_IN_CONFIG).
  • A feed widget previewed with --lang ru and no samples/default.ru.json warns with SAMPLE_NOT_LOCALIZED, with the command that writes that sample.
  • aw dev and aw_dev wait until the desktop has redrawn the dev slot, then capture it and compare it with the preview; before, a shot right after aw dev could still show the previous widget.
  • The app window edits widget settings: every widget whose feed takes settings gets a form (text, numbers, toggles, JSON for the rest); edits are saved in the App Group, win over widget.json in AW_SETTINGS and make the feed run at the next tick. The kit is unchanged.
  • Templates lay out extraLarge: metric, chart, list, ring, card, image and timer get two-column dashboards (the timer also a large layout with an elapsed ring), and new widgets from them include the family. The template test renders all of them.
  • The preview matrix gets a Tahoe clear row: default is also rendered as dark clear glass in the accented rendering mode, where color disappears.