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
{{ message }}
Repository navigation
perf(test): storage suite takes ~90–105s, dominated by a few heavy IO tests #1940
What happened packages/storage runs 1026 tests in 88.3s locally (104.7s in an earlier run). Wall time is dominated by a handful of tests doing real fs/SQLite/git work. Slowest, from --test-reporter=spec timings on latest main (76e1476):
Additional context
Heavy tests come from the storage SQLite migration + WAL backup series (#1570/#1694/#1706) and the Git workspace service (#1742). Options: gate the fs/git/sqlite-heavy cases behind the existing MAKA_STORAGE_STRESS env hook (already wired in CI), reduce payload/iteration sizes, or split a fast unit tier from the integration tier.
restores a writable Automation authority after a real legacy cutover — 27.1s
test no longer exists
cleans interrupted backup and restore staging — 16.3s
test no longer exists
Git workspace service (describe) — 34.5s
11.4s
SQLite Artifact store — 20.4s
7.1s
What resolved it: #1994 (refactor(storage): make SQLite the sole operational authority) deleted the legacy WAL-backup/cutover series that owned the three worst offenders — the migration those tests exercised is complete, so the fs/SQLite/git-heavy payload work went with it. The remaining real-process-crash and process-lock cases are already behind MAKA_STORAGE_STRESS (12 skips locally; CI enables the flag selectively in run affected standard workspace tests), which is exactly the gating this issue proposed.
Slowest remaining items for the record: Git workspace service 11.4s, SQLite Artifact store 7.1s, runtime policy stores 4.8s — none anywhere near critical-path territory at a 12s total.
Environment: macOS 26.6, Node v22.17.0. (One local-only failure, unrelated to timing: top-level package import does not initialize node:sqlite asserts empty stderr, and Node 22.x prints the SQLite ExperimentalWarning; Node 24 on CI does not.)
Closing as completed. The current-main remeasurement in the previous comment puts the storage suite at about 12.4 seconds rather than 88–105 seconds; #1994 removed the obsolete migration paths that dominated the original measurement, and the remaining stress cases are gated. A new regression should be filed from a fresh baseline.
Activity
UncertaintyDeterminesYou4ndMe commentedon Aug 4, 2026
Re-timed on latest
main(62024d1, cleannpm install+ rootnpm run build:test): the problem this issue measured no longer exists. Recommend closing.rejects missing/changed/extra/symlinked backup payloads— 32.3srestores a writable Automation authority after a real legacy cutover— 27.1scleans interrupted backup and restore staging— 16.3sWhat resolved it: #1994 (
refactor(storage): make SQLite the sole operational authority) deleted the legacy WAL-backup/cutover series that owned the three worst offenders — the migration those tests exercised is complete, so the fs/SQLite/git-heavy payload work went with it. The remaining real-process-crash and process-lock cases are already behindMAKA_STORAGE_STRESS(12 skips locally; CI enables the flag selectively inrun affected standard workspace tests), which is exactly the gating this issue proposed.Slowest remaining items for the record: Git workspace service 11.4s, SQLite Artifact store 7.1s, runtime policy stores 4.8s — none anywhere near critical-path territory at a 12s total.
Environment: macOS 26.6, Node v22.17.0. (One local-only failure, unrelated to timing:
top-level package import does not initialize node:sqliteasserts empty stderr, and Node 22.x prints the SQLite ExperimentalWarning; Node 24 on CI does not.)Astro-Han commentedon Aug 8, 2026
Closing as completed. The current-main remeasurement in the previous comment puts the storage suite at about 12.4 seconds rather than 88–105 seconds; #1994 removed the obsolete migration paths that dominated the original measurement, and the remaining stress cases are gated. A new regression should be filed from a fresh baseline.