From 67138584d447c16ba9c0c72019c12d3823809f28 Mon Sep 17 00:00:00 2001 From: typebasedio Date: Tue, 21 Apr 2026 17:07:04 -0400 Subject: [PATCH] feat(v0.4): add --force flag on resume, last, and open --- cmd/last.go | 4 +++- cmd/open.go | 7 ++++++- cmd/resume.go | 7 +++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/cmd/last.go b/cmd/last.go index e1a0bbc..ce4c951 100644 --- a/cmd/last.go +++ b/cmd/last.go @@ -20,11 +20,13 @@ var lastCmd = &cobra.Command{ var ( lastShell bool lastAgent string + lastForce bool ) func init() { lastCmd.Flags().BoolVar(&lastShell, "shell", false, "Open shell instead of agent") lastCmd.Flags().StringVarP(&lastAgent, "agent", "a", "", "Override agent command") + lastCmd.Flags().BoolVar(&lastForce, "force", false, "Skip active-session and stale-workspace warnings") rootCmd.AddCommand(lastCmd) } @@ -40,5 +42,5 @@ func runLast(cmd *cobra.Command, args []string) error { os.Exit(1) } - return doResume(best.Meta.Slug, false, lastShell, lastAgent) + return doResume(best.Meta.Slug, false, lastShell, lastForce, lastAgent) } diff --git a/cmd/open.go b/cmd/open.go index 2378ebb..7b0ad9d 100644 --- a/cmd/open.go +++ b/cmd/open.go @@ -19,10 +19,14 @@ var openCmd = &cobra.Command{ RunE: runOpen, } -var openAll bool +var ( + openAll bool + openForce bool +) func init() { openCmd.Flags().BoolVarP(&openAll, "all", "a", false, "Include archived workspaces in query resolution") + openCmd.Flags().BoolVar(&openForce, "force", false, "Skip active-session and stale-workspace warnings") rootCmd.AddCommand(openCmd) } @@ -47,5 +51,6 @@ func runOpen(cmd *cobra.Command, args []string) error { Mode: ws.Meta.Mode, Slug: ws.Meta.Slug, Shell: true, // open always launches shell + Force: openForce, }) } diff --git a/cmd/resume.go b/cmd/resume.go index c394ff3..10143a0 100644 --- a/cmd/resume.go +++ b/cmd/resume.go @@ -24,21 +24,23 @@ var ( resumeContainer bool resumeShell bool resumeAgent string + resumeForce bool ) func init() { resumeCmd.Flags().BoolVar(&resumeContainer, "container", false, "Resume in container mode (deferred)") resumeCmd.Flags().BoolVar(&resumeShell, "shell", false, "Open shell instead of agent") resumeCmd.Flags().StringVarP(&resumeAgent, "agent", "a", "", "Override agent command") + resumeCmd.Flags().BoolVar(&resumeForce, "force", false, "Skip active-session and stale-workspace warnings") rootCmd.AddCommand(resumeCmd) } func runResume(cmd *cobra.Command, args []string) error { - return doResume(args[0], resumeContainer, resumeShell, resumeAgent) + return doResume(args[0], resumeContainer, resumeShell, resumeForce, resumeAgent) } // doResume is the shared resume logic used by both resume and last commands. -func doResume(query string, container, useShell bool, agentOverride string) error { +func doResume(query string, container, useShell, force bool, agentOverride string) error { if container { fmt.Println(shell.ContainerNotice()) return nil @@ -69,5 +71,6 @@ func doResume(query string, container, useShell bool, agentOverride string) erro Mode: ws.Meta.Mode, Slug: ws.Meta.Slug, Shell: useShell, + Force: force, }) }