Draft configured Glas exec_owner with metered worker companion

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 226514@bnt-lap001
Assistant-Session: 26ba103d-05fe-45a1-9cd7-9475bf239df6
This commit is contained in:
tegwick 2026-09-23 18:38:11 +02:00
parent d06aea33bc
commit a0e39cbd53
2 changed files with 58 additions and 0 deletions

View file

@ -0,0 +1,41 @@
# Draft exec_owner for glas-claude-agent-dev-anthropic (SECRETS-WP-0009-T03).
# Not in the catalog: it replaces the pending binding only after
# activity-core-metered-worker-token is seeded and ACTIVITY-WP-0039 is live.
exec_owner:
status: configured
owner: rein-aharness MessagesOwner (metered-once) with sand-boxer runtime boundary
command:
- /home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3
- -I
- -B
- -m
- rein_aharness.cli
- metered-once
- --owner-config
- /home/tegwick/hfact/owner-metered/owner.json
cwd: /home/tegwick/hfact/owner-metered
environment:
PATH: /usr/bin:/bin
LANG: C.UTF-8
HOME: /home/tegwick
ACTIVITY_CORE_URL: http://127.0.0.1:8010
AGENT_HARNESS_WORKER_ID: rein-aharness-metered@railiance01
AGENT_HARNESS_OPS_LABELS: hfact-metered
AGENT_HARNESS_OPS_LABELS_MODE: all
AGENT_HARNESS_EXECUTION_PROJECT: prj-helixforge-factory
AGENT_HARNESS_REQUIRE_SPEND_ADMISSION: "1"
AGENT_HARNESS_REQUIRE_REQUEST_ADMISSION: "1"
AGENT_HARNESS_SPEND_POLICY: /home/tegwick/hfact/owner-metered/spend-policy.json
AGENT_HARNESS_SPEND_LEDGER: /home/tegwick/hfact/owner-metered/spend.sqlite3
AGENT_HARNESS_REPO_MAP: '{"hfact-glas-proof":"/home/tegwick/hfact/targets/hfact-glas-proof"}'
files:
/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3:
sha256: e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f
private: false
/home/tegwick/hfact/owner-metered/owner.json:
sha256: 0e263f8299a42f63caf3595ff3eb7adc10354673f7b5125e0811def3bea7c274
private: true
companions:
- catalog: activity-core-metered-worker-token
field: token
env: ACTIVITY_CORE_WORKER_TOKEN

View file

@ -467,3 +467,20 @@ approval URLs must be literal loopback or HTTPS (`decision_check.py:73`,
`approval_auth.py:90`), so the attended session needs host-side
`kubectl port-forward` to 127.0.0.1 for both. That is a session step, not a
standing change.
### 2026-09-23 metered owner provisioned; exec_owner drafted
Operator provisioned `~/hfact/owner-metered` on railiance01: spend policy
`a8ab3729…`, owner config `0e263f82…`, valid from 2026-09-23T16:36:52Z. The
owner `--check` passes under `rein-aharness-metered@railiance01` with runtime
`b6e4e8a4`. No key, no claim, dispatch disabled.
The configured binding is drafted in `docs/drafts/glas-exec-owner-configured.yaml`.
It pins the runtime python and the owner config, uses cwd `~/hfact/owner-metered`,
a fixed non-secret environment, and the companion
`activity-core-metered-worker-token` → `ACTIVITY_CORE_WORKER_TOKEN`. It validates
with the catalog code, and the real pin and path-safety checks pass on
railiance01 (owner digest `00b5f076…`). The catalog stays `pending` until
ACTIVITY-WP-0039 seeds the metered token and rolls out. `ACTIVITY_CORE_URL`
assumes the host `actcore-api-port-forward` service on 127.0.0.1:8010; check
that it answers before the attended session.