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

Relationships

#2572 data.latest/data.findBySpec/data.query cannot see data from pulled extension model types in workflow expressions

Opened by shelson · 9/27/2026· Shipped 9/28/2026

Summary

data.latest(), data.findBySpec(), and data.query() all fail to find data produced by models of type @evardjp/github-local-mirror when used in workflow step input expressions. The same queries work fine via swamp data get and swamp data query CLI commands.

Repro

  1. Create a model of type @evardjp/github-local-mirror:

    swamp model create @evardjp/github-local-mirror test-mirror      --global-arg owner=X --global-arg repo=Y      --global-arg gitObjectPath=/tmp/test.git      --global-arg workspaceRoot=/tmp/worktrees      --global-arg artifactRoot=/tmp/artifacts
  2. Run sync — data is produced with specName: syncRunSummary etc.

  3. In a workflow step input, reference:

    inputs:
      path: ${{ data.latest("test-mirror", "syncRunSummary").attributes.anything }}
  4. Expression fails: data.latest("test-mirror", "syncRunSummary") found no data record

What works

  • swamp data get test-mirror sync-<timestamp> — CLI finds data
  • swamp data query "modelName == 'test-mirror'" — CLI query works
  • data.latest("code-workspace", "workspace") — works for @shelson/git-workspace models in same expression context
  • data.latest("clean-code", "review-latest") — works for @swamp/clean-code-review models

What doesn't work

  • data.latest("test-mirror", "<anySpec>") — never finds data
  • data.findBySpec("test-mirror", "worktreeSnapshot") — never finds data
  • data.query("modelName == 'test-mirror'") — never finds data

All three work for the same model+spec when called from CLI.

Impact

Cross-step data chaining is impossible for @evardjp/github-local-mirror models. Workaround is vault-bridging via command/shell steps.

Workaround

Use command/shell model to find data on disk and write to vault, then read from vault in downstream steps via vault.get().

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 7 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/28/2026, 2:56:15 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack729/28/2026, 1:45:29 PM
Editable. Press Enter to edit.

stack72 commented 9/28/2026, 2:56:19 PM

Thanks @shelson for reporting this! We shipped: Keep data.latest()/data.version() keyed on data name; no new accessor and no documented newest-by-spec idiom. When a missed lookup's name is an output spec with existing records, the error hint says it is a spec name, lists the matching data names newest-first, and points to data.findBySpec. The bundled swamp skill docs label the argument a data name and explain data name vs specName.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.