@entrorove/skill 0.1.67 → 0.1.68

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
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.68 — 2026-10-20
4
+
5
+ - 修复大目录扫描的调用栈溢出:逐项收集完整目录清单,保留忽略文件摘要、符号链接边界、原范围与签名及前后扫描变化拒绝;原流程可在标准升级后重试。
6
+ - Fix call-argument overflow in large repository scans by collecting every inventory path individually. Preserve ignored-file hashes, symlink boundaries, original scope and signatures, and inventory-drift refusal; retry the original flow after a standard managed upgrade.
7
+
3
8
  ## 0.1.67 — 2026-10-19
4
9
 
5
10
  - 更新了包降级、版本冲突与凭证回滚门禁。
@@ -6,6 +6,8 @@ UI changes also require [DESIGN-GATES.md](DESIGN-GATES.md): approved flow, resea
6
6
 
7
7
  Snapshot scans stream whole-repository integrity hashes and bound semantic work to 1 MiB per source, 8 MiB of retained source, 512 files and 200,000 syntax nodes. Original target paths and proposed files receive capacity first. A resource-limited non-target source stays in the integrity comparison and is recorded as unresolved; `scanComplete` is false and absent references cannot prove a symbol unused. A target that exceeds a bound returns `ENTROROVE_DISCIPLINE_ANALYSIS_LIMIT` with its path and the exceeded limit. These are execution memory limits, never size-based review exemptions or approval thresholds. Preserve the original flow, signer, scope and queue during recovery. Upgrade with the standard managed installer, then retry the original `scope-connect` input; do not create a replacement task or bypass the host guard with an arbitrary Node environment wrapper.
8
8
 
9
+ Directory inventory appends each file to one shared list instead of expanding a whole subtree into call arguments. Large ignored directories, including `.artifacts`, remain in both integrity inventories; only `.git` and `node_modules` are excluded. Symlinks remain entries without traversal, and inventory drift still rejects the observation.
10
+
9
11
  - D-1: Before another business mapping or fact definition, search actual definitions and reuse them. Snapshot planning records the whole repository comparison and AST usage review in `discipline-review.json`; its digest is covered by the signed original snapshot. Typed source-entity field mappings use the existing import/alias resolver to identify the same entity, then compare field/value sets. A conflicting second mapping is refused with the existing file and line. An unresolved semantic relation remains unknown. No overlap threshold is invented.
10
12
  - D-2: A rewrite must cite a concrete existing defect at file:line. “Clearer”, “more maintainable” and “more general” are not evidence. A necessary sensitive exception is submitted through `continue` → `workflow-discipline-review` on the original planning phase. Display the whole concrete proposal. Approval must be the original account's stored Confirm Protocol answer and audit, never a caller's `accepted:true`.
11
13
  - D-3: A parallel path requires frozen `policy.parallelPaths` and actual same-input, fieldwise equivalence evidence. Use the existing GoldenBaseline to pin baseline bytes and source hash. The approved runner reads the baseline and actual process output; the original output cannot be supplied anew by the implementation. Missing evidence yields incomplete, mismatch yields blocked with field names. Baselines come from the existing path's actual independent samples, not the new implementation's self-consistency tests.
package/SKILL.md CHANGED
@@ -5,7 +5,7 @@ description: Execute a task selected for Entrorove through explicit SDK operatio
5
5
 
6
6
  # entrorove · 熵巡
7
7
 
8
- Version: 0.1.67.
8
+ Version: 0.1.68.
9
9
 
10
10
  Entrorove applies only to the task for which it is selected; reading these instructions, discovering capabilities or installing the package never selects or governs another task. Hooks are optional. Reading this document or calling an entry once does not execute the task. On every later turn, including after compaction, continue the original task and its required next operation before dependent work. Keep the original goal, scope, account, flow, cloud task and failure records. Never describe planning, a reported step or model output as verified delivery.
11
11
 
@@ -44,15 +44,19 @@ export async function repositoryIntegrityFile(root, relative) {
44
44
  ctimeMs: last.ctimeMs, mtimeMs: last.mtimeMs, size: last.size } };
45
45
  } finally { await handle.close(); }
46
46
  }
47
- async function inventory(root, prefix = '') {
48
- const entries = await fs.readdir(path.join(root, prefix), { withFileTypes: true }), files = [];
49
- for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
50
- if (excluded.has(entry.name)) continue;
51
- const relative = mutationPath14(prefix ? `${prefix}/${entry.name}` : entry.name);
52
- if (entry.isDirectory()) files.push(...await inventory(root, relative));
53
- else if (entry.isFile() || entry.isSymbolicLink()) files.push(relative);
54
- else mutationFail14('ENTROROVE_DISCIPLINE_SCAN_UNKNOWN', 'Repository comparison encountered an unsupported filesystem entry');
47
+ export async function inventory(root) {
48
+ const files = [];
49
+ async function visit(prefix) {
50
+ const entries = await fs.readdir(path.join(root, prefix), { withFileTypes: true });
51
+ for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
52
+ if (excluded.has(entry.name)) continue;
53
+ const relative = mutationPath14(prefix ? `${prefix}/${entry.name}` : entry.name);
54
+ if (entry.isDirectory()) await visit(relative);
55
+ else if (entry.isFile() || entry.isSymbolicLink()) files.push(relative);
56
+ else mutationFail14('ENTROROVE_DISCIPLINE_SCAN_UNKNOWN', 'Repository comparison encountered an unsupported filesystem entry');
57
+ }
55
58
  }
59
+ await visit('');
56
60
  return files.sort();
57
61
  }
58
62
  export async function disciplineRepositoryObservation(input, root, { analyze = false, overrides = new Map() } = {}) {
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "entrorove.skill-manifest/1.0",
3
3
  "name": "entrorove",
4
- "version": "0.1.67",
4
+ "version": "0.1.68",
5
5
  "endpoint": "https://entrorove.com",
6
6
  "requestSchemaVersion": "entrorove.skill.request/2.0",
7
7
  "supportedRequestSchemaVersions": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entrorove/skill",
3
- "version": "0.1.67",
3
+ "version": "0.1.68",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "entrorove": "cli.mjs"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "entrorove.release-state/1.0",
3
- "version": "0.1.67",
4
- "digest": "d9a7da983f154ca0bfdd449911ae3c5e7e3af99e8dfb6ccd8eb9392c179f9e34",
3
+ "version": "0.1.68",
4
+ "digest": "2cdbc457cabd3bb84af9f084811ab6d034a7fc7358e692644855847fade00b54",
5
5
  "files": {
6
6
  "cloud-task-images.mjs": "a260a94b6b1b47df97a8cc8657dfdce1fd37ec752f1cc2bad2542eaa28622bdb",
7
7
  "model-images.mjs": "ab85ac0c44d857c1f460de3e9c06eb1d37b57688b4a6061405c0a44ae4d40bd7",
@@ -56,7 +56,7 @@
56
56
  "local-discipline-gate.mjs": "0b85dbdc4c15c5183d821ef4b50c48c59c652801eeb8072e7241e442a516f252",
57
57
  "local-discipline-native.mjs": "8b99b5ce951cab3c1426428ad807650c61c0ffb2c346d747b73b99057b382049",
58
58
  "local-discipline-operations.mjs": "9fcb7b8889b7718d42e1d37936485d8198d5017d405e0cdbbabdbbd12fcc9d48",
59
- "local-discipline-repository.mjs": "ca997be4289180600cb97ba2938b6b99210e5d5d5317374b130a886cb712d624",
59
+ "local-discipline-repository.mjs": "748f691ad65366a68f2a7f8106a95b223a3027d3ff86481a111b27385e9aef57",
60
60
  "local-discipline-snapshot.mjs": "8fd35b2cfbece8f64579f144f589a66dec9b6022d50fe931c4c1f886cb83134d",
61
61
  "local-runner-discipline.mjs": "99935b1be0d660d6cd45f5facd911bf1e1203ec74953acef5f12a7ebafacffb2",
62
62
  "local-integrity.d.mts": "21357f306234bd841c0d3d90bf2d09f7663f63746f897b9f38190428ae8198b3",
@@ -67,7 +67,7 @@
67
67
  "snapshot-retention.mjs": "ca46aeb36b1a5a24fe7e967031a71b9a3d33f40cb715d344402cbe0dc9c425cb",
68
68
  "snapshot-cleanup-journal.mjs": "76a9684cc95b4eb076e1298d78a9dff37948b00d9607b8f546c599072d3ed331",
69
69
  "IDE-EXECUTION.md": "e7e9c19f19f095f5483784bb8de1e610eb008e8e62504b4229e38a9728b89573",
70
- "REUSE-DISCIPLINE.md": "140e8eef2402d7adcae3eafce01f26965dcbd4c270af2387d4b17d37d63ed93d",
70
+ "REUSE-DISCIPLINE.md": "a2452911c2b50c4762b4a1374f1958059eb03efd59f63e1b50e1650c52b0dc98",
71
71
  "install-identity.mjs": "41b8c8d8b3e265d2057a07bf7dc98066c34d6b05c65bf7159ca9609c01ee4646",
72
72
  "package-archive.mjs": "e06db8d709db8710bead254ee950b78928088be01c58dcea383beaa5eb574e59",
73
73
  "package-replacement.mjs": "02ca3fa4ada2addc479f8cb1b8099cd1b574adfeaa2f3c8ecf612ac2cb9127d3",
package/releases.json CHANGED
@@ -1,4 +1,10 @@
1
1
  [
2
+ {
3
+ "version": "0.1.68",
4
+ "date": "2026-10-20",
5
+ "zh": "修复大目录扫描的调用栈溢出:逐项收集完整目录清单,保留忽略文件摘要、符号链接边界、原范围与签名及前后扫描变化拒绝;原流程可在标准升级后重试。",
6
+ "en": "Fix call-argument overflow in large repository scans by collecting every inventory path individually. Preserve ignored-file hashes, symlink boundaries, original scope and signatures, and inventory-drift refusal; retry the original flow after a standard managed upgrade."
7
+ },
2
8
  {
3
9
  "version": "0.1.67",
4
10
  "date": "2026-10-19",