Repair production automation truth and schedule cleanup
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 18s

This commit is contained in:
tegwick 2026-08-20 11:20:23 +02:00
parent 8bcb416285
commit 944fd158de
19 changed files with 441 additions and 64 deletions

View file

@ -352,7 +352,20 @@ async def evaluate_instructions(payload: dict) -> dict:
reports: list[dict] = []
for raw_instruction in instructions:
try:
instruction = InstructionDef.model_validate(raw_instruction)
instruction_data = dict(raw_instruction)
output_schema = instruction_data.get("output_schema")
if isinstance(output_schema, str) and output_schema.startswith(
("custodian://", "activity-core://")
):
# Resolve deployment-neutral URIs at the workflow/activity
# boundary. The pure rules package only accepts filesystem
# paths and must not import runtime integration modules.
from activity_core.runtime_paths import resolve_runtime_path
instruction_data["output_schema"] = str(
resolve_runtime_path(output_schema)
)
instruction = InstructionDef.model_validate(instruction_data)
except Exception as exc:
activity.logger.warning("instruction definition invalid — %s", exc)
continue