Add harness.agent-dev-local 1.1.0 metered-owner candidate (GLAS-WP-0012-T03)
All checks were successful
ci / validate (push) Successful in 1m5s
All checks were successful
ci / validate (push) Successful in 1m5s
Unverified bounded-proof profile for rein-aharness metered-once: bwrap-local with empty egress, no credential routes, 900 s / 60k tokens, 30 turns and a USD 5.00 native cap matching the accepted spend envelope. 1.0.0 stays blocked; unpinned selection becomes ambiguous. 134 tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 272244@bnt-lap001 Assistant-Session: c8962fa7-b290-47df-865f-403ddb6c77e9
This commit is contained in:
parent
f08ecc35e5
commit
462436b611
3 changed files with 69 additions and 6 deletions
35
profiles/harness.agent-dev-local-1.1.0.yaml
Normal file
35
profiles/harness.agent-dev-local-1.1.0.yaml
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
id: harness.agent-dev-local
|
||||||
|
version: "1.1.0"
|
||||||
|
contract_version: "1.0"
|
||||||
|
status: enabled
|
||||||
|
operational_readiness:
|
||||||
|
status: unverified
|
||||||
|
reason: bounded GLAS-WP-0012-T04 proof candidate; no positive real-run evidence yet
|
||||||
|
owner: glas-harness
|
||||||
|
evidence_ref: GLAS-WP-0012-T03
|
||||||
|
rein:
|
||||||
|
id: rein-aharness
|
||||||
|
required_capabilities:
|
||||||
|
session_style: unattended
|
||||||
|
model_class: frontier
|
||||||
|
sandbox_profile: profile.bwrap-local
|
||||||
|
tool_profile: green-commit-only
|
||||||
|
model:
|
||||||
|
provider: anthropic
|
||||||
|
model: claude-sonnet-4-6
|
||||||
|
model_class: frontier
|
||||||
|
route: claude-code-cli
|
||||||
|
limits:
|
||||||
|
budget_tokens: 60000
|
||||||
|
timeout_seconds: 900
|
||||||
|
max_turns: 30
|
||||||
|
max_budget_usd: 5.0
|
||||||
|
credential_route_refs: []
|
||||||
|
metadata:
|
||||||
|
latency_class: fast
|
||||||
|
stream_tool_events: true
|
||||||
|
# Candidate for the metered one-cycle owner (rein-aharness metered-once).
|
||||||
|
# The provider key stays with MessagesOwner outside bwrap; the workload gets
|
||||||
|
# only an owner-socket route, so the sandbox keeps empty egress and no
|
||||||
|
# credential route refs. max_budget_usd matches the accepted spend envelope
|
||||||
|
# hfact-glas-anthropic-2026-09 (infd-20260921-b01). Rollback: pin 1.0.0.
|
||||||
|
|
@ -67,18 +67,19 @@ def test_committed_catalog_resolves_both_constellations() -> None:
|
||||||
|
|
||||||
contexts = catalog.validate_all()
|
contexts = catalog.validate_all()
|
||||||
|
|
||||||
assert len(contexts) == 3
|
assert len(contexts) == 4
|
||||||
assert {context.rein_id for context in contexts} == {
|
assert {context.rein_id for context in contexts} == {
|
||||||
"rein-aharness",
|
"rein-aharness",
|
||||||
"rein-openweights",
|
"rein-openweights",
|
||||||
}
|
}
|
||||||
assert {
|
assert {
|
||||||
(context.profile.id, context.operational_readiness.status)
|
(context.profile.id, context.profile.version, context.operational_readiness.status)
|
||||||
for context in contexts
|
for context in contexts
|
||||||
} == {
|
} == {
|
||||||
("harness.agent-dev-local", "blocked"),
|
("harness.agent-dev-local", "1.0.0", "blocked"),
|
||||||
("harness.agent-dev-openweights-local", "blocked"),
|
("harness.agent-dev-local", "1.1.0", "unverified"),
|
||||||
("harness.agent-dev", "unverified"),
|
("harness.agent-dev-openweights-local", "1.0.0", "blocked"),
|
||||||
|
("harness.agent-dev", "1.0.0", "unverified"),
|
||||||
}
|
}
|
||||||
profile, descriptor = catalog.resolve(
|
profile, descriptor = catalog.resolve(
|
||||||
"harness.agent-dev-openweights-local@1.0.0"
|
"harness.agent-dev-openweights-local@1.0.0"
|
||||||
|
|
@ -98,6 +99,21 @@ def test_committed_catalog_resolves_both_constellations() -> None:
|
||||||
assert rein.budget_tokens == 60000
|
assert rein.budget_tokens == 60000
|
||||||
|
|
||||||
|
|
||||||
|
def test_metered_candidate_carries_native_limits_and_no_credential_route() -> None:
|
||||||
|
catalog = ProfileCatalog()
|
||||||
|
profile, _ = catalog.resolve("harness.agent-dev-local@1.1.0")
|
||||||
|
catalog.require_operational(profile)
|
||||||
|
assert profile.operational_readiness.status == "unverified"
|
||||||
|
assert profile.sandbox_profile == "profile.bwrap-local"
|
||||||
|
assert profile.credential_route_refs == []
|
||||||
|
assert profile.limits.max_turns == 30
|
||||||
|
assert profile.limits.max_budget_usd == 5.0
|
||||||
|
assert profile.limits.timeout_seconds == 900
|
||||||
|
assert profile.limits.budget_tokens == 60000
|
||||||
|
with pytest.raises(AmbiguousProfileError):
|
||||||
|
catalog.resolve("harness.agent-dev-local")
|
||||||
|
|
||||||
|
|
||||||
def test_ready_profile_requires_an_evidence_reference(tmp_path) -> None:
|
def test_ready_profile_requires_an_evidence_reference(tmp_path) -> None:
|
||||||
profiles = tmp_path / "profiles"
|
profiles = tmp_path / "profiles"
|
||||||
reins = tmp_path / "reins"
|
reins = tmp_path / "reins"
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ See docs/local-profile-acceptance.md.
|
||||||
|
|
||||||
```task
|
```task
|
||||||
id: GLAS-WP-0012-T03
|
id: GLAS-WP-0012-T03
|
||||||
status: wait
|
status: progress
|
||||||
priority: high
|
priority: high
|
||||||
state_hub_task_id: "c660808a-1724-555c-bc59-7318870d3591"
|
state_hub_task_id: "c660808a-1724-555c-bc59-7318870d3591"
|
||||||
```
|
```
|
||||||
|
|
@ -126,6 +126,18 @@ Done when the exact candidate resolves, the real runtime starts through its
|
||||||
owner, the focused tests and full suite pass, and rollback to the blocked
|
owner, the focused tests and full suite pass, and rollback to the blocked
|
||||||
`harness.agent-dev-local@1.0.0` pin is documented.
|
`harness.agent-dev-local@1.0.0` pin is documented.
|
||||||
|
|
||||||
|
2026-09-21 candidate: `profiles/harness.agent-dev-local-1.1.0.yaml`, readiness
|
||||||
|
`unverified` (evidence_ref GLAS-WP-0012-T03), `profile.bwrap-local`, no
|
||||||
|
credential route refs, claude-sonnet-4-6, 900 s / 60,000 tokens, max_turns 30,
|
||||||
|
max_budget_usd 5.0. The provider key stays with rein-aharness MessagesOwner
|
||||||
|
outside bwrap (metered-once); the owner bootstrap's sandbox, model and
|
||||||
|
credential-route checks accept it. max_budget_usd matches the operator-accepted
|
||||||
|
spend envelope hfact-glas-anthropic-2026-09 (Informed Decision
|
||||||
|
infd-20260921-b01, approval ba5ce2d8). Unpinned selection is now ambiguous and
|
||||||
|
1.0.0 stays blocked; rollback is pinning 1.0.0. 134 tests pass. Remaining for
|
||||||
|
done: the rebuilt runtime artifact carrying this profile starts through its
|
||||||
|
owner on railiance01 (SECRETS-WP-0009-T03 step B2).
|
||||||
|
|
||||||
## Prove one real bounded rein task inside the sandbox
|
## Prove one real bounded rein task inside the sandbox
|
||||||
|
|
||||||
```task
|
```task
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue