A task factory based on temporal
Find a file
tegwick 176867cbe3 feat(WP-0003b): parser, workflow wiring, triggers, webhooks
T44: ActivityDefinition markdown file parser (definition_parser.py)
  - Scans activity-definitions/*.md and ACTIVITY_DEFINITION_DIRS paths
  - Parses YAML frontmatter + fenced rule/instruction blocks
  - Raises ParseError on any malformed file — never silently skips

T45: ActivityDefinition sync command
  - Migration 0006: adds rules_json/instructions_json JSONB columns
  - sync_activity_definitions.py + make sync-activity-definitions
  - Called at worker startup before schedule sync

T46: Rule/instruction pipeline wired into RunActivityWorkflow
  - New evaluate_rules and emit_tasks Temporal activities
  - Workflow passes event_envelope_json to enable rule evaluation
  - EventRouter now passes full envelope JSON as 4th workflow arg
  - IssueSink.emit() writes task_spawn_log rows per task

T47: ScheduledTriggerConfig model (one-off future datetime trigger)

T48: One-off Temporal Schedule support
  - Fixed timezone_name → time_zone_name (was causing all schedule tests to fail)
  - Added ScheduleCalendarSpec-based one-off schedule with remaining_actions=1
  - cancel_scheduled() for admin cancellation
  - Fixed backfill() call to use *args unpacking (not list wrapper)
  - Fixed ScheduleAlreadyRunningError catch in upsert_schedule
  - sync_schedules now handles ScheduledTriggerConfig definitions

T49: Webhook receiver
  - POST /webhooks/gitea  — HMAC-SHA256 via X-Gitea-Signature-256
  - POST /webhooks/github — HMAC-SHA256 via X-Hub-Signature-256
  - Normalisers: repo.created, push, issue.closed → EventEnvelope
  - Publishes to NATS activity.{type} subject after registry validation
  - Mounted in api.py at /webhooks prefix

T50: Gitea event type definitions
  - gitea.repo.created.md, gitea.push.md, gitea.issue.closed.md
  - Each includes normaliser field mapping in Consumer Notes

Tests: 18 passed, 1 skipped (integration). Fixed embedded Temporal
server visibility latency in test_upsert_schedule_creates_schedule.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 23:02:33 +02:00
docs docs(adr): establish three foundational ADRs for Event Bridge architecture 2026-05-14 16:48:42 +02:00
dynamicconfig Add project scaffold: contracts, schemas, docker-compose, workplans 2026-03-04 22:45:40 +01:00
e2e feat(e2e): add run-on-host.sh for automated cron on railiance01 2026-03-27 01:02:21 +01:00
event-types feat(WP-0003b): parser, workflow wiring, triggers, webhooks 2026-05-14 23:02:33 +02:00
migrations feat(WP-0003b): parser, workflow wiring, triggers, webhooks 2026-05-14 23:02:33 +02:00
schemas Add project scaffold: contracts, schemas, docker-compose, workplans 2026-03-04 22:45:40 +01:00
scripts Add project scaffold: contracts, schemas, docker-compose, workplans 2026-03-04 22:45:40 +01:00
src/activity_core feat(WP-0003b): parser, workflow wiring, triggers, webhooks 2026-05-14 23:02:33 +02:00
tests feat(WP-0003b): parser, workflow wiring, triggers, webhooks 2026-05-14 23:02:33 +02:00
wiki Add project scaffold: contracts, schemas, docker-compose, workplans 2026-03-04 22:45:40 +01:00
workplans feat(event-bridge): WP-0003a — domain model, rules module, event type registry 2026-05-14 22:01:15 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-05-14 22:52:19 +02:00
.gitignore Initial commit 2026-03-02 00:24:41 +00:00
alembic.ini feat(db): init Alembic (async) + SQLAlchemy declarative base — T08 2026-03-26 21:45:40 +00:00
CLAUDE.md chore: add .custodian-brief.md protocol and unblock T07 2026-03-26 21:03:56 +01:00
docker-compose.dev.yml feat(WP-0002): complete Triggers & Ops workstream 2026-03-28 01:04:43 +01:00
INTENT.md docs: write INTENT.md and rewrite SCOPE.md for Event Bridge architecture 2026-05-14 16:56:07 +02:00
LICENSE Initial commit 2026-03-02 00:24:41 +00:00
Makefile feat(WP-0003b): parser, workflow wiring, triggers, webhooks 2026-05-14 23:02:33 +02:00
pyproject.toml feat(event-bridge): WP-0003a — domain model, rules module, event type registry 2026-05-14 22:01:15 +02:00
README.md Initial commit 2026-03-02 00:24:41 +00:00
SCOPE.md docs: write INTENT.md and rewrite SCOPE.md for Event Bridge architecture 2026-05-14 16:56:07 +02:00
uv.lock feat(event-bridge): WP-0003a — domain model, rules module, event type registry 2026-05-14 22:01:15 +02:00

repo-seed

A git repository template to bootstrap coulomb projects from.