Conversation
… fix (#141), bump to 0.3.2
Codex Review — PR #147: fix: pinned panel shows all agents — preferredContentSize + minHeight (#141), v0.3.2Step 1 — Confirm the bug existedThe bug existed at line 241 of main's ClawViewApp.swift because: // BEFORE (main, line 241–245):
panel.contentViewController = NSHostingController(rootView: pinnedView)
// Fix #141: NSHostingController doesn't inherit the panel's contentRect size
// automatically — SwiftUI collapses or clips the ScrollView content without an
// explicit frame on the hosting view. Set it explicitly to match the panel size.
panel.contentViewController?.view.frame = NSRect(x: 0, y: 0, width: 320, height: 540)The Additionally, Confirmed: the bug existed. Step 2 — Root cause + fixRoot cause: The change prevents it by:
Step 3 — Trace every changed code path3a.
|
| Case | Behaviour | Verdict |
|---|---|---|
| 0 agents, initial load (spinner) | Frame 540pt, spinner at top — pre-existing layout, not introduced here | ✅ |
| 0 agents, idle state | Frame 540pt, idle view at top — same as above | ✅ |
| 1 agent | minHeight:440 pads to 440pt, card at top | ✅ |
| 7 agents | maxHeight:540 drives frame, all cards fit, scroll available | ✅ |
| Popover mode (any count) | Unchanged — 540pt proposed overrides min | ✅ |
Minor observation: with 0–1 agents the panel has visual dead space below. This is cosmetically non-ideal but matches the popover's fixed-height behaviour and is pre-existing for popover mode. Not a blocker.
Step 6 — Diff scope
| File | Change | Verdict |
|---|---|---|
ClawViewApp.swift |
pin() only: preferredContentSize + hosting controller wiring |
✅ Scoped |
PopoverView.swift |
Line 235: minHeight:440 added |
✅ Scoped |
project.pbxproj |
Version 0.3.1→0.3.2, build 4→5 (Debug + Release) | ✅ Expected |
Info.plist |
Version string 0.3.1→0.3.2 | ✅ Consistent |
No unrelated changes. Diff is clean.
✅ REVIEW PASSED — preferredContentSize correctly bridges AppKit→SwiftUI layout, minHeight:440 provides a floor without regressing popover mode (540pt proposed makes it inert), all agent-count edge cases handled, diff scoped to #141 only.
🧪 Krill Murray QA — PR #147Status server: Restarted Live API check: Result: Assertion: expected 7 agents → got 7 agents ✅ Status server is live, API is healthy, agent data is correct. ✅ QA PASSED — live API returns all 7 agents, status server running on port 7317 |
Fixes #141. Two changes:
Also bumps version to 0.3.2.