Incident model follow-ups: per-node retry policy and resume form (#3604207)

Follow-ups to the incident model (#3604207), continuing on the same issue fork.

Per-node retry policy

The dead-letter cutoff is no longer a fixed 3:

  • a max_advance_attempts setting (default 3) sets the site-wide default;
  • a node's retry.max_attempts overrides it, and retry.backoff delays retries (via DelayedRequeueException, honored by cron's queue runner);
  • a Retry policy NodeFeature edits both in the modeler (applies to any task node; gateways excluded);
  • the engine resolves node -> setting -> constant. EngineDeadLetterTest covers the per-node and global cutoffs.

Resume with variables

  • a Resume action on each incident opens a form listing the instance's variables (JSON-encoded, so structured values can be corrected); submitting writes the edits and retries the branch, resolved as resumed;
  • resumeIncident() now sets its own resolution rather than delegating to retry, so retry and resume read distinctly in the trail;
  • covered by a kernel test (variable write + completion) and a functional test (the form resolves the incident over HTTP).

Tests

Core kernel suite green (80); orchestra_cm kernel green (13, the feature-list test now expects the retry feature); incident UI functional tests pass in the container.

Migration (pre-1.0)

No update hook; the new config key is picked up on fresh installs and is read with a safe default when absent, so existing sites need only a cache rebuild.

Merge request reports

Loading