d6b224dbb4
Found via SSH log analysis (Run #2004, task 2336): the deploy script's own echo output revealed the bug directly -- Deploy Dir: /home/kjh2064/deployments/quantengine_$RELEASE_TAG_$COMMIT tar (child): /tmp/$ARTIFACT: Cannot open: No such file or directory $ARTIFACT, $RELEASE_TAG, $COMMIT were printed as LITERAL TEXT instead of their values. Root cause: the heredoc used a quoted delimiter (<< 'REMOTE'), which correctly prevents the local runner shell from expanding anything inside it -- but the script still relied on that expansion happening for these three variables. They were never actually being passed to the remote bash process at all; this path had likely never worked. Fix: pass ARTIFACT/RELEASE_TAG/COMMIT/SERVICE_NAME as env-var prefixes on the remote `bash -s` invocation (`"VAR='...' bash -s"`), which the LOCAL shell does expand (since it's a normal double-quoted string, not part of the quoted heredoc). The heredoc body itself stays fully remote-evaluated (DEPLOY_HOME=$HOME correctly resolves to the remote user's home, not the runner's). Also fixed: COMMIT was being read from the release's `target_commitish` field, which is the branch name the tag points to ("main"), not a commit SHA -- confirmed by the same log ("Commit: $COMMIT" would have printed "main" once the heredoc bug was fixed). Since our tags are always "quant_YYYYMMDD.count.hash" (prepare-release.yml), the hash is now parsed directly out of the tag name instead.