diff --git a/Plugin/unraid/api/manual_sync.php b/Plugin/unraid/api/manual_sync.php index b7fbcbf..c203ffc 100644 --- a/Plugin/unraid/api/manual_sync.php +++ b/Plugin/unraid/api/manual_sync.php @@ -8,10 +8,17 @@ // OPERATIONAL MODEL // Entirely outside the profile system. The scheduled tiers sync configured shares with // configured profiles; this is for the one-off move that does not belong in a conf file — -// seeding a new host, recovering a share, copying something once. Nothing here is recorded, -// scheduled, or repeated. +// seeding a new host, recovering a share, copying something once. Nothing here is scheduled. // -// Six actions on one URL, in the order the panel uses them: hosts, browse, browse_local, +// The last ten are remembered, which the header used to deny. "One-off" turned out to describe +// how a transfer is scheduled, not how often it is run: seeding a host and recovering a share +// are done repeatedly, and retyping two paths and nine checkboxes correctly each time is where +// the mistakes come from. Pinned entries are exempt from the rotation, because the command used +// twice a year is both the most valuable to keep and the first that ten ordinary runs evict. +// Recording is a record of intent only — nothing re-runs itself, and loading an entry fills the +// form and stops. +// +// Eight actions on one URL, in the order the panel uses them: recent, hosts, browse, browse_local, // run, poll, stop. run returns a token immediately and the transfer continues detached; poll // reads its log until a sentinel appears; stop kills it. // @@ -105,6 +112,9 @@ // [user=root] [bw_limit=] [use_key=0|1] [flags=] // GET ?action=poll&token= output so far, and whether it finished // POST action=stop token= cancel a running transfer +// GET ?action=recent the remembered syncs, pinned first then newest +// POST action=recent_update id= op=rename|sticky|delete +// [name=