skillwiki 0.10.37 → 0.10.39

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.
@@ -5968,6 +5968,7 @@ export {
5968
5968
  isFailedRunStatus,
5969
5969
  readSatelliteLatestRunFromText,
5970
5970
  evaluateSatelliteRunHealth,
5971
+ detectFuseMount,
5971
5972
  snapshotterHealthChecks,
5972
5973
  runDoctor,
5973
5974
  readCliPackageJson,
package/dist/cli.js CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  GateError,
8
8
  SATELLITE_STALE_MS,
9
9
  configPath,
10
+ detectFuseMount,
10
11
  evaluateDirtyVolumeGate,
11
12
  evaluateSatelliteRunHealth,
12
13
  findPlugin,
@@ -38,7 +39,7 @@ import {
38
39
  scanConflictMarkerBlocksInText,
39
40
  snapshotterHealthChecks,
40
41
  upsertIndexEntry
41
- } from "./chunk-WJVG3DD5.js";
42
+ } from "./chunk-NDR2OY4K.js";
42
43
  import {
43
44
  normalizeDistTag,
44
45
  readCache,
@@ -168,6 +169,7 @@ import {
168
169
  ok,
169
170
  readPage,
170
171
  redactSensitiveContent,
172
+ resolveReadOnlyVaultRoot,
171
173
  scanSensitiveContent,
172
174
  scanVault,
173
175
  splitFrontmatter
@@ -4471,7 +4473,8 @@ import { mkdir as mkdir8, readFile as readFile11, writeFile as writeFile7 } from
4471
4473
  import { join as join24, relative, sep } from "path";
4472
4474
  var MAX_WORDS = 900;
4473
4475
  async function runSessionBrief(input) {
4474
- const scan = await scanVault(input.vault);
4476
+ const { root: scanRoot } = resolveReadOnlyVaultRoot(input.vault);
4477
+ const scan = await scanVault(scanRoot);
4475
4478
  if (!scan.ok) {
4476
4479
  return { exitCode: ExitCode.VAULT_PATH_INVALID, result: scan };
4477
4480
  }
@@ -4497,7 +4500,7 @@ async function runSessionBrief(input) {
4497
4500
  loadSatelliteHealth(input.vault),
4498
4501
  loadSessionPins(input.vault, project),
4499
4502
  project ? loadMemoryTopics(input.vault, project) : Promise.resolve([]),
4500
- loadPendingSources(input.vault, today)
4503
+ loadPendingSources(scanRoot, today)
4501
4504
  ]);
4502
4505
  const healthWarnings = [
4503
4506
  ...baseHealthWarnings,
@@ -8404,11 +8407,23 @@ async function runBackupRestore(input) {
8404
8407
  import { existsSync as existsSync10, statSync as statSync4 } from "fs";
8405
8408
  import { readFile as readFile16 } from "fs/promises";
8406
8409
  import { join as join32 } from "path";
8410
+ var FUSE_NO_MIRROR_NOTE = "FUSE vault with no read mirror - status scan may be slow";
8407
8411
  async function runStatus(input) {
8408
8412
  if (!existsSync10(input.vault)) {
8409
8413
  return { exitCode: ExitCode.VAULT_PATH_INVALID, result: err("VAULT_PATH_INVALID", { vault: input.vault }) };
8410
8414
  }
8411
- const scan = await scanVault(input.vault);
8415
+ const { root: scanRoot, mirrored } = resolveReadOnlyVaultRoot(input.vault);
8416
+ let readSource = "live";
8417
+ if (mirrored) {
8418
+ readSource = "mirror";
8419
+ } else if (detectFuseMount(input.vault)) {
8420
+ readSource = "fuse-no-mirror";
8421
+ }
8422
+ if (readSource === "fuse-no-mirror") {
8423
+ process.stderr.write(`warning: ${FUSE_NO_MIRROR_NOTE}
8424
+ `);
8425
+ }
8426
+ const scan = await scanVault(scanRoot);
8412
8427
  if (!scan.ok) {
8413
8428
  return { exitCode: ExitCode.VAULT_PATH_INVALID, result: scan };
8414
8429
  }
@@ -8430,7 +8445,7 @@ async function runStatus(input) {
8430
8445
  const compound = scan.data.compound.length;
8431
8446
  let schemaVersion = "v1";
8432
8447
  try {
8433
- const schemaContent = await readFile16(join32(input.vault, "SCHEMA.md"), "utf8");
8448
+ const schemaContent = await readFile16(join32(scanRoot, "SCHEMA.md"), "utf8");
8434
8449
  const versionMatch = schemaContent.match(/version:\s*["']?([^"'\s\n]+)/i);
8435
8450
  if (versionMatch) schemaVersion = versionMatch[1];
8436
8451
  } catch {
@@ -8467,14 +8482,20 @@ async function runStatus(input) {
8467
8482
  };
8468
8483
  const totalPages = Object.values(pageCounts).reduce((a, b) => a + b, 0);
8469
8484
  const rawTotal = rawArticles + rawTranscripts;
8470
- const humanHint = [
8485
+ const hintLines = [
8471
8486
  `vault: ${input.vault}`,
8472
8487
  `lang: ${langResult.value}`,
8473
8488
  `total: ${totalPages} pages`,
8474
8489
  ` entities: ${pageCounts.entities} concepts: ${pageCounts.concepts} comparisons: ${pageCounts.comparisons} queries: ${pageCounts.queries} meta: ${pageCounts.meta}`,
8475
8490
  ` raw: ${rawTotal} work_items: ${workItems} compound: ${compound}`,
8476
8491
  `last modified: ${lastModified.slice(0, 10)}`
8477
- ].join("\n");
8492
+ ];
8493
+ if (readSource === "mirror") {
8494
+ hintLines.push(`read source: mirror (${scanRoot}) - page counts may lag up to 30m`);
8495
+ } else if (readSource === "fuse-no-mirror") {
8496
+ hintLines.push(FUSE_NO_MIRROR_NOTE);
8497
+ }
8498
+ const humanHint = hintLines.join("\n");
8478
8499
  return {
8479
8500
  exitCode: ExitCode.OK,
8480
8501
  result: ok({
@@ -8484,6 +8505,7 @@ async function runStatus(input) {
8484
8505
  page_counts: pageCounts,
8485
8506
  total_pages: totalPages,
8486
8507
  last_modified: lastModified,
8508
+ read_source: readSource,
8487
8509
  humanHint
8488
8510
  })
8489
8511
  };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runSkillwikiMcpStdio
4
- } from "./chunk-WJVG3DD5.js";
4
+ } from "./chunk-NDR2OY4K.js";
5
5
  import "./chunk-7I2TPIV5.js";
6
6
  import "./chunk-QVO332CT.js";
7
7
  import "./chunk-XRBUABGE.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.10.37",
3
+ "version": "0.10.39",
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.37",
3
+ "version": "0.10.39",
4
4
  "skills": "./",
5
5
  "description": "Project-aware Karpathy-style knowledge base for Claude Code: 19 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.37",
3
+ "version": "0.10.39",
4
4
  "description": "Project-aware Karpathy-style knowledge base for Codex with 19 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.37",
3
+ "version": "0.10.39",
4
4
  "private": true,
5
5
  "files": [
6
6
  "wiki-*",