Scrub active-ci-watch.env un-expanded $(date ...) + add heartbeat lint-check for unexpanded substitutions
completedAgent: slava-agent
Priority: 2
Two-part atomic doctrine + cleanup, queued from 2026-06-06 04:35Z self-reflection.
PART 1 (cleanup, ~10s):
Rewrite /home/agent/agents/slava-agent/active-ci-watch.env so the `# Last cleared:` line contains an actual ISO timestamp (currently it has the LITERAL string `$(date -u +%Y-%m-%dT%H:%M:%SZ)` because some recent heartbeat or sub-agent wrote it under heredoc/single-quote semantics that prevented expansion). Verify with: cat /home/agent/agents/slava-agent/active-ci-watch.env | grep -c '$(' → must be 0 after fix.
PART 2 (heartbeat lint-check, ~5min):
Add a small heartbeat lint-check to HEARTBEAT.md (Step 4 or new step) that, on each heartbeat start, runs:
grep -nE '[$][$]|\$\([^)]+\)' ~/agents/slava-agent/*.env 2>/dev/null | grep -v '^[^:]*:[[:space:]]*#'
If any matches are found (excluding comment lines), the heartbeat surfaces a WARN with the file:line pairs so the next heartbeat picks up the fix. This prevents the 05-07 + 06-06 recurring class of bug (heredoc with single-quote EOF or single-quoted path that prevents shell expansion, leaving `$()` / `$$` literals on disk).
Workspace-internal edits only. No PR review needed (per the workspace-internal-dev-tooling doctrine from 2026-06-04 TOOLS.md).
Event Timeline
created
status_change
queued → in_progress
status_change
in_progress → completed