From d8dffa398bcd6f13b3ad07a4dff67f7664f1ea12 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 2 Apr 2026 16:47:16 +0100 Subject: [PATCH] ax(mining): replace prose field comments with usage examples in ContainerConfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ContainerConfig had five "X is the Y" prose field comments that restated the type signature (AX §2 violation). Container had three section-divider labels ("Core services", "Database store", "Initialization state") that describe what is self-evident from the field names. Both patterns are explicitly banned — delete prose, show usage. Co-Authored-By: Charon --- pkg/mining/container.go | 63 ++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 38 deletions(-) diff --git a/pkg/mining/container.go b/pkg/mining/container.go index 6fd7ec1..8b211cf 100644 --- a/pkg/mining/container.go +++ b/pkg/mining/container.go @@ -8,29 +8,22 @@ import ( "forge.lthn.ai/Snider/Mining/pkg/logging" ) -// cfg := mining.DefaultContainerConfig() -// cfg.ListenAddr = ":8080" -// cfg.SimulationMode = true +// containerConfig := mining.DefaultContainerConfig() +// containerConfig.ListenAddr = ":8080" +// containerConfig.SimulationMode = true +// ContainerConfig{ListenAddr: ":9090", DisplayAddr: "localhost:9090", SwaggerNamespace: "/api/v1/mining"} +// ContainerConfig{SimulationMode: true, Database: database.Config{Enabled: false}} type ContainerConfig struct { - // Database configuration - Database database.Config - - // ListenAddr is the address to listen on (e.g., ":9090") - ListenAddr string - - // DisplayAddr is the address shown in Swagger docs - DisplayAddr string - - // SwaggerNamespace is the API path prefix + Database database.Config + ListenAddr string + DisplayAddr string SwaggerNamespace string - - // SimulationMode enables simulation mode for testing - SimulationMode bool + SimulationMode bool } -// cfg := mining.DefaultContainerConfig() -// cfg.ListenAddr = ":8080" -// c := NewContainer(cfg) +// containerConfig := mining.DefaultContainerConfig() +// containerConfig.ListenAddr = ":8080" +// container := NewContainer(containerConfig) func DefaultContainerConfig() ContainerConfig { return ContainerConfig{ Database: database.Config{ @@ -44,26 +37,20 @@ func DefaultContainerConfig() ContainerConfig { } } -// c := NewContainer(DefaultContainerConfig()) -// c.Initialize(ctx); c.Start(ctx); defer c.Shutdown(ctx) +// container := NewContainer(DefaultContainerConfig()) +// container.Initialize(ctx); container.Start(ctx); defer container.Shutdown(ctx) type Container struct { - config ContainerConfig - mutex sync.RWMutex - - // Core services + config ContainerConfig + mutex sync.RWMutex manager ManagerInterface profileManager *ProfileManager nodeService *NodeService eventHub *EventHub service *Service - - // Database store (interface for testing) - hashrateStore database.HashrateStore - - // Initialization state - initialized bool + hashrateStore database.HashrateStore + initialized bool transportStarted bool - shutdownCh chan struct{} + shutdownCh chan struct{} } // container := NewContainer(DefaultContainerConfig()) @@ -216,24 +203,24 @@ func (c *Container) Manager() ManagerInterface { return c.manager } -// pm := container.ProfileManager() -// pm.SaveProfile("eth-main", config) +// profileManager := container.ProfileManager() +// profileManager.SaveProfile("eth-main", config) func (c *Container) ProfileManager() *ProfileManager { c.mutex.RLock() defer c.mutex.RUnlock() return c.profileManager } -// ns := container.NodeService() // nil if P2P is unavailable -// ns.GetPeers() +// nodeService := container.NodeService() // nil if P2P is unavailable +// nodeService.GetPeers() func (c *Container) NodeService() *NodeService { c.mutex.RLock() defer c.mutex.RUnlock() return c.nodeService } -// hub := container.EventHub() -// hub.Broadcast(event) +// eventHub := container.EventHub() +// eventHub.Broadcast(event) func (c *Container) EventHub() *EventHub { c.mutex.RLock() defer c.mutex.RUnlock()