Skip to content

Releases: systeminit/swamp

swamp 20260409.150846.0-sha.2f0b632b

09 Apr 15:09
Immutable release. Only release title and notes can be modified.
2f0b632

Choose a tag to compare

What's Changed

  • fix: make CatalogStore required on FileSystemUnifiedDataRepository (#1157)

Summary

  • Make CatalogStore a required constructor parameter on FileSystemUnifiedDataRepository, turning missing-catalog bugs into compile errors
  • Fix the root cause of swamp-club#39: executeModelMethod in WorkflowExecutionService created a data repo without catalog write-through, so data.latest() returned null for data written by workflow steps
  • Add createCatalogStore() factory helper to centralize catalog construction
  • Make queryData required on ModelMethodRunDeps and catalogStore required on WorkflowRunDeps
  • Remove redundant ?. optional chaining on catalogStore across CLI/serve code
  • Update design/data-query.md to reflect required semantics

Test Plan

  • deno check passes (type system enforces catalog presence at all 120+ call sites)
  • deno lint clean
  • deno fmt clean
  • All 4280 tests pass
  • Reproduced bug scenario in scratch repo: workflow with write step → data.latest() read step now succeeds (previously failed with No such key: attributes)

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150846.0-sha.2f0b632b/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150846.0-sha.2f0b632b/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150846.0-sha.2f0b632b/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150846.0-sha.2f0b632b/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.150542.0-sha.c66cf3c3

09 Apr 15:06
Immutable release. Only release title and notes can be modified.
c66cf3c

Choose a tag to compare

What's Changed

  • docs: add concurrency guidance and lock contention warnings to skills (#1156)

Summary

  • Adds a design checkpoint to the swamp-model skill's Workflow Example that prompts users to consider concurrency before creating a model — asking whether methods will run concurrently or be long-running, and guiding them to the factory pattern
  • Updates the factory pattern description to call out both data reuse AND concurrency as motivations (separate instances = separate locks)
  • Adds a lock contention warning to the workflow data-chaining reference, clarifying that steps on the same model serialize on the per-model lock despite being in the same job

Addresses swamp.club/lab#43 — users hitting model locks during long-running operations because they didn't know to split concerns into separate model instances.

Test plan

  • deno fmt --check passes
  • deno lint passes
  • deno run test passes (4280 tests)
  • Verify skill triggers the design checkpoint when a user asks to create a model with multiple methods

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150542.0-sha.c66cf3c3/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150542.0-sha.c66cf3c3/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150542.0-sha.c66cf3c3/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.150542.0-sha.c66cf3c3/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.145735.0-sha.0ec80580

09 Apr 14:58
Immutable release. Only release title and notes can be modified.
0ec8058

Choose a tag to compare

What's Changed

  • fix: use >= for bundle cache mtime comparison to handle equal timestamps (#1155)

Summary

  • Changed bundle cache mtime comparison from strict > to >= in all 5 user extension loaders (models, reports, datastores, vaults, drivers)
  • When source and bundle files share the same mtime (e.g. written in the same second during a pre-commit hook), the cached bundle is now correctly used instead of triggering a rebundle that may fail
  • Added unit test verifying cached bundle is served when source and bundle have equal mtimes

Closes systeminit/swamp-club#38

Test Plan

  • New unit test: bundleWithCache uses cache when source and bundle have equal mtimes — sets source and bundle to identical mtime via Deno.utime, verifies cache is used without rebundling
  • All 51 existing user_model_loader_test.ts tests pass
  • Verified fix against manual reproduction in /tmp/swamp-repro-issue-38 — with equal mtimes the compiled binary now logs Using cached bundle instead of rebundling
  • deno check, deno lint, deno fmt all pass

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.145735.0-sha.0ec80580/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.145735.0-sha.0ec80580/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.145735.0-sha.0ec80580/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.145735.0-sha.0ec80580/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.133827.0-sha.0283af0a

09 Apr 13:40
Immutable release. Only release title and notes can be modified.
0283af0

Choose a tag to compare

What's Changed

  • fix: add application-level retry for SQLite init under concurrent access (#1154)

Summary

  • Adds exponential backoff retry (up to 5 attempts) around PRAGMA journal_mode=WAL and schema creation in both CatalogStore and ExtensionCatalogStore
  • Fixes "database is locked" crashes when multiple swamp workflow run processes start concurrently and race to initialize the same SQLite database
  • The existing busy_timeout=5000 pragma doesn't reliably cover the journal mode switch in Deno's node:sqlite, so application-level retry fills the gap

Test Plan

  • Existing CatalogStore: constructor retries under write lock contention test passes
  • Full test suite passes (4249 tests)
  • deno check, deno lint, deno fmt all clean
  • UAT adversarial test swamp workflow run concurrently produces distinct data versions should now pass

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133827.0-sha.0283af0a/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133827.0-sha.0283af0a/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133827.0-sha.0283af0a/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133827.0-sha.0283af0a/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.133339.0-sha.fe91dbed

09 Apr 13:34
Immutable release. Only release title and notes can be modified.
fe91dbe

Choose a tag to compare

What's Changed

  • feat: add post-PR lifecycle phases and ship method (#1153)

Summary

  • Adds two new phases (pr_failed, releasing) between pr_open and done for visibility into CI failures and release builds
  • Adds three new methods: pr_merged (pr_open → releasing), pr_failed (pr_open → pr_failed), ship (releasing → done)
  • Adds pr-cooldown check enforcing a 3-minute wait after link_pr before checking PR status, giving CI time to run
  • Enables recovery from pr_failed via link_pr (re-link) or implement (major rework)
  • Adds skill guidance requiring human confirmation before opening PRs

Test Plan

  • deno check — type checking passes
  • deno lint — no lint errors
  • deno fmt — all files formatted
  • deno run test — all 4260 tests pass (26 in lifecycle + schema tests)
  • deno run compile — binary compiles successfully
  • Manual: create an issue-lifecycle instance, walk through link_pr → pr_merged → ship flow
  • Manual: verify pr_failed → link_pr recovery loop works

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133339.0-sha.fe91dbed/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133339.0-sha.fe91dbed/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133339.0-sha.fe91dbed/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.133339.0-sha.fe91dbed/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.132650.0-sha.4f579e9f

09 Apr 13:27
Immutable release. Only release title and notes can be modified.
4f579e9

Choose a tag to compare

What's Changed

  • feat: add vault migrate command (#1150)

Summary

  • Add swamp vault migrate <vault-name> --to-type <type> command that migrates a vault's backend in-place, preserving the vault name so all existing vault reference expressions keep working
  • Extract provider instantiation into shared vault_provider_factory.ts used by both VaultService and the migrate operation
  • Support --dry-run preview, --config for backend-specific settings, and per-secret progress output in both log and JSON modes

Fixes swamp-club#37

Test Plan

  • Unit tests for createVaultProvider factory (built-in types, unsupported type error, case insensitivity)
  • Unit tests for vaultMigrate generator (secret copying, config swap, vault-not-found error, unknown-type error, empty vault, delete failure tolerance)
  • Unit tests for vaultMigratePreview (preview data, not-found, same-type rejection, unknown-type rejection)
  • Existing VaultService tests still pass after registerVault() refactor
  • deno check — no type errors
  • deno lint — clean
  • deno fmt — formatted
  • Full test suite — 4249 tests pass
  • deno run compile — binary compiles

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.132650.0-sha.4f579e9f/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.132650.0-sha.4f579e9f/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.132650.0-sha.4f579e9f/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.132650.0-sha.4f579e9f/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.123129.0-sha.60154152

09 Apr 12:32
Immutable release. Only release title and notes can be modified.
6015415

Choose a tag to compare

What's Changed

  • fix: improve issue-lifecycle skill resumption and close-out guidance (#1152)

Summary

Fixes #42. Three documentation improvements to the issue-lifecycle skill:

  • Fix resume command: Replace swamp model get (returns model definition) with swamp data get issue-<N> state-main --json (returns current phase), and add a phase-to-action reference table
  • Add in-flight guard: New "Before You Start" section in references/triage.md checks if the issue is already past triage before allowing start — prevents agents from accidentally resetting progress
  • Add close-out workflow: New "Closing Out a Shipped Issue" section documents how to mark a shipped issue as done (link_prcomplete)
  • Add start safety warning: Blockquote in triage.md clarifying that start unconditionally resets phase to triaging

Test Plan

  • deno fmt --check passes
  • deno lint passes
  • deno run test passes (4236 tests)
  • SKILL.md stays under 500 lines (168 lines)
  • Verified phase-to-action table matches TRANSITIONS in extensions/models/_lib/schemas.ts

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.123129.0-sha.60154152/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.123129.0-sha.60154152/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.123129.0-sha.60154152/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.123129.0-sha.60154152/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.110035.0-sha.fea283d4

09 Apr 11:01
Immutable release. Only release title and notes can be modified.
fea283d

Choose a tag to compare

What's Changed

  • feat: validate step inputs against method/workflow required arguments (#1151)

Summary

  • swamp workflow validate now checks that each step's inputs: block provides all required arguments for the target method or workflow
  • For model_method tasks: resolves model type, looks up method's Zod argument schema, reports missing required fields
  • For workflow tasks: looks up nested workflow's JSON Schema inputs, reports missing required inputs
  • Dynamic CEL references (${{ }}) in model/workflow names are gracefully skipped
  • Models/workflows not found produce pass-with-skip (not hard failure)
  • Updates swamp-workflow skill docs with new validation checks
  • Fixes vary integration test to provide required run input

Closes #40

Test Plan

  • 27 unit tests for DefaultWorkflowValidationService (13 new for step input validation covering both task types)
  • 4 libswamp validate integration tests (updated for async)
  • Full test suite passes (4249 tests)
  • Manual verification with compiled binary against a scratch repo:

Missing required input (run omitted from command/shell model)

$ swamp workflow validate bad-workflow --repo-dir /tmp/swamp-repro-issue-40
Validating: bad-workflow
  ✓ Schema validation
  ✓ Unique job names
  ✓ Unique step names in job 'deploy'
  ✓ Valid job dependency references
  ✓ Valid step dependency references in job 'deploy'
  ✓ No cyclic job dependencies
  ✓ No cyclic step dependencies in job 'deploy'
  ✗ Step inputs for 'deploy-step' in job 'deploy' (my-deployer.execute)
    → Missing required inputs: run
Summary: 7/8 validations passed
Result: FAILED

All required inputs present

$ swamp workflow validate good-workflow --repo-dir /tmp/swamp-repro-issue-40
Validating: good-workflow
  ✓ Schema validation
  ✓ Unique job names
  ✓ Unique step names in job 'deploy'
  ✓ Valid job dependency references
  ✓ Valid step dependency references in job 'deploy'
  ✓ No cyclic job dependencies
  ✓ No cyclic step dependencies in job 'deploy'
  ✓ Step inputs for 'deploy-step' in job 'deploy' (my-deployer.execute)
Summary: 8/8 validations passed
Result: PASSED

Nonexistent method on model

$ swamp workflow validate bad-method-workflow --repo-dir /tmp/swamp-repro-issue-40
Validating: bad-method-workflow
  ✓ Schema validation
  ✓ Unique job names
  ✓ Unique step names in job 'job1'
  ✓ Valid job dependency references
  ✓ Valid step dependency references in job 'job1'
  ✓ No cyclic job dependencies
  ✓ No cyclic step dependencies in job 'job1'
  ✗ Step inputs for 'step1' in job 'job1' (my-deployer.nonexistent_method)
    → Method 'nonexistent_method' not found on model type 'command/shell'
Summary: 7/8 validations passed
Result: FAILED

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.110035.0-sha.fea283d4/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.110035.0-sha.fea283d4/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.110035.0-sha.fea283d4/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.110035.0-sha.fea283d4/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.105220.0-sha.85b004cb

09 Apr 10:53
Immutable release. Only release title and notes can be modified.
85b004c

Choose a tag to compare

What's Changed

  • feat: enable parallel test execution for faster CI (#1149)

Summary

  • Add --parallel flag to the deno test task so test modules run concurrently across available CPU cores
  • Each module runs in its own subprocess with full process isolation (separate globalThis, env vars, memory)
  • No test changes needed — temp dirs already use Deno.makeTempDir(), ports use dynamic allocation

Expected impact

CI runs on ubuntu-latest (4 cores), so expect ~3-4x speedup on the test step. Local runs on machines with more cores will see even more improvement.

Test plan

  • CI passes — this PR is the test. Compare test step duration against recent main builds
  • If any flaky failures appear, investigate filesystem race conditions in integration tests

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.105220.0-sha.85b004cb/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.105220.0-sha.85b004cb/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.105220.0-sha.85b004cb/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.105220.0-sha.85b004cb/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

swamp 20260409.030033.0-sha.07dae003

09 Apr 03:01
Immutable release. Only release title and notes can be modified.
07dae00

Choose a tag to compare

What's Changed

  • fix: wire DataQueryService to workflow execution paths (#1148)

Summary

  • data.latest(), findByTag(), findBySpec(), and query() in ModelResolver were changed from sync filesystem reads to async DataQueryService queries in #1145, but DataQueryService was never wired in the workflow execution paths
  • This caused all four functions to silently return null/empty in workflows, breaking CEL expressions like data.latest(...).attributes.stdout
  • Pass CatalogStore through the deps chain (matching the existing RepositoryContext pattern) so WorkflowExecutionService creates its own DataQueryService and wires it to ModelResolver
  • Also pass CatalogStore to FileSystemUnifiedDataRepository for write-through, matching repository_factory.ts
  • Bumps architecture ratchet from 12 → 13 for the legitimate data <-> workflows mutual dependency

Test Plan

  • deno check passes
  • deno lint passes
  • deno fmt passes
  • Full test suite passes (4236 tests, 0 failures)
  • Architecture boundary ratchet test passes at 13
  • Fixes UAT failures in vary_dimensions_test.ts:
    • swamp workflow run CEL data.latest reads correct varied data per environment
    • swamp workflow run reads varied data written by another workflow

🤖 Generated with Claude Code


Installation

macOS (Apple Silicon):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.030033.0-sha.07dae003/swamp-darwin-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

macOS (Intel):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.030033.0-sha.07dae003/swamp-darwin-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.030033.0-sha.07dae003/swamp-linux-x86_64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/

Linux (aarch64):

curl -L https://github.com/systeminit/swamp/releases/download/v20260409.030033.0-sha.07dae003/swamp-linux-aarch64 -o swamp
chmod +x swamp && sudo mv swamp /usr/local/bin/