mirror of
https://github.com/stablyai/orca.git
synced 2026-10-24 16:03:45 +00:00
The base-baseline lookup swallowed every git error, not just a missing file, so any failure to read the base blob left TYPECHECK_BASELINE_BASE_PATH unset and the job passed printing "no drift". That guard is the only thing that catches a raised baseline: the drift check compares the tree against its own committed baseline, so growth is invisible to it. Ask tree objects whether the base has the file, which also distinguishes a genuine absence from a failure, and hard-fail on anything else. The lookup is a bare assignment because inside `[ -n "$(...)" ]` the exit status is discarded, which would have preserved the same fail-open. Each branch now says which one it took, since the guard is silently inactive on any PR that introduces a baseline. Run mobile checks on src/shared changes. Mobile's program pulls 300+ files from there and its baseline now matches on message text, so a desktop-side rename can reword a mobile diagnostic and redden that job for an unrelated author, on a PR that never triggers it. Scan the whole tree for extension shadowing rather than a list of roots that drifts from the tsconfig globs, covering repo-root and mobile/scripts files it previously missed, plus .mts/.cts pairs. State what the e2e ratchet does and does not catch: identity excludes line and column, so a new error is caught unless it exactly matches one fixed in the same file.