create --type addition add: update sources — learned + pinned subnet peers tried before the release channel, `spt update source list|pin|unpin` Milestone body item (releases#331): a machine designates other subnet node(s) as sources for spt-core and adapter updates, automatically as soon as it sees a node holding newer binaries; that node joins the pool it watches. Term ruled at grill 2026-09-23 (CONTEXT.md "update source"; "upstream" retired — a peer relays the signed bytes, it is not their origin). An update source is the GitHub release channel or a subnet peer holding a newer verified set. A peer becomes a LEARNED source the first time it serves this node something newer (core, docs, bundle, or an adapter `.spt`); an operator may PIN one by hand. Order everywhere — background updater, `spt update`, `adapter add/update`: pinned → learned → other peers → release channel. `--remote` forces the release channel, `--via-subnet` forces peers only (releases#264/#322). Ask: persist the source list in the release cache (`sources.json`: node id, kind pinned|learned, last served version + time); the pump's `UpdateWorker` queries sources first; `spt update source list` prints them, `pin ` / `unpin ` edit the pinned set; `spt update status` carries a one-line `sources:` summary. Gate: unit on order + learn-on-serve; int on the two-daemon rig: B learns A after one served set and queries A first next round.