@@ -1569,12 +1569,14 @@ func writeCoderConnectNetInfo(ctx context.Context, networkInfoDir string) error
1569
1569
// Converts workspace name input to owner/workspace.agent format
1570
1570
// Possible valid input formats:
1571
1571
// workspace
1572
+ // workspace.agent
1572
1573
// owner/workspace
1573
1574
// owner--workspace
1574
1575
// owner/workspace--agent
1575
1576
// owner/workspace.agent
1576
1577
// owner--workspace--agent
1577
1578
// owner--workspace.agent
1579
+ // agent.workspace.owner - for parity with Coder Connect
1578
1580
func normalizeWorkspaceInput (input string ) string {
1579
1581
// Split on "/", "--", and "."
1580
1582
parts := workspaceNameRe .Split (input , - 1 )
@@ -1583,8 +1585,15 @@ func normalizeWorkspaceInput(input string) string {
1583
1585
case 1 :
1584
1586
return input // "workspace"
1585
1587
case 2 :
1588
+ if strings .Contains (input , "." ) {
1589
+ return fmt .Sprintf ("%s.%s" , parts [0 ], parts [1 ]) // "workspace.agent"
1590
+ }
1586
1591
return fmt .Sprintf ("%s/%s" , parts [0 ], parts [1 ]) // "owner/workspace"
1587
1592
case 3 :
1593
+ // If the only separator is a dot, it's the Coder Connect format
1594
+ if ! strings .Contains (input , "/" ) && ! strings .Contains (input , "--" ) {
1595
+ return fmt .Sprintf ("%s/%s.%s" , parts [2 ], parts [1 ], parts [0 ]) // "owner/workspace.agent"
1596
+ }
1588
1597
return fmt .Sprintf ("%s/%s.%s" , parts [0 ], parts [1 ], parts [2 ]) // "owner/workspace.agent"
1589
1598
default :
1590
1599
return input // Fallback
0 commit comments