botnote 0.1.55 → 0.2.0

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/cli.js +3 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/db/migrations/0028_workspaces.sql +65 -0
  4. package/dist/db/migrations/0029_drop_global_uniques.sql +38 -0
  5. package/dist/db/schema.d.ts +215 -2
  6. package/dist/db/schema.js +32 -4
  7. package/dist/db/schema.js.map +1 -1
  8. package/dist/rest/routes.js +58 -58
  9. package/dist/rest/routes.js.map +1 -1
  10. package/dist/rest/server.d.ts +11 -1
  11. package/dist/rest/server.js +19 -3
  12. package/dist/rest/server.js.map +1 -1
  13. package/dist/service/embedding.d.ts +5 -0
  14. package/dist/service/embedding.js +6 -1
  15. package/dist/service/embedding.js.map +1 -1
  16. package/dist/service/embedding_settings.d.ts +4 -3
  17. package/dist/service/embedding_settings.js +13 -16
  18. package/dist/service/embedding_settings.js.map +1 -1
  19. package/dist/service/entities.d.ts +29 -20
  20. package/dist/service/entities.js +101 -60
  21. package/dist/service/entities.js.map +1 -1
  22. package/dist/service/feedback.d.ts +3 -2
  23. package/dist/service/feedback.js +8 -4
  24. package/dist/service/feedback.js.map +1 -1
  25. package/dist/service/opening_brief.d.ts +2 -1
  26. package/dist/service/opening_brief.js +6 -7
  27. package/dist/service/opening_brief.js.map +1 -1
  28. package/dist/service/projects.d.ts +6 -5
  29. package/dist/service/projects.js +25 -13
  30. package/dist/service/projects.js.map +1 -1
  31. package/dist/service/recurrence.d.ts +7 -6
  32. package/dist/service/recurrence.js +36 -14
  33. package/dist/service/recurrence.js.map +1 -1
  34. package/dist/service/scope.d.ts +14 -0
  35. package/dist/service/scope.js +19 -0
  36. package/dist/service/scope.js.map +1 -0
  37. package/dist/service/search.d.ts +3 -2
  38. package/dist/service/search.js +12 -9
  39. package/dist/service/search.js.map +1 -1
  40. package/dist/service/sessions.d.ts +7 -8
  41. package/dist/service/sessions.js +8 -8
  42. package/dist/service/sessions.js.map +1 -1
  43. package/dist/service/tasks.d.ts +2 -1
  44. package/dist/service/tasks.js +13 -6
  45. package/dist/service/tasks.js.map +1 -1
  46. package/dist/service/tokens.d.ts +7 -6
  47. package/dist/service/tokens.js +17 -10
  48. package/dist/service/tokens.js.map +1 -1
  49. package/dist/service/workspace_settings.d.ts +3 -2
  50. package/dist/service/workspace_settings.js +11 -15
  51. package/dist/service/workspace_settings.js.map +1 -1
  52. package/package.json +1 -1
@@ -12,12 +12,21 @@ const UUID_PREFIX_RE = /^[0-9a-f-]{8,36}$/i;
12
12
  function normalizeStatus(value) {
13
13
  return value === "delayed" || value === "archived" ? "done" : value;
14
14
  }
15
- function activeProjectVisibility() {
15
+ function inScope(scope) {
16
+ return eq(entities.workspaceId, scope.workspaceId);
17
+ }
18
+ function activeProjectVisibility(scope) {
16
19
  return sql `(${entities.projectId} IS NULL OR ${entities.projectId} IN (
17
- SELECT id FROM projects WHERE status <> 'archived'
20
+ SELECT id FROM projects
21
+ WHERE status <> 'archived' AND workspace_id = ${scope.workspaceId}::uuid
18
22
  ))`;
19
23
  }
20
- export async function resolveEntityId(db, idOrPrefix) {
24
+ /**
25
+ * Resolve a full UUID or a unique prefix to an entity id. A full UUID passes
26
+ * through without a lookup, so every caller still filters its own query by
27
+ * scope; prefixes are matched only inside the scope.
28
+ */
29
+ export async function resolveEntityId(scope, db, idOrPrefix) {
21
30
  if (UUID_RE.test(idOrPrefix))
22
31
  return idOrPrefix;
23
32
  if (!UUID_PREFIX_RE.test(idOrPrefix))
@@ -25,7 +34,8 @@ export async function resolveEntityId(db, idOrPrefix) {
25
34
  const rows = (await db.execute(sql `
26
35
  SELECT id::text AS id
27
36
  FROM entities
28
- WHERE id::text LIKE ${`${idOrPrefix.toLowerCase()}%`}
37
+ WHERE workspace_id = ${scope.workspaceId}::uuid
38
+ AND id::text LIKE ${`${idOrPrefix.toLowerCase()}%`}
29
39
  LIMIT 2
30
40
  `)).rows;
31
41
  if (rows.length === 1)
@@ -34,19 +44,27 @@ export async function resolveEntityId(db, idOrPrefix) {
34
44
  throw new Error(`entity id prefix ${idOrPrefix} is ambiguous`);
35
45
  return null;
36
46
  }
47
+ async function existsInScope(scope, db, id) {
48
+ const rows = await db
49
+ .select({ id: entities.id })
50
+ .from(entities)
51
+ .where(and(eq(entities.id, id), inScope(scope)))
52
+ .limit(1);
53
+ return rows.length > 0;
54
+ }
37
55
  /**
38
56
  * A parent link must never point back at the entity itself, directly or via
39
57
  * the parent's own parent. listChildren would otherwise list an entity as its
40
58
  * own child (the Letheia import did exactly this; see migration 0027).
41
59
  */
42
- async function assertParentAllowed(db, entityId, parentId) {
60
+ async function assertParentAllowed(scope, db, entityId, parentId) {
43
61
  if (parentId === entityId) {
44
62
  throw clientError("an entity cannot be its own parent", 400);
45
63
  }
46
64
  const [parent] = await db
47
65
  .select({ parentId: entities.parentId })
48
66
  .from(entities)
49
- .where(eq(entities.id, parentId))
67
+ .where(and(eq(entities.id, parentId), inScope(scope)))
50
68
  .limit(1);
51
69
  if (!parent)
52
70
  throw clientError(`parent entity ${parentId} not found`, 404);
@@ -54,12 +72,12 @@ async function assertParentAllowed(db, entityId, parentId) {
54
72
  throw clientError("parentId would create a parent cycle (the parent is already a child of this entity)", 400);
55
73
  }
56
74
  }
57
- export async function write(db, input) {
75
+ export async function write(scope, db, input) {
58
76
  if (input.idempotencyKey) {
59
77
  const existing = await db
60
78
  .select()
61
79
  .from(entities)
62
- .where(eq(entities.idempotencyKey, input.idempotencyKey))
80
+ .where(and(eq(entities.idempotencyKey, input.idempotencyKey), inScope(scope)))
63
81
  .limit(1);
64
82
  if (existing.length > 0)
65
83
  return existing[0];
@@ -68,9 +86,13 @@ export async function write(db, input) {
68
86
  if (input.completedAt != null && !(input.kind === "task" && status === "done")) {
69
87
  throw clientError("completedAt is only valid on a task created with status 'done'", 400);
70
88
  }
89
+ if (input.parentId && !(await existsInScope(scope, db, input.parentId))) {
90
+ throw clientError(`parent entity ${input.parentId} not found`, 404);
91
+ }
71
92
  const [row] = await db
72
93
  .insert(entities)
73
94
  .values({
95
+ workspaceId: scope.workspaceId,
74
96
  kind: input.kind,
75
97
  projectId: input.projectId ?? null,
76
98
  title: input.title ?? null,
@@ -106,14 +128,14 @@ export async function write(db, input) {
106
128
  * parent's projectId so project-scoped search/recent include it, but never
107
129
  * gets a KEY-SEQ number (the sequence trigger skips kind='comment').
108
130
  */
109
- export async function addComment(db, parentIdOrPrefix, input) {
110
- const parent = await get(db, parentIdOrPrefix);
131
+ export async function addComment(scope, db, parentIdOrPrefix, input) {
132
+ const parent = await get(scope, db, parentIdOrPrefix);
111
133
  if (!parent)
112
134
  throw clientError(`entity ${parentIdOrPrefix} not found`, 404);
113
135
  if (parent.kind === "comment") {
114
136
  throw clientError("comments cannot be nested; comment on the task itself", 400);
115
137
  }
116
- return write(db, {
138
+ return write(scope, db, {
117
139
  kind: "comment",
118
140
  projectId: parent.projectId,
119
141
  title: null,
@@ -130,24 +152,24 @@ export async function addComment(db, parentIdOrPrefix, input) {
130
152
  });
131
153
  }
132
154
  /** Comments for one parent entity, oldest first (chronological worklog). */
133
- export async function listComments(db, parentIdOrPrefix, limit = 50) {
134
- const entityId = await resolveEntityId(db, parentIdOrPrefix);
155
+ export async function listComments(scope, db, parentIdOrPrefix, limit = 50) {
156
+ const entityId = await resolveEntityId(scope, db, parentIdOrPrefix);
135
157
  if (!entityId)
136
158
  return [];
137
159
  return db
138
160
  .select()
139
161
  .from(entities)
140
- .where(and(eq(entities.parentId, entityId), eq(entities.kind, "comment"), isNull(entities.deletedAt)))
162
+ .where(and(inScope(scope), eq(entities.parentId, entityId), eq(entities.kind, "comment"), isNull(entities.deletedAt)))
141
163
  .orderBy(entities.createdAt)
142
164
  .limit(limit);
143
165
  }
144
166
  const CONTENT_FIELDS = ["title", "body", "tags", "priority"];
145
- export async function update(db, id, fields) {
146
- const entityId = await resolveEntityId(db, id);
167
+ export async function update(scope, db, id, fields) {
168
+ const entityId = await resolveEntityId(scope, db, id);
147
169
  if (!entityId)
148
170
  throw new Error(`entity ${id} not found`);
149
171
  if (fields.parentId)
150
- await assertParentAllowed(db, entityId, fields.parentId);
172
+ await assertParentAllowed(scope, db, entityId, fields.parentId);
151
173
  const normalizedFields = { ...fields };
152
174
  if (fields.status !== undefined) {
153
175
  normalizedFields.status = normalizeStatus(fields.status);
@@ -181,7 +203,7 @@ export async function update(db, id, fields) {
181
203
  priority: entities.priority
182
204
  })
183
205
  .from(entities)
184
- .where(eq(entities.id, entityId))
206
+ .where(and(eq(entities.id, entityId), inScope(scope)))
185
207
  .limit(1);
186
208
  if (!prior[0])
187
209
  throw new Error(`entity ${id} not found`);
@@ -233,7 +255,11 @@ export async function update(db, id, fields) {
233
255
  if (fields.bodyAppend !== undefined) {
234
256
  set.body = sql `CASE WHEN ${entities.body} = '' THEN ${fields.bodyAppend} ELSE ${entities.body} || ${"\n\n"} || ${fields.bodyAppend} END`;
235
257
  }
236
- const [row] = await db.update(entities).set(set).where(eq(entities.id, entityId)).returning();
258
+ const [row] = await db
259
+ .update(entities)
260
+ .set(set)
261
+ .where(and(eq(entities.id, entityId), inScope(scope)))
262
+ .returning();
237
263
  if (!row)
238
264
  throw new Error(`entity ${id} not found`);
239
265
  if (fields.parentId !== undefined && fields.parentId !== null) {
@@ -267,14 +293,14 @@ export async function update(db, id, fields) {
267
293
  }
268
294
  return row;
269
295
  }
270
- export async function listRelated(db, parentId) {
271
- const entityId = await resolveEntityId(db, parentId);
296
+ export async function listRelated(scope, db, parentId) {
297
+ const entityId = await resolveEntityId(scope, db, parentId);
272
298
  if (!entityId)
273
299
  return [];
274
300
  return db
275
301
  .select()
276
302
  .from(entities)
277
- .where(and(eq(entities.parentId, entityId), isNull(entities.deletedAt)))
303
+ .where(and(inScope(scope), eq(entities.parentId, entityId), isNull(entities.deletedAt)))
278
304
  .orderBy(desc(entities.createdAt));
279
305
  }
280
306
  /**
@@ -282,24 +308,24 @@ export async function listRelated(db, parentId) {
282
308
  * get-by-key handlers (not from internal lookups) so access stats reflect
283
309
  * deliberate recalls; search gives frequently-recalled entities a light boost.
284
310
  */
285
- export async function bumpAccess(db, id) {
311
+ export async function bumpAccess(scope, db, id) {
286
312
  await db
287
313
  .update(entities)
288
314
  .set({
289
315
  accessCount: sql `${entities.accessCount} + 1`,
290
316
  lastAccessedAt: new Date()
291
317
  })
292
- .where(eq(entities.id, id));
318
+ .where(and(eq(entities.id, id), inScope(scope)));
293
319
  }
294
320
  /**
295
321
  * Mark `oldIdOrPrefix` as superseded by `newId` (kind='supersedes' edge from
296
322
  * the replacement to the outdated entity). Superseded entities stay readable
297
323
  * but are downweighted in search.
298
324
  */
299
- export async function markSuperseded(db, newId, oldIdOrPrefix) {
325
+ export async function markSuperseded(scope, db, newId, oldIdOrPrefix) {
300
326
  // get() (not resolveEntityId) so a full-UUID reference to a deleted or
301
327
  // never-existing row still 404s instead of tripping the FK constraint.
302
- const old = await get(db, oldIdOrPrefix);
328
+ const old = await get(scope, db, oldIdOrPrefix);
303
329
  if (!old)
304
330
  throw clientError(`supersedes target ${oldIdOrPrefix} not found`, 404);
305
331
  if (old.id === newId)
@@ -310,23 +336,27 @@ export async function markSuperseded(db, newId, oldIdOrPrefix) {
310
336
  .onConflictDoNothing();
311
337
  return old.id;
312
338
  }
313
- export async function get(db, id) {
314
- const entityId = await resolveEntityId(db, id);
339
+ export async function get(scope, db, id) {
340
+ const entityId = await resolveEntityId(scope, db, id);
315
341
  if (!entityId)
316
342
  return null;
317
- const rows = await db.select().from(entities).where(eq(entities.id, entityId)).limit(1);
343
+ const rows = await db
344
+ .select()
345
+ .from(entities)
346
+ .where(and(eq(entities.id, entityId), inScope(scope)))
347
+ .limit(1);
318
348
  return rows[0] ?? null;
319
349
  }
320
350
  /**
321
351
  * Look up an entity by its human-readable identifier — e.g. project key `DEMO`
322
352
  * + sequence id `12` resolves to the entity displayed as `DEMO-12`.
323
353
  */
324
- export async function getByKey(db, projectKey, sequenceId) {
354
+ export async function getByKey(scope, db, projectKey, sequenceId) {
325
355
  const rows = await db
326
356
  .select({ e: entities })
327
357
  .from(entities)
328
358
  .innerJoin(projects, eq(entities.projectId, projects.id))
329
- .where(and(eq(projects.key, projectKey), eq(entities.sequenceId, sequenceId)))
359
+ .where(and(eq(projects.workspaceId, scope.workspaceId), eq(projects.key, projectKey), eq(entities.sequenceId, sequenceId)))
330
360
  .limit(1);
331
361
  return rows[0]?.e ?? null;
332
362
  }
@@ -335,33 +365,28 @@ export async function getByKey(db, projectKey, sequenceId) {
335
365
  * restore() brings them back, purge()/purgeExpired() hard-delete them.
336
366
  * Idempotent — re-deleting a trashed entity keeps its original trash time.
337
367
  */
338
- export async function remove(db, id) {
339
- const entityId = await resolveEntityId(db, id);
368
+ export async function remove(scope, db, id) {
369
+ const entityId = await resolveEntityId(scope, db, id);
340
370
  if (!entityId)
341
371
  return false;
342
372
  const res = await db
343
373
  .update(entities)
344
374
  .set({ deletedAt: new Date() })
345
- .where(and(eq(entities.id, entityId), isNull(entities.deletedAt)))
375
+ .where(and(eq(entities.id, entityId), inScope(scope), isNull(entities.deletedAt)))
346
376
  .returning({ id: entities.id });
347
377
  if (res.length > 0)
348
378
  return true;
349
- const exists = await db
350
- .select({ id: entities.id })
351
- .from(entities)
352
- .where(eq(entities.id, entityId))
353
- .limit(1);
354
- return exists.length > 0;
379
+ return existsInScope(scope, db, entityId);
355
380
  }
356
381
  /** Bring a trashed entity back. Returns null when the id resolves to nothing. */
357
- export async function restore(db, id) {
358
- const entityId = await resolveEntityId(db, id);
382
+ export async function restore(scope, db, id) {
383
+ const entityId = await resolveEntityId(scope, db, id);
359
384
  if (!entityId)
360
385
  return null;
361
386
  const [row] = await db
362
387
  .update(entities)
363
388
  .set({ deletedAt: null })
364
- .where(eq(entities.id, entityId))
389
+ .where(and(eq(entities.id, entityId), inScope(scope)))
365
390
  .returning();
366
391
  return row ?? null;
367
392
  }
@@ -369,26 +394,29 @@ export async function restore(db, id) {
369
394
  * Hard-delete a trashed entity ("delete forever"). Refuses to touch live
370
395
  * rows — an entity must go through the trash first.
371
396
  */
372
- export async function purge(db, id) {
373
- const entityId = await resolveEntityId(db, id);
397
+ export async function purge(scope, db, id) {
398
+ const entityId = await resolveEntityId(scope, db, id);
374
399
  if (!entityId)
375
400
  return false;
376
401
  const res = await db
377
402
  .delete(entities)
378
- .where(and(eq(entities.id, entityId), isNotNull(entities.deletedAt)))
403
+ .where(and(eq(entities.id, entityId), inScope(scope), isNotNull(entities.deletedAt)))
379
404
  .returning({ id: entities.id });
380
405
  return res.length > 0;
381
406
  }
382
407
  /** Trashed entities, most recently deleted first. */
383
- export async function listTrash(db, limit = 100) {
408
+ export async function listTrash(scope, db, limit = 100) {
384
409
  return db
385
410
  .select()
386
411
  .from(entities)
387
- .where(isNotNull(entities.deletedAt))
412
+ .where(and(inScope(scope), isNotNull(entities.deletedAt)))
388
413
  .orderBy(desc(entities.deletedAt))
389
414
  .limit(limit);
390
415
  }
391
- /** Hard-delete trash older than the retention window. Returns rows purged. */
416
+ /**
417
+ * Hard-delete trash older than the retention window across every workspace.
418
+ * Daemon-level maintenance, hence no scope. Returns rows purged.
419
+ */
392
420
  export async function purgeExpired(db, retentionDays) {
393
421
  const cutoff = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000);
394
422
  const res = await db
@@ -397,14 +425,14 @@ export async function purgeExpired(db, retentionDays) {
397
425
  .returning({ id: entities.id });
398
426
  return res.length;
399
427
  }
400
- export async function recent(db, input) {
401
- const conds = [];
428
+ export async function recent(scope, db, input) {
429
+ const conds = [inScope(scope)];
402
430
  if (input.projectId)
403
431
  conds.push(eq(entities.projectId, input.projectId));
404
432
  else if (input.projectId === null)
405
433
  conds.push(isNull(entities.projectId));
406
434
  else
407
- conds.push(activeProjectVisibility());
435
+ conds.push(activeProjectVisibility(scope));
408
436
  conds.push(isNull(entities.deletedAt));
409
437
  if (input.since)
410
438
  conds.push(gte(entities.createdAt, input.since));
@@ -418,7 +446,19 @@ export async function recent(db, input) {
418
446
  .orderBy(desc(entities.createdAt))
419
447
  .limit(input.limit);
420
448
  }
421
- export async function link(db, input) {
449
+ export async function link(scope, db, input) {
450
+ if (input.fromId === input.toId) {
451
+ throw clientError("an entity cannot be linked to itself", 400);
452
+ }
453
+ const endpoints = await db
454
+ .select({ id: entities.id })
455
+ .from(entities)
456
+ .where(and(inArray(entities.id, [input.fromId, input.toId]), inScope(scope)));
457
+ const found = new Set(endpoints.map((e) => e.id));
458
+ for (const id of [input.fromId, input.toId]) {
459
+ if (!found.has(id))
460
+ throw clientError(`entity ${id} not found`, 404);
461
+ }
422
462
  const result = await db
423
463
  .insert(edges)
424
464
  .values({ fromId: input.fromId, toId: input.toId, kind: input.kind })
@@ -431,7 +471,7 @@ export async function link(db, input) {
431
471
  created: result.length > 0
432
472
  };
433
473
  }
434
- export async function listChildren(db, parentId) {
474
+ export async function listChildren(scope, db, parentId) {
435
475
  // Children arrive via two linkage styles that both count: the entities.parentId
436
476
  // column (create_task / update_entity parentId) and explicit parent_of edges
437
477
  // (the link tool). Comments also live on entities.parentId but are worklog,
@@ -446,7 +486,7 @@ export async function listChildren(db, parentId) {
446
486
  return db
447
487
  .select()
448
488
  .from(entities)
449
- .where(and(linkage, ne(entities.kind, "comment"), isNull(entities.deletedAt)))
489
+ .where(and(inScope(scope), linkage, ne(entities.kind, "comment"), isNull(entities.deletedAt)))
450
490
  .orderBy(asc(entities.createdAt));
451
491
  }
452
492
  export async function setBodyVec(db, id, vec) {
@@ -457,14 +497,15 @@ export async function setBodyVec(db, id, vec) {
457
497
  * counts, ordered by count DESC then tag ASC. Pass projectId to scope to one
458
498
  * project; omit (or pass null/undefined) for workspace-wide results.
459
499
  */
460
- export async function listTags(db, input) {
500
+ export async function listTags(scope, db, input) {
461
501
  const projectFilter = input.projectId
462
502
  ? sql `AND project_id = ${input.projectId}::uuid`
463
503
  : sql ``;
464
504
  const rows = await db.execute(sql `
465
505
  SELECT tag, COUNT(*)::int AS count
466
506
  FROM entities, unnest(tags) AS tag
467
- WHERE deleted_at IS NULL ${projectFilter}
507
+ WHERE deleted_at IS NULL
508
+ AND workspace_id = ${scope.workspaceId}::uuid ${projectFilter}
468
509
  GROUP BY tag
469
510
  ORDER BY count DESC, tag ASC
470
511
  `);
@@ -477,7 +518,7 @@ export async function listTags(db, input) {
477
518
  * direction='both' → union of both directions (default)
478
519
  * Returns the OTHER endpoint entity alongside the edge kind and direction.
479
520
  */
480
- export async function getLinks(db, input) {
521
+ export async function getLinks(scope, db, input) {
481
522
  const { id, kind, direction } = input;
482
523
  const results = [];
483
524
  if (direction === "outgoing" || direction === "both") {
@@ -492,7 +533,7 @@ export async function getLinks(db, input) {
492
533
  const entityRows = await db
493
534
  .select()
494
535
  .from(entities)
495
- .where(and(inArray(entities.id, toIds), isNull(entities.deletedAt)));
536
+ .where(and(inScope(scope), inArray(entities.id, toIds), isNull(entities.deletedAt)));
496
537
  const entityById = new Map(entityRows.map((en) => [en.id, en]));
497
538
  for (const row of rows.rows) {
498
539
  const entity = entityById.get(row.to_id);
@@ -514,7 +555,7 @@ export async function getLinks(db, input) {
514
555
  const entityRows = await db
515
556
  .select()
516
557
  .from(entities)
517
- .where(and(inArray(entities.id, fromIds), isNull(entities.deletedAt)));
558
+ .where(and(inScope(scope), inArray(entities.id, fromIds), isNull(entities.deletedAt)));
518
559
  const entityById = new Map(entityRows.map((en) => [en.id, en]));
519
560
  for (const row of rows.rows) {
520
561
  const entity = entityById.get(row.from_id);
@@ -1 +1 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/service/entities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/service/entities.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Database } from "../db/client.js";
2
2
  import { type Entity } from "../db/schema.js";
3
+ import type { Scope } from "./scope.js";
3
4
  import type { CreateFeedbackInput, ListFeedbackInput } from "./types.js";
4
5
  /**
5
6
  * File product feedback about botnote itself. Feedback is a first-class
@@ -7,6 +8,6 @@ import type { CreateFeedbackInput, ListFeedbackInput } from "./types.js";
7
8
  * queue: open (new) → in_progress (accepted) → done (shipped/resolved) or
8
9
  * rejected (won't fix). The category lives in metadata.category.
9
10
  */
10
- export declare function submitFeedback(db: Database["db"], input: CreateFeedbackInput): Promise<Entity>;
11
+ export declare function submitFeedback(scope: Scope, db: Database["db"], input: CreateFeedbackInput): Promise<Entity>;
11
12
  /** Feedback entries for triage, newest first, filterable by category/status. */
12
- export declare function listFeedback(db: Database["db"], input: ListFeedbackInput): Promise<Entity[]>;
13
+ export declare function listFeedback(scope: Scope, db: Database["db"], input: ListFeedbackInput): Promise<Entity[]>;
@@ -7,8 +7,8 @@ import { write } from "./entities.js";
7
7
  * queue: open (new) → in_progress (accepted) → done (shipped/resolved) or
8
8
  * rejected (won't fix). The category lives in metadata.category.
9
9
  */
10
- export async function submitFeedback(db, input) {
11
- return write(db, {
10
+ export async function submitFeedback(scope, db, input) {
11
+ return write(scope, db, {
12
12
  kind: "feedback",
13
13
  projectId: input.projectId ?? null,
14
14
  title: input.title,
@@ -28,8 +28,12 @@ export async function submitFeedback(db, input) {
28
28
  });
29
29
  }
30
30
  /** Feedback entries for triage, newest first, filterable by category/status. */
31
- export async function listFeedback(db, input) {
32
- const conds = [eq(entities.kind, "feedback"), isNull(entities.deletedAt)];
31
+ export async function listFeedback(scope, db, input) {
32
+ const conds = [
33
+ eq(entities.workspaceId, scope.workspaceId),
34
+ eq(entities.kind, "feedback"),
35
+ isNull(entities.deletedAt)
36
+ ];
33
37
  if (input.status)
34
38
  conds.push(eq(entities.status, input.status));
35
39
  if (input.category) {
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/service/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAsC,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAkB,EAClB,KAA0B;IAE1B,OAAO,KAAK,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACtB,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE;YACR,GAAG,KAAK,CAAC,QAAQ;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C;QACD,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAkB,EAClB,KAAwB;IAExB,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,GAAG,CAAA,GAAG,QAAQ,CAAC,QAAQ,qBAAqB,KAAK,CAAC,QAA4B,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;SACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/service/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAsC,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAY,EACZ,EAAkB,EAClB,KAA0B;IAE1B,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;QACtB,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACtB,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE;YACR,GAAG,KAAK,CAAC,QAAQ;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C;QACD,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAY,EACZ,EAAkB,EAClB,KAAwB;IAExB,MAAM,KAAK,GAAG;QACZ,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;QAC3C,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;KAC3B,CAAC;IACF,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,GAAG,CAAA,GAAG,QAAQ,CAAC,QAAQ,qBAAqB,KAAK,CAAC,QAA4B,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;SACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { Database } from "../db/client.js";
2
2
  import { type Entity, type Project } from "../db/schema.js";
3
+ import type { Scope } from "./scope.js";
3
4
  import type { OpeningBriefInput } from "./types.js";
4
5
  export interface OpeningBrief {
5
6
  project: Project | null;
@@ -13,5 +14,5 @@ export interface OpeningBrief {
13
14
  generatedAt: Date;
14
15
  timezone: string;
15
16
  }
16
- export declare function openingBrief(db: Database["db"], input: OpeningBriefInput): Promise<OpeningBrief>;
17
+ export declare function openingBrief(scope: Scope, db: Database["db"], input: OpeningBriefInput): Promise<OpeningBrief>;
17
18
  export declare function formatOpeningBrief(brief: OpeningBrief): string;
@@ -2,13 +2,12 @@ import { and, asc, desc, eq, inArray, isNull, sql } from "drizzle-orm";
2
2
  import { entities } from "../db/schema.js";
3
3
  import { getProject } from "./projects.js";
4
4
  import { DEFAULT_WORKSPACE_TIMEZONE, getWorkspaceSettings } from "./workspace_settings.js";
5
- export async function openingBrief(db, input) {
6
- const project = input.projectId ? await getProject(db, input.projectId) : null;
7
- const projectFilter = input.projectId
8
- ? eq(entities.projectId, input.projectId)
9
- : isNull(entities.projectId);
5
+ export async function openingBrief(scope, db, input) {
6
+ const project = input.projectId ? await getProject(scope, db, input.projectId) : null;
7
+ const inWorkspace = eq(entities.workspaceId, scope.workspaceId);
8
+ const projectFilter = and(inWorkspace, input.projectId ? eq(entities.projectId, input.projectId) : isNull(entities.projectId));
10
9
  const [settings, pinnedNotes, openTasks, recentRows] = await Promise.all([
11
- getWorkspaceSettings(db).catch(() => ({ timezone: DEFAULT_WORKSPACE_TIMEZONE })),
10
+ getWorkspaceSettings(scope, db).catch(() => ({ timezone: DEFAULT_WORKSPACE_TIMEZONE })),
12
11
  db
13
12
  .select()
14
13
  .from(entities)
@@ -39,7 +38,7 @@ export async function openingBrief(db, input) {
39
38
  const rows = await db
40
39
  .select()
41
40
  .from(entities)
42
- .where(and(eq(entities.kind, "comment"), inArray(entities.parentId, inProgressIds), isNull(entities.deletedAt)))
41
+ .where(and(inWorkspace, eq(entities.kind, "comment"), inArray(entities.parentId, inProgressIds), isNull(entities.deletedAt)))
43
42
  .orderBy(desc(entities.createdAt))
44
43
  .limit(inProgressIds.length * 10);
45
44
  const seen = new Set();