jumbo-cli 3.7.2 → 3.7.3

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.
@@ -24,5 +24,6 @@ export declare class LocalDatabaseRebuildService implements IDatabaseRebuildServ
24
24
  private readonly tag;
25
25
  constructor(rootDir: string, db: Database.Database, eventStore: IEventStore, createProjectionBus: (db: Database.Database) => IEventBus, logger: ILogger);
26
26
  rebuild(): Promise<DatabaseRebuildResult>;
27
+ private closeAndRemove;
27
28
  }
28
29
  //# sourceMappingURL=LocalDatabaseRebuildService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalDatabaseRebuildService.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/local/LocalDatabaseRebuildService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAOrE,qBAAa,2BAA4B,YAAW,uBAAuB;IAIvE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;gBAGxB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,WAAW,EACvB,mBAAmB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,SAAS,EACzD,MAAM,EAAE,OAAO;IAG5B,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAkEhD"}
1
+ {"version":3,"file":"LocalDatabaseRebuildService.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/local/LocalDatabaseRebuildService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAOrE,qBAAa,2BAA4B,YAAW,uBAAuB;IAIvE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;gBAGxB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,WAAW,EACvB,mBAAmB,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,SAAS,EACzD,MAAM,EAAE,OAAO;IAG5B,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;IA2E/C,OAAO,CAAC,cAAc;CAQvB"}
@@ -30,59 +30,80 @@ export class LocalDatabaseRebuildService {
30
30
  async rebuild() {
31
31
  this.logger.info(`${this.tag} Starting database rebuild`);
32
32
  const dbPath = path.join(this.rootDir, "jumbo.db");
33
+ const rebuildPath = `${dbPath}.rebuild`;
33
34
  // Step 1: Close existing database connection
34
35
  this.logger.debug(`${this.tag} Closing existing database connection`);
35
36
  if (this.db && this.db.open) {
36
37
  this.db.pragma("wal_checkpoint(TRUNCATE)");
37
38
  this.db.close();
38
39
  }
39
- // Step 2: Delete the database file and WAL/SHM files
40
- for (const filePath of [dbPath, `${dbPath}-wal`, `${dbPath}-shm`]) {
40
+ // Step 2: Create rebuild database at a temporary path
41
+ this.logger.debug(`${this.tag} Creating rebuild database`);
42
+ for (const filePath of [rebuildPath, `${rebuildPath}-wal`, `${rebuildPath}-shm`]) {
41
43
  if (await fs.pathExists(filePath)) {
42
- this.logger.debug(`${this.tag} Deleting file`, { filePath });
43
44
  await fs.remove(filePath);
44
45
  }
45
46
  }
46
- // Step 3: Create new database connection and run migrations
47
- this.logger.debug(`${this.tag} Creating new database and running migrations`);
48
- const newDb = new Database(dbPath);
47
+ const newDb = new Database(rebuildPath);
49
48
  newDb.pragma("journal_mode = WAL");
50
49
  const infrastructureDir = path.resolve(__dirname, "..");
51
50
  const migrations = getNamespaceMigrations(infrastructureDir);
52
51
  const migrationRunner = new MigrationRunner(newDb);
53
52
  migrationRunner.runNamespaceMigrations(migrations);
54
53
  this.logger.debug(`${this.tag} Migrations complete`);
55
- // Step 4: Create projection-only event bus
54
+ // Step 3: Replay all events in a single transaction
56
55
  const projectionBus = this.createProjectionBus(newDb);
57
- // Step 5: Replay all events through projection-only handlers
58
- this.logger.debug(`${this.tag} Loading events from event store`);
59
56
  const events = await this.eventStore.getAllEvents();
60
57
  this.logger.info(`${this.tag} Loaded events for replay`, { eventCount: events.length });
61
58
  let processedCount = 0;
62
- for (const event of events) {
63
- try {
59
+ newDb.exec("BEGIN");
60
+ try {
61
+ for (const event of events) {
64
62
  await projectionBus.publish(event);
65
63
  processedCount++;
66
64
  }
67
- catch (error) {
68
- this.logger.error(`${this.tag} Failed to replay event`, error instanceof Error ? error : undefined, {
69
- eventType: event.type,
70
- aggregateId: event.aggregateId,
71
- processedSoFar: processedCount,
72
- });
73
- throw error;
74
- }
65
+ newDb.exec("COMMIT");
66
+ }
67
+ catch (error) {
68
+ newDb.exec("ROLLBACK");
69
+ this.closeAndRemove(newDb, rebuildPath);
70
+ const failedEvent = events[processedCount];
71
+ this.logger.error(`${this.tag} Failed to replay event`, error instanceof Error ? error : undefined, {
72
+ eventType: failedEvent?.type,
73
+ aggregateId: failedEvent?.aggregateId,
74
+ processedSoFar: processedCount,
75
+ });
76
+ throw error;
75
77
  }
76
- // Step 6: Close the rebuild database connection
77
- if (newDb && newDb.open) {
78
+ // Step 4: Swap rebuild database over the original
79
+ if (newDb.open) {
78
80
  newDb.pragma("wal_checkpoint(TRUNCATE)");
79
81
  newDb.close();
80
82
  }
83
+ for (const filePath of [dbPath, `${dbPath}-wal`, `${dbPath}-shm`]) {
84
+ if (await fs.pathExists(filePath)) {
85
+ await fs.remove(filePath);
86
+ }
87
+ }
88
+ await fs.move(rebuildPath, dbPath);
81
89
  this.logger.info(`${this.tag} Database rebuild complete`, { eventsReplayed: processedCount });
82
90
  return {
83
91
  eventsReplayed: processedCount,
84
92
  success: true,
85
93
  };
86
94
  }
95
+ closeAndRemove(db, dbPath) {
96
+ try {
97
+ if (db.open)
98
+ db.close();
99
+ }
100
+ catch { /* best-effort cleanup */ }
101
+ for (const suffix of ["", "-wal", "-shm"]) {
102
+ try {
103
+ fs.removeSync(`${dbPath}${suffix}`);
104
+ }
105
+ catch { /* best-effort */ }
106
+ }
107
+ }
87
108
  }
88
109
  //# sourceMappingURL=LocalDatabaseRebuildService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalDatabaseRebuildService.js","sourceRoot":"","sources":["../../../src/infrastructure/local/LocalDatabaseRebuildService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalDatabaseRebuildService.js","sourceRoot":"","sources":["../../../src/infrastructure/local/LocalDatabaseRebuildService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jumbo-cli",
3
- "version": "3.7.2",
3
+ "version": "3.7.3",
4
4
  "description": "Memory and Context Orchestration for Coding Agents",
5
5
  "keywords": [
6
6
  "cli",