chore(per-instance-hook-scoping): archive verified+synced change

Move to openspec/changes/archive/2026-07-09-per-instance-hook-scoping/
(R100 renames preserved). 9 artifacts. Canonical openspec/specs/
service-instance-scoping/ remains. Resolves multi-instance wrong-data bug
(hooks now scope by instance.id; instance switcher re-scopes).
Carry-overs: fetchBackupDashboard untouched (design decision 5); subquery
scoping for runs/alerts (schema asymmetry).
This commit is contained in:
Developer
2026-07-10 00:16:52 +00:00
parent f921524d37
commit 29650ca512
16 changed files with 327 additions and 60 deletions
@@ -183,7 +183,10 @@ def get_backup_alerts(
store: SettingsStore = Depends(get_settings_store),
) -> list[BackupAlertResponse]:
alerts = store.list_backup_alerts(
job_id=job_id, acknowledged=acknowledged, severity=severity, service_id=service_id,
job_id=job_id,
acknowledged=acknowledged,
severity=severity,
service_id=service_id,
)
return [BackupAlertResponse(**alert) for alert in alerts]
+2 -6
View File
@@ -76,12 +76,8 @@ class TestBackupServiceScoping:
job_b = store.upsert_backup_job({"name": "job-b", "service_id": "svc-b"})
store.create_backup_run({"job_id": job_a["id"], "started_at": 1700000000, "status": "success"})
store.create_backup_run({"job_id": job_b["id"], "started_at": 1700000000, "status": "success"})
store.create_backup_alert(
{"job_id": job_a["id"], "alert_type": "test", "severity": "warning"}
)
store.create_backup_alert(
{"job_id": job_b["id"], "alert_type": "test", "severity": "warning"}
)
store.create_backup_alert({"job_id": job_a["id"], "alert_type": "test", "severity": "warning"})
store.create_backup_alert({"job_id": job_b["id"], "alert_type": "test", "severity": "warning"})
assert len(store.list_backup_alerts(service_id="svc-a")) == 1
assert len(store.list_backup_alerts(service_id="svc-b")) == 1