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:
parent
68ab94581a
commit
0f01c3e421
17 changed files with 895 additions and 11 deletions
103
workplans/REIN-A-0004-glas-profiled-ops-runs.md
Normal file
103
workplans/REIN-A-0004-glas-profiled-ops-runs.md
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
---
|
||||
id: REIN-A-0004
|
||||
type: workplan
|
||||
title: "Profile-driven ops-run execution through Glas"
|
||||
domain: infotech
|
||||
repo: rein-aharness
|
||||
status: active
|
||||
owner: codex
|
||||
topic_slug: rein-aharness
|
||||
priority: high
|
||||
created: "2026-08-22"
|
||||
updated: "2026-08-22"
|
||||
related:
|
||||
- ACTIVITY-WP-0032
|
||||
- ACT-ADR-006
|
||||
---
|
||||
|
||||
# REIN-A-0004 — Profile-driven ops-run execution through Glas
|
||||
|
||||
## Origin
|
||||
|
||||
Activity Core handoff `4ed3422a-b42c-4408-843c-f63c3e86cf3e` reports that
|
||||
the claim consumer currently drops `harness_profile_ref` and `execution_refs`.
|
||||
A profiled row would consequently enter the legacy `select_approach` path and
|
||||
could execute a different constellation than the producer authorized.
|
||||
|
||||
The related handoff `69710949-9726-4fd0-aef3-1c7075870410` reports that
|
||||
llm-connect provider errors lose their safe structured status at this boundary,
|
||||
making a provider 401 look like an undifferentiated 502 transport failure.
|
||||
|
||||
## Carry the profile selector and attribution references
|
||||
|
||||
```task
|
||||
id: REIN-A-0004-T01
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
Extend `OpsRun.from_api` with `harness_profile_ref` and the allowlisted
|
||||
`execution_refs`. Preserve the queued selector verbatim for the authoritative
|
||||
Glas resolver; do not translate it into an approach hint.
|
||||
|
||||
**Done 2026-08-22:** both fields are normalized onto `OpsRun` and covered by
|
||||
the API projection test.
|
||||
|
||||
## Route profiled rows through the Glas gateway
|
||||
|
||||
```task
|
||||
id: REIN-A-0004-T02
|
||||
status: done
|
||||
priority: high
|
||||
```
|
||||
|
||||
For a row with a profile, resolve its target checkout, build the Glas
|
||||
`ExecutionRequest`, and invoke `run_execution` before any sandbox is created by
|
||||
this consumer. Complete or fail the ops run with the full `GatewayResult`.
|
||||
Profile refusal and gateway failure are terminal and never fall back to
|
||||
`select_approach`. Profile-absent rows retain the legacy coexistence path.
|
||||
|
||||
**Done 2026-08-22:** `glas_execution.py` resolves the queued checkout, maps the
|
||||
complete contract 1.0 request (including attribution refs), and invokes Glas
|
||||
through lazy runtime imports. The claim loop branches on profile presence
|
||||
before legacy selection and sends the full `GatewayResult` to Activity Core.
|
||||
Its own returned detail retains only `ExecutionEvidence`. Tests prove success,
|
||||
terminal refusal, no legacy fallback, and profile-aware queue inspection. A
|
||||
real sibling-package probe of `harness.unknown@9.9.9` returned
|
||||
`refused/resolution` with no sandbox id.
|
||||
|
||||
## Preserve safe llm-connect provider failure context
|
||||
|
||||
```task
|
||||
id: REIN-A-0004-T03
|
||||
status: done
|
||||
priority: medium
|
||||
```
|
||||
|
||||
On an HTTP error, retain only llm-connect's allowlisted `error`,
|
||||
`provider_status`, `provider`, and `model` fields plus a bounded message. Never
|
||||
copy the raw provider response or credential material into an ops-run result.
|
||||
|
||||
**Done 2026-08-22:** HTTP errors retain exactly the four safe diagnostic fields
|
||||
plus a 400-character message. Tests cover the upstream 401 hidden behind 502,
|
||||
redaction-by-allowlist, bounding, and unusable bodies.
|
||||
|
||||
## Deploy and coordinate one production proof
|
||||
|
||||
```task
|
||||
id: REIN-A-0004-T04
|
||||
status: progress
|
||||
priority: high
|
||||
```
|
||||
|
||||
Install the Glas and sand-boxer sibling packages into the railiance01 claim
|
||||
worker environment, deploy the source-tested consumer, and coordinate one
|
||||
low-risk profiled definition with Activity Core. Evidence must show the queued
|
||||
profile, resolved rein/model/sandbox/outcome, and teardown/commit facts.
|
||||
|
||||
**Progress 2026-08-22:** source verification is green (96 tests, compilation,
|
||||
and diff checks). Packaging exposes the local Glas/sand-boxer extra and the
|
||||
deployment rsync now excludes `.venv`, preventing workstation-bound shebangs
|
||||
from overwriting the live worker environment. railiance01 is healthy on the
|
||||
legacy worker but still needs the Glas checkout/package install, deployment,
|
||||
restart, and coordinated pilot.
|
||||
Loading…
Add table
Add a link
Reference in a new issue