forked from cartsnitch/cartsnitch
Compare commits
base: cs_betty/cartsnitch-fork-test:v2026.04.01.3
cs_betty/cartsnitch-fork-test:main
cs_betty/cartsnitch-fork-test:barcode-betty/car-1078-email-worker-dragonfly-reset
cs_betty/cartsnitch-fork-test:uat
cs_betty/cartsnitch-fork-test:dev
cs_betty/cartsnitch-fork-test:betty/car-964-gitea-registry-v2
cs_betty/cartsnitch-fork-test:barcode-betty/gitea-registry
cs_betty/cartsnitch-fork-test:fix/dispose-engine-import
cs_betty/cartsnitch-fork-test:carl/car-933-gitea-registry
cs_betty/cartsnitch-fork-test:barcode-betty/fix-dispose-engine-import
cs_betty/cartsnitch-fork-test:betty/fix-dead-dispose-engine-import
cs_betty/cartsnitch-fork-test:betty/car-900-gitea-workflows
cs_betty/cartsnitch-fork-test:barcode-betty/move-workflows-to-gitea
cs_betty/cartsnitch-fork-test:betty/fix-gitea-ci-secrets
cs_betty/cartsnitch-fork-test:betty/car-869-gitea-actions-cartsnitch
cs_betty/cartsnitch-fork-test:betty/car-862-fix-auth-build
cs_betty/cartsnitch-fork-test:betty/car-812-uat-seed-tooling
cs_betty/cartsnitch-fork-test:betty/car-555-health-check-db
cs_betty/cartsnitch-fork-test:feature/dragonfly-rate-limiting
cs_betty/cartsnitch-fork-test:betty/car-749-remove-auth-ci
cs_betty/cartsnitch-fork-test:fix/car-741-login-redirect-race-clean
cs_betty/cartsnitch-fork-test:fix/car-741-login-redirect-race-v2
cs_betty/cartsnitch-fork-test:fix/car-741-login-redirect-race
cs_betty/cartsnitch-fork-test:fix/car-709-receiptwitness-grype-cves
cs_betty/cartsnitch-fork-test:fix/car-620-grype-ignore-and-cache-bust
cs_betty/cartsnitch-fork-test:fix/car-656-deploy-commit-guard
cs_betty/cartsnitch-fork-test:fix/car-663-bcrypt-cost-factor
cs_betty/cartsnitch-fork-test:fix/car-676-axe-color-contrast
cs_betty/cartsnitch-fork-test:betty/car-673-fix-e2e-playwright-mock-auth
cs_betty/cartsnitch-fork-test:fix/car-665-eslint-unused-vars
cs_betty/cartsnitch-fork-test:betty/car-548-email-verification
cs_betty/cartsnitch-fork-test:betty/car-552-redis-rate-limiting
cs_betty/cartsnitch-fork-test:fix/car-620-remaining-docker-cves
cs_betty/cartsnitch-fork-test:fix/car-620-grype-only-fixed
cs_betty/cartsnitch-fork-test:fix/car-616-remediate-docker-cves
cs_betty/cartsnitch-fork-test:feature/grype-image-scanning
cs_betty/cartsnitch-fork-test:fix/car-608-auth-health-check
cs_betty/cartsnitch-fork-test:fix/auth-config-validation
cs_betty/cartsnitch-fork-test:betty/car-553-redis-cache
cs_betty/cartsnitch-fork-test:betty/car-554-audit-logging
cs_betty/cartsnitch-fork-test:betty/car-551-remove-mock-auth
cs_betty/cartsnitch-fork-test:feature/trivy-image-scanning
cs_betty/cartsnitch-fork-test:betty/car-599-vite-audit-fix
cs_betty/cartsnitch-fork-test:betty/car-580-n1-normalization-query
cs_betty/cartsnitch-fork-test:fix/receiptwitness-config-validation
cs_betty/cartsnitch-fork-test:feature/cart-550-api-lifespan-pooling
cs_betty/cartsnitch-fork-test:fix/cors-security-headers
cs_betty/cartsnitch-fork-test:feature/public-endpoint-validation
cs_betty/cartsnitch-fork-test:fix/rate-limit-token-hash
cs_betty/cartsnitch-fork-test:fix/hardcoded-secrets
cs_betty/cartsnitch-fork-test:betty/fix-alembic-create-all-commit
cs_betty/cartsnitch-fork-test:betty/car-517-domain-tables-migration
cs_betty/cartsnitch-fork-test:betty/fix-alembic-model-import
cs_betty/cartsnitch-fork-test:betty/fix-session-cookie-parsing
cs_betty/cartsnitch-fork-test:betty/fix-api-database-url-fallback
cs_betty/cartsnitch-fork-test:betty/revert-sha256-session-hash
cs_betty/cartsnitch-fork-test:betty/fix-session-token-hash
cs_betty/cartsnitch-fork-test:betty/fix-secure-session-cookie
cs_betty/cartsnitch-fork-test:fix/alembic-version-table-width
cs_betty/cartsnitch-fork-test:betty/fix-uat-users-table-bootstrap
cs_betty/cartsnitch-fork-test:betty/fix-alembic-fresh-db
cs_betty/cartsnitch-fork-test:betty/fix-libpq5-dockerfile
cs_betty/cartsnitch-fork-test:fix/alembic-percent-escape
cs_betty/cartsnitch-fork-test:betty/fix-email-inbound-token-server-default
cs_betty/cartsnitch-fork-test:betty/fix-sha-tag-format-long
cs_betty/cartsnitch-fork-test:betty/fix-ci-dev-uat-branches
cs_betty/cartsnitch-fork-test:betty/fix-alembic-dockerfile
cs_betty/cartsnitch-fork-test:betty/fix-uat-trustedorigins
cs_betty/cartsnitch-fork-test:feat/sync-common-email-inbound-token
cs_betty/cartsnitch-fork-test:fix/ci-api-dockerfile-path
cs_betty/cartsnitch-fork-test:fix/ci-deploy-race
cs_betty/cartsnitch-fork-test:fix/email-in-address-hotfix
cs_betty/cartsnitch-fork-test:feat/ci-deploy-uat
cs_betty/cartsnitch-fork-test:fix/npm-audit-vulnerabilities
cs_betty/cartsnitch-fork-test:pr108
cs_betty/cartsnitch-fork-test:fix/inbound-email-500
cs_betty/cartsnitch-fork-test:fix/email-in-address-routing
cs_betty/cartsnitch-fork-test:feat/email-in-settings
cs_betty/cartsnitch-fork-test:sync/api-2026-04-03
cs_betty/cartsnitch-fork-test:sync/receiptwitness-2026-04-03
cs_betty/cartsnitch-fork-test:fix/api-date-schema-types
cs_betty/cartsnitch-fork-test:fix/dashboard-hardcoded-product-ids
cs_betty/cartsnitch-fork-test:fix/remove-timestamp-mixin-from-mismatched-models
cs_betty/cartsnitch-fork-test:feature/dev-seed-script
cs_betty/cartsnitch-fork-test:fix/user-id-str-type
cs_betty/cartsnitch-fork-test:fix/signed-cookie-parsing
cs_betty/cartsnitch-fork-test:fix/restore-token-hash
cs_betty/cartsnitch-fork-test:fix/secure-cookie-name
cs_betty/cartsnitch-fork-test:fix/frontend-api-routes
cs_betty/cartsnitch-fork-test:fix/session-token-hash
cs_betty/cartsnitch-fork-test:fix/api-v1-prefix
cs_betty/cartsnitch-fork-test:fix/registration-redirect
cs_betty/cartsnitch-fork-test:fix/lighthouse-ci-crash
cs_betty/cartsnitch-fork-test:fix/api-auto-migration
cs_betty/cartsnitch-fork-test:feat/e2e-journey-tests
cs_betty/cartsnitch-fork-test:fix/users-id-text
cs_betty/cartsnitch-fork-test:feat/lighthouse-ci
cs_betty/cartsnitch-fork-test:feat/axe-core-playwright
cs_betty/cartsnitch-fork-test:fix/deploy-dev-resilient
cs_betty/cartsnitch-fork-test:feat/ci-npm-audit
cs_betty/cartsnitch-fork-test:fix/dockerhub-login-cicd
cs_betty/cartsnitch-fork-test:fix/deploy-dev-resilient-v2
cs_betty/cartsnitch-fork-test:fix/auth-session-table-mapping
cs_betty/cartsnitch-fork-test:fix/api-dockerfile-libpq
cs_betty/cartsnitch-fork-test:fix/deploy-dev-resilience
cs_betty/cartsnitch-fork-test:feat/ci-api-image-build-v3
cs_betty/cartsnitch-fork-test:feat/ci-api-image-build-v2
cs_betty/cartsnitch-fork-test:feat/playwright-setup
cs_betty/cartsnitch-fork-test:feat/msw-integration-tests
cs_betty/cartsnitch-fork-test:feat/ci-api-image-build
cs_betty/cartsnitch-fork-test:fix/remove-polyrepo-ci-leftovers
cs_betty/cartsnitch-fork-test:fix/receiptwitness-local-common
cs_betty/cartsnitch-fork-test:feat/api-alembic-dockerfile
cs_betty/cartsnitch-fork-test:feat/ci-receiptwitness-build
cs_betty/cartsnitch-fork-test:fix/alembic-in-dockerfile
cs_betty/cartsnitch-fork-test:docs/uat-runbook
cs_betty/cartsnitch-fork-test:fix/hashed-password-nullable
cs_betty/cartsnitch-fork-test:feat/utility-functions-tests
cs_betty/cartsnitch-fork-test:fix/auth-url-same-origin
cs_betty/cartsnitch-fork-test:fix/auth-contract-mismatch
cs_betty/cartsnitch-fork-test:feat/add-auth-image-to-deploy-dev
cs_betty/cartsnitch-fork-test:fix/deploy-dev-kustomize-install-clean
cs_betty/cartsnitch-fork-test:feat/uat-seed-user
cs_betty/cartsnitch-fork-test:fix/seed-uat-ctofixes
cs_betty/cartsnitch-fork-test:feature/better-auth
cs_betty/cartsnitch-fork-test:fix/deploy-dev-install-kustomize
cs_betty/cartsnitch-fork-test:fix/deploy-dev-github-app-token-cross-repo
cs_betty/cartsnitch-fork-test:remove-trigger-uat
cs_betty/cartsnitch-fork-test:charlie/ci-remove-trigger-uat
cs_betty/cartsnitch-fork-test:feat/deploy-dev-uat-trigger
cs_betty/cartsnitch-fork-test:feature/repo-consolidation
cs_betty/cartsnitch-fork-test:content/shrinkflation-consumer-faq
cs_betty/cartsnitch-fork-test:content/launch-marketing-pages
cs_betty/cartsnitch-fork-test:debbie/proper-cache-and-dockerhub-cleanup
cs_betty/cartsnitch-fork-test:debbie/fix-frontend-docker-cache
cs_betty/cartsnitch-fork-test:fix/dockerfile-numeric-uid
cs_betty/cartsnitch-fork-test:fix/frontend-dockerfile-user-101
cs_betty/cartsnitch-fork-test:content/what-is-unit-price
cs_betty/cartsnitch-fork-test:content/cartsnitch-vs-flipp
cs_betty/cartsnitch-fork-test:fix/non-root-nginx
cs_betty/cartsnitch-fork-test:content/shrinkflation-series-social-copy
cs_betty/cartsnitch-fork-test:content/shrinkflation-top-10
cs_betty/cartsnitch-fork-test:content/fix-launch-stats
cs_betty/cartsnitch-fork-test:content/email-welcome-sequence-links
cs_betty/cartsnitch-fork-test:content/pre-launch-social-mar25-26
cs_betty/cartsnitch-fork-test:content/shrinkflation-series-alignment
cs_betty/cartsnitch-fork-test:content/shrinkflation-series-1-cereal
cs_betty/cartsnitch-fork-test:content/founder-blog-post
cs_betty/cartsnitch-fork-test:content/launch-calendar
cs_betty/cartsnitch-fork-test:content/seo-comparison-article
cs_betty/cartsnitch-fork-test:content/phase-2-onboarding-faq
cs_betty/cartsnitch-fork-test:fix/dockerhub-auth-rate-limit
cs_betty/cartsnitch-fork-test:test/arc-runner-validation
cs_betty/cartsnitch-fork-test:calver-tagging
cs_betty/cartsnitch-fork-test:frankie/add-marketing-content
cs_betty/cartsnitch-fork-test:fix/runner-label
cs_betty/cartsnitch-fork-test:fix/ci-runner-and-mirrors
cs_betty/cartsnitch-fork-test:fix/ci-runner-label
cs_betty/cartsnitch-fork-test:revert-ghcr-mirrors
cs_betty/cartsnitch-fork-test:fix/dockerfile-use-dockerhub-images
cs_betty/cartsnitch-fork-test:fix/ghcr-mirror-base-images
cs_betty/cartsnitch-fork-test:fix/ci-remove-dockerhub-login
cs_betty/cartsnitch-fork-test:fix/ci-docker-ratelimit
cs_betty/cartsnitch-fork-test:feature/dockerfile
cs_betty/cartsnitch-fork-test:feature/core-screens
cs_betty/cartsnitch-fork-test:feature/renovate-config
cs_betty/cartsnitch-fork-test:ci/add-github-actions
cartsnitch/cartsnitch:uat
cartsnitch/cartsnitch:dev
cartsnitch/cartsnitch:barcode-betty/car-1428-revert-deploy-base
cartsnitch/cartsnitch:main
cartsnitch/cartsnitch:barcode-betty/car-1374-checkout-ref-match-base
cartsnitch/cartsnitch:barcode-betty/car-1370-deploy-base-dev
cartsnitch/cartsnitch:barcode-betty/car-1303-widen-alembic-via-migration
cartsnitch/cartsnitch:betty/car-1078-email-worker-dragonfly-reset
cartsnitch/cartsnitch:betty/car-1218-lighthouse-ci
cartsnitch/cartsnitch:betty/car-1319-sha-tag-fix
cartsnitch/cartsnitch:betty/car-1318-frontend-kustomize-bump-target
cartsnitch/cartsnitch:betty/car-1276-auth-image-build-fix
cartsnitch/cartsnitch:betty/car-1276-auth-health-error-log
cartsnitch/cartsnitch:betty/car-1216-deploy-non-fail-merge
cartsnitch/cartsnitch:betty/car-1215-react-router-audit
cartsnitch/cartsnitch:barcode-betty/car-1078-email-worker-dragonfly-reset
cartsnitch/cartsnitch:betty/car-964-gitea-registry-v2
cartsnitch/cartsnitch:barcode-betty/gitea-registry
cartsnitch/cartsnitch:fix/dispose-engine-import
cartsnitch/cartsnitch:carl/car-933-gitea-registry
cartsnitch/cartsnitch:barcode-betty/fix-dispose-engine-import
cartsnitch/cartsnitch:betty/fix-dead-dispose-engine-import
cartsnitch/cartsnitch:betty/car-900-gitea-workflows
cartsnitch/cartsnitch:barcode-betty/move-workflows-to-gitea
cartsnitch/cartsnitch:betty/fix-gitea-ci-secrets
cartsnitch/cartsnitch:betty/car-869-gitea-actions-cartsnitch
cartsnitch/cartsnitch:betty/car-862-fix-auth-build
cartsnitch/cartsnitch:betty/car-812-uat-seed-tooling
cartsnitch/cartsnitch:betty/car-555-health-check-db
cartsnitch/cartsnitch:feature/dragonfly-rate-limiting
cartsnitch/cartsnitch:betty/car-749-remove-auth-ci
cartsnitch/cartsnitch:fix/car-741-login-redirect-race-clean
cartsnitch/cartsnitch:fix/car-741-login-redirect-race-v2
cartsnitch/cartsnitch:fix/car-741-login-redirect-race
cartsnitch/cartsnitch:fix/car-709-receiptwitness-grype-cves
cartsnitch/cartsnitch:fix/car-620-grype-ignore-and-cache-bust
cartsnitch/cartsnitch:fix/car-656-deploy-commit-guard
cartsnitch/cartsnitch:fix/car-663-bcrypt-cost-factor
cartsnitch/cartsnitch:fix/car-676-axe-color-contrast
cartsnitch/cartsnitch:betty/car-673-fix-e2e-playwright-mock-auth
cartsnitch/cartsnitch:fix/car-665-eslint-unused-vars
cartsnitch/cartsnitch:betty/car-548-email-verification
cartsnitch/cartsnitch:betty/car-552-redis-rate-limiting
cartsnitch/cartsnitch:fix/car-620-remaining-docker-cves
cartsnitch/cartsnitch:fix/car-620-grype-only-fixed
cartsnitch/cartsnitch:fix/car-616-remediate-docker-cves
cartsnitch/cartsnitch:feature/grype-image-scanning
cartsnitch/cartsnitch:fix/car-608-auth-health-check
cartsnitch/cartsnitch:fix/auth-config-validation
cartsnitch/cartsnitch:betty/car-553-redis-cache
cartsnitch/cartsnitch:betty/car-554-audit-logging
cartsnitch/cartsnitch:betty/car-551-remove-mock-auth
cartsnitch/cartsnitch:feature/trivy-image-scanning
cartsnitch/cartsnitch:betty/car-599-vite-audit-fix
cartsnitch/cartsnitch:betty/car-580-n1-normalization-query
cartsnitch/cartsnitch:fix/receiptwitness-config-validation
cartsnitch/cartsnitch:feature/cart-550-api-lifespan-pooling
cartsnitch/cartsnitch:fix/cors-security-headers
cartsnitch/cartsnitch:feature/public-endpoint-validation
cartsnitch/cartsnitch:fix/rate-limit-token-hash
cartsnitch/cartsnitch:fix/hardcoded-secrets
cartsnitch/cartsnitch:betty/fix-alembic-create-all-commit
cartsnitch/cartsnitch:betty/car-517-domain-tables-migration
cartsnitch/cartsnitch:betty/fix-alembic-model-import
cartsnitch/cartsnitch:betty/fix-session-cookie-parsing
cartsnitch/cartsnitch:betty/fix-api-database-url-fallback
cartsnitch/cartsnitch:betty/revert-sha256-session-hash
cartsnitch/cartsnitch:betty/fix-session-token-hash
cartsnitch/cartsnitch:betty/fix-secure-session-cookie
cartsnitch/cartsnitch:fix/alembic-version-table-width
cartsnitch/cartsnitch:betty/fix-uat-users-table-bootstrap
cartsnitch/cartsnitch:betty/fix-alembic-fresh-db
cartsnitch/cartsnitch:betty/fix-libpq5-dockerfile
cartsnitch/cartsnitch:fix/alembic-percent-escape
cartsnitch/cartsnitch:betty/fix-email-inbound-token-server-default
cartsnitch/cartsnitch:betty/fix-sha-tag-format-long
cartsnitch/cartsnitch:betty/fix-ci-dev-uat-branches
cartsnitch/cartsnitch:betty/fix-alembic-dockerfile
cartsnitch/cartsnitch:betty/fix-uat-trustedorigins
cartsnitch/cartsnitch:feat/sync-common-email-inbound-token
cartsnitch/cartsnitch:fix/ci-api-dockerfile-path
cartsnitch/cartsnitch:fix/ci-deploy-race
cartsnitch/cartsnitch:fix/email-in-address-hotfix
cartsnitch/cartsnitch:feat/ci-deploy-uat
cartsnitch/cartsnitch:fix/npm-audit-vulnerabilities
cartsnitch/cartsnitch:pr108
cartsnitch/cartsnitch:fix/inbound-email-500
cartsnitch/cartsnitch:fix/email-in-address-routing
cartsnitch/cartsnitch:feat/email-in-settings
cartsnitch/cartsnitch:sync/api-2026-04-03
cartsnitch/cartsnitch:sync/receiptwitness-2026-04-03
cartsnitch/cartsnitch:fix/api-date-schema-types
cartsnitch/cartsnitch:fix/dashboard-hardcoded-product-ids
cartsnitch/cartsnitch:fix/remove-timestamp-mixin-from-mismatched-models
cartsnitch/cartsnitch:feature/dev-seed-script
cartsnitch/cartsnitch:fix/user-id-str-type
cartsnitch/cartsnitch:fix/signed-cookie-parsing
cartsnitch/cartsnitch:fix/restore-token-hash
cartsnitch/cartsnitch:fix/secure-cookie-name
cartsnitch/cartsnitch:fix/frontend-api-routes
cartsnitch/cartsnitch:fix/session-token-hash
cartsnitch/cartsnitch:fix/api-v1-prefix
cartsnitch/cartsnitch:fix/registration-redirect
cartsnitch/cartsnitch:fix/lighthouse-ci-crash
cartsnitch/cartsnitch:fix/api-auto-migration
cartsnitch/cartsnitch:feat/e2e-journey-tests
cartsnitch/cartsnitch:fix/users-id-text
cartsnitch/cartsnitch:feat/lighthouse-ci
cartsnitch/cartsnitch:feat/axe-core-playwright
cartsnitch/cartsnitch:fix/deploy-dev-resilient
cartsnitch/cartsnitch:feat/ci-npm-audit
cartsnitch/cartsnitch:fix/dockerhub-login-cicd
cartsnitch/cartsnitch:fix/deploy-dev-resilient-v2
cartsnitch/cartsnitch:fix/auth-session-table-mapping
cartsnitch/cartsnitch:fix/api-dockerfile-libpq
cartsnitch/cartsnitch:fix/deploy-dev-resilience
cartsnitch/cartsnitch:feat/ci-api-image-build-v3
cartsnitch/cartsnitch:feat/ci-api-image-build-v2
cartsnitch/cartsnitch:feat/playwright-setup
cartsnitch/cartsnitch:feat/msw-integration-tests
cartsnitch/cartsnitch:feat/ci-api-image-build
cartsnitch/cartsnitch:fix/remove-polyrepo-ci-leftovers
cartsnitch/cartsnitch:fix/receiptwitness-local-common
cartsnitch/cartsnitch:feat/api-alembic-dockerfile
cartsnitch/cartsnitch:feat/ci-receiptwitness-build
cartsnitch/cartsnitch:fix/alembic-in-dockerfile
cartsnitch/cartsnitch:docs/uat-runbook
cartsnitch/cartsnitch:fix/hashed-password-nullable
cartsnitch/cartsnitch:feat/utility-functions-tests
cartsnitch/cartsnitch:fix/auth-url-same-origin
cartsnitch/cartsnitch:fix/auth-contract-mismatch
cartsnitch/cartsnitch:feat/add-auth-image-to-deploy-dev
cartsnitch/cartsnitch:fix/deploy-dev-kustomize-install-clean
cartsnitch/cartsnitch:feat/uat-seed-user
cartsnitch/cartsnitch:fix/seed-uat-ctofixes
cartsnitch/cartsnitch:feature/better-auth
cartsnitch/cartsnitch:fix/deploy-dev-install-kustomize
cartsnitch/cartsnitch:fix/deploy-dev-github-app-token-cross-repo
cartsnitch/cartsnitch:remove-trigger-uat
cartsnitch/cartsnitch:charlie/ci-remove-trigger-uat
cartsnitch/cartsnitch:feat/deploy-dev-uat-trigger
cartsnitch/cartsnitch:feature/repo-consolidation
cartsnitch/cartsnitch:content/shrinkflation-consumer-faq
cartsnitch/cartsnitch:content/launch-marketing-pages
cartsnitch/cartsnitch:debbie/proper-cache-and-dockerhub-cleanup
cartsnitch/cartsnitch:debbie/fix-frontend-docker-cache
cartsnitch/cartsnitch:fix/dockerfile-numeric-uid
cartsnitch/cartsnitch:fix/frontend-dockerfile-user-101
cartsnitch/cartsnitch:content/what-is-unit-price
cartsnitch/cartsnitch:content/cartsnitch-vs-flipp
cartsnitch/cartsnitch:fix/non-root-nginx
cartsnitch/cartsnitch:content/shrinkflation-series-social-copy
cartsnitch/cartsnitch:content/shrinkflation-top-10
cartsnitch/cartsnitch:content/fix-launch-stats
cartsnitch/cartsnitch:content/email-welcome-sequence-links
cartsnitch/cartsnitch:content/pre-launch-social-mar25-26
cartsnitch/cartsnitch:content/shrinkflation-series-alignment
cartsnitch/cartsnitch:content/shrinkflation-series-1-cereal
cartsnitch/cartsnitch:content/founder-blog-post
cartsnitch/cartsnitch:content/launch-calendar
cartsnitch/cartsnitch:content/seo-comparison-article
cartsnitch/cartsnitch:content/phase-2-onboarding-faq
cartsnitch/cartsnitch:fix/dockerhub-auth-rate-limit
cartsnitch/cartsnitch:test/arc-runner-validation
cartsnitch/cartsnitch:calver-tagging
cartsnitch/cartsnitch:frankie/add-marketing-content
cartsnitch/cartsnitch:fix/runner-label
cartsnitch/cartsnitch:fix/ci-runner-and-mirrors
cartsnitch/cartsnitch:fix/ci-runner-label
cartsnitch/cartsnitch:revert-ghcr-mirrors
cartsnitch/cartsnitch:fix/dockerfile-use-dockerhub-images
cartsnitch/cartsnitch:fix/ghcr-mirror-base-images
cartsnitch/cartsnitch:fix/ci-remove-dockerhub-login
cartsnitch/cartsnitch:fix/ci-docker-ratelimit
cartsnitch/cartsnitch:feature/dockerfile
cartsnitch/cartsnitch:feature/core-screens
cartsnitch/cartsnitch:feature/renovate-config
cartsnitch/cartsnitch:ci/add-github-actions
cs_betty/cartsnitch-fork-test:v2026.05.04
cs_betty/cartsnitch-fork-test:v2026.04.20
cs_betty/cartsnitch-fork-test:v2026.04.19.4
cs_betty/cartsnitch-fork-test:v2026.04.19.3
cs_betty/cartsnitch-fork-test:v2026.04.19.2
cs_betty/cartsnitch-fork-test:v2026.04.19
cs_betty/cartsnitch-fork-test:v2026.04.15.2
cs_betty/cartsnitch-fork-test:v2026.04.15
cs_betty/cartsnitch-fork-test:v2026.04.14.4
cs_betty/cartsnitch-fork-test:v2026.04.14.3
cs_betty/cartsnitch-fork-test:v2026.04.14.2
cs_betty/cartsnitch-fork-test:v2026.04.14
cs_betty/cartsnitch-fork-test:v2026.04.05
cs_betty/cartsnitch-fork-test:v2026.04.03.8
cs_betty/cartsnitch-fork-test:v2026.04.03.7
cs_betty/cartsnitch-fork-test:v2026.04.03.6
cs_betty/cartsnitch-fork-test:v2026.04.03.5
cs_betty/cartsnitch-fork-test:v2026.04.03.4
cs_betty/cartsnitch-fork-test:v2026.04.03.3
cs_betty/cartsnitch-fork-test:v2026.04.03.2
cs_betty/cartsnitch-fork-test:v2026.04.03
cs_betty/cartsnitch-fork-test:v2026.04.02
cs_betty/cartsnitch-fork-test:v2026.04.01.9
cs_betty/cartsnitch-fork-test:v2026.04.01.8
cs_betty/cartsnitch-fork-test:v2026.04.01.7
cs_betty/cartsnitch-fork-test:v2026.04.01.6
cs_betty/cartsnitch-fork-test:v2026.04.01.5
cs_betty/cartsnitch-fork-test:v2026.04.01.4
cs_betty/cartsnitch-fork-test:v2026.04.01.3
cs_betty/cartsnitch-fork-test:v2026.04.01.2
cs_betty/cartsnitch-fork-test:v2026.04.01
cs_betty/cartsnitch-fork-test:v2026.03.31.8
cs_betty/cartsnitch-fork-test:v2026.03.31.7
cs_betty/cartsnitch-fork-test:v2026.03.31.6
cs_betty/cartsnitch-fork-test:v2026.03.31.5
cs_betty/cartsnitch-fork-test:v2026.03.31.4
cs_betty/cartsnitch-fork-test:v2026.03.31.3
cs_betty/cartsnitch-fork-test:v2026.03.31.2
cs_betty/cartsnitch-fork-test:v2026.03.31
cs_betty/cartsnitch-fork-test:v2026.03.30.10
cs_betty/cartsnitch-fork-test:v2026.03.30.9
cs_betty/cartsnitch-fork-test:v2026.03.30.8
cs_betty/cartsnitch-fork-test:v2026.03.30.7
cs_betty/cartsnitch-fork-test:v2026.03.30.6
cs_betty/cartsnitch-fork-test:v2026.03.30.5
cs_betty/cartsnitch-fork-test:v2026.03.30.4
cs_betty/cartsnitch-fork-test:v2026.03.30.3
cs_betty/cartsnitch-fork-test:v2026.03.30.2
cs_betty/cartsnitch-fork-test:v2026.03.30
cs_betty/cartsnitch-fork-test:v2026.03.29.5
cs_betty/cartsnitch-fork-test:v2026.03.29.4
cs_betty/cartsnitch-fork-test:v2026.03.29.3
cs_betty/cartsnitch-fork-test:v2026.03.29.2
cs_betty/cartsnitch-fork-test:v2026.03.29
cs_betty/cartsnitch-fork-test:v2026.03.28.6
cs_betty/cartsnitch-fork-test:v2026.03.28.5
cs_betty/cartsnitch-fork-test:v2026.03.28.4
cs_betty/cartsnitch-fork-test:v2026.03.28.3
cs_betty/cartsnitch-fork-test:v2026.03.28.2
cs_betty/cartsnitch-fork-test:v2026.03.28
cs_betty/cartsnitch-fork-test:v2026.03.24.2
cs_betty/cartsnitch-fork-test:v2026.03.24
cs_betty/cartsnitch-fork-test:v2026.03.22.2
cs_betty/cartsnitch-fork-test:v2026.03.22
cs_betty/cartsnitch-fork-test:v2026.03.21.4
cs_betty/cartsnitch-fork-test:v2026.03.21.3
cs_betty/cartsnitch-fork-test:v2026.03.21.2
cs_betty/cartsnitch-fork-test:v2026.03.21
cs_betty/cartsnitch-fork-test:v2026.03.20.3
cs_betty/cartsnitch-fork-test:v2026.03.20.2
cs_betty/cartsnitch-fork-test:v2026.03.20
cartsnitch/cartsnitch:v2026.06.08
cartsnitch/cartsnitch:v2026.06.07
cartsnitch/cartsnitch:v2026.06.06
cartsnitch/cartsnitch:v2026.06.04
cartsnitch/cartsnitch:v2026.05.04
cartsnitch/cartsnitch:v2026.04.20
cartsnitch/cartsnitch:v2026.04.19.4
cartsnitch/cartsnitch:v2026.04.19.3
cartsnitch/cartsnitch:v2026.04.19.2
cartsnitch/cartsnitch:v2026.04.19
cartsnitch/cartsnitch:v2026.04.15.2
cartsnitch/cartsnitch:v2026.04.15
cartsnitch/cartsnitch:v2026.04.14.4
cartsnitch/cartsnitch:v2026.04.14.3
cartsnitch/cartsnitch:v2026.04.14.2
cartsnitch/cartsnitch:v2026.04.14
cartsnitch/cartsnitch:v2026.04.05
cartsnitch/cartsnitch:v2026.04.03.8
cartsnitch/cartsnitch:v2026.04.03.7
cartsnitch/cartsnitch:v2026.04.03.6
cartsnitch/cartsnitch:v2026.04.03.5
cartsnitch/cartsnitch:v2026.04.03.4
cartsnitch/cartsnitch:v2026.04.03.3
cartsnitch/cartsnitch:v2026.04.03.2
cartsnitch/cartsnitch:v2026.04.03
cartsnitch/cartsnitch:v2026.04.02
cartsnitch/cartsnitch:v2026.04.01.9
cartsnitch/cartsnitch:v2026.04.01.8
cartsnitch/cartsnitch:v2026.04.01.7
cartsnitch/cartsnitch:v2026.04.01.6
cartsnitch/cartsnitch:v2026.04.01.5
cartsnitch/cartsnitch:v2026.04.01.4
cartsnitch/cartsnitch:v2026.04.01.3
cartsnitch/cartsnitch:v2026.04.01.2
cartsnitch/cartsnitch:v2026.04.01
cartsnitch/cartsnitch:v2026.03.31.8
cartsnitch/cartsnitch:v2026.03.31.7
cartsnitch/cartsnitch:v2026.03.31.6
cartsnitch/cartsnitch:v2026.03.31.5
cartsnitch/cartsnitch:v2026.03.31.4
cartsnitch/cartsnitch:v2026.03.31.3
cartsnitch/cartsnitch:v2026.03.31.2
cartsnitch/cartsnitch:v2026.03.31
cartsnitch/cartsnitch:v2026.03.30.10
cartsnitch/cartsnitch:v2026.03.30.9
cartsnitch/cartsnitch:v2026.03.30.8
cartsnitch/cartsnitch:v2026.03.30.7
cartsnitch/cartsnitch:v2026.03.30.6
cartsnitch/cartsnitch:v2026.03.30.5
cartsnitch/cartsnitch:v2026.03.30.4
cartsnitch/cartsnitch:v2026.03.30.3
cartsnitch/cartsnitch:v2026.03.30.2
cartsnitch/cartsnitch:v2026.03.30
cartsnitch/cartsnitch:v2026.03.29.5
cartsnitch/cartsnitch:v2026.03.29.4
cartsnitch/cartsnitch:v2026.03.29.3
cartsnitch/cartsnitch:v2026.03.29.2
cartsnitch/cartsnitch:v2026.03.29
cartsnitch/cartsnitch:v2026.03.28.6
cartsnitch/cartsnitch:v2026.03.28.5
cartsnitch/cartsnitch:v2026.03.28.4
cartsnitch/cartsnitch:v2026.03.28.3
cartsnitch/cartsnitch:v2026.03.28.2
cartsnitch/cartsnitch:v2026.03.28
cartsnitch/cartsnitch:v2026.03.24.2
cartsnitch/cartsnitch:v2026.03.24
cartsnitch/cartsnitch:v2026.03.22.2
cartsnitch/cartsnitch:v2026.03.22
cartsnitch/cartsnitch:v2026.03.21.4
cartsnitch/cartsnitch:v2026.03.21.3
cartsnitch/cartsnitch:v2026.03.21.2
cartsnitch/cartsnitch:v2026.03.21
cartsnitch/cartsnitch:v2026.03.20.3
cartsnitch/cartsnitch:v2026.03.20.2
cartsnitch/cartsnitch:v2026.03.20
...
compare: cs_betty/cartsnitch-fork-test:content/fix-launch-stats
cs_betty/cartsnitch-fork-test:barcode-betty/car-1078-email-worker-dragonfly-reset
cs_betty/cartsnitch-fork-test:uat
cs_betty/cartsnitch-fork-test:main
cs_betty/cartsnitch-fork-test:dev
cs_betty/cartsnitch-fork-test:betty/car-964-gitea-registry-v2
cs_betty/cartsnitch-fork-test:barcode-betty/gitea-registry
cs_betty/cartsnitch-fork-test:fix/dispose-engine-import
cs_betty/cartsnitch-fork-test:carl/car-933-gitea-registry
cs_betty/cartsnitch-fork-test:barcode-betty/fix-dispose-engine-import
cs_betty/cartsnitch-fork-test:betty/fix-dead-dispose-engine-import
cs_betty/cartsnitch-fork-test:betty/car-900-gitea-workflows
cs_betty/cartsnitch-fork-test:barcode-betty/move-workflows-to-gitea
cs_betty/cartsnitch-fork-test:betty/fix-gitea-ci-secrets
cs_betty/cartsnitch-fork-test:betty/car-869-gitea-actions-cartsnitch
cs_betty/cartsnitch-fork-test:betty/car-862-fix-auth-build
cs_betty/cartsnitch-fork-test:betty/car-812-uat-seed-tooling
cs_betty/cartsnitch-fork-test:betty/car-555-health-check-db
cs_betty/cartsnitch-fork-test:feature/dragonfly-rate-limiting
cs_betty/cartsnitch-fork-test:betty/car-749-remove-auth-ci
cs_betty/cartsnitch-fork-test:fix/car-741-login-redirect-race-clean
cs_betty/cartsnitch-fork-test:fix/car-741-login-redirect-race-v2
cs_betty/cartsnitch-fork-test:fix/car-741-login-redirect-race
cs_betty/cartsnitch-fork-test:fix/car-709-receiptwitness-grype-cves
cs_betty/cartsnitch-fork-test:fix/car-620-grype-ignore-and-cache-bust
cs_betty/cartsnitch-fork-test:fix/car-656-deploy-commit-guard
cs_betty/cartsnitch-fork-test:fix/car-663-bcrypt-cost-factor
cs_betty/cartsnitch-fork-test:fix/car-676-axe-color-contrast
cs_betty/cartsnitch-fork-test:betty/car-673-fix-e2e-playwright-mock-auth
cs_betty/cartsnitch-fork-test:fix/car-665-eslint-unused-vars
cs_betty/cartsnitch-fork-test:betty/car-548-email-verification
cs_betty/cartsnitch-fork-test:betty/car-552-redis-rate-limiting
cs_betty/cartsnitch-fork-test:fix/car-620-remaining-docker-cves
cs_betty/cartsnitch-fork-test:fix/car-620-grype-only-fixed
cs_betty/cartsnitch-fork-test:fix/car-616-remediate-docker-cves
cs_betty/cartsnitch-fork-test:feature/grype-image-scanning
cs_betty/cartsnitch-fork-test:fix/car-608-auth-health-check
cs_betty/cartsnitch-fork-test:fix/auth-config-validation
cs_betty/cartsnitch-fork-test:betty/car-553-redis-cache
cs_betty/cartsnitch-fork-test:betty/car-554-audit-logging
cs_betty/cartsnitch-fork-test:betty/car-551-remove-mock-auth
cs_betty/cartsnitch-fork-test:feature/trivy-image-scanning
cs_betty/cartsnitch-fork-test:betty/car-599-vite-audit-fix
cs_betty/cartsnitch-fork-test:betty/car-580-n1-normalization-query
cs_betty/cartsnitch-fork-test:fix/receiptwitness-config-validation
cs_betty/cartsnitch-fork-test:feature/cart-550-api-lifespan-pooling
cs_betty/cartsnitch-fork-test:fix/cors-security-headers
cs_betty/cartsnitch-fork-test:feature/public-endpoint-validation
cs_betty/cartsnitch-fork-test:fix/rate-limit-token-hash
cs_betty/cartsnitch-fork-test:fix/hardcoded-secrets
cs_betty/cartsnitch-fork-test:betty/fix-alembic-create-all-commit
cs_betty/cartsnitch-fork-test:betty/car-517-domain-tables-migration
cs_betty/cartsnitch-fork-test:betty/fix-alembic-model-import
cs_betty/cartsnitch-fork-test:betty/fix-session-cookie-parsing
cs_betty/cartsnitch-fork-test:betty/fix-api-database-url-fallback
cs_betty/cartsnitch-fork-test:betty/revert-sha256-session-hash
cs_betty/cartsnitch-fork-test:betty/fix-session-token-hash
cs_betty/cartsnitch-fork-test:betty/fix-secure-session-cookie
cs_betty/cartsnitch-fork-test:fix/alembic-version-table-width
cs_betty/cartsnitch-fork-test:betty/fix-uat-users-table-bootstrap
cs_betty/cartsnitch-fork-test:betty/fix-alembic-fresh-db
cs_betty/cartsnitch-fork-test:betty/fix-libpq5-dockerfile
cs_betty/cartsnitch-fork-test:fix/alembic-percent-escape
cs_betty/cartsnitch-fork-test:betty/fix-email-inbound-token-server-default
cs_betty/cartsnitch-fork-test:betty/fix-sha-tag-format-long
cs_betty/cartsnitch-fork-test:betty/fix-ci-dev-uat-branches
cs_betty/cartsnitch-fork-test:betty/fix-alembic-dockerfile
cs_betty/cartsnitch-fork-test:betty/fix-uat-trustedorigins
cs_betty/cartsnitch-fork-test:feat/sync-common-email-inbound-token
cs_betty/cartsnitch-fork-test:fix/ci-api-dockerfile-path
cs_betty/cartsnitch-fork-test:fix/ci-deploy-race
cs_betty/cartsnitch-fork-test:fix/email-in-address-hotfix
cs_betty/cartsnitch-fork-test:feat/ci-deploy-uat
cs_betty/cartsnitch-fork-test:fix/npm-audit-vulnerabilities
cs_betty/cartsnitch-fork-test:pr108
cs_betty/cartsnitch-fork-test:fix/inbound-email-500
cs_betty/cartsnitch-fork-test:fix/email-in-address-routing
cs_betty/cartsnitch-fork-test:feat/email-in-settings
cs_betty/cartsnitch-fork-test:sync/api-2026-04-03
cs_betty/cartsnitch-fork-test:sync/receiptwitness-2026-04-03
cs_betty/cartsnitch-fork-test:fix/api-date-schema-types
cs_betty/cartsnitch-fork-test:fix/dashboard-hardcoded-product-ids
cs_betty/cartsnitch-fork-test:fix/remove-timestamp-mixin-from-mismatched-models
cs_betty/cartsnitch-fork-test:feature/dev-seed-script
cs_betty/cartsnitch-fork-test:fix/user-id-str-type
cs_betty/cartsnitch-fork-test:fix/signed-cookie-parsing
cs_betty/cartsnitch-fork-test:fix/restore-token-hash
cs_betty/cartsnitch-fork-test:fix/secure-cookie-name
cs_betty/cartsnitch-fork-test:fix/frontend-api-routes
cs_betty/cartsnitch-fork-test:fix/session-token-hash
cs_betty/cartsnitch-fork-test:fix/api-v1-prefix
cs_betty/cartsnitch-fork-test:fix/registration-redirect
cs_betty/cartsnitch-fork-test:fix/lighthouse-ci-crash
cs_betty/cartsnitch-fork-test:fix/api-auto-migration
cs_betty/cartsnitch-fork-test:feat/e2e-journey-tests
cs_betty/cartsnitch-fork-test:fix/users-id-text
cs_betty/cartsnitch-fork-test:feat/lighthouse-ci
cs_betty/cartsnitch-fork-test:feat/axe-core-playwright
cs_betty/cartsnitch-fork-test:fix/deploy-dev-resilient
cs_betty/cartsnitch-fork-test:feat/ci-npm-audit
cs_betty/cartsnitch-fork-test:fix/dockerhub-login-cicd
cs_betty/cartsnitch-fork-test:fix/deploy-dev-resilient-v2
cs_betty/cartsnitch-fork-test:fix/auth-session-table-mapping
cs_betty/cartsnitch-fork-test:fix/api-dockerfile-libpq
cs_betty/cartsnitch-fork-test:fix/deploy-dev-resilience
cs_betty/cartsnitch-fork-test:feat/ci-api-image-build-v3
cs_betty/cartsnitch-fork-test:feat/ci-api-image-build-v2
cs_betty/cartsnitch-fork-test:feat/playwright-setup
cs_betty/cartsnitch-fork-test:feat/msw-integration-tests
cs_betty/cartsnitch-fork-test:feat/ci-api-image-build
cs_betty/cartsnitch-fork-test:fix/remove-polyrepo-ci-leftovers
cs_betty/cartsnitch-fork-test:fix/receiptwitness-local-common
cs_betty/cartsnitch-fork-test:feat/api-alembic-dockerfile
cs_betty/cartsnitch-fork-test:feat/ci-receiptwitness-build
cs_betty/cartsnitch-fork-test:fix/alembic-in-dockerfile
cs_betty/cartsnitch-fork-test:docs/uat-runbook
cs_betty/cartsnitch-fork-test:fix/hashed-password-nullable
cs_betty/cartsnitch-fork-test:feat/utility-functions-tests
cs_betty/cartsnitch-fork-test:fix/auth-url-same-origin
cs_betty/cartsnitch-fork-test:fix/auth-contract-mismatch
cs_betty/cartsnitch-fork-test:feat/add-auth-image-to-deploy-dev
cs_betty/cartsnitch-fork-test:fix/deploy-dev-kustomize-install-clean
cs_betty/cartsnitch-fork-test:feat/uat-seed-user
cs_betty/cartsnitch-fork-test:fix/seed-uat-ctofixes
cs_betty/cartsnitch-fork-test:feature/better-auth
cs_betty/cartsnitch-fork-test:fix/deploy-dev-install-kustomize
cs_betty/cartsnitch-fork-test:fix/deploy-dev-github-app-token-cross-repo
cs_betty/cartsnitch-fork-test:remove-trigger-uat
cs_betty/cartsnitch-fork-test:charlie/ci-remove-trigger-uat
cs_betty/cartsnitch-fork-test:feat/deploy-dev-uat-trigger
cs_betty/cartsnitch-fork-test:feature/repo-consolidation
cs_betty/cartsnitch-fork-test:content/shrinkflation-consumer-faq
cs_betty/cartsnitch-fork-test:content/launch-marketing-pages
cs_betty/cartsnitch-fork-test:debbie/proper-cache-and-dockerhub-cleanup
cs_betty/cartsnitch-fork-test:debbie/fix-frontend-docker-cache
cs_betty/cartsnitch-fork-test:fix/dockerfile-numeric-uid
cs_betty/cartsnitch-fork-test:fix/frontend-dockerfile-user-101
cs_betty/cartsnitch-fork-test:content/what-is-unit-price
cs_betty/cartsnitch-fork-test:content/cartsnitch-vs-flipp
cs_betty/cartsnitch-fork-test:fix/non-root-nginx
cs_betty/cartsnitch-fork-test:content/shrinkflation-series-social-copy
cs_betty/cartsnitch-fork-test:content/shrinkflation-top-10
cs_betty/cartsnitch-fork-test:content/fix-launch-stats
cs_betty/cartsnitch-fork-test:content/email-welcome-sequence-links
cs_betty/cartsnitch-fork-test:content/pre-launch-social-mar25-26
cs_betty/cartsnitch-fork-test:content/shrinkflation-series-alignment
cs_betty/cartsnitch-fork-test:content/shrinkflation-series-1-cereal
cs_betty/cartsnitch-fork-test:content/founder-blog-post
cs_betty/cartsnitch-fork-test:content/launch-calendar
cs_betty/cartsnitch-fork-test:content/seo-comparison-article
cs_betty/cartsnitch-fork-test:content/phase-2-onboarding-faq
cs_betty/cartsnitch-fork-test:fix/dockerhub-auth-rate-limit
cs_betty/cartsnitch-fork-test:test/arc-runner-validation
cs_betty/cartsnitch-fork-test:calver-tagging
cs_betty/cartsnitch-fork-test:frankie/add-marketing-content
cs_betty/cartsnitch-fork-test:fix/runner-label
cs_betty/cartsnitch-fork-test:fix/ci-runner-and-mirrors
cs_betty/cartsnitch-fork-test:fix/ci-runner-label
cs_betty/cartsnitch-fork-test:revert-ghcr-mirrors
cs_betty/cartsnitch-fork-test:fix/dockerfile-use-dockerhub-images
cs_betty/cartsnitch-fork-test:fix/ghcr-mirror-base-images
cs_betty/cartsnitch-fork-test:fix/ci-remove-dockerhub-login
cs_betty/cartsnitch-fork-test:fix/ci-docker-ratelimit
cs_betty/cartsnitch-fork-test:feature/dockerfile
cs_betty/cartsnitch-fork-test:feature/core-screens
cs_betty/cartsnitch-fork-test:feature/renovate-config
cs_betty/cartsnitch-fork-test:ci/add-github-actions
cartsnitch/cartsnitch:uat
cartsnitch/cartsnitch:dev
cartsnitch/cartsnitch:barcode-betty/car-1428-revert-deploy-base
cartsnitch/cartsnitch:main
cartsnitch/cartsnitch:barcode-betty/car-1374-checkout-ref-match-base
cartsnitch/cartsnitch:barcode-betty/car-1370-deploy-base-dev
cartsnitch/cartsnitch:barcode-betty/car-1303-widen-alembic-via-migration
cartsnitch/cartsnitch:betty/car-1078-email-worker-dragonfly-reset
cartsnitch/cartsnitch:betty/car-1218-lighthouse-ci
cartsnitch/cartsnitch:betty/car-1319-sha-tag-fix
cartsnitch/cartsnitch:betty/car-1318-frontend-kustomize-bump-target
cartsnitch/cartsnitch:betty/car-1276-auth-image-build-fix
cartsnitch/cartsnitch:betty/car-1276-auth-health-error-log
cartsnitch/cartsnitch:betty/car-1216-deploy-non-fail-merge
cartsnitch/cartsnitch:betty/car-1215-react-router-audit
cartsnitch/cartsnitch:barcode-betty/car-1078-email-worker-dragonfly-reset
cartsnitch/cartsnitch:betty/car-964-gitea-registry-v2
cartsnitch/cartsnitch:barcode-betty/gitea-registry
cartsnitch/cartsnitch:fix/dispose-engine-import
cartsnitch/cartsnitch:carl/car-933-gitea-registry
cartsnitch/cartsnitch:barcode-betty/fix-dispose-engine-import
cartsnitch/cartsnitch:betty/fix-dead-dispose-engine-import
cartsnitch/cartsnitch:betty/car-900-gitea-workflows
cartsnitch/cartsnitch:barcode-betty/move-workflows-to-gitea
cartsnitch/cartsnitch:betty/fix-gitea-ci-secrets
cartsnitch/cartsnitch:betty/car-869-gitea-actions-cartsnitch
cartsnitch/cartsnitch:betty/car-862-fix-auth-build
cartsnitch/cartsnitch:betty/car-812-uat-seed-tooling
cartsnitch/cartsnitch:betty/car-555-health-check-db
cartsnitch/cartsnitch:feature/dragonfly-rate-limiting
cartsnitch/cartsnitch:betty/car-749-remove-auth-ci
cartsnitch/cartsnitch:fix/car-741-login-redirect-race-clean
cartsnitch/cartsnitch:fix/car-741-login-redirect-race-v2
cartsnitch/cartsnitch:fix/car-741-login-redirect-race
cartsnitch/cartsnitch:fix/car-709-receiptwitness-grype-cves
cartsnitch/cartsnitch:fix/car-620-grype-ignore-and-cache-bust
cartsnitch/cartsnitch:fix/car-656-deploy-commit-guard
cartsnitch/cartsnitch:fix/car-663-bcrypt-cost-factor
cartsnitch/cartsnitch:fix/car-676-axe-color-contrast
cartsnitch/cartsnitch:betty/car-673-fix-e2e-playwright-mock-auth
cartsnitch/cartsnitch:fix/car-665-eslint-unused-vars
cartsnitch/cartsnitch:betty/car-548-email-verification
cartsnitch/cartsnitch:betty/car-552-redis-rate-limiting
cartsnitch/cartsnitch:fix/car-620-remaining-docker-cves
cartsnitch/cartsnitch:fix/car-620-grype-only-fixed
cartsnitch/cartsnitch:fix/car-616-remediate-docker-cves
cartsnitch/cartsnitch:feature/grype-image-scanning
cartsnitch/cartsnitch:fix/car-608-auth-health-check
cartsnitch/cartsnitch:fix/auth-config-validation
cartsnitch/cartsnitch:betty/car-553-redis-cache
cartsnitch/cartsnitch:betty/car-554-audit-logging
cartsnitch/cartsnitch:betty/car-551-remove-mock-auth
cartsnitch/cartsnitch:feature/trivy-image-scanning
cartsnitch/cartsnitch:betty/car-599-vite-audit-fix
cartsnitch/cartsnitch:betty/car-580-n1-normalization-query
cartsnitch/cartsnitch:fix/receiptwitness-config-validation
cartsnitch/cartsnitch:feature/cart-550-api-lifespan-pooling
cartsnitch/cartsnitch:fix/cors-security-headers
cartsnitch/cartsnitch:feature/public-endpoint-validation
cartsnitch/cartsnitch:fix/rate-limit-token-hash
cartsnitch/cartsnitch:fix/hardcoded-secrets
cartsnitch/cartsnitch:betty/fix-alembic-create-all-commit
cartsnitch/cartsnitch:betty/car-517-domain-tables-migration
cartsnitch/cartsnitch:betty/fix-alembic-model-import
cartsnitch/cartsnitch:betty/fix-session-cookie-parsing
cartsnitch/cartsnitch:betty/fix-api-database-url-fallback
cartsnitch/cartsnitch:betty/revert-sha256-session-hash
cartsnitch/cartsnitch:betty/fix-session-token-hash
cartsnitch/cartsnitch:betty/fix-secure-session-cookie
cartsnitch/cartsnitch:fix/alembic-version-table-width
cartsnitch/cartsnitch:betty/fix-uat-users-table-bootstrap
cartsnitch/cartsnitch:betty/fix-alembic-fresh-db
cartsnitch/cartsnitch:betty/fix-libpq5-dockerfile
cartsnitch/cartsnitch:fix/alembic-percent-escape
cartsnitch/cartsnitch:betty/fix-email-inbound-token-server-default
cartsnitch/cartsnitch:betty/fix-sha-tag-format-long
cartsnitch/cartsnitch:betty/fix-ci-dev-uat-branches
cartsnitch/cartsnitch:betty/fix-alembic-dockerfile
cartsnitch/cartsnitch:betty/fix-uat-trustedorigins
cartsnitch/cartsnitch:feat/sync-common-email-inbound-token
cartsnitch/cartsnitch:fix/ci-api-dockerfile-path
cartsnitch/cartsnitch:fix/ci-deploy-race
cartsnitch/cartsnitch:fix/email-in-address-hotfix
cartsnitch/cartsnitch:feat/ci-deploy-uat
cartsnitch/cartsnitch:fix/npm-audit-vulnerabilities
cartsnitch/cartsnitch:pr108
cartsnitch/cartsnitch:fix/inbound-email-500
cartsnitch/cartsnitch:fix/email-in-address-routing
cartsnitch/cartsnitch:feat/email-in-settings
cartsnitch/cartsnitch:sync/api-2026-04-03
cartsnitch/cartsnitch:sync/receiptwitness-2026-04-03
cartsnitch/cartsnitch:fix/api-date-schema-types
cartsnitch/cartsnitch:fix/dashboard-hardcoded-product-ids
cartsnitch/cartsnitch:fix/remove-timestamp-mixin-from-mismatched-models
cartsnitch/cartsnitch:feature/dev-seed-script
cartsnitch/cartsnitch:fix/user-id-str-type
cartsnitch/cartsnitch:fix/signed-cookie-parsing
cartsnitch/cartsnitch:fix/restore-token-hash
cartsnitch/cartsnitch:fix/secure-cookie-name
cartsnitch/cartsnitch:fix/frontend-api-routes
cartsnitch/cartsnitch:fix/session-token-hash
cartsnitch/cartsnitch:fix/api-v1-prefix
cartsnitch/cartsnitch:fix/registration-redirect
cartsnitch/cartsnitch:fix/lighthouse-ci-crash
cartsnitch/cartsnitch:fix/api-auto-migration
cartsnitch/cartsnitch:feat/e2e-journey-tests
cartsnitch/cartsnitch:fix/users-id-text
cartsnitch/cartsnitch:feat/lighthouse-ci
cartsnitch/cartsnitch:feat/axe-core-playwright
cartsnitch/cartsnitch:fix/deploy-dev-resilient
cartsnitch/cartsnitch:feat/ci-npm-audit
cartsnitch/cartsnitch:fix/dockerhub-login-cicd
cartsnitch/cartsnitch:fix/deploy-dev-resilient-v2
cartsnitch/cartsnitch:fix/auth-session-table-mapping
cartsnitch/cartsnitch:fix/api-dockerfile-libpq
cartsnitch/cartsnitch:fix/deploy-dev-resilience
cartsnitch/cartsnitch:feat/ci-api-image-build-v3
cartsnitch/cartsnitch:feat/ci-api-image-build-v2
cartsnitch/cartsnitch:feat/playwright-setup
cartsnitch/cartsnitch:feat/msw-integration-tests
cartsnitch/cartsnitch:feat/ci-api-image-build
cartsnitch/cartsnitch:fix/remove-polyrepo-ci-leftovers
cartsnitch/cartsnitch:fix/receiptwitness-local-common
cartsnitch/cartsnitch:feat/api-alembic-dockerfile
cartsnitch/cartsnitch:feat/ci-receiptwitness-build
cartsnitch/cartsnitch:fix/alembic-in-dockerfile
cartsnitch/cartsnitch:docs/uat-runbook
cartsnitch/cartsnitch:fix/hashed-password-nullable
cartsnitch/cartsnitch:feat/utility-functions-tests
cartsnitch/cartsnitch:fix/auth-url-same-origin
cartsnitch/cartsnitch:fix/auth-contract-mismatch
cartsnitch/cartsnitch:feat/add-auth-image-to-deploy-dev
cartsnitch/cartsnitch:fix/deploy-dev-kustomize-install-clean
cartsnitch/cartsnitch:feat/uat-seed-user
cartsnitch/cartsnitch:fix/seed-uat-ctofixes
cartsnitch/cartsnitch:feature/better-auth
cartsnitch/cartsnitch:fix/deploy-dev-install-kustomize
cartsnitch/cartsnitch:fix/deploy-dev-github-app-token-cross-repo
cartsnitch/cartsnitch:remove-trigger-uat
cartsnitch/cartsnitch:charlie/ci-remove-trigger-uat
cartsnitch/cartsnitch:feat/deploy-dev-uat-trigger
cartsnitch/cartsnitch:feature/repo-consolidation
cartsnitch/cartsnitch:content/shrinkflation-consumer-faq
cartsnitch/cartsnitch:content/launch-marketing-pages
cartsnitch/cartsnitch:debbie/proper-cache-and-dockerhub-cleanup
cartsnitch/cartsnitch:debbie/fix-frontend-docker-cache
cartsnitch/cartsnitch:fix/dockerfile-numeric-uid
cartsnitch/cartsnitch:fix/frontend-dockerfile-user-101
cartsnitch/cartsnitch:content/what-is-unit-price
cartsnitch/cartsnitch:content/cartsnitch-vs-flipp
cartsnitch/cartsnitch:fix/non-root-nginx
cartsnitch/cartsnitch:content/shrinkflation-series-social-copy
cartsnitch/cartsnitch:content/shrinkflation-top-10
cartsnitch/cartsnitch:content/fix-launch-stats
cartsnitch/cartsnitch:content/email-welcome-sequence-links
cartsnitch/cartsnitch:content/pre-launch-social-mar25-26
cartsnitch/cartsnitch:content/shrinkflation-series-alignment
cartsnitch/cartsnitch:content/shrinkflation-series-1-cereal
cartsnitch/cartsnitch:content/founder-blog-post
cartsnitch/cartsnitch:content/launch-calendar
cartsnitch/cartsnitch:content/seo-comparison-article
cartsnitch/cartsnitch:content/phase-2-onboarding-faq
cartsnitch/cartsnitch:fix/dockerhub-auth-rate-limit
cartsnitch/cartsnitch:test/arc-runner-validation
cartsnitch/cartsnitch:calver-tagging
cartsnitch/cartsnitch:frankie/add-marketing-content
cartsnitch/cartsnitch:fix/runner-label
cartsnitch/cartsnitch:fix/ci-runner-and-mirrors
cartsnitch/cartsnitch:fix/ci-runner-label
cartsnitch/cartsnitch:revert-ghcr-mirrors
cartsnitch/cartsnitch:fix/dockerfile-use-dockerhub-images
cartsnitch/cartsnitch:fix/ghcr-mirror-base-images
cartsnitch/cartsnitch:fix/ci-remove-dockerhub-login
cartsnitch/cartsnitch:fix/ci-docker-ratelimit
cartsnitch/cartsnitch:feature/dockerfile
cartsnitch/cartsnitch:feature/core-screens
cartsnitch/cartsnitch:feature/renovate-config
cartsnitch/cartsnitch:ci/add-github-actions
cs_betty/cartsnitch-fork-test:v2026.05.04
cs_betty/cartsnitch-fork-test:v2026.04.20
cs_betty/cartsnitch-fork-test:v2026.04.19.4
cs_betty/cartsnitch-fork-test:v2026.04.19.3
cs_betty/cartsnitch-fork-test:v2026.04.19.2
cs_betty/cartsnitch-fork-test:v2026.04.19
cs_betty/cartsnitch-fork-test:v2026.04.15.2
cs_betty/cartsnitch-fork-test:v2026.04.15
cs_betty/cartsnitch-fork-test:v2026.04.14.4
cs_betty/cartsnitch-fork-test:v2026.04.14.3
cs_betty/cartsnitch-fork-test:v2026.04.14.2
cs_betty/cartsnitch-fork-test:v2026.04.14
cs_betty/cartsnitch-fork-test:v2026.04.05
cs_betty/cartsnitch-fork-test:v2026.04.03.8
cs_betty/cartsnitch-fork-test:v2026.04.03.7
cs_betty/cartsnitch-fork-test:v2026.04.03.6
cs_betty/cartsnitch-fork-test:v2026.04.03.5
cs_betty/cartsnitch-fork-test:v2026.04.03.4
cs_betty/cartsnitch-fork-test:v2026.04.03.3
cs_betty/cartsnitch-fork-test:v2026.04.03.2
cs_betty/cartsnitch-fork-test:v2026.04.03
cs_betty/cartsnitch-fork-test:v2026.04.02
cs_betty/cartsnitch-fork-test:v2026.04.01.9
cs_betty/cartsnitch-fork-test:v2026.04.01.8
cs_betty/cartsnitch-fork-test:v2026.04.01.7
cs_betty/cartsnitch-fork-test:v2026.04.01.6
cs_betty/cartsnitch-fork-test:v2026.04.01.5
cs_betty/cartsnitch-fork-test:v2026.04.01.4
cs_betty/cartsnitch-fork-test:v2026.04.01.3
cs_betty/cartsnitch-fork-test:v2026.04.01.2
cs_betty/cartsnitch-fork-test:v2026.04.01
cs_betty/cartsnitch-fork-test:v2026.03.31.8
cs_betty/cartsnitch-fork-test:v2026.03.31.7
cs_betty/cartsnitch-fork-test:v2026.03.31.6
cs_betty/cartsnitch-fork-test:v2026.03.31.5
cs_betty/cartsnitch-fork-test:v2026.03.31.4
cs_betty/cartsnitch-fork-test:v2026.03.31.3
cs_betty/cartsnitch-fork-test:v2026.03.31.2
cs_betty/cartsnitch-fork-test:v2026.03.31
cs_betty/cartsnitch-fork-test:v2026.03.30.10
cs_betty/cartsnitch-fork-test:v2026.03.30.9
cs_betty/cartsnitch-fork-test:v2026.03.30.8
cs_betty/cartsnitch-fork-test:v2026.03.30.7
cs_betty/cartsnitch-fork-test:v2026.03.30.6
cs_betty/cartsnitch-fork-test:v2026.03.30.5
cs_betty/cartsnitch-fork-test:v2026.03.30.4
cs_betty/cartsnitch-fork-test:v2026.03.30.3
cs_betty/cartsnitch-fork-test:v2026.03.30.2
cs_betty/cartsnitch-fork-test:v2026.03.30
cs_betty/cartsnitch-fork-test:v2026.03.29.5
cs_betty/cartsnitch-fork-test:v2026.03.29.4
cs_betty/cartsnitch-fork-test:v2026.03.29.3
cs_betty/cartsnitch-fork-test:v2026.03.29.2
cs_betty/cartsnitch-fork-test:v2026.03.29
cs_betty/cartsnitch-fork-test:v2026.03.28.6
cs_betty/cartsnitch-fork-test:v2026.03.28.5
cs_betty/cartsnitch-fork-test:v2026.03.28.4
cs_betty/cartsnitch-fork-test:v2026.03.28.3
cs_betty/cartsnitch-fork-test:v2026.03.28.2
cs_betty/cartsnitch-fork-test:v2026.03.28
cs_betty/cartsnitch-fork-test:v2026.03.24.2
cs_betty/cartsnitch-fork-test:v2026.03.24
cs_betty/cartsnitch-fork-test:v2026.03.22.2
cs_betty/cartsnitch-fork-test:v2026.03.22
cs_betty/cartsnitch-fork-test:v2026.03.21.4
cs_betty/cartsnitch-fork-test:v2026.03.21.3
cs_betty/cartsnitch-fork-test:v2026.03.21.2
cs_betty/cartsnitch-fork-test:v2026.03.21
cs_betty/cartsnitch-fork-test:v2026.03.20.3
cs_betty/cartsnitch-fork-test:v2026.03.20.2
cs_betty/cartsnitch-fork-test:v2026.03.20
cartsnitch/cartsnitch:v2026.06.08
cartsnitch/cartsnitch:v2026.06.07
cartsnitch/cartsnitch:v2026.06.06
cartsnitch/cartsnitch:v2026.06.04
cartsnitch/cartsnitch:v2026.05.04
cartsnitch/cartsnitch:v2026.04.20
cartsnitch/cartsnitch:v2026.04.19.4
cartsnitch/cartsnitch:v2026.04.19.3
cartsnitch/cartsnitch:v2026.04.19.2
cartsnitch/cartsnitch:v2026.04.19
cartsnitch/cartsnitch:v2026.04.15.2
cartsnitch/cartsnitch:v2026.04.15
cartsnitch/cartsnitch:v2026.04.14.4
cartsnitch/cartsnitch:v2026.04.14.3
cartsnitch/cartsnitch:v2026.04.14.2
cartsnitch/cartsnitch:v2026.04.14
cartsnitch/cartsnitch:v2026.04.05
cartsnitch/cartsnitch:v2026.04.03.8
cartsnitch/cartsnitch:v2026.04.03.7
cartsnitch/cartsnitch:v2026.04.03.6
cartsnitch/cartsnitch:v2026.04.03.5
cartsnitch/cartsnitch:v2026.04.03.4
cartsnitch/cartsnitch:v2026.04.03.3
cartsnitch/cartsnitch:v2026.04.03.2
cartsnitch/cartsnitch:v2026.04.03
cartsnitch/cartsnitch:v2026.04.02
cartsnitch/cartsnitch:v2026.04.01.9
cartsnitch/cartsnitch:v2026.04.01.8
cartsnitch/cartsnitch:v2026.04.01.7
cartsnitch/cartsnitch:v2026.04.01.6
cartsnitch/cartsnitch:v2026.04.01.5
cartsnitch/cartsnitch:v2026.04.01.4
cartsnitch/cartsnitch:v2026.04.01.3
cartsnitch/cartsnitch:v2026.04.01.2
cartsnitch/cartsnitch:v2026.04.01
cartsnitch/cartsnitch:v2026.03.31.8
cartsnitch/cartsnitch:v2026.03.31.7
cartsnitch/cartsnitch:v2026.03.31.6
cartsnitch/cartsnitch:v2026.03.31.5
cartsnitch/cartsnitch:v2026.03.31.4
cartsnitch/cartsnitch:v2026.03.31.3
cartsnitch/cartsnitch:v2026.03.31.2
cartsnitch/cartsnitch:v2026.03.31
cartsnitch/cartsnitch:v2026.03.30.10
cartsnitch/cartsnitch:v2026.03.30.9
cartsnitch/cartsnitch:v2026.03.30.8
cartsnitch/cartsnitch:v2026.03.30.7
cartsnitch/cartsnitch:v2026.03.30.6
cartsnitch/cartsnitch:v2026.03.30.5
cartsnitch/cartsnitch:v2026.03.30.4
cartsnitch/cartsnitch:v2026.03.30.3
cartsnitch/cartsnitch:v2026.03.30.2
cartsnitch/cartsnitch:v2026.03.30
cartsnitch/cartsnitch:v2026.03.29.5
cartsnitch/cartsnitch:v2026.03.29.4
cartsnitch/cartsnitch:v2026.03.29.3
cartsnitch/cartsnitch:v2026.03.29.2
cartsnitch/cartsnitch:v2026.03.29
cartsnitch/cartsnitch:v2026.03.28.6
cartsnitch/cartsnitch:v2026.03.28.5
cartsnitch/cartsnitch:v2026.03.28.4
cartsnitch/cartsnitch:v2026.03.28.3
cartsnitch/cartsnitch:v2026.03.28.2
cartsnitch/cartsnitch:v2026.03.28
cartsnitch/cartsnitch:v2026.03.24.2
cartsnitch/cartsnitch:v2026.03.24
cartsnitch/cartsnitch:v2026.03.22.2
cartsnitch/cartsnitch:v2026.03.22
cartsnitch/cartsnitch:v2026.03.21.4
cartsnitch/cartsnitch:v2026.03.21.3
cartsnitch/cartsnitch:v2026.03.21.2
cartsnitch/cartsnitch:v2026.03.21
cartsnitch/cartsnitch:v2026.03.20.3
cartsnitch/cartsnitch:v2026.03.20.2
cartsnitch/cartsnitch:v2026.03.20
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
fe69b9554b |
content: replace unvalidated stats in launch announcement with defensible language
- "847 products" → "hundreds of products" (blog + press release) - "$336/year" removed from numbers table; replaced with qualitative savings language - Press release savings claim replaced with general language pending real data (CAR-162) Refs: CAR-172, CAR-160 Co-Authored-By: Paperclip <noreply@paperclip.ing> |
1 changed files with 6 additions and 6 deletions
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: "CartSnitch Launch Announcement — Press Release / Blog Post"
|
||||
status: draft
|
||||
last_updated: 2026-03-18
|
||||
last_updated: 2026-03-21
|
||||
description: "Launch announcement template for press release distribution and blog publication. Dual-format: blog version and press release version."
|
||||
---
|
||||
|
||||
@@ -15,7 +15,7 @@ description: "Launch announcement template for press release distribution and bl
|
||||
|
||||
Your grocery bill went up 25% since 2020. But the sticker price only tells half the story.
|
||||
|
||||
Over the past year, we tracked 10,000+ grocery products across 12 retail chains. We found 847 products that shrank — same price, less product. That's a hidden 10-15% price increase that doesn't appear in any inflation statistic. Your receipt doesn't show it. Your store's app doesn't flag it. Nobody tells you.
|
||||
Over the past year, we tracked 10,000+ grocery products across 12 retail chains. We found hundreds of products that shrank — same price, less product. That's a hidden 10-15% price increase that doesn't appear in any inflation statistic. Your receipt doesn't show it. Your store's app doesn't flag it. Nobody tells you.
|
||||
|
||||
Today, we're changing that. **CartSnitch is now available for early access.**
|
||||
|
||||
@@ -43,8 +43,8 @@ CartSnitch gives consumers the same price intelligence that retailers have alway
|
||||
|
||||
- **$14,000** — What the average US family spends on groceries annually
|
||||
- **25%** — Grocery price increase since January 2020
|
||||
- **847** — Products in our database that shrank in the past 12 months
|
||||
- **$336/year** — Potential savings from buying the same items at the cheapest store
|
||||
- **Hundreds** — Products in our database flagged for shrinkflation
|
||||
- **Real savings** — Buy the same items at the cheapest store and save on your grocery bill
|
||||
|
||||
#### Get started
|
||||
|
||||
@@ -66,7 +66,7 @@ CartSnitch is launching with Meijer support in Southeast Michigan. Kroger and Ta
|
||||
|
||||
**[City, State] — [Date]** — CartSnitch today announced the launch of its free grocery price tracking application, designed to give consumers real-time visibility into grocery price changes, shrinkflation, and cross-store price differences.
|
||||
|
||||
The tool connects to shoppers' existing store loyalty accounts to automatically track prices for every product purchased. CartSnitch's analysis of over 10,000 products across 12 retail chains found that 847 products experienced shrinkflation — reduced package sizes at the same or higher prices — in the past 12 months, representing a hidden 10-15% cost increase invisible to consumers.
|
||||
The tool connects to shoppers' existing store loyalty accounts to automatically track prices for every product purchased. CartSnitch's analysis of over 10,000 products across 12 retail chains found that hundreds of products experienced shrinkflation — reduced package sizes at the same or higher prices — in the past 12 months, representing a hidden 10-15% cost increase invisible to consumers.
|
||||
|
||||
"Grocery prices have increased 25% since 2020, but the real cost to families is even higher when you account for shrinkflation," said [spokesperson]. "CartSnitch exists to close the information gap between retailers and consumers. The same data that helps stores optimize pricing should be available to the people paying those prices."
|
||||
|
||||
@@ -78,7 +78,7 @@ The tool connects to shoppers' existing store loyalty accounts to automatically
|
||||
- **Price drop alerts** with user-defined target pricing
|
||||
- **Complete purchase history** with search and trend analysis
|
||||
|
||||
CartSnitch estimates that families who use cross-store price comparison for common items can save an average of $336 per year. Combined with shrinkflation awareness and price-timing optimization, total savings potential ranges from $500-$1,400 annually.
|
||||
Families who use cross-store price comparison for common items can save meaningfully on their grocery bills each year. Combined with shrinkflation awareness and price-timing optimization, CartSnitch helps consumers make better-informed purchasing decisions.
|
||||
|
||||
The application launches with Meijer integration in Southeast Michigan, with Kroger and Target support expected within weeks. Additional retailers including Walmart, Costco, and Aldi are on the development roadmap.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.