Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneeshammz

Relationships

#3078 Remove followUpActions: no model or extension can produce them

Opened by hammz · 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::Instance CloudControl model, was deleted in c07cd86a (2026-02-12). No built-in model returns follow-ups today.
  • Extension models cannot return them: wrapUserExecute in src/domain/extensions/model_kind_adapter.ts returns 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.ts and the built-in registration in model.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 followUpActions with delayMs: 2000, maxRetries: 8 completed 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 (continueCondition is dropped on the wire).

What to remove

  • FollowUpAction and MethodResult.followUpActions in src/domain/models/model.ts
  • processFollowUpActions, delay, DEFAULT_MAX_FOLLOW_UP_DEPTH and the call site in src/domain/models/method_execution_service.ts, plus their unit tests
  • The pass-through in src/domain/models/in_process_executor.ts and src/domain/models/execution_envelope.ts
  • The remote plumbing: src/domain/remote/protocol.ts, src/domain/remote/remote_dispatch.ts, src/serve/dispatch_service.ts, and serializeFollowUpActions in src/worker/exec_dispatch.ts
  • The two followUpActions passages in design/enablers/remote-execution.md

To check during triage

  • Wire compatibility: followUpActions is 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 followUpActions expecting it to work. It would already be silently ignored, so removal changes nothing for it at runtime.
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 11 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/6/2026, 4:19:51 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
hammz assigned hammz10/6/2026, 3:21:47 PM

Sign in to post a ripple.