Add bounded Glas profile production pilot
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Container Image / build-and-push (push) Successful in 6s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f
This commit is contained in:
tegwick 2026-08-23 00:13:11 +02:00
parent caed3d2ab9
commit 01ee87de12
4 changed files with 100 additions and 11 deletions

View file

@ -0,0 +1,34 @@
---
id: glas-profile-pilot
name: Glas Profile Execution Pilot
enabled: false
owner: activity-core
governance: custodian
status: proposed
trigger:
type: scheduled
at: "2099-01-01T00:00:00Z"
timezone: UTC
---
# Glas Profile Execution Pilot
Disabled, operator-triggered proof for ACTIVITY-WP-0032-T05. It emits exactly
one bounded task into the disposable `executor-sandbox` repository. The
far-future scheduled timestamp is only a valid definition shape; disabled
status prevents Temporal from creating a recurring or autonomous schedule.
```rule
id: execute-glas-profile-pilot
condition: "True"
action:
task_template: Record the ACTIVITY-WP-0032 Glas profile pilot
description: 'Within executor-sandbox only, create ACTIVITY-WP-0032-pilot.md containing a short statement that the profile-driven Activity Core pilot ran on 2026-08-23. Commit exactly that file with message "activity: record Glas profile pilot". Do not push or change any external system.'
target_repo: executor-sandbox
priority: low
labels: ["automated", "glas-profile-pilot"]
harness_profile_ref: harness.agent-dev-local@1.0.0
execution_refs:
correlation_id: ACTIVITY-WP-0032-T05
assignment_ref: ACTIVITY-WP-0032-T05
```

View file

@ -46,6 +46,41 @@ metadata:
app.kubernetes.io/name: activity-core
app.kubernetes.io/part-of: activity-core
data:
glas-profile-pilot.md: |
---
id: glas-profile-pilot
name: Glas Profile Execution Pilot
enabled: false
owner: activity-core
governance: custodian
status: proposed
trigger:
type: scheduled
at: "2099-01-01T00:00:00Z"
timezone: UTC
---
# Glas Profile Execution Pilot
Disabled, operator-triggered proof for ACTIVITY-WP-0032-T05. It emits exactly
one bounded task into the disposable `executor-sandbox` repository. The
far-future scheduled timestamp is only a valid definition shape; disabled
status prevents Temporal from creating a recurring or autonomous schedule.
```rule
id: execute-glas-profile-pilot
condition: "True"
action:
task_template: Record the ACTIVITY-WP-0032 Glas profile pilot
description: 'Within executor-sandbox only, create ACTIVITY-WP-0032-pilot.md containing a short statement that the profile-driven Activity Core pilot ran on 2026-08-23. Commit exactly that file with message "activity: record Glas profile pilot". Do not push or change any external system.'
target_repo: executor-sandbox
priority: low
labels: ["automated", "glas-profile-pilot"]
harness_profile_ref: harness.agent-dev-local@1.0.0
execution_refs:
correlation_id: ACTIVITY-WP-0032-T05
assignment_ref: ACTIVITY-WP-0032-T05
```
daily-sbom-catchup.md: |
---
id: daily-sbom-catchup

View file

@ -229,6 +229,28 @@ def test_ops_hub_key_is_secret_only_placeholder() -> None:
assert '--from-literal=OPS_HUB_KEY=""' in bootstrap
def test_glas_profile_pilot_projection_is_bounded_and_disabled(tmp_path) -> None:
definition_config = _by_kind_name("ConfigMap", "actcore-external-activity-definitions")
definition_path = tmp_path / "glas-profile-pilot.md"
definition_path.write_text(
definition_config["data"]["glas-profile-pilot.md"],
encoding="utf-8",
)
definition = parse_file(definition_path)
assert definition.enabled is False
assert definition.trigger_config["trigger_type"] == "scheduled"
assert len(definition.rules) == 1
action = definition.rules[0]["action"]
assert action["target_repo"] == "executor-sandbox"
assert action["labels"] == ["automated", "glas-profile-pilot"]
assert action["harness_profile_ref"] == "harness.agent-dev-local@1.0.0"
assert action["execution_refs"] == {
"correlation_id": "ACTIVITY-WP-0032-T05",
"assignment_ref": "ACTIVITY-WP-0032-T05",
}
def test_disabled_ops_probe_definition_can_emit_fixture_evidence(
tmp_path,
monkeypatch,

View file

@ -230,7 +230,7 @@ deselected because it requires the local integration stack.
```task
id: ACTIVITY-WP-0032-T05
status: wait
status: progress
priority: low
state_hub_task_id: "e71423f9-8baf-566b-8a70-eec195e2f65f"
```
@ -241,16 +241,14 @@ definition is proven end to end. Note that FI and Binky are unsuitable as the
pilot while ACTIVITY-WP-0031-T01 is unresolved — their failures are currently
provider-credential failures and would mask the result.
Wait confirmed 2026-08-22 after T03/T04 source completion. The current
rein-aharness claim consumer does not yet carry `harness_profile_ref` or
`execution_refs` in `OpsRun.from_api`; its claim loop still calls the legacy
`select_approach` matcher. Launching a profiled pilot now could silently ignore
the authoritative selector, so Activity Core will not do that. Consumer handoff
message `4ed3422a-b42c-4408-843c-f63c3e86cf3e` asks rein-aharness to invoke
Glas for profiled rows with no legacy fallback and return the full
`GatewayResult`. Glas was notified in thread message
`6ac93cc9-6d5b-4039-aa89-81a025efef82`. Resume T05 only after that consumer
slice is tested and deployed and a low-risk pilot is available.
Resumed 2026-08-23. Rein-aharness source `0f01c3e` is deployed on railiance01:
profiled rows now preserve `harness_profile_ref` / `execution_refs`, route
through Glas before legacy selection, refuse without fallback, and return the
full `GatewayResult`. Handoff confirmation
`413a4041-cfb3-4d02-a41a-1d92b3de06af` also identified production schema
drift: the live image expects migration `0008`, while PostgreSQL was still at
`0007`, making `/ops-runs/claim` fail with `UndefinedColumnError`. Apply and
verify the additive migration before scheduling the pilot.
## Acceptance