diff --git a/server/cmd/multica/cmd_auth.go b/server/cmd/multica/cmd_auth.go index e053c103..cd4c3545 100644 --- a/server/cmd/multica/cmd_auth.go +++ b/server/cmd/multica/cmd_auth.go @@ -203,8 +203,11 @@ func runAuthLoginBrowser(cmd *cobra.Command) error { return fmt.Errorf("token verification failed: %w", err) } - // Save to config. + // Save to config. Reset workspace data on every login — the user or + // server may have changed, so stale workspaces must not persist. cfg, _ := cli.LoadCLIConfig() + cfg.WorkspaceID = "" + cfg.WatchedWorkspaces = nil cfg.Token = patResp.Token cfg.ServerURL = serverURL cfg.AppURL = appURL @@ -245,6 +248,8 @@ func runAuthLoginToken(cmd *cobra.Command) error { } cfg, _ := cli.LoadCLIConfig() + cfg.WorkspaceID = "" + cfg.WatchedWorkspaces = nil cfg.Token = token cfg.ServerURL = serverURL if err := cli.SaveCLIConfig(cfg); err != nil { diff --git a/server/cmd/multica/cmd_daemon.go b/server/cmd/multica/cmd_daemon.go index 69fdfaf5..49a4f056 100644 --- a/server/cmd/multica/cmd_daemon.go +++ b/server/cmd/multica/cmd_daemon.go @@ -201,8 +201,14 @@ func buildDaemonStartArgs(cmd *cobra.Command) []string { } func runDaemonForeground(cmd *cobra.Command) error { + serverURL := cli.FlagOrEnv(cmd, "server-url", "MULTICA_SERVER_URL", "") + if serverURL == "" { + if c, err := cli.LoadCLIConfig(); err == nil && c.ServerURL != "" { + serverURL = c.ServerURL + } + } overrides := daemon.Overrides{ - ServerURL: cli.FlagOrEnv(cmd, "server-url", "MULTICA_SERVER_URL", ""), + ServerURL: serverURL, DaemonID: flagString(cmd, "daemon-id"), DeviceName: flagString(cmd, "device-name"), RuntimeName: flagString(cmd, "runtime-name"),