About WORKFLOW.md in the Elixir reference implementation
#94
|
I'm trying to understand the intended deployment model for the Elixir reference implementation of Symphony, and I'm a bit confused by the documentation. The README instructs me to:
./bin/symphony ./WORKFLOW.mdIf I follow these instructions literally, I end up with two copies of
At that point, it's not clear to me which one is the source of truth. The specification describes So my questions are:
I suspect I'm missing something about the intended deployment model, so I'd appreciate any clarification. |
Replies: 1 comment
|
You’re reading the implementation correctly: Symphony does not discover or load The CLI expands that argument to an absolute path and registers it before startup. The workflow store then watches and reloads that same path. So I would keep one maintained copy in the target project and pass that exact file to the Symphony binary: cd /path/to/symphony/elixir
mise exec -- ./bin/symphony \
--i-understand-that-this-will-be-running-without-the-usual-guardrails \
/absolute/path/to/your-project/WORKFLOW.mdWith a downloaded release binary, the same pattern is: /path/to/symphony-v... \
--i-understand-that-this-will-be-running-without-the-usual-guardrails \
/absolute/path/to/your-project/WORKFLOW.mdThat project file is then both the version-controlled source of truth and the daemon’s active configuration. A per-issue clone may naturally contain its own checked-out One useful caveat: valid edits to the active file are hot-reloaded (the current store polls about once per second). If a later edit is invalid, Symphony keeps the last known-good workflow and logs the reload error, as the README notes. I agree the setup wording can read as though |
You’re reading the implementation correctly: Symphony does not discover or load
WORKFLOW.mdfrom each repository cloned byafter_create. The active workflow is the single file passed to the Symphony process (orWORKFLOW.mdin the process working directory when no path is supplied).The CLI expands that argument to an absolute path and registers it before startup. The workflow store then watches and reloads that same path.
after_createonly runs the configured shell hook with the new issue workspace as its working directory; it does not change the workflow source.So I would keep one maintained copy in the target project and pass that exact file to the Symphony binary:
cd /path/to/symphony…