watashi-db 0.0.21 → 0.0.23
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/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +27 -0
- package/LICENSE +2 -2
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +167 -8
- package/dist/database/schema.js.map +1 -1
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +51 -0
- package/dist/hook.js.map +1 -1
- package/dist/server-core.d.ts.map +1 -1
- package/dist/server-core.js +25 -0
- package/dist/server-core.js.map +1 -1
- package/dist/store/merge.d.ts +8 -0
- package/dist/store/merge.d.ts.map +1 -1
- package/dist/store/merge.js +73 -30
- package/dist/store/merge.js.map +1 -1
- package/dist/store/schema-drift.d.ts +29 -0
- package/dist/store/schema-drift.d.ts.map +1 -0
- package/dist/store/schema-drift.js +87 -0
- package/dist/store/schema-drift.js.map +1 -0
- package/dist/store/sync-manager.d.ts +5 -0
- package/dist/store/sync-manager.d.ts.map +1 -1
- package/dist/store/sync-manager.js +75 -0
- package/dist/store/sync-manager.js.map +1 -1
- package/dist/tools/maintenance/index.d.ts.map +1 -1
- package/dist/tools/maintenance/index.js +3 -1
- package/dist/tools/maintenance/index.js.map +1 -1
- package/dist/tools/maintenance/schema-drift.d.ts +9 -0
- package/dist/tools/maintenance/schema-drift.d.ts.map +1 -0
- package/dist/tools/maintenance/schema-drift.js +22 -0
- package/dist/tools/maintenance/schema-drift.js.map +1 -0
- package/dist/types.d.ts +47 -47
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAuGA,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,YAAY,KAAK,CAAC;AAI/B,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAQtC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAOhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAEvE;AAgDD;;;GAGG;AAEH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAc9D;AAED;;;GAGG;AAEH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,GAAG,MAAM,CAkB1F;AAgID;;;GAGG;AAKH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACnH,MAAM,CA+BR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GACtI,MAAM,CAmBR;AA0HD;;;;;;;;GAQG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA4K7C;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CjD"}
|
package/dist/hook.js
CHANGED
|
@@ -30,6 +30,8 @@ const GROOM_COOLDOWN_MS = 24 * 60 * 60 * 1000; // 24時間
|
|
|
30
30
|
const GROOM_COUNT_THRESHOLD = 10; // 未グルーミング Episode 数の閾値(LLM に蒸留検討を促す。蒸留自体は閃き駆動)
|
|
31
31
|
const ARCHIVE_FLOOR_THRESHOLD = 200; // 保留(未グルーミング)Episode がこれを超えたら archive 足切りを促す
|
|
32
32
|
const ARCHIVE_FLOOR_KEEP = 100; // 足切り時に残す最新件数(200→100。20まで減らさず、毎回発火も防ぐ)
|
|
33
|
+
// 柱2: 他デバイスからの取り込み(マージ)が成功した最終時刻がこの日数を超えて古ければ警告する
|
|
34
|
+
const SYNC_STALE_DAYS = 7;
|
|
33
35
|
/**
|
|
34
36
|
* 棚卸提案のステートファイルを読み込む。
|
|
35
37
|
* ファイルが存在しない/壊れている場合は null を返す。
|
|
@@ -50,6 +52,40 @@ function writeGroomState(dbPath) {
|
|
|
50
52
|
const state = { last_suggested_at: new Date().toISOString() };
|
|
51
53
|
fs.writeFileSync(dbPath + ".groom-state.json", JSON.stringify(state), "utf-8");
|
|
52
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* 柱2: sync 健康状態を store_meta から軽量に読む(hook は毎プロンプト走るため重い処理は避ける)。
|
|
57
|
+
* 重い drift 検出は起動時に1回だけ実行し schema_drift_summary に書いておき、ここでは読むだけにする。
|
|
58
|
+
* 読み取り専用・例外時は全て null(グレースフルデグレード)。
|
|
59
|
+
*/
|
|
60
|
+
function readSyncHealth(dbPath) {
|
|
61
|
+
try {
|
|
62
|
+
const Database = esmRequire("better-sqlite3");
|
|
63
|
+
const db = new Database(dbPath, { readonly: true });
|
|
64
|
+
try {
|
|
65
|
+
const get = (k) => db.prepare("SELECT value FROM store_meta WHERE key = ?").get(k)?.value;
|
|
66
|
+
const lastSynced = get("last_synced_at");
|
|
67
|
+
const mergeError = get("last_merge_error");
|
|
68
|
+
const drift = get("schema_drift_summary");
|
|
69
|
+
let staleDays = null;
|
|
70
|
+
if (lastSynced) {
|
|
71
|
+
const ms = Date.now() - new Date(lastSynced).getTime();
|
|
72
|
+
if (!Number.isNaN(ms))
|
|
73
|
+
staleDays = Math.floor(ms / 86400000);
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
staleDays,
|
|
77
|
+
mergeError: mergeError && mergeError.length > 0 ? mergeError : null,
|
|
78
|
+
drift: drift && drift.length > 0 ? drift : null,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
db.close();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return { staleDays: null, mergeError: null, drift: null };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
53
89
|
// === 2026-02-28 追加 (Issue #49): NudgeState 管理 ===
|
|
54
90
|
// ナッジエスカレーションの定数
|
|
55
91
|
// テストからも参照できるよう export
|
|
@@ -612,6 +648,21 @@ export async function runHook() {
|
|
|
612
648
|
`watashi_maintain(action='archive_episodes', archive_keep_latest=${ARCHIVE_FLOOR_KEEP}, archive_include_ungroomed=true, dry_run=true) でプレビュー → ` +
|
|
613
649
|
"件数を確認しユーザーに諮ってから dry_run=false で実行。archive は削除ではなく倉庫への移動。";
|
|
614
650
|
}
|
|
651
|
+
// 柱2: sync 健康の能動通知(サイレント死の根絶)。store_meta の永続値を軽量に読むだけ。
|
|
652
|
+
const health = readSyncHealth(dbPath);
|
|
653
|
+
const syncWarnings = [];
|
|
654
|
+
if (health.mergeError)
|
|
655
|
+
syncWarnings.push(`直近の同期マージで${health.mergeError}`);
|
|
656
|
+
if (health.drift)
|
|
657
|
+
syncWarnings.push(`スキーマ不一致を検出(${health.drift})`);
|
|
658
|
+
if (health.staleDays !== null && health.staleDays >= SYNC_STALE_DAYS) {
|
|
659
|
+
syncWarnings.push(`他デバイスからの取り込みが${health.staleDays}日間成功していません`);
|
|
660
|
+
}
|
|
661
|
+
if (syncWarnings.length > 0) {
|
|
662
|
+
additionalContext +=
|
|
663
|
+
`\n【⚠ watashi-db 同期の異常】${syncWarnings.join(" / ")}。` +
|
|
664
|
+
"watashi_maintain(action='sync_status') / action='schema_drift' で原因を確認してください。";
|
|
665
|
+
}
|
|
615
666
|
}
|
|
616
667
|
const payload = {
|
|
617
668
|
hookSpecificOutput: {
|
package/dist/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-core.d.ts","sourceRoot":"","sources":["../src/server-core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server-core.d.ts","sourceRoot":"","sources":["../src/server-core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0HnG"}
|
package/dist/server-core.js
CHANGED
|
@@ -25,6 +25,8 @@ import { StoreManager } from "./store/store-manager.js";
|
|
|
25
25
|
import { SyncManager } from "./store/sync-manager.js";
|
|
26
26
|
import { initializeSession, setEmbeddingProvider } from "./store/session-state.js";
|
|
27
27
|
import { createEmbeddingProvider } from "./embedding/provider.js";
|
|
28
|
+
import { detectSchemaDrift } from "./store/schema-drift.js";
|
|
29
|
+
import { setStoreMeta } from "./store/merge.js";
|
|
28
30
|
export async function createMcpServer(options = {}) {
|
|
29
31
|
const { devMode = false } = options;
|
|
30
32
|
// MCPサーバーインスタンス作成
|
|
@@ -92,6 +94,29 @@ export async function createMcpServer(options = {}) {
|
|
|
92
94
|
}
|
|
93
95
|
}
|
|
94
96
|
}
|
|
97
|
+
// 柱5/柱2: 起動時に schema drift を1回検出し store_meta に記録する(hook が読んでユーザーに通知する)。
|
|
98
|
+
// 重い検出(initializeSchema を :memory: に展開)は起動時のみ実行。同じ schema_version でも
|
|
99
|
+
// RENAME COLUMN 等で生じる制約ズレ(今回 claims.l2_subject の NOT NULL 欠落)を破綻前に可視化する。
|
|
100
|
+
if (!devMode) {
|
|
101
|
+
for (const [name, store] of Object.entries(config.stores)) {
|
|
102
|
+
if (store.type !== "local")
|
|
103
|
+
continue;
|
|
104
|
+
try {
|
|
105
|
+
const db = manager.getStore(name);
|
|
106
|
+
const report = detectSchemaDrift(db);
|
|
107
|
+
const summary = report.clean
|
|
108
|
+
? ""
|
|
109
|
+
: [
|
|
110
|
+
...report.missing_tables.map(t => `テーブル欠落:${t}`),
|
|
111
|
+
...report.column_drifts.map(d => `${d.table}.${d.column}(${d.issue})`),
|
|
112
|
+
].slice(0, 5).join(", ");
|
|
113
|
+
setStoreMeta(db, "schema_drift_summary", summary);
|
|
114
|
+
}
|
|
115
|
+
catch (e) {
|
|
116
|
+
process.stderr.write(`[watashi-db] schema drift check failed for "${name}": ${e instanceof Error ? e.message : String(e)}\n`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
95
120
|
// Provenance: 接続クライアント情報を記録
|
|
96
121
|
server.server.oninitialized = () => {
|
|
97
122
|
const clientInfo = server.server.getClientVersion();
|
package/dist/server-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-core.js","sourceRoot":"","sources":["../src/server-core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-core.js","sourceRoot":"","sources":["../src/server-core.ts"],"names":[],"mappings":"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"}
|
package/dist/store/merge.d.ts
CHANGED
|
@@ -17,9 +17,13 @@ export interface MergeResult {
|
|
|
17
17
|
user_memos: MergeStats;
|
|
18
18
|
user_plans: MergeStats;
|
|
19
19
|
user_issues: MergeStats;
|
|
20
|
+
user_topics: MergeStats;
|
|
21
|
+
user_files: MergeStats;
|
|
22
|
+
practices: MergeStats;
|
|
20
23
|
claim_history: MergeStats;
|
|
21
24
|
claim_relations: MergeStats;
|
|
22
25
|
claim_evidence: MergeStats;
|
|
26
|
+
claim_checks: MergeStats;
|
|
23
27
|
audit_log: MergeStats;
|
|
24
28
|
tombstones: MergeStats;
|
|
25
29
|
tombstones_applied: number;
|
|
@@ -28,6 +32,10 @@ export interface MergeStats {
|
|
|
28
32
|
inserted: number;
|
|
29
33
|
updated: number;
|
|
30
34
|
skipped: number;
|
|
35
|
+
/** 制約違反等で INSERT に失敗し取り込めなかったレコード数(柱1: レコード単位耐性) */
|
|
36
|
+
failed: number;
|
|
37
|
+
/** 失敗レコードの代表エラー(最大10件まで保持) */
|
|
38
|
+
errors: string[];
|
|
31
39
|
}
|
|
32
40
|
/**
|
|
33
41
|
* schema_version テーブルからスキーマバージョンを取得する
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/store/merge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,YAAY;AACZ,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;IAErB,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IAEnB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IAExB,aAAa,EAAE,UAAU,CAAC;IAC1B,eAAe,EAAE,UAAU,CAAC;IAC5B,cAAc,EAAE,UAAU,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IAEtB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/store/merge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,YAAY;AACZ,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;IAErB,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IAEnB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IAExB,WAAW,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IAEtB,aAAa,EAAE,UAAU,CAAC;IAC1B,eAAe,EAAE,UAAU,CAAC;IAC5B,cAAc,EAAE,UAAU,CAAC;IAC3B,YAAY,EAAE,UAAU,CAAC;IACzB,SAAS,EAAE,UAAU,CAAC;IAEtB,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAKD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,CAc1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,WAAW,CA4EpG;AAkOD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIpF"}
|
package/dist/store/merge.js
CHANGED
|
@@ -26,7 +26,7 @@ export function mergeFromRemote(localDb, remoteDb) {
|
|
|
26
26
|
if (remoteVersion !== undefined && remoteVersion < MIN_COMPATIBLE_SCHEMA_VERSION) {
|
|
27
27
|
throw new Error(`リモートDBのスキーマバージョン(${remoteVersion})が古すぎます。最小互換バージョン: ${MIN_COMPATIBLE_SCHEMA_VERSION}`);
|
|
28
28
|
}
|
|
29
|
-
const zero = () => ({ inserted: 0, updated: 0, skipped: 0 });
|
|
29
|
+
const zero = () => ({ inserted: 0, updated: 0, skipped: 0, failed: 0, errors: [] });
|
|
30
30
|
const result = {
|
|
31
31
|
claims: zero(),
|
|
32
32
|
decisions: zero(),
|
|
@@ -37,9 +37,13 @@ export function mergeFromRemote(localDb, remoteDb) {
|
|
|
37
37
|
user_memos: zero(),
|
|
38
38
|
user_plans: zero(),
|
|
39
39
|
user_issues: zero(),
|
|
40
|
+
user_topics: zero(),
|
|
41
|
+
user_files: zero(),
|
|
42
|
+
practices: zero(),
|
|
40
43
|
claim_history: zero(),
|
|
41
44
|
claim_relations: zero(),
|
|
42
45
|
claim_evidence: zero(),
|
|
46
|
+
claim_checks: zero(),
|
|
43
47
|
audit_log: zero(),
|
|
44
48
|
tombstones: zero(),
|
|
45
49
|
tombstones_applied: 0,
|
|
@@ -59,10 +63,18 @@ export function mergeFromRemote(localDb, remoteDb) {
|
|
|
59
63
|
result.user_memos = mergeTableWithUpdatedAt(localDb, remoteDb, "user_memos");
|
|
60
64
|
result.user_plans = mergeTableWithUpdatedAt(localDb, remoteDb, "user_plans");
|
|
61
65
|
result.user_issues = mergeTableWithUpdatedAt(localDb, remoteDb, "user_issues");
|
|
66
|
+
// 2026-06-10 追加: V29 user_topics / V31 user_files / V36 practices。
|
|
67
|
+
// エンティティ追加時にこの列挙へ追補されず「検索は通るが同期されない」状態が続いていた。
|
|
68
|
+
// user_files は File Vault のファイル本体(BLOB)ごと同期される点に注意(lint はバイト本体を検査しない)。
|
|
69
|
+
result.user_topics = mergeTableWithUpdatedAt(localDb, remoteDb, "user_topics");
|
|
70
|
+
result.user_files = mergeTableWithUpdatedAt(localDb, remoteDb, "user_files");
|
|
71
|
+
result.practices = mergeTableWithUpdatedAt(localDb, remoteDb, "practices");
|
|
62
72
|
// 付随テーブル(changed_at / created_at で比較、INSERT only が主)
|
|
63
73
|
result.claim_history = mergeTableInsertOnly(localDb, remoteDb, "claim_history");
|
|
64
74
|
result.claim_relations = mergeTableInsertOnly(localDb, remoteDb, "claim_relations");
|
|
65
75
|
result.claim_evidence = mergeTableInsertOnly(localDb, remoteDb, "claim_evidence");
|
|
76
|
+
// 2026-06-10 追加: claim_checks(claims を参照する FK があるため claims マージ後に実行)
|
|
77
|
+
result.claim_checks = mergeTableInsertOnly(localDb, remoteDb, "claim_checks");
|
|
66
78
|
result.audit_log = mergeTableInsertOnly(localDb, remoteDb, "audit_log");
|
|
67
79
|
// 2026-03-06 追加: Issue #63 tombstones の同期 + 適用
|
|
68
80
|
result.tombstones = mergeTombstones(localDb, remoteDb);
|
|
@@ -81,7 +93,7 @@ export function mergeFromRemote(localDb, remoteDb) {
|
|
|
81
93
|
* - それ以外 → スキップ
|
|
82
94
|
*/
|
|
83
95
|
function mergeTableWithUpdatedAt(localDb, remoteDb, tableName) {
|
|
84
|
-
const stats = { inserted: 0, updated: 0, skipped: 0 };
|
|
96
|
+
const stats = { inserted: 0, updated: 0, skipped: 0, failed: 0, errors: [] };
|
|
85
97
|
// テーブルが存在するか確認(リモートDBのスキーマバージョンが古い可能性)
|
|
86
98
|
const tableExists = remoteDb.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(tableName);
|
|
87
99
|
if (!tableExists)
|
|
@@ -106,19 +118,29 @@ function mergeTableWithUpdatedAt(localDb, remoteDb, tableName) {
|
|
|
106
118
|
const id = row.id;
|
|
107
119
|
const remoteUpdatedAt = row.updated_at;
|
|
108
120
|
const localUpdatedAt = localMap.get(id);
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
121
|
+
try {
|
|
122
|
+
if (localUpdatedAt === undefined) {
|
|
123
|
+
// ローカルにない → INSERT
|
|
124
|
+
insertStmt.run(...columns.map(c => row[c]));
|
|
125
|
+
stats.inserted++;
|
|
126
|
+
}
|
|
127
|
+
else if (remoteUpdatedAt > localUpdatedAt) {
|
|
128
|
+
// リモートの方が新しい → UPDATE (INSERT OR REPLACE)
|
|
129
|
+
insertStmt.run(...columns.map(c => row[c]));
|
|
130
|
+
stats.updated++;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// ローカルが同じか新しい → スキップ
|
|
134
|
+
stats.skipped++;
|
|
135
|
+
}
|
|
118
136
|
}
|
|
119
|
-
|
|
120
|
-
//
|
|
121
|
-
|
|
137
|
+
catch (e) {
|
|
138
|
+
// 柱1: 1レコードの制約違反等でテーブル全体・他テーブルのマージを止めない。
|
|
139
|
+
// SQLite は制約違反を statement 単位でロールバックし transaction は継続できる。
|
|
140
|
+
stats.failed++;
|
|
141
|
+
if (stats.errors.length < 10) {
|
|
142
|
+
stats.errors.push(`${tableName}#${id}: ${e instanceof Error ? e.message : String(e)}`);
|
|
143
|
+
}
|
|
122
144
|
}
|
|
123
145
|
}
|
|
124
146
|
return stats;
|
|
@@ -129,7 +151,7 @@ function mergeTableWithUpdatedAt(localDb, remoteDb, tableName) {
|
|
|
129
151
|
* - 既存レコード → スキップ(更新しない)
|
|
130
152
|
*/
|
|
131
153
|
function mergeTableInsertOnly(localDb, remoteDb, tableName) {
|
|
132
|
-
const stats = { inserted: 0, updated: 0, skipped: 0 };
|
|
154
|
+
const stats = { inserted: 0, updated: 0, skipped: 0, failed: 0, errors: [] };
|
|
133
155
|
// テーブルが存在するか確認(リモートDBのスキーマバージョンが古い可能性)
|
|
134
156
|
const tableExists = remoteDb.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(tableName);
|
|
135
157
|
if (!tableExists)
|
|
@@ -150,12 +172,21 @@ function mergeTableInsertOnly(localDb, remoteDb, tableName) {
|
|
|
150
172
|
const insertStmt = localDb.prepare(insertSql);
|
|
151
173
|
for (const row of remoteRows) {
|
|
152
174
|
const id = row.id;
|
|
153
|
-
|
|
154
|
-
|
|
175
|
+
try {
|
|
176
|
+
if (localIds.has(id)) {
|
|
177
|
+
stats.skipped++;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
insertStmt.run(...columns.map(c => row[c]));
|
|
181
|
+
stats.inserted++;
|
|
182
|
+
}
|
|
155
183
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
stats.
|
|
184
|
+
catch (e) {
|
|
185
|
+
// 柱1: レコード単位耐性(1件失敗で全マージを止めない)
|
|
186
|
+
stats.failed++;
|
|
187
|
+
if (stats.errors.length < 10) {
|
|
188
|
+
stats.errors.push(`${tableName}#${id}: ${e instanceof Error ? e.message : String(e)}`);
|
|
189
|
+
}
|
|
159
190
|
}
|
|
160
191
|
}
|
|
161
192
|
return stats;
|
|
@@ -186,6 +217,9 @@ function rebuildFts(db) {
|
|
|
186
217
|
ftsRebuild("user_memos_fts");
|
|
187
218
|
ftsRebuild("user_plans_fts");
|
|
188
219
|
ftsRebuild("user_issues_fts");
|
|
220
|
+
// 2026-06-10 追加: 同期対象の追補分(user_files は専用FTSなし、unified のみ)
|
|
221
|
+
ftsRebuild("user_topics_fts");
|
|
222
|
+
ftsRebuild("practices_fts");
|
|
189
223
|
// 統合検索FTS
|
|
190
224
|
ftsRebuild("unified_search_fts");
|
|
191
225
|
}
|
|
@@ -194,7 +228,7 @@ function rebuildFts(db) {
|
|
|
194
228
|
* 同じエンティティが両端末で削除された場合、deleted_at が新しい方を採用
|
|
195
229
|
*/
|
|
196
230
|
function mergeTombstones(localDb, remoteDb) {
|
|
197
|
-
const stats = { inserted: 0, updated: 0, skipped: 0 };
|
|
231
|
+
const stats = { inserted: 0, updated: 0, skipped: 0, failed: 0, errors: [] };
|
|
198
232
|
const tableExists = remoteDb.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='tombstones'").get();
|
|
199
233
|
if (!tableExists)
|
|
200
234
|
return stats;
|
|
@@ -220,16 +254,25 @@ function mergeTombstones(localDb, remoteDb) {
|
|
|
220
254
|
for (const row of remoteRows) {
|
|
221
255
|
const key = `${row.entity_type}:${row.entity_id}`;
|
|
222
256
|
const localDeletedAt = localTombstones.get(key);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
257
|
+
try {
|
|
258
|
+
if (localDeletedAt === undefined) {
|
|
259
|
+
upsertStmt.run(row);
|
|
260
|
+
stats.inserted++;
|
|
261
|
+
}
|
|
262
|
+
else if (row.deleted_at > localDeletedAt) {
|
|
263
|
+
upsertStmt.run(row);
|
|
264
|
+
stats.updated++;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
stats.skipped++;
|
|
268
|
+
}
|
|
230
269
|
}
|
|
231
|
-
|
|
232
|
-
|
|
270
|
+
catch (e) {
|
|
271
|
+
// 柱1: レコード単位耐性
|
|
272
|
+
stats.failed++;
|
|
273
|
+
if (stats.errors.length < 10) {
|
|
274
|
+
stats.errors.push(`tombstones#${row.id}: ${e instanceof Error ? e.message : String(e)}`);
|
|
275
|
+
}
|
|
233
276
|
}
|
|
234
277
|
}
|
|
235
278
|
return stats;
|
package/dist/store/merge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/store/merge.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/store/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Drift 検出(柱5)
|
|
3
|
+
*
|
|
4
|
+
* 正規スキーマ(最新 initializeSchema を適用した in-memory DB)と実DBの実スキーマ(PRAGMA)を
|
|
5
|
+
* 突き合わせ、同じ schema_version でも生じうる差異(NOT NULL 制約の欠落・カラム欠落・型不一致)を検出する。
|
|
6
|
+
*
|
|
7
|
+
* 背景: `ALTER TABLE ... RENAME COLUMN` は旧カラムの制約を引き継ぐため、新規DB(フルスキーマ定義)と
|
|
8
|
+
* 既存DB(リネーム経由)で同じ version でも制約がズレうる。実際 claims.l2_subject が一部DBで NOT NULL を
|
|
9
|
+
* 失い、マージ時の NOT NULL 違反で sync をサイレント破綻させた。drift を検出できれば破綻前に気づける。
|
|
10
|
+
*/
|
|
11
|
+
import Database from "better-sqlite3";
|
|
12
|
+
export interface ColumnDrift {
|
|
13
|
+
table: string;
|
|
14
|
+
column: string;
|
|
15
|
+
issue: "missing_column" | "notnull_mismatch" | "type_mismatch";
|
|
16
|
+
expected: string;
|
|
17
|
+
actual: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SchemaDriftReport {
|
|
20
|
+
clean: boolean;
|
|
21
|
+
missing_tables: string[];
|
|
22
|
+
column_drifts: ColumnDrift[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 実DBが正規スキーマからどれだけ逸脱しているかを検出する。
|
|
26
|
+
* 正規スキーマ = 最新 initializeSchema を適用した :memory: DB。
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectSchemaDrift(db: Database.Database): SchemaDriftReport;
|
|
29
|
+
//# sourceMappingURL=schema-drift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-drift.d.ts","sourceRoot":"","sources":["../../src/store/schema-drift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,CAAC;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,WAAW,EAAE,CAAC;CAC9B;AAiBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,iBAAiB,CAoE1E"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Drift 検出(柱5)
|
|
3
|
+
*
|
|
4
|
+
* 正規スキーマ(最新 initializeSchema を適用した in-memory DB)と実DBの実スキーマ(PRAGMA)を
|
|
5
|
+
* 突き合わせ、同じ schema_version でも生じうる差異(NOT NULL 制約の欠落・カラム欠落・型不一致)を検出する。
|
|
6
|
+
*
|
|
7
|
+
* 背景: `ALTER TABLE ... RENAME COLUMN` は旧カラムの制約を引き継ぐため、新規DB(フルスキーマ定義)と
|
|
8
|
+
* 既存DB(リネーム経由)で同じ version でも制約がズレうる。実際 claims.l2_subject が一部DBで NOT NULL を
|
|
9
|
+
* 失い、マージ時の NOT NULL 違反で sync をサイレント破綻させた。drift を検出できれば破綻前に気づける。
|
|
10
|
+
*/
|
|
11
|
+
import Database from "better-sqlite3";
|
|
12
|
+
import { initializeSchema } from "../database/schema.js";
|
|
13
|
+
/** FTS5 仮想テーブルとその shadow テーブルは PRAGMA 比較の対象外 */
|
|
14
|
+
function isComparableTable(name) {
|
|
15
|
+
if (name.startsWith("sqlite_"))
|
|
16
|
+
return false;
|
|
17
|
+
if (/_fts($|_)/.test(name))
|
|
18
|
+
return false;
|
|
19
|
+
if (/(_data|_idx|_content|_docsize|_config)$/.test(name))
|
|
20
|
+
return false;
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 実DBが正規スキーマからどれだけ逸脱しているかを検出する。
|
|
25
|
+
* 正規スキーマ = 最新 initializeSchema を適用した :memory: DB。
|
|
26
|
+
*/
|
|
27
|
+
export function detectSchemaDrift(db) {
|
|
28
|
+
const ref = new Database(":memory:");
|
|
29
|
+
try {
|
|
30
|
+
initializeSchema(ref);
|
|
31
|
+
const missing_tables = [];
|
|
32
|
+
const column_drifts = [];
|
|
33
|
+
const refTables = ref.prepare("SELECT name FROM sqlite_master WHERE type='table'").all()
|
|
34
|
+
.map((r) => r.name)
|
|
35
|
+
.filter(isComparableTable);
|
|
36
|
+
for (const table of refTables) {
|
|
37
|
+
const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(table);
|
|
38
|
+
if (!exists) {
|
|
39
|
+
missing_tables.push(table);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const refCols = ref.prepare(`PRAGMA table_info("${table}")`).all();
|
|
43
|
+
const actCols = db.prepare(`PRAGMA table_info("${table}")`).all();
|
|
44
|
+
const actMap = new Map(actCols.map((c) => [c.name, c]));
|
|
45
|
+
for (const rc of refCols) {
|
|
46
|
+
const ac = actMap.get(rc.name);
|
|
47
|
+
if (!ac) {
|
|
48
|
+
column_drifts.push({
|
|
49
|
+
table,
|
|
50
|
+
column: rc.name,
|
|
51
|
+
issue: "missing_column",
|
|
52
|
+
expected: `${rc.type}${rc.notnull ? " NOT NULL" : ""}`,
|
|
53
|
+
actual: "(欠落)",
|
|
54
|
+
});
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (ac.notnull !== rc.notnull) {
|
|
58
|
+
column_drifts.push({
|
|
59
|
+
table,
|
|
60
|
+
column: rc.name,
|
|
61
|
+
issue: "notnull_mismatch",
|
|
62
|
+
expected: `NOT NULL=${rc.notnull}`,
|
|
63
|
+
actual: `NOT NULL=${ac.notnull}`,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if ((ac.type || "").toUpperCase() !== (rc.type || "").toUpperCase()) {
|
|
67
|
+
column_drifts.push({
|
|
68
|
+
table,
|
|
69
|
+
column: rc.name,
|
|
70
|
+
issue: "type_mismatch",
|
|
71
|
+
expected: rc.type,
|
|
72
|
+
actual: ac.type,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
clean: missing_tables.length === 0 && column_drifts.length === 0,
|
|
79
|
+
missing_tables,
|
|
80
|
+
column_drifts,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
ref.close();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=schema-drift.js.map
|