Repository navigation
agent-widgets 0.2.0
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 slotwaits 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_MISSINGnow say so;aw previewneeds no certificate. Verified: this repository is built, signed and installed with a free Personal Team. aw shipwithout a desktop screenshot no longer reports success: exit 5, stageunverified(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, andaw doctorwarns while they are unknown (GEOMETRY_UNKNOWN).- The dev slot shot is compared with the preview cell of the sample it shows:
aw shotandaw shipwrite<id>-<family>-compare.png(preview, desktop, outlines) and warns withSHOT_MISMATCHwhen the size or the outlines differ. - Feeds are never silent: exit 127 / 126 become
FEED_COMMAND_NOT_FOUNDwith the missing program and the feed PATH, the status keeps the exit code and the last stderr lines, andaw doctorreports every feed — ok N min ago, the last failure, orSTALE_DATAafter three missed runs. - Feed secrets live in
aw.local.json: a feed gets only the names it lists infeed.secrets, a missing value stops it withFEED_SECRET_MISSING, andaw doctorwarns whensecretsare in the sharedaw.json(SECRETS_IN_CONFIG). - A feed widget previewed with
--lang ruand nosamples/default.ru.jsonwarns withSAMPLE_NOT_LOCALIZED, with the command that writes that sample. aw devandaw_devwait until the desktop has redrawn the dev slot, then capture it and compare it with the preview; before, a shot right afteraw devcould still show the previous widget.- The app window edits widget settings: every widget whose feed takes
settingsgets a form (text, numbers, toggles, JSON for the rest); edits are saved in the App Group, win over widget.json inAW_SETTINGSand 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:
defaultis also rendered as dark clear glass in the accented rendering mode, where color disappears.