A lifecycle reliability patch for long-lived tray sessions. Origin refreshes
now complete through one coordinated flight, and repositories created after
startup join the catalog when the panel is summoned.
Fixed
- New repositories no longer disappear during long tray sessions.
Summoning the panel now rechecks IDE hints and learned workspace roots, so a
sibling repository created after startup joins the catalog without restarting
gitwink. Refreshes run off the UI thread and share a 60-second cooldown plus
a single-flight lease, preserving the app's no-idle-polling contract. - Reliable explicit origin refresh. Panel-open auto-fetch and the ↻ action
now share one common-Git-directory flight instead of racing the same remote
refs, including linked worktrees reached through macOS filesystem aliases.
Manual refresh applies one 30-second end-to-end deadline, transient external
ref locks receive bounded retries, and timeout cleanup terminates Git's
helper process tree. Flight lifecycle events keep the UI busy until the real
completion, deterministically refresh commits and refs, expose accessible
status text, and record only non-secret timing diagnostics.