8f1b13f312
infra(deploy): mappa compose — VDS рядом с общей postgres:16 (stack 26, Portainer)
2026-08-23 18:33:59 +03:00
96a4deb771
chore(stand): мок-publish обоих пиров зелёный — ozon+ym 0.1.0, readmeTemplate для ozon (bind-mount), state сброшен
2026-08-21 10:45:36 +03:00
6b30daa646
расписания sched убраны (ozon 2:00, yandex 2:30) — тестовый период, только manual-раны
2026-08-21 01:54:51 +03:00
225d235cd5
schedd 0.8.0 → 0.9.0: cancel-форвардинг фикс (диспетчер → per-task раннер)
...
cancel-тест на ozon (полный ран, стоп на generate): зелёный
- [sched] [cancel] POST <cancelUrl> runId + ack status=200
- воркер: [cancel] received/flag set, generate done → stop before stage fix
- fix/build/postman/state/publish НЕ выполнялись, state.json остался {}
- ран: cancelled (error: cancelled by user)
2026-08-21 00:47:50 +03:00
478b69038e
tasks: handoff — cancel root cause (sched 0.9.0 не применён), мок-publish зелёный, инцидент закрыт
2026-08-21 00:39:35 +03:00
508e69af0e
tasks: cancel-диагностика — ТЗ cancel-signal-logging всем (sched+ozon+ym), воркер стоп
2026-08-21 00:17:29 +03:00
e510309906
fix: output/ полностью из git (вложенный путь в gitignore)
2026-08-20 23:52:25 +03:00
8bc4f5ec84
tasks: cancel-канал — выбор A (cancelUrl), письмо sched 00:52Z, handoff
2026-08-20 23:52:06 +03:00
1c76bccd46
fix: убрать генераторные артефакты data-ozon/output из git (gitignore)
2026-08-20 23:50:01 +03:00
5d57f49e80
ops: schedd 0.7.0 (cancelUrl-канал), dry-run мок-publish оба зелёные, ТЗ worker-cancel-url
...
- schedd.Dockerfile: daemon 0.6.0 → 0.7.0 (cancel-канал: cancelUrl в accepted-envelope)
- tasks.json: publish+githubDistro с dryRun:true у обеих тасок (мок-publish dry, ноль мутаций)
- compose: DRY_RUN=1 безопасный дефолт; ozon state персистентен (bind-mount, noop работает)
- тесты: мок-publish dry — yandex 13/13, ozon 10/10, GitHub/Gitea/verdaccio чисто
- баг cancel воспроизведён (воркер продолжает после cancel) → ТЗ worker-cancel-url обеим командам
2026-08-20 23:49:51 +03:00
7ec721e237
ops: schedd 0.6.0 — timeoutMs применяется к существующим таскам, absent=-1 дефолт (проверено живьём)
...
- schedd.Dockerfile: daemon 0.5.0 → 0.6.0 (core 0.46.0), фикс applyTask timeoutMs + absent=-1
- tasks.json: timeoutMs убран (дефолт -1, требование vitya 'можно не указывать')
- верификация: явный -1 применился к существующим; после удаления из файла live-sync дал -1
2026-08-20 22:54:25 +03:00
3060263b9d
ops: стенд — schedd 0.5.0 (run-deadline), timeoutMs -1, ozon bind-mount state на хост
...
- schedd.Dockerfile: daemon 0.4.2 → 0.5.0 (фикс envelope-дыра/statusUrl/poll-retry/run-deadline)
- tasks.json: timeoutMs -1 на обе пайплайн-таски (никогда не авто-терминировать)
- docker-compose: ozon /app/data + /app/state.json bind-mount на хост (как ym)
- data-ozon/state.json: baked-снапшот state из образа
2026-08-20 22:50:56 +03:00
c99e0472b1
ops: yandex dry-run SUCCESS (11/11 стадий), ozon до build (tsc), мок unisender работает
2026-08-20 22:04:01 +03:00
e6c43314e9
ops: мок unisender (письма в data-mail), dry-run ym до build (generate ✓), ТЗ: JSDoc */, poll-флейк sched
2026-08-20 21:26:51 +03:00
61e1a9e61a
tasks+ops: ozon-фиксы приняты, стенд пересобран (их Dockerfile), envelope ✓; bridge на вложенный контракт
2026-08-20 20:46:59 +03:00
bfcc4d5e72
ops(sched-pipelines): локальный стенд sched + ym/ozon воркеры + browser/ntfy/alert-bridge; ТЗ разосланы
2026-08-20 20:07:50 +03:00
5b3a1b2f62
chore(deploy): pilonuxt 64c2539 LIVE — admin-api 0.11.0 array-canon (categories 6+6 OK, embedded admin-api 200)
2026-08-16 13:26:22 +03:00
3133c0e85f
chore(deploy): pilonuxt 1128ddc LIVE — core 0.26.7 fixes new-products 500 (skandinavskaya + imitaciya 6+6 products verified)
2026-08-16 12:59:49 +03:00
694a4a961b
chore(deploy): pilonuxt f876e70 LIVE — remaining 3 catalog placeholders -> real CMS photos
2026-08-16 10:48:59 +03:00
070431df0e
chore(deploy): pilonuxt 24a13da LIVE — catalog img placeholder fix (brus antiseptirovannyj real photo)
2026-08-16 10:35:00 +03:00
c860da3fde
chore(deploy): pilonuxt 40806b1 LIVE — services-[slug] real SSR 404 fix accepted (soft-404 closed)
2026-08-16 10:25:58 +03:00
b9a626e678
chore(deploy): pilonuxt 340c0e7 LIVE — frame-house removal, banner/h2 fix, service-404 (soft-404 finding reported)
2026-08-16 10:20:41 +03:00
183ea5a0d7
task DONE: snolla-mailer-per-recipient-send — тираж на mailer 0.9.0 + фикс mailSettings.from env-сайтов; composes актуализированы (8 сайтов)
2026-08-14 14:04:17 +03:00
ddfb6a304b
ops: snolla SMTP rollout 2026-08-14 — monitor deployed (VDS cron+ntfy), msmtp/backup-mail on new creds, pilonuxt compose tag 954e29e
2026-08-14 12:31:57 +03:00
5299c7d048
chore: pilonuxt deploy — tag 515ab99 (admin-api 0.10.1 save-whitelist fix)
2026-08-07 20:34:30 +03:00
768ffe3851
chore: pilonuxt deploy — tag 6552e37 (admin-api 0.10.0 + batch-info + OpenAPI)
2026-08-07 19:48:20 +03:00
03607d0d6e
meta(handoff): flat-fields wave CLOSED; session end
...
- 7 sites @snolla/snolla→web redeployed
- admin-api 0.4.0 (flat fields) + client 0.5.2 + schema-gen 0.2.1 published
- pilorama98 0db46e1 live: loader flat + catalog + yml/short_description
- admin-api 0.5.0 (validation) published, not deployed to pilorama98
- coordinator role active: snolla ↔ pilorama98
2026-08-07 13:03:23 +03:00
615d78932b
chore: pilonuxt deploy — tag 2c069de (admin-api 0.4.0 flat fields + каталог + loader)
2026-08-07 10:51:49 +03:00
e3f2541056
chore: pilonuxt deploy — tag 782de35 (каталог: Скандинавская доска + обновлённый Половой шпунт)
2026-08-07 09:38:13 +03:00
66e1c7b718
chore: sync pilonuxt compose — add S3 endpoint/region/bucket env
2026-08-05 16:15:13 +03:00
8ebd05e4a7
chore: sync pilonuxt compose — admin-api embed env (JWT/DATABASE_URL/S3), tag 1b88cd5
2026-08-05 16:14:36 +03:00
9e2332a53c
ops(labtools): bump to cad2b36 (@snolla/snolla → @snolla/web 0.43.2)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-05 15:57:18 +03:00
cd76ce8f3f
feat(admin-api): деплой admin-api на vds (стек 25) — admin-api.vds.kzntsv.site
...
Образ registry.kzntsv.site/admin-api:ca0dfa3 (ESM-фикс). Stack 25, proxy-сеть,
env 8/8 (DATABASE_URL/JWT_SECRET/S3), mem_limit 512m, traefik + LE.
Live GREEN: /health ok, ключ pilorama98 проходит, LE-серт выдан.
Coord-таска обновлена (Number resolved, staging, deploy).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-04 18:33:52 +03:00
9fbc44c31b
fix(minio-split): source-of-truth compose comments -> minio.vds.kzntsv.site (sites S3-direct читают vds minio)
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-04 14:43:54 +03:00
61f6afd235
chore(labtools): compose → d263e1c (core 0.26.6 catalog linked-item provider — cylindrical hydrated)
...
Live smoke 2026-08-03: /products/press-forms/cylindrical 0 empty href/src, 8 cards
hydrated (round-xrf, vacuum-ir, …). Rollback = 0dc0b4e (0.43.2 v3).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-08-03 16:00:46 +03:00
494b101067
feat(maljarka): restore maljarka.tandemmebel.ru as 7th snolla site on VDS (stack 23)
...
Сайт потерян при decomm RUVDS 2026-07-21 (.NET MoreThenCms tenant, не был в v3 тираже).
Восстановлен как Node snolla-app 0.43.2 на VDS: victor/maljarka.tandemmebel.ru @7f03d67,
layout.liquid byte-identical рендеру локального .NET-admin (43730B, sha256 match),
siteId A2476738, Reversal тема из MinIO. LE issued. Live smoke GREEN.
- host-stacks/vds-kzntsv/maljarka.compose.yml (source-of-truth, stack 23)
- .wiki/concepts/maljarka-vds-deploy-runbook.md (калька on-snolla runbook)
- .tasks/STATUS.md + .wiki/index.md updated
- тираж snolla теперь 7/7: labtools(17)/emspb(18)/labtools-pro(19)/tandemmebel(20)/kupimknigi(21)/on-snolla(22)/maljarka(23)
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-31 06:15:29 +03:00
69d3d0dd3f
feat(tandemmebel): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
...
6-й сайт тиража v3 (после on-snolla, kupimknigi, labtools.ru, labtools.pro, emspb).
6/6 v3 сайтов GREEN — тираж v3 ЗАВЕРШЁН.
- Bump: @snollajs/snolla 0.42.1→0.43.2 (apps/web) + resolutions verbatim labtools.ru
(@aws-sdk/client-s3 3.1005.0 + @smithy chain 5.3.11 — optional determinism) + реген
yarn.lock (single @smithy/signature-v4@5.3.11 deduped). Commit 9d51c09 в victor/tandemmebel.ru.
Заодно нёс на live s3.endpoint fix f4ddce6 (→ minio.vds.kzntsv.site), был в master с 2026-07-29.
- Build на VDS: registry.kzntsv.site/tandemmebel:9d51c09, digest d14982c24dc7, 476MB (v2 583MB), EXIT=0.
- Staging :5020 parity-gate GREEN: robots md5 identical, sitemap 184=184 locs IDENTICAL,
self-consistency 183×200 + 1×404 (/articles parity), Gotham-Pro.css 200 4436B (v3 S3-direct).
- Portainer PUT stack 20 (node in-memory, кириллица compose), env 8/8, pullImage:true, mem_limit 512m. PUT 200.
- Live smoke GREEN: / 200 45742B, /projects 200, sitemap 184, theme 200 4436B. TLS CN не тронут (LE Oct 10).
- Rollback = 8df10ee (v2, жив в registry).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-30 19:00:52 +03:00
fd48df6225
feat(emspb): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
...
5-й сайт тиража v3 (5/6 GREEN). In-place bump стека 18 (DNS на VDS с
2026-07-02). Commit victor/emspb.ru 5afd8a1 (bump + resolutions + yarn.lock
реген). Build на VDS → registry.kzntsv.site/emspb:5afd8a1 digest 72bb59fc.
Staging :5082 parity-gate GREEN (29/29 routes 200, theme assets 7/7 md5
IDENTICAL — v3 S3-direct read из vds MinIO 2025). Portainer PUT stack 18
env-preserving (8/8, node in-memory put-stack), prune:false pullImage:true.
Live smoke GREEN. Rollback = 95a5c42 (v2).
- emspb.compose.yml: 95a5c42→5afd8a1
- emspb-vds-deploy-runbook: §0.43.2
- minio-split-cutover-runbook: progress-table emspb ✅ , остался tandemmebel
- NEXT_SESSION: 5/6 GREEN, остался tandemmebel (стек 20, был BLOCKED на
sharp-staging дефекте — проверить перед бампом)
Остался 1 сайт: tandemmebel.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-30 17:46:19 +03:00
c3c79b996a
feat(labtools.pro): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
...
4-й сайт тиража v3 (on-snolla, kupimknigi, labtools.ru, labtools.pro — 4/6 GREEN).
Stack 19 image 0610432→a106622, env 8/8 preserved, mem_limit 512m.
Staging :5081 parity-gate GREEN: theme lato.css 200 9994B md5-identical
(v3 aws-sdk v3 S3-direct read из vds MinIO 2025), sitemap 7 детей == live,
order-parity press-forms 12 изделий, / 4-байт diff = og:url/og:image
request-host (benign). Live smoke GREEN, TLS CN=labtools.pro не тронут.
Rollback = labtools-pro:0610432 (0.42.1, жив в registry).
Compose source-of-truth + runbook v3 секция + handoff обновлены.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-30 17:36:36 +03:00
387560c9f8
feat(labtools): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)
...
3rd site of v3 тираж (after on-snolla + kupimknigi, 3/6 GREEN).
Bump 0dc0b4e: apps/web snolla→0.43.2 + resolutions (root). Endpoint fix
4f3314f (minio.vds.kzntsv.site) was in master but not in running v2 image
566d41c — v3 cutover also moved S3-direct read to vds minio.
Staging :5080 parity-gate GREEN (home/theme byte-identical, sitemap 38
locs == live, order-parity). Portainer PUT stack 17 env-preserving 8/8,
mem_limit 512m, prune:false pullImage:true. Live smoke GREEN, TLS untouched.
Rollback = 566d41c (v2, in registry).
Compose source-of-truth 566d41c→0dc0b4e. Runbook + handoff updated.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-30 17:19:26 +03:00
6f6fab1dad
feat(kupimknigi): v3 cutover image bump 9608ff6→5364353 (snolla 0.43.2)
...
MinIO split B3-v3 cutover, stack 21. Source-of-truth compose synced with
Portainer PUT. snolla 0.42.0→0.43.2 (aws-sdk v2→v3) + @smithy resolutions.
Bundles a83e2a9 endpoint fix (minio.vds.kzntsv.site). Staging parity-gate
GREEN (byte-identical with real Host, theme asset 200 byte-identical from
vds MinIO 2025). Rollback = 9608ff6 (v2, live in registry).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-30 17:08:12 +03:00
f56eb2f800
feat(on-snolla): v3 cutover LIVE — snolla 0.43.2 (aws-sdk v2→v3) + runbook migration
...
v3 pilot on.snolla.com end-goal (user 2026-07-30): bump @snollajs/snolla
0.42.1→0.43.2 + @smithy resolutions (root package.json, on.snolla.com eb8c143).
Portainer PUT stack 22 → registry.kzntsv.site/on-snolla:eb8c143, env-preserving
8/8, mem_limit 512m. Live smoke GREEN: theme asset 200 97324 B (v3 aws-sdk v3
S3-direct read из vds MinIO 2025), sitemap+sub-sitemaps byte-identical, /c 404.
Rollback = 07db7e3 (v2, жив).
runbook migration (дисциплина): scripts/minio-split-cutover/runbook.md →
.wiki/concepts/minio-split-cutover-runbook.md (конвенция: runbook'и в .wiki/concepts/).
Creds normalized → pass show minio-vds/full-env (wiki-конвенция, не plaintext).
+ index.md, log.md, on-snolla-vds-deploy-runbook v3-секция.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-30 14:30:38 +03:00
443713e8b3
feat(on-snolla): MinIO split S3-direct-path cutover — stack 22 bump 473923e494db->07db7e3
...
Track B3 pilot (on-snolla, S3-direct reads, no imgproxy). In-place image bump
of live stack 22 by snolla-live-prod-inplace-image-bump recipe:
- build on VDS (07db7e3 = config endpoint minio.kzntsv.site -> minio.vds.kzntsv.site,
snolla 0.42.1 v2, NO package.json bump — user decision: split without snolla version bump)
- staging :5077 from live env: robots/home/sitemap 200
- S3-direct gate: theme asset /themes/c406.../bootstrap.min.css -> 200, 97324 B == live
(aws-sdk v2 -> vds minio 2025 — compat CONFIRMED, no @smithy pin needed, no SigV4 403)
- sitemap parity staging==live 3/3 (/, /c, /yandex); /c 404 parity
- Portainer PUT stack 22 env-preserving (8/8), prune:false pullImage:true -> 200
- live container 07db7e3 healthy, mem_limit 512m preserved
- live-smoke https://on.snolla.com : theme asset 200 97324 B, TLS cert untouched (LE YR1, Oct 18)
Rollback: PUT stack 22 back to 473923e494db (rollback tag in registry, pred endpoint
minio.kzntsv.site/books-vds, live mirror). RUVDS DECOMM 2026-07-21 — image-tag rollback only.
scripts/minio-split-cutover/runbook.md: Track B progress table (B1 mirror DONE,
B2 imgproxy DNS-flip LIVE, B3 on-snolla pilot LIVE, remaining 5 sites + Track A TODO).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-30 13:23:23 +03:00
vitya
4c4d19382b
feat(on-snolla): CUTOVER DONE — on.snolla.com live on VDS (stack 22, LE cert)
...
DNS reg.ru on.snolla.com A -> 89.253.255.94 (operator flip, authoritative NS verified).
Traefik rule swapped staging->Host(on.snolla.com), LE cert issued (CN=on.snolla.com,
YR1, until 2026-10-18). Live-smoke GREEN, homepage byte-identical prod-HTML, sitemap
3/3 parity. RUVDS IIS untouched (rollback = revert DNS).
- compose source-of-truth updated to LIVE rule.
- runbook .wiki/concepts/on-snolla-vds-deploy-runbook.md (cutover as-built + gotchas:
snolla robotsTxt crash on undefined app.locals.domain, no Liquid form-tag, /c dead-link
parity, Portainer JWT re-auth before PUT).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-20 13:17:59 +03:00
vitya
9705468ef4
feat(on-snolla): Portainer stack 22 source-of-truth (staging Host, mem_limit 512m, 8 env secrets)
...
on.snolla.com snolla-app live behind traefik on staging Host on-snolla.vds.kzntsv.site.
Image registry.kzntsv.site/on-snolla:473923e494db (snolla 0.42.1). Pending DNS cutover
(reg.ru on.snolla.com A 80.64.31.36 -> 89.253.255.94, then PUT rule -> Host(on.snolla.com)).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-20 13:17:59 +03:00
632c843fd5
deploy(tandemmebel): 8df10ee LIVE — drop FB/Twitter/Google+ share buttons
...
In-place template bump на прод (stack 20): 0cd9351 → 8df10ee. fix(web) remove
FB/Twitter/Google+ share-кнопки (extremist-icon compliance РФ), keep VK+OK.
Template-only (apps/web/views/social_buttons.liquid, 1 file 12 delet), snolla pin
0.42.1 НЕ менялся.
Верификация перед сборкой поймала расхождение: tandemmebel-записка утверждала
live=ed96b18/0.42.0, фактически крутился 0cd9351/0.42.1 (in-place bump 2026-07-12).
gitea compare 0cd9351...8df10ee = total_commits:1 → фикс один коммит поверх 0.42.1
(правильная база), yarn.lock идентичен → регрессии sitemap нет.
Completeness-gate (staging :5020): sitemap NEW==PROD 184=184 identical, 0
регрессий. Live-smoke С VDS 4 share-block страницы (project-post ×2,
/furniture/bedrooms, /furniture/kitchens/classic) — vk+ok на месте, fb/tw/gp=0.
TLS-серт CN=tandemmebel.ru не дёрнут (in-place swap). Tandemmebel-сессия подтвердила.
- .tasks/STATUS.md: _Updated 2026-07-13 строка (deploy-результат + discrepancy)
- .wiki/concepts/tandemmebel-vds-deploy-runbook.md: секция In-place bump 8df10ee
(предсборочная верификация, build→staging→gate→swap, rollback, hygiene-заметка
про устаревшие STAGING-комменты в Portainer stack file)
- host-stacks/vds-kzntsv/tandemmebel.compose.yml: image 8df10ee + LIVE-комменты
+ история bump'ов (source-of-truth синхронен с Portainer)
Rollback: PUT стека 20 → 0cd9351 (0.42.1, {% order %} fix) / ed96b18 (0.42.0) /
b02ca18 в registry; ИЛИ revert DNS→80.64.31.36.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-13 22:50:49 +03:00
b5839bd02d
feat(tandemmebel): in-place bump 0.42.0 → 0.42.1 LIVE (stack 20, order-tag fix)
...
Consumer bump by operator (blocker-pattern 2026-07-04 resolved without dev-source):
pin apps/web/package.json:12 + yarn install (lock 0.42.1/core 0.24.1/liquid 0.10.2/data 0.14.1)
+ commit 0cd9351 + push origin (ls-remote confirmed).
Build on VDS → registry.kzntsv.site/tandemmebel:0cd9351 (digest f29c187f).
Throwaway-staging :5020 from live env, healthy.
Completeness-gate С VDS: 184/184 parity (NEW==PROD), /articles 404 identical to
prod oracle → benign. 0.42.1 order-fix inert on blog-portfolio (no catalog).
Operator-gated PUT stack 20 (env 8/8 preserved, prune:false pullImage:true)
→ container 0cd9351+healthy ~8s. Live-smoke GREEN, TLS cert untouched.
Closes snolla 0.42.1 rollout — all 5 snolla sites now on VDS.
Rollback = tag ed96b18 (+ b02ca18) in registry.
- compose source-of-truth: tag + comment (0.42.1)
- board task: decisions log entry
- wiki: new tandemmebel-vds-deploy-runbook, bump recipe (4 sites), index, log
2026-07-12 13:26:28 +03:00
d3d0ff48ed
feat(tandemmebel): cutover LIVE on VDS — last snolla site migrated
...
DNS reg.ru flipped, traefik Host-rule staging->prod, LE cert issued.
Live-smoke GREEN: all pages 200, sitemap 184 locs, sharp media OK.
Gotham-Pro.css latent prod bug fixed by cutover (0B->4436B).
Snolla 0.42.x tirazh now fully alive (5/5 stacks on VDS).
2026-07-12 12:48:20 +03:00
9a92ff0b87
chore(vds): mem_limit 512m всему тиражу snolla (5 стеков live + compose-копии + вики-конвенция)
...
Тираж snolla (labtools.ru/17, emspb/18, labtools.pro/19, tandemmebel/20,
kupimknigi/21) шёл без mem_limit → cgroup-cap = вся память хоста (12.9 GiB),
одна течь могла съесть весь бокс. Выставил 512m (baseline ~100-200M, 2.5-5x запас)
на всех 5 живых стеках через env-preserving Portainer PUT + синхронизировал
source-of-truth compose. Все healthy, limit=536870912 подтверждён, labtools.pro 200.
Конвенция «app-стек обязан нести mem_limit» закреплена в
portainer-stack-management-vds § Convention + step 6 snolla-bump-рецепта.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-05 14:32:55 +03:00
bcb4dc36be
deploy(labtools.pro): LIVE на snolla 0.42.1 — in-place bump живого прода (стек 19)
...
Финал тиража 0.42.1 (3/3 live-редеплоя закрыты: labtools.ru+emspb+labtools.pro).
Оператор дал отмашку на боевой apply.
- labtools-pro:0610432 (0.28.7→0.42.1, digest 3d543fc). Acceptance С VDS на
новом образе: 25 sitemap page-locs все 200, 0 потерь контента.
- Order-парити 3 секции MATCH (фикс liquid 0.10.2): presses=plg-20,plg-12;
milling=milling-jars,grinding-media; press-forms=13 == прод.
- Live-smoke GREEN, TLS CN=labtools.pro не тронут. Rollback labtools-pro:7bd9fae.
Compose source-of-truth обновлён. Прог квитирован.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-05 12:04:04 +03:00