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 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
@@ -230,5 +230,5 @@ MIT. See [LICENSE](LICENSE).
230
230
 
231
231
  ---
232
232
 
233
- **Version**: 3.6.58
233
+ **Version**: 3.6.60
234
234
  **Last Updated**: 2026-03-19
package/README.zh.md CHANGED
@@ -235,5 +235,5 @@ MIT,见 [LICENSE](LICENSE)。
235
235
 
236
236
  ---
237
237
 
238
- **版本**:3.6.58
238
+ **版本**:3.6.60
239
239
  **最后更新**:2026-03-19
@@ -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.
@@ -9,6 +9,8 @@
9
9
  ## 历史版本归档
10
10
 
11
11
  - [发布检查清单](../release-checklist.md)
12
+ - [v3.6.60 发布说明](./v3.6.60.md)
13
+ - [v3.6.59 发布说明](./v3.6.59.md)
12
14
  - [v3.6.58 发布说明](./v3.6.58.md)
13
15
  - [v3.6.57 发布说明](./v3.6.57.md)
14
16
  - [v3.6.56 发布说明](./v3.6.56.md)
@@ -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: Number.isFinite(Number(record.age_days)) ? Number(record.age_days) : null,
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scene-capability-engine",
3
- "version": "3.6.58",
3
+ "version": "3.6.60",
4
4
  "description": "SCE (Scene Capability Engine) - A CLI tool and npm package for spec-driven development with AI coding assistants.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -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.58
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