From 3029ac67113fd1b8fac9e2615427de9fe6f4c01e Mon Sep 17 00:00:00 2001 From: Snider Date: Fri, 13 Feb 2026 21:23:02 +0000 Subject: [PATCH] feat(bugseti): add hub coordination config fields and accessors Add HubURL, HubToken, ClientID, and ClientName fields to Config struct for agentic portal integration. Include getter/setter methods following the existing pattern (SetForgeURL, SetForgeToken also added). Co-Authored-By: Virgil Co-Authored-By: Claude Opus 4.6 --- internal/bugseti/config.go | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/internal/bugseti/config.go b/internal/bugseti/config.go index ea6166c4..fe8776ed 100644 --- a/internal/bugseti/config.go +++ b/internal/bugseti/config.go @@ -23,6 +23,12 @@ type Config struct { ForgeURL string `json:"forgeUrl,omitempty"` ForgeToken string `json:"forgeToken,omitempty"` + // Hub coordination (agentic portal) + HubURL string `json:"hubUrl,omitempty"` + HubToken string `json:"hubToken,omitempty"` + ClientID string `json:"clientId,omitempty"` + ClientName string `json:"clientName,omitempty"` + // Deprecated: use ForgeToken. Kept for migration. GitHubToken string `json:"githubToken,omitempty"` @@ -546,6 +552,82 @@ func (c *ConfigService) GetForgeToken() string { return c.config.ForgeToken } +// SetForgeURL sets the Forge URL. +func (c *ConfigService) SetForgeURL(url string) error { + c.mu.Lock() + defer c.mu.Unlock() + c.config.ForgeURL = url + return c.saveUnsafe() +} + +// SetForgeToken sets the Forge token. +func (c *ConfigService) SetForgeToken(token string) error { + c.mu.Lock() + defer c.mu.Unlock() + c.config.ForgeToken = token + return c.saveUnsafe() +} + +// GetHubURL returns the configured Hub URL. +func (c *ConfigService) GetHubURL() string { + c.mu.RLock() + defer c.mu.RUnlock() + return c.config.HubURL +} + +// SetHubURL sets the Hub URL. +func (c *ConfigService) SetHubURL(url string) error { + c.mu.Lock() + defer c.mu.Unlock() + c.config.HubURL = url + return c.saveUnsafe() +} + +// GetHubToken returns the configured Hub token. +func (c *ConfigService) GetHubToken() string { + c.mu.RLock() + defer c.mu.RUnlock() + return c.config.HubToken +} + +// SetHubToken sets the Hub token. +func (c *ConfigService) SetHubToken(token string) error { + c.mu.Lock() + defer c.mu.Unlock() + c.config.HubToken = token + return c.saveUnsafe() +} + +// GetClientID returns the configured client ID. +func (c *ConfigService) GetClientID() string { + c.mu.RLock() + defer c.mu.RUnlock() + return c.config.ClientID +} + +// SetClientID sets the client ID. +func (c *ConfigService) SetClientID(id string) error { + c.mu.Lock() + defer c.mu.Unlock() + c.config.ClientID = id + return c.saveUnsafe() +} + +// GetClientName returns the configured client name. +func (c *ConfigService) GetClientName() string { + c.mu.RLock() + defer c.mu.RUnlock() + return c.config.ClientName +} + +// SetClientName sets the client name. +func (c *ConfigService) SetClientName(name string) error { + c.mu.Lock() + defer c.mu.Unlock() + c.config.ClientName = name + return c.saveUnsafe() +} + // ShouldCheckForUpdates returns true if it's time to check for updates. func (c *ConfigService) ShouldCheckForUpdates() bool { c.mu.RLock()