skillwiki 0.10.87 → 0.10.89
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/dist/{chunk-5QFHISNH.js → chunk-IZ6I7GSG.js} +1 -0
- package/dist/cli.js +64 -35
- package/dist/skillwiki-mcp.js +1 -1
- package/dist/vault-sync/scripts/wiki-fetch-notify.sh +11 -1
- package/package.json +1 -1
- package/skills/.claude-plugin/plugin.json +1 -1
- package/skills/.codex-plugin/plugin.json +1 -1
- package/skills/.cursor-plugin/plugin.json +1 -1
- package/skills/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
findPlugin,
|
|
16
16
|
guardProtectedVaultWrite,
|
|
17
17
|
isFailedRunStatus,
|
|
18
|
+
measureDirtyVolume,
|
|
18
19
|
memoryAuthorityTiersRank,
|
|
19
20
|
pruneVectorIndex,
|
|
20
21
|
readCliPackageJson,
|
|
@@ -52,7 +53,7 @@ import {
|
|
|
52
53
|
snapshotterHealthChecks,
|
|
53
54
|
upsertIndexEntry,
|
|
54
55
|
vectorIndexStatus
|
|
55
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-IZ6I7GSG.js";
|
|
56
57
|
import {
|
|
57
58
|
normalizeDistTag,
|
|
58
59
|
readCache,
|
|
@@ -9348,57 +9349,79 @@ function githubRecord(p) {
|
|
|
9348
9349
|
if (p.ageHours !== void 0) rec.age_hours = p.ageHours;
|
|
9349
9350
|
return rec;
|
|
9350
9351
|
}
|
|
9352
|
+
function withDirty(rec, p) {
|
|
9353
|
+
if (p.dirty !== void 0) rec.dirty = p.dirty;
|
|
9354
|
+
if (p.untracked !== void 0) rec.untracked = p.untracked;
|
|
9355
|
+
return rec;
|
|
9356
|
+
}
|
|
9351
9357
|
function localRecord(p, githubOid) {
|
|
9352
9358
|
if (p.blockedReason) {
|
|
9353
|
-
return
|
|
9354
|
-
|
|
9355
|
-
|
|
9356
|
-
|
|
9357
|
-
|
|
9358
|
-
|
|
9359
|
-
|
|
9359
|
+
return withDirty(
|
|
9360
|
+
{
|
|
9361
|
+
state: "blocked",
|
|
9362
|
+
oid: p.head,
|
|
9363
|
+
behind: p.behind,
|
|
9364
|
+
blocked_reason: p.blockedReason,
|
|
9365
|
+
detail: p.detail ?? p.blockedReason
|
|
9366
|
+
},
|
|
9367
|
+
p
|
|
9368
|
+
);
|
|
9360
9369
|
}
|
|
9361
9370
|
if (p.head && githubOid && p.head === githubOid && (p.behind === void 0 || p.behind === 0)) {
|
|
9362
|
-
return
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
9366
|
-
|
|
9367
|
-
|
|
9371
|
+
return withDirty(
|
|
9372
|
+
{
|
|
9373
|
+
state: "ok",
|
|
9374
|
+
oid: p.head,
|
|
9375
|
+
behind: p.behind,
|
|
9376
|
+
detail: p.detail ?? "HEAD matches GitHub"
|
|
9377
|
+
},
|
|
9378
|
+
p
|
|
9379
|
+
);
|
|
9368
9380
|
}
|
|
9369
9381
|
if (p.behind !== void 0 && p.behind > 0) {
|
|
9370
|
-
return
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9375
|
-
|
|
9382
|
+
return withDirty(
|
|
9383
|
+
{
|
|
9384
|
+
state: "stale",
|
|
9385
|
+
oid: p.head,
|
|
9386
|
+
behind: p.behind,
|
|
9387
|
+
detail: p.detail ?? `behind origin/main by ${p.behind}`
|
|
9388
|
+
},
|
|
9389
|
+
p
|
|
9390
|
+
);
|
|
9376
9391
|
}
|
|
9377
9392
|
if (p.head && githubOid && p.head !== githubOid) {
|
|
9378
|
-
return
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9383
|
-
|
|
9393
|
+
return withDirty(
|
|
9394
|
+
{
|
|
9395
|
+
state: "stale",
|
|
9396
|
+
oid: p.head,
|
|
9397
|
+
behind: p.behind,
|
|
9398
|
+
detail: p.detail ?? "HEAD differs from GitHub"
|
|
9399
|
+
},
|
|
9400
|
+
p
|
|
9401
|
+
);
|
|
9384
9402
|
}
|
|
9385
9403
|
if (p.head) {
|
|
9386
|
-
return
|
|
9387
|
-
|
|
9388
|
-
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9404
|
+
return withDirty(
|
|
9405
|
+
{
|
|
9406
|
+
state: "ok",
|
|
9407
|
+
oid: p.head,
|
|
9408
|
+
behind: p.behind,
|
|
9409
|
+
detail: p.detail ?? "HEAD present"
|
|
9410
|
+
},
|
|
9411
|
+
p
|
|
9412
|
+
);
|
|
9392
9413
|
}
|
|
9393
|
-
return { state: "unknown", detail: p.detail ?? "leaf clone unmeasured" };
|
|
9414
|
+
return withDirty({ state: "unknown", detail: p.detail ?? "leaf clone unmeasured" }, p);
|
|
9394
9415
|
}
|
|
9395
9416
|
function formatPlane(name, rec) {
|
|
9396
9417
|
const parts = [`${name}: ${rec.state}`];
|
|
9397
9418
|
if (rec.oid) parts.push(`oid=${rec.oid.slice(0, 12)}`);
|
|
9398
9419
|
if (rec.behind !== void 0) parts.push(`behind=${rec.behind}`);
|
|
9399
9420
|
if (rec.age_hours !== void 0) parts.push(`age_hours=${rec.age_hours}`);
|
|
9421
|
+
if (rec.dirty !== void 0) parts.push(`dirty=${rec.dirty}`);
|
|
9422
|
+
if (rec.untracked !== void 0) parts.push(`untracked=${rec.untracked}`);
|
|
9400
9423
|
if (rec.blocked_reason) parts.push(rec.blocked_reason);
|
|
9401
|
-
if (rec.detail) parts.push(rec.detail);
|
|
9424
|
+
if (rec.detail && rec.detail !== rec.blocked_reason) parts.push(rec.detail);
|
|
9402
9425
|
return parts.join(" ");
|
|
9403
9426
|
}
|
|
9404
9427
|
function composeCopyStatus(input) {
|
|
@@ -9466,11 +9489,17 @@ function defaultCopyStatusDeps(input) {
|
|
|
9466
9489
|
const behind = behindRaw === "" ? void 0 : Number.parseInt(behindRaw, 10);
|
|
9467
9490
|
const review = listReviewRequiredOps(input.vault)[0];
|
|
9468
9491
|
const blockedReason = review ? `review-required:${review.opId}` : void 0;
|
|
9492
|
+
const dirty = measureDirtyVolume(input.vault);
|
|
9493
|
+
const dirtyCount = dirty.is_git_repo ? dirty.expanded_files : void 0;
|
|
9494
|
+
const untrackedCount = dirty.is_git_repo ? dirty.untracked : void 0;
|
|
9495
|
+
const dirtyHint = dirtyCount && dirtyCount > 0 ? `dirty=${dirtyCount} untracked=${untrackedCount ?? 0} live-ahead of GitHub; do not git add` : void 0;
|
|
9469
9496
|
return {
|
|
9470
9497
|
head,
|
|
9471
9498
|
behind: Number.isFinite(behind) ? behind : void 0,
|
|
9472
9499
|
blockedReason,
|
|
9473
|
-
|
|
9500
|
+
dirty: dirtyCount,
|
|
9501
|
+
untracked: untrackedCount,
|
|
9502
|
+
detail: dirtyHint ?? blockedReason
|
|
9474
9503
|
};
|
|
9475
9504
|
}
|
|
9476
9505
|
};
|
package/dist/skillwiki-mcp.js
CHANGED
|
@@ -72,7 +72,17 @@ log() {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
handle_existing_handoff() {
|
|
75
|
-
local blocker reason op identity previous_identity notified_at now
|
|
75
|
+
local blocker reason op identity previous_identity notified_at now before after
|
|
76
|
+
# Same altitude as managed-write preflight: a review-required whose target_oid
|
|
77
|
+
# is already in HEAD is obsolete. Preserve dirty live-ahead WIP; only real
|
|
78
|
+
# unresolved handoffs (target still ahead / sequencer / unmerged) skip pull.
|
|
79
|
+
before="$(vault_sync_op_find_review_required "$WIKI_DIR" 2>/dev/null || true)"
|
|
80
|
+
if vault_sync_op_supersede_stale_review_required "$WIKI_DIR" "wiki-fetch-notify" 2>/dev/null; then
|
|
81
|
+
after="$(vault_sync_op_find_review_required "$WIKI_DIR" 2>/dev/null || true)"
|
|
82
|
+
if [ -n "$before" ] && [ -z "$after" ]; then
|
|
83
|
+
log "OK superseded stale review-required handoff(s); fetch pull may proceed"
|
|
84
|
+
fi
|
|
85
|
+
fi
|
|
76
86
|
blocker="$(vault_sync_op_preflight_blocker "$WIKI_DIR" 2>/dev/null || true)"
|
|
77
87
|
[ -n "$blocker" ] || { rm -f "$HANDOFF_STATE_FILE" "$FETCH_HARD_PAUSE_COUNTER_FILE" 2>/dev/null || true; return 1; }
|
|
78
88
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillwiki",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.89",
|
|
4
4
|
"skills": "./",
|
|
5
5
|
"description": "Project-aware Karpathy-style knowledge base for Claude Code: 21 prompt-only skills (wiki-*, proj-*, using-skillwiki, skillwiki-mcp) backed by the deterministic `skillwiki` CLI.",
|
|
6
6
|
"author": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillwiki",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.89",
|
|
4
4
|
"description": "Project-aware Karpathy-style knowledge base: 21 prompt-only skills (wiki-*, proj-*, using-skillwiki, skillwiki-mcp) backed by HTTP MCP wiki_capture.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "karlorz"
|