#3791
flaky: LitestreamReplicator 'a failed launch releases its lock probe, so the next acquire starts a sidecar' fails by timing in verify-build
s47m ago
#3733
typed-secrets 4.4: persistence and resume hold references: rehydration stops reading the vault, every persisted copy uses the persisted form, and run events are masked
z1h ago
#3798
data_writer_property_test: a secret holding a newline and a literal backslash-n escapes the persisted-content property (seed 1648929202)
z1h ago
#3785
typed-secrets: the accessor adapter reads a legacy row stamped with the empty namespace as foreign, so its tagged fields stay reference text on the typed path
z3h ago
#3790
typed-secrets query view: route a row's JSON content by whether the adapter adapted the record, not by the service's namespace rule
z3h ago
#3789
flaky: for_each_name_property_test lets the text around a sentinel equal the secret's value, so the untyped value search replaces both and the property fails by seed
z4h ago
#3732
typed-secrets 4.3: the expression-facing query view registers Secret in DataQueryService
z5h ago
#3714
CEL duration arithmetic is off by a second when a duration has negative nanos (cel-js 7.6.1)
s7h ago
#3731
typed-secrets 4.2: live and reconstructed step outputs and child outputs return references through the accessor adapter
z8h ago
#3773
A coded UserError a model method throws reaches a workflow step without its code, because InProcessExecutor keeps only the message
z9h ago
#3779
Dashboard Workflows page takes ~19s on a serve with many extension workflows: workflow.search resolves each workflow's owner with a full extension-workflow scan
z9h ago
#3670
codegen: BROKEN_REGEXES override for the @swamp/aws/invoicing InvoiceUnit name lacks the u flag, so it rejects ordinary names
s1d ago
#3742
dashboard: run page polling stacks history.get and history.logs requests while serve is slow
z1d ago
#3741
serve: add child spans and attributes to workflow.history.get (and run_summary/run_search) to diagnose slow dashboard loads
z1d ago
#3740
serve: webhook-triggered workflow runs can't be cancelled — cancel can't find them, so it reports serve's own pid as "the process running it is still alive"
z1d ago
#3726
A workflow step fails on a static validation error in a method it does not invoke, where swamp behavior run of the same method succeeds
z1d ago
#3739
serve: a run orphaned by a container restart can't be cancelled — the restarted serve reuses the dead owner's pid, so cancel reports the owner still alive
z10h ago
#3735
typed-secrets 4.6: turn the typed path on for every entry point, remove the internal option, and delete the regular-expression rewrite, the value search and the plaintext resolution of tagged fields
1d ago
#3734
typed-secrets 4.5: the inline resolutions refuse or mask: placement, task selectors, child references and deferred targets refuse secrets, assert messages mask them, and the deprecated resolvers go
1d ago
#3730
typed-secrets 4.1: workflow passes bind sentinels as Secrets: typed guards and asserts, forEach items and identities, child bindings, webhook inputs, and the synchronous authorization step
z11h ago
#3628
typed-secrets 3.5: local entry points, validation diagnostics, context.runModel and model.method delivery
z1d ago
#3708
model.method in a workflow guard fails with 'Do not know how to serialize a BigInt' when its inputs hold an int
z1d ago
#3706
data query: filter on data lifecycle so deleted resources can be excluded
z1d ago
#3713
CEL expression results that hold a timestamp, duration or uint become an empty object
z1d ago
#3707
Catalog rebuild restores pre-rename versions of a name renamed away and written again
z1d ago
#3529
Remote resolveSecret allowlist is always empty for workflow steps that use vault.get
z1d ago
#3686
swamp issue redacts git commit SHAs as secrets and fast-check replay paths as IP addresses
s2d ago
#3627
typed-secrets 3.4: destination refusals, identifier stand-ins, shell safety and masking
z2d ago
#3530
Remote readResource does not apply the legacy schema fallback for untagged sensitive records
z2d ago
#3685
Flaky: datastore_v3_outbox_model_property_test throws MayLandLaterError on a random seed (aged commit, failed discard-and-mark checkpoint, power cut)
z2d ago
#3645
v3 outbox model property test fails: a commit dropped after a failed append-discard-and-mark reports MayLandLaterError instead of the expected outcome
2d ago
#3606
Workflow step dataOutputOverrides vaultName is accepted but silently dropped
s2d ago
#3626
typed-secrets 3.3: sensitive-field accessors, data-origin sentinels and reference validation
z2d ago
#3641
Generated vault keys carry raw data-name and vary characters that strict vault providers reject
3d ago
#3625
typed-secrets 3.2: vault.get as a CEL function, bare-token rewriting, AST extraction and up-front existence checks
z3d ago
#3619
typed-secrets 3.1: the production Secret, its refusals, the fault context, the container rule and the boundary conversion, behind the internal option
z3d ago
#3620
Flaky test: extension_pull_dependency_conflict_test fails with 'failed to copy esbuild binary' during deno bundle
3d ago
#3609
Extension tarball analyzer ignores webhook entry points
3d ago
#3608
Registry drops contentMetadata.extensions (method grafts) at confirm-push
3d ago
#3041
digitalocean codegen leaves an orphaned security_secret.ts model file after its endpoint left the spec
s6d ago
#3552
A --repo-dir or SWAMP_REPO_DIR through a symlink fails with 'unable to open database file'
s6d ago
#3543
@swamp/1password: vault delete of a missing item probably fails instead of being a no-op
6d ago
#3544
@swamp/1password: item or vault names containing 'authorization' are misreported as auth failures
s6d ago
#3558
typed-secrets 2.2: VaultSecretBag entries hold references, one registry per run, 128-bit sentinels
z6d ago
#3214
Show wait keys and pending signals to remote clients and the dashboard
z6d ago
#3560
Flaky: LitestreamReplicator.acquire 'concurrent acquires in one process share one sidecar and one hold' fails 'no hold leaked' under full-suite load
z6d ago
#3563
VaultService.requireExistenceProvider labels the vault instance name as its type
z6d ago
#3561
VaultService capability errors label the vault instance name as its type
z6d ago
#3557
typed-secrets 2.1: VaultExistenceProvider, its conformance suite, and has on the built-in providers
z6d ago
#3559
MockVaultProvider.get and delete throw synchronously instead of rejecting
z6d ago
#3551
typed-secrets 1.2: pin the Secret Proxy, refusal set and container rule on cel-js 7.6.1
z6d ago
#3554
issue-lifecycle: pr_merged and ship report success and advance the phase when swamp-club is unreachable, writing nothing upstream
6d ago
#3548
serve check-config crashes with a TypeError when a list-valued auth key is a string
z6d ago
#3547
access grant list --server shows user subjects as user:user:<name>
z6d ago
#3524
Flaky: process_bundle_prober_test 'stopping a host that has already exited lists no children under its pid' fails under full-suite load
z6d ago
#3512
typed-secrets 0.4: characterize worker secret authorization and control-plane secret traffic
z7d ago
#3513
issue-lifecycle: an approved plan cannot be sent back to planning
z7d ago
#3517
typed-secrets 1.2: minimal opaque Secret, CelVaultNamespace receiver, policy inventory and evaluation frame
6d ago
#3510
typed-secrets 1.1: commit the cel-js 7.6.1 probe harness as pinned behavior tests
z7d ago
#3509
typed-secrets 0.1: land the typed-secrets plan as a design enabler doc
z7d ago
#3504
swamp update: a slicker, colorful download progress bar that ends with a newline
z7d ago
#2333
gcs-datastore: a failed lock read is reported as "unlocked" — #2298 in the GCS backend
s7d ago
#3404
A manual worker verify racing an enrollment probe can leave a healthy worker unverified until it reconnects
s7d ago
#3487
bundle freshness: a one-off deno info failure leaves a source on the in-directory fallback for good
z7d ago
#3472
serve shutdown waits for an unsignalled run index rebuild: the continuation sweep's boot pass and request-led rebuilds cannot be stopped by SIGTERM
z8d ago
#3465
serve: handlers that sanitize an error for the client never log the original, so path-bearing failures are undiagnosable
z8d ago
#3402
literal() output in a step's inputs logs repeated Refusing to evaluate expression warnings
z8d ago
#3480
Read non-string sensitive resource fields back with their type
8d ago
#3468
serve and swamp dashboard shutdown waits seconds for the run index warm-up: the plain index parse is not abortable, and the warm-up waits on request-led loads it joined (regression from #3105)
z8d ago
#3467
Run index snapshot cache keeps serving a stale run status: ctime is only second-resolution so in-place same-size rewrites alias the stamp, and snapshots are cached even when repair could not write the index (regression from #3105)
z8d ago
#3461
Flaky: serve_v3_extension_lockfile_test 'serve extension.pull commits the new entry' fails under full-suite load with extension_pull_failed
z8d ago
#3470
Run index repair-by-stat misses an in-place, same-size record rewrite that restores mtime within the same second as its entry: ctime is reported in whole seconds
8d ago
#3450
Dashboard: an idle, visible tab keeps counting runs that have aged out of a preset time range
z8d ago
#3449
Dashboard: Models and a model's page re-send model.output.search every minute on a preset time range
z8d ago
#3452
Concurrent run writers leave finished runs stuck as running in the run index: repairIndex returns early once counts agree, so lost updates are never healed (regression from #3105)
z8d ago
#3455
Run index updates race across processes: concurrent writer processes can lose each other's index entry updates
z8d ago
#3444
Dashboard: a live run page polls a full workflow.run.search every 2.5 s, and time-range presets refetch the run summary every minute
z8d ago
#3443
Dashboard Workflows, workflow and run pages are slow with large history: workflow.run.summary and workflow.run.search read every run index of every workflow on each request
z8d ago
#3412
README, design docs and agent-constraints examples still teach swamp model commands
s8d ago
#3410
Decide and add behavior spellings for --model flags, enum values and SWAMP_MODELS_DIR outside the behavior tree
s9d ago
#3411
Telemetry records swamp behavior and swamp model invocations under different command names
s9d ago
#3409
swamp behavior help, hints and root help still say model in places
s9d ago
#3374
A new or edited extension source is imported at startup, so one that exits, hangs or prints at import breaks every command
z9d ago
#3400
Workflow step arguments pass any unknown ${{ }} root through; limit pass-through to known foreign roots
z9d ago
#3388
A worker that fails its enrollment probe becomes idle and schedulable in memory
z9d ago
#3401
A global argument that evaluates to swamp-namespace expression text is silently dropped, and literal() cannot pass it through
9d ago
#3393
Flaky test: AccessDataPoller "a grant created by a real method run through A stays staged on A and reaches B" fails under full-suite load
z9d ago
#3294
WorkerGateway.dispatch leaks a capacity slot when recording the busy status fails
z9d ago
#3365
vault type search shows an extension vault type under its type id with no description, and cannot find it by name or description
z9d ago
#3389
literal() output is refused in a direct step globalArgs, so foreign ${{ }} text has no escape there
z8d ago
#3355
serve: a run whose crashed owner was reaped by a peer stays running on the restarted owner
z9d ago
#3309
workflow resume refuses a wait that has an applicable pending signal
z9d ago
#3213
Accept early signals through swamp serve
z9d ago
#3319
datastore namespace list --json reports a corrupt .namespace.json as an unexpected exception with a stack trace
s10d ago
#3320
signal_test fails on main: a signal by key handed over by the sweep is not answered taken
z10d ago
#3316
datastore namespace migrate treats the repo-local catalog as user data: it cannot be re-run, resumed, or reversed after a read
z10d ago
#3307
A signal by key can be answered pending or taken when that is not what happened to it
z10d ago
#3308
swamp serve lists every wait-key record on each continuation pass once any pending signal has lapsed
z10d ago
#3317
model method run --timeout exits 0 and prints nothing when the timeout cancels the run
z10d ago
#3306
Cross-namespace data.* reads return empty attributes in model method run and workflow run
z10d ago
#3212
Hold a signal that arrives before its wait opens
z10d ago
#3298
swamp-uat: the SIGTERM drain test does not check that the run succeeded
10d ago
#3293
A running dispatch counts twice against worker capacity, so a --concurrency 2 worker queues a step while it has a free slot
z10d ago
#3295
data.latest("otherns:model", name) returns the caller's own record when a local model has that name
z10d ago
#3286
Record-typed arguments are not JSON-parsed from plain key=value, unlike array and object arguments
z10d ago
#3244
swamp model cancel <model> cancels a run of a different model of the same type and reports it under the named model
z11d ago
#3074
serve HA: worker enrollment on a replica that lacks the enrollment token's definition may create a second definition (unverified)
s11d ago
#3211
Deliver a signal by key through swamp serve
z13d ago
#3202
A garbled nested run record crashes a parent resume with a YAML stack trace
z13d ago
#2867
Cancel, reject and supersede of a parent run should settle its suspended nested child runs
z13d ago
#3221
workflow recover misjudges whether an unknown step is guarded: forEach iterations read as unguarded, and a same-named step in another job is matched
z13d ago
#3220
A log line with a closing brace but no opening brace prints the brace doubled
13d ago
#3210
Signal a wait by workflow and key
z13d ago
#3218
manual_approval timeout is never enforced on a forEach-expanded gate
z13d ago
#3217
workflow run reports a forEach-expanded approval gate as waiting on a nested run
z13d ago
#3209
Let a wait_for_signal step declare a key held by one open wait at a time
z13d ago
#3110
Show signal waits to remote clients and the dashboard
z14d ago
#3195
extension source add imports src/cli/mod.ts, so every change lists extension as an affected command
z14d ago
#3045
Show expired approval gates as expired, with a Cancel action in the dashboard
z14d ago
#3178
Lazy hydration: content readers bypass hydration (stream, stale raw after append); add one ensuring read path and a fitness test
14d ago
#3179
Lazy hydration: expressions reading another model's data get empty attributes; hydrate a step's read set before evaluation
s14d ago
#2922
Tell timeouts apart from cancels in method-run records, and review the hidden 30 s fallback timer for step-called model methods
z14d ago
#3109
Settle expired signal waits from swamp serve
z14d ago
#3183
serve never continues a signalled run after a manual resume re-entered its open wait
z14d ago
#3108
Resume signalled workflow runs automatically under swamp serve
z14d ago
#3177
audit verify is hidden by accident: auditCommand.hidden() in mod.ts hides the last subcommand, not audit
z14d ago
#3175
swamp help --json: emit aliases, hidden commands, and whether an option takes a value
z14d ago
#3161
GCS datastore: implement fetchContent, a read of one remote file that writes nothing locally
z14d ago
#3160
S3 datastore: implement fetchContent, a read of one remote file that writes nothing locally
z14d ago
#3136
serve: token secret migration repoints a token even when copying its OAuth access token failed
s15d ago
#3166
Extension quality check output carries ANSI codes when FORCE_COLOR is set
z15d ago
#2844
datastore setup can overwrite an existing remote config tier when it moves an in-repo tier into an extension datastore
s15d ago
#3159
Datastore sync: read one remote file without writing it to the local cache (fetchContent)
z15d ago
#3157
A cancelled shell step can fail with a lock timeout instead of reporting as cancelled
z15d ago
#3164
Docs: document DatastoreSyncService.fetchContent in the datastore provider reference
14d ago
#3152
datastore lock release gives the wrong reason when the lock file is caught mid-write
z15d ago
#3111
A nested structural swamp that outlives the run that started it keeps skipping that run's lock while the holder writes
z15d ago
#3147
Flaky test: WalSink pruning the queue under a hung downstream keeps the checkpoint delivered segments wait on
z15d ago
#3148
A lock file read during its holder's heartbeat rewrite is treated as no lock
z15d ago
#3145
Record the commands affected by a change in the verification attestation
z15d ago
#3094
Deliver workflow signals through swamp serve
z15d ago
#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)
z16d ago
#3093
Deliver workflow signals through a write-once outcome record instead of writing the run record
z16d ago
#2982
Forward held-lock identity over --server so a loopback nested swamp does not wait on its caller's lock
z16d ago
#2983
A nested structural swamp on a same-host remote worker waits on its own step's lock held by swamp serve
z16d ago
#2981
Fail fast when nested structural commands under parallel runs wait on each other's locks
z16d ago
#3079
Docs: remove followUpActions from the MethodResult reference in the extension model manual
z16d ago
#3092
signal_test: already-settled test fails by chance when a random UUID spells the sender name
16d ago
#3068
Add a wait_for_signal workflow step that pauses a run for a JSON message
z16d ago
#3059
run doctor through serve interrupts a live run of another serve instance when no heartbeats are recorded
z16d ago
#3081
Flaky test: WalSink replayed segments are delivered before events written after replay leaves one WAL segment
z16d ago
#3078
Remove followUpActions: no model or extension can produce them
z16d ago
#2946
Workflow schedule watcher and workflow edit symlink lookup ignore the managed config workflows dir
z16d ago
#3084
main is red: repository_dirty_coverage_test fails for UnifiedData.collectGarbage(orphaned deferred write)
16d ago
#3082
isProcessGone always reports alive on Linux under the test task permissions, failing 9 tests on main
z16d ago
#3083
Flaky test: WalSink replayed segments are delivered before events written after replay
16d ago
#2893
serve: relative tls cert-file/key-file and --config resolve against the working directory, not the repository
z16d ago
#2975
findBySpec/findByTag lose a workflow step's output after a version is deleted, pruned or rolled back
s16d ago
#3073
serve HA: pull a token's definition on an auth miss so a peer accepts a new token at once
16d ago
#2917
Run tracker keeps some interrupted workflow rows forever: retention waits for markSettled, which several paths never call
16d ago
#3051
run doctor reads every run record on each run to rebuild the run indexes
zs16d ago
#3037
Serve audit: two sinks with the same name share one emitter cursor, so the second never receives events
17d 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
s17d ago
#3043
Flaky test: ModelResolver data accessors for a renamed model return the earlier id's record from findBySpec
s17d ago
#2985
data query --limit returns fewer live records than exist and reports limited: false when stale catalog rows fall inside the limit
s17d ago
#2987
data get: help example passes --run latest, which is not a recognised run id
s17d ago
#2905
workflow reject leaves sibling gates waiting_approval and dependents pending in a failed, retryable run
z17d ago
#2920
workflow cancel cannot cancel a suspended run whose workflow file was deleted, and cancel --all silently skips it
z17d 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
z17d ago
#2919
workflow approve racing workflow cancel loses the cancel: the run returns to suspended after cancel reported cancelled
z17d ago
#2972
data query: does not follow data rename forwarding that data get follows
z17d ago
#2994
Unit tests share fixed /tmp catalog paths, so concurrent runs corrupt them and fail every later run
z17d ago
#2968
data query: renamed data items are not found by their old name
z20d ago
#2960
data query: model lookup by id and orphan recovery parity with data get
z20d ago
#2899
workflow approve on a run that is not suspended prints a fatal error with a stack trace
z20d ago
#2957
data query: no way to target a workflow's latest run
z20d ago
← Back to list10/6/2026, 4:19:51 PM
01Issue
FeatureShippedSwamp CLIPublic
Assigneeszack
Relationships
#3078 Remove followUpActions: no model or extension can produce them
Opened by zack · 10/6/2026· Shipped 10/6/2026
Description
Found while triaging swamp-club#2929. followUpActions (a method result asking the executor to call another method on the same definition, with delayMs, maxRetries and continueCondition) has had no producer since February 2026, and no extension can reach it. Remove the feature rather than keep maintaining it.
Why it is unreachable
- Its only producer, the built-in
AWS::EC2::InstanceCloudControl model, was deleted in c07cd86a (2026-02-12). No built-in model returns follow-ups today. - Extension models cannot return them:
wrapUserExecuteinsrc/domain/extensions/model_kind_adapter.tsreturns only{ dataHandles }, at both places a user method is converted (new model and extension of an existing model). This has been the case since 7e79e070 (2026-02-10). - Those are the only two ways a model definition is registered (
model_kind_adapter.tsand the built-in registration inmodel.ts), and a worker executes the same wrapped methods, so the remote path cannot produce them either. - Confirmed with the installed binary: an extension method returning
followUpActionswithdelayMs: 2000, maxRetries: 8completed in 17 ms and the follow-up method never ran. - It is not documented for extension authors. The only mentions are in
design/enablers/remote-execution.md.
Cost of keeping it
- The retry loop ignores the run's abort signal (swamp-club#2929) and is exercised only by its own unit tests.
- The remote-execution work carried the plumbing across the worker boundary, with a documented known divergence (
continueConditionis dropped on the wire).
What to remove
FollowUpActionandMethodResult.followUpActionsinsrc/domain/models/model.tsprocessFollowUpActions,delay,DEFAULT_MAX_FOLLOW_UP_DEPTHand the call site insrc/domain/models/method_execution_service.ts, plus their unit tests- The pass-through in
src/domain/models/in_process_executor.tsandsrc/domain/models/execution_envelope.ts - The remote plumbing:
src/domain/remote/protocol.ts,src/domain/remote/remote_dispatch.ts,src/serve/dispatch_service.ts, andserializeFollowUpActionsinsrc/worker/exec_dispatch.ts - The two
followUpActionspassages indesign/enablers/remote-execution.md
To check during triage
- Wire compatibility:
followUpActionsis an optional field on the dispatch result schema, so an orchestrator and worker on different versions must still interoperate once it is gone. - Whether any published extension returns
followUpActionsexpecting it to work. It would already be silently ignored, so removal changes nothing for it at runtime.
02Bog Flow
Shipped
Click a lifecycle step above to view its details.
03Sludge Pulse