55 "sync"
66
77 "github.com/sirupsen/logrus"
8+ "github.com/thand-io/agent/internal/common"
89 "github.com/thand-io/agent/internal/config/services/temporal"
910 "github.com/thand-io/agent/internal/models"
10- "github.com/thand-io/agent/internal/sessions"
1111)
1212
1313type localClient struct {
@@ -371,45 +371,18 @@ func (e *localClient) ReloadTemporal() error {
371371 e .mu .Unlock ()
372372 }
373373
374- // Client mode NEVER starts Temporal
375- if e .config .IsClient () {
376- logrus .Info ("Skipping Temporal initialization in client mode" )
377- return nil
378- }
379-
380374 logrus .Infof ("Initializing temporal..." )
381375
382- // Determine identities based on mode
383- environment := e .config .GetEnvironment ()
384- identities := []string {environment .GetIdentifier ()}
385-
386- if e .config .IsAgent () {
387- // Agent mode: query session manager for all active identities + hostname
388- sessionMgr := sessions .GetSessionManager ()
389- loginServerName := e .config .GetLoginServerHostname ()
390-
391- loginServer , err := sessionMgr .GetLoginServer (loginServerName )
392-
393- if err != nil {
394- logrus .WithError (err ).Warn ("Failed to get login server, using hostname identity only" )
395- } else {
396- activeSessions := loginServer .GetSessions ()
397-
398- // Add active session providers as identities
399- for providerName , session := range activeSessions {
400- if ! session .IsExpired () {
401- identities = append (identities , providerName )
402- logrus .WithFields (logrus.Fields {
403- "provider" : providerName ,
404- "expiry" : session .Expiry ,
405- }).Debug ("Adding active session identity to worker pool" )
406- }
407- }
408- }
409-
410- logrus .WithField ("identities" , identities ).Info ("Configuring Temporal workers for agent mode" )
376+ // Determine task queue based on mode:
377+ // - Server: shared default task queue
378+ // - Agent / Client: per-client task queue derived from the client identifier
379+ taskQueue := temporal .DefaultTaskQueue
380+ if e .config .IsAgent () || e .config .IsClient () {
381+ taskQueue = common .GetClientIdentifier ().String ()
411382 }
412383
384+ logrus .WithField ("taskQueue" , taskQueue ).Info ("Configuring Temporal worker" )
385+
413386 // Get Temporal config from services
414387 servicesConfig := e .config .GetServicesConfig ()
415388
@@ -422,7 +395,7 @@ func (e *localClient) ReloadTemporal() error {
422395 temporalService := temporal .NewTemporalClient (
423396 temporalConfig ,
424397 e .vault ,
425- identities ... ,
398+ taskQueue ,
426399 )
427400 if err := temporalService .Initialize (); err != nil {
428401 logrus .Errorf ("Error initializing temporal: %v" , err )
0 commit comments