From 01ee87de121da9875f0ebe98f1ca40f4c799a18f Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 23 Aug 2026 00:13:11 +0200 Subject: [PATCH] Add bounded Glas profile production pilot Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f --- activity-definitions/glas-profile-pilot.md | 34 ++++++++++++++++++ k8s/railiance/20-runtime.yaml | 35 +++++++++++++++++++ tests/test_railiance_ops_inventory_wiring.py | 22 ++++++++++++ ...WP-0032-glas-profile-execution-contract.md | 20 +++++------ 4 files changed, 100 insertions(+), 11 deletions(-) create mode 100644 activity-definitions/glas-profile-pilot.md diff --git a/activity-definitions/glas-profile-pilot.md b/activity-definitions/glas-profile-pilot.md new file mode 100644 index 0000000..fb92ccb --- /dev/null +++ b/activity-definitions/glas-profile-pilot.md @@ -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 +``` diff --git a/k8s/railiance/20-runtime.yaml b/k8s/railiance/20-runtime.yaml index 9fd2aab..8252d2e 100644 --- a/k8s/railiance/20-runtime.yaml +++ b/k8s/railiance/20-runtime.yaml @@ -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 diff --git a/tests/test_railiance_ops_inventory_wiring.py b/tests/test_railiance_ops_inventory_wiring.py index 4e87df6..acc36b8 100644 --- a/tests/test_railiance_ops_inventory_wiring.py +++ b/tests/test_railiance_ops_inventory_wiring.py @@ -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, diff --git a/workplans/ACTIVITY-WP-0032-glas-profile-execution-contract.md b/workplans/ACTIVITY-WP-0032-glas-profile-execution-contract.md index 9b60388..8a60c1c 100644 --- a/workplans/ACTIVITY-WP-0032-glas-profile-execution-contract.md +++ b/workplans/ACTIVITY-WP-0032-glas-profile-execution-contract.md @@ -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