diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index e42ea2b5..017d6393 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -96,10 +96,19 @@ jobs: # The ninth lane (E27 S3). Run from backend/ so it resolves exactly as the local lane does — # pyrightconfig.json's include/extraPaths are relative to the config, but the baseline is # found relative to the working directory. New errors fail; the ~200 pre-existing ones are in - # .basedpyright/baseline.json and burn down epic by epic. + # .basedpyright/baseline.json and burn down epic by epic. Matching is per (file, rule, column + # span) plus a count, so a new error of the SAME shape in a file where a sibling was just + # fixed is absorbed — burn the hot files down first. + # + # The second step is not redundant. basedpyright TIGHTENS the baseline in place when the count + # drops, with no --writebaseline, and CI throws its workspace away — so without this a + # burn-down is green here and red on the developer's `siftlode check`, which has the same + # guard. Two gates over one tree must not answer differently. - name: basedpyright run: python -m basedpyright --project pyrightconfig.json working-directory: backend + - name: basedpyright baseline is committed + run: git diff --exit-code -- backend/.basedpyright/baseline.json - name: pytest run: python -m pytest working-directory: backend diff --git a/.gitignore b/.gitignore index 4d92360b..d5349a1d 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,7 @@ backups/ Thumbs.db .idea/ .vscode/ + +# TypeScript incremental build artifacts — machine-local, absolute-path-bearing, and no gate lane +# reads or regenerates them, so a committed one is stale from the commit that adds it. +*.tsbuildinfo