hungry-ghost-hive 0.22.3 → 0.22.4
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/db/client.d.ts.map +1 -1
- package/dist/db/client.js +12 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/client.test.js +32 -15
- package/dist/db/client.test.js.map +1 -1
- package/package.json +1 -1
- package/src/db/client.test.ts +38 -16
- package/src/db/client.ts +12 -0
package/dist/db/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAIA,OAAkB,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG9D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAIA,OAAkB,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG9D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAoND,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqF5E;AAuND,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAG1E;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,CAAC,EAAE,CAWvF;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,CAAC,GAAG,SAAS,CAGjG;AAGD,wBAAgB,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,IAAI,CAEhF;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAchG;AAGD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IACtD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EACF,OAAO,GACP,WAAW,GACX,SAAS,GACT,aAAa,GACb,QAAQ,GACR,IAAI,GACJ,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;IACb,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B"}
|
package/dist/db/client.js
CHANGED
|
@@ -164,6 +164,18 @@ function validateLoadedDatabase(db, fileSize) {
|
|
|
164
164
|
if (fileSize < CORRUPTION_CHECK_MIN_FILE_SIZE) {
|
|
165
165
|
return; // Small file — likely a new or schema-only DB, skip validation
|
|
166
166
|
}
|
|
167
|
+
// Check if migrations table exists and has rows — if so, the DB was properly
|
|
168
|
+
// initialized via hive init and the schema is intact. Core tables being empty
|
|
169
|
+
// is expected for a fresh workspace (no teams added yet).
|
|
170
|
+
try {
|
|
171
|
+
const migrationResult = db.exec('SELECT COUNT(*) FROM migrations');
|
|
172
|
+
if (migrationResult.length > 0 && migrationResult[0].values[0][0] > 0) {
|
|
173
|
+
return; // Migrations ran — DB is properly initialized, just empty of user data
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
// migrations table doesn't exist — fall through to core table check
|
|
178
|
+
}
|
|
167
179
|
// Check if any core table has data
|
|
168
180
|
for (const table of CORE_TABLES) {
|
|
169
181
|
try {
|
package/dist/db/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
|
package/dist/db/client.test.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createDatabase } from './client.js';
|
|
|
10
10
|
* that is compatible with runMigrations().
|
|
11
11
|
*/
|
|
12
12
|
async function createValidDbBuffer(opts = {}) {
|
|
13
|
+
const withMigrations = opts.withMigrations !== false; // default true
|
|
13
14
|
const SQL = await initSqlJs();
|
|
14
15
|
const db = new SQL.Database();
|
|
15
16
|
// Use a schema that matches the initial migration so runMigrations works
|
|
@@ -79,16 +80,20 @@ async function createValidDbBuffer(opts = {}) {
|
|
|
79
80
|
id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE,
|
|
80
81
|
applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
81
82
|
);
|
|
82
|
-
INSERT INTO migrations (name) VALUES ('001-initial.sql');
|
|
83
|
-
INSERT INTO migrations (name) VALUES ('002-add-agent-model.sql');
|
|
84
|
-
INSERT INTO migrations (name) VALUES ('003-fix-pull-requests.sql');
|
|
85
|
-
INSERT INTO migrations (name) VALUES ('004-add-messages.sql');
|
|
86
|
-
INSERT INTO migrations (name) VALUES ('005-add-agent-last-seen.sql');
|
|
87
|
-
INSERT INTO migrations (name) VALUES ('006-add-agent-worktree.sql');
|
|
88
|
-
INSERT INTO migrations (name) VALUES ('007-add-indexes.sql');
|
|
89
|
-
INSERT INTO migrations (name) VALUES ('008-add-godmode.sql');
|
|
90
|
-
INSERT INTO migrations (name) VALUES ('009-add-pr-sync-indexes.sql');
|
|
91
83
|
`);
|
|
84
|
+
if (withMigrations) {
|
|
85
|
+
db.run(`
|
|
86
|
+
INSERT INTO migrations (name) VALUES ('001-initial.sql');
|
|
87
|
+
INSERT INTO migrations (name) VALUES ('002-add-agent-model.sql');
|
|
88
|
+
INSERT INTO migrations (name) VALUES ('003-fix-pull-requests.sql');
|
|
89
|
+
INSERT INTO migrations (name) VALUES ('004-add-messages.sql');
|
|
90
|
+
INSERT INTO migrations (name) VALUES ('005-add-agent-last-seen.sql');
|
|
91
|
+
INSERT INTO migrations (name) VALUES ('006-add-agent-worktree.sql');
|
|
92
|
+
INSERT INTO migrations (name) VALUES ('007-add-indexes.sql');
|
|
93
|
+
INSERT INTO migrations (name) VALUES ('008-add-godmode.sql');
|
|
94
|
+
INSERT INTO migrations (name) VALUES ('009-add-pr-sync-indexes.sql');
|
|
95
|
+
`);
|
|
96
|
+
}
|
|
92
97
|
if (opts.withData) {
|
|
93
98
|
db.run("INSERT INTO teams VALUES ('t1', 'https://example.com', '/tmp/repo', 'Test Team', datetime('now'))");
|
|
94
99
|
}
|
|
@@ -138,8 +143,9 @@ describe('createDatabase', () => {
|
|
|
138
143
|
});
|
|
139
144
|
it('should detect corruption when large file loads with empty core tables', async () => {
|
|
140
145
|
const dbPath = join(tempDir, 'wiped.db');
|
|
141
|
-
// Create a large database with padding but NO data in core tables
|
|
142
|
-
|
|
146
|
+
// Create a large database with padding but NO data in core tables and NO migrations
|
|
147
|
+
// This simulates true corruption where sql.js loaded a partial file
|
|
148
|
+
const data = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: false });
|
|
143
149
|
writeFileSync(dbPath, Buffer.from(data));
|
|
144
150
|
// Verify the file is >50KB
|
|
145
151
|
expect(Buffer.from(data).length).toBeGreaterThan(50 * 1024);
|
|
@@ -161,6 +167,17 @@ describe('createDatabase', () => {
|
|
|
161
167
|
expect(client.db).toBeDefined();
|
|
162
168
|
client.close();
|
|
163
169
|
});
|
|
170
|
+
it('should NOT flag corruption when large file has migrations but no user data (fresh init)', async () => {
|
|
171
|
+
const dbPath = join(tempDir, 'large-fresh.db');
|
|
172
|
+
// Simulates hive init → add-repo: DB has schema + migrations but no teams/stories yet
|
|
173
|
+
const data = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: true });
|
|
174
|
+
writeFileSync(dbPath, Buffer.from(data));
|
|
175
|
+
expect(Buffer.from(data).length).toBeGreaterThan(50 * 1024);
|
|
176
|
+
// Should pass — migrations exist, so DB is properly initialized (just empty)
|
|
177
|
+
const client = await createDatabase(dbPath);
|
|
178
|
+
expect(client.db).toBeDefined();
|
|
179
|
+
client.close();
|
|
180
|
+
});
|
|
164
181
|
it('should NOT flag corruption when large file has data in core tables', async () => {
|
|
165
182
|
const dbPath = join(tempDir, 'large-valid.db');
|
|
166
183
|
// Create a large database WITH data in core tables
|
|
@@ -213,8 +230,8 @@ describe('createDatabase', () => {
|
|
|
213
230
|
describe('read-side retry on corruption', () => {
|
|
214
231
|
it('should retry loading when file appears corrupted mid-write', async () => {
|
|
215
232
|
const dbPath = join(tempDir, 'retry-test.db');
|
|
216
|
-
// Write a large file with no core table data — triggers corruption error
|
|
217
|
-
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true });
|
|
233
|
+
// Write a large file with no core table data and no migrations — triggers corruption error
|
|
234
|
+
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: false });
|
|
218
235
|
writeFileSync(dbPath, Buffer.from(corruptData));
|
|
219
236
|
// Schedule replacement with valid data before the retry fires (~100ms delay)
|
|
220
237
|
const validData = await createValidDbBuffer({ withData: true, withPadding: true });
|
|
@@ -230,8 +247,8 @@ describe('createDatabase', () => {
|
|
|
230
247
|
});
|
|
231
248
|
it('should throw after exhausting all retries', async () => {
|
|
232
249
|
const dbPath = join(tempDir, 'retry-exhaust.db');
|
|
233
|
-
// Write a persistently corrupt file (large but empty core tables)
|
|
234
|
-
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true });
|
|
250
|
+
// Write a persistently corrupt file (large but empty core tables and no migrations)
|
|
251
|
+
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: false });
|
|
235
252
|
writeFileSync(dbPath, Buffer.from(corruptData));
|
|
236
253
|
// File stays corrupt — all 3 retries should fail
|
|
237
254
|
await expect(createDatabase(dbPath)).rejects.toThrow(DatabaseCorruptionError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/db/client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,SAAS,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/db/client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,SAAS,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,OAAgF,EAAE;IAElF,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,eAAe;IACrE,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;IAE9B,yEAAyE;IACzE,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEN,CAAC,CAAC;IAEH,IAAI,cAAc,EAAE,CAAC;QACnB,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;KAUN,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,EAAE,CAAC,GAAG,CACJ,mGAAmG,CACpG,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,EAAE,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,EAAE,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;IACzB,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,IAAI,CAAC;AACd,CAAC;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,OAAe,CAAC;IAEpB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,4CAA4C;QAC5C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE3C,8CAA8C;QAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,aAAa,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAChD,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAErC,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC9E,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEzC,oFAAoF;QACpF,oEAAoE;QACpE,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACtG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,2BAA2B;QAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5D,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC9E,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE/C,uEAAuE;QACvE,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,2BAA2B;QAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAEzD,4EAA4E;QAC5E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE/C,sFAAsF;QACtF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACrG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5D,6EAA6E;QAC7E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE/C,mDAAmD;QACnD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5D,oCAAoC;QACpC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;YAEnC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,0DAA0D;YAEzE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtC,qEAAqE;YACrE,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;YAEnC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY;YAE3B,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAE9C,oCAAoC;YACpC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,4CAA4C;YAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAEhD,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;YAEhC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,6EAA6E;YAC7E,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAExC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAE9C,2FAA2F;YAC3F,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7G,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAEhD,6EAA6E;YAC7E,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,UAAU,CAAC,GAAG,EAAE;gBACd,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAChD,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,qEAAqE;YACrE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAEhC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAEjD,oFAAoF;YACpF,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7G,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAEhD,iDAAiD;YACjD,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC9E,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAE/C,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAE7B,iEAAiE;YACjE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;YAExD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAEzC,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAE7C,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAElD,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/db/client.test.ts
CHANGED
|
@@ -11,8 +11,9 @@ import { createDatabase } from './client.js';
|
|
|
11
11
|
* that is compatible with runMigrations().
|
|
12
12
|
*/
|
|
13
13
|
async function createValidDbBuffer(
|
|
14
|
-
opts: { withData?: boolean; withPadding?: boolean } = {}
|
|
14
|
+
opts: { withData?: boolean; withPadding?: boolean; withMigrations?: boolean } = {}
|
|
15
15
|
): Promise<Uint8Array> {
|
|
16
|
+
const withMigrations = opts.withMigrations !== false; // default true
|
|
16
17
|
const SQL = await initSqlJs();
|
|
17
18
|
const db = new SQL.Database();
|
|
18
19
|
|
|
@@ -83,17 +84,22 @@ async function createValidDbBuffer(
|
|
|
83
84
|
id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE,
|
|
84
85
|
applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
85
86
|
);
|
|
86
|
-
INSERT INTO migrations (name) VALUES ('001-initial.sql');
|
|
87
|
-
INSERT INTO migrations (name) VALUES ('002-add-agent-model.sql');
|
|
88
|
-
INSERT INTO migrations (name) VALUES ('003-fix-pull-requests.sql');
|
|
89
|
-
INSERT INTO migrations (name) VALUES ('004-add-messages.sql');
|
|
90
|
-
INSERT INTO migrations (name) VALUES ('005-add-agent-last-seen.sql');
|
|
91
|
-
INSERT INTO migrations (name) VALUES ('006-add-agent-worktree.sql');
|
|
92
|
-
INSERT INTO migrations (name) VALUES ('007-add-indexes.sql');
|
|
93
|
-
INSERT INTO migrations (name) VALUES ('008-add-godmode.sql');
|
|
94
|
-
INSERT INTO migrations (name) VALUES ('009-add-pr-sync-indexes.sql');
|
|
95
87
|
`);
|
|
96
88
|
|
|
89
|
+
if (withMigrations) {
|
|
90
|
+
db.run(`
|
|
91
|
+
INSERT INTO migrations (name) VALUES ('001-initial.sql');
|
|
92
|
+
INSERT INTO migrations (name) VALUES ('002-add-agent-model.sql');
|
|
93
|
+
INSERT INTO migrations (name) VALUES ('003-fix-pull-requests.sql');
|
|
94
|
+
INSERT INTO migrations (name) VALUES ('004-add-messages.sql');
|
|
95
|
+
INSERT INTO migrations (name) VALUES ('005-add-agent-last-seen.sql');
|
|
96
|
+
INSERT INTO migrations (name) VALUES ('006-add-agent-worktree.sql');
|
|
97
|
+
INSERT INTO migrations (name) VALUES ('007-add-indexes.sql');
|
|
98
|
+
INSERT INTO migrations (name) VALUES ('008-add-godmode.sql');
|
|
99
|
+
INSERT INTO migrations (name) VALUES ('009-add-pr-sync-indexes.sql');
|
|
100
|
+
`);
|
|
101
|
+
}
|
|
102
|
+
|
|
97
103
|
if (opts.withData) {
|
|
98
104
|
db.run(
|
|
99
105
|
"INSERT INTO teams VALUES ('t1', 'https://example.com', '/tmp/repo', 'Test Team', datetime('now'))"
|
|
@@ -162,8 +168,9 @@ describe('createDatabase', () => {
|
|
|
162
168
|
it('should detect corruption when large file loads with empty core tables', async () => {
|
|
163
169
|
const dbPath = join(tempDir, 'wiped.db');
|
|
164
170
|
|
|
165
|
-
// Create a large database with padding but NO data in core tables
|
|
166
|
-
|
|
171
|
+
// Create a large database with padding but NO data in core tables and NO migrations
|
|
172
|
+
// This simulates true corruption where sql.js loaded a partial file
|
|
173
|
+
const data = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: false });
|
|
167
174
|
writeFileSync(dbPath, Buffer.from(data));
|
|
168
175
|
|
|
169
176
|
// Verify the file is >50KB
|
|
@@ -192,6 +199,21 @@ describe('createDatabase', () => {
|
|
|
192
199
|
client.close();
|
|
193
200
|
});
|
|
194
201
|
|
|
202
|
+
it('should NOT flag corruption when large file has migrations but no user data (fresh init)', async () => {
|
|
203
|
+
const dbPath = join(tempDir, 'large-fresh.db');
|
|
204
|
+
|
|
205
|
+
// Simulates hive init → add-repo: DB has schema + migrations but no teams/stories yet
|
|
206
|
+
const data = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: true });
|
|
207
|
+
writeFileSync(dbPath, Buffer.from(data));
|
|
208
|
+
|
|
209
|
+
expect(Buffer.from(data).length).toBeGreaterThan(50 * 1024);
|
|
210
|
+
|
|
211
|
+
// Should pass — migrations exist, so DB is properly initialized (just empty)
|
|
212
|
+
const client = await createDatabase(dbPath);
|
|
213
|
+
expect(client.db).toBeDefined();
|
|
214
|
+
client.close();
|
|
215
|
+
});
|
|
216
|
+
|
|
195
217
|
it('should NOT flag corruption when large file has data in core tables', async () => {
|
|
196
218
|
const dbPath = join(tempDir, 'large-valid.db');
|
|
197
219
|
|
|
@@ -264,8 +286,8 @@ describe('createDatabase', () => {
|
|
|
264
286
|
it('should retry loading when file appears corrupted mid-write', async () => {
|
|
265
287
|
const dbPath = join(tempDir, 'retry-test.db');
|
|
266
288
|
|
|
267
|
-
// Write a large file with no core table data — triggers corruption error
|
|
268
|
-
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true });
|
|
289
|
+
// Write a large file with no core table data and no migrations — triggers corruption error
|
|
290
|
+
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: false });
|
|
269
291
|
writeFileSync(dbPath, Buffer.from(corruptData));
|
|
270
292
|
|
|
271
293
|
// Schedule replacement with valid data before the retry fires (~100ms delay)
|
|
@@ -287,8 +309,8 @@ describe('createDatabase', () => {
|
|
|
287
309
|
it('should throw after exhausting all retries', async () => {
|
|
288
310
|
const dbPath = join(tempDir, 'retry-exhaust.db');
|
|
289
311
|
|
|
290
|
-
// Write a persistently corrupt file (large but empty core tables)
|
|
291
|
-
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true });
|
|
312
|
+
// Write a persistently corrupt file (large but empty core tables and no migrations)
|
|
313
|
+
const corruptData = await createValidDbBuffer({ withData: false, withPadding: true, withMigrations: false });
|
|
292
314
|
writeFileSync(dbPath, Buffer.from(corruptData));
|
|
293
315
|
|
|
294
316
|
// File stays corrupt — all 3 retries should fail
|
package/src/db/client.ts
CHANGED
|
@@ -179,6 +179,18 @@ function validateLoadedDatabase(db: SqlJsDatabase, fileSize: number): void {
|
|
|
179
179
|
return; // Small file — likely a new or schema-only DB, skip validation
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
// Check if migrations table exists and has rows — if so, the DB was properly
|
|
183
|
+
// initialized via hive init and the schema is intact. Core tables being empty
|
|
184
|
+
// is expected for a fresh workspace (no teams added yet).
|
|
185
|
+
try {
|
|
186
|
+
const migrationResult = db.exec('SELECT COUNT(*) FROM migrations');
|
|
187
|
+
if (migrationResult.length > 0 && (migrationResult[0].values[0][0] as number) > 0) {
|
|
188
|
+
return; // Migrations ran — DB is properly initialized, just empty of user data
|
|
189
|
+
}
|
|
190
|
+
} catch {
|
|
191
|
+
// migrations table doesn't exist — fall through to core table check
|
|
192
|
+
}
|
|
193
|
+
|
|
182
194
|
// Check if any core table has data
|
|
183
195
|
for (const table of CORE_TABLES) {
|
|
184
196
|
try {
|