Go to file
pavlov346346-source 14e3d6b45b fix: merge addon pills into one card, wire it to editable Settings
Two related fixes reported directly against live screenshots:

1. addonRow rendered each addon ("Напитки", "Чайная станция", ...) as
   its own tall bordered pill sitting side by side -- disjointed, and
   unlike the single-card "Полезные дополнения" treatment in the
   referenced design. Now draws one card with a heading
   ("Рекомендуем добавить") containing all the icon+label items,
   matching how checklistCard already works.

2. The addon list and the "Всё под контролем" checklist were hardcoded
   constants in the canvas module, completely bypassing the app's
   existing editable Client Offer Settings (Настройки → Предложение →
   "Дополнительно к заказу", textarea-backed extraServices/controlLines
   the user can already edit for the old templates). preparedSnapshot
   now attaches the resolved controlLines/extraServices/titles onto
   every snapshot; the 8 signature templates read them via a local
   shadowing const (falls back to the previous defaults when nothing
   is configured), so editing that Settings textarea now actually
   changes what shows up in these templates too, on all 8 of them from
   one change since addonRow/checklistCard are shared helpers.

Verified locally: default list (6 items) lays out cleanly in one card
with 2-line wrapping where needed; a snapshot with custom
controlLines/extraServices renders those exact custom strings instead
of the defaults, confirming the wiring actually works end to end and
isn't just falling back silently.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 11:28:18 +03:00
.github/workflows fix: gate production promotion on QA success; remove dead data-layer files 2026-09-12 14:08:38 +03:00
docs fix: reconcile version/test drift from the unreviewed production merge 2026-09-12 14:40:22 +03:00
ops Add v17.8.2 owner workspace onboarding migration 2026-09-14 10:57:45 +03:00
public fix: merge addon pills into one card, wire it to editable Settings 2026-09-16 11:28:18 +03:00
supabase/functions Merge production (account center + login redesign) into main 2026-09-12 14:36:52 +03:00
tests fix: reconcile version/test drift from the unreviewed production merge 2026-09-12 14:40:22 +03:00
.gitignore Caterium v17.6.0 - GitHub Cloudflare autodeploy 2026-09-07 15:29:20 +03:00
deploy-trigger.txt ci: verify fresh auth cache on Timeweb 2026-09-12 08:15:01 +03:00
GITHUB-CLOUDFLARE-SETUP.txt docs: mark Cloudflare as verified-production fallback 2026-09-11 09:36:55 +03:00
package-lock.json Fix high-severity npm audit findings 2026-09-11 07:51:06 +03:00
package.json feat: add 6 new client-offer PDF templates, archive the old 13 2026-09-15 18:27:23 +03:00
PUSH-TO-GITHUB.bat Caterium v17.6.0 - GitHub Cloudflare autodeploy 2026-09-07 15:29:20 +03:00
README.md docs: make Timeweb production source of truth 2026-09-11 09:36:48 +03:00
TIMEWEB-APP-PLATFORM.md Infra: production branch promotion for app.caterium.ru 2026-09-09 19:09:32 +03:00
UPDATE-FROM-REMOTE-AND-PUSH.bat Caterium v17.6.0 - GitHub Cloudflare autodeploy 2026-09-07 15:29:20 +03:00
wrangler.jsonc Caterium v17.6.0 - GitHub Cloudflare autodeploy 2026-09-07 15:29:20 +03:00

Caterium

Caterium catering SaaS frontend with Supabase backend.

Production

Primary production URL: https://app.caterium.ru

Production frontend is hosted on Timeweb Cloud App Platform:

  • repository: pavlov346346-source/caterium-app
  • branch: production
  • publish directory: public
  • auto deploy: enabled for production

main is the integration branch. GitHub Actions runs the full Caterium QA workflow for each push to main. Only a successful QA run may promote the verified commit to production.

The Cloudflare Worker ancient-sound-04ab is retained only as a fallback. It is not the primary production target and must not replace the Timeweb deployment unless an intentional fallback procedure is being used.

Deploy checks

npm ci
npm audit --audit-level=high
npm run check:deploy
npm run test:e2e

The QA workflow performs these checks automatically. High/critical npm audit findings block promotion.

Cloudflare fallback

Use Cloudflare only as a backup deployment target. Manual fallback deployment is available as:

npm run deploy:cloudflare-backup

When configuring Git-based Cloudflare fallback deployment, use the verified production branch rather than main so the fallback receives the same QA-approved commit as Timeweb.

Backend

Supabase Edge Functions are versioned under supabase/functions/. SQL migration/history files live under ops/sql/. Database DDL changes should be applied as migrations and kept in repository history.

See TIMEWEB-APP-PLATFORM.md for the production hosting checklist.