scene-capability-engine 3.6.60 → 3.6.62
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 +15 -0
- package/README.md +4 -4
- package/README.zh.md +4 -4
- package/docs/command-reference.md +37 -4
- package/docs/magicball-adaptation-task-checklist-v1.md +14 -0
- package/docs/magicball-cli-invocation-examples.md +2 -0
- package/docs/magicball-frontend-state-and-command-mapping.md +5 -0
- package/docs/magicball-integration-issue-tracker.md +2 -2
- package/docs/magicball-project-portfolio-contract.md +60 -4
- package/docs/magicball-sce-adaptation-guide.md +2 -0
- package/docs/magicball-task-feedback-timeline-guide.md +0 -1
- package/docs/magicball-ui-surface-checklist.md +2 -0
- package/docs/release-checklist.md +1 -1
- package/docs/releases/README.md +2 -0
- package/docs/releases/v3.6.61.md +21 -0
- package/docs/releases/v3.6.62.md +32 -0
- package/docs/zh/release-checklist.md +1 -1
- package/docs/zh/releases/README.md +2 -0
- package/docs/zh/releases/v3.6.61.md +21 -0
- package/docs/zh/releases/v3.6.62.md +32 -0
- package/lib/commands/project.js +52 -0
- package/lib/commands/studio.js +1 -319
- package/lib/project/candidate-inspection-service.js +216 -0
- package/lib/project/root-onboarding-service.js +350 -0
- package/package.json +1 -1
- package/scripts/magicball-project-contract-audit.js +17 -4
- package/template/.sce/README.md +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.6.62] - 2026-03-21
|
|
11
|
+
|
|
12
|
+
### Removed
|
|
13
|
+
- Removed the OpenHands-specific `sce studio events --openhands-events <path>` bridge so current SCE no longer exposes a vendor-specific event-ingestion path in the active CLI surface.
|
|
14
|
+
|
|
15
|
+
## [3.6.61] - 2026-03-20
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- Added `sce project candidate inspect --root <path> --json` as the canonical single-root inspection contract for workspace-backed roots, local `.sce` candidates, ordinary directory candidates, and invalid roots.
|
|
19
|
+
- Added `sce project onboarding import --root <path> --json` as the canonical root-based onboarding entry, reusing the ordered `register/attach/hydrate/activate/scaffold` step envelope instead of inventing a second import receipt.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- MagicBall-facing multi-project docs, command reference, CLI examples, frontend mapping, and release-time project-contract audit now include `project candidate inspect` and `project onboarding import` alongside the existing portfolio/target/supervision contracts.
|
|
23
|
+
- Root-based onboarding now suppresses internal adoption progress logs in `--json` mode so adapters receive clean machine-readable envelopes.
|
|
24
|
+
|
|
10
25
|
## [3.6.60] - 2026-03-19
|
|
11
26
|
|
|
12
27
|
### Changed
|
package/README.md
CHANGED
|
@@ -155,7 +155,7 @@ SCE is opinionated by default.
|
|
|
155
155
|
For IDEs, AI shells, or custom frontends, the most important SCE surfaces are:
|
|
156
156
|
|
|
157
157
|
- `sce studio plan|generate|apply|verify|release`
|
|
158
|
-
- `sce studio events
|
|
158
|
+
- `sce studio events`
|
|
159
159
|
- `sce task ref|show|rerun`
|
|
160
160
|
- `sce timeline save|list|show|restore`
|
|
161
161
|
- `sce capability inventory`
|
|
@@ -174,7 +174,7 @@ MagicBall-specific integration surfaces now also include:
|
|
|
174
174
|
- `sce app registry status|configure|sync*`
|
|
175
175
|
- `sce app runtime show|releases|install|activate|uninstall`
|
|
176
176
|
- `sce app engineering preview|ownership|open|import|show|attach|hydrate|scaffold|activate`
|
|
177
|
-
- `sce project portfolio show|target resolve|supervision show`
|
|
177
|
+
- `sce project portfolio show|candidate inspect|onboarding import|target resolve|supervision show`
|
|
178
178
|
- `sce mode application|ontology|engineering home`
|
|
179
179
|
- `sce pm requirement|tracking|planning|change|issue ... --json`
|
|
180
180
|
- `sce ontology er|br|dl ... --json`
|
|
@@ -230,5 +230,5 @@ MIT. See [LICENSE](LICENSE).
|
|
|
230
230
|
|
|
231
231
|
---
|
|
232
232
|
|
|
233
|
-
**Version**: 3.6.
|
|
234
|
-
**Last Updated**: 2026-03-
|
|
233
|
+
**Version**: 3.6.62
|
|
234
|
+
**Last Updated**: 2026-03-21
|
package/README.zh.md
CHANGED
|
@@ -160,7 +160,7 @@ SCE 默认是强治理的。
|
|
|
160
160
|
如果你要对接 IDE、AI 助手或前端,优先关注这些接口面:
|
|
161
161
|
|
|
162
162
|
- `sce studio plan|generate|apply|verify|release`
|
|
163
|
-
- `sce studio events
|
|
163
|
+
- `sce studio events`
|
|
164
164
|
- `sce task ref|show|rerun`
|
|
165
165
|
- `sce timeline save|list|show|restore`
|
|
166
166
|
- `sce capability inventory`
|
|
@@ -179,7 +179,7 @@ SCE 默认是强治理的。
|
|
|
179
179
|
- `sce app registry status|configure|sync*`
|
|
180
180
|
- `sce app runtime show|releases|install|activate|uninstall`
|
|
181
181
|
- `sce app engineering preview|ownership|open|import|show|attach|hydrate|scaffold|activate`
|
|
182
|
-
- `sce project portfolio show|target resolve|supervision show`
|
|
182
|
+
- `sce project portfolio show|candidate inspect|onboarding import|target resolve|supervision show`
|
|
183
183
|
- `sce mode application|ontology|engineering home`
|
|
184
184
|
- `sce pm requirement|tracking|planning|change|issue ... --json`
|
|
185
185
|
- `sce ontology er|br|dl ... --json`
|
|
@@ -235,5 +235,5 @@ MIT,见 [LICENSE](LICENSE)。
|
|
|
235
235
|
|
|
236
236
|
---
|
|
237
237
|
|
|
238
|
-
**版本**:3.6.
|
|
239
|
-
**最后更新**:2026-03-
|
|
238
|
+
**版本**:3.6.62
|
|
239
|
+
**最后更新**:2026-03-21
|
|
@@ -744,8 +744,6 @@ sce studio resume --job <job-id> --json
|
|
|
744
744
|
|
|
745
745
|
# Inspect recent stage events
|
|
746
746
|
sce studio events --job <job-id> --limit 50 --json
|
|
747
|
-
# Map OpenHands raw events into the same task-stream contract
|
|
748
|
-
sce studio events --job <job-id> --openhands-events ./openhands-events.json --json
|
|
749
747
|
|
|
750
748
|
# Rollback a job after apply/release
|
|
751
749
|
sce studio rollback --job <job-id> --reason "manual-check-failed" --json
|
|
@@ -779,7 +777,6 @@ Studio JSON output now includes a stable UI-oriented task stream contract (in ad
|
|
|
779
777
|
- `task.evidence[]`: structured evidence references
|
|
780
778
|
- `task.feedback_model`: human-facing task feedback (`problem`, `execution`, `diagnosis`, `evidence`, `next_step`, `mb_status`)
|
|
781
779
|
- `event[]`: raw audit event stream (`studio events` also keeps legacy `events[]` for compatibility)
|
|
782
|
-
- `studio events --openhands-events <path>` switches `source_stream=openhands` and maps OpenHands raw events to the same task contract fields.
|
|
783
780
|
- hierarchical task reference lookup/rerun:
|
|
784
781
|
- `sce task show --ref <SS.PP.TT> --json`
|
|
785
782
|
- `sce task rerun --ref <SS.PP.TT> [--dry-run] --json`
|
|
@@ -2660,7 +2657,7 @@ Overall Health: 2 healthy, 1 unhealthy
|
|
|
2660
2657
|
|
|
2661
2658
|
---
|
|
2662
2659
|
|
|
2663
|
-
## Project Portfolio And
|
|
2660
|
+
## Project Portfolio, Candidate Inspection, And Onboarding
|
|
2664
2661
|
|
|
2665
2662
|
#### `sce project portfolio show`
|
|
2666
2663
|
|
|
@@ -2680,6 +2677,42 @@ sce project portfolio show [options]
|
|
|
2680
2677
|
- Marks inaccessible or partial projects explicitly instead of dropping them
|
|
2681
2678
|
- Reuses project-local session governance signals to summarize active sessions and last activity
|
|
2682
2679
|
|
|
2680
|
+
#### `sce project candidate inspect`
|
|
2681
|
+
|
|
2682
|
+
Inspect one local root through the canonical engine-owned project-candidate contract.
|
|
2683
|
+
|
|
2684
|
+
**Usage:**
|
|
2685
|
+
```bash
|
|
2686
|
+
sce project candidate inspect --root <path> [options]
|
|
2687
|
+
```
|
|
2688
|
+
|
|
2689
|
+
**Options:**
|
|
2690
|
+
- `--root <path>` - Local root directory to inspect
|
|
2691
|
+
- `--json` - Output the canonical `LocalProjectCandidateInspection`
|
|
2692
|
+
|
|
2693
|
+
**Behavior:**
|
|
2694
|
+
- Distinguishes `workspace-backed`, `local-sce-candidate`, `directory-candidate`, and `invalid`
|
|
2695
|
+
- Reuses deterministic project/workspace identity when the root already maps to a registered workspace
|
|
2696
|
+
- Returns canonical readiness, availability, and reason codes without adapter-side path heuristics
|
|
2697
|
+
|
|
2698
|
+
#### `sce project onboarding import`
|
|
2699
|
+
|
|
2700
|
+
Import one local root into the canonical project portfolio using root-based onboarding.
|
|
2701
|
+
|
|
2702
|
+
**Usage:**
|
|
2703
|
+
```bash
|
|
2704
|
+
sce project onboarding import --root <path> [options]
|
|
2705
|
+
```
|
|
2706
|
+
|
|
2707
|
+
**Options:**
|
|
2708
|
+
- `--root <path>` - Local root directory to import
|
|
2709
|
+
- `--json` - Output the canonical `ProjectOnboardingImportResult`
|
|
2710
|
+
|
|
2711
|
+
**Behavior:**
|
|
2712
|
+
- Accepts a local root as the primary onboarding target without app-bundle-first indirection
|
|
2713
|
+
- Reuses the canonical ordered step envelope (`register`, `attach`, `hydrate`, `activate`, `scaffold`)
|
|
2714
|
+
- Registers onboarded roots into the workspace-backed portfolio without inventing a second registry
|
|
2715
|
+
|
|
2683
2716
|
#### `sce project target resolve`
|
|
2684
2717
|
|
|
2685
2718
|
Resolve one target project for cross-project flows without mutating active workspace selection.
|
|
@@ -68,6 +68,20 @@ Done when:
|
|
|
68
68
|
- drillback panels use `items[]` directly
|
|
69
69
|
- frontend does not present `cursor` as a raw event-stream offset
|
|
70
70
|
|
|
71
|
+
### Task 0.5
|
|
72
|
+
Preflight user-picked local roots with the canonical candidate contract, then onboard by root when needed.
|
|
73
|
+
|
|
74
|
+
Commands:
|
|
75
|
+
```bash
|
|
76
|
+
sce project candidate inspect --root "<path>" --json
|
|
77
|
+
sce project onboarding import --root "<path>" --json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Done when:
|
|
81
|
+
- frontend does not infer project validity from ad hoc `.sce` path heuristics alone
|
|
82
|
+
- existing local `.sce` roots are imported without rebuilding them blindly
|
|
83
|
+
- ordinary directories can be onboarded without pretending to be app-library items first
|
|
84
|
+
|
|
71
85
|
## Phase 1: App Entry And Mode Switching
|
|
72
86
|
|
|
73
87
|
### Task 1.1
|
|
@@ -24,6 +24,8 @@ Assume:
|
|
|
24
24
|
### 1.0 Read multi-project portfolio baseline
|
|
25
25
|
```bash
|
|
26
26
|
sce project portfolio show --json
|
|
27
|
+
sce project candidate inspect --root "C:/workspace/customer-order-demo" --json
|
|
28
|
+
sce project onboarding import --root "C:/workspace/customer-order-demo" --json
|
|
27
29
|
sce project target resolve --request "continue customer-order-demo" --json
|
|
28
30
|
sce project supervision show --project workspace:customer-order-demo --json
|
|
29
31
|
```
|
|
@@ -65,6 +65,8 @@ Recommended shape:
|
|
|
65
65
|
```ts
|
|
66
66
|
interface ProjectWorkspaceShellState {
|
|
67
67
|
projectPortfolio: Record<string, unknown> | null
|
|
68
|
+
projectCandidate: Record<string, unknown> | null
|
|
69
|
+
projectOnboarding: Record<string, unknown> | null
|
|
68
70
|
currentProjectId: string | null
|
|
69
71
|
projectTarget: Record<string, unknown> | null
|
|
70
72
|
projectSupervision: Record<string, unknown> | null
|
|
@@ -73,11 +75,14 @@ interface ProjectWorkspaceShellState {
|
|
|
73
75
|
|
|
74
76
|
Owned commands:
|
|
75
77
|
- `sce project portfolio show --json`
|
|
78
|
+
- `sce project candidate inspect --root <path> --json`
|
|
79
|
+
- `sce project onboarding import --root <path> --json`
|
|
76
80
|
- `sce project target resolve --request <text> --current-project <project-id> --json`
|
|
77
81
|
- `sce project supervision show --project <project-id> --json`
|
|
78
82
|
|
|
79
83
|
Rule:
|
|
80
84
|
- multi-project shell must consume engine-owned project truth directly
|
|
85
|
+
- manual local-root import must preflight with `candidate inspect` before any onboarding mutation
|
|
81
86
|
- target resolution must be treated as preflight and must not mutate active workspace selection implicitly
|
|
82
87
|
|
|
83
88
|
### 2.2 Ontology Page State
|
|
@@ -29,7 +29,7 @@ SCE changes completed and now available for MagicBall:
|
|
|
29
29
|
- `app registry status/configure/sync*`
|
|
30
30
|
- `app runtime show/releases/install/activate/uninstall`
|
|
31
31
|
- `app engineering preview/ownership/open/import/show/attach/hydrate/scaffold/activate`
|
|
32
|
-
- `project portfolio show/target resolve/supervision show`
|
|
32
|
+
- `project portfolio show/candidate inspect/onboarding import/target resolve/supervision show`
|
|
33
33
|
- `pm requirement/tracking/planning/change/issue` data plane
|
|
34
34
|
- `ontology er/br/dl` + `ontology triad summary`
|
|
35
35
|
- `ontology seed list/show/apply`
|
|
@@ -41,7 +41,7 @@ SCE changes completed and now available for MagicBall:
|
|
|
41
41
|
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
|
|
42
42
|
3. consume `pm`, `ontology`, and `assurance` table payloads
|
|
43
43
|
4. wire runtime install/activate/uninstall and engineering attach/hydrate/scaffold/activate actions
|
|
44
|
-
5. treat `project portfolio / target resolve / supervision` as the default multi-project shell truth
|
|
44
|
+
5. treat `project portfolio / candidate inspect / onboarding import / target resolve / supervision` as the default multi-project shell truth
|
|
45
45
|
6. use demo app: `customer-order-demo`
|
|
46
46
|
|
|
47
47
|
### Related SCE docs
|
|
@@ -6,6 +6,8 @@ Define the stable phase-1 SCE contract for MagicBall multi-project surfaces.
|
|
|
6
6
|
|
|
7
7
|
This document covers:
|
|
8
8
|
- project roster projection
|
|
9
|
+
- root candidate inspection
|
|
10
|
+
- root-based onboarding import
|
|
9
11
|
- target-project preflight resolution
|
|
10
12
|
- project-scoped supervision snapshot
|
|
11
13
|
|
|
@@ -22,6 +24,7 @@ Use together with:
|
|
|
22
24
|
|
|
23
25
|
Phase-1 is read-first and engine-owned:
|
|
24
26
|
- project visibility comes from registered workspaces plus the current unregistered `.sce` project when applicable
|
|
27
|
+
- local root inspection and onboarding reuse engine-owned identity and reason codes
|
|
25
28
|
- project identity is deterministic and stable for registered workspaces
|
|
26
29
|
- target resolution is preflight-only and does not mutate active workspace selection
|
|
27
30
|
- supervision is a project-scoped snapshot, not a raw cross-project event stream
|
|
@@ -36,6 +39,8 @@ Phase-1 does not introduce:
|
|
|
36
39
|
|
|
37
40
|
```bash
|
|
38
41
|
sce project portfolio show --json
|
|
42
|
+
sce project candidate inspect --root <path> --json
|
|
43
|
+
sce project onboarding import --root <path> --json
|
|
39
44
|
sce project target resolve --json
|
|
40
45
|
sce project supervision show --project <project-id> --json
|
|
41
46
|
```
|
|
@@ -105,6 +110,55 @@ interface ProjectPortfolioRecord {
|
|
|
105
110
|
|
|
106
111
|
## 2. Target Resolution
|
|
107
112
|
|
|
113
|
+
## 1.5 Root Candidate Inspection And Onboarding
|
|
114
|
+
|
|
115
|
+
### Commands
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
sce project candidate inspect --root <path> --json
|
|
119
|
+
sce project onboarding import --root <path> --json
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Contract shape
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
interface LocalProjectCandidateInspection {
|
|
126
|
+
inspectedAt: string
|
|
127
|
+
rootDir: string
|
|
128
|
+
kind: 'workspace-backed' | 'local-sce-candidate' | 'directory-candidate' | 'invalid'
|
|
129
|
+
projectId?: string
|
|
130
|
+
workspaceId?: string
|
|
131
|
+
projectName?: string
|
|
132
|
+
readiness: 'ready' | 'partial' | 'pending' | 'blocked' | 'unknown'
|
|
133
|
+
availability: 'accessible' | 'inaccessible' | 'degraded'
|
|
134
|
+
localCandidate: boolean
|
|
135
|
+
reasonCodes: string[]
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
interface ProjectOnboardingImportResult {
|
|
139
|
+
mode: 'import'
|
|
140
|
+
generated_at: string
|
|
141
|
+
success: boolean
|
|
142
|
+
preview: LocalProjectCandidateInspection
|
|
143
|
+
steps: Array<{
|
|
144
|
+
key: 'register' | 'attach' | 'hydrate' | 'activate' | 'scaffold'
|
|
145
|
+
status: 'done' | 'skipped' | 'pending' | 'failed'
|
|
146
|
+
reasonCode?: string
|
|
147
|
+
detail?: string
|
|
148
|
+
}>
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### MagicBall rules
|
|
153
|
+
|
|
154
|
+
- Adapter-owned filesystem scanning is allowed, but every chosen root must be normalized through `candidate inspect`.
|
|
155
|
+
- Use `project onboarding import` when the user picks a local root directly; do not fake an app-library item just to enter onboarding.
|
|
156
|
+
- If `kind=workspace-backed`, reuse returned `projectId/workspaceId` directly and avoid synthesizing a second registry identity.
|
|
157
|
+
- If `kind=local-sce-candidate`, present it as a partial local project until onboarding import registers it.
|
|
158
|
+
- Render `reasonCodes` directly in CLI/IDE receipts; do not replace them with frontend-only heuristics.
|
|
159
|
+
|
|
160
|
+
## 2. Target Resolution
|
|
161
|
+
|
|
108
162
|
### Command
|
|
109
163
|
|
|
110
164
|
```bash
|
|
@@ -201,10 +255,12 @@ interface ProjectSupervisionItem {
|
|
|
201
255
|
## 4. Recommended Multi-Project Frontend Flow
|
|
202
256
|
|
|
203
257
|
1. Load `sce project portfolio show --json` when entering the multi-project shell.
|
|
204
|
-
2.
|
|
205
|
-
3.
|
|
206
|
-
4.
|
|
207
|
-
5.
|
|
258
|
+
2. When the user selects a local root manually, preflight it with `sce project candidate inspect --root <path> --json`.
|
|
259
|
+
3. If the root is not yet portfolio-backed, import it through `sce project onboarding import --root <path> --json`.
|
|
260
|
+
4. Store `activeProjectId` and render a project switcher from `projects[]`.
|
|
261
|
+
5. When the user enters a cross-project free-text request, preflight with `sce project target resolve --json`.
|
|
262
|
+
6. After project selection or successful resolution, load `sce project supervision show --project <project-id> --json`.
|
|
263
|
+
7. Keep per-project tabs and page layout frontend-owned, but keep project truth engine-owned.
|
|
208
264
|
|
|
209
265
|
## 5. Minimal Acceptance Criteria For MagicBall
|
|
210
266
|
|
|
@@ -142,6 +142,8 @@ Use `docs/magicball-cli-invocation-examples.md` for copy-ready commands.
|
|
|
142
142
|
|
|
143
143
|
### Multi-project control
|
|
144
144
|
- `sce project portfolio show`
|
|
145
|
+
- `sce project candidate inspect`
|
|
146
|
+
- `sce project onboarding import`
|
|
145
147
|
- `sce project target resolve`
|
|
146
148
|
- `sce project supervision show`
|
|
147
149
|
|
|
@@ -117,7 +117,6 @@ SCE 现在在时间线命令中增加:
|
|
|
117
117
|
## 4. 最小接口清单
|
|
118
118
|
|
|
119
119
|
- `sce studio events --job <job-id> --json`
|
|
120
|
-
- `sce studio events --job <job-id> --openhands-events <path> --json`
|
|
121
120
|
- `sce timeline list --limit 20 --json`
|
|
122
121
|
- `sce timeline show <snapshot-id> --json`
|
|
123
122
|
|
|
@@ -136,11 +136,13 @@ MagicBall can treat the current SCE integration as baseline-ready when:
|
|
|
136
136
|
|
|
137
137
|
### Must render
|
|
138
138
|
- project switcher from `project portfolio show`
|
|
139
|
+
- local-root candidate receipt from `project candidate inspect`
|
|
139
140
|
- current project marker
|
|
140
141
|
- project health summary from `project supervision show`
|
|
141
142
|
- explicit degraded / inaccessible project states
|
|
142
143
|
|
|
143
144
|
### Must behave correctly
|
|
145
|
+
- manual root import preflights through `project candidate inspect` before `project onboarding import`
|
|
144
146
|
- cross-project free-text routing preflights through `project target resolve`
|
|
145
147
|
- ambiguous resolution does not auto-select silently
|
|
146
148
|
- target resolution does not implicitly switch active workspace selection
|
|
@@ -94,7 +94,7 @@ rg -n "github.com/scene-capability-engine/sce" README.md README.zh.md docs START
|
|
|
94
94
|
Additional expectation:
|
|
95
95
|
|
|
96
96
|
- `audit:magicball-engineering-contract` passes so active MagicBall entry docs stay aligned with `scene delivery`, `engineering preview/ownership`, and `open/import/scaffold` contracts.
|
|
97
|
-
- `audit:magicball-project-contract` passes so active MagicBall entry docs stay aligned with `project portfolio`, `project target resolve`, and `project supervision show` contracts.
|
|
97
|
+
- `audit:magicball-project-contract` passes so active MagicBall entry docs stay aligned with `project portfolio`, `project candidate inspect`, `project onboarding import`, `project target resolve`, and `project supervision show` contracts.
|
|
98
98
|
|
|
99
99
|
---
|
|
100
100
|
|
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.62 release notes](./v3.6.62.md)
|
|
13
|
+
- [v3.6.61 release notes](./v3.6.61.md)
|
|
12
14
|
- [v3.6.60 release notes](./v3.6.60.md)
|
|
13
15
|
- [v3.6.59 release notes](./v3.6.59.md)
|
|
14
16
|
- [v3.6.58 release notes](./v3.6.58.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# v3.6.61 Release Notes
|
|
2
|
+
|
|
3
|
+
Release date: 2026-03-20
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Added canonical local-root inspection through `sce project candidate inspect --root <path> --json`, so adapters can classify one chosen directory without inventing their own `.sce` heuristics.
|
|
8
|
+
- Added canonical root-based onboarding through `sce project onboarding import --root <path> --json`, reusing the shared onboarding step envelope and registering imported roots into the project portfolio without a second registry.
|
|
9
|
+
- Extended MagicBall-facing contract docs and release-time doc audit to keep `candidate inspect` and `onboarding import` aligned with `project portfolio / target resolve / supervision`.
|
|
10
|
+
|
|
11
|
+
## Validation
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/project.test.js --runInBand`
|
|
14
|
+
- `npx jest tests/unit/scripts/magicball-project-contract-audit.test.js --runInBand`
|
|
15
|
+
- `npx jest tests/integration/project-cli.integration.test.js --runInBand`
|
|
16
|
+
- `node scripts/magicball-project-contract-audit.js --fail-on-violation --json`
|
|
17
|
+
|
|
18
|
+
## Release Notes
|
|
19
|
+
|
|
20
|
+
- Use `v3.6.61` when you need the upstream `136-00` local-project candidate inspection and root-based onboarding contract in the published SCE package.
|
|
21
|
+
- This release stays within the existing engine/adapter boundary: adapters still own scan policy, while SCE now owns the canonical semantics for inspecting one root and importing it by root.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# v3.6.62 Release Notes
|
|
2
|
+
|
|
3
|
+
Release date: 2026-03-21
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Removed the OpenHands-specific `sce studio events --openhands-events <path>` bridge from the tracked CLI surface so SCE no longer publishes a vendor-specific event-ingestion path as a first-class runtime contract.
|
|
8
|
+
- Removed the corresponding OpenHands mapping test coverage and cleaned the main command reference plus README surfaces to keep shipped documentation aligned with the active product boundary.
|
|
9
|
+
- Kept the broader external-runtime direction vendor-neutral so future IDE embedding can focus on Codex CLI, Claude Code, and similar in-process tool endpoints without carrying a stale OpenHands-first entry point.
|
|
10
|
+
|
|
11
|
+
## Validation
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/studio.test.js --runInBand`
|
|
14
|
+
- `npm run test:release`
|
|
15
|
+
- `npm run audit:release-docs`
|
|
16
|
+
- `npm run audit:steering`
|
|
17
|
+
- `npm run test:skip-audit`
|
|
18
|
+
- `npm run test:sce-tracking`
|
|
19
|
+
- `npm run gate:npm-runtime-assets`
|
|
20
|
+
- `npm run test:brand-consistency`
|
|
21
|
+
- `npm run audit:clarification-first`
|
|
22
|
+
- `npm run audit:magicball-engineering-contract`
|
|
23
|
+
- `npm run audit:magicball-project-contract`
|
|
24
|
+
- `npm run gate:collab-governance`
|
|
25
|
+
- `npm run gate:errorbook-registry-health`
|
|
26
|
+
- `npm run gate:errorbook-release`
|
|
27
|
+
- `npm pack --dry-run`
|
|
28
|
+
|
|
29
|
+
## Release Notes
|
|
30
|
+
|
|
31
|
+
- Use `v3.6.62` when you need the published SCE package to exclude the old OpenHands-specific `studio events` bridge from the active CLI and doc surface.
|
|
32
|
+
- This patch intentionally does not rewrite user-local draft Specs; it only cleans the tracked engine, tests, and release-facing documentation.
|
|
@@ -79,7 +79,7 @@ rg -n "github.com/scene-capability-engine/sce" README.md README.zh.md docs START
|
|
|
79
79
|
额外预期:
|
|
80
80
|
|
|
81
81
|
- `audit:magicball-engineering-contract` 通过,确保活跃的 MagicBall 入口文档与 `scene delivery`、`engineering preview/ownership`、`open/import/scaffold` 契约保持一致。
|
|
82
|
-
- `audit:magicball-project-contract` 通过,确保活跃的 MagicBall 入口文档与 `project portfolio`、`project target resolve`、`project supervision show` 契约保持一致。
|
|
82
|
+
- `audit:magicball-project-contract` 通过,确保活跃的 MagicBall 入口文档与 `project portfolio`、`project candidate inspect`、`project onboarding import`、`project target resolve`、`project supervision show` 契约保持一致。
|
|
83
83
|
|
|
84
84
|
---
|
|
85
85
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# v3.6.61 发布说明
|
|
2
|
+
|
|
3
|
+
发布日期:2026-03-20
|
|
4
|
+
|
|
5
|
+
## 重点变化
|
|
6
|
+
|
|
7
|
+
- 新增 `sce project candidate inspect --root <path> --json`,把“单个本地目录候选项目检查”正式上收到 engine 契约层,适配器不再需要自造 `.sce` 目录启发式。
|
|
8
|
+
- 新增 `sce project onboarding import --root <path> --json`,把“按根目录导入/onboarding”正式收敛到 canonical step envelope,并把导入结果纳入项目 portfolio,而不是另造第二套 registry。
|
|
9
|
+
- 同步扩展了 MagicBall 多项目合同文档与发布时项目合同审计,确保 `candidate inspect / onboarding import` 与既有 `project portfolio / target resolve / supervision` 保持一致。
|
|
10
|
+
|
|
11
|
+
## 验证
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/project.test.js --runInBand`
|
|
14
|
+
- `npx jest tests/unit/scripts/magicball-project-contract-audit.test.js --runInBand`
|
|
15
|
+
- `npx jest tests/integration/project-cli.integration.test.js --runInBand`
|
|
16
|
+
- `node scripts/magicball-project-contract-audit.js --fail-on-violation --json`
|
|
17
|
+
|
|
18
|
+
## 发布说明
|
|
19
|
+
|
|
20
|
+
- 需要上游 `136-00` 本地项目候选检查与按根目录 onboarding 契约时,请使用 `v3.6.61`。
|
|
21
|
+
- 该版本继续保持 engine / adapter 边界:扫描策略仍归适配器,SCE 负责“检查一个 root”和“按 root 导入”的正式语义。
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# v3.6.62 发布说明
|
|
2
|
+
|
|
3
|
+
发布日期:2026-03-21
|
|
4
|
+
|
|
5
|
+
## 重点变化
|
|
6
|
+
|
|
7
|
+
- 从已跟踪 CLI 正式接口面移除了 OpenHands 专有的 `sce studio events --openhands-events <path>` 桥接入口,避免 SCE 继续把某个供应商专有事件摄取路径作为一等运行时契约发布。
|
|
8
|
+
- 同步移除了对应的 OpenHands 映射测试,并清理了主命令参考与 README 中的相关说明,保证随包发布的文档与当前正式产品边界一致。
|
|
9
|
+
- 外部 runtime 方向继续保持 vendor-neutral,为后续 IDE 内嵌 Codex CLI、Claude Code 等执行端预留稳定空间,而不是继续背着过时的 OpenHands-first 入口。
|
|
10
|
+
|
|
11
|
+
## 验证
|
|
12
|
+
|
|
13
|
+
- `npx jest tests/unit/commands/studio.test.js --runInBand`
|
|
14
|
+
- `npm run test:release`
|
|
15
|
+
- `npm run audit:release-docs`
|
|
16
|
+
- `npm run audit:steering`
|
|
17
|
+
- `npm run test:skip-audit`
|
|
18
|
+
- `npm run test:sce-tracking`
|
|
19
|
+
- `npm run gate:npm-runtime-assets`
|
|
20
|
+
- `npm run test:brand-consistency`
|
|
21
|
+
- `npm run audit:clarification-first`
|
|
22
|
+
- `npm run audit:magicball-engineering-contract`
|
|
23
|
+
- `npm run audit:magicball-project-contract`
|
|
24
|
+
- `npm run gate:collab-governance`
|
|
25
|
+
- `npm run gate:errorbook-registry-health`
|
|
26
|
+
- `npm run gate:errorbook-release`
|
|
27
|
+
- `npm pack --dry-run`
|
|
28
|
+
|
|
29
|
+
## 发布说明
|
|
30
|
+
|
|
31
|
+
- 当你需要已发布的 SCE 包不再暴露旧的 OpenHands 专有 `studio events` 桥接入口时,请使用 `v3.6.62`。
|
|
32
|
+
- 本次补丁刻意不去重写用户本地未纳管的草稿 spec,只清理已跟踪的 engine、测试与发布文档面。
|
package/lib/commands/project.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
const chalk = require('chalk');
|
|
2
|
+
const { inspectProjectCandidate } = require('../project/candidate-inspection-service');
|
|
2
3
|
const { buildProjectPortfolioProjection } = require('../project/portfolio-projection-service');
|
|
4
|
+
const { runProjectRootOnboardingImport } = require('../project/root-onboarding-service');
|
|
3
5
|
const { buildProjectSupervisionProjection } = require('../project/supervision-projection-service');
|
|
4
6
|
const { resolveProjectTarget } = require('../project/target-resolution-service');
|
|
5
7
|
|
|
@@ -41,6 +43,32 @@ async function runProjectSupervisionShowCommand(options = {}, dependencies = {})
|
|
|
41
43
|
return payload;
|
|
42
44
|
}
|
|
43
45
|
|
|
46
|
+
async function runProjectCandidateInspectCommand(options = {}, dependencies = {}) {
|
|
47
|
+
const payload = await inspectProjectCandidate(options, dependencies);
|
|
48
|
+
if (options.json) {
|
|
49
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
50
|
+
} else {
|
|
51
|
+
console.log(chalk.blue('Project Candidate Inspection'));
|
|
52
|
+
console.log(` Root: ${payload.rootDir}`);
|
|
53
|
+
console.log(` Kind: ${payload.kind}`);
|
|
54
|
+
console.log(` Readiness: ${payload.readiness}`);
|
|
55
|
+
}
|
|
56
|
+
return payload;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async function runProjectOnboardingImportCommand(options = {}, dependencies = {}) {
|
|
60
|
+
const payload = await runProjectRootOnboardingImport(options, dependencies);
|
|
61
|
+
if (options.json) {
|
|
62
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
63
|
+
} else {
|
|
64
|
+
console.log(chalk.blue('Project Onboarding Import'));
|
|
65
|
+
console.log(` Root: ${payload.preview ? payload.preview.rootDir : options.root}`);
|
|
66
|
+
console.log(` Success: ${payload.success ? 'yes' : 'no'}`);
|
|
67
|
+
console.log(` Workspace: ${payload.result && payload.result.workspaceId ? payload.result.workspaceId : 'none'}`);
|
|
68
|
+
}
|
|
69
|
+
return payload;
|
|
70
|
+
}
|
|
71
|
+
|
|
44
72
|
function safeRun(handler, options = {}, context = 'project command') {
|
|
45
73
|
Promise.resolve(handler(options))
|
|
46
74
|
.catch((error) => {
|
|
@@ -84,6 +112,28 @@ function registerProjectCommands(program) {
|
|
|
84
112
|
.option('--json', 'Print machine-readable JSON output')
|
|
85
113
|
.action((options) => safeRun(runProjectTargetResolveCommand, options, 'project target resolve'));
|
|
86
114
|
|
|
115
|
+
const candidate = project
|
|
116
|
+
.command('candidate')
|
|
117
|
+
.description('Inspect one local directory as a canonical project candidate');
|
|
118
|
+
|
|
119
|
+
candidate
|
|
120
|
+
.command('inspect')
|
|
121
|
+
.description('Inspect one local root without inventing adapter-side heuristics')
|
|
122
|
+
.requiredOption('--root <path>', 'Local root directory to inspect')
|
|
123
|
+
.option('--json', 'Print machine-readable JSON output')
|
|
124
|
+
.action((options) => safeRun(runProjectCandidateInspectCommand, options, 'project candidate inspect'));
|
|
125
|
+
|
|
126
|
+
const onboarding = project
|
|
127
|
+
.command('onboarding')
|
|
128
|
+
.description('Import one local directory into the canonical project portfolio');
|
|
129
|
+
|
|
130
|
+
onboarding
|
|
131
|
+
.command('import')
|
|
132
|
+
.description('Run root-based onboarding without app-bundle-first indirection')
|
|
133
|
+
.requiredOption('--root <path>', 'Local root directory to import')
|
|
134
|
+
.option('--json', 'Print machine-readable JSON output')
|
|
135
|
+
.action((options) => safeRun(runProjectOnboardingImportCommand, options, 'project onboarding import'));
|
|
136
|
+
|
|
87
137
|
const supervision = project
|
|
88
138
|
.command('supervision')
|
|
89
139
|
.description('Inspect project-scoped supervision projection');
|
|
@@ -98,6 +148,8 @@ function registerProjectCommands(program) {
|
|
|
98
148
|
}
|
|
99
149
|
|
|
100
150
|
module.exports = {
|
|
151
|
+
runProjectCandidateInspectCommand,
|
|
152
|
+
runProjectOnboardingImportCommand,
|
|
101
153
|
runProjectPortfolioShowCommand,
|
|
102
154
|
runProjectTargetResolveCommand,
|
|
103
155
|
runProjectSupervisionShowCommand,
|