Skip to content

fix: reject incompatible updates to running DAG nodes #546

Description

@LeXwDeX

Why

A replan fragment can replace the worker, prompt, input dependencies and output schema of a running node without restarting its existing execution. The old execution then completes against the new durable definition. DAG-A02 reproduced a new structured-output definition accepting the previous task's raw string.

Scope

Running-node replan validation and merge behavior, with tests for permitted timeout changes and explicit restarts. Do not restrict ordinary pending-node edits or completed-output reuse.

Approach

Use GPT-5.6-Sol for this bounded issue. Define the fields safe to change while execution is running and reject changed execution semantics unless the fragment explicitly restarts the node. Integrate after the atomic replan patch to keep overlapping command changes sequential.

This issue is one independently verifiable repair in the seven-finding DAG audit delivery. The authorized route is SpecGit delivery to dev, a separately tracked promotion to main, then the official release workflow. The integrator reviews each issue patch and records exact-head local and CI evidence before acceptance. Unrelated workspace modifications and deferred database maintenance #531 remain outside this delivery.

Acceptance

Changing a running node's prompt, worker, output schema, mapping or dependencies without restart fails before any durable mutation. Unchanged definitions and supported timeout updates succeed. Explicit restart applies the new definition to the new attempt. Error messages identify the incompatible node and fields.

The audit baseline is cf5fd26; the DAG runtime tree is identical on dev at 711e7b5. Regression tests must assert corrected public behavior using real DAG state and deterministic boundary stubs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions