dryos collectors

Inferred from recorded runs, not from the scheduler process — this API cannot see it. A collector the scheduler was never asked to start looks the same from here as one that died, so stalled means “no run recorded in three cadences”, not “crashed”. Running a subset is normal: scheduler.py slug slug ....

Collector State Cadence Last tick Last data Next due Recent runs
Reading run history…
promoted rows skipped — nothing new at the source failed validation — nothing promoted errored — the collector raised oldest → newest