activity-core/src/activity_core
tegwick 5bd0ee5ff9
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 0s
Build and Publish Container Image / build-and-push (push) Successful in 19s
feat(ops-run): carry harness_profile_ref and attribution refs
ACTIVITY-WP-0032-T02 / ACT-ADR-006. ops_runs grows harness_profile_ref (text,
indexed) and execution_refs (jsonb), migration 0008, threaded through the
emission path, queue projection, and run artefacts.

The important part is the enforcement, not the columns. ACT-ADR-006 says
approach_hint must never override, synthesize, or fall back from an absent or
invalid harness_profile_ref — a silent fallback would reintroduce the
claim-time routing failure of 2026-08-17. resolve_execution_selector never
consults the hint: a malformed ref raises even when a hint is present, and
ACTIVITY_CORE_REQUIRE_HARNESS_PROFILE turns an absent ref into an error once
definitions have migrated.

Validation is structural only, since the glas-harness catalogue is
authoritative and must not be mirrored. Requiring the <id>@<version> pin is
worth doing locally: GlasProfiles.resolve matches an unpinned ref against every
version and refuses it as ambiguous, so the pin converts a late failure into an
emission-time error without knowing any profile id.

Migration verified on real PostgreSQL 16: upgrade, downgrade, re-upgrade, and a
legacy-shaped row still inserts and stays claimable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 14:14:08 +02:00
..
context_resolvers feat(sbom): draft bounded daily SBOM catch-up (ACTIVITY-WP-0030-T01) 2026-08-21 08:45:40 +02:00
review_cli feat(activity): multi-service config, make help default, install-cli 2026-08-06 17:25:54 +02:00
rules feat(sbom): draft bounded daily SBOM catch-up (ACTIVITY-WP-0030-T01) 2026-08-21 08:45:40 +02:00
__init__.py Add project scaffold: contracts, schemas, docker-compose, workplans 2026-03-04 22:45:40 +01:00
activities.py feat(ops-run): carry harness_profile_ref and attribution refs 2026-08-21 14:14:08 +02:00
api.py feat(ACTIVITY-WP-0029): inventory callers, retarget sweep, bound execution 2026-08-18 10:52:56 +02:00
automation_status.py Show last run timestamp on ops automation status 2026-07-22 00:16:25 +02:00
db.py feat(db): init Alembic (async) + SQLAlchemy declarative base — T08 2026-03-26 21:45:40 +00:00
definition_parser.py feat(WP-0003b): parser, workflow wiring, triggers, webhooks 2026-05-14 23:02:33 +02:00
event_router.py feat(WP-0004): railiance deployment & service ops 2026-05-15 00:04:39 +02:00
event_type_registry.py Deploy activity-core on railiance01 2026-05-22 13:49:46 +02:00
execution_api.py feat(ACTIVITY-WP-0029): inventory callers, retarget sweep, bound execution 2026-08-18 10:52:56 +02:00
glas_profile.py feat(ops-run): carry harness_profile_ref and attribution refs 2026-08-21 14:14:08 +02:00
issue_sink.py Implement ACTIVITY-WP-0022/0023: safe sink default and gap closures 2026-07-21 21:40:08 +02:00
llm_client.py fix(llm): surface llm-connect's error body instead of a bare 502 2026-08-21 08:53:30 +02:00
models.py Repair production automation truth and schedule cleanup 2026-08-20 11:20:23 +02:00
ops_api.py feat(activity): repo-scoped automation review CLI (WP-0028) 2026-08-06 13:05:46 +02:00
ops_auth.py Activate ACTIVITY-WP-0025: Authelia SSO ingress for ops and Temporal UI 2026-07-22 00:47:29 +02:00
ops_console.py feat(ops): run artefacts in API/UI + llm-connect host access design 2026-08-05 17:23:02 +02:00
ops_evidence_sinks.py feat: daily CNPG Option A backup shell activity (RAILIANCE-WP-0016) 2026-07-22 19:50:59 +02:00
ops_run_queue.py feat(ops-run): carry harness_profile_ref and attribution refs 2026-08-21 14:14:08 +02:00
ops_runs_api.py Implement ACTIVITY-WP-0026 ops_run claim queue (T01–T06). 2026-08-03 19:22:50 +02:00
orm.py feat(ops-run): carry harness_profile_ref and attribution refs 2026-08-21 14:14:08 +02:00
report_sinks.py feat(railiance): adopt state-hub edge relay beachhead for WP-0015 2026-07-09 01:04:27 +02:00
run_artifacts.py feat(ops-run): carry harness_profile_ref and attribution refs 2026-08-21 14:14:08 +02:00
runtime_paths.py feat(T06): hostPath working-memory sync and repo-relative sink paths 2026-07-07 01:00:49 +02:00
schedule_health.py feat(railiance): adopt state-hub edge relay beachhead for WP-0015 2026-07-09 01:04:27 +02:00
schedule_manager.py Implement ACTIVITY-WP-0024 operator automation console 2026-07-21 23:51:39 +02:00
seed.py feat(db): add dev seed script for ActivityDefinition — T12 2026-03-26 21:53:59 +00:00
state_hub_write.py feat(railiance): adopt state-hub edge relay beachhead for WP-0015 2026-07-09 01:04:27 +02:00
sync_activity_definitions.py Repair production automation truth and schedule cleanup 2026-08-20 11:20:23 +02:00
sync_schedules.py Repair production automation truth and schedule cleanup 2026-08-20 11:20:23 +02:00
sync_service.py Add admin sync hot reload path 2026-06-19 01:54:13 +02:00
template_engine.py feat(activities): resolve_context stub + evaluate_templates — T15/T16 2026-03-26 22:06:09 +00:00
webhook_receiver.py feat(WP-0003b): parser, workflow wiring, triggers, webhooks 2026-05-14 23:02:33 +02:00
worker.py Implement ACTIVITY-WP-0022/0023: safe sink default and gap closures 2026-07-21 21:40:08 +02:00
workflows.py fix(ops_run): unique triggering_event_id per cron fire 2026-08-05 15:30:00 +02:00