Files
xarmian 585aa8ea2a ci: shard internal/server's race tests 3 ways per driver, with a coverage guard (TASK-4141) (#2352)
* ci: shard internal/server's race tests 3 ways per driver, with a coverage guard (TASK-4141)

On main, internal/server under -race took 2658.534s on PostgreSQL and
2519.644s on SQLite, against the 2700s per-binary timeout, and #2348 and
#2350 timed out there. No test or family is more than ~4% of its wall
and ~88% of it is serial tests, so it is split rather than tuned:

- internal/server leaves both ./... race steps and runs as
  go-server-race (SQLite) and go-server-race-postgres, 3 shards each,
  each on its own runner with the same 45m -timeout.
- scripts/test-shard.sh assigns the sorted `go test -list` names by
  index mod N and prints an anchored -run regex per shard.
- go-server-shards fails the workflow unless Go's own -run matcher reads
  the shard regexes as pairwise disjoint and together equal to the full
  -list of the same binary (GO_RACE_FLAGS, now defined once).

Claude-Session: https://claude.ai/code/session_01Pa22hHHb1atXYf1JmBYE1v

* fix(ci): test-shard check stops on a shard_regex die instead of passing (TASK-4141 r1 Q2)

The check loop passed shard_regex as a substitution argument, and set -e
does not apply there. -list "" selects nothing, so an empty shard read as
0 tests and the guard reported disjoint and complete with exit 0. The
regex is now its own assignment, which propagates the exit status.

Claude-Session: https://claude.ai/code/session_01Pa22hHHb1atXYf1JmBYE1v

* ci: assert the race steps exclude exactly internal/server (TASK-4141 r2 spot mutant)

Both ./... race steps now fail unless the exclusion removed exactly one
package and it is internal/server. An unanchored grep would also have
dropped internal/server/render from every race run, and a path move would
exclude nothing; neither turned anything red. The step comments no longer
claim the grep can only fail safe.

Claude-Session: https://claude.ai/code/session_01Pa22hHHb1atXYf1JmBYE1v
2026-10-30 18:16:37 -04:00
..