scene-capability-engine 3.6.59 → 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 +6 -0
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/docs/releases/README.md +1 -0
- package/docs/releases/v3.6.60.md +19 -0
- package/docs/zh/releases/README.md +1 -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,12 @@ 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
|
+
|
|
10
16
|
## [3.6.59] - 2026-03-19
|
|
11
17
|
|
|
12
18
|
### Changed
|
package/README.md
CHANGED
package/README.zh.md
CHANGED
package/docs/releases/README.md
CHANGED
|
@@ -9,6 +9,7 @@ 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)
|
|
12
13
|
- [v3.6.59 release notes](./v3.6.59.md)
|
|
13
14
|
- [v3.6.58 release notes](./v3.6.58.md)
|
|
14
15
|
- [v3.6.57 release notes](./v3.6.57.md)
|
|
@@ -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,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
|