Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
AssigneesNone

Relationships

≡ duplicate of #3017

#3118 extension push: a required global argument renders with a stray "" ("text": "string""")

Opened by skunk-ape · 10/6/2026· Shipped 10/7/2026

swamp extension push (seen on 20261006.221608.0-sha.5c0c6532) prints each model global argument through a structured-log template that interpolates the optional suffix. For a required argument the suffix is the empty string, and the logger renders it quoted:

[INF] extension·push:     Global Arguments:
[INF] extension·push:       "text": "string"""

Expected

[INF] extension·push:       "text": "string"

and "text": "string" (optional) for an optional one.

Where

src/presentation/renderers/extension_push.ts around line 181-182: const opt = arg.required ? "" : " (optional)" interpolated as ${opt} in a logger template literal. Build the line without interpolating an empty value, or log the optional marker as plain text.

Reproduce

The text-entropy model from the manual tutorial (a single required z.string() global argument): swamp extension push extensions/models/manifest.yaml --dry-run.

Found while capturing manual samples for Lab #3071.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPEDLINKED+ 6 MOREPR_MERGED+ 1 MORESESSION_SUMMARIZED

Shipped

10/7/2026, 6:13:42 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
skunk-ape linked duplicate of #301710/7/2026, 1:37:20 PM
Editable. Press Enter to edit.

skunk-ape commented 10/7/2026, 6:13:51 PM

Closed: fixed via #3017 (swamp PR #2901, released in 20261007.180919.0-sha.6c932543). Required global arguments and config fields now print as "text": "string", and optional ones print as "note": "string" (optional). No push log line interpolates an empty or adjacent value any more, so the stray "" pair is gone.

Sign in to post a ripple.