--- id: GLAS-WP-0013 type: workplan title: "Expose cleanup and reporting outcomes to execution consumers" domain: infotech repo: glas-harness status: finished owner: codex topic_slug: execution-outcome-evidence created: "2026-09-06" updated: "2026-09-06" state_hub_workstream_id: "f51ac50d-e8c1-5cd9-b7f8-b2de42a57076" --- # Execution outcome evidence ## Priority and boundary The first real local profile remains the highest priority in GLAS-WP-0012, with owner activation/runtime work already registered. This plan closes the independent observability gaps identified in the September scope assessment. A failed execution can currently mask cleanup/destruction failures, while the caller cannot distinguish accepted, failed or disabled Hub reporting. Use additive, defaulted outcome fields on existing result models. Preserve the original execution failure and report secondary teardown outcomes separately. Expose reporting acceptance to the direct caller without recursive reporting, raw exception disclosure to Hub, automatic execution retries or a durable queue. Memory, channels, subagents and aggregate budget enforcement remain design gaps, not work authorized by this bounded plan. No profile readiness changes. ## Record cleanup and destruction independently ```task id: GLAS-WP-0013-T01 status: done priority: high state_hub_task_id: "c4cc126f-4ea6-54f7-b4e2-dc2772da57b9" ``` Evidence reports cleanup and sandbox destruction as not attempted, succeeded or failed. Preserve the original failure stage if execution already failed, but always expose secondary failure outcomes. Destroy is attempted even if cleanup raises. Successful execution becomes failed when teardown fails. Test normal, pre-creation refusal, startup failure and combined failure paths. ## Return State Hub reporting outcome ```task id: GLAS-WP-0013-T02 status: done priority: high state_hub_task_id: "d7456f89-adf1-5b55-b84e-5b0f07c9ace7" ``` GatewayResult reports not requested, accepted or failed. Reporting is attempted once after evidence is final; no-Hub makes no request. Hub failure must not rerun the task or change its execution outcome. Test successful reporting, HTTP refusal/unavailability, disabled reporting and failure evidence redaction. Document that acceptance is an HTTP result, not durable audit delivery or an exactly-once guarantee. Run full tests and catalog validation; update SCOPE. ## Completion evidence Completed 2026-09-06. Added independent cleanup/destruction outcomes and direct caller Hub acknowledgement status. Old result records default to unknown. Regression coverage includes combined execution/cleanup/destroy failures, startup/refusal paths, successful runs with teardown failures, HTTP timeout and 503 responses, disabled reporting and old-record decoding. Full suite: 121 passed; catalog validation and diff checks passed. No model or credential call. No residual implementation work from this bounded plan. First real-profile acceptance remains live in GLAS-WP-0012/GLAS-IN-0002. Durable audit delivery, aggregate budgets and broader session features remain assessment gaps outside this plan; no capability or approved backlog is implied.