Open Status panel + Dev Overlay alongside HUD on app start #89

Closed
opened 2026-05-12 19:35:03 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-05-12 19:35:03 +00:00 (Migrated from github.com)

Summary

When Jarvis launches, the HUD panel, the Status panel (Round 3), and the Dev Overlay (just built — diagnostics + log stream) should all open visible by default — not require user clicks through menu-bar context menus to surface them.

User's exact request (2026-05-12): "create a ticket to have jarvis open with its status and dev debug dialogs open when it starts along with the hud"

Why

  • The Dev Overlay's 4 tabs (Agent / Tools / Health / Logs) are the operator's primary observability surface. Burying them behind the menu-bar context menu means the user has to remember + click before seeing what the system is doing.
  • The Status panel re-probes on open — having it visible at start means the boot-health is immediately verifiable instead of being a passive log line.
  • The HUD currently auto-shows; pairing it with the two diagnostic surfaces is consistent.
  • Once visible, both surfaces are non-modal and can be dismissed; user opt-out is a minor menu toggle.

Scope

  • In AppDelegate.applicationDidFinishLaunching (or at the tail of the install chain, after bootHealthTask completes the first sweep), call:
    • openStatusPanel() — already exists; lazy-creates + present().
    • openDevOverlay() — already exists post-Dev-Overlay-agent commits.
    • (HUD already auto-opens.)
  • All three should be non-overlapping screen-position-wise. Suggest: HUD center, Status panel top-right, Dev Overlay bottom-right. Use NSPanel.setFrame(_:display:) with explicit positions or NSWindow.cascadeTopLeft(from:) from the HUD's top-left.
  • The Dev Overlay panel should default to the Logs tab so the user sees activity stream immediately.
  • Behavior should be controlled by a config-store flag — PerTurnSnapshot.startupSurfaces — with values like .minimal (HUD only) / .diagnostic (all three). Default .diagnostic for dev builds, .minimal for production builds (gated on CONFIGURATION macro or Info.plist key).

Acceptance criteria

  • Cold-launch of the Debug build → HUD + Status panel + Dev Overlay all visible.
  • Three panels are non-overlapping on a single 1440×900 display.
  • Dev Overlay opens to the Logs tab by default.
  • Config flag startupSurfaces documented; toggling to .minimal shows HUD only.
  • Status panel + Dev Overlay can still be re-opened via menu-bar items if user closes them.

Constraints

  • All three panels are non-modal — `scripts/check-no-modal-presentation.sh` must stay green.
  • Status panel's `.task { await model.reprobe() }` modifier already handles re-probe on appearance — no extra wiring needed.
  • Dev Overlay's log streaming starts immediately on subscribe — no special boot-time wiring needed.
  • The 4 tabs in Dev Overlay are already there; `.defaultTab(.logs)` may need to be added to `DevOverlayView` if it doesn't already support an initial-tab override.

Source

  • User request 2026-05-12 verbatim.
  • Round 3 `StatusPanel`: `App/MenuBar/StatusPanel.swift` (commit `67748f5`).
  • Dev Overlay: `packages/DevOverlay/` + `App/AppDelegate.swift` (commits `50c2783` + `6ea2852`).

Cross-references

  • Round 3 Status panel issue: (the panel itself, not yet filed as a feature issue — exists in code)
  • Dev Overlay completion: commits `8d94c1c` / `50c2783` / `6ea2852`
## Summary When Jarvis launches, the **HUD panel**, the **Status panel** (Round 3), and the **Dev Overlay** (just built — diagnostics + log stream) should all open visible by default — not require user clicks through menu-bar context menus to surface them. User's exact request (2026-05-12): *"create a ticket to have jarvis open with its status and dev debug dialogs open when it starts along with the hud"* ## Why - The Dev Overlay's 4 tabs (Agent / Tools / Health / Logs) are the operator's primary observability surface. Burying them behind the menu-bar context menu means the user has to remember + click before seeing what the system is doing. - The Status panel re-probes on open — having it visible at start means the boot-health is immediately verifiable instead of being a passive log line. - The HUD currently auto-shows; pairing it with the two diagnostic surfaces is consistent. - Once visible, both surfaces are non-modal and can be dismissed; user opt-out is a minor menu toggle. ## Scope - In `AppDelegate.applicationDidFinishLaunching` (or at the tail of the install chain, after `bootHealthTask` completes the first sweep), call: - `openStatusPanel()` — already exists; lazy-creates + `present()`. - `openDevOverlay()` — already exists post-Dev-Overlay-agent commits. - (HUD already auto-opens.) - All three should be **non-overlapping** screen-position-wise. Suggest: HUD center, Status panel top-right, Dev Overlay bottom-right. Use `NSPanel.setFrame(_:display:)` with explicit positions or `NSWindow.cascadeTopLeft(from:)` from the HUD's top-left. - The Dev Overlay panel should default to the **Logs tab** so the user sees activity stream immediately. - Behavior should be controlled by a config-store flag — `PerTurnSnapshot.startupSurfaces` — with values like `.minimal` (HUD only) / `.diagnostic` (all three). Default `.diagnostic` for dev builds, `.minimal` for production builds (gated on `CONFIGURATION` macro or Info.plist key). ## Acceptance criteria - [ ] Cold-launch of the Debug build → HUD + Status panel + Dev Overlay all visible. - [ ] Three panels are non-overlapping on a single 1440×900 display. - [ ] Dev Overlay opens to the Logs tab by default. - [ ] Config flag `startupSurfaces` documented; toggling to `.minimal` shows HUD only. - [ ] Status panel + Dev Overlay can still be re-opened via menu-bar items if user closes them. ## Constraints - All three panels are non-modal — \`scripts/check-no-modal-presentation.sh\` must stay green. - Status panel's \`.task { await model.reprobe() }\` modifier already handles re-probe on appearance — no extra wiring needed. - Dev Overlay's log streaming starts immediately on subscribe — no special boot-time wiring needed. - The 4 tabs in Dev Overlay are already there; \`.defaultTab(.logs)\` may need to be added to \`DevOverlayView\` if it doesn't already support an initial-tab override. ## Source - User request 2026-05-12 verbatim. - Round 3 \`StatusPanel\`: \`App/MenuBar/StatusPanel.swift\` (commit \`67748f5\`). - Dev Overlay: \`packages/DevOverlay/\` + \`App/AppDelegate.swift\` (commits \`50c2783\` + \`6ea2852\`). ## Cross-references - Round 3 Status panel issue: (the panel itself, not yet filed as a feature issue — exists in code) - Dev Overlay completion: commits \`8d94c1c\` / \`50c2783\` / \`6ea2852\`
KofTwentyTwo commented 2026-05-13 11:52:17 +00:00 (Migrated from github.com)

Closed by v0.1 cluster merges on 2026-05-13. Develop now at a8c7f1a0.

Closed by v0.1 cluster merges on 2026-05-13. Develop now at `a8c7f1a0`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#89