# Отредактированный пост в DiscourseHub на iOS иногда остаётся устаревшим до обновления

**URL:** <https://meta.discourse.org/t/edited-post-occasionally-remains-stale-until-refresh-in-discoursehub-on-ios/414121>\
**Category:** Bug\
**Tags:** discourse-hub\
**Created:** [07.Октябрь.2026 09:45:09 UTC](https://meta.discourse.org/t/edited-post-occasionally-remains-stale-until-refresh-in-discoursehub-on-ios/414121 "2026-10-07T09:45:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
**Post date:** [07.Октябрь.2026 09:45:10 UTC](https://meta.discourse.org/t/edited-post-occasionally-remains-stale-until-refresh-in-discoursehub-on-ios/414121/1 "2026-10-07T09:45:10Z")

</div>

Я столкнулся с периодической проблемой: отредактированное сообщение успешно сохраняется, но уже отрендеренное сообщение в DiscourseHub на iOS иногда остаётся устаревшим, пока я не обновлю тему.

## Окружение

Продакшен-сайт — это моя собственная **самохостинговая установка Discourse** , которую я использую в личных целях как личный архив для учёбы.

В момент, когда я воспроизвёл проблему сегодня:

- **Клиент:** DiscourseHub на iPhone
- **iOS:** 27.0.1
- **Продакшен Discourse:** `v2026.10.0-latest +112`
- **Сайт:** самохостинг, личный архив для учёбы
- **Браузер по умолчанию на iOS:** iCab Mobile

Я сменил браузер по умолчанию на iCab Mobile из-за не связанной с этим проблемы с локальными загрузками. Однако это воспроизведение произошло, когда я использовал сайт Discourse внутри **DiscourseHub** , а не после открытия внешнего браузера, поэтому на данный момент я не считаю, что выбор браузера по умолчанию имеет значение.

## Реальный рабочий процесс

Тема, где я заметил это, содержала примерно 50 сообщений, представляющих собой слайды лекций.

Мой обычный рабочий процесс:

1. создать сообщение с изображением слайда лекции;
2. позже последовательно пройти по теме;
3. отредактировать каждое существующее сообщение;
4. добавить транскрипт OCR / заметки под уже опубликованным изображением слайда;
5. нажать **Сохранить редактирование** и перейти к следующему слайду.

Так что это не синтетические быстрые правки: это нормальный учебный рабочий процесс, в котором я последовательно добавляю транскрипты OCR к сообщениям с изображениями слайдов лекций.

Для более ранних сообщений в теме нажатие **Сохранить редактирование** сразу заменяло отображаемое сообщение на новый отредактированный контент, как и ожидалось.

Позже в той же теме я столкнулся с случаями, когда:

1. Я отредактировал сообщение и добавил текст OCR.
2. Нажал **Сохранить редактирование**.
3. Редактирование успешно сохранилось.
4. Сообщение, отображаемое в DiscourseHub, осталось со старым контентом.
5. Обновление страницы сразу показало уже сохранённое редактирование.

Таким образом, само редактирование, похоже, прошло успешно. Устаревшая часть, похоже, связана с уже загруженным клиентским представлением сообщения.

## Тест в среде разработки

Затем я создал полностью чистый экземпляр разработки из текущего upstream `main`:

`833e1576d47 DEV: Update README.md note on self-hosting (#44320)`

Я сгенерировал тему с 60 сообщениями, в каждом из которых было изображение, чтобы имитировать структуру продакшен-темы.

Затем я повторил рабочий процесс в Firefox на Linux, редактируя текст в существующих сообщениях с изображениями.

Сначала я заметил возможное устаревшее обновление около сообщения 19 в первом тесте. Однако, после более тщательного повторения эксперимента — включая создание новой темы с 60 сообщениями и последовательное редактирование сообщений — мне **не удалось воспроизвести продакшен-поведение в Firefox/Linux на текущем main**.

Там редактирования сразу перерисовывали сообщение после нажатия «Сохранить редактирование», включая случаи далеко за пределами первой группы сообщений в теме.

Это снижает мою уверенность в том, что пагинация темы или обычный поток из 20 сообщений является самой причиной.

## Следующий тест

Продакшен-воспроизведение было в **DiscourseHub на iOS** , а не в PWA на домашнем экране.

Поэтому моим следующим запланированным сравнением будет:

- текущий экземпляр разработки Discourse из upstream;
- та же тема с 60 изображениями;
- тот же iPhone с iOS 27.0.1;
- сначала DiscourseHub;
- Safari на том же iPhone в качестве контроля;
- опционально веб-приложение на домашнем экране как ещё одно сравнение;
- последовательное редактирование сообщений с использованием того же рабочего процесса в стиле OCR.

В данный момент мой ноутбук для разработки находится в сети eduroam, поэтому прямое подключение его локального сервера разработки к iPhone не является простым делом.

Является ли запуск экземпляра разработки с текущим main на том же iPhone в **DiscourseHub** правильным следующим шагом для сужения области поиска?

Если да, то есть ли предпочтительный способ, который команда Discourse использует для подключения локального экземпляра разработки к iPhone / DiscourseHub для тестирования, желательно по HTTPS?

При следующем возникновении проблемы я также могу оставить устаревшее сообщение без обновления и сделать видеозапись экрана, чтобы можно было напрямую сравнить успешное сохранение/состояние сервера с тем, что отображает уже открытый клиент DiscourseHub.

## Возможно, связанное наблюдение

Это поведение на высоком уровне напоминает проблему с устаревшим состоянием клиента, с которой я столкнулся, работая над  
[PR #43285, «Обновление дат событий в списках тем»](https://github.com/discourse/discourse/pull/43285).

Там был другой путь кода, и я не утверждаю, что это та же ошибка.

Однако наблюдаемый сбой был похож: состояние на стороне сервера могло быть правильным, в то время как уже загруженный клиент продолжал отображать устаревшее состояние, пока не произошло соответствующее обновление/повторное гидратирование.

С проблемой с датами событий мне удалось наблюдать ситуацию A/B на разных уже открытых клиентах в зависимости от времени.

Это заставляет меня задуматься, не находится ли эта проблема с редактированием где-то в цепочке уведомлений / обновления модели / рендеринга, а не в самом сбое редактирования.

---

<div class="post-metadata">

**Author:** ![fhe](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fhe/32/113345_2.png) [@fhe](https://meta.discourse.org/u/fhe)\
**Post date:** [07.Октябрь.2026 11:48:31 UTC](https://meta.discourse.org/t/edited-post-occasionally-remains-stale-until-refresh-in-discoursehub-on-ios/414121/2 "2026-10-07T11:48:31Z")

</div>

> [@Ethsim2](#):
>
> Изменённый пост успешно сохраняется, но уже отрендеренный пост в DiscourseHub на iOS иногда остаётся устаревшим, пока я не обновлю тему.

Я тоже это замечал (хотя, честно говоря, не читал весь отчёт).
