You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(system): represent the host OS as a typed Os enum with per-executor support gates
Replaces the loose `os` + `os_version` strings on `SystemInfo` with an `Os`
enum (`SupportedLinux { distro, version }`, `OtherLinux`, `MacOs`,
`Unsupported`) and the global `SUPPORTED_SYSTEMS` tuple lookup with a single
`match` in `check_system`. Adds `Executor::support_level(&Os)` so each executor
declares its own OS matrix: `run_executor` bails on `Unsupported`, skips
`setup()` on `RequiresManualSetup`, and runs it on `FullySupported`. This
removes the dirty macOS best-effort branch previously living in `check.rs`.
The wire format is preserved: `Os` serializes via an `OsSerde` shim and is
flattened into `SystemInfo` via `#[serde(flatten)]`, so the JSON sent to the
API is byte-identical (verified by the existing upload-metadata snapshot
tests).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments