Skip to content

v0.8.0

Choose a tag to compare

@tomektom tomektom released this 24 Aug 17:05
e6b9dcc

0.8.0 (2026-08-24)

⚠ BREAKING CHANGES

  • core: SYNC_JOBS_EVENT_STREAM is no longer exported from @openlinker/core/sync. The events.sync.jobs stream it named is a ghost - nothing reads it, verified as having no remaining in-tree consumers - and the upgrade deletes it. Separately, Redis now runs with maxmemory set together with maxmemory-policy noeviction, so an existing deployment already holding more data than the new limit will reject every denyoom command, including XADD, until the previously-unbounded streams are trimmed. XTRIM is not a denyoom command, so it stays available and is the way out. Run, in order: DEL events.sync.jobs; XTRIM events.inbound.webhooks MAXLEN ~ 50000; XTRIM events.inbound.webhooks.dead MAXLEN ~ 10000; XTRIM jobs.sync MINID ~ {epoch_ms_14_days_ago}; XTRIM events.master.deletion.dead MINID ~ {epoch_ms_30_days_ago}. Then confirm with CONFIG GET maxmemory, CONFIG GET maxmemory-policy and INFO memory. Full procedure, sizing guidance for REDIS_MAXMEMORY, and the rationale for noeviction: docs/operations/redis-stream-retention.md (refs #2163, #2223, #2226)

Features

  • adapter-declared description format (DescriptionFormat contract + WYSIWYG editor) (#2204) (8021570)
  • core,currency,orders: order-time FX rate snapshot + reporting-currency stamping (#2135) (c6c1e4f)
  • core,worker,api,web: report the master capability rung + reconcile recency per connection (#2290) (6a335fd)
  • core,worker: concurrency lanes — per-lane caps in the job runner (ADR-050) (#2294) (e913866)
  • core/products: master capability ladder — modified-since rung + PrestaShop watermark spike (#2232) (e30c18e)
  • dx: make the ADR reversal gates executable in check:invariants (#2291) (a46c1b4)
  • fiscalization: Polish fiscal e-receipts via a neutral fiscalization capability (#1902) (#2137) (04b0ece)
  • infakt: replace free-text baseUrl with Sandbox/Production dropdown (#2179) (e38d63c)
  • listings,connections: make the category-resolve in-flight ceiling operator-visible (#2238) (6468944)
  • listings,web: pre-submit offer validation in the bulk wizard (#2244) (6ec95e5)
  • listings: recover a failed bulk batch without starting over (#2237) (b32d3ad), closes #2234
  • listings: streamed per-variant progress for the bulk publish Resolve step (#2214) (bb1d455)
  • orders,analytics: order analytics read model + sales/channel/top-products endpoints + per-line tax rate + net tax basis (#2014) (fd44889)
  • sales-documents,invoicing,fiscalization,web: sales-document routing policy (ADR-041) (#2154) (#2161) (e089363)
  • web/listings: product-tier category, honest blocker copy, seller-details preflight (#2241) (84153a6)
  • web: add Open Graph / Twitter Card meta tags with demo-prefix support (#2175) (be37bff)
  • webhooks,worker,sync: durable webhook spine + worker roles (ADR-049 D1, ADR-051) (#2295) (25111eb)
  • web: show the destination integration + step-1 config on every bulk wizard step (#2239) (e533bc0)
  • worker,identifier-mapping: bound and resume the master sweeps (#2218, #2219) (#2228) (9099a73)

Bug Fixes

  • ci: make the docs-only path gate actually fire (predicate-quantifier) (#2297) (31270cf)
  • core: bound every Redis stream and declare the memory policy (#2163) (#2226) (94ba20e)
  • core: reconciliation as the deletion authority — deleted products stop selling (#2242) (d392f1c)
  • core: recover Redis stream messages stranded between read and ACK + ADR-049 durability spine (#2223) (66bbb89)
  • dx: unbreak main — register the sales-document routing knob, retire the superseded one (#2292) (b29359f)
  • erli,core,web: surface why an Erli offer cannot sell instead of showing Draft (#2236) (8fdbedd)
  • erli: default the offer-status sync scheduler task ON (#2235) (2177a7a), closes #2230
  • ksef: surface session-crypto failures on Test connection instead of a generic message (#2444) (9adf2ac), closes #2443
  • listings,connections: address review on the resolve-concurrency ceiling (#2274) (a4ea0bc), closes #2229
  • prestashop: read the order's real currency instead of hardcoding EUR (#2439) (fb3e070)
  • web/orders: stop claiming nothing has synced when a filter is simply narrow (#2149) (54e73a2)
  • web: add the favicon set the app never had (#2183) (58d832c)

Miscellaneous Chores

  • core: declare the Redis stream retention upgrade as breaking (#2163) (#2259) (3598ff6)

This PR was generated with Release Please. See documentation.