Заводит в main работу с ветки fix/ios, которая до сегодня жила только на проде: бинарь 383e374 был собран и выкачен, а коммит никуда не пушился. Прод при этом обгонял main на ~1000 строк и ссылался на ADR-067…072, которых в репозитории не существовало.
Что приходит
Пуши на iOS (cfd0ec0): sub уезжал как mailto:mailto:, Apple отвечал BadJwtToken. Плюс код причины отказа push-сервиса в журнале — ADR-073.
Версия в подвале сайдбара: GET /api/config отдаёт version и commitAt, internal/build разбирает build info — ADR-074, ADR-067.
Самообновление PWA: воркер ждёт просьбы страницы, версии оболочки различаются по ответу воркера, обновление откладывается, пока в строке ввода есть набранное — ADR-068, ADR-070, ADR-072.
Строка ввода — редактируемый блок вместо textarea, предел до вставки, IME, перетаскивание — ADR-069, ADR-071.
Номера ADR
Ветка отведена от 522ba89, где последним был ADR-063, и заняла 064–072. Тем временем в main через #3 и #4 пришли свои 064, 065 и 066. Три ADR этой ветки переехали в 073/074/075 (коммит f9ac83b), 067–072 остались на месте — их номера свободны. Все ~34 ссылки выправлены.
Столкновение по строке ввода
Обе ветки правили строку ввода ради одной и той же полосы помощника форм над клавиатурой iOS.
ADR-064 из main считал триггером элемент <form> и вынес поле наружу. Диагноз неверен: полоса бывает у input и textarea всегда, и на устройстве это не помогло — что сам ADR-064 и допускал, расписав contenteditable как следующий шаг. ADR-069 отсюда — ровно этот шаг.
Взято: поле — редактируемый блок (ADR-069/071), контейнер div с role="form" и кнопка type="button" (ADR-064). Слушатель submit убран: контейнер больше не форма, событие не случается. ADR-064 и ADR-069 связаны ссылками в обе стороны.
Лента при этом остаётся такой, какой её сделал ADR-065: поток со сторонами, feed-list, не сетка.
Проверено
go build ./..., go vet ./..., go test ./... — чисто, включая новые internal/build и internal/push.
Живой прогон на локальном инстансе: два аккаунта, DM, сообщения в обе стороны. Чужое слева, своё справа цветом mark, разделитель даты во всю ширину; строка ввода набирает, отправляет, очищается, подсказка возвращается. В DOM одновременно contenteditable="plaintext-only" + role="textbox" (ADR-069), div role="form" + кнопка type="button" (ADR-064), .feed-list и .line--me только у своего (ADR-065). Ошибок в консоли нет.
sw.jsVERSION → v6: клиент отличается от обеих версий, где стоял v5.
Не проверено
Реальное устройство iOS: полоса помощника форм, safe-area и самообновление PWA. Эмуляции этого в Chromium нет.
Заводит в main работу с ветки `fix/ios`, которая до сегодня жила только на проде: бинарь `383e374` был собран и выкачен, а коммит никуда не пушился. Прод при этом обгонял main на ~1000 строк и ссылался на ADR-067…072, которых в репозитории не существовало.
## Что приходит
- **Пуши на iOS** (`cfd0ec0`): `sub` уезжал как `mailto:mailto:`, Apple отвечал `BadJwtToken`. Плюс код причины отказа push-сервиса в журнале — ADR-073.
- **Версия в подвале сайдбара**: `GET /api/config` отдаёт `version` и `commitAt`, `internal/build` разбирает build info — ADR-074, ADR-067.
- **Запрет масштабирования и ощущение приложения**: `web/js/zoom.js`, `viewport-fit=cover`, safe-area, мета-строки `apple-mobile-web-app-*` — ADR-075.
- **Самообновление PWA**: воркер ждёт просьбы страницы, версии оболочки различаются по ответу воркера, обновление откладывается, пока в строке ввода есть набранное — ADR-068, ADR-070, ADR-072.
- **Строка ввода — редактируемый блок** вместо `textarea`, предел до вставки, IME, перетаскивание — ADR-069, ADR-071.
## Номера ADR
Ветка отведена от `522ba89`, где последним был ADR-063, и заняла 064–072. Тем временем в main через #3 и #4 пришли свои 064, 065 и 066. Три ADR этой ветки переехали в 073/074/075 (коммит `f9ac83b`), 067–072 остались на месте — их номера свободны. Все ~34 ссылки выправлены.
## Столкновение по строке ввода
Обе ветки правили строку ввода ради одной и той же полосы помощника форм над клавиатурой iOS.
ADR-064 из main считал триггером элемент `<form>` и вынес поле наружу. Диагноз неверен: полоса бывает у `input` и `textarea` всегда, и на устройстве это не помогло — что сам ADR-064 и допускал, расписав `contenteditable` как следующий шаг. ADR-069 отсюда — ровно этот шаг.
Взято: поле — редактируемый блок (ADR-069/071), контейнер `div` с `role="form"` и кнопка `type="button"` (ADR-064). Слушатель `submit` убран: контейнер больше не форма, событие не случается. ADR-064 и ADR-069 связаны ссылками в обе стороны.
Лента при этом остаётся такой, какой её сделал ADR-065: поток со сторонами, `feed-list`, не сетка.
## Проверено
- `go build ./...`, `go vet ./...`, `go test ./...` — чисто, включая новые `internal/build` и `internal/push`.
- Живой прогон на локальном инстансе: два аккаунта, DM, сообщения в обе стороны. Чужое слева, своё справа цветом `mark`, разделитель даты во всю ширину; строка ввода набирает, отправляет, очищается, подсказка возвращается. В DOM одновременно `contenteditable="plaintext-only"` + `role="textbox"` (ADR-069), `div role="form"` + кнопка `type="button"` (ADR-064), `.feed-list` и `.line--me` только у своего (ADR-065). Ошибок в консоли нет.
- `sw.js` `VERSION` → `v6`: клиент отличается от обеих версий, где стоял `v5`.
## Не проверено
- Реальное устройство iOS: полоса помощника форм, safe-area и самообновление PWA. Эмуляции этого в Chromium нет.
---
_Generated by [Claude Code](https://claude.ai/code/session_01QR8uS3zGkybzWRW4GEY1oz)_
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.
Заводит в main работу с ветки
fix/ios, которая до сегодня жила только на проде: бинарь383e374был собран и выкачен, а коммит никуда не пушился. Прод при этом обгонял main на ~1000 строк и ссылался на ADR-067…072, которых в репозитории не существовало.Что приходит
cfd0ec0):subуезжал какmailto:mailto:, Apple отвечалBadJwtToken. Плюс код причины отказа push-сервиса в журнале — ADR-073.GET /api/configотдаётversionиcommitAt,internal/buildразбирает build info — ADR-074, ADR-067.web/js/zoom.js,viewport-fit=cover, safe-area, мета-строкиapple-mobile-web-app-*— ADR-075.textarea, предел до вставки, IME, перетаскивание — ADR-069, ADR-071.Номера ADR
Ветка отведена от
522ba89, где последним был ADR-063, и заняла 064–072. Тем временем в main через #3 и #4 пришли свои 064, 065 и 066. Три ADR этой ветки переехали в 073/074/075 (коммитf9ac83b), 067–072 остались на месте — их номера свободны. Все ~34 ссылки выправлены.Столкновение по строке ввода
Обе ветки правили строку ввода ради одной и той же полосы помощника форм над клавиатурой iOS.
ADR-064 из main считал триггером элемент
<form>и вынес поле наружу. Диагноз неверен: полоса бывает уinputиtextareaвсегда, и на устройстве это не помогло — что сам ADR-064 и допускал, расписавcontenteditableкак следующий шаг. ADR-069 отсюда — ровно этот шаг.Взято: поле — редактируемый блок (ADR-069/071), контейнер
divсrole="form"и кнопкаtype="button"(ADR-064). Слушательsubmitубран: контейнер больше не форма, событие не случается. ADR-064 и ADR-069 связаны ссылками в обе стороны.Лента при этом остаётся такой, какой её сделал ADR-065: поток со сторонами,
feed-list, не сетка.Проверено
go build ./...,go vet ./...,go test ./...— чисто, включая новыеinternal/buildиinternal/push.mark, разделитель даты во всю ширину; строка ввода набирает, отправляет, очищается, подсказка возвращается. В DOM одновременноcontenteditable="plaintext-only"+role="textbox"(ADR-069),div role="form"+ кнопкаtype="button"(ADR-064),.feed-listи.line--meтолько у своего (ADR-065). Ошибок в консоли нет.sw.jsVERSION→v6: клиент отличается от обеих версий, где стоялv5.Не проверено
Generated by Claude Code