Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ struct WorktreeInfoWatcherClient {
case setWorktrees([Worktree])
case setSelectedWorktreeID(Worktree.ID?)
case setPullRequestTrackingEnabled(Bool)
case refresh
case stop
}

Expand Down
2 changes: 1 addition & 1 deletion supacode/Commands/WorktreeCommands.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ private struct WorktreeMainMenu: Commands {
.disabled(snapshot.selectedPullRequestURL == nil || !snapshot.githubIntegrationEnabled)
Divider()
Button("Refresh Worktrees", systemImage: "arrow.clockwise") {
store.send(.repositories(.refreshWorktrees))
store.send(.refreshWorktreesRequested)
}
.appKeyboardShortcut(refresh)
.help("Refresh (\(refresh?.display ?? "none"))")
Expand Down
1 change: 1 addition & 0 deletions supacode/Features/App/Models/WorktreeMenuSnapshot.swift
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ extension AppFeature.Action {
// directly; any downstream mutation flows back through a classified arm.
case .applicationDidBecomeActive, .applicationDidResignActive,
.appLaunched, .scenePhaseChanged, .openActionSelectionChanged,
.refreshWorktreesRequested,
.worktreeSettingsLoaded, .openSelectedWorktree, .revealInFinder,
.openWorktree, .openWorktreeFailed, .requestQuit,
.requestTerminateAllTerminalSessions, .newTerminal,
Expand Down
11 changes: 10 additions & 1 deletion supacode/Features/App/Reducer/AppFeature.swift
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ struct AppFeature {
case appLaunched
case scenePhaseChanged(ScenePhase)
case repositories(RepositoriesFeature.Action)
case refreshWorktreesRequested
case settings(SettingsFeature.Action)
case updates(UpdatesFeature.Action)
case commandPalette(CommandPaletteFeature.Action)
Expand Down Expand Up @@ -314,6 +315,14 @@ struct AppFeature {
case .agentPresence:
return .none

case .refreshWorktreesRequested:
return .merge(
.send(.repositories(.refreshWorktrees)),
.run { _ in
await worktreeInfoWatcher.send(.refresh)
}
)

case .scenePhaseChanged(let phase):
switch phase {
case .active:
Expand Down Expand Up @@ -1189,7 +1198,7 @@ struct AppFeature {
return .send(.repositories(.selectArchivedWorktrees))

case .commandPalette(.delegate(.refreshWorktrees)):
return .send(.repositories(.refreshWorktrees))
return .send(.refreshWorktreesRequested)

case .commandPalette(.delegate(.ghosttyCommand(let action))):
guard let worktree = state.repositories.worktree(for: state.repositories.selectedWorktreeID) else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ struct CommandPaletteFeature {
let ordered =
idleRows.enumerated().sorted { lhs, rhs in
switch (mruRank[lhs.element.id], mruRank[rhs.element.id]) {
case let (lhsRank?, rhsRank?): return lhsRank < rhsRank
case (let lhsRank?, let rhsRank?): return lhsRank < rhsRank
case (_?, nil): return true
case (nil, _?): return false
case (nil, nil): return lhs.offset < rhs.offset
Expand Down
Loading
Loading