feat: route profiled ops runs through Glas

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02b6f-7db1-7222-918b-e813a6bda38d
This commit is contained in:
tegwick 2026-08-22 23:55:29 +02:00
parent 68ab94581a
commit 0f01c3e421
17 changed files with 895 additions and 11 deletions

View file

@ -9,16 +9,24 @@ Does **not** require issue-core or Forgejo for FI / Binky-style ops.
```text
activity-core emit_tasks
→ INSERT ops_run (open) + dual-write activity_task_spawn
→ INSERT ops_run (open, optional harness_profile_ref) + activity_task_spawn
rein-aharness claim-loop
POST /ops-runs/claim
select_approach(labels, definition, hint)
execute (fi-research-brief | brief-daily | mail-* | agent-session)
harness_profile_ref present? ─ yes → Glas ExecutionRequest → gateway
│ no
└─→ select_approach(labels, definition, hint) → legacy executor
POST complete | fail(+reopen)
```
`harness_profile_ref` is authoritative under ACT-ADR-006. A profiled row never
consults `approach_hint`, `select_approach`, or a legacy executor, including
after profile resolution refusal. The claim worker sends the complete
`GatewayResult` to Activity Core; Activity Core persists its allowlisted
`ExecutionEvidence` and drops direct tool output/error. Profile-absent rows keep
the legacy coexistence path until the migration flag is enabled upstream.
## Environment
| Variable | Default | Meaning |
@ -55,7 +63,8 @@ export ACTIVITY_CORE_WORKER_TOKEN=… # from actcore-runtime-secre
| labels `agent-session` | agentic `run` (TaskSpec) |
| none | fail ops_run (no silent drop) |
Optional `approach_hint` on the ops_run overrides matching.
For a profile-absent legacy row, optional `approach_hint` overrides matching.
It has no effect when `harness_profile_ref` is present.
Add a row: edit `rein_aharness/approaches.py` (`APPROACH_RULES` + `execute_approach`)
and tests in `tests/test_approaches.py`. Prefer cheapest correct path
@ -91,6 +100,8 @@ rein-aharness run --from-issue-core
```bash
# From rein-aharness checkout on railiance01
python3 -m venv .venv
.venv/bin/pip install -e . -e ../llm-connect -e ../sand-boxer -e ../glas-harness
./deploy/scripts/install-claim-loop-user.sh
# Or manually: