Phase 1 Step 3 — migrate research-session.sh and pipeline-health-check.py off Forgejo onto GitHub living-ip/decision-engine. eval-dispatcher.sh / eval-worker.sh documented as dead code (replaced by daemon).
74 lines
3.3 KiB
Markdown
74 lines
3.3 KiB
Markdown
# Deprecated: eval-dispatcher.sh + eval-worker.sh
|
|
|
|
## Why these are NOT being migrated to GitHub
|
|
|
|
Both scripts are dead code. The pipeline-v2 daemon replaced them.
|
|
|
|
### Evidence
|
|
|
|
```bash
|
|
# Last invocation of either script — March 12, 2026
|
|
$ ls -la /opt/teleo-eval/logs/eval-{dispatcher,worker}-*.log | tail -3
|
|
-rw-rw-r-- 1 teleo teleo 4133 Mar 12 12:03 eval-worker-0-PR821.log
|
|
-rw-rw-r-- 1 teleo teleo 4296 Mar 12 12:03 eval-worker-2-PR678.log
|
|
-rw-rw-r-- 1 teleo teleo 7405113 Mar 12 12:03 eval-dispatcher.log
|
|
|
|
# `teleo-eval.service` does NOT run these — it runs webhook.py
|
|
$ systemctl cat teleo-eval.service | grep ExecStart
|
|
ExecStart=/usr/bin/python3 /opt/teleo-eval/webhook.py
|
|
|
|
# No cron entries reference them
|
|
$ crontab -l | grep -E "eval-(dispatcher|worker)"
|
|
(no output)
|
|
|
|
# Live eval logic runs inside teleo-pipeline.service daemon
|
|
$ systemctl cat teleo-pipeline.service | grep ExecStart
|
|
ExecStart=/opt/teleo-eval/pipeline/.venv/bin/python3 /opt/teleo-eval/teleo-pipeline.py
|
|
|
|
# Daemon imports evaluate_cycle, not the shell scripts
|
|
$ grep -r "evaluate_cycle\|merge_cycle" /opt/teleo-eval/teleo-pipeline.py
|
|
from lib.evaluate import evaluate_cycle
|
|
from lib.merge import merge_cycle
|
|
```
|
|
|
|
### What replaced them
|
|
|
|
- `lib/evaluate.py::evaluate_cycle` — the in-daemon equivalent of `eval-dispatcher.sh` + `eval-worker.sh`. Runs continuously as a stage in the pipeline daemon.
|
|
- `lib/merge.py::merge_cycle` — handles the merge-after-approval step.
|
|
|
|
Both fully functional. PRs continue to get reviewed and merged through the daemon, not the shell scripts.
|
|
|
|
### Why we didn't migrate them anyway
|
|
|
|
Phase 1 scope is migration, not preservation. Migrating dead code:
|
|
- Adds maintenance surface without runtime value
|
|
- Costs ~8h of mechanical Forgejo→GitHub URL swapping
|
|
- Adds attack surface (scripts that touch the codex but no one watches)
|
|
- Risks Chesterton's Fence violation (the scripts were retired for a reason; we don't fully know the reason without archaeology)
|
|
|
|
The pipeline daemon's `lib/evaluate.py` and `lib/merge.py` still reference Forgejo internally (via `lib/forgejo.py`). Those migrations are part of Billy's pipeline-v2 productionization sprint, explicitly out of Phase 1 scope per `phase1-instructions.md`:
|
|
|
|
> Out of scope: Pipeline-v2 daemon changes (Billy productionizes).
|
|
|
|
### If you ever need to re-activate these scripts
|
|
|
|
They're preserved in git history. To re-activate:
|
|
1. Restore from git
|
|
2. Apply the migration patterns documented in `phase1-step3-script-migration.md` (Forgejo→GitHub URL swap, Bearer auth, x-access-token URL rewrite for git operations)
|
|
3. Reconnect to either cron or webhook.py invocation
|
|
4. Test against `living-ip/decision-engine` not Forgejo
|
|
|
|
Don't re-activate without understanding why they were retired. Talk to m3ta first.
|
|
|
|
### Files staying as-is
|
|
|
|
```
|
|
/opt/teleo-eval/eval/eval-dispatcher.sh ← preserved, points at Forgejo
|
|
/opt/teleo-eval/eval/eval-worker.sh ← preserved, points at Forgejo
|
|
/opt/teleo-eval/eval/tier0-gate.py ← preserved, related helper
|
|
/opt/teleo-eval/eval/*.log ← old logs, March 2026
|
|
```
|
|
|
|
These will silently break when Forgejo is decommissioned (Phase 1 Step 7). That's fine — they're already dead code; the break is a discovery mechanism, not a regression.
|
|
|
|
If Billy decides to delete them entirely during productionization: also fine, they're recoverable from git history.
|