scene-capability-engine 3.6.54 → 3.6.55
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/CHANGELOG.md +14 -0
- package/README.md +6 -1
- package/README.zh.md +6 -1
- package/bin/scene-capability-engine.js +2 -0
- package/docs/command-reference.md +23 -0
- package/docs/magicball-app-collection-phase-1.md +133 -0
- package/docs/magicball-cli-invocation-examples.md +40 -0
- package/docs/magicball-integration-doc-index.md +14 -6
- package/docs/magicball-integration-issue-tracker.md +42 -3
- package/docs/magicball-sce-adaptation-guide.md +36 -9
- package/docs/releases/README.md +2 -0
- package/docs/releases/v3.6.55.md +18 -0
- package/docs/zh/releases/README.md +2 -0
- package/docs/zh/releases/v3.6.55.md +18 -0
- package/lib/app/collection-store.js +127 -0
- package/lib/app/install-apply-runner.js +192 -0
- package/lib/app/install-plan-service.js +410 -0
- package/lib/app/scene-workspace-store.js +132 -0
- package/lib/commands/app.js +281 -0
- package/lib/commands/device.js +194 -0
- package/lib/commands/scene.js +228 -0
- package/lib/device/current-device.js +158 -0
- package/lib/device/device-override-store.js +157 -0
- package/package.json +1 -1
- package/template/.sce/README.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.6.55] - 2026-03-16
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Added `sce device current` as a read-only current-device identity projection that avoids persisting a machine-id file when no persistent device id exists yet.
|
|
14
|
+
- Added `sce device override show|upsert` so local per-device add/remove overlays can be inspected and updated through explicit CLI governance instead of hand-editing `.sce/state/device/device-override.json`.
|
|
15
|
+
- Added `sce app collection list/show` as file-backed intent read models rooted at `.sce/app/collections/*.json`.
|
|
16
|
+
- Added `sce scene workspace list/show` as file-backed scene-profile read models rooted at `.sce/app/scene-profiles/*.json`.
|
|
17
|
+
- Added `sce app install-state list` so MagicBall and CLI users can inspect current cross-app installation facts from one local device-oriented view.
|
|
18
|
+
- Added plan-first `sce app collection apply` and `sce scene workspace apply` diff commands with guarded explicit execution. `--execute` now reuses existing runtime install/uninstall only when the plan is fully resolvable; unresolved collections, missing app bundles, and active-release protection still block execution.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
- `sce app runtime install` and `sce app runtime uninstall` now stamp runtime installation metadata with the current device identifier and hostname, making local installation facts attributable without introducing a second install-management mechanism.
|
|
22
|
+
- Collection/workspace resolution now respects file-backed local device overrides at `.sce/state/device/device-override.json` and item-level `capability_tags`, so per-device add/remove decisions and capability mismatch skips are explained in the generated plan instead of being silently ignored.
|
|
23
|
+
|
|
10
24
|
## [3.6.54] - 2026-03-16
|
|
11
25
|
|
|
12
26
|
### Added
|
package/README.md
CHANGED
|
@@ -163,7 +163,12 @@ For IDEs, AI shells, or custom frontends, the most important SCE surfaces are:
|
|
|
163
163
|
|
|
164
164
|
MagicBall-specific integration surfaces now also include:
|
|
165
165
|
|
|
166
|
+
- `sce device current`
|
|
167
|
+
- `sce device override show|upsert`
|
|
166
168
|
- `sce app bundle list|show|register`
|
|
169
|
+
- `sce app collection list|show|apply`
|
|
170
|
+
- `sce app install-state list`
|
|
171
|
+
- `sce scene workspace list|show|apply`
|
|
167
172
|
- `sce app registry status|configure|sync*`
|
|
168
173
|
- `sce app runtime show|releases|install|activate|uninstall`
|
|
169
174
|
- `sce app engineering show|attach|hydrate|activate`
|
|
@@ -218,5 +223,5 @@ MIT. See [LICENSE](LICENSE).
|
|
|
218
223
|
|
|
219
224
|
---
|
|
220
225
|
|
|
221
|
-
**Version**: 3.6.
|
|
226
|
+
**Version**: 3.6.55
|
|
222
227
|
**Last Updated**: 2026-03-16
|
package/README.zh.md
CHANGED
|
@@ -168,7 +168,12 @@ SCE 默认是强治理的。
|
|
|
168
168
|
|
|
169
169
|
面向 MagicBall 的当前关键接口还包括:
|
|
170
170
|
|
|
171
|
+
- `sce device current`
|
|
172
|
+
- `sce device override show|upsert`
|
|
171
173
|
- `sce app bundle list|show|register`
|
|
174
|
+
- `sce app collection list|show|apply`
|
|
175
|
+
- `sce app install-state list`
|
|
176
|
+
- `sce scene workspace list|show|apply`
|
|
172
177
|
- `sce app registry status|configure|sync*`
|
|
173
178
|
- `sce app runtime show|releases|install|activate|uninstall`
|
|
174
179
|
- `sce app engineering show|attach|hydrate|activate`
|
|
@@ -223,5 +228,5 @@ MIT,见 [LICENSE](LICENSE)。
|
|
|
223
228
|
|
|
224
229
|
---
|
|
225
230
|
|
|
226
|
-
**版本**:3.6.
|
|
231
|
+
**版本**:3.6.55
|
|
227
232
|
**最后更新**:2026-03-16
|
|
@@ -1054,7 +1054,9 @@ registerStateCommands(program);
|
|
|
1054
1054
|
registerCapabilityCommands(program);
|
|
1055
1055
|
|
|
1056
1056
|
const { registerAppCommands } = require('../lib/commands/app');
|
|
1057
|
+
const { registerDeviceCommands } = require('../lib/commands/device');
|
|
1057
1058
|
const { registerModeCommands } = require('../lib/commands/mode');
|
|
1059
|
+
registerDeviceCommands(program);
|
|
1058
1060
|
registerAppCommands(program);
|
|
1059
1061
|
registerModeCommands(program);
|
|
1060
1062
|
const { registerPmCommands } = require('../lib/commands/pm');
|
|
@@ -378,11 +378,26 @@ sce workspace team
|
|
|
378
378
|
### App Bundle & MagicBall Mode Projection
|
|
379
379
|
|
|
380
380
|
```bash
|
|
381
|
+
# Current device baseline
|
|
382
|
+
sce device current --json
|
|
383
|
+
sce device override show --json
|
|
384
|
+
sce device override upsert --input device-override.patch.json --json
|
|
385
|
+
|
|
381
386
|
# List/show/register app bundles
|
|
382
387
|
sce app bundle list --json
|
|
383
388
|
sce app bundle show --app customer-order-demo --json
|
|
384
389
|
sce app bundle register --input bundle.json --json
|
|
385
390
|
|
|
391
|
+
# File-backed app collection intent
|
|
392
|
+
sce app collection list --json
|
|
393
|
+
sce app collection show --collection sales-workbench --json
|
|
394
|
+
sce app collection apply --collection sales-workbench --json
|
|
395
|
+
|
|
396
|
+
# File-backed scene workspace intent
|
|
397
|
+
sce scene workspace list --json
|
|
398
|
+
sce scene workspace show --workspace sales --json
|
|
399
|
+
sce scene workspace apply --workspace sales --json
|
|
400
|
+
|
|
386
401
|
# Configure and sync remote registries
|
|
387
402
|
sce app registry status --json
|
|
388
403
|
sce app registry configure --bundle-index-url <path-or-url> --service-index-url <path-or-url> --json
|
|
@@ -395,6 +410,10 @@ sce app runtime install --app customer-order-demo --release <release-id> --json
|
|
|
395
410
|
sce app runtime activate --app customer-order-demo --release <release-id> --json
|
|
396
411
|
sce app runtime uninstall --app customer-order-demo --release <release-id> --json
|
|
397
412
|
|
|
413
|
+
# Cross-app local install-state view
|
|
414
|
+
sce app install-state list --json
|
|
415
|
+
sce app install-state list --install-status installed --json
|
|
416
|
+
|
|
398
417
|
# Engineering projection
|
|
399
418
|
sce app engineering show --app customer-order-demo --json
|
|
400
419
|
sce app engineering attach --app customer-order-demo --repo <repo-url> --branch main --json
|
|
@@ -407,6 +426,10 @@ sce mode ontology home --app customer-order-demo --json
|
|
|
407
426
|
sce mode engineering home --app customer-order-demo --json
|
|
408
427
|
```
|
|
409
428
|
|
|
429
|
+
Device override notes:
|
|
430
|
+
- `sce device override show` returns the normalized local per-device overlay from `.sce/state/device/device-override.json`.
|
|
431
|
+
- `sce device override upsert --input <json>` merges only explicitly provided fields; omitted fields remain unchanged so local override policy is not blindly replaced.
|
|
432
|
+
|
|
410
433
|
### PM Delivery Data Plane
|
|
411
434
|
|
|
412
435
|
```bash
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# MagicBall App Collection Phase 1
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Shipped phase-1 baseline in SCE.
|
|
6
|
+
|
|
7
|
+
Current shipped read-model baseline:
|
|
8
|
+
|
|
9
|
+
- `sce device current`
|
|
10
|
+
- `sce device override show`
|
|
11
|
+
- `sce device override upsert`
|
|
12
|
+
- `sce app collection list`
|
|
13
|
+
- `sce app collection show`
|
|
14
|
+
- `sce app collection apply` with plan-first diff and explicit execute for non-blocked install/uninstall actions
|
|
15
|
+
- `sce app install-state list`
|
|
16
|
+
- `sce scene workspace list`
|
|
17
|
+
- `sce scene workspace show`
|
|
18
|
+
- `sce scene workspace apply` with plan-first diff and explicit execute for non-blocked install/uninstall actions
|
|
19
|
+
|
|
20
|
+
Current shipped runtime controls remain:
|
|
21
|
+
|
|
22
|
+
- `sce app runtime show`
|
|
23
|
+
- `sce app runtime releases`
|
|
24
|
+
- `sce app runtime install`
|
|
25
|
+
- `sce app runtime activate`
|
|
26
|
+
- `sce app runtime uninstall`
|
|
27
|
+
|
|
28
|
+
## Goal
|
|
29
|
+
|
|
30
|
+
Add a scene-oriented installation model above the current single-app runtime controls so MagicBall can manage "what this workbench wants" separately from "what this device actually has installed".
|
|
31
|
+
|
|
32
|
+
## Core decision
|
|
33
|
+
|
|
34
|
+
SCE should split the model into two layers plus one local overlay:
|
|
35
|
+
|
|
36
|
+
- intent layer: `app_collection` and `scene_profile`
|
|
37
|
+
- device fact layer: `device_installation`
|
|
38
|
+
- local override layer: `device_override`
|
|
39
|
+
|
|
40
|
+
This means:
|
|
41
|
+
|
|
42
|
+
- users or workspaces sync the desired app set
|
|
43
|
+
- devices decide their own actual install set
|
|
44
|
+
- one user on multiple devices does not get forced into identical installs
|
|
45
|
+
|
|
46
|
+
## Why SCE should support this
|
|
47
|
+
|
|
48
|
+
The current runtime commands are enough for single-app control, but they are not enough to express:
|
|
49
|
+
|
|
50
|
+
- sales workbench vs planning workbench vs development workbench
|
|
51
|
+
- device-specific install differences
|
|
52
|
+
- reasoned batch install and uninstall planning
|
|
53
|
+
|
|
54
|
+
Without this layer, frontend code has to invent business grouping and install logic outside SCE, which would fragment the contract.
|
|
55
|
+
|
|
56
|
+
## Phase 1 scope
|
|
57
|
+
|
|
58
|
+
Phase-1 should stay local-device-first.
|
|
59
|
+
|
|
60
|
+
It should add:
|
|
61
|
+
|
|
62
|
+
- current device identity and capability view
|
|
63
|
+
- file-backed app collections
|
|
64
|
+
- file-backed scene profiles
|
|
65
|
+
- local install-state listing
|
|
66
|
+
- collection or scene apply diff planning
|
|
67
|
+
- explicit execute step for apply
|
|
68
|
+
|
|
69
|
+
It should not require:
|
|
70
|
+
|
|
71
|
+
- user account system
|
|
72
|
+
- cross-device installation-state sync
|
|
73
|
+
- organization policy rollout
|
|
74
|
+
|
|
75
|
+
## Storage position
|
|
76
|
+
|
|
77
|
+
SCE already has a selective SQLite policy. This capability should follow it.
|
|
78
|
+
|
|
79
|
+
Recommended split:
|
|
80
|
+
|
|
81
|
+
- shared intent stays file-backed or registry-backed
|
|
82
|
+
- device facts and rebuildable resolution projections may use SQLite
|
|
83
|
+
- local device override stays file-backed at `.sce/state/device/device-override.json`
|
|
84
|
+
|
|
85
|
+
This boundary matters because SQLite is suitable for local query-heavy facts, but it should not become the only source of truth for portable shared intent.
|
|
86
|
+
|
|
87
|
+
## Recommended phase-1 command shape
|
|
88
|
+
|
|
89
|
+
Phase-1 overall command surface:
|
|
90
|
+
|
|
91
|
+
- `sce device current`
|
|
92
|
+
- `sce device override show`
|
|
93
|
+
- `sce device override upsert`
|
|
94
|
+
- `sce app collection list`
|
|
95
|
+
- `sce app collection show`
|
|
96
|
+
- `sce app collection apply`
|
|
97
|
+
- `sce app install-state list`
|
|
98
|
+
- `sce scene workspace list`
|
|
99
|
+
- `sce scene workspace show`
|
|
100
|
+
- `sce scene workspace apply`
|
|
101
|
+
|
|
102
|
+
Execution rule:
|
|
103
|
+
|
|
104
|
+
- `apply` should return a plan or diff by default
|
|
105
|
+
- actual mutation requires explicit execute confirmation
|
|
106
|
+
- execute stays blocked when the plan still contains unresolved collections, missing app bundles, or active-release protection skips
|
|
107
|
+
- resolution now also considers local `device_override` add/remove overlays and item-level `capability_tags`
|
|
108
|
+
- local override updates now also have an explicit CLI governance surface instead of requiring manual file edits
|
|
109
|
+
- execution should reuse the existing app runtime path
|
|
110
|
+
|
|
111
|
+
## Frontend implication for MagicBall
|
|
112
|
+
|
|
113
|
+
MagicBall should keep using current per-app runtime controls until this phase ships.
|
|
114
|
+
|
|
115
|
+
Today, MagicBall can already use:
|
|
116
|
+
|
|
117
|
+
1. `sce device current` for current device identity and capability tags
|
|
118
|
+
2. `sce device override show/upsert` for local per-device add/remove overlays
|
|
119
|
+
3. `sce app collection list/show/apply` for file-backed shared collection intent and plan-first diff
|
|
120
|
+
4. `sce scene workspace list/show/apply` for file-backed scene-profile intent and plan-first diff
|
|
121
|
+
5. `sce app install-state list` for current cross-app installation projection
|
|
122
|
+
6. existing per-app runtime controls for concrete runtime actions
|
|
123
|
+
|
|
124
|
+
Once phase-1 lands, the preferred top-level interaction should become:
|
|
125
|
+
|
|
126
|
+
1. pick a scene workspace or app collection
|
|
127
|
+
2. inspect the proposed device diff
|
|
128
|
+
3. explicitly apply the plan
|
|
129
|
+
4. continue using per-app runtime controls for detail views
|
|
130
|
+
|
|
131
|
+
## Practical conclusion
|
|
132
|
+
|
|
133
|
+
SCE should support this direction, but it should do so by extending the current app/runtime model rather than replacing it.
|
|
@@ -21,6 +21,46 @@ Assume:
|
|
|
21
21
|
|
|
22
22
|
## 1. Workspace Bootstrap
|
|
23
23
|
|
|
24
|
+
### 1.0 Read current device baseline
|
|
25
|
+
```bash
|
|
26
|
+
sce device current --json
|
|
27
|
+
sce device override show --json
|
|
28
|
+
sce app collection list --json
|
|
29
|
+
sce app collection show --collection sales-workbench --json
|
|
30
|
+
sce app collection apply --collection sales-workbench --json
|
|
31
|
+
sce scene workspace list --json
|
|
32
|
+
sce scene workspace show --workspace sales --json
|
|
33
|
+
sce scene workspace apply --workspace sales --json
|
|
34
|
+
sce app install-state list --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Expected use:
|
|
38
|
+
- cache current device id / tags
|
|
39
|
+
- load file-backed shared app collection intent
|
|
40
|
+
- load file-backed shared scene workspace intent
|
|
41
|
+
- render cross-app local install baseline before scene-oriented collection flows arrive
|
|
42
|
+
|
|
43
|
+
Optional local override input:
|
|
44
|
+
- `.sce/state/device/device-override.json`
|
|
45
|
+
- use this for per-device add/remove exceptions instead of mutating shared collection/workspace definitions
|
|
46
|
+
- update it explicitly via `sce device override upsert --input <json> --json`
|
|
47
|
+
|
|
48
|
+
Example local override patch:
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"removed_apps": ["crm"],
|
|
52
|
+
"added_apps": [
|
|
53
|
+
{
|
|
54
|
+
"app_key": "notes",
|
|
55
|
+
"required": false
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"metadata": {
|
|
59
|
+
"reason": "tablet kiosk profile"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
24
64
|
### 1.1 App bundle identity
|
|
25
65
|
```bash
|
|
26
66
|
sce app bundle show --app customer-order-demo --json
|
|
@@ -14,6 +14,7 @@ It is a navigation layer, not a new source of truth.
|
|
|
14
14
|
|
|
15
15
|
These are the current first-line integration documents:
|
|
16
16
|
- `docs/magicball-sce-adaptation-guide.md`
|
|
17
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
17
18
|
- `docs/magicball-ui-surface-checklist.md`
|
|
18
19
|
- `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
19
20
|
- `docs/magicball-frontend-state-and-command-mapping.md`
|
|
@@ -32,28 +33,32 @@ These are the current first-line integration documents:
|
|
|
32
33
|
- implementation checklist
|
|
33
34
|
- milestone-oriented execution order
|
|
34
35
|
|
|
35
|
-
3. `docs/magicball-
|
|
36
|
+
3. `docs/magicball-app-collection-phase-1.md`
|
|
37
|
+
- current device / collection / workspace / override baseline
|
|
38
|
+
- shipped phase-1 install orchestration contract
|
|
39
|
+
|
|
40
|
+
4. `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
36
41
|
- two active frontend-sensitive defaults
|
|
37
42
|
- serialized mode-home loading
|
|
38
43
|
- ontology empty-state and starter-seed behavior
|
|
39
44
|
|
|
40
|
-
|
|
45
|
+
5. `docs/magicball-frontend-state-and-command-mapping.md`
|
|
41
46
|
- page state ownership
|
|
42
47
|
- command-to-action mapping
|
|
43
48
|
- error and retry boundaries
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
6. `docs/magicball-write-auth-adaptation-guide.md`
|
|
46
51
|
- write authorization and lease handling
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
7. `docs/magicball-task-feedback-timeline-guide.md`
|
|
49
54
|
- task feedback cards
|
|
50
55
|
- timeline view integration
|
|
51
56
|
|
|
52
|
-
|
|
57
|
+
8. `docs/magicball-cli-invocation-examples.md`
|
|
53
58
|
- copy-ready CLI examples
|
|
54
59
|
- wrapper and smoke verification patterns
|
|
55
60
|
|
|
56
|
-
|
|
61
|
+
9. `docs/magicball-integration-issue-tracker.md`
|
|
57
62
|
- current cross-project truth
|
|
58
63
|
- only open issues, active decisions, and verified resolutions
|
|
59
64
|
|
|
@@ -62,6 +67,7 @@ These are the current first-line integration documents:
|
|
|
62
67
|
### I need to bootstrap the three-mode app shell
|
|
63
68
|
Use:
|
|
64
69
|
- `docs/magicball-sce-adaptation-guide.md`
|
|
70
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
65
71
|
- `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
66
72
|
- `docs/magicball-frontend-state-and-command-mapping.md`
|
|
67
73
|
|
|
@@ -95,6 +101,7 @@ Use:
|
|
|
95
101
|
| Document | Role | Should change often? |
|
|
96
102
|
| --- | --- | --- |
|
|
97
103
|
| `magicball-sce-adaptation-guide.md` | main overview | low |
|
|
104
|
+
| `magicball-app-collection-phase-1.md` | next-phase install model | medium |
|
|
98
105
|
| `magicball-adaptation-task-checklist-v1.md` | execution checklist | medium |
|
|
99
106
|
| `magicball-mode-home-and-ontology-empty-state-playbook.md` | frontend behavior policy | medium |
|
|
100
107
|
| `magicball-frontend-state-and-command-mapping.md` | frontend implementation mapping | medium |
|
|
@@ -127,6 +134,7 @@ As of the current tracker state:
|
|
|
127
134
|
- fresh ontology pages use `fallback + optional seed apply`
|
|
128
135
|
- seed apply stays explicit and user-triggered
|
|
129
136
|
- command failures should be preserved in copyable form for AI-assisted diagnosis
|
|
137
|
+
- app installation orchestration should use `scene_profile` and `app_collection` intent, not a global identical install set
|
|
130
138
|
|
|
131
139
|
## Maintenance Rule
|
|
132
140
|
|
|
@@ -17,7 +17,11 @@
|
|
|
17
17
|
### Current SCE capabilities ready for MagicBall integration
|
|
18
18
|
|
|
19
19
|
SCE changes completed and now available for MagicBall:
|
|
20
|
+
- `device current`
|
|
20
21
|
- `app bundle` registry local state and CLI
|
|
22
|
+
- `app collection list/show/apply`
|
|
23
|
+
- `scene workspace list/show/apply`
|
|
24
|
+
- `app install-state list`
|
|
21
25
|
- `mode application home --app ... --json`
|
|
22
26
|
- `mode ontology home --app ... --json`
|
|
23
27
|
- `mode engineering home --app ... --json`
|
|
@@ -32,9 +36,10 @@ SCE changes completed and now available for MagicBall:
|
|
|
32
36
|
|
|
33
37
|
### Current recommended MagicBall consumption order
|
|
34
38
|
1. consume `mode * home` as the top-level source for the three modes
|
|
35
|
-
2. consume `
|
|
36
|
-
3.
|
|
37
|
-
4.
|
|
39
|
+
2. consume `device current`, `app collection list/show/apply`, `scene workspace list/show/apply`, and `app install-state list` as the local device/install baseline
|
|
40
|
+
3. consume `pm`, `ontology`, and `assurance` table payloads
|
|
41
|
+
4. wire runtime install/activate/uninstall and engineering attach/hydrate/activate actions
|
|
42
|
+
5. use demo app: `customer-order-demo`
|
|
38
43
|
|
|
39
44
|
### Related SCE docs
|
|
40
45
|
- `docs/magicball-sce-adaptation-guide.md`
|
|
@@ -65,6 +70,11 @@ SCE changes completed and now available for MagicBall:
|
|
|
65
70
|
- expected payload
|
|
66
71
|
- UI impact
|
|
67
72
|
|
|
73
|
+
### Cross-project decision recorded
|
|
74
|
+
- The next install-management phase should not use a single global install set.
|
|
75
|
+
- SCE will separate shared app intent from local device installation facts.
|
|
76
|
+
- Planned phase-1 capability is documented in `docs/magicball-app-collection-phase-1.md`.
|
|
77
|
+
|
|
68
78
|
## Open Items
|
|
69
79
|
|
|
70
80
|
### Issue 001: SQLite lock when frontend triggers multiple SCE projection commands concurrently
|
|
@@ -153,6 +163,35 @@ Status:
|
|
|
153
163
|
- local verification covered: `triad summary` empty -> `seed list/show` preview -> `seed apply` -> `triad summary` ready
|
|
154
164
|
- keep open until broader field verification confirms the UX is stable
|
|
155
165
|
|
|
166
|
+
### Issue 006: scene-profile and app-collection install orchestration is not yet command-ready
|
|
167
|
+
|
|
168
|
+
Context:
|
|
169
|
+
- MagicBall now needs a scene-oriented install-management model above current per-app runtime controls.
|
|
170
|
+
- Current SCE already supports per-app runtime install, activate, uninstall, but not shared app intent vs device fact resolution.
|
|
171
|
+
|
|
172
|
+
Cross-project decision:
|
|
173
|
+
- Do not model this as one global install set shared blindly across devices.
|
|
174
|
+
- Separate:
|
|
175
|
+
- shared intent: `app_collection`, `scene_profile`
|
|
176
|
+
- local fact: `device_installation`
|
|
177
|
+
- local override: `device_override`
|
|
178
|
+
- Keep shared intent file-backed or registry-backed.
|
|
179
|
+
- Use SQLite only for local facts and rebuildable projections.
|
|
180
|
+
- `apply` must be plan-first and require explicit execution confirmation.
|
|
181
|
+
|
|
182
|
+
Reference:
|
|
183
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
184
|
+
- `.sce/specs/128-00-app-collection-scene-profile-device-installation/`
|
|
185
|
+
|
|
186
|
+
Status:
|
|
187
|
+
- architecture decision aligned
|
|
188
|
+
- spec added in SCE
|
|
189
|
+
- read-model and plan-first diff commands implemented
|
|
190
|
+
- explicit execute path now implemented for non-blocked install/uninstall actions
|
|
191
|
+
- execute remains blocked when unresolved collections, missing app bundles, or active-release protection skips are present
|
|
192
|
+
- local `device_override` file is now respected during resolution, so per-device add/remove exceptions no longer require mutating shared intent definitions
|
|
193
|
+
- local `device_override` now also has explicit `show/upsert` command support, so frontend or operator flows no longer need to hand-edit the override file
|
|
194
|
+
|
|
156
195
|
## Resolved
|
|
157
196
|
|
|
158
197
|
### Issue 002: pm requirement upsert succeeds but requirement list still returns empty
|
|
@@ -12,6 +12,7 @@ Implementation detail should live in the specialized documents listed below.
|
|
|
12
12
|
|
|
13
13
|
Use these documents together:
|
|
14
14
|
- `docs/magicball-integration-doc-index.md`
|
|
15
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
15
16
|
- `docs/magicball-ui-surface-checklist.md`
|
|
16
17
|
- `docs/magicball-mode-home-and-ontology-empty-state-playbook.md`
|
|
17
18
|
- `docs/magicball-frontend-state-and-command-mapping.md`
|
|
@@ -23,15 +24,40 @@ Use these documents together:
|
|
|
23
24
|
## Current Scope
|
|
24
25
|
|
|
25
26
|
SCE currently provides MagicBall-facing support for:
|
|
26
|
-
1. `
|
|
27
|
-
2. `
|
|
28
|
-
3. `app
|
|
29
|
-
4. `app
|
|
30
|
-
5. `
|
|
31
|
-
6. `
|
|
32
|
-
7. `
|
|
33
|
-
8. `
|
|
34
|
-
9. `
|
|
27
|
+
1. `device current` identity read model
|
|
28
|
+
2. `device override show/upsert` local overlay governance
|
|
29
|
+
3. `app bundle registry`
|
|
30
|
+
4. `app collection list/show/apply` with plan-first diff and guarded explicit execution
|
|
31
|
+
5. `scene workspace list/show/apply` with plan-first diff and guarded explicit execution
|
|
32
|
+
6. `app install-state` local device projection
|
|
33
|
+
7. `application / ontology / engineering home projections`
|
|
34
|
+
8. `app runtime install / activate / uninstall`
|
|
35
|
+
9. `app engineering attach / hydrate / activate`
|
|
36
|
+
10. `pm` delivery data plane
|
|
37
|
+
11. `ontology` triad data plane
|
|
38
|
+
12. `assurance` data plane
|
|
39
|
+
13. `write authorization`
|
|
40
|
+
14. `task feedback + timeline`
|
|
41
|
+
|
|
42
|
+
## Planned Next Scope
|
|
43
|
+
|
|
44
|
+
The next planned SCE capability line for MagicBall is lightweight cross-device sync and richer collection resolution above the current shipped local-device-first baseline.
|
|
45
|
+
|
|
46
|
+
Planned model split:
|
|
47
|
+
- `app_collection` and `scene_profile` as shared intent
|
|
48
|
+
- `device_installation` as local device fact
|
|
49
|
+
- `device_override` as local device overlay
|
|
50
|
+
|
|
51
|
+
Planned phase-1 position:
|
|
52
|
+
- local device-first
|
|
53
|
+
- file-backed shared intent
|
|
54
|
+
- SQLite only for local facts and rebuildable projections
|
|
55
|
+
- `apply` must be plan-first, not blind mutation
|
|
56
|
+
- local device override is file-backed and applied during collection/workspace resolution
|
|
57
|
+
- local device override mutation now uses explicit CLI upsert rather than manual-only file editing
|
|
58
|
+
|
|
59
|
+
Reference:
|
|
60
|
+
- `docs/magicball-app-collection-phase-1.md`
|
|
35
61
|
|
|
36
62
|
## Core Integration Positioning
|
|
37
63
|
|
|
@@ -100,6 +126,7 @@ Use `docs/magicball-cli-invocation-examples.md` for copy-ready commands.
|
|
|
100
126
|
- `sce app engineering show`
|
|
101
127
|
|
|
102
128
|
### Runtime and engineering control
|
|
129
|
+
- `sce device override show/upsert`
|
|
103
130
|
- `sce app runtime show/releases/install/activate/uninstall`
|
|
104
131
|
- `sce app engineering show/attach/hydrate/activate`
|
|
105
132
|
- `sce app registry status/configure/sync*`
|
package/docs/releases/README.md
CHANGED
|
@@ -9,6 +9,8 @@ This directory stores release-facing documents:
|
|
|
9
9
|
## Archived Versions
|
|
10
10
|
|
|
11
11
|
- [Release checklist](../release-checklist.md)
|
|
12
|
+
- [v3.6.55 release notes](./v3.6.55.md)
|
|
13
|
+
- [v3.6.54 release notes](./v3.6.54.md)
|
|
12
14
|
- [v3.6.48 release notes](./v3.6.48.md)
|
|
13
15
|
- [v3.6.47 release notes](./v3.6.47.md)
|
|
14
16
|
- [v3.6.46 release notes](./v3.6.46.md)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# v3.6.55 Release Notes
|
|
2
|
+
|
|
3
|
+
Release date: 2026-03-16
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Added explicit local device override governance commands: `sce device override show` and `sce device override upsert --input <json>`.
|
|
8
|
+
- Scene-oriented install planning now keeps `device_override` mutation on one conservative path instead of requiring manual file edits or introducing a parallel state mechanism.
|
|
9
|
+
- `device_override` updates now merge only explicitly provided fields, which aligns with the SCE core rule against blind replacement and preserves unrelated local device policy state.
|
|
10
|
+
|
|
11
|
+
## Validation
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/device-and-install-state.test.js tests/unit/commands/scene-workspace.test.js tests/unit/commands/app-mode.test.js --runInBand`
|
|
14
|
+
- `node scripts/release-doc-version-audit.js --fail-on-error`
|
|
15
|
+
|
|
16
|
+
## Release Notes
|
|
17
|
+
|
|
18
|
+
- This patch closes the last obvious usability gap in the phase-1 MagicBall install-management baseline. Shared intent, local device facts, and local override policy were already modeled, but local override updates still depended on hand-editing JSON. `3.6.55` makes that layer governable through the CLI while keeping the same single source of truth and conservative merge semantics.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# v3.6.55 发布说明
|
|
2
|
+
|
|
3
|
+
发布日期:2026-03-16
|
|
4
|
+
|
|
5
|
+
## 重点变化
|
|
6
|
+
|
|
7
|
+
- 新增显式的本地设备覆盖治理命令:`sce device override show` 和 `sce device override upsert --input <json>`。
|
|
8
|
+
- 面向场景的安装规划现在把 `device_override` 的修改也收敛到统一治理路径,不再依赖手工改 JSON,也没有再引入并行状态机制。
|
|
9
|
+
- `device_override` 更新采用“只合并明确给出的字段”的保守语义,符合 SCE 的“禁止盲改/禁止盲替换”核心原则,并保留未触及的本地设备策略状态。
|
|
10
|
+
|
|
11
|
+
## 验证
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/device-and-install-state.test.js tests/unit/commands/scene-workspace.test.js tests/unit/commands/app-mode.test.js --runInBand`
|
|
14
|
+
- `node scripts/release-doc-version-audit.js --fail-on-error`
|
|
15
|
+
|
|
16
|
+
## 发布说明
|
|
17
|
+
|
|
18
|
+
- 这个补丁版把 MagicBall phase-1 安装管理基线里最后一个明显缺口补上了。共享意图、本地设备事实和本地覆盖策略此前都已经建模完成,但本地覆盖更新仍依赖手工改 JSON。`3.6.55` 把这层能力补成了可治理的 CLI 命令,同时继续保持单一事实来源和保守合并语义。
|