# Synology Act Runner Split PR Body ## Title `chore: split Synology act_runner start and re-registration scripts` ## Body - Added `tools/re_register_act_runner_synology.sh` for explicit host-mode re-registration. - Added `tools/start_act_runner_synology.sh` for boot-time daemon start only. - Kept `tools/setup_act_runner.sh` as the bootstrap path, but made the re-registration flow explicit and repeatable. - Switched the runner registration labels to `self-hosted:host,snapshot-admin-host:host` so the job runs in host mode instead of Docker job containers and can be targeted by a dedicated deployment label. - Updated `docs/SYNOLOGY_SNAPSHOT_ADMIN_POC.md` and `docs/ROADMAP_WBS.md` so the operator flow and WBS notes match the new runner split. - The `snapshot_admin.yml` workflow is split into push smoke validation and manual full validation, which reduces routine CI cost while preserving the full web smoke path on demand. - The deploy workflow now waits for `127.0.0.1:8787/api/state` readiness before asserting success, so startup latency does not fail the run spuriously. - The `ci.yml` workflow now keeps `push` traffic on the core gate only, with UI/storage validation retained for non-push events. ## Verification - `python tools/validate_snapshot_admin_workflow_v1.py` - `python -c "import yaml, pathlib; yaml.safe_load(pathlib.Path('.gitea/workflows/snapshot_admin.yml').read_text(encoding='utf-8'))"` - `git diff -- .gitea/workflows/snapshot_admin.yml tools/setup_act_runner.sh docs/SYNOLOGY_SNAPSHOT_ADMIN_POC.md docs/ROADMAP_WBS.md` - Deploy job evidence: - `healthcheck` retried after startup and passed - `snapshot-admin-web-v6` returned from the verification step - `Job succeeded`