@proletariat/cli 0.3.62 → 0.3.65

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.
Files changed (52) hide show
  1. package/dist/commands/work/linear.js +29 -10
  2. package/dist/commands/work/linear.js.map +1 -1
  3. package/dist/commands/work/start.js +154 -110
  4. package/dist/commands/work/start.js.map +1 -1
  5. package/dist/lib/database/drizzle-schema.d.ts +148 -0
  6. package/dist/lib/database/drizzle-schema.js +20 -0
  7. package/dist/lib/database/drizzle-schema.js.map +1 -1
  8. package/dist/lib/database/index.d.ts +1 -1
  9. package/dist/lib/database/index.js +9 -107
  10. package/dist/lib/database/index.js.map +1 -1
  11. package/dist/lib/database/migrations/0001_baseline.d.ts +9 -0
  12. package/dist/lib/database/migrations/0001_baseline.js +18 -0
  13. package/dist/lib/database/migrations/0001_baseline.js.map +1 -0
  14. package/dist/lib/database/migrations/index.d.ts +12 -0
  15. package/dist/lib/database/migrations/index.js +15 -0
  16. package/dist/lib/database/migrations/index.js.map +1 -0
  17. package/dist/lib/database/migrator.d.ts +27 -0
  18. package/dist/lib/database/migrator.js +42 -0
  19. package/dist/lib/database/migrator.js.map +1 -0
  20. package/dist/lib/database/workspace-schema.d.ts +7 -0
  21. package/dist/lib/database/workspace-schema.js +109 -0
  22. package/dist/lib/database/workspace-schema.js.map +1 -0
  23. package/dist/lib/events/events.d.ts +5 -0
  24. package/dist/lib/events/index.d.ts +1 -1
  25. package/dist/lib/events/index.js.map +1 -1
  26. package/dist/lib/execution/runners.js +7 -2
  27. package/dist/lib/execution/runners.js.map +1 -1
  28. package/dist/lib/external-issues/outbound-sync.d.ts +21 -16
  29. package/dist/lib/external-issues/outbound-sync.js +64 -49
  30. package/dist/lib/external-issues/outbound-sync.js.map +1 -1
  31. package/dist/lib/linear/mapper.d.ts +1 -1
  32. package/dist/lib/linear/mapper.js +26 -32
  33. package/dist/lib/linear/mapper.js.map +1 -1
  34. package/dist/lib/linear/types.d.ts +1 -1
  35. package/dist/lib/pmo/schema.d.ts +2 -0
  36. package/dist/lib/pmo/schema.js +24 -7
  37. package/dist/lib/pmo/schema.js.map +1 -1
  38. package/dist/lib/pmo/storage/base.js +31 -0
  39. package/dist/lib/pmo/storage/base.js.map +1 -1
  40. package/dist/lib/pmo/sync-manager.js +5 -1
  41. package/dist/lib/pmo/sync-manager.js.map +1 -1
  42. package/dist/lib/work-lifecycle/adapter.d.ts +34 -0
  43. package/dist/lib/work-lifecycle/adapter.js +103 -0
  44. package/dist/lib/work-lifecycle/adapter.js.map +1 -0
  45. package/dist/lib/work-lifecycle/events.d.ts +52 -0
  46. package/dist/lib/work-lifecycle/events.js +12 -0
  47. package/dist/lib/work-lifecycle/events.js.map +1 -0
  48. package/dist/lib/work-lifecycle/index.d.ts +9 -0
  49. package/dist/lib/work-lifecycle/index.js +9 -0
  50. package/dist/lib/work-lifecycle/index.js.map +1 -0
  51. package/oclif.manifest.json +4157 -4157
  52. package/package.json +1 -1
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Outbound Sync Handler
3
3
  *
4
- * Listens for ticket state changes on the EventBus and pushes them
5
- * to external issue trackers (Linear, Shortcut, etc.) via their
4
+ * Listens for work-lifecycle domain events on the EventBus and pushes
5
+ * changes to external issue trackers (Linear, Shortcut, etc.) via their
6
6
  * respective adapters.
7
7
  *
8
- * The handler is provider-agnostic: it resolves which external provider
9
- * a ticket is mapped to, then dispatches to the correct sync implementation.
8
+ * Subscribes to work:* events (provider-agnostic), NOT ticket:* events.
9
+ * The work-lifecycle adapter layer translates provider-specific events
10
+ * into these domain events, keeping PMO as just another provider.
10
11
  */
11
12
  import Database from 'better-sqlite3';
12
13
  import type { ExternalMappingProvider } from './types.js';
@@ -19,9 +20,9 @@ export interface OutboundSyncResult {
19
20
  error?: string;
20
21
  }
21
22
  /**
22
- * OutboundSyncHandler subscribes to ticket events and pushes changes
23
- * to mapped external providers. It is fire-and-forget: sync failures
24
- * are logged but never block the caller.
23
+ * OutboundSyncHandler subscribes to work-lifecycle domain events and
24
+ * pushes changes to mapped external providers. It is fire-and-forget:
25
+ * sync failures are logged but never block the caller.
25
26
  */
26
27
  export declare class OutboundSyncHandler {
27
28
  private unsubscribers;
@@ -29,7 +30,8 @@ export declare class OutboundSyncHandler {
29
30
  private mappingStore;
30
31
  constructor(db: Database.Database);
31
32
  /**
32
- * Start listening for ticket events on the global EventBus.
33
+ * Start listening for work-lifecycle events on the global EventBus.
34
+ * Subscribes to work:* domain events, not provider-specific ticket:* events.
33
35
  * Call `stop()` to unsubscribe.
34
36
  */
35
37
  start(): void;
@@ -38,35 +40,38 @@ export declare class OutboundSyncHandler {
38
40
  */
39
41
  stop(): void;
40
42
  /**
41
- * Handle a ticket status change by syncing to all mapped external providers.
43
+ * Handle a work status change by syncing to all mapped external providers.
44
+ * Skips syncing back to the source provider to avoid loops.
42
45
  */
43
46
  private handleStatusChanged;
44
47
  /**
45
- * Handle a PR link by syncing to all mapped external providers.
48
+ * Handle a PR creation by syncing to all mapped external providers.
49
+ * Skips syncing back to the source provider to avoid loops.
46
50
  */
47
51
  private handlePRLinked;
48
52
  /**
49
- * Sync a status change to Linear if the ticket has a Linear mapping.
53
+ * Sync a status change to Linear if the work item has a Linear mapping.
50
54
  */
51
55
  private syncStatusToLinear;
52
56
  /**
53
- * Sync a PR link to Linear if the ticket has a Linear mapping.
57
+ * Sync a PR link to Linear if the work item has a Linear mapping.
54
58
  */
55
59
  private syncPRToLinear;
56
60
  /**
57
61
  * Sync status changes to providers tracked via the external_execution_map table.
58
62
  * Updates the state snapshot so that future inbound syncs can detect drift.
63
+ * Skips the source provider to avoid sync loops.
59
64
  */
60
65
  private syncStatusToMappedProviders;
61
66
  /**
62
- * Record a PR URL in all external mappings for a ticket.
67
+ * Record a PR URL in all external mappings for a work item.
63
68
  */
64
69
  private recordPRInMappings;
65
70
  /**
66
- * Find external execution mappings associated with a ticket.
67
- * Checks the latest_state_snapshot for pmoTicketId references.
71
+ * Find external execution mappings associated with a work item.
72
+ * Checks the latest_state_snapshot for work item ID references.
68
73
  */
69
- private findMappingsForTicket;
74
+ private findMappingsForWorkItem;
70
75
  }
71
76
  /**
72
77
  * Initialize and start the outbound sync handler.
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Outbound Sync Handler
3
3
  *
4
- * Listens for ticket state changes on the EventBus and pushes them
5
- * to external issue trackers (Linear, Shortcut, etc.) via their
4
+ * Listens for work-lifecycle domain events on the EventBus and pushes
5
+ * changes to external issue trackers (Linear, Shortcut, etc.) via their
6
6
  * respective adapters.
7
7
  *
8
- * The handler is provider-agnostic: it resolves which external provider
9
- * a ticket is mapped to, then dispatches to the correct sync implementation.
8
+ * Subscribes to work:* events (provider-agnostic), NOT ticket:* events.
9
+ * The work-lifecycle adapter layer translates provider-specific events
10
+ * into these domain events, keeping PMO as just another provider.
10
11
  */
11
12
  import { getEventBus } from '../events/event-bus.js';
12
13
  import { LinearClient } from '../linear/client.js';
@@ -15,9 +16,9 @@ import { LinearSync } from '../linear/sync.js';
15
16
  import { loadLinearConfig, isLinearConfigured } from '../linear/config.js';
16
17
  import { ExternalExecutionMappingStore } from './mapping-store.js';
17
18
  /**
18
- * OutboundSyncHandler subscribes to ticket events and pushes changes
19
- * to mapped external providers. It is fire-and-forget: sync failures
20
- * are logged but never block the caller.
19
+ * OutboundSyncHandler subscribes to work-lifecycle domain events and
20
+ * pushes changes to mapped external providers. It is fire-and-forget:
21
+ * sync failures are logged but never block the caller.
21
22
  */
22
23
  export class OutboundSyncHandler {
23
24
  unsubscribers = [];
@@ -28,15 +29,16 @@ export class OutboundSyncHandler {
28
29
  this.mappingStore = new ExternalExecutionMappingStore(db);
29
30
  }
30
31
  /**
31
- * Start listening for ticket events on the global EventBus.
32
+ * Start listening for work-lifecycle events on the global EventBus.
33
+ * Subscribes to work:* domain events, not provider-specific ticket:* events.
32
34
  * Call `stop()` to unsubscribe.
33
35
  */
34
36
  start() {
35
37
  const bus = getEventBus();
36
- this.unsubscribers.push(bus.on('ticket:status_changed', (event) => {
38
+ this.unsubscribers.push(bus.on('work:status_changed', (event) => {
37
39
  void this.handleStatusChanged(event);
38
40
  }));
39
- this.unsubscribers.push(bus.on('ticket:pr_linked', (event) => {
41
+ this.unsubscribers.push(bus.on('work:pr_created', (event) => {
40
42
  void this.handlePRLinked(event);
41
43
  }));
42
44
  }
@@ -50,19 +52,23 @@ export class OutboundSyncHandler {
50
52
  this.unsubscribers = [];
51
53
  }
52
54
  /**
53
- * Handle a ticket status change by syncing to all mapped external providers.
55
+ * Handle a work status change by syncing to all mapped external providers.
56
+ * Skips syncing back to the source provider to avoid loops.
54
57
  */
55
58
  async handleStatusChanged(event) {
56
59
  const results = [];
57
60
  // Try Linear sync (via Linear-specific mapping table)
58
- try {
59
- const linearResult = await this.syncStatusToLinear(event);
60
- if (linearResult) {
61
- results.push(linearResult);
61
+ // Skip if the event originated from Linear to avoid loops
62
+ if (event.source !== 'linear') {
63
+ try {
64
+ const linearResult = await this.syncStatusToLinear(event);
65
+ if (linearResult) {
66
+ results.push(linearResult);
67
+ }
68
+ }
69
+ catch {
70
+ // Sync errors are non-fatal
62
71
  }
63
- }
64
- catch {
65
- // Sync errors are non-fatal
66
72
  }
67
73
  // Try provider-agnostic sync via external_execution_map
68
74
  try {
@@ -75,19 +81,22 @@ export class OutboundSyncHandler {
75
81
  return results;
76
82
  }
77
83
  /**
78
- * Handle a PR link by syncing to all mapped external providers.
84
+ * Handle a PR creation by syncing to all mapped external providers.
85
+ * Skips syncing back to the source provider to avoid loops.
79
86
  */
80
87
  async handlePRLinked(event) {
81
88
  const results = [];
82
- // Try Linear sync
83
- try {
84
- const linearResult = await this.syncPRToLinear(event);
85
- if (linearResult) {
86
- results.push(linearResult);
89
+ // Try Linear sync (skip if event came from Linear)
90
+ if (event.source !== 'linear') {
91
+ try {
92
+ const linearResult = await this.syncPRToLinear(event);
93
+ if (linearResult) {
94
+ results.push(linearResult);
95
+ }
96
+ }
97
+ catch {
98
+ // Sync errors are non-fatal
87
99
  }
88
- }
89
- catch {
90
- // Sync errors are non-fatal
91
100
  }
92
101
  // Update provider-agnostic mapping with PR URL
93
102
  try {
@@ -102,7 +111,7 @@ export class OutboundSyncHandler {
102
111
  // Linear Sync
103
112
  // ===========================================================================
104
113
  /**
105
- * Sync a status change to Linear if the ticket has a Linear mapping.
114
+ * Sync a status change to Linear if the work item has a Linear mapping.
106
115
  */
107
116
  async syncStatusToLinear(event) {
108
117
  if (!isLinearConfigured(this.db))
@@ -111,15 +120,15 @@ export class OutboundSyncHandler {
111
120
  if (!config)
112
121
  return null;
113
122
  const mapper = new LinearMapper(this.db);
114
- const mapping = mapper.getByTicketId(event.ticketId);
123
+ const mapping = mapper.getByTicketId(event.workItemId);
115
124
  if (!mapping)
116
125
  return null;
117
126
  // Only sync outbound or bidirectional mappings
118
127
  if (mapping.syncDirection === 'inbound')
119
128
  return null;
120
- const category = event.newStatusCategory;
129
+ const category = event.newCategory;
121
130
  if (!category) {
122
- return { provider: 'linear', success: false, error: 'No status category on ticket' };
131
+ return { provider: 'linear', success: false, error: 'No status category on work item' };
123
132
  }
124
133
  try {
125
134
  const client = new LinearClient(config.apiKey);
@@ -135,10 +144,10 @@ export class OutboundSyncHandler {
135
144
  }
136
145
  await client.updateIssueState(mapping.linearIssueId, matchingState.id);
137
146
  // Post a comment about the status change
138
- if (event.newStatusName) {
139
- await client.addComment(mapping.linearIssueId, `Status updated to **${event.newStatusName}** (via prlt)`);
147
+ if (event.newStatus) {
148
+ await client.addComment(mapping.linearIssueId, `Status updated to **${event.newStatus}** (via prlt)`);
140
149
  }
141
- mapper.updateSyncTimestamp(event.ticketId);
150
+ mapper.updateSyncTimestamp(event.workItemId);
142
151
  return { provider: 'linear', success: true };
143
152
  }
144
153
  catch (err) {
@@ -150,7 +159,7 @@ export class OutboundSyncHandler {
150
159
  }
151
160
  }
152
161
  /**
153
- * Sync a PR link to Linear if the ticket has a Linear mapping.
162
+ * Sync a PR link to Linear if the work item has a Linear mapping.
154
163
  */
155
164
  async syncPRToLinear(event) {
156
165
  if (!isLinearConfigured(this.db))
@@ -159,7 +168,7 @@ export class OutboundSyncHandler {
159
168
  if (!config)
160
169
  return null;
161
170
  const mapper = new LinearMapper(this.db);
162
- const mapping = mapper.getByTicketId(event.ticketId);
171
+ const mapping = mapper.getByTicketId(event.workItemId);
163
172
  if (!mapping)
164
173
  return null;
165
174
  // Only sync outbound or bidirectional mappings
@@ -168,7 +177,7 @@ export class OutboundSyncHandler {
168
177
  try {
169
178
  const client = new LinearClient(config.apiKey);
170
179
  const sync = new LinearSync(client, mapper);
171
- const success = await sync.syncPRLink(event.ticketId, event.prUrl, event.prTitle ?? 'Pull Request');
180
+ const success = await sync.syncPRLink(event.workItemId, event.prUrl, event.prTitle ?? 'Pull Request');
172
181
  return { provider: 'linear', success };
173
182
  }
174
183
  catch (err) {
@@ -185,16 +194,19 @@ export class OutboundSyncHandler {
185
194
  /**
186
195
  * Sync status changes to providers tracked via the external_execution_map table.
187
196
  * Updates the state snapshot so that future inbound syncs can detect drift.
197
+ * Skips the source provider to avoid sync loops.
188
198
  */
189
199
  async syncStatusToMappedProviders(event) {
190
200
  const results = [];
191
- // Find all external mappings that reference this ticket via execution links
192
- // or via the latest_state_snapshot containing the ticketId
193
- const mappings = this.findMappingsForTicket(event.ticketId);
201
+ // Find all external mappings that reference this work item
202
+ const mappings = this.findMappingsForWorkItem(event.workItemId);
194
203
  for (const mapping of mappings) {
195
204
  // Skip Linear here (handled separately above with its full API integration)
196
205
  if (mapping.provider === 'linear')
197
206
  continue;
207
+ // Skip the source provider to avoid sync loops
208
+ if (mapping.provider === event.source)
209
+ continue;
198
210
  try {
199
211
  // Update the state snapshot to reflect the new status
200
212
  this.mappingStore.upsertMapping({
@@ -202,8 +214,8 @@ export class OutboundSyncHandler {
202
214
  externalId: mapping.externalId,
203
215
  latestStateSnapshot: {
204
216
  ...(mapping.latestStateSnapshot ?? {}),
205
- ticketStatus: event.newStatusName,
206
- ticketCategory: event.newStatusCategory,
217
+ ticketStatus: event.newStatus,
218
+ ticketCategory: event.newCategory,
207
219
  lastOutboundSync: new Date().toISOString(),
208
220
  },
209
221
  lastSyncedAt: new Date(),
@@ -221,11 +233,14 @@ export class OutboundSyncHandler {
221
233
  return results;
222
234
  }
223
235
  /**
224
- * Record a PR URL in all external mappings for a ticket.
236
+ * Record a PR URL in all external mappings for a work item.
225
237
  */
226
238
  recordPRInMappings(event) {
227
- const mappings = this.findMappingsForTicket(event.ticketId);
239
+ const mappings = this.findMappingsForWorkItem(event.workItemId);
228
240
  for (const mapping of mappings) {
241
+ // Skip the source provider to avoid sync loops
242
+ if (mapping.provider === event.source)
243
+ continue;
229
244
  try {
230
245
  this.mappingStore.upsertMapping({
231
246
  provider: mapping.provider,
@@ -240,16 +255,16 @@ export class OutboundSyncHandler {
240
255
  }
241
256
  }
242
257
  /**
243
- * Find external execution mappings associated with a ticket.
244
- * Checks the latest_state_snapshot for pmoTicketId references.
258
+ * Find external execution mappings associated with a work item.
259
+ * Checks the latest_state_snapshot for work item ID references.
245
260
  */
246
- findMappingsForTicket(ticketId) {
247
- // Query external_execution_map where latest_state_snapshot contains the ticketId
261
+ findMappingsForWorkItem(workItemId) {
262
+ // Query external_execution_map where latest_state_snapshot contains the work item ID
248
263
  const rows = this.db.prepare(`
249
264
  SELECT provider, external_id, latest_state_snapshot
250
265
  FROM pmo_external_execution_map
251
266
  WHERE latest_state_snapshot LIKE ?
252
- `).all(`%${ticketId}%`);
267
+ `).all(`%${workItemId}%`);
253
268
  return rows.map((row) => ({
254
269
  provider: row.provider,
255
270
  externalId: row.external_id,
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-sync.js","sourceRoot":"","sources":["../../../src/lib/external-issues/outbound-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbound-sync.js","sourceRoot":"","sources":["../../../src/lib/external-issues/outbound-sync.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export declare class LinearMapper {
12
12
  private externalMappingStore;
13
13
  constructor(db: Database.Database);
14
14
  /**
15
- * Ensure the linear_issue_map table exists.
15
+ * Ensure the external_issue_map table exists.
16
16
  * Uses CREATE TABLE IF NOT EXISTS to match the schema defined in schema.ts.
17
17
  */
18
18
  private ensureTable;
@@ -16,31 +16,31 @@ export class LinearMapper {
16
16
  this.ensureTable();
17
17
  }
18
18
  /**
19
- * Ensure the linear_issue_map table exists.
19
+ * Ensure the external_issue_map table exists.
20
20
  * Uses CREATE TABLE IF NOT EXISTS to match the schema defined in schema.ts.
21
21
  */
22
22
  ensureTable() {
23
23
  this.db.exec(`
24
- CREATE TABLE IF NOT EXISTS ${PMO_TABLES.linear_issue_map} (
24
+ CREATE TABLE IF NOT EXISTS ${PMO_TABLES.external_issue_map} (
25
25
  pmo_ticket_id TEXT NOT NULL REFERENCES ${PMO_TABLES.tickets}(id) ON DELETE CASCADE,
26
- linear_issue_id TEXT NOT NULL,
27
- linear_identifier TEXT NOT NULL,
28
- linear_team_key TEXT NOT NULL,
29
- linear_url TEXT NOT NULL,
26
+ provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'shortcut', 'trello', 'github')),
27
+ external_id TEXT NOT NULL,
28
+ external_key TEXT NOT NULL,
29
+ external_url TEXT NOT NULL,
30
+ team_key TEXT NOT NULL,
30
31
  sync_direction TEXT NOT NULL DEFAULT 'inbound',
31
- last_synced_at TIMESTAMP,
32
32
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
33
- PRIMARY KEY (pmo_ticket_id),
34
- UNIQUE (linear_issue_id)
33
+ PRIMARY KEY (pmo_ticket_id, provider),
34
+ UNIQUE (provider, external_id)
35
35
  )
36
36
  `);
37
37
  this.db.exec(`
38
- CREATE INDEX IF NOT EXISTS idx_pmo_linear_issue_map_linear_id
39
- ON ${PMO_TABLES.linear_issue_map}(linear_issue_id)
38
+ CREATE INDEX IF NOT EXISTS idx_pmo_external_issue_map_external_id
39
+ ON ${PMO_TABLES.external_issue_map}(provider, external_id)
40
40
  `);
41
41
  this.db.exec(`
42
- CREATE INDEX IF NOT EXISTS idx_pmo_linear_issue_map_identifier
43
- ON ${PMO_TABLES.linear_issue_map}(linear_identifier)
42
+ CREATE INDEX IF NOT EXISTS idx_pmo_external_issue_map_external_key_eim
43
+ ON ${PMO_TABLES.external_issue_map}(provider, external_key)
44
44
  `);
45
45
  }
46
46
  /**
@@ -175,10 +175,10 @@ export class LinearMapper {
175
175
  */
176
176
  createMapping(map) {
177
177
  this.db.prepare(`
178
- INSERT INTO ${PMO_TABLES.linear_issue_map}
179
- (pmo_ticket_id, linear_issue_id, linear_identifier, linear_team_key, linear_url, sync_direction, last_synced_at, created_at)
180
- VALUES (?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
181
- `).run(map.pmoTicketId, map.linearIssueId, map.linearIdentifier, map.linearTeamKey, map.linearUrl, map.syncDirection);
178
+ INSERT INTO ${PMO_TABLES.external_issue_map}
179
+ (pmo_ticket_id, provider, external_id, external_key, external_url, team_key, sync_direction, created_at)
180
+ VALUES (?, 'linear', ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
181
+ `).run(map.pmoTicketId, map.linearIssueId, map.linearIdentifier, map.linearUrl, map.linearTeamKey, map.syncDirection);
182
182
  this.externalMappingStore.upsertMapping({
183
183
  provider: 'linear',
184
184
  externalId: map.linearIssueId,
@@ -197,7 +197,7 @@ export class LinearMapper {
197
197
  */
198
198
  getByTicketId(ticketId) {
199
199
  const row = this.db.prepare(`
200
- SELECT * FROM ${PMO_TABLES.linear_issue_map} WHERE pmo_ticket_id = ?
200
+ SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE pmo_ticket_id = ? AND provider = 'linear'
201
201
  `).get(ticketId);
202
202
  return row ? this.rowToMap(row) : null;
203
203
  }
@@ -206,7 +206,7 @@ export class LinearMapper {
206
206
  */
207
207
  getByLinearId(linearIssueId) {
208
208
  const row = this.db.prepare(`
209
- SELECT * FROM ${PMO_TABLES.linear_issue_map} WHERE linear_issue_id = ?
209
+ SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE provider = 'linear' AND external_id = ?
210
210
  `).get(linearIssueId);
211
211
  if (row) {
212
212
  return this.rowToMap(row);
@@ -219,7 +219,7 @@ export class LinearMapper {
219
219
  */
220
220
  getByIdentifier(identifier) {
221
221
  const row = this.db.prepare(`
222
- SELECT * FROM ${PMO_TABLES.linear_issue_map} WHERE linear_identifier = ?
222
+ SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE provider = 'linear' AND external_key = ?
223
223
  `).get(identifier);
224
224
  if (row) {
225
225
  return this.rowToMap(row);
@@ -232,7 +232,7 @@ export class LinearMapper {
232
232
  */
233
233
  listMappings() {
234
234
  const rows = this.db.prepare(`
235
- SELECT * FROM ${PMO_TABLES.linear_issue_map} ORDER BY created_at DESC
235
+ SELECT * FROM ${PMO_TABLES.external_issue_map} WHERE provider = 'linear' ORDER BY created_at DESC
236
236
  `).all();
237
237
  return rows.map((row) => this.rowToMap(row));
238
238
  }
@@ -240,11 +240,6 @@ export class LinearMapper {
240
240
  * Update the last synced timestamp for a mapping.
241
241
  */
242
242
  updateSyncTimestamp(pmoTicketId) {
243
- this.db.prepare(`
244
- UPDATE ${PMO_TABLES.linear_issue_map}
245
- SET last_synced_at = CURRENT_TIMESTAMP
246
- WHERE pmo_ticket_id = ?
247
- `).run(pmoTicketId);
248
243
  const map = this.getByTicketId(pmoTicketId);
249
244
  if (map) {
250
245
  this.externalMappingStore.upsertMapping({
@@ -266,7 +261,7 @@ export class LinearMapper {
266
261
  */
267
262
  deleteMapping(pmoTicketId) {
268
263
  this.db.prepare(`
269
- DELETE FROM ${PMO_TABLES.linear_issue_map} WHERE pmo_ticket_id = ?
264
+ DELETE FROM ${PMO_TABLES.external_issue_map} WHERE pmo_ticket_id = ? AND provider = 'linear'
270
265
  `).run(pmoTicketId);
271
266
  }
272
267
  /**
@@ -275,12 +270,11 @@ export class LinearMapper {
275
270
  rowToMap(row) {
276
271
  return {
277
272
  pmoTicketId: row.pmo_ticket_id,
278
- linearIssueId: row.linear_issue_id,
279
- linearIdentifier: row.linear_identifier,
280
- linearTeamKey: row.linear_team_key,
281
- linearUrl: row.linear_url,
273
+ linearIssueId: row.external_id,
274
+ linearIdentifier: row.external_key,
275
+ linearTeamKey: row.team_key,
276
+ linearUrl: row.external_url,
282
277
  syncDirection: row.sync_direction,
283
- lastSyncedAt: row.last_synced_at ? new Date(row.last_synced_at) : undefined,
284
278
  createdAt: new Date(row.created_at),
285
279
  };
286
280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../src/lib/linear/mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../src/lib/linear/mapper.ts"],"names":[],"mappings":"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"}
@@ -103,7 +103,7 @@ export interface LinearIssueFilter {
103
103
  }
104
104
  /**
105
105
  * Mapping record between a Linear issue and a PMO ticket.
106
- * Stored in pmo_linear_issue_map table.
106
+ * Stored in pmo_external_issue_map table (provider = 'linear').
107
107
  */
108
108
  export interface LinearIssueMap {
109
109
  pmoTicketId: string;
@@ -38,6 +38,7 @@ export declare const PMO_TABLES: {
38
38
  readonly label_groups: "pmo_label_groups";
39
39
  readonly labels: "pmo_labels";
40
40
  readonly ticket_labels: "pmo_ticket_labels";
41
+ readonly external_issue_map: "pmo_external_issue_map";
41
42
  readonly linear_issue_map: "pmo_linear_issue_map";
42
43
  readonly external_execution_map: "pmo_external_execution_map";
43
44
  readonly external_execution_links: "pmo_external_execution_links";
@@ -86,6 +87,7 @@ export declare const PMO_TABLE_SCHEMAS: {
86
87
  readonly ticket_labels: "\n CREATE TABLE IF NOT EXISTS pmo_ticket_labels (\n ticket_id TEXT NOT NULL REFERENCES pmo_tickets(id) ON DELETE CASCADE,\n label_id TEXT NOT NULL REFERENCES pmo_labels(id) ON DELETE CASCADE,\n PRIMARY KEY (ticket_id, label_id)\n )";
87
88
  readonly roadmaps: "\n CREATE TABLE IF NOT EXISTS pmo_roadmaps (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL UNIQUE,\n description TEXT,\n is_default INTEGER NOT NULL DEFAULT 0,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n )";
88
89
  readonly roadmap_projects: "\n CREATE TABLE IF NOT EXISTS pmo_roadmap_projects (\n roadmap_id TEXT NOT NULL REFERENCES pmo_roadmaps(id) ON DELETE CASCADE,\n project_id TEXT NOT NULL REFERENCES pmo_projects(id) ON DELETE CASCADE,\n position INTEGER NOT NULL DEFAULT 0,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (roadmap_id, project_id)\n )";
90
+ readonly external_issue_map: "\n CREATE TABLE IF NOT EXISTS pmo_external_issue_map (\n pmo_ticket_id TEXT NOT NULL REFERENCES pmo_tickets(id) ON DELETE CASCADE,\n provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'shortcut', 'trello', 'github')),\n external_id TEXT NOT NULL,\n external_key TEXT NOT NULL,\n external_url TEXT NOT NULL,\n team_key TEXT NOT NULL,\n sync_direction TEXT NOT NULL DEFAULT 'inbound',\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (pmo_ticket_id, provider),\n UNIQUE (provider, external_id)\n )";
89
91
  readonly linear_issue_map: "\n CREATE TABLE IF NOT EXISTS pmo_linear_issue_map (\n pmo_ticket_id TEXT NOT NULL REFERENCES pmo_tickets(id) ON DELETE CASCADE,\n linear_issue_id TEXT NOT NULL,\n linear_identifier TEXT NOT NULL,\n linear_team_key TEXT NOT NULL,\n linear_url TEXT NOT NULL,\n sync_direction TEXT NOT NULL DEFAULT 'inbound',\n last_synced_at TIMESTAMP,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (pmo_ticket_id),\n UNIQUE (linear_issue_id)\n )";
90
92
  readonly external_execution_map: "\n CREATE TABLE IF NOT EXISTS pmo_external_execution_map (\n provider TEXT NOT NULL CHECK (provider IN ('linear', 'jira', 'shortcut', 'asana', 'trello', 'monday', 'pmo')),\n external_id TEXT NOT NULL,\n external_key TEXT,\n canonical_url TEXT,\n latest_state_snapshot TEXT,\n last_synced_at TIMESTAMP,\n last_spawned_at TIMESTAMP,\n created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (provider, external_id)\n )";
91
93
  readonly external_execution_links: "\n CREATE TABLE IF NOT EXISTS pmo_external_execution_links (\n provider TEXT NOT NULL,\n external_id TEXT NOT NULL,\n execution_id TEXT NOT NULL,\n linked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (provider, external_id, execution_id),\n FOREIGN KEY (provider, external_id)\n REFERENCES pmo_external_execution_map(provider, external_id)\n ON DELETE CASCADE\n )";