116 Commits
Author SHA1 Message Date
Panfilov Konstantin b4c4a2ca27 документация: обновить адрес Gitea 2026-11-03 23:55:31 +03:00
Panfilov Konstantin ba33a76a34 feat: неблокирующий сбор User Flow и гостевых ошибок (api#376 api#377)
deploy-preland / deploy zoomstage.online (push) Successful in 1m1s
2026-10-31 13:29:45 +03:00
Panfilov Konstantin 791761a782 fix: тематическое окно ошибки загрузки (#33)
deploy-preland / deploy zoomstage.online (push) Successful in 1m7s
2026-10-28 09:07:00 +03:00
Panfilov Konstantin 4a6683f335 test: учитывать текущие UTM defaults владельца в stage CI #347
deploy-preland / deploy zoomstage.online (push) Successful in 1m0s
2026-10-28 05:34:19 +03:00
Panfilov Konstantin 2970f990e0 docs: сохранить фактический stage config без изменения runtime #347
deploy-preland / deploy zoomstage.online (push) Failing after 35s
2026-10-28 05:15:31 +03:00
Panfilov Konstantin 875549a5af fix(admin): уточнить ошибку допустимого значения part #347 2026-10-28 05:11:28 +03:00
Panfilov Konstantin 01f83375a7 docs: уточнить допустимые варианты part #347 2026-10-28 05:10:43 +03:00
Panfilov Konstantin 469bec1595 api#347: обновить полный перечень девяти UTM 2026-10-28 05:06:53 +03:00
Panfilov Konstantin f7d1792e23 api#347: сохранить part в именованных наборах и процентных контрактах 2026-10-28 05:06:11 +03:00
Panfilov Konstantin 1993f7b4b1 api#347: проверить старые recovery snapshots с default2 2026-10-28 05:04:08 +03:00
Panfilov Konstantin 0d350ed14b api#347: передавать и настраивать UTM part без ссылки в Preland 2026-10-28 05:04:08 +03:00
Panfilov Konstantin 94619432a3 feat(admin): независимые именованные UTM-наборы 2026-10-26 18:38:11 +03:00
Panfilov Konstantin 941a4f01aa feat(admin): ручные варианты UTM и независимый редактор config (#30) 2026-10-26 05:42:03 +03:00
Panfilov Konstantin 47405b27d8 feat(admin): единые процентные веса без старого формата (#28) 2026-10-26 04:56:32 +03:00
Panfilov Konstantin a22519e754 fix(admin): номера UTM и дата чтения с хостинга (#29) 2026-10-26 04:42:40 +03:00
Panfilov Konstantin 00fbef9ede feat(admin): скрытие доменов и сохраняемый порядок колонок (#26) 2026-10-26 04:11:44 +03:00
Panfilov Konstantin dd6d221dd7 feat(admin): edit domain settings inline and copy saved configurations
deploy-preland / deploy zoomstage.online (push) Successful in 57s
2026-10-26 03:06:11 +03:00
Panfilov Konstantin 84f70b1c71 fix(admin): align UTM notes and block obsolete chb publication
deploy-preland / deploy zoomstage.online (push) Successful in 54s
2026-10-25 23:16:35 +03:00
Panfilov Konstantin f2097d4800 feat(admin): compact UTM percentages and shared notes
deploy-preland / deploy zoomstage.online (push) Successful in 1m1s
2026-10-25 22:59:37 +03:00
Panfilov Konstantin 4fc4fd8162 fix(admin): route multi-megabyte sets to SFTP before shell escaping
deploy-preland / deploy zoomstage.online (push) Successful in 1m3s
2026-10-25 22:14:15 +03:00
Panfilov Konstantin 6ec813bc99 fix(admin): refresh verified connection state without losing drafts
deploy-preland / deploy zoomstage.online (push) Successful in 56s
2026-10-25 19:27:09 +03:00
Panfilov Konstantin 522aaf8554 feat(admin): remember login for 90 days and support REG SSH limits
deploy-preland / deploy zoomstage.online (push) Successful in 57s
2026-10-25 19:17:51 +03:00
Panfilov Konstantin d04b40519e fix(admin): persist private sessions across container replacement
deploy-preland / deploy zoomstage.online (push) Successful in 58s
2026-10-25 18:26:41 +03:00
Panfilov Konstantin 2cfa2e2d2e feat(admin): add runtime overview and independent saved UTM link builder
deploy-preland / deploy zoomstage.online (push) Successful in 57s
2026-10-25 18:17:23 +03:00
Panfilov Konstantin 48c71f3300 fix(admin): show verified catalog groups in UTM forms
deploy-preland / deploy zoomstage.online (push) Successful in 1m3s
2026-10-25 11:53:20 +03:00
Panfilov Konstantin 9515c1c62b feat: единая админка runtime-конфигов и indpic (#22)
deploy-preland / deploy zoomstage.online (push) Successful in 1m1s
2026-10-25 11:33:56 +03:00
Panfilov Konstantin 5b6b2d2053 docs: план выполнения админки прелендингов (#22) 2026-10-25 10:46:16 +03:00
Panfilov Konstantin b3b14ec193 docs: проект единой админки конфигов и indpic (#22) 2026-10-25 10:35:35 +03:00
Panfilov Konstantin 847c642ca6 preland#21: закрепить три боевых .ru и отключение остальных .online 2026-10-25 09:24:40 +03:00
Panfilov Konstantin a1aa25671f preland#21: готовые доменные SVG Zoomika, Zoomila и ZoomPixel 2026-10-25 09:09:18 +03:00
Panfilov Konstantin 965eb2e6a5 fix(utm): заменить публичную chob на banch (#327)
deploy-preland / deploy zoomstage.online (push) Successful in 42s
2026-10-25 05:09:55 +03:00
Panfilov Konstantin 08febba368 api#326 Сохранить прежний random и чужие JSON токены
deploy-preland / deploy zoomstage.online (push) Successful in 45s
2026-10-25 02:10:45 +03:00
Panfilov Konstantin 81e189ca67 api#326 Числовые UTM и новый шум каждого перехода 2026-10-25 02:05:48 +03:00
Panfilov Konstantin f30742c2fb preland#18 #19: popup ошибки загрузки и однострочный ИИ-заголовок
deploy-preland / deploy zoomstage.online (push) Successful in 55s
2026-10-24 10:59:20 +03:00
Panfilov Konstantin f4ce5afdc4 docs: snapshot verified stage consent runtime config (#17)
deploy-preland / deploy zoomstage.online (push) Successful in 43s
2026-10-24 05:05:45 +03:00
Panfilov Konstantin 89cc16eb4a feat: replace chb with consent groups and preserve runtime config (api#317, #17)
deploy-preland / deploy zoomstage.online (push) Successful in 42s
2026-10-24 04:35:44 +03:00
Panfilov Konstantin 188b78a115 fix: desktop-кнопка «Выберите файл» (api#315)
deploy-preland / deploy zoomstage.online (push) Successful in 41s
2026-10-23 23:36:34 +03:00
Panfilov Konstantin f87bef2443 fix: резервные форматы примеров и stage snapshot (#16)
deploy-preland / deploy zoomstage.online (push) Successful in 42s
2026-10-23 20:10:51 +03:00
Panfilov Konstantin 0e6611da73 fix(ui): ограничить fallback высоты первым экраном #16 2026-10-23 19:46:41 +03:00
Panfilov Konstantin 198ba573f9 fix(ui): согласовать первый экран и pending #16 2026-10-23 19:40:47 +03:00
Panfilov Konstantin 01933546a7 fix(theme): mirror bounded cookie propagation reconciliation
deploy-preland / deploy zoomstage.online (push) Successful in 39s
2026-10-21 22:05:02 +03:00
Panfilov Konstantin ad8c8eb849 build(theme): сохранять LF общих partial при export (#13) 2026-10-21 20:55:28 +03:00
Panfilov Konstantin 5ffb0f37e9 fix(theme): зеркалить canonical cookie при первом boot (#13) 2026-10-21 20:50:25 +03:00
Panfilov Konstantin c6b2b227c0 fix(theme): сохранять текущий выбор без storage (#13) 2026-10-21 20:46:23 +03:00
Panfilov Konstantin 9c06977e03 feat(theme): локальный выбор и показанная тема handoff (#13) 2026-10-21 20:42:28 +03:00
Panfilov Konstantin 3740839321 fix: совпадение видимого логотипа Preland и Tour (refs #12)
deploy-preland / deploy zoomstage.online (push) Successful in 40s
2026-10-21 17:35:07 +03:00
Panfilov Konstantin ec087ea636 feat: готовый бренд ZoomStage и минимальный доменный подвал (refs #12)
deploy-preland / deploy zoomstage.online (push) Successful in 44s
2026-10-21 17:24:14 +03:00
Panfilov Konstantin a2c3197a16 merge: сохранить историю локального Android-коммита без изменения проверенного дерева (refs #11)
deploy-preland / deploy zoomstage.online (push) Successful in 45s
2026-10-21 02:30:12 +03:00
Panfilov Konstantin 57196e32a9 docs: уточнить канонический SVG-контракт (refs #11) 2026-10-21 02:30:12 +03:00
Panfilov Konstantin f2ad7ecb4c merge: синхронизировать main с проверенным staging без старого кода (refs #11)
deploy-preland / deploy zoomstage.online (push) Successful in 45s
2026-10-21 02:27:08 +03:00
Panfilov Konstantin e9a2a0d568 fix: актуальные ресурсы Zoomzilla и проверяемый выпуск (refs #11) 2026-10-21 02:27:08 +03:00
Panfilov Konstantin 144dda6d88 fix: стабильная область кнопки при смене шрифта (api#301)
deploy-preland / deploy zoomstage.online (push) Successful in 34s
2026-10-20 20:11:13 +03:00
Panfilov Konstantin 0c9a406d68 fix: единая загрузка примеров и стабильный первый кадр (api#301)
deploy-preland / deploy zoomstage.online (push) Successful in 33s
2026-10-20 19:52:30 +03:00
Panfilov Konstantin 75ccf14889 Показывать ошибку после восстановления истории (#9)
deploy-preland / deploy zoomstage.online (push) Successful in 36s
2026-10-20 18:52:35 +03:00
Panfilov Konstantin 6a2532cb87 Обработать browser storage ошибки и показывать восстановленную форму (#9) 2026-10-20 18:43:25 +03:00
Panfilov Konstantin 4c5d3de7bc Merge remote-tracking branch 'origin/staging' into fix/issue299-resume 2026-10-20 18:33:12 +03:00
Panfilov Konstantin 5afa71ec84 Изолировать callbacks отменённой загрузки (#9) 2026-10-20 18:33:12 +03:00
Panfilov Konstantin d70d396670 Восстанавливать загрузку30мин после Reload и удерживать Back (#9) 2026-10-20 18:31:43 +03:00
Panfilov Konstantin 1a20ce17d5 Согласовать каркас Preland с Tour (api#298)
deploy-preland / deploy zoomstage.online (push) Successful in 36s
2026-10-20 18:16:35 +03:00
Panfilov Konstantin f2e6877013 fix(ui): загрузка и общий контракт сравнения (refs #8 #7)
deploy-preland / deploy zoomstage.online (push) Successful in 32s
2026-10-20 01:41:30 +03:00
Panfilov Konstantin 7eaf1c12b0 feat(ui): равные desktop плашки сравнения как в Index (refs #6)
deploy-preland / deploy zoomstage.online (push) Successful in 30s
2026-10-20 00:18:11 +03:00
Panfilov Konstantin c30e3239a0 feat(ui): общий бренд и компактная мобильная обработка (refs #5)
deploy-preland / deploy zoomstage.online (push) Successful in 30s
2026-10-19 22:41:49 +03:00
Panfilov Konstantin 8274946610 chore(ci): отключить production и legacy автодеплой (refs #4) 2026-10-19 14:57:39 +03:00
Panfilov Konstantin d2637e8f61 chore(ci): только stage, Барбариска выведена (refs #4)
deploy-preland / deploy zoomstage.online (push) Successful in 35s
2026-10-19 14:57:39 +03:00
Panfilov Konstantin 0f06a18622 feat: компактный Index и крупные миниатюры (refs anton/api#283) 2026-10-19 14:53:57 +03:00
Panfilov Konstantin 0274d5d921 fix: стабильные размеры Index при скрытии тулбаров 2026-10-19 14:53:57 +03:00
Panfilov Konstantin dcb914a429 fix(upload): кликабельная мобильная кнопка 2026-10-19 14:53:57 +03:00
Panfilov Konstantin ab84dc1629 feat(upload): фото и файлы отдельными путями на Android 2026-10-19 14:53:57 +03:00
Panfilov Konstantin 029cd16d46 feat: компактный Index и крупные миниатюры (refs anton/api#283)
deploy-preland / deploy barbariskatest (push) Failing after 1m36s
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 38s
deploy-preland / deploy zoompixel.ru (push) Successful in 37s
2026-10-19 14:38:31 +03:00
Panfilov Konstantin 3319499d5e fix: стабильные размеры Index при скрытии тулбаров
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 33s
deploy-preland / deploy zoompixel.ru (push) Successful in 34s
deploy-preland / deploy barbariskatest (push) Failing after 1m47s
2026-10-19 13:48:44 +03:00
Panfilov Konstantin 953c7dd8f2 fix(upload): кликабельная мобильная кнопка
deploy-preland / deploy barbariskatest (push) Successful in 57s
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 37s
deploy-preland / deploy zoompixel.ru (push) Successful in 34s
2026-10-19 12:26:21 +03:00
Panfilov Konstantin 21f8fbb6a4 feat(upload): фото и файлы отдельными путями на Android 2026-10-19 12:20:22 +03:00
Panfilov Konstantin 3ad7be0db3 feat(upload): фото и файлы отдельными путями на Android 2026-10-19 12:19:33 +03:00
Panfilov Konstantin b4dedcfea5 fix: preserve stage example sets during deploy
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Successful in 33s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
2026-10-18 04:28:06 +03:00
Panfilov Konstantin 19547d1797 fix(ci): deploy only changed legacy application files
deploy-preland / deploy barbariskatest (push) Successful in 32s
deploy-preland / deploy zoompixel.online (push) Successful in 37s
deploy-preland / deploy zoompixel.ru (push) Successful in 33s
deploy-preland / deploy zoomstage.online (push) Skipped
2026-10-18 01:04:06 +03:00
Panfilov Konstantin 56456bb0cb fix(ci): tolerate existing legacy FTP directories
deploy-preland / deploy zoompixel.online (push) Successful in 35s
deploy-preland / deploy zoompixel.ru (push) Successful in 52s
deploy-preland / deploy barbariskatest (push) Failing after 1m49s
deploy-preland / deploy zoomstage.online (push) Skipped
2026-10-18 00:57:20 +03:00
Panfilov Konstantin 78b24c91f8 fix(ci): skip root directory creation on legacy FTP
deploy-preland / deploy barbariskatest (push) Failing after 30s
deploy-preland / deploy zoompixel.online (push) Successful in 28s
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Successful in 32s
2026-10-18 00:53:41 +03:00
Panfilov Konstantin be030f25a0 fix(ci): source legacy FTPS command file
deploy-preland / deploy barbariskatest (push) Failing after 35s
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 31s
deploy-preland / deploy zoompixel.ru (push) Successful in 31s
2026-10-18 00:50:00 +03:00
Panfilov Konstantin 498e2df7b9 fix(ci): use FTPS client for legacy assets
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Successful in 29s
deploy-preland / deploy barbariskatest (push) Failing after 30s
deploy-preland / deploy zoompixel.online (push) Successful in 33s
2026-10-18 00:46:02 +03:00
Panfilov Konstantin 97fe9646b7 fix(ci): verify legacy FTP retry payloads
deploy-preland / deploy zoompixel.ru (push) Successful in 28s
deploy-preland / deploy barbariskatest (push) Failing after 44s
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 31s
2026-10-18 00:40:02 +03:00
Panfilov Konstantin d646f98aa7 fix(ci): upload legacy files independently
deploy-preland / deploy barbariskatest (push) Failing after 45s
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 33s
deploy-preland / deploy zoompixel.ru (push) Successful in 31s
2026-10-18 00:34:31 +03:00
Panfilov Konstantin 35b6a334ba fix(ci): clone legacy release without node checkout
deploy-preland / deploy zoompixel.online (push) Successful in 32s
deploy-preland / deploy zoompixel.ru (push) Successful in 32s
deploy-preland / deploy barbariskatest (push) Failing after 43s
deploy-preland / deploy zoomstage.online (push) Skipped
2026-10-18 00:28:31 +03:00
Panfilov Konstantin a0dee79b22 fix(ci): run legacy release on production runner
deploy-preland / deploy zoompixel.online (push) Successful in 35s
deploy-preland / deploy zoompixel.ru (push) Successful in 33s
deploy-preland / deploy barbariskatest (push) Failing after 32s
deploy-preland / deploy zoomstage.online (push) Skipped
2026-10-18 00:19:05 +03:00
Panfilov Konstantin 730042385d fix(ci): use Alpine php83 for host config
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 34s
deploy-preland / deploy zoompixel.ru (push) Successful in 31s
deploy-preland / deploy barbariskatest (push) Canceled after 9m51s
2026-10-18 00:08:46 +03:00
Panfilov Konstantin a86978a499 chore(config): snapshot stage focus defaults
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 31s
deploy-preland / deploy zoompixel.ru (push) Successful in 37s
deploy-preland / deploy barbariskatest (push) Failing after 5m1s
2026-10-17 20:51:44 +03:00
Panfilov Konstantin ac4cc21361 fix(config): enable explicit face focus 2026-10-17 20:51:44 +03:00
Panfilov Konstantin f14ce88cc6 fix(deploy): preserve host preland config 2026-10-17 20:48:52 +03:00
Panfilov Konstantin 9835bb0ef8 feat(utm): propagate join focus mode 2026-10-17 20:46:33 +03:00
Panfilov Konstantin 2180d9e37b chore(config): snapshot stage focus defaults
deploy-preland / deploy zoompixel.ru (push) Skipped
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Successful in 33s
deploy-preland / deploy zoompixel.online (push) Skipped
2026-10-17 20:40:46 +03:00
Panfilov Konstantin 356eeb9806 fix(config): enable explicit face focus
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Successful in 33s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
2026-10-17 19:25:05 +03:00
Panfilov Konstantin ed1e476cc6 fix(deploy): preserve host preland config 2026-10-17 19:17:56 +03:00
Panfilov Konstantin 67379241aa feat(utm): propagate join focus mode 2026-10-17 10:56:08 +03:00
Panfilov Konstantin 729e48dda7 fix: align preland root sets with Index
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Successful in 21s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
2026-10-17 08:36:34 +03:00
Panfilov Konstantin 1b28299a42 fix: create parent directories during sftp deploy
deploy-preland / deploy zoomstage.online (push) Successful in 18s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
deploy-preland / deploy barbariskatest (push) Skipped
2026-10-17 07:58:57 +03:00
Panfilov Konstantin 37ca4ae356 fix: verify staged demo asset sets
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Failing after 20s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
2026-10-17 07:50:48 +03:00
Panfilov Konstantin 45e20ed0cd fix: align stage preland picker and demo layout
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Successful in 19s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
2026-10-17 07:39:37 +03:00
Panfilov Konstantin 4fa9eebcfb merge: sync single config to staging
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Successful in 22s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
# Conflicts:
#	.gitea/workflows/deploy.yml
2026-10-17 07:01:53 +03:00
Panfilov Konstantin dfbb086e2b chore: version single preland config
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy barbariskatest (push) Successful in 19s
deploy-preland / deploy zoompixel.online (push) Successful in 19s
deploy-preland / deploy zoompixel.ru (push) Successful in 20s
2026-10-17 07:00:16 +03:00
Panfilov Konstantin 8d2beb36e0 ci: fix ZoomPixel deployment smoke checks
deploy-preland / deploy zoomstage.online (push) Skipped
deploy-preland / deploy zoompixel.online (push) Successful in 20s
deploy-preland / deploy barbariskatest (push) Successful in 20s
deploy-preland / deploy zoompixel.ru (push) Successful in 21s
2026-10-16 10:06:15 +03:00
Panfilov Konstantin 74a1b08a70 ci: install CA certificates for preland checks 2026-10-16 10:06:15 +03:00
Panfilov Konstantin 230f8d8be3 ci: deploy ZoomPixel prelands over SFTP 2026-10-16 10:06:15 +03:00
Panfilov Konstantin 6683762006 ci: fix ZoomPixel deployment smoke checks
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Successful in 22s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
2026-10-16 10:04:00 +03:00
Panfilov Konstantin ca7ba5a556 ci: install CA certificates for preland checks
deploy-preland / deploy zoomstage.online (push) Failing after 48s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
deploy-preland / deploy barbariskatest (push) Skipped
2026-10-16 09:54:40 +03:00
Panfilov Konstantin 12b44bed7e ci: deploy ZoomPixel prelands over SFTP
deploy-preland / deploy barbariskatest (push) Skipped
deploy-preland / deploy zoomstage.online (push) Failing after 16s
deploy-preland / deploy zoompixel.online (push) Skipped
deploy-preland / deploy zoompixel.ru (push) Skipped
2026-10-16 09:46:27 +03:00
Panfilov Konstantin 2f76438226 fix: constrain picker and reject oversized uploads safely
deploy-preland / deploy barbariskatest (push) Successful in 20s
2026-10-16 06:31:03 +03:00
Panfilov Konstantin 700408c1e0 fix: lock upload button until tour redirect
deploy-preland / deploy barbariskatest (push) Successful in 22s
2026-10-16 05:23:52 +03:00
Panfilov Konstantin cf651218cc fix: order pdf in visible format list
deploy-preland / deploy barbariskatest (push) Successful in 18s
2026-10-16 03:20:09 +03:00
Panfilov Konstantin f6ba231fef chore: retry preland deployment
deploy-preland / deploy barbariskatest (push) Successful in 19s
2026-10-16 00:10:16 +03:00
Panfilov Konstantin 9ee41ccbfc ui: show PDF in visible format list
deploy-preland / deploy barbariskatest (push) Failing after 3h14m46s
2026-10-15 23:49:51 +03:00
Panfilov Konstantin eac2489a49 fix: defer upload format gate to API 2026-10-15 05:14:55 +03:00
Panfilov Konstantin e7328d9d2b ui: compact visible format list
deploy-preland / deploy barbariskatest (push) Successful in 19s
2026-10-15 00:03:01 +03:00
Panfilov Konstantin 3eee288f78 feat: sync preland pdf picker policy
deploy-preland / deploy barbariskatest (push) Successful in 19s
2026-10-14 21:03:46 +03:00
Panfilov Konstantin 98db1c2a16 feat: defer preland format validation to api gate 2026-10-14 21:03:46 +03:00
yury 4fcb8164df #258: изменить подпись примеров на Preland Index
deploy-preland / deploy barbariskatest (push) Successful in 20s
Точечная текстовая правка. Проверки локально пройдены.
2026-10-13 19:05:30 +00:00
Panfilov Konstantin d489bbcd59 #258 Изменить подпись примеров на Index 2026-10-13 22:03:09 +03:00
Panfilov Konstantin 85e27ff2f2 docs: добавить инструкции агентов
deploy-preland / deploy barbariskatest (push) Failing after 4s
2026-10-08 13:41:52 +03:00
412 changed files with 9716 additions and 734 deletions

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
components/theme-client.php text eol=lf
components/theme-switch.php text eol=lf
components/theme-style.php text eol=lf
+165 -60
View File
@@ -1,70 +1,136 @@
name: deploy-preland name: deploy-preland
# После коммита в main — заливка преленда на хостинги всех целей (FTP с TLS) и проверка страницы каждой цели. # Решение владельца 19.10.2026, preland#4: только stage.
# Цель — домен со своим хостингом (список — matrix ниже): реквизиты — секреты репозитория <prefix>_FTP_HOST, # Production выкаты временно отключены; Барбариска больше не используется.
# <prefix>_FTP_USER, <prefix>_FTP_PASS (порт 21). Цели независимы: сбой одного хостинга остальные не останавливает.
# Заливаются файлы репозитория (git ls-files), кроме служебных (.gitea/, README.md, .gitignore) и тех, что живут
# только на хостинге: config.json (в git его нет) и requisites.html (реквизиты заполняют на месте — пустой файл
# из git их бы затёр). На хостинге ничего не удаляется: удалённое из репозитория убирать вручную.
on: on:
push: push:
branches: branches:
- main - staging
jobs: jobs:
deploy: deploy-zoomstage:
name: deploy ${{ matrix.name }} name: deploy zoomstage.online
runs-on: ubuntu-latest if: github.ref == 'refs/heads/staging'
runs-on: zoomzilla-production
strategy:
fail-fast: false
matrix:
include:
# name — имя цели, url — адрес преленда (для проверки), prefix — префикс секретов <prefix>_FTP_*,
# dir — каталог сайта на FTP ("" — корень FTP, как на beget). Новый домен — новая запись и три секрета;
# config.json (и requisites.html) создают на хостинге цели — без него проверка страницы не пройдёт.
- name: barbariskatest
url: https://preland.anton.barbariskatest.ru
prefix: PRELAND
dir: ""
defaults: defaults:
run: run:
shell: sh shell: sh
env: env:
PRELAND_URL: ${{ matrix.url }} PRELAND_URL: https://zoomstage.online
REMOTE_DIR: ${{ matrix.dir }} REMOTE_DIR: domains/zoomstage.online
steps: steps:
- name: Install tools (Alpine) - name: Install tools
run: apk add --no-cache git curl run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates git curl openssh-client sshpass php-cli php-imagick
- name: Checkout repository - name: Checkout staging branch
uses: actions/checkout@v4
- name: Upload over FTP (TLS)
env: env:
FTP_HOST: ${{ secrets[format('{0}_FTP_HOST', matrix.prefix)] }} RELEASE_SHA: ${{ github.sha }}
FTP_USER: ${{ secrets[format('{0}_FTP_USER', matrix.prefix)] }}
FTP_PASS: ${{ secrets[format('{0}_FTP_PASS', matrix.prefix)] }}
run: | run: |
set -eu set -eu
[ -n "$FTP_HOST" ] && [ -n "$FTP_USER" ] && [ -n "$FTP_PASS" ] || { echo "нет секретов ${{ matrix.prefix }}_FTP_*"; exit 1; } git clone --depth 1 --branch staging http://git.dira89kv.beget.tech:3000/anton/preland.git .
dir=$(printf '%s' "$REMOTE_DIR" | sed 's#^/*##; s#/*$##') git fetch --depth 1 origin "$RELEASE_SHA"
case "$dir" in *[!A-Za-z0-9._/-]*) echo "недопустимый dir: $dir"; exit 1 ;; esac git checkout --detach "$RELEASE_SHA"
[ "$(git rev-parse HEAD)" = "$RELEASE_SHA" ]
- name: Validate release and current stage sets before upload
run: |
set -eu
php bin/release-assets.php --check
for test in tests/check-*.php; do php "$test"; done
php bin/release-assets.php --primary
# preland#22: /N/ — runtime. Проверяем config и декодируем все 90
# обязательных изображений используемых наборов, не сверяем с Git SHA.
php bin/release-assets.php --stage-sets "$PRELAND_URL"
- name: Apply approved domain brand only if needed
env:
SFTP_HOST: ${{ secrets.ZOOMPIXEL_SFTP_HOST }}
SFTP_USER: ${{ secrets.ZOOMPIXEL_SFTP_USER }}
SFTP_PASS: ${{ secrets.ZOOMPIXEL_SFTP_PASS }}
SFTP_KNOWN_HOSTS: ${{ secrets.ZOOMPIXEL_SFTP_KNOWN_HOSTS }}
run: |
set -eu
status=0
php bin/release-brand.php --status "$PRELAND_URL" || status=$?
case "$status" in 0) exit 0 ;; 10) ;; *) exit "$status" ;; esac
# Только точная ранее согласованная пара заменяется по preland#12.
# Обычные выпуски с правильным брендом сюда не доходят.
umask 077 umask 077
netrc=$(mktemp); list=$(mktemp) known_hosts=$(mktemp); batch=$(mktemp); files=$(mktemp)
trap 'rm -f "$netrc" "$list"' EXIT trap 'rm -f "$known_hosts" "$batch" "$files"' EXIT
printf 'machine %s login %s password %s\n' "$FTP_HOST" "$FTP_USER" "$FTP_PASS" > "$netrc" printf '%s\n' "$SFTP_KNOWN_HOSTS" > "$known_hosts"
git ls-files | grep -vE '^(\.gitea/|README\.md$|\.gitignore$|config\.json$|requisites\.html$)' > files.txt php bin/release-brand.php --files "$PRELAND_URL" > "$files"
# имя уходит в адрес ftp:// как есть — пробелы и прочее экранирование не поддерживаем revision=$(git rev-parse HEAD)
if grep -q '[^A-Za-z0-9._/-]' files.txt; then echo "имена с недопустимыми символами:"; grep '[^A-Za-z0-9._/-]' files.txt; exit 1; fi while read -r source target; do
# один curl на все файлы — одно соединение FTP+TLS вместо соединения на файл # Оборванный put не должен оставлять усечённый действующий SVG.
while read -r f; do printf 'upload-file = "%s"\nurl = "ftp://%s/%s%s"\n' "$f" "$FTP_HOST" "${dir:+$dir/}" "$f"; done < files.txt > "$list" printf '%s\n' "put -p $source $REMOTE_DIR/$target.upload-$revision" >> "$batch"
curl -sS --ssl-reqd --netrc-file "$netrc" --ftp-create-dirs --retry 3 --fail-early -K "$list" printf '%s\n' "rename $REMOTE_DIR/$target.upload-$revision $REMOTE_DIR/$target" >> "$batch"
echo "залито файлов: $(wc -l < files.txt)" done < "$files"
SSHPASS="$SFTP_PASS" sshpass -e sftp -oBatchMode=no -oStrictHostKeyChecking=yes -oUserKnownHostsFile="$known_hosts" -b "$batch" "$SFTP_USER@$SFTP_HOST"
php bin/release-brand.php --status "$PRELAND_URL"
- name: Upload over SFTP
env:
SFTP_HOST: ${{ secrets.ZOOMPIXEL_SFTP_HOST }}
SFTP_USER: ${{ secrets.ZOOMPIXEL_SFTP_USER }}
SFTP_PASS: ${{ secrets.ZOOMPIXEL_SFTP_PASS }}
SFTP_KNOWN_HOSTS: ${{ secrets.ZOOMPIXEL_SFTP_KNOWN_HOSTS }}
run: |
set -eu
[ -n "$SFTP_HOST" ] && [ -n "$SFTP_USER" ] && [ -n "$SFTP_PASS" ] && [ -n "$SFTP_KNOWN_HOSTS" ] || { echo "не заданы секреты ZOOMPIXEL_SFTP_*"; exit 1; }
umask 077
known_hosts=$(mktemp)
batch=$(mktemp)
files=$(mktemp)
dirs=$(mktemp)
trap 'rm -f "$known_hosts" "$batch" "$files" "$dirs"' EXIT
printf '%s\n' "$SFTP_KNOWN_HOSTS" > "$known_hosts"
# Наборы `/N/` на stage — редактируемый контент. Кодовая доставка их
# намеренно не перезаписывает. Обновление набора через админку не требует Git.
# Положительный список: admin/tests/bin/планы/секреты не публикуются.
php bin/release-assets.php --files | grep -vE '^(config\.json$|[0-9]+/)' > "$files"
if grep -q '[^A-Za-z0-9._/-]' "$files"; then echo "имена с недопустимыми символами:"; grep '[^A-Za-z0-9._/-]' "$files"; exit 1; fi
printf '%s\n' "-mkdir $REMOTE_DIR" > "$batch"
while read -r file; do
case "$file" in
*/*) dir=${file%/*} ;;
*) continue ;;
esac
while [ -n "$dir" ]; do
printf '%s\n' "$dir" >> "$dirs"
case "$dir" in */*) dir=${dir%/*} ;; *) break ;; esac
done
done < "$files"
sort -u "$dirs" | while read -r dir; do printf '%s\n' "-mkdir $REMOTE_DIR/$dir" >> "$batch"; done
while read -r file; do printf '%s\n' "put -p $file $REMOTE_DIR/$file" >> "$batch"; done < "$files"
SSHPASS="$SFTP_PASS" sshpass -e sftp -oBatchMode=no -oStrictHostKeyChecking=yes -oUserKnownHostsFile="$known_hosts" -b "$batch" "$SFTP_USER@$SFTP_HOST"
echo "залито файлов: $(wc -l < "$files")"
# api#326/#327: сначала совместимый PHP-код, затем точечная миграция UTM.
# chob→banch меняет только токен имени; веса/default владельца сохраняются.
# Остальные поля владельца и их JSON-типы сохраняются.
- name: Migrate numeric UTM in preserved host config
env:
SFTP_HOST: ${{ secrets.ZOOMPIXEL_SFTP_HOST }}
SFTP_USER: ${{ secrets.ZOOMPIXEL_SFTP_USER }}
SFTP_PASS: ${{ secrets.ZOOMPIXEL_SFTP_PASS }}
SFTP_KNOWN_HOSTS: ${{ secrets.ZOOMPIXEL_SFTP_KNOWN_HOSTS }}
run: |
set -eu
umask 077
known_hosts=$(mktemp); batch=$(mktemp); config=$(mktemp)
trap 'rm -f "$known_hosts" "$batch" "$config"' EXIT
printf '%s\n' "$SFTP_KNOWN_HOSTS" > "$known_hosts"
printf '%s\n' "get -p $REMOTE_DIR/config.json $config" > "$batch"
SSHPASS="$SFTP_PASS" sshpass -e sftp -oBatchMode=no -oStrictHostKeyChecking=yes -oUserKnownHostsFile="$known_hosts" -b "$batch" "$SFTP_USER@$SFTP_HOST"
changed=0
php bin/ensure-utm-config.php "$config" || changed=$?
case "$changed" in
0) ;;
10) revision=$(git rev-parse HEAD)
printf '%s\n' "put -p $config $REMOTE_DIR/config.json.upload-$revision" "rename $REMOTE_DIR/config.json.upload-$revision $REMOTE_DIR/config.json" > "$batch"
SSHPASS="$SFTP_PASS" sshpass -e sftp -oBatchMode=no -oStrictHostKeyChecking=yes -oUserKnownHostsFile="$known_hosts" -b "$batch" "$SFTP_USER@$SFTP_HOST" ;;
*) exit "$changed" ;;
esac
- name: Check the page - name: Check the page
run: | run: |
@@ -72,13 +138,52 @@ jobs:
page=$(curl -fsS --max-time 30 "$PRELAND_URL/?nc=$(date +%s)") page=$(curl -fsS --max-time 30 "$PRELAND_URL/?nc=$(date +%s)")
api=$(printf '%s' "$page" | grep -o 'const createApiUrl = "[^"]*"' || true) api=$(printf '%s' "$page" | grep -o 'const createApiUrl = "[^"]*"' || true)
echo "$api" echo "$api"
case "$api" in case "$api" in *'zoomzilla.ru\/api\/images\/public\/create'*) ;; *) echo "на странице нет адреса загрузки Zoomzilla"; exit 1 ;; esac
*'\/api\/images\/public\/create'*) ;; printf '%s' "$page" | grep -q 'claim?key=' || { echo "переход не на claim"; exit 1; }
*) echo "на странице нет адреса загрузки"; exit 1 ;; # Список наборов берётся из runtime config, а не фиксируется как /1/ и /2/.
esac # Полная проверка изображений ниже; одиночный HTTP200 недостаточен.
own=$(printf '%s' "$PRELAND_URL" | sed -E 's#^https?://([^/]+).*#\1#') php bin/release-assets.php --remote "$PRELAND_URL"
case "$api" in php bin/release-brand.php --status "$PRELAND_URL"
*"$own"*) echo "загрузка уходит на сам преленд: на хостинге нет config.json с host"; exit 1 ;;
esac - name: Remove previously published internal files
printf '%s' "$page" | grep -q 'claim?key=' || { echo "переход не на claim — залит старый код?"; exit 1; } env:
echo "страница в порядке" SFTP_HOST: ${{ secrets.ZOOMPIXEL_SFTP_HOST }}
SFTP_USER: ${{ secrets.ZOOMPIXEL_SFTP_USER }}
SFTP_PASS: ${{ secrets.ZOOMPIXEL_SFTP_PASS }}
SFTP_KNOWN_HOSTS: ${{ secrets.ZOOMPIXEL_SFTP_KNOWN_HOSTS }}
run: |
set -eu
umask 077
known_hosts=$(mktemp); batch=$(mktemp)
trap 'rm -f "$known_hosts" "$batch"' EXIT
printf '%s\n' "$SFTP_KNOWN_HOSTS" > "$known_hosts"
# Только точно известные служебные файлы прежнего deploy, без рекурсии.
printf '%s\n' "-rm $REMOTE_DIR/requisites.html" > "$batch"
git ls-files tests bin docs/superpowers | while read -r file; do
printf '%s\n' "-rm $REMOTE_DIR/$file" >> "$batch"
done
SSHPASS="$SFTP_PASS" sshpass -e sftp -oBatchMode=no -oStrictHostKeyChecking=yes -oUserKnownHostsFile="$known_hosts" -b "$batch" "$SFTP_USER@$SFTP_HOST"
- name: Remove obsolete demo directories
env:
SFTP_HOST: ${{ secrets.ZOOMPIXEL_SFTP_HOST }}
SFTP_USER: ${{ secrets.ZOOMPIXEL_SFTP_USER }}
SFTP_PASS: ${{ secrets.ZOOMPIXEL_SFTP_PASS }}
SFTP_KNOWN_HOSTS: ${{ secrets.ZOOMPIXEL_SFTP_KNOWN_HOSTS }}
run: |
set -eu
umask 077
known_hosts=$(mktemp)
batch=$(mktemp)
trap 'rm -f "$known_hosts" "$batch"' EXIT
printf '%s\n' "$SFTP_KNOWN_HOSTS" > "$known_hosts"
for set in demo demo-2; do
for example in 1 2 3 4 5; do
for file in source.avif source.jpg source.webp result.avif result.jpg result.webp thumb.avif thumb.jpg thumb.webp source_mob.avif result_mob.avif thumb_mob.avif; do
printf '%s\n' "-rm $REMOTE_DIR/images/$set/$example/$file" >> "$batch"
done
printf '%s\n' "-rmdir $REMOTE_DIR/images/$set/$example" >> "$batch"
done
printf '%s\n' "-rmdir $REMOTE_DIR/images/$set" >> "$batch"
done
SSHPASS="$SFTP_PASS" sshpass -e sftp -oBatchMode=no -oStrictHostKeyChecking=yes -oUserKnownHostsFile="$known_hosts" -b "$batch" "$SFTP_USER@$SFTP_HOST"
-1
View File
@@ -1 +0,0 @@
config.json
File renamed without changes.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 170 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 303 KiB

After

Width:  |  Height:  |  Size: 303 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 224 KiB

After

Width:  |  Height:  |  Size: 224 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 523 KiB

After

Width:  |  Height:  |  Size: 523 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 719 KiB

After

Width:  |  Height:  |  Size: 719 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 325 KiB

After

Width:  |  Height:  |  Size: 325 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 533 KiB

After

Width:  |  Height:  |  Size: 533 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Loaded 100 of 412 files, more files were not shown because too many files have changed in this diff. Show more