Repository navigation
refactor(tools): every .genesis-tools path comes from one storage root helper, plus small tool, doctor, github and ax-tool fixes - #537
Conversation
|
🐉 eve review — 💬 COMMENT · 0 findings
run Previous runs (10)
|
|
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 30 minutes. View limit details
📝 Walkthrough
Merge Risk: 🔵 Low · up to
|
|
@coderabbitai full review |
|
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
2c9029b· 4 actionable findings ·⚠️ degraded pass · reviewed by codex/gpt-6.1-sol · view run ↗
| Severity | Count |
|---|---|
| 🟡 Medium | 3 |
| 🔵 Low | 1 |
⚠️ Degraded pass — this review did not run at full strength; treat the verdict as partial.
- typecheck timed out (tsconfig.json): out of memory, then its 6144 MiB retry ran out of time
Blast radius
mouse(~) → 5 dependent(s) outside this PR: src/macos/GenesisKit/Tests/GenesisKitTests/InstantTooltipTests.swift, src/macos/GenesisKit/Tests/GenesisKitTests/Markdown/MarkdownDocumentWindowTests.swift, src/macos/GenesisKit/Tests/GenesisKitTests/Markdown/MarkdownSplitViewTests.swift, +2 moresessionChangesPath(~) → 5 dependent(s) outside this PR: src/agents/commands/changes.ts, src/agents/lib/hooks/diff/run.ts, src/agents/lib/changes/log.test.ts, +2 moreComputerUse(~) → 4 dependent(s) outside this PR: src/control/lib/capture-native.ts, src/control/lib/computer-use/session.test.ts, src/control/scripts/task-benchmark.ts, +1 moredrag(+) → 4 dependent(s) outside this PR: src/macos/GenesisKit/Tests/GenesisKitTests/Markdown/MarkdownDocumentWindowTests.swift, src/macos/GenesisKit/Tests/GenesisKitTests/Markdown/MarkdownPathsTests.swift, src/macos/GenesisKit/Tests/GenesisKitTests/Markdown/MarkdownPageExtrasWebTests.swift, +1 moreobjectsDir(~) → 3 dependent(s) outside this PR: src/agents/commands/changes.ts, src/agents/lib/changes/tool-changes.ts, src/agents/lib/changes/diff.tscreateBaselineBenchmarkVariant(~) → 2 dependent(s) outside this PR: scripts/history/benchmark.test.ts, scripts/history/compact-candidate.test.tsinstallLaunchd(~) → 2 dependent(s) outside this PR: src/daemon/commands/install.ts, src/daemon/interactive/menu.tscomputerSchemas(~) → 1 dependent(s) outside this PR: src/control/lib/computer-use/session.test.tsComputerUse.drag(~) → 1 dependent(s) outside this PR: src/control/scripts/live-smoke.ts- +3 more changed symbol(s) with outside dependents
- 1 compiler diagnostic(s) on the PR head touch this diff (graph truncated)
ℹ️ Claims vs diff — 8 claims could not be checked from the diff (c1, c2, c3, c4, c5, c6, c7, c8).
…ied reason and the test asks isProcessAlive, as the pid-safety guard requires
Review fixes 2026-10-16 20:35 from GPT-6.1 Sol judged by Claude Opus 5.5Round 1, including late eve threads. 4 open threads (eve 4, CodeRabbit 0, humans 0), plus 2 independent lead findings. Across 6 items: 3 fixed, 0 rejected, 2 already done, 1 no-change because its implementation is outside this PR's scope. Lead verified 884b862 with 129 passing tests and both old-code plants failing. Followup security tests pass; full typecheck retains three out-of-scope hub errors. allow_outside was rejected before reaching native drag (lead, no thread)
Stopping a compound build left its child running (lead, no thread)
Host-specific Developer Tools finding reused a machine-wide cache (eve-bot-lovinka)
Outside drag destination rejected before native flag forwarding (eve-bot-lovinka)
Compound build children outlived cancellation (eve-bot-lovinka)
Documented hand-joined storage-path lint rule is missing (eve-bot-lovinka)
Threads: t1 accepted · t2 already done · t3 already done · t4 no change needed |
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
ec49101· 4 actionable findings · reviewed by codex/gpt-6.1-sol · view run ↗
| Severity | Count |
|---|---|
| 🟡 Medium | 3 |
| 🔵 Low | 1 |
Blast radius
drag(+) → 5 dependent(s) outside this PR: native/ax-tool/SnapshotSupport/UserTakeover.swift, native/ax-tool/SnapshotSupport/CursorFeedback.swift, native/ax-tool/Sources/main.swift, +2 moremouse(~) → 4 dependent(s) outside this PR: native/ax-tool/Sources/main.swift, native/ax-tool/Sources/commands/SnapshotRestore.swift, native/ax-tool/Sources/commands/Input.swift, +1 moreinstallLaunchd(~) → 2 dependent(s) outside this PR: src/daemon/interactive/menu.ts, src/daemon/commands/install.tsgeneratePlist(~) → 1 dependent(s) outside this PR: src/daemon/lib/launchd.test.ts- 1 compiler diagnostic(s) on the PR head touch this diff (graph truncated)
ℹ️ Claims vs diff — 3 claims could not be checked from the diff (c1, c2, c3).
Review fixes 2026-10-16 21:06 from GPT-6.1 Sol judged by Claude Opus 5.5Round 2. 4 open threads (eve 4, CodeRabbit 0, humans 0): 2 fixed, 0 rejected, 0 already done, 2 no-change because their shared lint-rule implementation is outside the PR scope. All expanded threads, review bodies and bot PR comments were read from the lead's exports. No additional unthreaded findings were present. Tests: 21 pass; typecheck, Biome, lint-rules, tool-command checks including strict, PID safety and logging guards all pass. Documented hand-joined storage-path lint rule is absent (eve-bot-lovinka)
Interactive and kept-worktree builds bypassed Ctrl-C cleanup (eve-bot-lovinka)
Partial TCC reads could falsely report Developer Tools off (eve-bot-lovinka)
Storage helper documents lint enforcement that is not implemented (eve-bot-lovinka)
Commits this round
Threads: t1 no change needed · t2 accepted · t3 accepted · t4 no change needed |
There was a problem hiding this comment.
🐉 eve review — ✅ Approved
045449f· 0 actionable findings · reviewed by codex/gpt-6.1-sol · view run ↗
Blast radius
registerSourcemapsCommands(~) → 1 dependent(s) outside this PR: src/ts/index.ts
|
@coderabbitai full review |
|
|
@coderabbitai full review |
|
Review fixes 2026-10-17 02:24 from GPT-6.1 Sol judged by Claude Opus 5.5Round 3. 0 open threads (eve 0, CodeRabbit 0, humans 0). All lead-exported threads, review bodies and PR comments read; no additional unthreaded findings. Two explicitly requested findings fixed: the independent cancellation/cache defect and the missing storage-path enforcement carried over from rounds 1 and 2. No rejected, already-done or no-change items. Commit 81b0c27. Full seven-file test run: 159 pass, 5 documented sandbox failures. Final focused regressions: 7 pass. Typecheck, Biome, lint-rules and all push guards pass. A cancelled build exiting zero was stored as complete (independent-review (GPT-6.1 Sol), no thread)
Implement the promised storage-root enforcement carried over from rounds 1 and 2 (eve-bot-lovinka, no thread)
Commits this round
|
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
81b0c27· 1 actionable finding · reviewed by codex/gpt-6.1-sol · view run ↗
| Severity | Count |
|---|---|
| 🟡 Medium | 1 |
Blast radius
mouse(~) → 5 dependent(s) outside this PR: src/macos/GenesisKit/Sources/GenesisKit/Window/WindowTitlebar.swift, src/macos/GenesisKit/Sources/GenesisKit/Style/TooltipGuard.swift, src/macos/GenesisKit/Sources/GenesisKit/Sessions/Code/SessionCodeBlock.swift, +2 moresessionChangesPath(~) → 5 dependent(s) outside this PR: src/agents/commands/changes.ts, src/agents/lib/changes/tool-changes.ts, src/agents/lib/changes/log.test.ts, +2 moredrag(+) → 3 dependent(s) outside this PR: src/macos/GenesisKit/Sources/GenesisKit/Window/WindowTitlebar.swift, src/macos/GenesisKit/Sources/GenesisKit/Window/ScreenVerticalDragArea.swift, src/macos/GenesisKit/Sources/GenesisKit/Controls/MenuButton.swiftobjectsDir(~) → 3 dependent(s) outside this PR: src/agents/commands/changes.ts, src/agents/lib/changes/tool-changes.ts, src/agents/lib/changes/diff.tscreateBaselineBenchmarkVariant(~) → 2 dependent(s) outside this PR: scripts/history/benchmark.test.ts, scripts/history/compact-candidate.test.tsinstallLaunchd(~) → 2 dependent(s) outside this PR: src/daemon/commands/install.ts, src/daemon/interactive/menu.tsgeneratePlist(~) → 1 dependent(s) outside this PR: src/daemon/lib/launchd.test.tsretireNativeCache(~) → 1 dependent(s) outside this PR: scripts/history/retire-native-cache.test.ts- 1 compiler diagnostic(s) on the PR head touch this diff (graph truncated)
ℹ️ Claims vs diff — 4 claims could not be checked from the diff (c1, c2, c3, c8).
|
@coderabbitai full review |
|
Review fixes 2026-10-17 03:11 from GPT-6.1 Sol judged by Claude Opus 5.5Round 4. 1 open thread (eve 1, CodeRabbit 0, humans 0). All exported threads, review bodies and PR comments read; no additional unanswered unthreaded findings. 1 fixed, 0 rejected, 0 already done. Commit 1a4aeed. Swift source and regressions written but not built or tested, per the standing instruction. Typecheck, lint-rules, normal/strict tool-command checks, PID safety, logging and the native-platform manifest test pass. Mouse-up retained stale window-local coordinates after the posted drag moved the window (eve-bot-lovinka)
Commits this round
Threads: t1 accepted |
There was a problem hiding this comment.
🐉 eve review — ✅ Approved
1a4aeed· 0 actionable findings · reviewed by codex/gpt-6.1-sol · view run ↗
f051cd7 to
b19049c
Compare
…ied reason and the test asks isProcessAlive, as the pid-safety guard requires
Review fixes 2026-10-17 07:13 from GPT-6.1 Sol judged by Claude Opus 5.5Round 9. 3 open threads (eve 2, CodeRabbit 1, humans 0), plus 1 unthreaded CodeRabbit outside-diff finding. 4 fixed, 0 rejected, 0 already done. Review bodies and PR comments were checked; other substantive findings were answered in previous rounds. Repair command does not quote the checkout path (CR)
Failed worktree removals exit successfully (eve-bot-lovinka)
Prune uses an idle-age check from before lock acquisition (eve-bot-lovinka)
ComputerUse drops final drag window bounds (CR, no thread)
Commits this round
Threads: t1 accepted · t2 accepted · t3 accepted |
f5779a7 to
4bdfa90
Compare
…when it ends, even on failure or Ctrl-C, and cache prune --all removes one unused for an hour, so installed dependencies stop piling up in ~/.genesis-tools (cherry picked from commit 2e6b9cc)
…on a display canvas, so it no longer reads as "the whole screen is recorded" With --canvas display the pulsing border went around the whole display, though the movie holds only the selected windows on a display-sized canvas. Martin saw it around his whole screen during a PostureWatcher test recording (2026-10-14). The border now follows the selected windows' bounds in both canvas modes. Verified live: a 4 s recording of one Genesis window (--window-ids, crop) drew the border around that window only, and the movie is 880x1520, the window alone. (cherry picked from commit 11d20e5)
…tree, it prints the repair command, because a fresh install's native binaries stall at macOS's first-run check (cherry picked from commit 9323dd5)
… fetch takes 8 s instead of timing out at 300 s, and passes the token through git's environment instead of its argv (cherry picked from commit c08938f)
… builds is not on the Developer Tools list
Root cause of the 2026-10-14 05:22 lockup: syspolicyd pinned a core at 100% and every new program
hung at launch until `sudo killall syspolicyd` (06:05). cmux, which hosts every Claude session on
this Mac, was not on System Settings > Privacy & Security > Developer Tools (only Terminal.app was),
so macOS ran Gatekeeper/XProtect on every new program started under it. Build outputs are adhoc,
linker-signed and carry com.apple.provenance; a 157 MB xctest bundle gets a full scan on its first
launch. At 05:22 several fresh build outputs (one GenesisPackageTests run, two ClickyTests runs and
a GenesisTools.app rebuild) landed at once on top of a steady ~30 launches/s from status lines and
hooks; the callers timed out ("Unable to initialize qtn_proc: 3", "dispatch_mig_server returned
268435459", 11,258 in that minute) and syspolicyd never recovered.
Measured: a fresh binary's first launch took 260-400 ms under cmux and 22 ms under Terminal.app.
cmux.app is now on the list (auth_value 2 in the system TCC.db); it counts once cmux restarts.
The check finds the outermost .app up the process tree (the responsible app, not the GenesisTools.app
executable the tools wrapper runs through), reads its bundle id, and looks it up in both TCC
databases (System Settings writes the system one). Unreadable databases skip the check.
Tests: src/doctor/__tests__/developer-tools.test.ts (3); bun test src/doctor 182 pass; tsgo clean.
Live: "Developer Tools for cmux: on" after the change, "off" before.
(cherry picked from commit fa2076f)
…he process layer instead of one ps per level, which no-process-tool-spawn refused (cherry picked from commit d3168f0)
…genesisToolsDir, or genesisToolsDirIn for a sandbox home), and lint-rules fails a hand-joined one, because 109 call sites each decided the root themselves (cherry picked from commit 4b0b83f)
…ped, because timerStart, snapshot, the stack opt-outs and opts still exist (cherry picked from commit 5ee443d)
… dashboard bundle imports it since the .genesis-tools path sweep (cherry picked from commit 5e9659a)
…dow by its body or past its edge in the background, locating each step against the window's current frame, because a drag that moved its own window was refused and the posture message could only be tested by taking the user's pointer (cherry picked from commit ddb67c1)
…use its per-command flag list refused the new flag as unknown before anything ran (cherry picked from commit 338ff73)
…ied reason and the test asks isProcessAlive, as the pid-safety guard requires
… discovery errors
30492ad to
b992e7a
Compare
There was a problem hiding this comment.
🐉 eve review — Coverage incomplete · approval withheld
b992e7a· 0 actionable findings ·⚠️ degraded pass · reviewed by codex/gpt-6.1-sol · view run ↗
⚠️ Degraded pass — this review did not run at full strength; treat the verdict as partial.
- deep find submitted 0 findings after 15 step(s) on 135 files with no cross-check leg (leg B off) — the empty result is uncorroborated
Blast radius
mouse(~) → 7 dependent(s) outside this PR: src/macos/GenesisTools/Sources/BrowserURL.swift, src/macos/GenesisTools/Sources/Capsule.swift, src/macos/GenesisTools/Sources/RouteApproval.swift, +4 moresessionChangesPath(~) → 5 dependent(s) outside this PR: src/agents/lib/changes/log.test.ts, src/agents/lib/changes/blame.ts, src/agents/lib/changes/tool-changes.ts, +2 moredrag(+) → 4 dependent(s) outside this PR: src/macos/GenesisTools/Sources/Notify.swift, src/macos/GenesisTools/Sources/App/Views.swift, src/macos/GenesisTools/Sources/Hub/HubPRs.swift, +1 moreobjectsDir(~) → 3 dependent(s) outside this PR: src/agents/lib/changes/tool-changes.ts, src/agents/lib/changes/diff.ts, src/agents/commands/changes.tscreateBaselineBenchmarkVariant(~) → 2 dependent(s) outside this PR: scripts/history/benchmark.test.ts, scripts/history/compact-candidate.test.tsinstallLaunchd(~) → 2 dependent(s) outside this PR: src/daemon/commands/install.ts, src/daemon/interactive/menu.tsgeneratePlist(~) → 1 dependent(s) outside this PR: src/daemon/lib/launchd.test.tsretireNativeCache(~) → 1 dependent(s) outside this PR: scripts/history/retire-native-cache.test.ts- 1 compiler diagnostic(s) on the PR head touch this diff (graph truncated)
ℹ️ Claims vs diff — 8 claims could not be checked from the diff (c1, c2, c3, c4, c5, c6, c7, c8).
Part 3 of 5 of the split of the unified branch #507 (cut at 189a4569d). Each split PR holds whole commits from unified, picked in their original order; commits already in another open PR (#524, #527, #528, #530, #531, #532) stay there.
Base
Stacked on #533 (
feat/2026-10-15-cmux-find-links-and-hub-commit-links) as a precaution: both changesrc/question/lib/decisions/read.ts. Merge after it.Commits (11)
118 files changed, 1488 insertions(+), 597 deletions(-).
4b0b83f leaves four files at master's version (
lint-rules.ts,lint-rules.test.ts,retire-native-cache.ts,scanner.ts): master allows the hand-joined path there on purpose.Review
Review rounds run with GPT-6.1 Sol: one worker fixes the bot threads, a second one reviews the code independently, and Claude judges each round before its push.
Summary by CodeRabbit