@drawbridge/drawbridge-agents 0.1.20 → 0.1.22

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.
@@ -40,7 +40,20 @@ skill) so it stops living only in tribal memory.
40
40
  Emitting first hands the client a stale menu nothing re-emits to correct (the stuck-dot bug).
41
41
  Workflow doc changes have **no** socket event, so app-web workflow status mutations
42
42
  (pause/resume/delete) invalidate the menu client-side themselves.
43
- - Scraped-asset file reuse keys on `organization + meta.origin + meta.element` **plus
43
+ - Notification dedupe has two distinct mechanisms pick by intent. `notification.coalesce`
44
+ is **last-write-wins supersede** (stream/notification.js deletes the prior doc sharing the
45
+ key); `notification.key` is **first-write-wins idempotency** — a partial unique index in
46
+ drawbridge-api `schema/notification.js` refuses the duplicate with E11000, which the writer
47
+ must swallow as already-notified (sync queue/connection.js rehydrate,
48
+ `ads-republishing.<connectionId>`). Never unique-index `coalesce` (superseding requires the
49
+ second insert to land), and writes that set `key` need the writer-side E11000 handler or a
50
+ replayed event logs a false error.
51
+ - Schema-gated fields ship **api-first, booted**: a sibling writer setting a field new to a
52
+ drawbridge-api `$jsonSchema` (validators are strict + `additionalProperties: false`) must not
53
+ go live until the api has **booted** with the schema change on that environment — creating the
54
+ index manually is not enough; until the boot collMod lands, every insert carrying the field
55
+ fails Mongo 121 (not E11000), so keyed-idempotency writers silently drop their writes
56
+ (2026-07-30 `notification.key` dev outage, Sentry DRAWBRIDGE-SYNC-32).
44
57
  `meta.render` for pipeline-rendered marks** (sync `resolveAsset` writes/queries it; the field
45
58
  and its index live in drawbridge-api `schema/file.js`). `origin` identifies the source asset,
46
59
  `render` content-hashes the rendered output — drop `render` from either side and a rendering
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawbridge/drawbridge-agents",
3
- "version": "0.1.20",
3
+ "version": "0.1.22",
4
4
  "description": "Shared agent-instruction content (rules, code style, conventions) for the drawbridge-* monorepo.",
5
5
  "license": "UNLICENSED",
6
6
  "publishConfig": {