personal memory agent

fix(maint): keep invalid-UTF-8 schedules.json out of the 009 retry loop master

json.loads decodes bytes before parsing, so an invalid-UTF-8 config/schedules.json raised UnicodeDecodeError rather than JSONDecodeError and escaped run_migration uncaught. With MAINT_RETRY_ON_NEXT_START the task would then re-fail on every supervisor start, appending an attempt block to its state file each boot. Catch UnicodeDecodeError alongside JSONDecodeError on the read-side parse so it maps to the same "unparseable" skip reason and exits 0. Caught as an explicit tuple, not ValueError, which would over-catch MalformedDataError and steal its write-side error disposition. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>