fix(daemon): auto-discover new workspaces without restart
The daemon now periodically fetches the user's workspace list from the API (every 30s) and adds any new workspaces to the watched config. The existing config-watch loop then picks up the change and registers runtimes. This fixes the issue where workspaces created after `multica login` were not discovered until the daemon was restarted.
This commit is contained in:
parent
457a3eb555
commit
25ed043117
3 changed files with 75 additions and 2 deletions
|
|
@ -146,6 +146,21 @@ func (c *Client) ReportPingResult(ctx context.Context, runtimeID, pingID string,
|
|||
return c.postJSON(ctx, fmt.Sprintf("/api/daemon/runtimes/%s/ping/%s/result", runtimeID, pingID), result, nil)
|
||||
}
|
||||
|
||||
// WorkspaceInfo holds minimal workspace metadata returned by the API.
|
||||
type WorkspaceInfo struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// ListWorkspaces fetches all workspaces the authenticated user belongs to.
|
||||
func (c *Client) ListWorkspaces(ctx context.Context) ([]WorkspaceInfo, error) {
|
||||
var workspaces []WorkspaceInfo
|
||||
if err := c.getJSON(ctx, "/api/workspaces", &workspaces); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return workspaces, nil
|
||||
}
|
||||
|
||||
func (c *Client) Deregister(ctx context.Context, runtimeIDs []string) error {
|
||||
return c.postJSON(ctx, "/api/daemon/deregister", map[string]any{
|
||||
"runtime_ids": runtimeIDs,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue