--- id: RAIL-BS-WP-0009 type: workplan title: "activity-core no-restart admin-sync smoke (ACTIVITY-WP-0012-T05)" domain: financials repo: railiance-cluster status: active owner: railiance-cluster topic_slug: railiance created: "2026-07-01" updated: "2026-07-02" state_hub_workstream_id: "2c9e8e96-ec6a-433c-9e6d-0efbcd18679e" --- # activity-core no-restart admin-sync smoke (ACTIVITY-WP-0012-T05) ## Context Inbox message `aa8b7986` (activity-core, 2026-06-18): activity-core commit `3e93567` implements ACTIVITY-WP-0012 T01–T04 (shared sync_service, `POST /admin/sync`, explicit schedule upsert/pause/orphan-delete counts, worker startup reuse, runbook docs; 192 tests passed). T05 is the cluster-owned smoke: prove admin sync works **without** worker SIGTERM/pod restart. The deploy precondition is covered by RAIL-BS-WP-0008-T01 (main at `bf877b7` ≥ `3e93567`), so run this after that reconcile. ## Run the no-restart admin-sync smoke ```task id: RAIL-BS-WP-0009-T01 status: wait priority: medium state_hub_task_id: "60f3387d-3d14-42a9-b8a3-725a86468510" ``` After RAIL-BS-WP-0008-T01 is deployed, without restarting the worker: 1. Change or use a customer ActivityDefinition enabled-flip/rename fixture. 2. Call `POST /admin/sync?definitions=true&schedules=true` from the operator path. 3. Confirm the new Temporal schedule is active and the retired/disabled schedule is paused or deleted per sync semantics. 4. Confirm event-triggered definitions still fire normally. 5. Record non-secret evidence in the State Hub. Response JSON should include `definitions.synced`, `schedules.upserted`, `schedules.paused`, `schedules.deleted_orphans`, and `errors[]`. 2026-07-02: Added `make admin-sync-smoke` / `bin/railiance admin-sync-smoke` as the repeatable operator path. It captures the worker pod UID/restart count, optionally runs an operator-supplied enabled-flip/rename fixture via `ACTIVITY_CORE_ADMIN_SYNC_FIXTURE_COMMAND`, calls `POST /admin/sync?definitions=true&schedules=true`, verifies the expected response counters and empty `errors[]`, rechecks that the same worker pod did not restart, and posts non-secret State Hub evidence. T01 stays `wait` until RAIL-BS-WP-0008-T01 is deployed and the smoke is run on railiance01.