@@ -1594,12 +1594,14 @@ func writeCoderConnectNetInfo(ctx context.Context, networkInfoDir string) error
1594
1594
// Converts workspace name input to owner/workspace.agent format
1595
1595
// Possible valid input formats:
1596
1596
// workspace
1597
+ // workspace.agent
1597
1598
// owner/workspace
1598
1599
// owner--workspace
1599
1600
// owner/workspace--agent
1600
1601
// owner/workspace.agent
1601
1602
// owner--workspace--agent
1602
1603
// owner--workspace.agent
1604
+ // agent.workspace.owner - for parity with Coder Connect
1603
1605
func normalizeWorkspaceInput (input string ) string {
1604
1606
// Split on "/", "--", and "."
1605
1607
parts := workspaceNameRe .Split (input , - 1 )
@@ -1608,8 +1610,15 @@ func normalizeWorkspaceInput(input string) string {
1608
1610
case 1 :
1609
1611
return input // "workspace"
1610
1612
case 2 :
1613
+ if strings .Contains (input , "." ) {
1614
+ return fmt .Sprintf ("%s.%s" , parts [0 ], parts [1 ]) // "workspace.agent"
1615
+ }
1611
1616
return fmt .Sprintf ("%s/%s" , parts [0 ], parts [1 ]) // "owner/workspace"
1612
1617
case 3 :
1618
+ // If the only separator is a dot, it's the Coder Connect format
1619
+ if ! strings .Contains (input , "/" ) && ! strings .Contains (input , "--" ) {
1620
+ return fmt .Sprintf ("%s/%s.%s" , parts [2 ], parts [1 ], parts [0 ]) // "owner/workspace.agent"
1621
+ }
1613
1622
return fmt .Sprintf ("%s/%s.%s" , parts [0 ], parts [1 ], parts [2 ]) // "owner/workspace.agent"
1614
1623
default :
1615
1624
return input // Fallback
0 commit comments