#3096
A nested structural swamp still waits on its run's lock when the lock holder is not a same-host ancestor (cross-host worker, --server into a non-ancestor serve)
h14h ago
#3093
Deliver workflow signals through a write-once outcome record instead of writing the run record
h15h ago
#2982
Forward held-lock identity over --server so a loopback nested swamp does not wait on its caller's lock
h16h ago
#2983
A nested structural swamp on a same-host remote worker waits on its own step's lock held by swamp serve
h17h ago
#2981
Fail fast when nested structural commands under parallel runs wait on each other's locks
h17h ago
#3079
Docs: remove followUpActions from the MethodResult reference in the extension model manual
h17h ago
#3092
signal_test: already-settled test fails by chance when a random UUID spells the sender name
18h ago
#3068
Add a wait_for_signal workflow step that pauses a run for a JSON message
h18h ago
#3059
run doctor through serve interrupts a live run of another serve instance when no heartbeats are recorded
h19h ago
#3081
Flaky test: WalSink replayed segments are delivered before events written after replay leaves one WAL segment
h19h ago
#3078
Remove followUpActions: no model or extension can produce them
h20h ago
#2946
Workflow schedule watcher and workflow edit symlink lookup ignore the managed config workflows dir
h20h ago
#3084
main is red: repository_dirty_coverage_test fails for UnifiedData.collectGarbage(orphaned deferred write)
20h ago
#3082
isProcessGone always reports alive on Linux under the test task permissions, failing 9 tests on main
h20h ago
#2893
serve: relative tls cert-file/key-file and --config resolve against the working directory, not the repository
h20h ago
#2975
findBySpec/findByTag lose a workflow step's output after a version is deleted, pruned or rolled back
s20h ago
#2917
Run tracker keeps some interrupted workflow rows forever: retention waits for markSettled, which several paths never call
22h ago
#3051
run doctor reads every run record on each run to rebuild the run indexes
hs22h ago
#3037
Serve audit: two sinks with the same name share one emitter cursor, so the second never receives events
1d ago
#3039
Serve audit: a durable sink write that times out is retried while the first call is still pending, so the store can hold duplicate sequences
s1d ago
#3043
Flaky test: ModelResolver data accessors for a renamed model return the earlier id's record from findBySpec
s1d ago
#2985
data query --limit returns fewer live records than exist and reports limited: false when stale catalog rows fall inside the limit
s1d ago
#2987
data get: help example passes --run latest, which is not a recognised run id
s1d ago
#2905
workflow reject leaves sibling gates waiting_approval and dependents pending in a failed, retryable run
h1d ago
#2920
workflow cancel cannot cancel a suspended run whose workflow file was deleted, and cancel --all silently skips it
h1d ago
#2898
A job alone in its level starts after the abort, and its unstarted step is recorded as a real failure instead of settledByAbort
h1d ago
#2919
workflow approve racing workflow cancel loses the cancel: the run returns to suspended after cancel reported cancelled
h1d ago
#2972
data query: does not follow data rename forwarding that data get follows
h1d ago
#2994
Unit tests share fixed /tmp catalog paths, so concurrent runs corrupt them and fail every later run
h1d ago
#2968
data query: renamed data items are not found by their old name
h4d ago
#2960
data query: model lookup by id and orphan recovery parity with data get
h4d ago
#2899
workflow approve on a run that is not suspended prints a fatal error with a stack trace
h4d ago
#2957
data query: no way to target a workflow's latest run
h4d ago
#2959
data query: binary content lacks contentEncoding/base64 parity with data get
h4d ago
#2958
data query: no fallback from spec name to data instance name
h4d ago
#2967
data query: no definitionHash or garbageCollection fields in query results
h4d ago
#2955
A nested structural swamp spawned by swamp serve skips every lock serve holds, including other runs' locks
h4d ago
#2962
data query: confirm catalog parity with data get for custom datastores
h4d ago
#2961
data query: single-result --json mode for scripts migrating from data get
h4d ago
#2948
data get --workflow silently returns an arbitrary step's data when several steps share a data name
h4d ago
#2942
swamp doctor workflows misses nested and .yml extension workflows that the loader reads
h4d ago
#2928
auth whoami says the stored API key is no longer valid when auth.json only holds an env-key identity cache
s4d ago
#2921
Docs: swamp skill says cancelling a parent run cancels its nested child runs; the child is left suspended
s4d ago
#2941
Namespace advice in the slow-lock warning is wrong for a single repo on a local datastore
h4d ago
#2930
Method-run records left running by a dead owner are never reaped
s5d ago
#2909
Flaky: usecase_sync_characterization_data_test 'data gc (serve)' asserts markDirty order that varies under parallel load
s5d ago
#2926
Worker dispatch rebuilds the definition with Definition.create, so a legacy-named model cannot run on a worker
h5d ago
#2918
A cancelled workflow exits before its steps stop, leaving their method-run records at running
h5d ago
#2927
Nested swamp structural command in a shell step times out on its parent's per-model lock (SWAMP_LOCK_HOLDER_PID is stripped)
5d ago
#2924
Auth gate blocks nested swamp in workflow shell steps when the credential is in SWAMP_API_KEY
h5d ago
#2925
swamp workflow create crashes with an [FTL] ZodError stack trace on an invalid (uppercase) workflow name
5d ago
#2923
swamp model create crashes with an [FTL] ZodError stack trace on an invalid (uppercase) model name
h5d ago
#2914
model cancel SIGTERMs a running swamp serve process when the method run belongs to a serve-run workflow
h5d ago
#2915
model cancel --all on a running workflow leaves its method-run records at running, or records them failed instead of cancelled
5d ago
#2910
model cancel SIGKILLs the owner 2 s after SIGTERM, before the step executor's own 3 s kill grace, so the run never records its own cancellation
h5d ago
#2895
workflow cancel and supersede of a suspended run leave its jobs running in the cancelled record
h5d ago
#2896
A force-exited workflow run stays running with a dead pid: resume, recover and run doctor --fix cannot clear it
h5d ago
#2736
A nested workflow that suspends on manual approval forwards its suspended event into the parent run's stream
h5d ago
#2897
workflow cancel SIGKILLs the run 2 s after SIGTERM, cutting off always/completed cleanup jobs mid-step
h5d ago
#2845
Warn when datastore setup keeps managedConfig but the new datastore has no config tier
h5d ago
#2812
serve: a relative grants-dir resolves against the working directory, not the repository
h5d ago
#2597
workflow resume cleanup mode can run an always-gated teardown before a suspended job's approved work
h5d ago
#2838
managedConfig: extension writes update the shared lockfile from a stale cache and overwrite peers' entries
h5d ago
#2837
datastore setup extension overwrites the shared config tier with the repo-local copy and drops managedConfig from .swamp.yaml
h6d ago
#2829
serve daemon enable writes a unit that crash-loops when serve args are invalid (e.g. missing --admins)
h6d ago
#2833
Concurrent embedded deno extraction races: stale temp-file cleanup deletes another process's in-flight .deno.tmp file (chmod ENOENT)
h6d ago
#2802
Telemetry bridge drops a parent step's invocation when a nested workflow step has the same job and step names
h6d ago
#2824
serve daemon: unit sets SWAMP_HOME, which relocates the config dir — token/oauth daemons can't find auth.json and crash-loop
h6d ago
#2825
Workflow step that times out on the model lock leaves its output and run-tracker row stuck at 'running'
h6d ago
#2724
An extension upgrade that hits a type collision is rolled back to no version: roll back to the prior version with a commit/rollback install handle
h6d ago
#2735
Telemetry bridge attributes a parent run's later method invocations to its nested child run
h6d ago
#2814
sensitive_data_delivery_test fails where /bin/sh is bash: the final ps is exec'd and reports its own argv
h6d ago
#2815
build-attestation rejects every run: evaluated workflows now carry sensitiveFormat, which the provenance check treats as an uncommitted field
h6d ago
#2762
DuplicateTypeError names the incoming extension as the existing claimant and reports a false ghost row when it sorts first
h6d ago
#2723
Install extensions by stage and swap, with a journal and crash recovery
h7d ago
#2593
workflow resume ignores SWAMP_MAX_CONCURRENT_STEPS for job-level concurrency
h7d ago
#2651
Tidy up tests and helpers from the serve suspended-run cancel
h7d ago
#2709
Concurrent extension installs and removals can interleave in one checkout: add a pulled-extensions lock and LockfileRepository.refresh()
h7d ago
#2722
deno run audit prints No description available for every advisory
h7d ago
#2492
Add a literal() CEL function so one string can mix swamp expressions with another service template syntax
h7d ago
#2707
Extension archives have no size cap: cap the compressed and decompressed size on pull and push
h7d ago
#2616
withGeneratorSpan does not forward return() to the wrapped generator, so its finally blocks are skipped on early exit
h7d ago
#2713
forEach over a direct step with a shared modelName runs every iteration with one iteration's globalArgs on first creation
h7d ago
#2708
Split installExtension into an unlocked prepare and a repo-changing apply
h7d ago
#2650
workflow cancel --server shows raw JSON errors and drops --reason
h7d ago
#2702
Two pulled extensions providing one type + a rebuilt catalog brick every command (I-Repo-1 at startup reconcile, even rm/--repair)
h7d ago
#2490
Extension catalog keeps stale rows after install migration and rm; model type describe crashes with ENOENT
h7d ago
#2698
Flaky test: CollectiveRefreshService fallback getAccessToken test counts calls after a fixed 200ms sleep
sh7d ago
#2493
model validate log output misaligns multi-entry Expression paths errors
h7d ago
#2447
Retry refusals print unquoted forEach template names in --from hints, which bash rejects
h7d ago
#2580
workflow run log output: a forEach step with a templated name labels its iterations with the raw expression, e.g. deploy-${{ self.env }}[0]
h7d ago
#2652
Docker image runs swamp as PID 1 without an init, so orphaned step processes are never reaped
h7d ago
#2617
swamp.cli.bootstrap, configure_extension_loaders and teardown spans each start their own trace
h7d ago
#2646
Extension restore leaves a parent installed and its dependency permanently missing when the dependency install fails
h7d ago
#2426
serve: vault edit over --server opens an editor on the server host and ignores the managedConfig vaults dir
s7d ago
#2514
A suspended run started by swamp serve cannot be cancelled
h8d ago
#2634
command/shell: aborting a step kills only sh, leaving the command's child processes orphaned
h8d ago
#2639
Extension restore drops the lockfile entry's channel and leaks the parent's expectedChecksum into dependency installs
h8d ago
#2429
managedConfig: serve extension handlers disagree on the pulled-extensions root, and lockfile files[] are repo-relative
h8d ago
#2589
swamp.model.method spans are parented to the workflow run span instead of their swamp.workflow.step span
h8d ago
#2314
Platform certificate load failure surfaces as an uncaught error on network commands
h8d ago
#2417
serve: server-login can't be traced: no request spans, and gcs-datastore push is unparented with an 81s gap in child spans
h8d ago
#2420
workflow resume keeps the original run's process identity (run record pid and instanceId)
h8d ago
#2547
workflow run --json: guarded-skip lines land on stdout or stderr depending on timing
h8d ago
#2360
workflow run and model method run reject --ca-cert, but their TLS error tells users to pass it
h8d ago
#2549
After a cancel or --timeout, jobs that share a level are abandoned mid-flight: their steps stay running and their own cleanup steps never run
h8d ago
#2359
SWAMP_CA_CERT overrides the --ca-cert flag, contrary to the documented flag-wins precedence
h8d ago
#2594
workflow resume --timeout records cancel_reason 'The signal has been aborted' instead of a timeout reason
h8d ago
#2556
InProcessExecutor mutates the process-wide TRACEPARENT, so concurrent in-process executions clobber and leak trace context
h8d ago
#2550
workflow resume has no job-level cleanup mode: after --timeout or a cancel, always/completed cleanup jobs start with the aborted signal and fail at once
h8d ago
#2548
workflow cancel on a live local run overwrites the owning process's final run record with a stale snapshot
h8d ago
#2543
After a cancel or --timeout, a never-started dependency stays pending, so failed- and completed-gated cleanup steps are skipped
h8d ago
#2579
Direct-type forEach fan-out waits about 1s on the auto-definition lock when its definition is first created (missed by swamp-club#2126)
h8d ago
#2483
managedConfig: fix startup config-base resolution and extension list (prerequisites for swamp-club#2429)
h8d ago
#2538
workflow run log output: a skipped plain step's line names only the job, not the step
h11d ago
#2537
A forEach step's dependsOn condition is never evaluated, so its iterations run when the condition is false
h11d ago
#2531
managedConfig: the datastore extension is only found through a lockfile, so the config base is guessed (part 3c of swamp-club#2483)
h11d ago
#2510
model output data/logs/search can't find outputs of user extension model types locally
h11d ago
#2413
serve: ServerTokenGcService is never started, so expired server tokens accumulate forever
s11d ago
#2502
workflow resume --input key=value does not coerce the value to the declared input type (workflow run does)
h11d ago
#2496
Direct-execution workflow steps validate evaluated globalArgs, so the CEL concatenation workaround for colliding template names fails
s11d ago
#2498
workflow resume of a suspended run crashes mid-run when the workflow was edited during the approval window
h12d ago
#2494
Install rollback recursively deletes pre-existing skill dirs that pull merged into
s12d ago
#2491
Foreign CEL like GitHub Actions ${{ github.sha }} in a global argument fails validate and throws when the method reads it
sh12d ago
#2497
model validate blames foreign {{ ... }} text for an unclosed ${{ expression
h12d ago
#2433
workflow resume --from: a step moved or renamed since the run failed is skipped and the run reported succeeded, or crashes with 'Step run not found'
h12d ago
#2432
workflow resume prints unexpected errors as a fatal stack trace, and --json returns them unclassified with the stack
h12d ago
#2415
serve: remove the remaining no-path markDirty() calls that force full-cache datastore pushes
h12d ago
#2430
workflow resume: Ctrl-C leaves the run 'running' with nothing driving it, and it can no longer be resumed
h13d ago
#2431
workflow recover crashes on every invocation: 'Path must be a string'
h13d ago
#2409
workflow resume: retry the failed steps of a failed run without --from
h13d ago
#2428
Remote indicator prints the full --server URL, including a ?token= query credential, to stderr
s13d ago
#2425
serve: vault annotate --label over --server is rejected (CLI sends labels as an object, protocol expects string[])
h13d ago
#2408
serve: the device-token poll that returns the token takes 88s, making server-login to ops.swamp-club.com take ~90s
h13d ago
#2386
steps.<name>.outputs is never populated for model_method steps
s14d ago
#2378
auth server-login hangs after device-flow authorization is approved in browser; never completes or times out
h14d ago
#2309
Scheduled runs that suspend on an approval gate are logged as failures
s15d ago
#2308
swamp run history reports completed for failed workflow runs
h15d ago
#2310
Every webhook lifecycle line is logged twice by swamp serve
s15d ago
#2315
gcs-datastore: verify generation-precondition support at setup and in doctor; an emulator or proxy that ignores ifGenerationMatch makes locking silently unsafe
h15d ago
#2312
Property test for deferred bindings fails intermittently on a __proto__ key
h15d ago
#2247
serve: poller pull can race a handler's delete-then-push and resurrect the deleted item
h19d ago
#2246
s3-datastore: pullChanged ignores subdirs while advertising configRefresh, so serve pollers re-download the whole datastore
h19d ago
#2121
Server-side workflow resume fails on direct-type model steps
s19d ago
#2122
Data queries read unrelated artifact bodies before metadata filters reject them
h20d ago
#2188
data.latest() cannot see ephemeral data once the light expression context is used (breaks verify-reviews and verify-skills guards)
h20d ago
#2123
Expression evaluation scans all model definitions without model or file references
h20d ago
#2124
Repeated targeted lookups reparse unrelated model and workflow definitions
h21d ago
#2125
Workflow history get/logs enumerate all run contents for a full run UUID
h21d ago
← Back to list9/24/2026, 8:43:55 PM
01Issue
BugShippedSwamp CLIPublic
Assigneeshammz
Relationships
#2497 model validate blames foreign {{ ... }} text for an unclosed ${{ expression
Opened by hammz · 9/24/2026· Shipped 9/24/2026
What happens
An unclosed ${{ makes a later foreign {{ ... }} look like the problem. In a command/shell run such as
echo ${{ self.name } && docker ps --format '{{.Names}}'the expression is missing a closing brace, so it runs on until the Go template's }}. Validation (#2424) then reports {{.Names}} as template text inside a dollar-double-brace expression that "cuts it short", and suggests CEL concatenation. The real fix is the missing }.
Expected
When the text between ${{ and the closing }} does not parse as CEL, say so and point at a likely unclosed expression, instead of blaming the inner {{ ... }}.
Found by the adversarial review of #2424. inside-expression in src/domain/models/template_syntax_scan.ts.
02Bog Flow
Shipped
Click a lifecycle step above to view its details.
03Sludge Pulse