@team-semicolon/semicolony-cli 4.18.96 → 4.18.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +973 -973
- package/migrations/195_worker_device_target_release.sql +32 -0
- package/migrations/README.md +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-- 195_worker_device_target_release.sql
|
|
2
|
+
--
|
|
3
|
+
-- Fix: /api/worker-fleet returns HTTP 500 for every role in production.
|
|
4
|
+
-- lib/worker-fleet/queries.ts DEVICE_ROWS_SQL selects
|
|
5
|
+
-- COALESCE(wd.active_release_id, p.active_release_id) AS target_release_id
|
|
6
|
+
-- but semo_ops.worker_devices has no active_release_id column — only
|
|
7
|
+
-- semo_ops.workspace_profiles does. The COALESCE already encodes the intended
|
|
8
|
+
-- contract (device-level override falls back to the profile default) and is
|
|
9
|
+
-- pinned by an existing contract test, so the fix is to add the missing
|
|
10
|
+
-- column, not to change the query.
|
|
11
|
+
--
|
|
12
|
+
-- Nullable is required: NULL means "no device-level override, use the
|
|
13
|
+
-- profile default", which is exactly what the COALESCE expects. No backfill.
|
|
14
|
+
--
|
|
15
|
+
-- Type/FK mirror semo_ops.workspace_profiles.active_release_id exactly
|
|
16
|
+
-- (uuid, nullable, FK -> semo_ops.worker_profile_releases(release_id)
|
|
17
|
+
-- ON DELETE SET NULL), verified against the live schema before writing this.
|
|
18
|
+
--
|
|
19
|
+
-- Grants: sc_fleet_board's existing SELECT on semo_ops.worker_devices is a
|
|
20
|
+
-- table-level grant (relacl 'sc_fleet_board=r'), which automatically covers
|
|
21
|
+
-- new columns — verified against pg_class.relacl before writing this. No
|
|
22
|
+
-- additional GRANT is needed for the fleet board read role.
|
|
23
|
+
--
|
|
24
|
+
-- Safety: additive only, single nullable column on one table.
|
|
25
|
+
-- The migration runner owns BEGIN/COMMIT; no transaction control here.
|
|
26
|
+
|
|
27
|
+
ALTER TABLE semo_ops.worker_devices
|
|
28
|
+
ADD COLUMN IF NOT EXISTS active_release_id UUID
|
|
29
|
+
REFERENCES semo_ops.worker_profile_releases(release_id) ON DELETE SET NULL;
|
|
30
|
+
|
|
31
|
+
COMMENT ON COLUMN semo_ops.worker_devices.active_release_id IS
|
|
32
|
+
'Device-level target release override. NULL means use the profile default (semo_ops.workspace_profiles.active_release_id) via COALESCE in DEVICE_ROWS_SQL.';
|
package/migrations/README.md
CHANGED
|
@@ -26,6 +26,7 @@ SEMICOLONY CLI의 PostgreSQL 마이그레이션 파일들.
|
|
|
26
26
|
| `185_worker_agent_feedback_scope.sql` | Hermes Semi/Colony actor에 정확한 feedback 범위·귀속을 추가하고 기존 바인딩만 백필 |
|
|
27
27
|
| `186_worker_agent_decision_capture.sql` | operator 승인 reference와 actor-bound decision recorder를 추가하고 정확한 decision scope만 백필 |
|
|
28
28
|
| `187_worker_agent_decision_digest_repair.sql` | Phase 6 decision recorder를 extension schema와 무관한 PostgreSQL SHA-256 primitive로 교정 |
|
|
29
|
+
| `195_worker_device_target_release.sql` | `worker_devices.active_release_id` (nullable, FK) 추가 — `/api/worker-fleet` DEVICE_ROWS_SQL의 COALESCE 대상 컬럼 누락으로 발생한 500 수정 |
|
|
29
30
|
|
|
30
31
|
## 007: Flat Skill Naming
|
|
31
32
|
|