Skip to content

Fix regressions from #772, #778 and #780 before 1.5.4 - #793

Merged
Sev7eNup merged 1 commit into
mainfrom
fix/release-regressions
Nov 4, 2026
Merged

Sev7eNup merged 1 commit into
mainfrom
fix/release-regressions

Conversation

@Sev7eNup

@Sev7eNup Sev7eNup commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Three regressions that came in with #772, #778 and #780 and are not released yet.

Duplicate output variables (#789)

#778 made the alias map throw on two active nodes with the same outputVariable. Before that, duplicating or pasting copied the alias as is, and only the linter flagged it, so installations can have such workflows stored. After the upgrade they would no longer parse: their schedule, file, database and event-log triggers would silently stop and every run would fail.

The alias map now tolerates a stored duplicate and lets the last node keep the alias, which is what the engine did when the workflow was saved. Save, publish and import still reject new duplicates with dup-output-variable, and the designer flags the pair, so it gets fixed on the next save. Annotation nodes are skipped, as in the validator. There is no data migration, the same approach ADR 0013 took for direct fan-in.

Renaming an alias also rewrites {{alias.…}} inside literal condition operands again. The engine resolves templates there, so leaving them behind silently picked the wrong branch.

waitForCondition and scheduledTask (#790)

  • The portOpen lint accepted only a JSON number. It now also takes a template or a numeric string, like the engine, so "port": "{{disc.param.selfPort}}" in the test suite no longer blocks the pre-publish checklist.
  • scheduledTask registered a managed service account with -LogonType ServiceAccount. On a lab host with a gMSA, that registers fine but the task never runs (0x41303). With -LogonType Password it runs as the gMSA (whoami = corp\q-sdvorch2$). Built-in accounts keep ServiceAccount.

Test-suite release check (#776)

  • A first install now creates the webhook workflow as an empty, unlocked draft before it judges prerequisites. NP_TESTSUITE_WEBHOOK_URL therefore exists in time, and both webhook workflows are installed enabled.
  • RELEASING.md runs the verifier with the same -Profiles continuous, integration the install uses.

Tests run

  • Engine.Tests, filtered to WorkflowDefinitionDocument, WorkflowDefinitionCache, ScheduledTaskActivity, WorkflowAnalyzer and StructuralValid: 166 passed
  • Vitest: activityConfigFacts, editorGraphHelpers, workflowFragment, propertyConfigs.activities, useWorkflowClipboard, workflowLint: 357 passed; tsc --noEmit and ESLint on the touched files clean
  • scripts/test-suite/Test-TestSuiteSafety.ps1 (89 assertions) and Test-WorkflowCatalogue.ps1 passed
  • The gMSA check on the lab host described above

Closes #789
Closes #790
Closes #776

🤖 Generated with Claude Code

- A workflow saved earlier with two active nodes sharing an output
  variable loads, triggers and runs again. The last node keeps the
  alias, as before; saving and importing still reject new duplicates.
  Annotation nodes no longer count as alias owners (#789).
- Renaming an alias also rewrites templates inside literal condition
  operands, since the engine resolves them (#789).
- The portOpen lint accepts a templated or quoted port, as the engine
  does (#790).
- scheduledTask registers a managed service account with -LogonType
  Password. With ServiceAccount the task was registered but never ran;
  checked on a lab host (#790).
- A first test-suite install creates the webhook workflow before it
  judges prerequisites, so both webhook workflows are enabled, and the
  release check verifies the integration profile it installs (#776).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Sev7eNup
Sev7eNup merged commit 7f5ab3c into main Nov 4, 2026
17 checks passed
@Sev7eNup
Sev7eNup deleted the fix/release-regressions branch November 4, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment