← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneeshammz
Relationships
#2946 Workflow schedule watcher and workflow edit symlink lookup ignore the managed config workflows dir
Opened by hammz · 10/2/2026· Shipped 10/6/2026
Summary
Two code paths hard-code the repo-local workflows directory instead of the directory the workflow loader reads. When managed config is active, YamlWorkflowRepository reads workflows from the config base (configBase/workflows, via resolveEffectiveWorkflowsDir and the yamlWorkflowsDir chosen in src/cli/repo_context.ts), but:
- src/libswamp/workflows/watcher.ts workflowsDir(repoDir) returns join(repoDir, workflows). ScheduledExecutionService (src/libswamp/workflows/scheduled_execution.ts) passes it to WorkflowWatcher, so swamp serve watches a directory the loader does not use. Adding or editing a scheduled workflow in the managed config workflows dir does not trigger a live schedule reload.
- src/libswamp/workflows/edit.ts createWorkflowEditDeps resolveSymlink builds join(repoDir, workflows, NAME, workflow.yaml), so the legacy symlink lookup looks in the repo-local dir under managed config.
broken_workflow.ts workflowsDirFor already uses resolveEffectiveWorkflowsDir, so the fix pattern exists in the codebase.
Expected
Both paths resolve the workflows directory the same way the loader does (resolveEffectiveWorkflowsDir, or the directory held by the YamlWorkflowRepository in the repository context).
Related
- swamp-club#2942: swamp doctor workflows checks a different directory set than the loader. Found while planning that fix and kept out of its scope.
02Bog Flow
Shipped
Click a lifecycle step above to view its details.
03Sludge Pulse
Sign in to post a ripple.