Repository navigation
fix(GenesisKit, question, claude): the hover list stays open under a resting pointer, and a decision goes to the Claude terminal in use, never to a parked one - #594
Conversation
|
🐉 eve review — ✅ APPROVE · 0 findings
run Previous runs (7)
|
|
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 8 minutes. View limit details
Comment |
There was a problem hiding this comment.
🐉 eve review — ✅ Approved
50252c0· 0 actionable findings · reviewed by codex/gpt-6.1-sol + codex/gpt-6-luna · view run ↗
Blast radius
deliverToSession(~) → 7 dependent(s) outside this PR: src/question/lib/decisions/send.ts, src/claude/commands/cmux/send.argv.test.ts, src/codex/commands/run.test.ts, +1 moreClaudeLiveSession(Δsig) → 5 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsresolveDeliveryTarget(~) → 4 dependent(s) outside this PR: src/question/lib/inbox/drafts.ts, src/question/commands/inbox.tslistClaudeLiveSessions(~) → 2 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsparseRegistryEntry(~) → 2 dependent(s) outside this PR: src/utils/claude/peer-sender.ts- 4 compiler diagnostic(s) on the PR head touch this diff
ℹ️ Claims vs diff — 5 claims could not be checked from the diff (c1, c2, c3, c4, c5).
e24272a to
b6fb43f
Compare
50252c0 to
681f0f4
Compare
Review fixes 2026-10-26 03:12 from GPT-6.1 Sol judged by Claude Opus 5.5 (fable-judge)Round 1. 0 open threads (eve 0, CodeRabbit 0). No actionable findings in the saved review bodies or PR comments; Eve approved and CodeRabbit was rate limited. Full PR self-review found 1 medium defect, fixed in a873f4451. Integration verification: not run (the lead verifies at integration). Do not infer receiver inactivity from a missing activity timestamp (self-review, no thread)
|
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
681f0f4· 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 |
ℹ️ Checks (advisory — CI is authoritative) — typecheck timed out (src/utils/tsconfig.json)
Blast radius
deliverToSession(~) → 7 dependent(s) outside this PR: src/question/lib/decisions/send.ts, src/hub/lib/composer/dispatch.ts, src/claude/commands/cmux/send.argv.test.ts, +1 moreClaudeLiveSession(Δsig) → 5 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsresolveDeliveryTarget(~) → 4 dependent(s) outside this PR: src/question/lib/inbox/drafts.ts, src/question/commands/inbox.tslistClaudeLiveSessions(~) → 2 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsparseRegistryEntry(~) → 2 dependent(s) outside this PR: src/utils/claude/peer-sender.ts- 4 compiler diagnostic(s) on the PR head touch this diff
ℹ️ Claims vs diff — Claim c5 'TypeScript type-checking completed with exit 0, the listed Bun tests passed 261 with 0 fa…' is not supported: The impact context reports type-check timed out for src/utils/tsconfig.json, contradicting the claimed completed check.
4 claims could not be checked from the diff (c1, c2, c3, c4).
b6fb43f to
cb4a002
Compare
…try is kept as evidence, so a decision answer for it is refused instead of falling back to typing into its terminal
681f0f4 to
a579ca7
Compare
Review fixes 2026-10-26 03:37 from GPT-6.1 Sol judged by Claude Opus 5.5 (fable-judge)Round 2. 1 unresolved thread (eve 1, CodeRabbit 0). The expanded finding is labelled Medium by its reviewer. 1 fixed locally, 0 rejected. Fixed in a579ca7; the lead ran the tests and committed. Preserve parked-session evidence to prevent terminal fallback (eve-bot-lovinka)
Threads: t1 accepted |
There was a problem hiding this comment.
🐉 eve review — ✅ Approved
a579ca7· 0 actionable findings · reviewed by find codex/gpt-6.1-sol + codex/gpt-6-luna, verify codex/gpt-6-luna · view run ↗
ℹ️ This pass reviewed the full PR diff: the incremental delta since
681f0f4bwas unusable after a base-branch merge saturated GitHub's compare API (300+ files, 292 of them merge noise, list truncated).
Blast radius
deliverToSession(~) → 7 dependent(s) outside this PR: src/question/lib/decisions/send.ts, src/claude/commands/cmux/send.argv.test.ts, src/hub/lib/composer/dispatch.ts, +1 moreClaudeLiveSession(Δsig) → 5 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsresolveDeliveryTarget(~) → 4 dependent(s) outside this PR: src/question/lib/inbox/drafts.ts, src/question/commands/inbox.tslistClaudeLiveSessions(~) → 2 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsparseRegistryEntry(~) → 2 dependent(s) outside this PR: src/utils/claude/peer-sender.ts- 4 compiler diagnostic(s) on the PR head touch this diff
ℹ️ Claims vs diff — 5 claims could not be checked from the diff (c1, c2, c3, c4, c5).
7d6c1da to
dfd5ec5
Compare
…try is kept as evidence, so a decision answer for it is refused instead of falling back to typing into its terminal
a579ca7 to
05c48cc
Compare
There was a problem hiding this comment.
🐉 eve review — 🟡 Review comments
05c48cc· 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
deliverToSession(~) → 7 dependent(s) outside this PR: src/question/lib/decisions/send.ts, src/hub/lib/composer/dispatch.ts, src/codex/commands/run.test.ts, +1 moreClaudeLiveSession(Δsig) → 5 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsmouseEntered(~) → 5 dependent(s) outside this PR: src/macos/GenesisKit/Tests/GenesisKitTests/InstantTooltipTests.swift, src/macos/GenesisKit/Sources/GenesisKit/Style/InstantTooltip.swift, src/macos/GenesisKit/Sources/GenesisKit/Markdown/Views/MarkdownHoverPreview.swift, +2 moremouseExited(~) → 5 dependent(s) outside this PR: src/macos/GenesisKit/Tests/GenesisKitTests/InstantTooltipTests.swift, src/macos/GenesisKit/Tests/GenesisKitTests/EdgePanelGeometryTests.swift, src/macos/GenesisKit/Sources/GenesisKit/Style/InstantTooltip.swift, +2 moreresolveDeliveryTarget(~) → 4 dependent(s) outside this PR: src/question/lib/inbox/drafts.ts, src/question/commands/inbox.tsviewWillMove(+) → 3 dependent(s) outside this PR: src/macos/GenesisKit/Sources/GenesisKit/Style/InstantTooltip.swift, src/macos/GenesisKit/Sources/GenesisKit/Markdown/Views/MarkdownHoverPreview.swift, src/macos/GenesisKit/Sources/GenesisKit/Markdown/Window/MarkdownLayout.swiftlistClaudeLiveSessions(~) → 2 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsparseRegistryEntry(~) → 2 dependent(s) outside this PR: src/utils/claude/peer-sender.tscheckIgnoredExit(+) → 1 dependent(s) outside this PR: src/macos/GenesisKit/Tests/GenesisKitTests/EdgePanelGeometryTests.swift- +1 more changed symbol(s) with outside dependents
- 4 compiler diagnostic(s) on the PR head touch this diff (graph truncated)
Not line-anchorable (review without the full diff context)
- 🟡 Medium
src/macos/GenesisKit/Sources/GenesisKit/Window/EdgePanelController.swift:97· confidence 82/100 — Enable mouse-move delivery for the ignored-exit watcher: The recovery path relies on a local.mouseMovedmonitor after AppKit has already consumed the tracking-area exit, but this panel never enablesacceptsMouseMovedEvents(and its tracking area requests only enter/exit). AppKit does not normally deliver mouse-move events to such a window, and the global monitor excludes events destined for this application. If the pointer stays inside for the 250 ms recheck and then leaves into another GenesisTools window without dragging, neither monitor is guaranteed to run, leavingignoredExitPendingand the host's pointer-inside state stuck true. Enable mouse-move delivery while watching (and restore it on cleanup), or use a tracking mechanism that requests movement explicitly. The existing geometry test callscheckIgnoredExit()directly, so it does not exercise this event-delivery gap.
…s and grows about once a second under a resting pointer: the edge panel takes its own transparent pixels (ignoresMouseEvents set to false), so a blank point during the grow no longer reads as the pointer leaving
…s answers in the one active last, and a tie names both processes instead of a bare refusal
…aude session parked in a background job: its socket answers but nothing reads it, so a parked registry entry is no receiver and each skip is logged
…user: faces without HangWatch, a guessed cause called fixed, whole-content measuring, audio started inside a key tap, and the Save draft chime
…onitor and HangWatch, which every face must start
…nores clicks until it has a content shape, and test pictures of SwiftUI come from the window server
… pointer (SwiftUI does not hit-test Liquid Glass), a session listed under its first prompt, and the loading on every session switch
…r said "left" with the pointer on the panel, not because of glass gaps (correction), and a burst of processes no watcher saw
…nel passing its transparent pixels to the window below (second correction)
…eiver activity
…try is kept as evidence, so a decision answer for it is refused instead of falling back to typing into its terminal
229218d to
b4368ba
Compare
There was a problem hiding this comment.
🐉 eve review — ✅ Approved
b4368ba· 0 actionable findings · reviewed by codex/gpt-6.1-sol + codex/gpt-6-luna · view run ↗
Blast radius
deliverToSession(~) → 7 dependent(s) outside this PR: src/question/lib/decisions/send.ts, src/hub/lib/composer/dispatch.ts, src/codex/commands/run.test.ts, +1 moreClaudeLiveSession(Δsig) → 5 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsresolveDeliveryTarget(~) → 4 dependent(s) outside this PR: src/question/lib/inbox/drafts.ts, src/question/commands/inbox.tslistClaudeLiveSessions(~) → 2 dependent(s) outside this PR: src/ai/lib/agent-message/delivery.tsparseRegistryEntry(~) → 2 dependent(s) outside this PR: src/utils/claude/peer-sender.ts- 4 compiler diagnostic(s) on the PR head touch this diff
Stacked on #582 (
feat/2026-10-25-widget-followups). The hover-list and decision-delivery commits that stayed on the unified branch after the split, ported onto the reviewed widget code.What it changes
ignoresMouseEvents = false), so a blank point during the grow is not read as the pointer leaving.updatedAtis read for that.What was left out, and why
resend-answersand queued-send code.gotchas.mdstay out: the Clicky branch carries them.Checks
tsc --noEmit: exit 0.bun scripts/test.ts src/question/lib/decisions/store.test.ts src/hub/lib/composer/outbox.test.ts src/ai/lib/agent-message/delivery.test.ts: 261 pass, 0 fail.swift build --package-path src/macos/GenesisKit: complete.swift test --filter EdgePanel: 25 tests, 0 failures.check-commits.ts: 9 commits, 0 to fix. Personal-data probe: no matches.