Repository navigation
feat(GenesisKit, GenesisHub, hub): a burst of child processes is logged as spawn.storm and shown by the dev monitor - #593
Conversation
|
🐉 eve review — ✅ APPROVE · 1 finding
run Previous runs (5)
|
|
Warning Review limit reachedEnable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Next included review available in 16 minutes. View limit details
Finishing Touches
Comment |
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
1053e0a· 4 actionable findings · reviewed by find codex/gpt-6.1-sol + codex/gpt-6-luna, verify codex/gpt-6-luna · view run ↗
| Severity | Count |
|---|---|
| 🟡 Medium | 2 |
| 🔵 Low | 2 |
ℹ️ Checks (advisory — CI is authoritative) — typecheck timed out in the check queue: no check slot freed within 600 s; lint timed out in the check queue: no check slot freed within 600 s
Blast radius
label(+) → 2 dependent(s) outside this PR: src/browser-router/native/Router.swift, src/macos/GenesisKit/Tests/GenesisKitTests/KitChartsTests.swiftregisterDevCommands(~) → 1 dependent(s) outside this PR: src/hub/cli.tsstarted(+) → 1 dependent(s) outside this PR: src/macos/GenesisKit/Tests/GenesisKitTests/SessionTranscriptClientTests.swift- graph truncated by caps — dependents above are a lower bound
ℹ️ Claims vs diff — 5 claims could not be checked from the diff (c1, c3, c4, c5, c6).
Review fixes 2026-10-26 02:22 from GPT-6.1 Sol judged by Claude Opus 5.5 (fable-judge)Round 1. 4 open threads (eve 4, CodeRabbit 0). 4 fixed, 0 rejected, 0 already done. Threads t3 and t4 describe the same bare-HEAD defect. Full review of the nine-file PR found no additional defect. All four changed files were already in the PR. Verification: not run (the lead verifies at integration). No further tests, builds or typechecks were run after the lead's instruction; the commit hook's automatic typecheck was interrupted immediately. Biome and the repository rule and tool-command guards passed. The single commit used a command-local hooks path retaining commit-message validation while excluding the pre-commit typecheck. Preserve source identity and storm endings when batching (eve-bot-lovinka)
Deduplicate hang announcements by full path (eve-bot-lovinka)
Exclude bare HEAD from storm labels (eve-bot-lovinka)
Group bare HEAD with other cat-file revisions (eve-bot-lovinka)
Threads: t1 accepted · t2 accepted · t3 accepted · t4 accepted |
There was a problem hiding this comment.
🐉 eve review — ✅ Approved
b149550· 0 actionable findings · reviewed by codex/gpt-6.1-sol · view run ↗
Blast radius
runDevMonitor(~) → 2 dependent(s) outside this PR: src/hub/commands/dev.ts
b149550 to
0a23d0f
Compare
7fb1542 to
9d74bca
Compare
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
0a23d0f· 2 actionable findings · reviewed by find codex/gpt-6.1-sol + codex/gpt-6-luna, verify codex/gpt-6-luna · view run ↗
| Severity | Count |
|---|---|
| 🟡 Medium | 2 |
ℹ️ Checks (advisory — CI is authoritative) — typecheck timed out (tsconfig.json): out of memory, then its 6144 MiB retry ran out of time
Blast radius
label(+) → 5 dependent(s) outside this PR: src/browser-router/native/Router.swift, src/macos/GenesisTools/Tests/ReviewKeysTests.swift, src/macos/GenesisTools/Tests/DaemonSettingsTests.swift, +2 morestarted(+) → 2 dependent(s) outside this PR: src/macos/GenesisTools/Package.swift, src/macos/GenesisTools/Tests/HubNavigationTests.swiftregisterDevCommands(~) → 1 dependent(s) outside this PR: src/hub/cli.ts- graph truncated by caps — dependents above are a lower bound
0a23d0f to
b298491
Compare
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
b298491· 1 actionable finding · reviewed by find codex/gpt-6.1-sol + codex/gpt-6-luna, verify codex/gpt-6-luna · view run ↗
| Severity | Count |
|---|---|
| 🟡 Medium | 1 |
Blast radius
started(+) → 6 dependent(s) outside this PR: native/ax-tool/Tests/RecorderExecutableTests.swift, native/ax-tool/Tests/ContextMenuTests.swift, native/ax-tool/Tests/SnapshotDispatchTests.swift, +3 morelabel(+) → 4 dependent(s) outside this PR: native/ax-tool/Tests/ObservedTreeBuilderTests.swift, native/ax-tool/Tests/SnapshotSelectionTests.swift, native/ax-tool/Tests/IdentifierTargetTests.swift, +1 moreregisterDevCommands(~) → 1 dependent(s) outside this PR: src/hub/cli.ts- graph truncated by caps — dependents above are a lower bound
ℹ️ Claims vs diff — 6 claims could not be checked from the diff (c1, c2, c3, c4, c5, c6).
…ts its end without more starts, a captured child that ends early or fails to launch keeps the meter balanced, and helper perf lines stay apart from their parent's
Review fixes 2026-10-26 03:49 from GPT-6.1 Sol judged by Claude Opus 5.5 (fable-judge)Round 2 at b298491. 3 unresolved threads (eve 3, CodeRabbit 0). Earlier round-1 findings were already addressed and need no further reply. Added regressions in existing test files; no new test file or dependency. No checks, formatting commands, staging or commits were run. Fixed in c04a9a8; the lead ran the tests and committed. Fixed in c04a9a8; the lead ran the tests and committed. Report sustained concurrency storms on process finishes (eve-bot-lovinka)
Stop counting captured children when they exit (eve-bot-lovinka)
Retain helper process tags in displayed and batched perf events (eve-bot-lovinka)
Threads: t1 accepted · t2 accepted · t3 accepted |
There was a problem hiding this comment.
🐉 eve review — ✅ Approved
c04a9a8· 0 actionable findings · reviewed by codex/gpt-6.1-sol + codex/gpt-6-luna · view run ↗
Blast radius
runCapturing(+) → 7 dependent(s) outside this PR: src/macos/GenesisTools/Sources/Parts/Hub/Review/PRRefs.swift, src/macos/GenesisTools/Sources/Parts/Hub/Hub/HubWorktrees.swift, src/macos/GenesisTools/Sources/Host/App/ChildEnvironment.swift, +4 more- graph truncated by caps — dependents above are a lower bound
…ed as spawn.storm (24 starts in 10 s or 12 running, with the commonest commands) by GenesisKit's launchers, and tools hub dev monitor reports it and reads Genesis Markdown's perf log and hangs too
…, so the hub opening a pull request (24 starts, 5 running) is not a storm, and git's -c option stays out of the label
…ons, so git cat-file <sha> counts as git cat-file
… finds it quiet and is timed to its last start, so a 10 s burst no longer reads "over after 209 s"
…ts its end without more starts, a captured child that ends early or fails to launch keeps the meter balanced, and helper perf lines stay apart from their parent's
c04a9a8 to
421c572
Compare
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
421c572· 1 actionable finding · reviewed by find codex/gpt-6.1-sol + codex/gpt-6-luna, verify codex/gpt-6-luna · view run ↗
| Severity | Count |
|---|---|
| 🟡 Medium | 1 |
Blast radius
runCapturing(+) → 7 dependent(s) outside this PR: src/macos/GenesisKit/Sources/GenesisKitDisk/Disk/DiskSystemProbes.swift, src/macos/GenesisKit/Sources/GenesisKit/Cmux/CmuxCommandRunner.swift, src/macos/GenesisKit/Sources/GenesisKit/Diff/Provider/GenesisKitGTProvider.swift, +4 morestarted(+) → 7 dependent(s) outside this PR: src/macos/GenesisKit/Sources/GenesisKitDisk/Disk/ToolsDiskProvider.swift, src/macos/GenesisKit/Sources/GenesisKitDisk/Disk/VolumeSpace.swift, src/macos/GenesisKit/Sources/GenesisKitDisk/Disk/DiskSystemProbes.swift, +4 morelabel(+) → 6 dependent(s) outside this PR: src/macos/GenesisKit/Sources/GenesisKitOverlay/ScreenEffectView.swift, src/macos/GenesisKit/Sources/GenesisKitDisk/Disk/ToolsDiskActions.swift, src/macos/GenesisKit/Sources/GenesisKitDisk/Disk/DiskHistoryStore.swift, +3 moreregisterDevCommands(~) → 1 dependent(s) outside this PR: src/hub/cli.ts- graph truncated by caps — dependents above are a lower bound
| lastStart = now | ||
| lastReport = now | ||
| total = starts.count | ||
| counts = starts.reduce(into: [:]) { $0[$1.label, default: 0] += 1 } |
There was a problem hiding this comment.
🧹 Quality | 🟡 Medium · confidence 90/100
Include older running children in concurrency-storm command counts
A storm triggered by the running-child threshold initializes its command counts only from the last 10 seconds of starts, even though running includes older children. For example, start 15 long-lived GenesisTools agents blame children at t=0, then one git status at t=20: the resulting storm reports 16 running but identifies only git status ×1, omitting all 15 processes responsible for the concurrency. Subsequent reports never recover those labels. Track active children by label (and pass the label or an identity into finish), so concurrency-triggered storms can identify the commonest running command rather than only recent arrivals. Add a test with children whose lifetimes exceed the rolling window; the current concurrency test checks only the running count.
🧩 Analysis
Grep evidence: starts\.reduce|starts\.removeAll|running >= Self\.burstRunning
There was a problem hiding this comment.
Accepted. The follow-up will include older running children in concurrency-storm command counts. The pull request was merged after its fix rounds, so this finding waits for a follow-up, and this thread stays open until then.
Stacked on #562: adds a
stormevent kind tosrc/hub/lib/dev-monitor.tsbeside thespinkind that #562 adds.A burst of child processes is logged as
spawn.storm(40 starts in 10 s or 16 running, with the commonest command), the dev monitor shows it, its label leaves out commit ids and revisions, and a storm ends at the first quiet start or finish.Gates on this branch (clean worktree, 2026-10-25):
bun scripts/git/check-commits.ts, roottsc --noEmit, biome on the changed files, the related tests, andscripts/ci/placeholder-check.sh. Tests:src/hub/lib/dev-monitor.test.ts16 pass;swift buildof GenesisKit andswift test --filter AgentBlameModelTestspass.Split out of the unified branch (#507); each commit is a cherry-pick of its unified original.
Summary by CodeRabbit