Skip to main content
← Back to list
01Issue
BugShippedSwamp CLI
Assigneesstack72

#237 data query: stepName and jobName fields always empty in CEL results

Opened by webframp · 5/5/2026· Shipped 5/5/2026

Bug

When using swamp data query with CEL predicates, the fields stepName and jobName are listed as available in the CEL schema (shown in error messages), but they are always empty strings in query results.

The actual step and job identifiers are stored in the tags map (e.g., tags.step, tags.workflow, tags.workflowRunId), not in the top-level stepName/jobName fields.

Reproduction

# This returns 0 results even though step-17 data exists:
swamp data query 'stepName == "step-17"' --limit 5 --json

# This works correctly:
swamp data query 'tags.step == "step-17"' --limit 5 --json

# The error message lists both stepName AND tags as valid fields:
swamp data query 'workflow == "x"'
# => Available: ... jobName, ... stepName, ... tags, ...

Expected Behavior

Either:

  1. Populate stepName and jobName from tags.step and tags.job (or the workflow context) so queries against them work as expected, OR
  2. Remove stepName/jobName from the CEL schema since they are never populated, and document that tags.step/tags.workflow etc. should be used instead

Impact

Agents using the documented CEL field names get empty results. This is especially confusing because the error message for unknown fields explicitly suggests these fields are valid. The workaround (using tags.step etc.) is discoverable but not obvious.

Environment

  • swamp version: 20260504.233645.0-sha.430c1535
  • PR #1297 added the CEL data query domain layer
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 3 MOREPR_MERGEDSHIPPED

Shipped

5/5/2026, 12:20:43 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack725/5/2026, 11:36:10 AM
Editable. Press Enter to edit.

stack72 commented 5/5/2026, 12:08:19 PM

Heads up on scope: reproduction at HEAD shows that stepName actually IS populated for new workflow data — only jobName is empty. The PR (#1301) therefore narrows to fixing jobName (the actual broken plumbing) and adds a regression test that exercises all three CEL provenance fields (workflowName, jobName, stepName) end-to-end so any future regression of any one is caught.

If you observed empty stepName against current HEAD, please share the exact reproduction commands and your swamp version — there may be a separate code path (e.g. non-workflow data write, or pre-PR-#1145 data on disk) that warrants its own follow-up.

Sign in to post a ripple.