Sub-issue of #16464 (the shard-timings refresh workflow), filed from #16466's delivery (session session_019RfFHiRCSs3JXLK4cwcfox, branch claude/issue-16466-repo-conformance-task). No assignee; the parent's owner decides when. Blocked-by: #16466 (the split has to land first for the task to exist in any run summary).
What #16466 changes that this generator does not yet see
Six heavy packages (spec, core, types, runtime, objectql, rest) split their suite into two turbo tasks, test and test:repo (the repo-scanning tests, hashed on the wide inputs). Both tasks appear in every turbo run --summarize run summary as separate task records for the same package.
samplesFromSummary() in scripts/measure-test-shard-timings.mjs keeps only task.task === 'test' (line 13 of the function on branch claude/issue-16464-shard-timings-refresh-workflow at 4fe161b41a, unchanged in that respect from main). So the next refresh records each split package's weight from its test task alone and silently drops the test:repo seconds.
Measured size of the drop (local, shared box, the #16466 table)
@objectstack/spec: the 26 repo-project files are 53.9s of a 736.7s full-suite sum (7.3%); CI-median row today 403.65s, the Test Core floor.
@objectstack/runtime: 5.6s of 570.1s (1.0%). @objectstack/core: 2.4s of 59.7s (4.0%). @objectstack/types: 5.7s of 17.7s (32.1%). objectql and rest: 0.1% each.
Until the refresh the existing rows are right (they were measured with those files inside test); after it, spec is under-weighed by roughly an eighth, in the direction --check-drift cannot see — that mode also reads samples through the same function, so measured and predicted shrink together.
Suggested shape
Sum the execution windows of test and test:repo per package (both must be cache.status === 'MISS' and exit 0, as today; a cached or failed leg skips the package), and add a self-test case with a two-task summary. The partitioner needs no change: it weighs packages, and the shard runs both tasks for a package (ci.yml, turbo run test test:repo).
Generated by Claude Code
Generated by Claude Code
Sub-issue of #16464 (the shard-timings refresh workflow), filed from #16466's delivery (session
session_019RfFHiRCSs3JXLK4cwcfox, branchclaude/issue-16466-repo-conformance-task). No assignee; the parent's owner decides when. Blocked-by: #16466 (the split has to land first for the task to exist in any run summary).What #16466 changes that this generator does not yet see
Six heavy packages (spec, core, types, runtime, objectql, rest) split their suite into two turbo tasks,
testandtest:repo(the repo-scanning tests, hashed on the wide inputs). Both tasks appear in everyturbo run --summarizerun summary as separate task records for the same package.samplesFromSummary()inscripts/measure-test-shard-timings.mjskeeps onlytask.task === 'test'(line 13 of the function on branchclaude/issue-16464-shard-timings-refresh-workflowat4fe161b41a, unchanged in that respect frommain). So the next refresh records each split package's weight from itstesttask alone and silently drops thetest:reposeconds.Measured size of the drop (local, shared box, the #16466 table)
@objectstack/spec: the 26 repo-project files are 53.9s of a 736.7s full-suite sum (7.3%); CI-median row today 403.65s, the Test Core floor.@objectstack/runtime: 5.6s of 570.1s (1.0%).@objectstack/core: 2.4s of 59.7s (4.0%).@objectstack/types: 5.7s of 17.7s (32.1%). objectql and rest: 0.1% each.Until the refresh the existing rows are right (they were measured with those files inside
test); after it, spec is under-weighed by roughly an eighth, in the direction--check-driftcannot see — that mode also reads samples through the same function, so measured and predicted shrink together.Suggested shape
Sum the execution windows of
testandtest:repoper package (both must becache.status === 'MISS'and exit 0, as today; a cached or failed leg skips the package), and add a self-test case with a two-task summary. The partitioner needs no change: it weighs packages, and the shard runs both tasks for a package (ci.yml,turbo run test test:repo).Generated by Claude Code
Generated by Claude Code