Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f
43 lines
2.2 KiB
Markdown
43 lines
2.2 KiB
Markdown
# Bounded-operation compatibility report — 2026-08-23
|
||
|
||
Scope: all 12 checked-in `activity-definitions/*.md` files plus the production
|
||
runtime projection in `k8s/railiance/20-runtime.yaml`.
|
||
|
||
## Baseline classification
|
||
|
||
The pre-enforcement inventory found three mutating definitions:
|
||
|
||
| Definition | Previous source/query | Admitted operation | Bound |
|
||
| --- | --- | --- | --- |
|
||
| `daily-sbom-catchup` | `sbom-nexus/catch_up` | `sbom_nexus_ingest` | `apply` explicit; limit 1–3; mandatory `sbom_catchup` report sink |
|
||
| `weekly-forgejo-package-prune` | `shell/forgejo_package_prune` | `forgejo_package_prune` | canonical script; `apply` explicit; retain 1–10; protected live-image file; one Temporal attempt |
|
||
| `daily-cnpg-option-a-backup` | `shell/cnpg_option_a_backup` | `cnpg_option_a_backup` | canonical script; `dry_run` explicit; 1–10 named targets; timeout ≤7200s; one Temporal attempt |
|
||
|
||
The other nine definitions contain no mutating source. Three named `shell`
|
||
queries remain registered as read-only discovery/report queries. No definition
|
||
contained definition-supplied command text or an unknown shell query.
|
||
|
||
## Migration result
|
||
|
||
The three definitions and their Kubernetes projection now declare an explicit
|
||
code-owned `operation` id. Strict parsing succeeds for all 12 definitions.
|
||
Negative tests prove refusal of unknown shell queries, missing/mismatched
|
||
operation ids, arbitrary script paths, absent evidence sinks, excessive target
|
||
or SBOM limits, and multiple operations in one definition.
|
||
|
||
Package prune and CNPG backup dispatch moved out of the generic shell resolver.
|
||
Their activity result crosses the Temporal boundary only after operation-specific
|
||
allowlist projection; raw stdout/stderr and credential-shaped fields are not
|
||
workflow context or progress evidence.
|
||
|
||
## Legacy executor production inventory
|
||
|
||
Before removal, read-only production checks found:
|
||
|
||
- `task_instances`: `0` rows; `max(created_at) = none`;
|
||
- worker deployment: no `ACTIVITY_CORE_ENABLE_TASK_EXECUTOR_STUB` variable; and
|
||
- Temporal visibility query for `WorkflowType="TaskExecutorWorkflow"`: `[]`.
|
||
|
||
This met the ACTIVITY-WP-0035-T07 removal gate. Migration `0009` drops the empty
|
||
table and renames the spawn-audit column from `review_required` to
|
||
`review_advisory`.
|