@drawbridge/drawbridge-agents 0.1.47 → 0.1.49
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.
|
@@ -136,6 +136,16 @@ skill) so it stops living only in tribal memory.
|
|
|
136
136
|
admin-negotiated actions values, so read the dry run). The legacy keys are copy-only until the
|
|
137
137
|
overrides cleanup release, and sync (reader) deploys before stripe (writer) on any shape change.
|
|
138
138
|
Detail: drawbridge-docs `reference/billing.md`.
|
|
139
|
+
- **Stripe response shapes follow drawbridge-stripe's `apiVersion` pin, not the Stripe docs
|
|
140
|
+
default** (stripe ↔ api ↔ sync ↔ webhooks). The shared client pins a preview version
|
|
141
|
+
(`drawbridge-stripe/index.js`, currently `2026-01-28.preview`), and pinned versions change
|
|
142
|
+
embedded-object shapes — e.g. a promotion code carries its coupon as a bare id under
|
|
143
|
+
`promotion.coupon`; there is no embedded `coupon` object. Reading the docs-default shape fails
|
|
144
|
+
SILENTLY (optional chaining just skips the branch): the promo entry validation shipped with its
|
|
145
|
+
currency and product-restriction refusals dead this way (Asana 1211453698575738). Before reading
|
|
146
|
+
a Stripe field a consumer hasn't read before, verify it against a real response at the pin
|
|
147
|
+
(`curl` with the `Stripe-Version` header); treat any pin bump as a shape-change release across
|
|
148
|
+
every consumer.
|
|
139
149
|
- **No Stripe product backs actions (≥0.1.45).** Invoice items carry
|
|
140
150
|
currency/quantity/unit_amount_decimal/tax_behavior/description directly; the account keeps exactly
|
|
141
151
|
one product — the plan product behind `STRIPE_PRICE_*`. Never reintroduce a product-presence guard
|
|
@@ -314,6 +324,15 @@ skill) so it stops living only in tribal memory.
|
|
|
314
324
|
in the tree. Keep the pins aligned.
|
|
315
325
|
- Shared packages that wrap a stateful SDK (Sentry, redis, mongodb) must direct-dep it at an
|
|
316
326
|
exact pin, never a loose peer range (see `sentry-sdk.md`).
|
|
327
|
+
- **A publish must rebuild `dist/` in the same command** — every published package needs a
|
|
328
|
+
`prepublishOnly` script (tsup + tests), because a bare `npm publish` ships whatever stale
|
|
329
|
+
`dist/` sits on disk with the current `package.json` version stamped on it: the version says
|
|
330
|
+
one thing, the code says another, and nothing errors anywhere. utils `0.0.100/0.0.101`
|
|
331
|
+
silently dropped the multipart upload exports this way, and utils `0.0.139` shipped the old
|
|
332
|
+
2GB `maximumUploadBytes` under a version everyone believed carried 50MB (2026-09-04; `0.0.139`
|
|
333
|
+
is poisoned — never pin it). utils ≥0.0.140 has the guard; add it to any `@drawbridge/*`
|
|
334
|
+
package before its next publish (`shopify` flagged 2026-09-04). After ANY publish, verify the
|
|
335
|
+
tarball, not the git tree: `npm pack`/curl the tarball and grep `dist/` for the change.
|
|
317
336
|
- `@drawbridge/components` `Video` (≥0.0.62) owns the whole pre-playback story; consumers must NOT
|
|
318
337
|
re-add their own poster layer or mount gate. `poster` renders as an SSR placeholder (opt into
|
|
319
338
|
`priority` for fetchpriority=high when it's the LCP element), `defer` gates only the player —
|
package/package.json
CHANGED