Skip to content

Commit 21a5431

Browse files
lroolleclaude
andcommitted
fix(name): drop dash before version in container names
deva--claudev2.1.209-- not deva--claude-v2.1.209-- The v alone is the delimiter; the extra dash is visual noise and could confuse single-dash splitters. Regex in extract_agent_from_name updated to match (v...) instead of (-v...). All 63 slug tests pass, rm/ps/clean/status parsing verified against every name variant. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent fb7face commit 21a5431

2 files changed

Lines changed: 10 additions & 10 deletions

File tree

deva.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,7 +1011,7 @@ build_container_name() {
10111011
local agent_seg="$agent"
10121012
local agent_ver
10131013
agent_ver="$(agent_version_tag "$agent")"
1014-
[ -n "$agent_ver" ] && agent_seg="${agent}-v${agent_ver}"
1014+
[ -n "$agent_ver" ] && agent_seg="${agent}v${agent_ver}"
10151015

10161016
local name="${prefix}--${agent_seg}--${auth_tag}--${slug}..${shape_hash}"
10171017
if [ "$ephemeral" = true ] && [ -n "$pid" ]; then
@@ -1152,8 +1152,8 @@ extract_agent_from_name() {
11521152
local name="$1"
11531153
local rest="${name#"${DEVA_CONTAINER_PREFIX}"}"
11541154

1155-
# New format: deva--<agent>[-v<version>]--<auth>--<slug>..<hash>
1156-
if [[ "$rest" =~ ^--([a-z]+)(-v[A-Za-z0-9._-]+)?-- ]]; then
1155+
# New format: deva--<agent>[v<version>]--<auth>--<slug>..<hash>
1156+
if [[ "$rest" =~ ^--([a-z]+)(v[A-Za-z0-9._-]+)?-- ]]; then
11571157
printf '%s' "${BASH_REMATCH[1]}"
11581158
return
11591159
fi

scripts/test-container-slug.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ docker() {
194194
AGENT_VERSION_TAG_CACHE_AGENT="" AGENT_VERSION_TAG_CACHE=""
195195
name=$(build_container_name "deva" "claude" "auth-file-max" "myrepo" "ab12cd34" "false" "")
196196
assert_eq "persistent with agent version" \
197-
"deva--claude-v2.1.204--auth-file-max--myrepo..ab12cd34" "$name"
197+
"deva--claudev2.1.204--auth-file-max--myrepo..ab12cd34" "$name"
198198

199199
AGENT_VERSION_TAG_CACHE_AGENT="" AGENT_VERSION_TAG_CACHE=""
200200
name=$(build_container_name "deva" "mystery" "auth-default" "myrepo" "ab12cd34" "false" "")
@@ -220,10 +220,10 @@ assert_eq "new format ephemeral" "claude" \
220220
"$(extract_agent_from_name "deva--claude--api-key-abcd--myrepo..ab12cd34--99999")"
221221

222222
assert_eq "versioned agent segment" "claude" \
223-
"$(extract_agent_from_name "deva--claude-v2.1.204--auth-file-max--myrepo..ab12cd34")"
223+
"$(extract_agent_from_name "deva--claudev2.1.204--auth-file-max--myrepo..ab12cd34")"
224224

225225
assert_eq "versioned ephemeral" "codex" \
226-
"$(extract_agent_from_name "deva--codex-v0.131.0--auth-default--myrepo..ab12cd34--4242")"
226+
"$(extract_agent_from_name "deva--codexv0.131.0--auth-default--myrepo..ab12cd34--4242")"
227227

228228
assert_eq "legacy ephemeral" "claude" \
229229
"$(extract_agent_from_name "deva-myrepo..i47b207-claude-12345")"
@@ -285,7 +285,7 @@ out="$(run_dry claude --debug --dry-run || true)"
285285
cname="$(extract_container_name "$out")"
286286
if [ -n "$cname" ]; then
287287
assert_match "dry-run: new format structure" \
288-
"^deva--claude(-v[A-Za-z0-9._-]+)?--auth-default--" "$cname"
288+
"^deva--claude(v[A-Za-z0-9._-]+)?--auth-default--" "$cname"
289289
assert_match "dry-run: ends with ..hash" \
290290
'\.\.[a-f0-9]{8}$' "$cname"
291291
assert_no_match "dry-run: no old-style ..i prefix" \
@@ -298,7 +298,7 @@ out="$(run_dry codex --debug --dry-run || true)"
298298
cname="$(extract_container_name "$out")"
299299
if [ -n "$cname" ]; then
300300
assert_match "dry-run codex: agent in name" \
301-
"^deva--codex(-v[A-Za-z0-9._-]+)?--" "$cname"
301+
"^deva--codex(v[A-Za-z0-9._-]+)?--" "$cname"
302302
else
303303
fail "dry-run codex: could not extract container name"
304304
fi
@@ -307,7 +307,7 @@ out="$(run_dry gemini --debug --dry-run || true)"
307307
cname="$(extract_container_name "$out")"
308308
if [ -n "$cname" ]; then
309309
assert_match "dry-run gemini: agent in name" \
310-
"^deva--gemini(-v[A-Za-z0-9._-]+)?--" "$cname"
310+
"^deva--gemini(v[A-Za-z0-9._-]+)?--" "$cname"
311311
else
312312
fail "dry-run gemini: could not extract container name"
313313
fi
@@ -319,7 +319,7 @@ if [ -n "$cname" ]; then
319319
assert_match "dry-run ephemeral: has PID suffix" \
320320
'--[0-9]+$' "$cname"
321321
assert_match "dry-run ephemeral: agent in name" \
322-
"^deva--claude(-v[A-Za-z0-9._-]+)?--" "$cname"
322+
"^deva--claude(v[A-Za-z0-9._-]+)?--" "$cname"
323323
else
324324
fail "dry-run ephemeral: could not extract container name"
325325
fi

0 commit comments

Comments
 (0)