Skip to content

v0.3.0

Choose a tag to compare

@DavidLindblad DavidLindblad released this 30 Sep 18:44
· 6 commits to main since this release

Changelog

  • 9e530c314d203ebfc965ad50b74aa3bc33feb8b0 Merge #4190 (claude/gitleaks-config-regen) into the harness branch
  • c1d0c980583cea2cc125120977a73ddad993da18 Merge branch 'claude/rev-8507-collections' into claude/rev-8507-collections-v2
  • 6c10b19bfe3da45170b9c7c0dcb4b58fea070e13 Merge branch 'claude/rev-8507-collections-v2' into claude/rev-8507-collections-ui
  • e34c35d12f7ea27cfc88c3b944e68e8e4a98d1dc Merge branch 'claude/rev-8507-collections-v2' of https://github.com/RevKeen/revkeen into claude/rev-8507-collections-ui
  • b54e4242b50177e4742b37c4e455d24b63703ae4 Merge branch 'development' into chore/test-lane-map-refresh
  • 3dbf920edd226b70de470e6c9e01395b221ba911 Merge branch 'development' into chore/test-schema-refresh
  • 4edf43465d796168627629de4f99f218e48d339c Merge branch 'development' into chore/test-schema-refresh
  • 0f407b25a8f6535d586b7c4e4c880ac50e3f1a6d Merge branch 'development' into claude/deploy-engine-api-concurrency
  • cdc0ed9e3b6decffb1fc692da6e851162f1da977 Merge branch 'development' into claude/rename-authz-decision-audit-actions
  • 29de32b775043117d255c349546fcc090dc356a7 Merge branch 'development' into claude/rename-authz-decision-audit-actions
  • 5fd447918f81a7a18347250594c02728f951e9f6 Merge branch 'development' into claude/rev-7246-storefront-single-project-deploy
  • fed11d19f3bcdbdf55fdb6b8ee8f7469205b5b9f Merge branch 'development' into claude/rev-7616-8477-followup
  • 4224103b6e5c97b2f9f1f132c70582033fa2b1a4 Merge branch 'development' into claude/rev-8224-gated-fixtures
  • 6b75f037a4456ac13e4622322cf2a0af82b65a8e Merge branch 'development' into claude/rev-8241-plugin-product-ids
  • 83fe599a627b7c476b8fe7c214b4745b923d2acc Merge branch 'development' into claude/rev-8319-migrator-applier
  • 40c0fc1a4a9f59d0a0b43c0437260df72ad6abab Merge branch 'development' into claude/rev-8319-migrator-applier
  • 4c2b70bfe87a9663499f931af5a480753d934960 Merge branch 'development' into claude/rev-8401-changelog-completeness
  • 36b08ac64e0eda9ecf3543f24337cf6251a1fcbf Merge branch 'development' into claude/rev-8539-outbox-dedupe
  • 363fcafc54a8788432e9ca0c74905b18c4e7929c Merge branch 'development' into claude/rev-8542-cart-delivery-address
  • f0ea0349b00146b0e0985b45ac84f848bfdbbe40 Merge branch 'development' into claude/rev-8548-cart-line-charge
  • 0d95682060f6c9db54465ec9f118ba72af6171f7 Merge branch 'development' into claude/rev-8548-fulfilment-line-pairing
  • 62ba2fa064437cfdfab83ae76afb1b6cf911e8b1 Merge branch 'development' into claude/rev-8554-nullable-customer-fields
  • cc74eefbdf21be8775c8289893f3b414f6d46eb1 Merge branch 'development' into claude/rev-8559-elements-r3
  • 286a0e8ee2e6c618ebe9d7cde160b4d1b1013536 Merge branch 'development' into claude/rev-8559-marketing-followup
  • d4801a28e6968a381d6c031a287a2daf7d3cd6bb Merge branch 'development' into claude/rev-8561-land-on-development
  • e9aba804d48570a83be7758ce7f2d7fbbda9cf3b Merge branch 'development' into claude/rev-8567-embed-slug-only-log
  • 5a6d4f72eacada1118daffe24ae3c33d010ca3c6 Merge branch 'development' into claude/warmup-ci-fix
  • 78c43d9d20cc8c966994b0c2b573d5536cd4447c Merge branch 'development' into dependabot/github_actions/actions/download-artifact-8
  • 3fd63de9a2b7c30b1d51a658ab3e7989e8910c94 Merge branch 'development' of https://github.com/RevKeen/revkeen into claude/rev-8507-collections
  • 68141d0a67e77407e308cedf4741101b10c00c88 Merge branch 'staging' into promote/development-to-staging-0929j
  • a385f8426a5bc7034d9714b07bee1d05c0a72298 Merge branch 'staging' into promote/development-to-staging-0930b
  • 9bc653c1c2b8f4348e8bc38ec54029157d387ffe Merge development into REV-8472; regenerate Cerbos bundle identity
  • 5cb921ef4439ba85c76fdf8d59b8b8b94ad5e06b Merge origin/development into claude/rev-7592-inbox-fixes
  • f1f4879a70ebc8fd5786a7969b76b4bdae967173 Merge origin/development into claude/rev-8383-notification-sqs
  • 2c59014b2579b20575b58c3d02de8b48b0aca588 Merge origin/development into claude/rev-8499-apikey-runtime-rls
  • 768346db77ab85c1532d5f4468db19f5e2850ab7 Merge origin/development into feat/rev-8165-dd-gaps
  • ac8fa4a55bc93680a7d3ef69548f17d5dca0faef Merge origin/development; keep #4292's AI-token fix
  • 1fda5d226157001b1e86a9b343543e57863e7e5d Merge origin/main into promote/staging-to-main-0928a
  • 64b3b09e02da99e8d9183e178fb658d48c618926 Merge origin/staging into promote/development-to-staging-0928a
  • ee730ff6bd919f0b778c3b3be48341f5b88a712a Merge pull request #4152 from RevKeen/claude/rev-8319-migrator-applier
  • da817015b31e7dd854d8f0295285efdee616cb10 Merge pull request #4153 from RevKeen/claude/rename-authz-decision-audit-actions
  • b96aaa215aab348b57382515abcdc14632eceb49 Merge pull request #4157 from RevKeen/chore/test-lane-map-refresh
  • b82985974b4e770a5a8aa81d7a7f92c7435b063a Merge pull request #4158 from RevKeen/claude/rev-7802-standin-guard-keyword-boundary
  • 2201a61fd9b147daa89baf32333c0fb00dc6310c Merge pull request #4159 from RevKeen/chore/devbox-to-boat
  • 7c9c1628e8aa3b281fabb0381f86fe6792811cbe Merge pull request #4162 from RevKeen/claude/repair-frozen-schema-drift
  • e88d918b9d3d7cea7ae7545c8a465b2c4623a394 Merge pull request #4163 from RevKeen/chore/test-lane-map-refresh
  • b94d42257ba3e275dd7e4a4cec52f22e301b0981 Merge pull request #4164 from RevKeen/chore/test-schema-refresh
  • a2357859ab26315951c293de0195ff09aa83ea86 Merge pull request #4165 from RevKeen/chore/devbox-boat-leftovers
  • d10da2841730b541d63fa0970c54cb1b822b19e9 Merge pull request #4166 from RevKeen/claude/codefirst-repair-march-columns
  • db5bd82a4ae662151a358efd18c2c4b3d3ff89d3 Merge pull request #4167 from RevKeen/promote/development-to-staging-0928a
  • 40a36c6f284f5d1e8ad943e69d7e2d6a4600d59b Merge pull request #4168 from RevKeen/promote/staging-to-main-0928a
  • 5a0fdab113112cd8e51fad74fedd4a478b3e6715 Merge pull request #4169 from RevKeen/fix/rev-8406-zero-amount-renewal
  • bae2df296200367181b0f18f7fa73fcdd0c46ada Merge pull request #4170 from RevKeen/claude/rev-8400-payment-links-write-scope
  • 7e0485e3a1f7435758860951e53da25f9463a8d2 Merge pull request #4171 from RevKeen/claude/rev-8401-payment-links-create-mapping
  • 4bbfc5d1c0dfb15563c51a8f8e597ee2ae67bf7b Merge pull request #4172 from RevKeen/claude/rev-8228-step4-creator-audit
  • ca5e07e27169aa4eb6a66366c694b477f5172d0a Merge pull request #4173 from RevKeen/claude/rev-7246-storefront-path-routing
  • 8f2735a56fe8ec723a9285fa2d6d4e0001c1202b Merge pull request #4174 from RevKeen/claude/rev-8453-definer-function-grants
  • e66bb473305a8db1d793f92647fc3b6a1b2f3ec6 Merge pull request #4175 from RevKeen/feat/rev-8165-dd-gaps
  • 5f4e81c93c995b8c507fed1b2f96c7e1bd60f98b Merge pull request #4176 from RevKeen/chore/test-lane-map-refresh
  • c69d9a9ae69823dbb37faa6b626898e7e45f6f48 Merge pull request #4177 from RevKeen/claude/rev-8261-laneD
  • 58e67e48b10757e6dcc23cb98b9ee3e670da853d Merge pull request #4178 from RevKeen/claude/rev-8241-framer-plugin-editor
  • a7ee925fce68fad0cc2f855dacddd930bb49d5a8 Merge pull request #4179 from RevKeen/claude/rev-8320-fingerprint-oid-collision
  • c5236cf3e01071e8af22cd1925785f1a1fbe5615 Merge pull request #4180 from RevKeen/chore/test-schema-refresh
  • 1d4631fe2418d9e5bb11c33509efcc6ed3066c1f Merge pull request #4181 from RevKeen/claude/rev-8397-laneD
  • 52bcba801ca38ae7bc26b25fc57836839332a668 Merge pull request #4182 from RevKeen/claude/harness-migrations-as-revkeen-owner
  • db5197968467e6f93fcc6dc59d745bfe8009452e Merge pull request #4183 from RevKeen/claude/rev-8385-withdraw-pgboss
  • 6fc05973800fa9f594505d84c51c16d0b3ef0c21 Merge pull request #4184 from RevKeen/claude/rev-8383-notification-sqs
  • a2dd1d46d252beb39f594d2fe25fa3edef218a3b Merge pull request #4186 from RevKeen/claude/rev-8241-plugin-product-ids
  • 4306c89d6e4d0a565619e97352771a8647ff17a1 Merge pull request #4188 from RevKeen/dependabot/github_actions/actions/download-artifact-8
  • 3f56449bbb08ea62c6799a43b5e017b5f88c6a31 Merge pull request #4191 from RevKeen/claude/rev-8401-changelog-completeness
  • c7474d64b6bcdffc609aab4094c4149fffdc5d96 Merge pull request #4192 from RevKeen/claude/rev-7246-storefront-single-project-deploy
  • 58c21e9410652b32ede15df42f4ef90052c0e1ac Merge pull request #4193 from RevKeen/claude/rev-8453-restore-applied-name
  • 90cc7a0edcce099461a93b8bb6ffbfc9a175d9ed Merge pull request #4194 from RevKeen/promote/development-to-staging-0928b
  • 8650360c18a64081e61505f974261f84b2fe501c Merge pull request #4195 from RevKeen/promote/staging-to-main-0928b
  • 6e362daddf66d3cc164b3a938e4ae36f49c458cf Merge pull request #4196 from RevKeen/chore/test-lane-map-refresh
  • a53ea1eba44e82dd0424c0a4866b28e7d7c6ea7a Merge pull request #4197 from RevKeen/claude/rev-8468-break-glass-wiki
  • 22dcd925e67527656f2471d25608e614d0f4c4ab Merge pull request #4198 from RevKeen/claude/rev-8383-staging-notification-service
  • f2b25261fb891d77841efb1c461991a08bfeffa0 Merge pull request #4199 from RevKeen/claude/rev-8464-drift-auth4-off-master
  • df4ef8b53eb703630c7ff3f374ce64460ed65d6b Merge pull request #4200 from RevKeen/chore/ci-cost-blacksmith
  • 49406772c5be7d4f219e9c815e218bac5d2fae3a Merge pull request #4201 from RevKeen/claude/rev-8464-drift-auth4-off-master
  • 03fbe786205b826168754e370fdbe7048a4b09a5 Merge pull request #4203 from RevKeen/claude/rev-8461-display-names
  • 20dfd123ee84b11ae75d50bccc51290fd12e6284 Merge pull request #4204 from RevKeen/claude/rev-8224-8342-dd-eligibility
  • 953ed91b84f6d4fe0b2dffc00d88ea63c7f64601 Merge pull request #4205 from RevKeen/chore/test-schema-refresh
  • a2a4ef22664068a09b549e495b7280ce8466abef Merge pull request #4206 from RevKeen/claude/rev-7592-calendar-queue
  • 7223bc446c8661b36d84f83ae9b6366419121573 Merge pull request #4207 from RevKeen/fix/rev-8437-dd-reuse-payer-proof
  • 6e64df21446e98cbfab7ce67efb1cc7634fe7084 Merge pull request #4208 from RevKeen/claude/rev-7592-inbox-fixes
  • 5ff8ef6791c3c62ad0452e392d066c2750987e96 Merge pull request #4209 from RevKeen/claude/rev-8454-app-install-cart-key-gate
  • 1467b914556187964ef1c38c117907a489cb3ca9 Merge pull request #4210 from RevKeen/claude/boat-one-sandbox-per-agent
  • da9106c76b3b40611da5e7167fb885eb04b21681 Merge pull request #4211 from RevKeen/promote/development-to-staging-0928c
  • 99e57fd44e55dba07694df9e2d23b9c1d7fd4649 Merge pull request #4212 from RevKeen/claude/rev-8064-deploy-role-tag
  • 6ad4efaebfafe5a32a7410fad6f81495c8ad6859 Merge pull request #4213 from RevKeen/claude/fix-vaulted-card-test-cold-import
  • 99b4e0899c6c92b49c6a9fadf8961554d5019130 Merge pull request #4214 from RevKeen/promote/staging-to-main-0928c
  • 3a3e5f4be7ae41c6175a00c3ce96ee7619e82e59 Merge pull request #4215 from RevKeen/claude/rev-8224-8342-dd-eligibility
  • fe1b3bf36174397b5ac9e571ffe420aec2a96152 Merge pull request #4216 from RevKeen/claude/rev-8228-step5-reland
  • 454ada39f9ffb9b4e84c7e3427f642bec2fae58b Merge pull request #4217 from RevKeen/fix/rev-8438-dd-mandate-display
  • 91184e546baf00489cbb7cec0eb0cbc34677d4b3 Merge pull request #4218 from RevKeen/promote/development-to-staging-0928a
  • 999d5aadb62edee336c367cac0f3acb6e0d5fd64 Merge pull request #4219 from RevKeen/claude/rev-8224-dd-eligibility
  • ef661bcbd8b4fc5934a8952ede96755b4a6e69bb Merge pull request #4220 from RevKeen/fix/rev-8475-invoice-dd-mandate
  • 6dd9de9afcb068828779a9430ffd821da1a72511 Merge pull request #4221 from RevKeen/claude/rev-8464-auth4-probe
  • 211b45f9fb8f598616ab64b0e0ff90a1a17756bf Merge pull request #4222 from RevKeen/chore/test-lane-map-refresh
  • ef9f17681d576e3d971551e365557d621090541e Merge pull request #4223 from RevKeen/promote/staging-to-main-0928a
  • 8a6a4ee8d87fa8c530c3a5f1facbf26cf3c5d7ec Merge pull request #4224 from RevKeen/claude/rev-8223-mandate-capability
  • 88841bf5bc971b8cbe4872bfac4eaadb266221bb Merge pull request #4225 from RevKeen/claude/rev-8064-production-notification-service
  • 7c0fab24fd175324cb7559b0a64c9e83a22b17ab Merge pull request #4226 from RevKeen/claude/rev-7616-8477-dates-mywork
  • 0dd2217ba07c73a9ac6d38305717fc9e1e3aec85 Merge pull request #4227 from RevKeen/chore/test-lane-map-refresh
  • 69fa21e7143f0a647b7853f28f96e59c2f7182d0 Merge pull request #4228 from RevKeen/promote/development-to-staging-0928d
  • cccef4d281494e7ce4cb656ea87ccaca55c64982 Merge pull request #4229 from RevKeen/fix/rev-8469-bind-no-overwrite
  • 8ea869b25b37f221dc100bf9dc0a038276c4aaee Merge pull request #4230 from RevKeen/dependabot/npm_and_yarn/nango-integrations/fast-uri-3.1.8
  • 2bb4ad8b89ca412723ea90f86a0947a6267d79b7 Merge pull request #4231 from RevKeen/claude/rev-8223-followup-tests
  • d850579e451e89371ce99b56026ecdcf13c87890 Merge pull request #4232 from RevKeen/promote/staging-to-main-0928d
  • 852c78748080f521257a08e665738351a9c3b769 Merge pull request #4233 from RevKeen/claude/fix-engine-api-work-date-noexternal
  • 61bbde23db8d9c26dac311ad8db79fd5d44ed196 Merge pull request #4234 from RevKeen/claude/rev-8224-dd-eligibility
  • 8c4274796cf4e94491cac27989fe72219b0a5d9f Merge pull request #4235 from RevKeen/claude/rev-7243-storefront-launch
  • 63b9d945553fa34c753e04824ec88f350a38eeaf Merge pull request #4236 from RevKeen/claude/rev-7616-8477-followup
  • 7deee715ec0876b0aef7f1f96e998be6a275afd3 Merge pull request #4237 from RevKeen/claude/rev-8224-gated-fixtures
  • ce9464e8d8bbec361dbf4964cae5f2fe789c2a5a Merge pull request #4238 from RevKeen/claude/rev-8464-drop-master-read
  • 1fe2f54508074bbde3a6aa60fd85ec4c4eea1cb7 Merge pull request #4239 from RevKeen/promote/development-to-staging-0928e
  • dc05211784576727b4f63d6bda9533eff76f2e07 Merge pull request #4240 from RevKeen/claude/rev-8472-impersonation-deny
  • e13329558a25cfc4dd99efb5ad35188e1001ae49 Merge pull request #4241 from RevKeen/chore/test-lane-map-refresh
  • b3f8a6aea4f690e9839bbf7e746691a85b6024dd Merge pull request #4242 from RevKeen/dependabot/npm_and_yarn/undici-7.29.1
  • 56c1a4b37617f91e39affc0ad31c3c3fd82e3af0 Merge pull request #4243 from RevKeen/dependabot/npm_and_yarn/nodemailer-10.0.2
  • c141bace7e58c4091fcfefd7a67bc255f8567f35 Merge pull request #4244 from RevKeen/promote/staging-to-main-0928e
  • cd6623b402436d86c9ddf7858a8e392e8221c35e Merge pull request #4245 from RevKeen/claude/remove-rev-6615-oauth-bridge-spike
  • a1cfef0ea1e64dde31db530983d1fa7f12f5db9a Merge pull request #4246 from RevKeen/claude/rev-8408-public-surface-regen
  • 2bf60b1b2192179fddb576a1acdf03728a0c7fff Merge pull request #4247 from RevKeen/claude/fix-dev-after-4235
  • d41551c81675eab75ea586a55a5ec19a2c708b8e Merge pull request #4248 from RevKeen/claude/rev-7243-cerbos-repin-898e11b8
  • fdda6d514d2306f482d7bb8c966b126045468b0e Merge pull request #4249 from RevKeen/claude/rev-8383-internal-alb-notification
  • f42da6c202135815f962e6f45b90a2ced39007bb Merge pull request #4250 from RevKeen/claude/fix-catalog-coverage-rev8319-probe
  • e9ffd586270e433b7f75091048890e6d586133df Merge pull request #4251 from RevKeen/chore/test-lane-map-refresh
  • 7595e07a5f5174d75d83de4d30ebe3abf3ed0266 Merge pull request #4252 from RevKeen/promote/development-to-staging-0929a
  • edf2bf5a3626841388813d9a49ec100838b604fa Merge pull request #4253 from RevKeen/claude/sentry-retired-issue-alert-api
  • 2e8523af85f5f0cea0a805cba257aa184bbee4cc Merge pull request #4254 from RevKeen/claude/rev-8480-ops-key-revoke
  • 0a7cf59f4defc6a7606a49a1b76d81f0ab133bee Merge pull request #4255 from RevKeen/promote/staging-to-main-0929a
  • b5c2ba783b28758d0d3afdee19c18e4d424e018c Merge pull request #4256 from RevKeen/claude/rev-8319-applier-probe-no-leak
  • 3947003755730d0f612570f8b7d22c977878a911 Merge pull request #4257 from RevKeen/claude/rev-8494-checkout-email-forget
  • ff611f2b5e10f0f5437a7003a802134d7d3480a2 Merge pull request #4258 from RevKeen/claude/rev-8481-close-api-key-routes
  • dd809223e951ff0db2a9e178dd71cc69d591fee8 Merge pull request #4259 from RevKeen/claude/cerbos-repin-f1f2cbe5
  • 3f5ce0339944aa041433d39e9aec292284810dab Merge pull request #4260 from RevKeen/claude/rev-8342-part2
  • ea2d0bdc53edc29d5f0933517461e23826f65100 Merge pull request #4262 from RevKeen/promote/development-to-staging-0929b
  • ac82deb400462cbedfcc3baace36a671fb99aa64 Merge pull request #4263 from RevKeen/claude/dd-mandate-activation-timestamp-precision
  • fda3ffd63329a022904090a4627831251dddbeb7 Merge pull request #4264 from RevKeen/promote/staging-to-main-0929b
  • 87e2b267dd74999b0c59bb1096355fcff385d9a6 Merge pull request #4265 from RevKeen/claude/rev-8494-checkout-email-forget
  • 035345ada3af82802f091098533d4691ecb9c48f Merge pull request #4266 from RevKeen/promote/development-to-staging-0929c
  • e73c4091a1dc370a3915e054318f735fe41640b8 Merge pull request #4267 from RevKeen/promote/staging-to-main-0929c
  • 23a1491cb5de8bd889f16b235ee228f0dab3bbb7 Merge pull request #4268 from RevKeen/promote/development-to-staging-0929d
  • 367edf3438153a55f9bd09da19b81c201e34fd57 Merge pull request #4269 from RevKeen/claude/rev-8515-cerbos-pin-drift
  • eb5bffd1c7e4964cac6d6edf35d0b4401d70c8a9 Merge pull request #4270 from RevKeen/promote/staging-to-main-0929d
  • 01abd9b5aaf575304e55848eb2c63c309d1b0e12 Merge pull request #4271 from RevKeen/claude/rev-7597-bulk-email-threads
  • 8b36897af2f7084156683bf747d1f3fc182682bc Merge pull request #4272 from RevKeen/claude/rev-8382-storefront-wiki-correction
  • a8380ee82c36b7c27779b148cb788f085a2d8ca6 Merge pull request #4273 from RevKeen/claude/rev-8499-apikey-runtime-rls
  • e1443e56a78f58c643e2431c25712b9fe967ccfe Merge pull request #4274 from RevKeen/claude/rev-8498-ops-seam-key-identity
  • ec38bc938713104e8f048dd4c70a796fe1d1758c Merge pull request #4275 from RevKeen/claude/rev-8455-audit-before-mint
  • 946c9dea95cfb20647cae9ffadb5d217cf668109 Merge pull request #4276 from RevKeen/claude/rev-8374-step2-system-client
  • c7ec75024316565ed42ed46a11c5a6d2b79cbd12 Merge pull request #4277 from RevKeen/claude/rev-8371-permissive-catalogue-dlq
  • bb9dd1e7e4e129e5b83faa34aae2d6363a8ebc05 Merge pull request #4278 from RevKeen/claude/rev-8374-step1-drop-policies
  • c9f169f99617ff001e8e8aff1cad12c91ffd01df Merge pull request #4279 from RevKeen/chore/test-schema-refresh
  • 33337484689f90f25155779a395cb2bafc4df55c Merge pull request #4281 from RevKeen/promote/development-to-staging-0929e
  • 1775b486e5358aeafe513c4b2e2b527c6be29d18 Merge pull request #4282 from RevKeen/claude/rev-8283-metabase-apply
  • 999b4bb4abedfe0dd056f44900e64a201c18624e Merge pull request #4283 from RevKeen/promote/staging-to-main-0929e
  • c92d62e2cf6ac01616b65a4859ae1cb92a359c61 Merge pull request #4284 from RevKeen/claude/rev-8476-8501-owner-key-notice
  • 7fd19e368d1460e47fc7081b2bff322672b36c99 Merge pull request #4285 from RevKeen/claude/rev-8515-drift-test-allows-declared-lag
  • 70f6706983b3a4c59aeb66e10a0b96e924c40369 Merge pull request #4286 from RevKeen/chore/test-lane-map-refresh
  • db4de785cfec01a5ddb42c6f343d9da417bba9d9 Merge pull request #4287 from RevKeen/claude/rev-8383-remaining-channels
  • 7cd7ec0892feb7b45282ca611789bb31f368ebb6 Merge pull request #4288 from RevKeen/claude/rev-8402-8473-catalogue-app-install
  • 357ae08be219327835be9024b8a234ef7859d3b9 Merge pull request #4289 from RevKeen/claude/rev-8516-prereq-system-client
  • 21facbd57241e623e93ff920a272f7f5b30b5297 Merge pull request #4290 from RevKeen/promote/development-to-staging-0929f
  • b571a243efd18c161ddcc847269300b66649f27f Merge pull request #4291 from RevKeen/claude/fix-rev8516-integration-system-client
  • a03d01960639841e26dfb51db495043e0d6abbfe Merge pull request #4292 from RevKeen/claude/rev-8516-ubb-test-init
  • 86788740b1936bd58517fe404b0eed01a2b8a619 Merge pull request #4293 from RevKeen/claude/system-db-ratchet-rebaseline-8516
  • c174356599b82da8e40ac636c6517ac1f7ecb187 Merge pull request #4294 from RevKeen/claude/rev-8516-platform-fee-test-init
  • 1ed44276a6d9d7f37cca4a186adf237a5007d327 Merge pull request #4295 from RevKeen/claude/fix-dup-platform-fee-init
  • 08a21282e7dd57cc99e52a76930f61887c28a603 Merge pull request #4296 from RevKeen/promote/development-to-staging-0929g
  • 26a081211dc69d9a8a36745fae453f0b2e12ce14 Merge pull request #4298 from RevKeen/promote/staging-to-main-0929f
  • 4437493072bba99d23c4648dc925b09c2a0eb6fe Merge pull request #4299 from RevKeen/claude/rev-8473-cerbos-repin
  • 41aaf5b8219d9535bed540487e157be3b3e94f3a Merge pull request #4300 from RevKeen/promote/development-to-staging-0929h
  • aab38e32d7b8d6e477b14be4de737e20e75e4798 Merge pull request #4301 from RevKeen/claude/blacksmith-docker-layer-cache
  • 367f7e8c459576e57aa30f7767a5613d5c522c2b Merge pull request #4302 from RevKeen/promote/staging-to-main-0929h
  • 6c30f7a79a62dde5a83dd3ad24b40bd56a80f1e5 Merge pull request #4303 from RevKeen/claude/rev-8374-step3-idempotency-plain
  • a9482c2b4d4fe216ae48e4da11a913dc2ee4c637 Merge pull request #4304 from RevKeen/claude/rev-8516-merchants-lookup-policy
  • 1716b77006a02ab88f25782194e91dd49c87ee90 Merge pull request #4305 from RevKeen/claude/rev-8543-shipped-email
  • f6a588d64b81e117a1f7a10c0d50ac679c8639ba Merge pull request #4306 from RevKeen/chore/test-schema-refresh
  • 62dbc398663305ce29d904d450e5a04184896c18 Merge pull request #4307 from RevKeen/claude/rev-8542-delivery-address
  • b3bc2c95177d5407fc8f972450b567efcbce5866 Merge pull request #4309 from RevKeen/claude/system-db-ratchet-rev8543
  • 96ea6200196dabffb1333f649db8872eb352c1da Merge pull request #4310 from RevKeen/claude/migration-collision-baseline-20260929130000
  • e718d4b8a215352edc3f133139be3988ccd342a8 Merge pull request #4311 from RevKeen/claude/rev-8542-cart-delivery-address
  • c90e3c47fc65bc58bc421d4d415a59a5c3c2f4dc Merge pull request #4312 from RevKeen/claude/fix-outbound-messages-date
  • e7de5a417926dfc70da2ffcbe48261a3d8ad9c88 Merge pull request #4313 from RevKeen/claude/checkout-identity-layout
  • e8d08c92d95f5fe5f7bed23f5491975b66ab9346 Merge pull request #4314 from RevKeen/promote/development-to-staging-0929i
  • 5e7eac348c114736f6be1f355e2f706a83c09e79 Merge pull request #4315 from RevKeen/claude/fix-whatsapp-sender-validation
  • 5e659c92a3911e9d380039087667bd9757000a9f Merge pull request #4316 from RevKeen/claude/rev-8543-one-email-call
  • a7a7ebf4a1d80a13ed5b315ac6522e52c9de0603 Merge pull request #4317 from RevKeen/claude/checkout-bundle-size
  • 91d8aa6f20a3af08b8a4dce6dd05f695dbb8f6b6 Merge pull request #4318 from RevKeen/claude/sms-status-untracked-200
  • a62d6425e08ff1fdb6864910130762ad422b477f Merge pull request #4319 from RevKeen/promote/staging-to-main-0929i
  • c8d8ee4cd9749a3b099372f4d348cc20900868a5 Merge pull request #4320 from RevKeen/promote/development-to-staging-0929i
  • 7d69dae13e4bb50f6a6e927b26e5a6785a7aa3e1 Merge pull request #4321 from RevKeen/claude/checkout-streaming-hints
  • b2d946c8a6a32865de6ef6db0f8e47393c0d0462 Merge pull request #4322 from RevKeen/promote/staging-to-main-0929j
  • 5c65d9cbaed87e15b6bb064a440b3d1fb53ab04a Merge pull request #4323 from RevKeen/claude/rev-8503-storefront-scope
  • 2b7e357de8ed7f07420c911a60e756e10f1f254c Merge pull request #4324 from RevKeen/claude/rev-8165-dd-card-parity
  • c948de2189a06312f94fee950f76d9ce12c4b0c9 Merge pull request #4325 from RevKeen/claude/rev-8554-nullable-customer-fields
  • 41cae4126f55662ac33b867c48021b5edd5fc2c5 Merge pull request #4326 from RevKeen/claude/rev-8548-cart-line-charge
  • d1b546c14c1e85a81f08d2bdde1b09e966937909 Merge pull request #4327 from RevKeen/claude/rev-8503-puck-scope
  • dfe899cda3347a0c4f73bdd35d09c91eaf5a2d6e Merge pull request #4328 from RevKeen/claude/fix-permit-exit-enobufs
  • 40ac97d8f21d5a3b223d5fb4f0f59f33674ff97a Merge pull request #4329 from RevKeen/claude/fix-codefirst-dd-last-checked-comment
  • 95cd7548f307fe89e1a5e2155e45615d0da7d75a Merge pull request #4330 from RevKeen/claude/rev-8559-elements
  • 25a90471f4170a477dae15af59d970af7917ca3d Merge pull request #4331 from RevKeen/claude/invoice-v6-stream-pay-column
  • 2e572a4e47cb69486e9e0a5e51dbd9ca6fac6157 Merge pull request #4332 from RevKeen/claude/rev8525-plain-label-webhook
  • fef8ea8301dc725c4cfa18c7d53d9d4c0c08ddfd Merge pull request #4333 from RevKeen/claude/collect-js-preload
  • e489f93551519ac7c46972d4a816f57ad8c2cbd8 Merge pull request #4334 from RevKeen/claude/rev8519-event-subscriptions-write
  • f5ec21766ea42a97894aa0daf04529cf40e17cc6 Merge pull request #4335 from RevKeen/claude/rev8518-identity-rls
  • f90b55d1a7753bcfeaab03eb87568b27bd88dac2 Merge pull request #4336 from RevKeen/claude/rev8518-identity-rls-migration
  • f235aa12fa862f53861c79edf37ef7789a380dd3 Merge pull request #4337 from RevKeen/claude/rev-8559-marketing
  • f5394146be0ad86bbb2859ddea847747c294d9e7 Merge pull request #4338 from RevKeen/claude/rev7628-member-rls
  • e6f37b744b3f7837527d43d6487f95d535ae0ca3 Merge pull request #4339 from RevKeen/chore/test-lane-map-refresh
  • fa4d2cde5afec9c4ffc792a4643cbadc2fae5a9b Merge pull request #4341 from RevKeen/claude/rev-8560-storefront-key
  • 839581cfddb33e3a3c1a6168c872f3090ebecbf8 Merge pull request #4342 from RevKeen/chore/test-lane-map-refresh
  • 9865034ce51a9d3308669a2863db59294e9af5af Merge pull request #4343 from RevKeen/chore/test-schema-refresh
  • 78c4b9bc3ed7013c8f819d778786e6ab791b26a2 Merge pull request #4344 from RevKeen/claude/payer-page-warmup-alerts
  • 489a3a859cdf518abe2548a6c26a487a8c2ec3b3 Merge pull request #4345 from RevKeen/claude/payer-page-warmup-cron
  • db0af36392fe75cbe3976b4eb61eb1dcfdf0bcbc Merge pull request #4346 from RevKeen/claude/rev-8383-notification-engine-internal-alb
  • 9347911b86f939eea8afac7129dc3fb077acb00f Merge pull request #4347 from RevKeen/chore/test-lane-map-refresh
  • 2217388dc11c3cb414e4489ba286bc0036d04df4 Merge pull request #4348 from RevKeen/promote/development-to-staging-0929j
  • eb9da14a0f4ab4e672178edbb0158c5ed8d6172e Merge pull request #4349 from RevKeen/claude/rev-8560-backoffice-backfill
  • a7a2b378d59122fd489177b77cbe3c5866f6ae25 Merge pull request #4350 from RevKeen/claude/rev-8567-embed-slug-only-log
  • 7f64f6495756eff88fb35c0ceab2797c6e4907c1 Merge pull request #4351 from RevKeen/claude/warmup-ci-fix
  • 158bbb2c574ebb967e4e7fdd1761275b1f963c2e Merge pull request #4354 from RevKeen/claude/system-db-ratchet-4341-backfill
  • aad4ebf5c34ffca3fd1d1dd3f0f11b012973fdd6 Merge pull request #4355 from RevKeen/claude/ratchet-8560-backfill
  • a5b9137af79982e89744e23bed20f5f97ad00cb7 Merge pull request #4356 from RevKeen/claude/rev-8507-collections
  • 62184b1283d5968b265b68850904f925f331e9df Merge pull request #4357 from RevKeen/claude/rev-8560-mint-inventory
  • a342dd8c5e1c888e321e2ed0a6adc71355143a64 Merge pull request #4362 from RevKeen/claude/gitleaksignore-rev8286-fixture-b
  • 93d37d8555f06d143fdf25dd25889555754abeeb Merge pull request #4363 from RevKeen/claude/rev-8561-land-on-development
  • bc793841638d66a1e2cf7a7c08797d941a4c41d4 Merge pull request #4365 from RevKeen/claude/rev-8559-marketing-followup
  • 090df714322507a6a3ffa44eb790594c07725777 Merge pull request #4366 from RevKeen/chore/test-lane-map-refresh
  • 4fa721b4c079bf3b0418b45839a41d0f54e631be Merge pull request #4367 from RevKeen/chore/test-schema-refresh
  • df17d31ce133c7f3445d657ef70534bba06b9392 Merge pull request #4368 from RevKeen/claude/rev-8559-marketing-d3
  • 8050493fd8677ab243f0ba6c9770ab37b0a70159 Merge pull request #4369 from RevKeen/promote/development-to-staging-0930
  • fad55b05bdee0d48780d325655b6b7d31a3c169e Merge pull request #4370 from RevKeen/promote/staging-to-main-0930a
  • decb1d04ed9a1aaae281c9993687e1ffc4bea7b3 Merge pull request #4371 from RevKeen/claude/rev-8559-framer
  • 9d3c18f9920ec878a57f4fbb33bf1f692ea8d7ee Merge pull request #4372 from RevKeen/claude/rev-8559-elements-r3
  • dbf957f1dd21771d9f32d1d2f0eac636e29a0330 Merge pull request #4373 from RevKeen/claude/rev-8539-outbox-dedupe
  • 2287d4951ccb40a8b390da83aba5b8cc0c846050 Merge pull request #4374 from RevKeen/claude/deploy-engine-api-concurrency
  • 143ee6f4eccbbb1c7af9f796a37452975d5c2e79 Merge pull request #4375 from RevKeen/claude/cerbos-deny-coverage-kind-count
  • 7c81e54d34811b253ae0d720c76c0ad38cde8a14 Merge pull request #4376 from RevKeen/claude/rev-8507-collections-ui
  • 42569367a0233780de7682e6178430d1ac86dd82 Merge pull request #4377 from RevKeen/claude/rev-8507-collections-v2
  • feb54f18740afc7cb4311ca336e05ed9b918f672 Merge pull request #4378 from RevKeen/promote/development-to-staging-0930b
  • f7a686bc8678ba78084680e4859c40c73fe4f088 Merge pull request #4379 from RevKeen/claude/rev-8548-fulfilment-line-pairing
  • 86989a64cc4cb1684452c15e5e3b7b56b372b886 Merge pull request #4380 from RevKeen/claude/rev-8507-deny-coverage-count
  • c072c2a55a1b15f17b15bdbe26433864c7a2accd Merge pull request #4381 from RevKeen/promote/development-to-staging-0930c
  • b0a9e199698f2a51d9ca3a404fe51ad42b17e340 Merge pull request #4382 from RevKeen/claude/rev-8559-dashboard-builders
  • 61142653f88848c21ac39eeff5d485a2ff1b8d37 Merge pull request #4383 from RevKeen/chore/test-lane-map-refresh
  • 26d1e2ae45a2c317b6d2f95be09892c37f10301a Merge pull request #4384 from RevKeen/chore/test-lane-map-refresh
  • 9d2961ff4b810fd0dba833d3c4ab8b5c75f69a96 Merge pull request #4385 from RevKeen/claude/arm-payer-warmup-probe-stopped
  • 002e159e6e46758d418fa6733c63ddbd151a51d9 Merge pull request #4387 from RevKeen/claude/rev-8539-fake-tx-onconflict
  • d3b280e32dceceae3834e6ae83d1a4fab0788e4a Merge pull request #4388 from RevKeen/claude/fix-development-contract-artifacts
  • 011e4efd993a2df15088dac36c3438a2bd29ad98 Merge pull request #4390 from RevKeen/promote/development-to-staging-0930d
  • 3918a9d282c49a40b632db32a862f70bb424734c Merge pull request #4391 from RevKeen/staging
  • 728245f2f98e1d566c4d1f5ba969433544f4e5f2 Merge pull request #4392 from RevKeen/claude/cerbos-repin-automation-and-deps
  • 5ac4ba7e20917f8e5db37f5a857fc9266102b4ac Merge pull request #4393 from RevKeen/promote/development-to-staging-0930e
  • 97c3bc2108f95528e28bb739626f290ab7ad46c3 Merge pull request #4394 from RevKeen/staging
  • c3b4642ebb1bc2c11e421595ae4d2fab085fcd95 Merge pull request #4395 from RevKeen/claude/ghcr-rebuild-on-lockfile-and-resolver-order
  • eb1dfb5b1552367223dbdcb6b155e625eb022fcf Merge pull request #4396 from RevKeen/promote/development-to-staging-0930f
  • 38ae2922a812564944511c4c048146e354e5fb7b Merge pull request #4397 from RevKeen/staging
  • b0cba847a448f2682464f404b8ab7d40f2c0f961 Merge remote-tracking branch 'origin/development' into HEAD
  • 6b5c65f77807294d8171f8d8b9b7e446323a7351 Merge remote-tracking branch 'origin/development' into HEAD
  • 71b59d265f7fb8964d31514bde02dddb1b287055 Merge remote-tracking branch 'origin/development' into HEAD
  • 01da4b83d3c7e8ce6eb569481c6ea0e5cb0f7622 Merge remote-tracking branch 'origin/development' into claude/fix-rev8516-integration-system-client
  • 1bd9958cd3b61224ddc29d760155a72d26b9ee74 Merge remote-tracking branch 'origin/development' into claude/harness-migrations-as-revkeen-owner
  • 42ac2da8c5a74a966582051be0bd4c3a5655fe35 Merge remote-tracking branch 'origin/development' into claude/rev-8383-internal-alb-notification
  • 0bd48bfe08de65d938eff7d0593eb66c6e77b9df Merge remote-tracking branch 'origin/development' into claude/rev-8383-remaining-channels
  • 1b1e8e471bb07a6620beea1a4fd5a319ed82ad40 Merge remote-tracking branch 'origin/development' into claude/rev-8561-land-on-development
  • 3ad12e4f6da4889406639c46b0bce05eed4ef990 Merge remote-tracking branch 'origin/development' into fix-4175-tmp
  • b7ca868aa63e1c2ba5c58ddcf72f54f2ff111145 Merge remote-tracking branch 'origin/development' into fix-4175-tmp
  • 278e1160d8c90e1901953cda2f0c2a4d19e45d19 Merge remote-tracking branch 'origin/development' into fix4287
  • 9d50cf69607aa866efb5b5719da1f86864826121 Merge remote-tracking branch 'origin/development' into local/rev-8559-framer
  • e016d94e2b4ee89433e68be980b784814acc095b Merge remote-tracking branch 'origin/development' into promote/development-to-staging-0929j
  • 98b2287bc331b076f24f284fc68dd9971b8ebe9b Merge remote-tracking branch 'origin/main' into promote/staging-to-main-0930a
  • 2a961ec2c103e0513be28f36a099f1860c6e9815 Merge remote-tracking branch 'origin/staging' into promote/staging-to-main-0930a
  • dc93327913dabab6ac69d2e4f1f31e87f5fa7fd2 Move REV-8385 (withdraw pg-boss) to its own PR
  • 5f2b2c84b9a50e64cc20e58f2e7e90253c65ac85 REV-7592: Calendar, Team Queue and My Work fixes
  • 4ad2f5f23c486852cb274721ffa3b728b7f4c627 REV-7592: pin the Team Queue table, title link and Calendar wiring with tests
  • 87b17375ce57d16583afc27507fde779d4536e5a REV-7597: bulk assign, snooze, close and waiting on email threads
  • d45495f2798e152474b194866e4fe28c31a6fbe1 REV-7609: leave the merchant data-source section filter at its five values
  • 9320ed7a6a56cb28cf45da29d9c67dfca399fd57 REV-7614: assemble the Day title so ICU comma rules cannot change it
  • 559ec11762c6fc114028021be7c5dbe6c34f32a6 REV-7616, REV-8477: one date format in Conversations; merchant My Work sections
  • b14ea48c1db551c2522735f7e3b967d69f8ccd80 REV-7620: keep each My tasks section literal in the query call
  • 6d38c679a350bbeb94c54c8644aced30dbd7c1a3 REV-8064/8066/8389: Fargate SQS consumer, DB-free notification-service
  • 591009c389c076087d8bb492e933a92edda9b41e REV-8074: attempts begin/result routes and evidence guards
  • 15950e1b5ed97522023ced4eca403abc72398b30 REV-8074: notification_send_attempts table and History dispatch key
  • bf5f096840b3c998f76933e1ff83c8f3821f97fa REV-8165: document which invoices a Direct Debit collection can be taken against
  • 26086a8dc4b1bba81118a9cc8736105f272778da REV-8165: draft-hold tests — clear the retry interval between Retry-now calls; drive the real sweep on a draft invoice
  • 0450534903d7a7fa4d9a1d76b014ea8e0ac8e551 REV-8165: hold a draft invoice in dunning instead of exiting (sweep and /dunning-retry)
  • a0dc226e5029817e642155103fb30704c2fe0074 REV-8165: one shared collectable-invoice predicate for card and DD (CAM addendum)
  • 214edae732b12879bb11d9f593cf32239ed6a94a REV-8165: regenerate contract artifacts for the mandates_schedule_collection description
  • 7405bc6b150c9026f550db572998bc6dbe913b70 REV-8165: the Bacs retry DB proof's stand-in invoices table carries collection_method
  • cd59e1cc3f1b71eb6ab0c52ffe0c4a6377857962 REV-8224: card-contract freeze assumes an approved Bacs authority; pin the not-approved case
  • 6045094e9209a55a7dbbca18de95b536adf1a17b REV-8224: gated test fixtures assume an approved Bacs authority
  • b41d231d7c0f11dff06afc6ec47f9e50fb9562a9 REV-8224: offer Direct Debit only when the merchant can collect it
  • 28478d780360985658e57a922ab1d5b4e818bad5 REV-8241: Intl renders JPY as JP¥ under en-GB
  • 80c99888322c567f46b32651fe074e3d1f222b44 REV-8241: RevKeen Framer plugin editor app (v1, Lane A) — WIP for devbox validation
  • c74097e174783dec0c853877ad375925c1cf6118 REV-8241: lockfile for the Framer plugin dev dependencies
  • 3285be536a5ecf6bdb96a23051b2248f377f6917 REV-8241: plugin creates payment links by product_ids; local-Engine dev path
  • 043a2f805875da35e9ebfbab30d79fc8d1d94687 REV-8241: run the plugin's vite scripts from framer-plugin/ (vite-plugin-framer copies framer.json relative to cwd)
  • 40fc2873a9f8dc8a1513f6e65d34d356f3991446 REV-8241: use @framer/plugin (framer-plugin is deprecated)
  • cf662191e2cbf81ef91f1edf3cf84e0bbb7305b4 REV-8267: collect the invoice's amount due on DD renewals (tax-inclusive)
  • 86590d0a7ce831618859ed063a170126f6ed1c41 REV-8268: collect usage invoices on the subscription's rail, and re-drive DD ones
  • 42c63719b712754315b4e2bb5b629935418ffd3a REV-8269: stop Direct Debit collection on an immediate cancel / pause or a void
  • f11602b091dacc7d2f59d90e1a085d779aeef948 REV-8270: end Direct Debit dunning on a renewal (past_due -> unpaid / canceled)
  • 2385f8e65b076650ab707f021c6ada3174d8d834 REV-8270: read the DD renewal window length under the runtime scope
  • 27496a945bb50e32e0e4b89e92965c0916c175e7 REV-8271: refuse Inbox "Retry now" on Direct Debit and show the next scheduled retry
  • a21afeede5e41d25583ee8d7f45d758de550efd1 REV-8272: never refund a Direct Debit payment through the card gateway
  • 9f47d67180a76e08ff545630fa3be93279577801 REV-8273: bill a plan change on the next renewal invoice, on card and Direct Debit
  • 9638444f5e11dec7fd4168d1335b665df686353c REV-8274: let a cart checkout pay by Direct Debit like a payment-link checkout
  • 2c3a650302f509c216c492a949d010fb847aab33 REV-8275: hide Direct Debit before the mandate for purchases confirm cannot plan; carry tiered quantity
  • ddc8eaf00a6c96977052e395a768a9c9440c7885 REV-8276: let a Direct Debit customer switch to card from the next renewal
  • 6bb6ae1e0d189ac3ee9feb03139b37312180f741 REV-8276: use the drizzle 1.0 query form in the portal DD-to-card switch
  • 327825dbe3ea8a59d9fca528666e008432b0b9a2 REV-8277: add the from-api Direct Debit page to the docs nav contract
  • 3fd3a1956543a972bf1f82850241c72442c2f85f REV-8277: create a Direct Debit subscription through v2 against an existing mandate
  • 45a11c4336edb0b9ef5597b4657e5756fefedcea REV-8277: update known-gap assertions after REV-8406
  • ba08df8d32e37f7074a94c538afe67849548dd05 REV-8285: apply L&Z collections by amount — partially_paid on shortfall, never revive void/uncollectible
  • aa580845bb48d09fae29b4a71681269b978614bf REV-8286: scope DD-to-card recovery conversion to merchant and bind invoice to checkout session
  • f44439bd9b7035509c54e890aed2b7b1db8993de REV-8287: require the payment/refund PDP decision on dashboard refund routes
  • 3edeb505302414ee86b2c4a9204cbea8977dc220 REV-8309: never charge or re-open a non-chargeable renewal invoice (card + DD parity)
  • 20278865611c50592899159066913f8239b8d9e8 REV-8319: the applier probe no longer commits a table other tests can see
  • 5cfae0fbda12ef5f4c3570a68d935514745712ed REV-8342: account status reads the platform subscription
  • 28ff175d3563f0b15c98dfa253766bcb75eb5733 REV-8342: comment mirrors and internal wiki describe the platform subscription
  • 48cfb45db6182d7684738ffeba2bc7584bacb07e REV-8342: onboarding queue reads the platform subscription, not subscription_started_at
  • b4d927a35cf28b90b2c96bb0917d07985f6b5183 REV-8342: ops loaders reuse their system handle for the platform-subscription fact
  • 05021c258d9631d999c738bd9260b9fad171de47 REV-8342: step model and onboarding full-state read the platform subscription
  • de0ab41496473105f1365ea4026695598a798861 REV-8342: subscription facts for the write gate, go-live blocker and billing periods (part 2)
  • 1f525af23cef7efab0e86079c342c87a9c925873 REV-8343: never void a Direct Debit payment through the card gateway
  • eaa04ec66521293f1f1452ea060fbca3138dea49 REV-8371: drop permissive runtime policies on DLQ and catalogue tables
  • 0e632cb9fca024493c45ce7955a1028f88391148 REV-8383: deliver WhatsApp, SMS and every email type over the SQS lane
  • d9f3998b90be2b7a58510b71cd8cf73b9321268b REV-8383: mirror the branch's schema changes in db-codefirst
  • 349b26d2c4d31a52cf8deecc212acd656cd40dbd REV-8383: shared wiring across the delivery slices
  • 8e0709ec9d268af00ed29bd43c9f0d4d7ad74098 REV-8385: withdraw pg-boss — roll back the pgboss schema and roles
  • 078992d43951df22cb17d1824c6ca7fae0d199ef REV-8385: withdraw pg-boss — roll back the pgboss schema and roles
  • a7bfc165315af2c058c47125c2cecb55913ee35d REV-8386: enforce signature verification on inbound provider webhooks
  • 50501ea8f9bc5fb95a4fbee6250ec32cda594a98 REV-8387/8388/8392: SQS producer, outbox relay and delivery docs
  • 2171b84316204ca871bb087c6533702466ccb598 REV-8402/REV-8473: record the payment-links scope lane; gate app install/uninstall
  • 764759b6b11fb8c8efcf4f7bc848981488aa6553 REV-8406: refuse a £0 renewal charge; renew a free plan with a paid £0 invoice
  • 23ceb7baa4ad27ed2f2862d40e2744035f22b72c REV-8415: re-drive DD first collections parked on advance notice against an existing mandate
  • b4c3ff5f4abc6e2d54e5b9358ecfa0db02897491 REV-8437: re-prove the payer at Direct Debit confirm; OTP limits across sessions
  • 784a5309c3342aa2dd25eba7e3366f757ad6e002 REV-8438: show the masked mandate before Direct Debit confirm; refuse a changed one
  • fba5099e5b476d078ef103ed7ae450f35a1ef59c REV-8464: AUTH4 provisioner logs in as revkeen_provisioner_iam, not the RDS master
  • 91326cb9f9ae4e06f82e655dea40a897a066ed46 REV-8464: accept the runner's schema_migrations grant in the fingerprint comparison
  • 28f8cc69b3750399a41e3c5b5f9cc379b09ce144 REV-8464: auth4 --probe checks the provisioner's database login and writes nothing
  • 0431d1959bb0a2606ccc71091cad75b9072f2f34 REV-8464: fix the provisioner test harness and the code-first round trip
  • 4d60a4de2de9037e2582717b583e3f0b59bb1ef1 REV-8464: nightly migration drift check reads the ledger without the RDS master
  • 8df7982749c915a0fb43b25727d75fa4b2830105 REV-8464: no GitHub OIDC role can read an RDS master secret any more
  • 0e6281273ee81a043d492aea9c951a10726b4f07 REV-8469: a checkout bind fills blanks on an existing customer, never overwrites
  • 2e93a9e270ff9b32ed0237a3599ef71cf5ea418a REV-8475: invoice-page Direct Debit confirm enforces the mandate the payer was shown
  • 4416290f5b5c88e6efdd01455e419127134e6f9e REV-8476/REV-8501: email owners on API key mint, rotate and staff revoke; declare 403/503
  • 65ceea2641554b207ba2ed6f84a1c39724134c77 REV-8476/REV-8501: regenerate contracts for the declared 403/503 bodies
  • 7e4d89bdeeb3764b0d1832538dc8ebaae3efe3d2 REV-8476: read API key owner-notice recipients under revkeen_runtime
  • ebec583dba699a56e654b38b1fa35284677814e5 REV-8515: fail the Cerbos pin check when a pin drifts from the source manifest
  • efad33a16125933aacefa8793dafaf178c88bd6c REV-8516 (prerequisite): DD mandate notifications and usage test-account lookup on the system client
  • 6349d2a8c130f8a4106bfa28293cdaa32523f2e1 REV-8516: inject the system client in the UBB money-loop integration test
  • 8677582372ab9314f19da51e31dfe4b73c806296 REV-8516: inject the system client in the platform-fee readiness test too
  • ab25784897aba742bbe3fc48c8afb4ad5d056d2c REV-8516: limit the merchants lookup policy to the app_service role itself
  • 6844340e6c56e981220b4dd10fdce22dfe81e696 REV-8518: drop revkeen_runtime USING (true) policies on the four identity tables
  • 138bfc57e10d77c45d22e439710f15ed5db860ef REV-8518: read auth_identities on the system connection in the cart key mint
  • 00eb4b30de62b8fa3cedf9f18068e12645b2a0c8 REV-8519: let revkeen_runtime write event_subscriptions for its own merchant
  • d874a5aceb3dad91098150779571cbd70851b867 REV-8528, REV-8532: dunning charges only the amount still owed and never overwrites paid amounts; the dunning exit moves behind a service-layer method
  • dae3ea1fba3668404f589d5ff9c46d92d3650a0c REV-8532: integration — type the exitDunningInTx mock's parameters so the dashboard typecheck compiles the test
  • 81347ffe95619945b429bef32116e65a1d5a1503 REV-8533, REV-8534: DD first collections search forward for a notice-compliant date; re-check under lock before submission; re-drive submit_guard with a cap and a parked alert
  • 70836de821d35b5078292e4b4ea62ac8fe2e8d6c REV-8534, REV-8536: tidy-ups — correct the parked-alert claim comment; pin dd_collection_awaiting_amount as inbox_work
  • f6e30b68e1f96dd1030ff84e2a52924fc75ac4b7 REV-8535: emit billing.invoice.paid only from the write that made the invoice paid
  • abf72e3736f89cce0c9512674c2e8625b1c38aac REV-8536, REV-8534: integration — renumber both migrations after everything on development
  • f02be8b206e95add22cf593c53ffb2cd1dc29443 REV-8536: integration — move the last_checked_at migration past the test baseline and add its code-first column
  • 0fbafba9e6192beba6afbe45c3a5b50a82d257ac REV-8536: re-drive L&Z collections waiting on an amount, with strict parsing, alerts and fair ordering
  • bb635732721cb6e75f35762935ce2c1671dbe0c3 REV-8539: dedupe the webhook outbox on (merchant, event type, key) — distinct keys per occurrence; replays return the existing row
  • 490b1f0bbaa5a286571cb95f6ecd7760b42703e0 REV-8548: pair fulfilment and checkout rows by cart line, not product
  • b26112d8126b48418652eed9cd147989e198c777 REV-8559 (stream A r3): buy-button element and manage-subscription link
  • 683fa473f917f286caa1d610928fce079c2bc82f REV-8559 (stream A) round 2: decisions B1-B5 and review criteria C1-C12
  • f48b996c5c38c83b643fe300a7d8fd9f8b5fa4ea REV-8559 (stream A): builder elements in @revkeen/react
  • 520967498ae3a092e8e7d7a3e1f358e7d1229bd3 REV-8559 (stream B): Framer modules share the element reader; add Live price, Pricing table and Thank-you modules
  • 2b4319dd673531e7546e04893bee39eb77e5ce37 REV-8559 (stream C): Dashboard Commerce > Builders
  • 44456a9a0b25d066ab8d9dcfa233290fe44b5d51 REV-8559 (stream D): /commerce/builders redesign, badge gate, AI-builder prompt pack drafts
  • 3218fb9278264bfda3b36051b06e49ba927f0183 REV-8559: Webflow spotlight uses the payment-link path; pricing prompt one-time only
  • bdcfe76e264f84367a54cafee17cf92d1bd571cc REV-8559: gate badges only on guide publication, not on pinned values
  • 74584b1f73b551216fc05b9d52f64c652597fb93 REV-8559: link the homepage Commerce tab to /commerce/builders
  • 1ac083b95348e6b623939391aed0333fe31b9a04 REV-8559: visible homepage builders section; restore the builders-page portal line
  • 4199016a91efa4e4759879035a4795d0285ee4de REV-8561: an empty REV-8548 lineId reads as absent, like every other optional field
  • 41f7608efca696b10eb050dcbdeaba73413abbae REV-8561: contract test — both fulfilment-context writers across the product/customer/discount matrix
  • 817e821880d0358b5c42b399cde5cbb2f6cf533d REV-8561: read null/empty as absent for every optional fulfilment-context field
  • 7ba0e03fdc973bc29b25d808d8c2740335c97f7b REV-8561: schema test — every absent-able field reads null/empty as absent; required fields still refused
  • ae8a0b1a337d5ebdc13da75932c273ef22b2a5e6 Re-pin Cerbos to bundle sha256:898e11b8 so Terraform Plan passes on development
  • 8ef611b04dec36b7d7a74e058f007d0f42dbd675 chore(authz): drop subscription:create from the enforcement baseline — REV-8277 enforces it
  • 443251008d74219ec01495e72691d6df385d5f9c chore(authz): raise engine-api system-db baseline 487 -> 488 for the #4341 storefront-key backfill
  • bb347aa2106afc829eda6b1761f46329c579694b chore(cerbos): declare the pin lag for the product_collection bundle (REV-8507)
  • 09410742689e2a796f85f6aec9ee4680d649752f chore(cerbos): declare the pin lag for the regenerated bundle (REV-8473)
  • 22e91a26c42d4fe93959152b2275c5ea0bf43718 chore(ci): lock in system-db ratchet improvement (repositories 15 -> 14)
  • ea50527f1329f52aa49d4c8a8137bf9c45a0122f chore(ci): lock in system-db ratchet improvement (repositories 15 -> 14)
  • f3999dbe3545381ec80f1cd3f79228efe9bd332c chore(cli): remove the revkeen init tombstone and doctor --cms flag (REV-8408)
  • 8d7b23a4c11f820f2e0ec2ffa2394f4902d1df0b chore(db): move REV-7628 migration to 20260929180000 to avoid collision with #4336
  • 25eba8a6336c62d2557fb4be95b7467da78d727b chore(migrations): baseline the 20260929130000 timestamp collision
  • 2ce008563e4089920385093d352c8980ac57d158 chore(ratchet): engine-api system-db baseline 487 -> 488 for the REV-8543 shipped email
  • b6a7882a55cc3bb397a831e35f43523bbe5ed687 chore(ratchet): engine-api system-db baseline 487 -> 488 for the REV-8560 backfill
  • 30aec50b087cb3df99c8de6bd3453b0eaeba79af chore(ratchet): lock in the lower system-db baseline after #4289
  • bda62156a5bbd8bd585bb1e86679cddf6012db34 chore(sdk-compat): regenerate the public surface manifest after the rebase
  • 04d609e8c59a0c0f97c673053541e770d2126ad4 chore(secrets): classify STOREFRONT_PLATFORM_* as public config (REV-7246)
  • 67f608b09428d4b38fbf08e56f33527c7eeecef2 chore(secrets): classify warm-up cron env names; reuse the single edge-secret read
  • 4059771351df18d1fb18e1549eaebd53e62be943 chore(security): baseline the REV-8286 test-fixture gitleaks finding
  • 0194870998313e40bdbbfd243bc7a0c129b04ea7 chore(sentry): storefront reports into the checkout Sentry project
  • e985e9a50010ef463c144882e92b070e2829e221 chore(storefront): turbo.json so the vitest lane does not depend on next build
  • 23ebd3009f2665d192b05789b9b6caae71493fdb chore(test): refresh the generated test lane map
  • 1756741359befd04560e7eadb0420fdd38af13b4 chore(test): refresh the generated test lane map
  • 8fe0c3a6eaf02bf19b4de3c0eb6aaf9f4ef6f925 chore(test): refresh the generated test lane map
  • 4bec923b58b463ed20962cfec39c5a061e9c960a chore(test): refresh the generated test lane map
  • 66e922f8d6dc43d1462079308ffff10358ec0b44 chore(test): refresh the generated test lane map
  • 2c1516b7631cd603016c5e34c59f06a8078ec738 chore(test): refresh the generated test lane map
  • 225f40017d22b16a1b096ff88240e796cda7aa4b chore(test): refresh the generated test lane map
  • 931df46f4d9020016af1ebb89ff9f9b097fcfafb chore(test): refresh the generated test lane map
  • 0a63337a9c3a3f7d092f0f42ae52f6281fe7c851 chore(test): refresh the generated test lane map
  • 49c3eab5d88c9fb7f6b48df956676dcb7be5efdc chore(test): refresh the generated test lane map
  • 2da51abaafdea42501c4d74e9a7d10f53a17c13d chore(test): refresh the generated test lane map
  • 0d3552dbefbcac130ab85d5cc199682ba07b94d8 chore(test): refresh the generated test lane map
  • 8c99a22d86f8fe211837f03d784ab82141544313 chore(test): refresh the generated test lane map
  • bf98894c705e7015e7da8ebb16e1f9a0bcc887f2 chore(test): refresh the generated test lane map
  • c9ca7099cdc22e8687afb033c16d466d7d07992d chore(test): refresh the generated test lane map
  • 7d977be0acd4660111fa53a912dac783cd059faa chore(test): roll the test schema baseline forward to 20260927230000
  • c7b100f4dc485c8d22637b2bed799ebedd093db4 chore(test): roll the test schema baseline forward to 20260928100000
  • ed7c8af119ef3f45082ce62b8f9e725c1c910984 chore(test): roll the test schema baseline forward to 20260928190500
  • 42d1574de44a94a59cda1c9bc7db3504d1f7a71c chore(test): roll the test schema baseline forward to 20260929120000
  • 0beb4f8e06cc9afeecc2b81c7f9a4c85dc999e96 chore(test): roll the test schema baseline forward to 20260929150100
  • db5e36a77a2b93dbb7cd3bfd1e23df7c5d310ee9 chore(test): roll the test schema baseline forward to 20260929180000
  • f9d61e97e232470da1ba1d4a9f44a466af308e4c chore(test): roll the test schema baseline forward to 20260929210000
  • 5b0a29bdac62567e32f90157d29173ae3418324b ci(deps): bump actions/download-artifact from 7 to 8
  • c01cbad210b264afc27f038124f79b154a8c32b3 ci(deps): bump fast-uri from 3.1.3 to 3.1.8 in /nango-integrations
  • 1e102eb843749ebb67150eefd5c8fcfd4031a7db ci(storefront): one Vercel project like checkout; document revkeen.store hosting (REV-7246)
  • 5c20a6b7e42d90a96b29f98f59f318214993a77b ci: Type Check falls back to the full graph when a root config file changes (REV-8470)
  • 3f318dcb32b17bc083bf2c757fea420512904984 ci: build GHCR images with the Blacksmith Docker layer cache
  • 02c7712a5c1fb6624255319b2ada6b217aae49fc ci: cut Blacksmith spend — path-gate unrequired lanes, drop development push run, affected Type Check, fold Cerbos pin into Detect changes (REV-8470)
  • 7b86a3b05559fdad7f5e294a3d6bc1dd519d15ad ci: serialise Deploy: Engine API per environment
  • 78bb298a1bfbc33e75b0ce5e4f2ea0becb90444c deps: bump nodemailer from 9.1.1 to 10.0.2
  • d40d06ab68d37e16a3c497b21b5a0ea9b0b81d2d deps: bump undici from 7.16.0 to 7.29.1
  • 33ac4a160ffe63d6182e71853ca001b4671cc3fa docs(changelog): complete the payment-link create entry (REV-8401)
  • 87d286210919d85beea5a673df6d4f10dcf068fd docs(changelog): drop an overstated currency-check line (REV-8401)
  • 39e1232aeaed3e434ff7a88cf64d9290b29d9862 docs(changelog): payment-link create applies every documented field (REV-8401)
  • 9f38dcad440c1d56329b623dd48de902f151623d docs(changelog): payment-link state changes need payment_links:write (REV-8400)
  • 30d30cb1883ea4e7b64e77a549e8aefacbd866fa docs(devbox): Boat user.slice memory cap, build concurrency, exec vs ssh session (REV-8430)
  • 10f82fbd74687512b2cd3a416a399707cd6df77d docs(devbox): fix two leftover Hetzner-devbox references (REV-8430)
  • d338e063c9ac88cd7ac57f81a2b2a0a8a67d7725 docs(devbox): move the devbox from Boat to Ubicloud, one VM per agent
  • e63349a41601afca96aa7949ff88a81b75063af2 docs(devbox): move the remote development box from Hetzner to Boat (REV-8430)
  • 751d0465d892e819cfbfe195e1e910e045789fe9 docs(devbox): one Boat sandbox per agent, never shared
  • 1de0bdead502cf98f3c5bed0b40ea010f241be74 docs(devbox): record Boat sandbox gotchas — UFW reset on restore, fnm in non-interactive shells, corepack prompt, heap/swap (REV-8430)
  • 16976c9d0d20b6328e41916902e97e21b4ec3c12 docs(legal): mint fees-2026-09-28-v1 adding the RevKeen Commerce add-on
  • d65e5e82659cfaa58ecb15c0902b0bc6d827146a docs(media): Create with AI merchant guide (REV-7348)
  • 44de4aef811723675c9f704a586e34ebefd28170 docs(rules): Puck across RevKeen objects, Assistant pages and record layouts (REV-8503)
  • 45edcae06652b1ef3df3d5091be657260fe37db7 docs(rules): approve the managed Storefront exception in rule 18 (REV-8396)
  • f140261ca040ed0c543c76f1eeeb126ee4af42d0 docs(rules): rule 08 counts 21 Next.js Sentry configs now storefront has one
  • 11d4d3be35e8cb3005a8e8e8491813d6eb8a099f docs(rules): widen the managed Storefront's rule 18 scope to the RevKeen Shop (REV-8503)
  • bb38f66c1db6c982120a86f7578893119a185171 docs(wiki): Storefront launch status for REV-7288, 7291, 7348, 8408, 8409, 8459
  • b0233fade177be5cf1b1a972d13c1481e0328a24 docs(wiki): break-glass applies only its own files; never rename an applied migration (REV-8468)
  • 056d92577091339ab6b15ab7472160d6f0a12b29 docs(wiki): contract map records the display-name fields (REV-8461)
  • 52f34a04bc3b14ce87449bc1eef808158895ec1a docs(wiki): correct stale storefront deploy status (REV-8382 follow-up)
  • abcef843ad39696e51b9d3633d07e92ab6f77292 feat(backoffice): Storefront audit trail and publish diagnosis for support (REV-7291)
  • b6a435b4f878ff3e1cee22d546770ff5322e263b feat(backoffice): run the Storefront Cart key backfill from the merchant Storefront tab (REV-8560)
  • 9393f1c4cb682e937eb95d246a352151e92ca94b feat(catalog): /v2/product-collections, product tags and storefront filters (REV-8507)
  • e12a91af231ece1c02ee349e2ae2ad5bf673f249 feat(catalog): product collections and product tags foundation (REV-8507)
  • 26769491d313904eff6a35f0a19bcad3e923c0bc feat(cerbos): repin policy image automatically after each GHCR build; repin to 5d883bf6
  • 6b28c55a216c45facbb7dfffb938e97afcc5aa0e feat(dashboard): product collections page, menu entry and product Store listing (REV-8507)
  • f95d26025b31eeddc20b886e13668ddc35243bd2 feat(db): count Postgres errors by SQLSTATE for SigNoz (REV-8261)
  • 9315be1dc1efe3eddab711d65e048f6c5830ee2d feat(db): run migrations as revkeen_migrator_iam -> revkeen_owner, no master (REV-8319, PR 2b)
  • de63642da81fa1397fd302cf39172d9568f77034 feat(db): schema docs generator — tbls config, RLS sections, per-viewpoint Liam ERD (REV-8397)
  • 5bce6fbb82e3efe2dbfea87501939da9b4b41013 feat(dd): Dashboard mandate-link buttons follow Engine's decision (REV-8223)
  • 4b6932dc9267d7039906ef7b5c19e0515b92a1c0 feat(engine-api): ops kill-switch to revoke a leaked merchant API key (REV-8480)
  • a432697b1d708e14e705e63c8aebd6f9b000f932 feat(engine-api): record the creator of every minted API key and audit each mint (REV-8228)
  • 7c176abff3a0da4b0b3644a26383943a4b7d7a06 feat(marketing): /commerce/builders page, every builder Coming soon (REV-8409)
  • 63fa282cd8ba5213695d4d932a7d3fb16d33e5bc feat(signoz): alerts for the payer-page warm-up probe (standard route)
  • 4b46f6119e7010fd5aefb621547d88206cdbbf1e feat(signoz): arm payer-page warm-up Probe Stopped alarm in production
  • 0353cb7b4e082aedf8623a251c12f4557cc51e65 feat(storefront): gate managed Storefront creation on RevKeen Commerce
  • 5bb70c3c7ef1cf0e911982b97763a3be499f23e5 feat(storefront): issue a publishable Cart key for live managed Storefronts (REV-8560)
  • c8f8cddef053096f178d23892f7db65197e8fc6d feat(storefront): page, product and add-to-cart analytics plus Sentry (REV-7288)
  • 84690e565e2ff62ed752d843530882b151e46467 feat(storefront): path-based stores on the platform host (REV-7246)
  • b81ef19bc7a0b4abd7ebd67a6a704e19169bbd33 feat(storefront): versioned block manifest, JSON Schema, migration path and more Tailark layouts
  • 56b6c0254cc6c4e2f0bf32cc32e63139f8b6a729 fix(authz): deny api_key create/rotate/revoke while impersonating in policy (REV-8472)
  • 6b131a74446b31a7154e338378d8769c62986048 fix(builders): keep the pricing prompt's paste line exact so the rules are appended
  • 74b5ae0cf9d47e8c9bd14e8ae587c0dfaf33e7b9 fix(checkout): a cart line is the unit of identity; charge exactly the saved cart (REV-8548)
  • 8aaae6f9e8c22620b4128b619cb8167d42677e96 fix(checkout): always allow forgetting the remembered email (REV-8494)
  • 000763e96e8575bdebae3a406778812da634356f fix(checkout): ask a cart of physical goods for a delivery address (REV-8542)
  • de7945afd86032ec615edf887f4ec83f10743570 fix(checkout): fulfil a card checkout whose customer has no phone or name (REV-8554)
  • 90398f47c68a74ba3a451ac23de454bf3ea0b2b5 fix(checkout): invoice v6 button reset, Paying-as field, OTP copy spacing
  • 287d05584abb4aa4f58ce3eddadc77778b91de74 fix(checkout): let a payer switch email from any OTP state (REV-8494)
  • d1efff9cdaaf3b9720f0f3263beb1a67c94e0a11 fix(checkout): read the intent flag from context; drop the column comment (REV-8542)
  • 3c8aa6b05fa9cf7c9ff31943efdf5958701a2b10 fix(checkout): require the delivery address on every rail (REV-8542)
  • 58c481a88568fef421f055c12538870fea7c7145 fix(checkout): save the delivery address checkout collects (REV-8542)
  • 00ad830783911433e17bfa251f81cf357d5894ca fix(checkout): suppress the warm-up cron's two Class A env reads
  • 5c141f1fd5355ead7c79dd78204a261a99375385 fix(ci): exempt the durable audit action names in the generated test schema baseline
  • 30c1b6c7482276b513d31e169a105fbc150a0674 fix(ci): let the pin drift test accept a declared lag (REV-8515)
  • fc4ebf2b12202975520aa9fbbdf116e93ce497bf fix(ci): raise git ls-files buffer in permit-exit preflight (ENOBUFS)
  • ddb1a963880cece8deb13c6bbe23ad9e70e913e9 fix(ci): rebuild images on dependency-only changes; resolve the newest engine-api build by date
  • ffb866bcfd219353f497aecd473f3e1362bc8334 fix(ci): regenerate .gitleaks.toml and prune suppressions made stale by #4345
  • f401ab7cd98e103a233df1afd47d3478bff78518 fix(comms): answer 200 for SMS statuses with no usage-tracked dispatch
  • f030f9f4ef3dfaf8f985a6394383d474ab16174c fix(contracts): drop the removed cli init command from the public surface snapshot
  • 8736073525b7e65a459218cd82d109f7c02efe89 fix(contracts): regenerate the public surface after removing revkeen init (REV-8408)
  • f057a9a3b52e1ff3d67648ace70f9cba446d445b fix(conversations): Backoffice Inbox fixes from the REV-7592 sweep
  • 0b45d8165d14d067225f861196622c4365b8ba72 fix(dashboard): regenerate the builders prompt pack; mock the collections tRPC calls in the product form tests
  • 7a19c5e9b51c421b39ceaced15e1e129d8df887f fix(dashboard): type the product-collections BFF without casts (REV-8507)
  • b174c516823e9c470945af9982fcbe27f6891b68 fix(db): close PUBLIC access to cross-tenant definer functions and the performance MV (REV-8453)
  • f7e06f23f226da9f7774664091bfc1159ad6a2f4 fix(db): declare the product_collections RLS policies in Drizzle (fix development)
  • ceffe095dc7c4bf1f077213963e68078ed7376e2 fix(db): drop app_service USING (true) policies on idempotency_records and plain_webhook_events (REV-8374 step 3)
  • cb07844f0079981ad43efa271f0408d0f00a6f96 fix(db): drop app_service and revkeen_runtime USING (true) policies on five system tables (REV-8374 step 1)
  • 7720f49e6adf4458d92de2c7e3361d289ca31c73 fix(db): fail the REV-8453 migration if any grant survives; replay it after the harness blanket grant
  • ff1878e6cafeb13f401db406756e4ff16b4308b0 fix(db): let the migration session helpers take a plain env object
  • 470207fa64e0d86c50b530c5f408e91235eb4de1 fix(db): move Plain webhook + workflow dedupe off the runtime client's raw handle (REV-8374)
  • 4df06c06eccfa53995fe11f8d394287c13ecd78c fix(db): move repair migration off a timestamp #4153 already uses
  • 637b1b4a182b6c0d222f6787d4fedd69aa35f4a9 fix(db): repair three column changes missing from staging's schema
  • 69c1e1fe866d1f5e011258a9edec905053d4deab fix(db): scope Better Auth member/organization/invitation runtime RLS to the merchant (REV-7628)
  • 08aec2a612b43767679788505f9c0d06fd8fd952 fix(db): scope apikey runtime RLS to the owning merchant (REV-8499)
  • cc525eaec5a851b014bc37ac96ae881c35d73a9a fix(db-codefirst): declare the REV-8536 dd_collections.last_checked_at comment
  • 764f1229554bf600ab481ea54165f49cc247725a fix(db-codefirst): mirror #4162's repair of the March column changes
  • d6bc0101e931c5c1526fc032157cda96ab59a654 fix(db-codefirst): record the REV-8453 function ACLs in the expected fingerprint
  • 40e27e1d5bf37518420d3d7e65b734e84ebe7b23 fix(db-codefirst): scope fingerprint pg_depend lookups by catalogue (REV-8320)
  • b6ce7934f4d746534d25d5bbb7439e075c643741 fix(dd): mandate activation and stale sweep matched zero rows on sub-ms updated_at
  • d18283234064f44bd9938d93ed33ec1414c8dff2 fix(deps): patch the vulnerable brace-expansion, fast-uri and ip-address copies
  • b573188307555ed52e589c14c1307179d2879aec fix(engine-api): close Better Auth api-key plugin HTTP routes (REV-8481)
  • be39c78f5b9cf839ba0d5a1fc82c774afa2323b9 fix(engine-api): gate Cart key mint on app install behind api_key:create (REV-8454)
  • 27e2a9983bcd7eea3f7854ffee88f4218945230d fix(engine-api): log merchant and origin on slug-only /public/embed calls
  • ebc5d42e88be8b7e4a0aba96f07623e6ff8a16a2 fix(engine-api): map POST /v2/payment-links body to the service input (REV-8401)
  • 1f1b3be4286d26d54dfe61d76068b8f3baf5dd32 fix(engine-api): pass key identity into the ops authorization request (REV-8498)
  • 6f9c83e9429def7e3d5eea51acf16d7711a5167d fix(engine-api): re-land PDP gate on /v2/cart-api-keys ensure and rotate (REV-8228 step 5)
  • 9db418d245c6bf91972bcf2f9b7de202c745aa9f fix(engine-api): require payment_links:write on expire/status/activate/archive (REV-8400)
  • 5ade6bf8a7d7f981401c02bd3e4e98fb5b9972bd fix(engine-api): write API-key audit before the mint; make revoke idempotent (REV-8455, REV-8500)
  • b3b36a7925ea8231e04090908a33b678feb2ab64 fix(infra): notification-service calls engine-api via the internal ALB (REV-8383)
  • 3abfd706a16784bb01795369e98abbf64377ab36 fix(infra): valid tag on the notification-service deploy role, and gate it
  • d5acab5ab527c916ae4a517290b26cd9f1cf35e9 fix(marketing): keep the builder ban-list regex from tripping the rule-21 scanner
  • b0d6827029e29c512a0547c6a11745275244c3d0 fix(metabase): author card queries in MBQL 5 so production applies stop failing
  • 93360678fb17e9027792145f2bed61c754b6c829 fix(migrations): move rev8453 off the 20260928090000 timestamp it shares with rev8385
  • 5392449a80ef4f01e57cda0e06cf688e24b5a10b fix(migrations): restore rev8453 to the name staging applied it under
  • 6c81c5f4207e738cc4aae3df9302971c9bfd5045 fix(notifications): accept Meta-provisioned WhatsApp senders (+1 555)
  • fc44c0203d8fadfb57686c00c0d6c4828c823950 fix(ops): Engine names people and merchants instead of raw ids (REV-8461, REV-7606, REV-8222)
  • 66d380c02f78260b7124e036c128e09d59db50f0 fix(orders): email the customer when a physical order ships (REV-8543)
  • 6fc6cd97af5d6a2c27719c13983e3a64ec1e1020 fix(orders): queue the shipped email through the digital email's call; baseline back to 487 (REV-8543)
  • bf50f5ca16ecaf7d0b5e4d63cc9324ff0aaa006d fix(routing): bind outbound/inbound routing timestamps as timestamptz strings
  • 7600bfcff6f97beb15a668a3429dd609dc31f060 fix(scripts): standin DDL guard treats checkout_* columns as columns
  • 1465dc0dbfeed7eb9f1105b8e37203dc094941b7 fix(security): regenerate .gitleaks.toml for CRON_SECRET and OTEL_GATEWAY_AUTH_TOKEN
  • af1b99f718d12dd6085931e40ae324471a642dc8 fix(security): regenerate .gitleaks.toml for CRON_SECRET and OTEL_GATEWAY_AUTH_TOKEN
  • ec4cc6a0e97099b79b7fa5ccaf37f8a18c9f469c fix(security): regenerate .gitleaks.toml for three new classified names
  • 630d7b92ce18a30a4ca299632090c717f514fe30 fix(sentry): stop managing baseline issue alerts through Sentry's retired rules API
  • 6775332300678d1692352eacd187dd6a7b0ae0dd fix(sentry): terraform fmt projects.auto.tfvars
  • 6c9a497ddf8028209f7c40bb18c452b8ee3c6bac fix(storefront): custom domains go offline with their merchant; hostname claims conflict cleanly
  • 11d4a10fc241c1c69a8f9d167b12131ff9222319 fix(support): run Plain thread classification on the system client (REV-8525)
  • dc7e3c0e8501d0d538f403b4a73b445643793958 fix(test): drop the duplicate system-client injection in the platform-fee suite
  • 8a3a700930e52563392a0da6837bb77462ef351e fix(test-harness): apply break-glass migrations as the superuser
  • 81ececbe3ced443a798fd5bfb2add44914db957b fix(test-harness): apply post-REV-8319 migrations as revkeen_owner
  • 3af155acaf1f56717e7a95eb99e8ae035770abbd fix(test-harness): follow rev8453's rename in BREAK_GLASS_MIGRATIONS
  • cea279ba1a0dba2be51d0c1fdfde6e82a64a8b34 fix(ui): import storefrontHref from the source subpath (REV-7246)
  • c739ced975e14b3399f8db3e542b95c5edb22128 fix: restore development CI after the REV-8507/REV-8559 merges
  • 6855a526b912b7adb30cb7bea4f156a6f0846db3 fix: stale-script selector reads the shared Collect.js path
  • a13cd282dc7edf94ee232cb08f3f58fa84715128 fix: turn development green after REV-7616/REV-8477 merge
  • c1ed64b2baae0e8eaa3408412df45e5961effcd5 infra(production): enable the notification-service Fargate lane
  • cf4bb6e9ed2abbb95dfb1f14a20e8de3f5eaca5f infra(staging): enable the notification-service Fargate lane
  • 03a13fdab82d178f8488ae6e57c48cd318e26efe infra: internal ALB route to the Fargate notification-service (REV-8383)
  • 74a701259e4a9ed74db69bcd1cc753b64d73b74e infra: re-pin Cerbos policy image and bundle to 9501ccc6 (REV-8473)
  • 564971cdf9aa3ae27dc55c9e95aa2e78697d84f9 infra: re-pin Cerbos policy image and bundle to f1f2cbe5
  • 12dbac99f42041ea3ce1440198a8bd61e9aa1c32 merge lane a (claude/sf-launch-a) into storefront launch
  • b528b85b087a9f3f8ecdb8f7805e409f7559f837 merge lane b (claude/sf-launch-b) into storefront launch
  • 330f54426576c109c1f7c929b159ce5797f93f84 merge lane c (claude/sf-launch-c) into storefront launch
  • 1fd8c3171417f757a799c2191a38d5942ac90f05 merge lane d (claude/sf-launch-d) into storefront launch
  • 8d99114761533c55791cff1ce0d0d2c78e2401e5 merge lane e2 (RevKeen Commerce entitlement) into storefront launch
  • b7ce56c20d17503143384959037628f9079920f6 perf(checkout): Vercel cron keeps payer page functions warm and reports to SigNoz
  • 861c42501dc1393eecc4c3b7ee2be43505f597fa perf(checkout): let @revkeen/ui tree-shake (payer pages ship ~60% less JS)
  • d2799e2f27e30b98601f6a9007786185f636a023 perf(checkout): preload Collect.js per merchant
  • 16028234ba2e12c389f97947604e5b10341c8e5b perf(checkout): stream the invoice v6 pay column; keep 404 before first byte
  • 39e1e48b28ec7445978a22fc059d5f049f2b4fe9 perf(checkout): warm the card gateway per merchant; one invoice fetch per request
  • 034c945d25f09e3d68831c7ede1acc02282a5cee refactor(authz): rename decision audit actions to vendor-neutral names
  • 85fca566adaf566236bd75912648087f40709d3a test(authz): count product_collection in the Cerbos deny-coverage kind inventory
  • 9dc24f437a379586a0adb826d63a488b43868b10 test(authz): pin Cerbos deny-coverage kind count at 68 (fix development)
  • beccaffc5d8a9d8f34d8552104e38ce631899286 test(billing): add pricingModel/unitAmount to ResolvedPriceTiers fixtures (REV-8406)
  • 799ae0dd99a9ee1345cd819ce8978e25b4ccb8aa test(checkout): /process end to end with a required delivery address (REV-8542)
  • 3be2fe83d93399e0b6e60ef263e992477eb4cfc3 test(checkout): a link-less cart sent with a payment link is refused; cart currency pinned at charge (REV-8548)
  • 89a5830de0655e7c588c3943510c2c87ece5c4a7 test(checkout): reproduce a pure-Embed cart refused before any charge (REV-8548)
  • c69b93cfae5573ec47a8dcf2d84bf9e840d7fd93 test(comms): track the split SMS dispatch guard in the source-contract test
  • 44613b8bb986238becf5c490b8bf1b1f739449b7 test(db): pin runtime-client .system() sites the alias rule cannot see (REV-8374)
  • 7aff0a0ea2af575521888d90812a01671bed3772 test(db): replay the REV-8453 migration after the schema-test harness blanket grant
  • 73df000d0fc28019f6d51e28a0b893ceadd69837 test(db): treat the REV-8319 applier probe as a transient table
  • 1f597647e7c995585bacde45ea47413006852deb test(e2e): alias @revkeen/contracts/storefront in the inbox harness bundles
  • d8b428a780da9ab8e2f5a6dfb78c0be37b51110d test(e2e): expect en-GB dates and the Today section (REV-7616, REV-8477 follow-up)
  • f9a9d16c1b7bcb57486840254ad8b3a2632d6df0 test(engine-api): add products.tags to three hand-maintained test stand-ins (fix development)
  • ba67c32f8a9a9e1cd065c4f9786439849c93bdd7 test(engine-api): add the REV-8560 Storefront key mint to the API-key audit inventory
  • ce38dfe024c806c6f835fc2d3bd9ff1f38ea2c5c test(engine-api): align app-install permission test with REV-8455 audit mocks
  • 238c3b1757396e01c449652993281745a1ae5aa7 test(engine-api): align storefront and embed tests with the REV-8507 projection
  • 65217b247ea663c4445b3ea26ea589212ce53409 test(engine-api): cover the per-product collection routes (REV-8507)
  • 8dfada9b98ac7c54a0ce7bf5e8f61a5ae3b24c2c test(engine-api): follow-up stays a distinct, now bounded, datetime field (REV-7618)
  • fef8691d10576b7a01410b8ac01f2781c9525b78 test(engine-api): inject the system DB in the ops merchant-list DB tests
  • 6dce0ce3bfea6dcd62058ce349a7aca1de8fb10e test(integration): inject the system client for the usage test-account lookup (REV-8516)
  • 45e605b528e0008c813cebe8dd0754a9cc7b5991 test(notifications): set Twilio env via vi.stubEnv in dispatch hand-off test
  • ee432eb0a380abf648772397de9a10791517e3f3 test(notifications): use a valid-plan UK number in the sender test
  • bb0896036ad671a93b2b8b57f245898b82996afb test(react): rename the Framer secret-key fixture and baseline the one historical gitleaks finding (REV-8559)
  • d0c144a176b93907b90daaaa41dcfe97cea17813 test(routing): stub the routing secret in the timestamp-param test
  • cbfe1592603546e476a17d47e0775d8e4578aa34 test(service-layer): fake drizzle tx supports onConflictDoNothing (REV-8539)
  • b8cb935467f9ae46debda2a1a0f4c9790fa23a2d test(service-layer): import the vaulted-card service once, outside the test timeout
  • 7e8310a99987d93ff60a60dd348d1e87fbb41956 test(storefront): slug lookup boundary on the public route (REV-7246)
  • d32375b571a4e0ebed50de15ceaa5f1ab627dbe2 wip(dashboard): product collections BFF, sheet, and per-product collection API (REV-8507 PR3, unvalidated)