scene-capability-engine 3.6.58 → 3.6.60
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 +12 -0
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/docs/releases/README.md +2 -0
- package/docs/releases/v3.6.59.md +18 -0
- package/docs/releases/v3.6.60.md +19 -0
- package/docs/zh/releases/README.md +2 -0
- package/docs/zh/releases/v3.6.59.md +18 -0
- package/docs/zh/releases/v3.6.60.md +19 -0
- package/lib/problem/project-problem-projection.js +9 -1
- package/package.json +1 -1
- package/template/.sce/README.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.6.60] - 2026-03-19
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Stabilized tracked `project-shared-problems.json` aging output to whole-day precision so release and publish gates no longer dirty the worktree on minute-scale `age_days` drift.
|
|
14
|
+
- Published the canonical follow-up package after `3.6.59` was already minted from the pre-fix candidate; use `3.6.60` when strict npm/tag/repository alignment matters.
|
|
15
|
+
|
|
16
|
+
## [3.6.59] - 2026-03-19
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Published a follow-up alignment patch so the npm package, Git tag, and repository release line all point at the final post-release state after shared project problem projection sync.
|
|
20
|
+
- Kept runtime capability contracts unchanged from `3.6.58`; this patch is for release-state consistency rather than new engine behavior.
|
|
21
|
+
|
|
10
22
|
## [3.6.58] - 2026-03-19
|
|
11
23
|
|
|
12
24
|
### Added
|
package/README.md
CHANGED
package/README.zh.md
CHANGED
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.60 release notes](./v3.6.60.md)
|
|
13
|
+
- [v3.6.59 release notes](./v3.6.59.md)
|
|
12
14
|
- [v3.6.58 release notes](./v3.6.58.md)
|
|
13
15
|
- [v3.6.57 release notes](./v3.6.57.md)
|
|
14
16
|
- [v3.6.56 release notes](./v3.6.56.md)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# v3.6.59 Release Notes
|
|
2
|
+
|
|
3
|
+
Release date: 2026-03-19
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Published an alignment-only follow-up patch so the npm package, repository tag, and release branch all reference the same final repository state.
|
|
8
|
+
- Kept the MagicBall delivery, engineering, and multi-project contracts exactly the same as `v3.6.58`.
|
|
9
|
+
|
|
10
|
+
## Validation
|
|
11
|
+
|
|
12
|
+
- `npm run audit:release-docs`
|
|
13
|
+
- `node scripts/git-managed-gate.js --fail-on-violation --json`
|
|
14
|
+
- `npm publish --access public` via `prepublishOnly`
|
|
15
|
+
|
|
16
|
+
## Release Notes
|
|
17
|
+
|
|
18
|
+
- This patch does not introduce new runtime or adapter-facing behavior. It exists to remove release-state ambiguity after the post-release shared project problem projection snapshot was committed to the repository. Use `v3.6.59` as the canonical follow-up version when strict npm/tag/repository alignment matters.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# v3.6.60 Release Notes
|
|
2
|
+
|
|
3
|
+
Release date: 2026-03-19
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- Stabilized tracked `project-shared-problems.json` aging output to whole-day precision so release and publish gates no longer dirty the worktree on minute-scale `age_days` drift.
|
|
8
|
+
- Published the canonical follow-up package after `v3.6.59` had already been published from the pre-fix candidate.
|
|
9
|
+
|
|
10
|
+
## Validation
|
|
11
|
+
|
|
12
|
+
- `npx jest tests/unit/problem/project-problem-projection.test.js --runInBand`
|
|
13
|
+
- `npm run audit:release-docs`
|
|
14
|
+
- `node scripts/git-managed-gate.js --fail-on-violation --json`
|
|
15
|
+
- `npm publish --access public` via `prepublishOnly`
|
|
16
|
+
|
|
17
|
+
## Release Notes
|
|
18
|
+
|
|
19
|
+
- Use `v3.6.60` as the canonical aligned version for the shared-problem projection release line. It preserves the `v3.6.58/v3.6.59` MagicBall and multi-project contracts, and only closes the last publish-time worktree-drift gap in tracked project problem projection output.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# v3.6.59 发布说明
|
|
2
|
+
|
|
3
|
+
发布日期:2026-03-19
|
|
4
|
+
|
|
5
|
+
## 重点变化
|
|
6
|
+
|
|
7
|
+
- 发布了一个仅用于对齐的补丁版,使 npm 包、仓库 tag 与发布分支都指向同一份最终仓库状态。
|
|
8
|
+
- MagicBall 的 delivery、engineering 与 multi-project 契约能力与 `v3.6.58` 保持完全一致,没有新增运行时能力变化。
|
|
9
|
+
|
|
10
|
+
## 验证
|
|
11
|
+
|
|
12
|
+
- `npm run audit:release-docs`
|
|
13
|
+
- `node scripts/git-managed-gate.js --fail-on-violation --json`
|
|
14
|
+
- 通过 `prepublishOnly` 执行 `npm publish --access public`
|
|
15
|
+
|
|
16
|
+
## 发布说明
|
|
17
|
+
|
|
18
|
+
- 这个补丁版不引入新的运行时行为,也不改变适配层合同。它的目的只是消除发版状态歧义:在共享项目问题投影快照于发版后写回仓库后,再给出一个严格对齐 npm/tag/仓库状态的正式版本。如果你要求 npm、tag、GitHub 发布线完全一致,应以后续的 `v3.6.59` 作为标准版本。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# v3.6.60 发布说明
|
|
2
|
+
|
|
3
|
+
发布日期:2026-03-19
|
|
4
|
+
|
|
5
|
+
## 重点变化
|
|
6
|
+
|
|
7
|
+
- 稳定了被 Git 跟踪的 `project-shared-problems.json` aging 输出;发布/发版时不再因为分钟级 `age_days` 漂移把工作区写脏。
|
|
8
|
+
- 在 `v3.6.59` 已经以未修复候选包形式发布后,补发了真正对齐的正式版本。
|
|
9
|
+
|
|
10
|
+
## 验证
|
|
11
|
+
|
|
12
|
+
- `npx jest tests/unit/problem/project-problem-projection.test.js --runInBand`
|
|
13
|
+
- `npm run audit:release-docs`
|
|
14
|
+
- `node scripts/git-managed-gate.js --fail-on-violation --json`
|
|
15
|
+
- 通过 `prepublishOnly` 执行 `npm publish --access public`
|
|
16
|
+
|
|
17
|
+
## 发布说明
|
|
18
|
+
|
|
19
|
+
- `v3.6.60` 才是这条 shared-problem projection 发布线的标准对齐版本。它保持 `v3.6.58/v3.6.59` 的 MagicBall 与多项目合同不变,只补上了项目共享问题投影在发版时的最后一个工作区漂移缺口。
|
|
@@ -107,6 +107,14 @@ function toComparableProjection(payload) {
|
|
|
107
107
|
return sortKeysDeep(clone);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
function normalizeProjectionAgeDays(value) {
|
|
111
|
+
const numeric = Number(value);
|
|
112
|
+
if (!Number.isFinite(numeric)) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
return Math.max(0, Math.floor(numeric));
|
|
116
|
+
}
|
|
117
|
+
|
|
110
118
|
async function buildProjectSharedProblemProjection(projectPath = process.cwd(), options = {}, dependencies = {}) {
|
|
111
119
|
const fileSystem = dependencies.fileSystem || fs;
|
|
112
120
|
const studioIntakePolicy = dependencies.studioIntakePolicy || await loadStudioIntakePolicy(projectPath, fileSystem);
|
|
@@ -156,7 +164,7 @@ async function buildProjectSharedProblemProjection(projectPath = process.cwd(),
|
|
|
156
164
|
scene_id: record.scene_id || null,
|
|
157
165
|
lifecycle_state: record.lifecycle_state || null,
|
|
158
166
|
updated_at: record.updated_at || null,
|
|
159
|
-
age_days:
|
|
167
|
+
age_days: normalizeProjectionAgeDays(record.age_days),
|
|
160
168
|
tasks_total: Number.isFinite(Number(record.tasks_total)) ? Number(record.tasks_total) : 0,
|
|
161
169
|
tasks_done: Number.isFinite(Number(record.tasks_done)) ? Number(record.tasks_done) : 0,
|
|
162
170
|
tasks_progress: Number.isFinite(Number(record.tasks_progress)) ? Number(record.tasks_progress) : 0,
|
package/package.json
CHANGED
package/template/.sce/README.md
CHANGED
|
@@ -243,6 +243,6 @@ A Spec is a complete feature definition with three parts:
|
|
|
243
243
|
---
|
|
244
244
|
|
|
245
245
|
**Project Type**: Spec-driven development
|
|
246
|
-
**sce Version**: 3.6.
|
|
246
|
+
**sce Version**: 3.6.60
|
|
247
247
|
**Last Updated**: 2026-03-19
|
|
248
248
|
**Purpose**: Guide AI tools to work effectively with this project
|