Close local runtime loose ends and record external blockers
Some checks failed
Governed runtime contract / contract (push) Failing after 15s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e387-534d-70e3-ad53-4ea05676db8c
This commit is contained in:
tegwick 2026-09-27 17:46:34 +02:00
parent e18e386e0e
commit 73aaa4bcd4
8 changed files with 752 additions and 24 deletions

View file

@ -0,0 +1,242 @@
{
"scope": "standalone installed packages and real CLI/bwrap; synthetic key/provider/empty queue",
"ok": true,
"runtime_sha256": "b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969",
"proof_script_sha256": "a3cde37c6b1075caaa092248569d9b7a3e37bde467648686d70ac77ef86c89d8",
"claude_sha256": "19842705e989393fce936804df6d2ab034860e24b8f8880357981d87ffd83fac",
"imports": {
"rein_aharness": "lib/python3.12/site-packages/rein_aharness/__init__.py",
"llm_connect": "lib/python3.12/site-packages/llm_connect/__init__.py",
"glas_harness": "lib/python3.12/site-packages/glas_harness/__init__.py",
"sandboxer": "lib/python3.12/site-packages/sandboxer/__init__.py"
},
"packaged_definitions": true,
"positive": {
"native_threshold_usd": 1.0,
"probe": {
"runtime_readonly": true,
"python_prefix": "/opt/sandboxer/runtime",
"cli_version": "2.1.266 (Claude Code)",
"private_absent": true,
"source_absent": true,
"proxy_absent": true,
"interfaces": [
"lo"
]
},
"provider_requests": 1,
"cli_exit_code": 0,
"cli_is_error": false,
"cli_estimated_usd": 0.00030000000000000003,
"request_reservations": [
{
"receipt": "5519ba2f-fe1f-4928-8afb-fb765acc1bdc",
"run_id": "fixture-run",
"policy_sha256": "c72c3a7c69e5224c63beb60f699bbc0c28d93d4b300604cae4208e761a1b4825",
"lease_id": "d40ebad662643b376f406fb07bf37671cb99497cc23755e3e8f97cda53b37a29",
"liability_microusd": 4640000,
"state": "charged",
"observed_microusd": 500,
"created_at": "2026-09-27T14:55:51.865416+00:00"
}
],
"route_revoked": true,
"workspace_removed": true,
"bootstrap": {
"ok": true,
"claimed": false,
"empty": true,
"run_id": "",
"ops_state": null
},
"profile_ref": "harness.agent-dev-local@1.1.1",
"model": "claude-sonnet-5",
"request_shapes": [
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"manual_thinking_budget": false,
"sampling_parameters": {},
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
]
}
],
"policy_context_tokens": 1000000,
"admission_requests": [
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "disabled",
"top_level_fields": [
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24",
"structured-outputs-2025-12-15"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort",
"format"
],
"output_effort": "high",
"refusal": "beta feature not admitted"
},
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"top_level_fields": [
"context_management",
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort"
],
"output_effort": "high"
}
]
},
"refused": {
"native_threshold_usd": 0.01,
"probe": {
"runtime_readonly": true,
"python_prefix": "/opt/sandboxer/runtime",
"cli_version": "2.1.266 (Claude Code)",
"private_absent": true,
"source_absent": true,
"proxy_absent": true,
"interfaces": [
"lo"
]
},
"provider_requests": 0,
"cli_exit_code": 1,
"cli_is_error": true,
"cli_estimated_usd": 0,
"request_reservations": [],
"route_revoked": true,
"workspace_removed": true,
"bootstrap": null,
"profile_ref": "harness.agent-dev-local@1.1.1",
"model": "claude-sonnet-5",
"request_shapes": [],
"policy_context_tokens": 1000000,
"admission_requests": [
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "disabled",
"top_level_fields": [
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24",
"structured-outputs-2025-12-15"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort",
"format"
],
"output_effort": "high",
"refusal": "beta feature not admitted"
},
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"top_level_fields": [
"context_management",
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort"
],
"output_effort": "high"
}
]
},
"artifact_unchanged": true,
"live_factory_attempts": 0
}

View file

@ -0,0 +1,310 @@
{
"scope": "standalone installed packages and real CLI/bwrap; synthetic key/provider/empty queue",
"ok": true,
"runtime_sha256": "b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969",
"proof_script_sha256": "984c062d3e4c36671065803b1e2706f81388f31b97a8a5af9d488a31e96ca5b2",
"claude_sha256": "19842705e989393fce936804df6d2ab034860e24b8f8880357981d87ffd83fac",
"imports": {
"rein_aharness": "lib/python3.12/site-packages/rein_aharness/__init__.py",
"llm_connect": "lib/python3.12/site-packages/llm_connect/__init__.py",
"glas_harness": "lib/python3.12/site-packages/glas_harness/__init__.py",
"sandboxer": "lib/python3.12/site-packages/sandboxer/__init__.py"
},
"packaged_definitions": true,
"positive": {
"native_threshold_usd": 1.0,
"probe": {
"runtime_readonly": true,
"python_prefix": "/opt/sandboxer/runtime",
"cli_version": "2.1.266 (Claude Code)",
"private_absent": true,
"source_absent": true,
"proxy_absent": true,
"interfaces": [
"lo"
]
},
"provider_requests": 2,
"cli_exit_code": 0,
"cli_is_error": false,
"cli_estimated_usd": 0.0006000000000000001,
"request_reservations": [
{
"receipt": "5bab05cf-b2ff-427f-b85f-407116d54c11",
"run_id": "fixture-run",
"policy_sha256": "c72c3a7c69e5224c63beb60f699bbc0c28d93d4b300604cae4208e761a1b4825",
"lease_id": "d341c917fb2e1aa82e245ff5e4e6eba62d979527682d90916970cda6dd8dbb7a",
"liability_microusd": 4640000,
"state": "charged",
"observed_microusd": 500,
"created_at": "2026-09-27T15:05:05.507407+00:00"
},
{
"receipt": "2a59879d-c6d0-496d-8f2c-0e45dddaa19f",
"run_id": "fixture-run",
"policy_sha256": "c72c3a7c69e5224c63beb60f699bbc0c28d93d4b300604cae4208e761a1b4825",
"lease_id": "d341c917fb2e1aa82e245ff5e4e6eba62d979527682d90916970cda6dd8dbb7a",
"liability_microusd": 4640000,
"state": "charged",
"observed_microusd": 500,
"created_at": "2026-09-27T15:05:05.686105+00:00"
}
],
"route_revoked": true,
"workspace_removed": true,
"bootstrap": {
"ok": true,
"claimed": false,
"empty": true,
"run_id": "",
"ops_state": null
},
"profile_ref": "harness.agent-dev-local@1.1.1",
"model": "claude-sonnet-5",
"request_shapes": [
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"manual_thinking_budget": false,
"sampling_parameters": {},
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
],
"tool_results": []
},
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"manual_thinking_budget": false,
"sampling_parameters": {},
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
],
"tool_results": [
{
"id": "fixture_git_status",
"is_error": false
}
]
}
],
"policy_context_tokens": 1000000,
"admission_requests": [
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "disabled",
"top_level_fields": [
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24",
"structured-outputs-2025-12-15"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort",
"format"
],
"output_effort": "high",
"refusal": "beta feature not admitted"
},
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"top_level_fields": [
"context_management",
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort"
],
"output_effort": "high"
},
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"top_level_fields": [
"context_management",
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
],
"message_roles": [
"user",
"assistant",
"user"
],
"output_config_keys": [
"effort"
],
"output_effort": "high"
}
]
},
"refused": {
"native_threshold_usd": 0.01,
"probe": {
"runtime_readonly": true,
"python_prefix": "/opt/sandboxer/runtime",
"cli_version": "2.1.266 (Claude Code)",
"private_absent": true,
"source_absent": true,
"proxy_absent": true,
"interfaces": [
"lo"
]
},
"provider_requests": 0,
"cli_exit_code": 1,
"cli_is_error": true,
"cli_estimated_usd": 0,
"request_reservations": [],
"route_revoked": true,
"workspace_removed": true,
"bootstrap": null,
"profile_ref": "harness.agent-dev-local@1.1.1",
"model": "claude-sonnet-5",
"request_shapes": [],
"policy_context_tokens": 1000000,
"admission_requests": [
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "disabled",
"top_level_fields": [
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24",
"structured-outputs-2025-12-15"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort",
"format"
],
"output_effort": "high",
"refusal": "beta feature not admitted"
},
{
"model": "claude-sonnet-5",
"max_tokens": 64000,
"thinking_type": "adaptive",
"top_level_fields": [
"context_management",
"max_tokens",
"messages",
"metadata",
"model",
"output_config",
"stream",
"system",
"thinking",
"tools"
],
"betas": [
"claude-code-20250219",
"interleaved-thinking-2025-05-14",
"thinking-token-count-2026-05-13",
"context-management-2025-06-27",
"prompt-caching-scope-2026-01-05",
"mid-conversation-system-2026-04-07",
"effort-2025-11-24"
],
"message_roles": [
"user"
],
"output_config_keys": [
"effort"
],
"output_effort": "high"
}
]
},
"artifact_unchanged": true,
"live_factory_attempts": 0
}

View file

@ -71,3 +71,25 @@ positive fake stream and pre-forward insufficient-capacity refusal are separate
cases. It checks unchanged artifact digest and teardown. Queue/provider/key/profile
are disposable fixtures, never evidence of live admission. The project records the
candidate result in `prj-helixforge-factory/evidence/2026-09-09-owner-bootstrap.json`.
## Current metered admission review — 2026-09-27
The credential catalog now configures the metered owner and companion, so the
older pending-holder paragraph above is historical. The corrected owner policy and Secrets Engine 11cc0d5 are installed after
explicit user approval; native spend/delivery approval remains open. Use
`../secrets-engine/docs/proposals/glas-metered-20260927/README.md` for exact inputs.
The proof script requires `--profile-ref` and `--expected-model`; for the current
b6e4e8a4 artifact use `--profile-ref harness.agent-dev-local@1.1.1
--expected-model claude-sonnet-5 --context-tokens 1000000
--max-output-tokens 64000 --input-rate 4 --output-rate 10
--extra-beta mid-conversation-system-2026-04-07` in addition to runtime/hash.
The fixture price input is explicit and still grants no paid authority. A passing
first-response proof does not prove a tool loop or native provider compatibility.
Add `--tool-cycle` for a synthetic EUR 10 parent envelope and two provider
requests with an actual Bash git-status tool result. This passed on Railiance;
receipt: `docs/evidence/2026-09-27-sonnet5-tool-session-proof.json`. The fixture
uses native USD 1/max-turns 4 and total EUR 30, not the live owner spend policy.
The requested inactive EUR 10 proposal is in the factory operations directory.