Skip to content

Stabilize Context Panel runtime validation #65

@cbusillo

Description

@cbusillo

Objective

Make runtime validation trustworthy before any provider or UI fixes continue. The foreground app, WidgetKit extension, and refresh agent must be proven to come from the intended bundle root before behavior is judged.

Finish Line

A repeatable validation pass records app process path, widget registration path, refresh-agent executable path, bundle hashes, entitlements, provisioning profile names, and active storage roots, and reports mixed runtime as blocked instead of fixed.

Current Status

State: Active
Next action: Launch only the intended signed /Applications/Context Panel.app when ready to judge app UI; do not judge Settings while no foreground app is active.
Blocked by: Dirty tree triage (#66) before building or installing another candidate.
Last verified: 2026-05-12

Evidence captured:

  • Branch: fix/widget-refresh-regression at a2173352a7161effdb69012175f5d5eddd2413c6, with broad dirty state.
  • Foreground app process: none currently active.
  • Widget extension process: /Applications/Context Panel.app/Contents/PlugIns/ContextPanelWidgetExtension.appex/....
  • Widget registration: /Applications/Context Panel.app/Contents/PlugIns/ContextPanelWidgetExtension.appex.
  • Refresh agent process: /Applications/Context Panel.app/Contents/Library/LoginItems/ContextPanelRefreshAgent.app/....
  • Installed app hash: 0178a68f95a10427b7019bd47d6fe5d6c62cad12168ffe399b1dc0e2cb93f5e6.
  • Installed app entitlements: sandbox true, app groups include group.com.shinycomputers.contextpanel and MM5YXC7T6E.group.com.shinycomputers.contextpanel, user-selected read-only true, app-scope bookmarks true.
  • Embedded profiles: app Context Panel Mac App Store Profile New, widget Context Panel Widget Mac App Store Profile New, refresh agent Context Panel Refresh Agent Mac App Store Profile.
  • Active storage roots exist in Application Support, app group, and widget container mirror.
  • Current snapshots match across the three roots and still show duplicate logical OpenAI/Anthropic identities plus Gemini failure: The file couldn’t be opened.

Current interpretation:

  • The runtime is not actively mixed right now because no foreground app is running, and widget/agent both point to /Applications.
  • App UI behavior is not currently validated because no foreground app process is active.
  • Provider/storage behavior remains blocked by dirty-tree triage and snapshot/account dedupe.

Scope

  • In: Process/path/hash/entitlement/profile/storage inventory and stop conditions for mixed runtimes.
  • Out: Provider code, UI restoration, or snapshot migrations.

Acceptance Criteria

  • DerivedData app plus /Applications widget/login item is detected as mixed runtime.
  • Signed dogfood validation uses one intended /Applications bundle root.
  • Debug/Xcode validation uses a single coherent debug runtime or is explicitly marked as debug-only.
  • Validation output includes all storage roots and the current snapshot savedAt.

Relationships

Sub-issue of #64. Blocks provider/UI readiness work.

Validation

Use the AGENTS.md minimum runtime evidence commands and record output summary in the issue.

Decisions

Mixed runtime is a blocker, not background noise.

Open Questions

Should we add a script for the runtime evidence commands after the manual pass is stable?

Metadata

Metadata

Assignees

No one assigned

    Labels

    planDurable planning issueplan:activeCurrent active plan

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions