skillwiki 0.10.53 → 0.10.54

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.
@@ -7241,6 +7241,7 @@ export {
7241
7241
  resolveFleetHostId,
7242
7242
  git,
7243
7243
  gitStrict,
7244
+ VAULT_GENERATED_COMMIT_PATHS,
7244
7245
  VAULT_COMMIT_PATHSPEC,
7245
7246
  stageVaultContentChanges,
7246
7247
  resolveWikiS3Remote,
@@ -35,7 +35,7 @@ import {
35
35
  snapshotterAliasForLocalHost,
36
36
  toUndirectedWeighted,
37
37
  writeDotenv
38
- } from "./chunk-TZXWZ75D.js";
38
+ } from "./chunk-EHUFPORA.js";
39
39
  import {
40
40
  atomicWriteText,
41
41
  prepareTypedPage
@@ -325,10 +325,14 @@ async function runLogAppend(input) {
325
325
  }
326
326
  if (outcome.result.ok && outcome.result.data.appended && input.recordLastOp !== false) {
327
327
  try {
328
+ const files = ["log.md"];
329
+ if (eventPath) {
330
+ files.push(eventPath);
331
+ }
328
332
  appendLastOp(input.vault, {
329
333
  operation: "log-append",
330
334
  summary: `appended log entry (${outcome.result.data.entries_before}->${outcome.result.data.entries_after})`,
331
- files: ["log.md"],
335
+ files,
332
336
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
333
337
  });
334
338
  } catch (error) {
package/dist/cli.js CHANGED
@@ -50,7 +50,7 @@ import {
50
50
  snapshotterHealthChecks,
51
51
  upsertIndexEntry,
52
52
  vectorIndexStatus
53
- } from "./chunk-NPHWECWR.js";
53
+ } from "./chunk-Q23OSECM.js";
54
54
  import {
55
55
  normalizeDistTag,
56
56
  readCache,
@@ -68,6 +68,7 @@ import {
68
68
  FLEET_REL_PATH,
69
69
  REDACTED_MALFORMED_REFERENCE,
70
70
  VAULT_COMMIT_PATHSPEC,
71
+ VAULT_GENERATED_COMMIT_PATHS,
71
72
  acquireOwnedSyncLock,
72
73
  appendLastOp,
73
74
  applyRawStructuralMove,
@@ -146,7 +147,7 @@ import {
146
147
  supersedeStaleReviewRequiredJournals,
147
148
  taxonomyCommentForPage,
148
149
  writeDotenv
149
- } from "./chunk-TZXWZ75D.js";
150
+ } from "./chunk-EHUFPORA.js";
150
151
  import {
151
152
  assertTargetInsideVault,
152
153
  atomicWriteText,
@@ -9901,7 +9902,21 @@ async function runFleetHealth(input) {
9901
9902
 
9902
9903
  // src/utils/auto-commit.ts
9903
9904
  import { existsSync as existsSync14 } from "fs";
9904
- import { join as join41 } from "path";
9905
+ import { isAbsolute, join as join41, normalize } from "path";
9906
+ function isValidLastOpPath(file) {
9907
+ if (!file || typeof file !== "string") return false;
9908
+ const trimmed = file.trim();
9909
+ if (trimmed.length === 0) return false;
9910
+ if (isAbsolute(trimmed)) return false;
9911
+ const normalized = normalize(trimmed).replace(/\\/g, "/");
9912
+ if (normalized.startsWith("../") || normalized === ".." || normalized.includes("/../")) return false;
9913
+ for (const generatedPath of VAULT_GENERATED_COMMIT_PATHS) {
9914
+ if (normalized === generatedPath || normalized.startsWith(`${generatedPath}/`)) {
9915
+ return false;
9916
+ }
9917
+ }
9918
+ return true;
9919
+ }
9905
9920
  async function postCommit(vault, exitCode) {
9906
9921
  if (exitCode !== 0) return;
9907
9922
  const home = process.env.HOME ?? "";
@@ -9913,16 +9928,31 @@ async function postCommit(vault, exitCode) {
9913
9928
  if (lastOps.length === 0) return;
9914
9929
  const porcelain = git(vault, ["status", "--porcelain", "--", ...VAULT_COMMIT_PATHSPEC]);
9915
9930
  if (!porcelain || porcelain.trim().length === 0) return;
9916
- try {
9917
- stageVaultContentChanges(vault);
9918
- } catch (e) {
9919
- process.stderr.write(`auto-commit: git add failed: ${String(e)}
9931
+ const rawFiles = lastOps.flatMap((op) => op.files ?? []);
9932
+ const candidateFiles = Array.from(new Set(rawFiles)).filter(isValidLastOpPath);
9933
+ if (candidateFiles.length === 0) {
9934
+ try {
9935
+ stageVaultContentChanges(vault);
9936
+ } catch (e) {
9937
+ process.stderr.write(`auto-commit: stage vault content failed: ${String(e)}
9920
9938
  `);
9921
- return;
9939
+ return;
9940
+ }
9941
+ } else {
9942
+ try {
9943
+ gitStrict(vault, ["add", "--", ...candidateFiles]);
9944
+ } catch (e) {
9945
+ process.stderr.write(`auto-commit: git add failed: ${String(e)}
9946
+ `);
9947
+ return;
9948
+ }
9922
9949
  }
9950
+ const staged = git(vault, ["diff", "--cached", "--name-only"]);
9951
+ if (!staged || staged.trim().length === 0) return;
9923
9952
  const commitMessage = lastOps.map((op) => `${op.operation}: ${op.summary} (${op.files.length} files)`).join("; ");
9924
9953
  try {
9925
- gitStrict(vault, ["commit", "-m", commitMessage]);
9954
+ const commitArgs = candidateFiles.length === 0 ? ["commit", "-m", commitMessage] : ["commit", "-m", commitMessage, "--", ...candidateFiles];
9955
+ gitStrict(vault, commitArgs);
9926
9956
  } catch (e) {
9927
9957
  process.stderr.write(`auto-commit: git commit failed: ${String(e)}
9928
9958
  `);
@@ -10069,7 +10099,7 @@ async function emitManagedVaultWrite(vault, command, mutate, opts) {
10069
10099
  if (dirty) {
10070
10100
  return emit(dirty, void 0, { postCommit: false });
10071
10101
  }
10072
- const { runManagedWriteTransaction: runManagedWriteTransaction2 } = await import("./managed-write-preflight-SERVDSY6.js");
10102
+ const { runManagedWriteTransaction: runManagedWriteTransaction2 } = await import("./managed-write-preflight-CMVCRXRG.js");
10073
10103
  const run = await runManagedWriteTransaction2({
10074
10104
  vault,
10075
10105
  command,
@@ -6,7 +6,7 @@ import {
6
6
  runManagedWritePeerGate,
7
7
  runManagedWritePreflight,
8
8
  runManagedWriteTransaction
9
- } from "./chunk-TZXWZ75D.js";
9
+ } from "./chunk-EHUFPORA.js";
10
10
  import "./chunk-74OSLCXE.js";
11
11
  import "./chunk-GAHMWLWU.js";
12
12
  import "./chunk-IJ7DD7QZ.js";
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runSkillwikiMcpStdio
4
- } from "./chunk-NPHWECWR.js";
4
+ } from "./chunk-Q23OSECM.js";
5
5
  import "./chunk-7I2TPIV5.js";
6
6
  import "./chunk-O3HCB7R2.js";
7
- import "./chunk-TZXWZ75D.js";
7
+ import "./chunk-EHUFPORA.js";
8
8
  import "./chunk-74OSLCXE.js";
9
9
  import "./chunk-HBQTTYXZ.js";
10
10
  import "./chunk-GAHMWLWU.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.10.53",
3
+ "version": "0.10.54",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "skillwiki": "dist/cli.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.10.53",
3
+ "version": "0.10.54",
4
4
  "skills": "./",
5
5
  "description": "Project-aware Karpathy-style knowledge base for Claude Code: 20 prompt-only skills (wiki-*, proj-*, using-skillwiki) backed by the deterministic `skillwiki` CLI.",
6
6
  "author": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.10.53",
3
+ "version": "0.10.54",
4
4
  "description": "Project-aware Karpathy-style knowledge base for Codex with 20 prompt-only skills backed by the deterministic skillwiki CLI.",
5
5
  "author": {
6
6
  "name": "karlorz",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillwiki/skills",
3
- "version": "0.10.53",
3
+ "version": "0.10.54",
4
4
  "private": true,
5
5
  "files": [
6
6
  "wiki-*",