Временно скрывать и возвращать домены во всех списках админки #26

Closed
opened 2026-10-26 01:43:52 +01:00 by yury · 10 comments
Owner

Поручение владельца26.10.2026: временно скрывать расходные рекламные домены из основной таблицы и всех рабочих списков, сохранив подключения/настройки/сайты; отдельная ссылка «Скрытые домены» позволяет вернуть. Уточнил: скрывать по одному значком перечёркнутого глаза рядом с названием. Последнее указание: «Покажи список сначала». Текущий этап — показать фактический список, не скрывать и не менять production.

После показа списка: спецификация/карта всех потребителей targets (matrix/copy/builder/indpic/connections/history), независимое хранение видимости от enabled/verified, UI hide/restore с auth/CSRF и защитой drafts/async; реальные hide→alllistsabsent→reload→restore проверки без config/site/secret изменений. Перед реализацией уточнить по контексту, не было ли нового steering. Связано#22/#25. Задача остаётсяOPEN до выпуска и полной приёмки.

Поручение владельца26.10.2026: временно скрывать расходные рекламные домены из основной таблицы и всех рабочих списков, сохранив подключения/настройки/сайты; отдельная ссылка «Скрытые домены» позволяет вернуть. Уточнил: скрывать по одному значком перечёркнутого глаза рядом с названием. Последнее указание: «Покажи список сначала». Текущий этап — показать фактический список, не скрывать и не менять production. После показа списка: спецификация/карта всех потребителей targets (matrix/copy/builder/indpic/connections/history), независимое хранение видимости от enabled/verified, UI hide/restore с auth/CSRF и защитой drafts/async; реальные hide→alllistsabsent→reload→restore проверки без config/site/secret изменений. Перед реализацией уточнить по контексту, не было ли нового steering. Связано#22/#25. Задача остаётсяOPEN до выпуска и полной приёмки.
Author
Owner

Владелец явно требует сначала эскиз расположения eye-off и подтверждение; до этого не скрывать домены и не реализовывать новое поведение. Дополнительный запрос процентов отложен до согласования глазика. Подготавливается только standalone sketch: маленький eye-off рядом с domain label в header, справа над таблицей ссылка «Скрытые домены (0)». Текущие4домена и видимость не изменяются. Первичный readonlyпоиск текущего расчёта весов выполнен, никаких изменений/решений омиграции нет.

Владелец явно требует сначала эскиз расположения eye-off и подтверждение; до этого не скрывать домены и не реализовывать новое поведение. Дополнительный запрос процентов отложен до согласования глазика. Подготавливается только standalone sketch: маленький eye-off рядом с domain label в header, справа над таблицей ссылка «Скрытые домены (0)». Текущие4домена и видимость не изменяются. Первичный readonlyпоиск текущего расчёта весов выполнен, никаких изменений/решений омиграции нет.
Author
Owner

Новое прямое правило владельца: удаление только в два этапа — сначала скрыть, потом удалить из «Скрытых доменов». Нужна серверная проверка hidden передdelete, а не просто отсутствие кнопки вactiveUI. В основныхсписках толькоeye-off, вhiddenlist вернуть/delete. Смыслудаления сохраняет прежнийконтракт StoredeleteTarget: убрать подключениеадминки, не регистратор/DNS/сайт/файлы.

На согласование подготовлены output/preland26/eye-placement.png и hidden-list.png, с текущими4доменами и отдельно примером hidden3 после скрытия. Последнеепоручение требуетсначалаподтвердитьрасположениеглазика: приложение/данные/prod/visibilityнеизменялись. Проценты доэтогоответаотложены, никакихмиграцийнет.

Новое прямое правило владельца: удаление только в два этапа — сначала скрыть, потом удалить из «Скрытых доменов». Нужна серверная проверка hidden передdelete, а не просто отсутствие кнопки вactiveUI. В основныхсписках толькоeye-off, вhiddenlist вернуть/delete. Смыслудаления сохраняет прежнийконтракт StoredeleteTarget: убрать подключениеадминки, не регистратор/DNS/сайт/файлы. На согласование подготовлены output/preland26/eye-placement.png и hidden-list.png, с текущими4доменами и отдельно примером hidden3 после скрытия. Последнеепоручение требуетсначалаподтвердитьрасположениеглазика: приложение/данные/prod/visibilityнеизменялись. Проценты доэтогоответаотложены, никакихмиграцийнет.
Author
Owner

Владелец подтвердил эскиз значка скрытия рядом с названием домена и список скрытых с действиями Вернуть/Удалить. Дополнительно запросил перетаскивание колонок мышью и обязательное сохранение именно порядка сортировки. Предложение для согласования: отдельный маркер переноса в заголовке, предварительный показ позиции и автоматическое сохранение порядка на сервере после отпускания; порядок общий для таблицы и списков выбора доменов, сохраняется между входами и устройствами. Возвращённый домен занимает прежнее место, новый добавляется в конец. Это предложение, детали сортировки пока не утверждены; реализации и изменений production нет.

Владелец подтвердил эскиз значка скрытия рядом с названием домена и список скрытых с действиями Вернуть/Удалить. Дополнительно запросил перетаскивание колонок мышью и обязательное сохранение именно порядка сортировки. Предложение для согласования: отдельный маркер переноса в заголовке, предварительный показ позиции и автоматическое сохранение порядка на сервере после отпускания; порядок общий для таблицы и списков выбора доменов, сохраняется между входами и устройствами. Возвращённый домен занимает прежнее место, новый добавляется в конец. Это предложение, детали сортировки пока не утверждены; реализации и изменений production нет.
Author
Owner

Владелец утвердил оба эскиза и drag-порядок с серверным сохранением, единым порядком рабочих списков, прежним местом после restore и новыми доменами в конце; прямо поручил реализацию и production. План записан в KB/Спеки/2026-10-26 Скрытые домены и удаление — эскиз26.md. Этапы: backend visibility/order + hidden-only delete guard; все UI consumers + native drag; Docker backend и браузерная регрессия/независимый review; admin-only production, RAW config/sets/credentials invariant. Проценты отдельно. Контракт order принимает ровно все visible IDs, сохраняет позиции hidden; visibility отдельна от enabled/verified. Удаление блокируется для queued/running jobs, чтобы не потерять транспорт. Все решения по текущему поручению, API/GP не затрагиваются.

Владелец утвердил оба эскиза и drag-порядок с серверным сохранением, единым порядком рабочих списков, прежним местом после restore и новыми доменами в конце; прямо поручил реализацию и production. План записан в KB/Спеки/2026-10-26 Скрытые домены и удаление — эскиз26.md. Этапы: backend visibility/order + hidden-only delete guard; все UI consumers + native drag; Docker backend и браузерная регрессия/независимый review; admin-only production, RAW config/sets/credentials invariant. Проценты отдельно. Контракт order принимает ровно все visible IDs, сохраняет позиции hidden; visibility отдельна от enabled/verified. Удаление блокируется для queued/running jobs, чтобы не потерять транспорт. Все решения по текущему поручению, API/GP не затрагиваются.
Author
Owner

Реализация26: используем существующий изолированный wt/preland21, отдельные backend/frontend исполнители и независимый reviewer по skill subagent-driven-development. Backend order сохраняет порядок самого targets.json, hidden остаются в прежних индексах. Найден race enqueue/delete: HTTP создание/повтор jobs сериализуются тем же targets lock, deletion отвергает queued/running reference. Visibility не выключает транспорт и не отменяет jobs. Frontend allTargets→visible projection, фильтрация history/result/retry вместо удаления истории, guard dirty/saving before hide, сохраняемые DOM drafts. Перед выпуском снят приватный baseline4RAW config+identity/notes hash, pending jobs отсутствуют. Production доQA не менялся.

Реализация26: используем существующий изолированный wt/preland21, отдельные backend/frontend исполнители и независимый reviewer по skill subagent-driven-development. Backend order сохраняет порядок самого targets.json, hidden остаются в прежних индексах. Найден race enqueue/delete: HTTP создание/повтор jobs сериализуются тем же targets lock, deletion отвергает queued/running reference. Visibility не выключает транспорт и не отменяет jobs. Frontend allTargets→visible projection, фильтрация history/result/retry вместо удаления истории, guard dirty/saving before hide, сохраняемые DOM drafts. Перед выпуском снят приватный baseline4RAW config+identity/notes hash, pending jobs отсутствуют. Production доQA не менялся.
Author
Owner

Pre-release gate26: root независимо повторил полный composer test10scripts exit0; backend52новых assertions (23Store+29HTTP). Docker nativeUI10/10 GREEN (matrix/notes/builder/remember/requisites/verified-refresh/utm/smoke/visibility/loginrace). Независимый reviewer APPROVED: native pointerdrag/serverpersist/draftDOM/hiddenslots/newlogin/allhidden/mobile; nativeadd disposable→visibleDELETE409→hide→UIdelete, исходныеconfigversions unchanged. Actuallateanonymous401→successfulLogin→late401 logout reproducedRED, исправлен sessionGeneration и independentlyGREEN; прежние Save/Copy completion races regressionGREEN. Emptyhiddenjobtables убраны изUI, storedhistory unchanged. Reports output/preland26/pre-release-report.md и independent-review.md. Production ещё не меняли; далее отдельный admin-only release main, безpublicPrelandstageautodeploy, затем restricted production acceptance и контроль4RAWconfig/notes/transportidentity. Прямойlate-successGET противmutation отдельно не инъецировался; epochguards прочитаны и другиеsessionraces проверены поведением.

Pre-release gate26: root независимо повторил полный composer test10scripts exit0; backend52новых assertions (23Store+29HTTP). Docker nativeUI10/10 GREEN (matrix/notes/builder/remember/requisites/verified-refresh/utm/smoke/visibility/loginrace). Независимый reviewer APPROVED: native pointerdrag/serverpersist/draftDOM/hiddenslots/newlogin/allhidden/mobile; nativeadd disposable→visibleDELETE409→hide→UIdelete, исходныеconfigversions unchanged. Actuallateanonymous401→successfulLogin→late401 logout reproducedRED, исправлен sessionGeneration и independentlyGREEN; прежние Save/Copy completion races regressionGREEN. Emptyhiddenjobtables убраны изUI, storedhistory unchanged. Reports output/preland26/pre-release-report.md и independent-review.md. Production ещё не меняли; далее отдельный admin-only release main, безpublicPrelandstageautodeploy, затем restricted production acceptance и контроль4RAWconfig/notes/transportidentity. Прямойlate-successGET противmutation отдельно не инъецировался; epochguards прочитаны и другиеsessionraces проверены поведением.
Author
Owner

Release gate вновь закрыт ДО production: расширение late401 regression обнаружило вторую часть race — stale anonymous HTTP401 содержит Set-Cookie, заменяет успешную authenticatedcookie; UIguard сохранял workspace, но следующий API401. Прежний independenttest проверял только workspace, поэтому это пропустил; в чатевладельцу причина сообщена. Backend исправляет cookie errorresponse, enhanced UI требует subsequent authenticatedGET200 и realorderPOST200; повторный review/gates обязательны. Production по-прежнемуdd6d221, не менялся. Successnotice targetmutation добавлено и точечный nativevisibilityGREEN.

Release gate вновь закрыт ДО production: расширение late401 regression обнаружило вторую часть race — stale anonymous HTTP401 содержит Set-Cookie, заменяет успешную authenticatedcookie; UIguard сохранял workspace, но следующий API401. Прежний independenttest проверял только workspace, поэтому это пропустил; в чатевладельцу причина сообщена. Backend исправляет cookie errorresponse, enhanced UI требует subsequent authenticatedGET200 и realorderPOST200; повторный review/gates обязательны. Production по-прежнемуdd6d221, не менялся. Successnotice targetmutation добавлено и точечный nativevisibilityGREEN.
Author
Owner

Final gate восстановлен: centralindex401 не отправляет Set-Cookie (anonymous/expired/failedlogin), expiredbacking destroyed+replay401, explicitlogout200 cookieclear retained. Root fullcomposer10suiteexit0 послеfinalfix,359PASSlines в output/preland26/root-composer-final.log. Independent held401→workspace→GETstate200→orderPOST200 и existingSave/Copy sessionjobsGREEN; fixture a,b,c,d восстановлена. Reviewer повторноAPPROVED0findings. Source commit00fbef9ede6d654c5e406336564edce2899ffbdc pushedmain; staging не трогали, publicPreland не выкатывается. Наproduction собирается отдельный imagepreland-admin:00fbef9; переключение и productionacceptance ещё не выполнены.

Final gate восстановлен: centralindex401 не отправляет Set-Cookie (anonymous/expired/failedlogin), expiredbacking destroyed+replay401, explicitlogout200 cookieclear retained. Root fullcomposer10suiteexit0 послеfinalfix,359PASSlines в output/preland26/root-composer-final.log. Independent held401→workspace→GETstate200→orderPOST200 и existingSave/Copy sessionjobsGREEN; fixture a,b,c,d восстановлена. Reviewer повторноAPPROVED0findings. Source commit00fbef9ede6d654c5e406336564edce2899ffbdc pushedmain; staging не трогали, publicPreland не выкатывается. Наproduction собирается отдельный imagepreland-admin:00fbef9; переключение и productionacceptance ещё не выполнены.
Author
Owner

Canonical clean build26 остановлен PECLmetadata, доproduction переключения. Без изменения зависимостей построен immutableimage из exactтекущего8041afd5... + source00fbef9; composer.lock сравнен bytehash equality. Image0aec13b766fab9004ee86df998cb007456b69780ff86a596c949444cfe9d7a26, base/revision labels зафиксированы. CleanbuildнеPASS; остаток явно выделен #27. Переключениеweb/worker с backup.env и auto rollback поhealth сейчас выполняется, productionacceptance ещё впереди.

Canonical clean build26 остановлен PECLmetadata, доproduction переключения. Без изменения зависимостей построен immutableimage из exactтекущего8041afd5... + source00fbef9; composer.lock сравнен bytehash equality. Image0aec13b766fab9004ee86df998cb007456b69780ff86a596c949444cfe9d7a26, base/revision labels зафиксированы. CleanbuildнеPASS; остаток явно выделен #27. Переключениеweb/worker с backup.env и auto rollback поhealth сейчас выполняется, productionacceptance ещё впереди.
Author
Owner

Завершено26.10.2026. Production https://admin.zoomstage.online: source00fbef9ede6d654c5e406336564edce2899ffbdc/main, imagepreland-admin:00fbef9 sha256:0aec13b766fab9004ee86df998cb007456b69780ff86a596c949444cfe9d7a26. Webhealthy/workerrunning; running Store/index/JS/CSS hash exactreleasearchive. KBmaster b7b0fd09cff7fe49cf95d5a89636ab5e1d53e116 опубликована, spec/план/инфраструктура/индекс обновлены.

Выполнено: eyehide, restore/delete onlyhidden с serverguard+pendingjobguard, gripdrag и keyboardorder с серверным сохранением для всех списков, drafts/notes сохранены, stale401 cookie race устранён. Fullbackend10suiteexit0 независимо root, UI10suite+independentnative/sessionregression PASS, reviewAPPROVED. Production actualmouse dragstage→afterpixel, reload/newtab, вернутьorder; hidepixel→reload→restoreexactslot; затем порученноеhidepixel/ila/ika. Finalreadonly всеworkinglists stageonly, hidden3 restore/delete доступно, mobile390 nooverflow, pageerrors[], logout401. НиодногоprodDELETE/configwrite/ZIP/copy.

Первыйproductiontest после успешныхorder/visibility ошибочно ожидал0copyrecipients при unselectedsource, хотя Stage корректноостается1. Исправлено только ожидание; завершение отдельным readonlyscript безповтораmutations. Evidence output/preland26/production-evidence.json phasePASS, screenshots просмотрены. FinalTransportbaselinecheck RAW4config exact, notesexact, credentials/transport/enabled/verifiedexact, all4 retained/orderexact, pendingnull; private receiptpreland26-final-check.json.

Открытые связанные остатки явно выделены: #27 cleanbuildPECLmetadata (canonicalbuildfailed, release использовал exactexistingbase8041afd5+unchangedcomposerlock+проверенныйкод), #28 отдельное согласование единогоформата процентов (веса неменяли). Late-successGET отдельно не инъецировался; guardпрочитан, ключевыеuserflows и другиеsessionraces поведенческипроверены. Длясогласованногоhide/order/delete незавершённыхобязательныхработнет, #26 закрываю.

Завершено26.10.2026. Production https://admin.zoomstage.online: source00fbef9ede6d654c5e406336564edce2899ffbdc/main, imagepreland-admin:00fbef9 sha256:0aec13b766fab9004ee86df998cb007456b69780ff86a596c949444cfe9d7a26. Webhealthy/workerrunning; running Store/index/JS/CSS hash exactreleasearchive. KBmaster b7b0fd09cff7fe49cf95d5a89636ab5e1d53e116 опубликована, spec/план/инфраструктура/индекс обновлены. Выполнено: eyehide, restore/delete onlyhidden с serverguard+pendingjobguard, gripdrag и keyboardorder с серверным сохранением для всех списков, drafts/notes сохранены, stale401 cookie race устранён. Fullbackend10suiteexit0 независимо root, UI10suite+independentnative/sessionregression PASS, reviewAPPROVED. Production actualmouse dragstage→afterpixel, reload/newtab, вернутьorder; hidepixel→reload→restoreexactslot; затем порученноеhidepixel/ila/ika. Finalreadonly всеworkinglists stageonly, hidden3 restore/delete доступно, mobile390 nooverflow, pageerrors[], logout401. НиодногоprodDELETE/configwrite/ZIP/copy. Первыйproductiontest после успешныхorder/visibility ошибочно ожидал0copyrecipients при unselectedsource, хотя Stage корректноостается1. Исправлено только ожидание; завершение отдельным readonlyscript безповтораmutations. Evidence output/preland26/production-evidence.json phasePASS, screenshots просмотрены. FinalTransportbaselinecheck RAW4config exact, notesexact, credentials/transport/enabled/verifiedexact, all4 retained/orderexact, pendingnull; private receiptpreland26-final-check.json. Открытые связанные остатки явно выделены: #27 cleanbuildPECLmetadata (canonicalbuildfailed, release использовал exactexistingbase8041afd5+unchangedcomposerlock+проверенныйкод), #28 отдельное согласование единогоформата процентов (веса неменяли). Late-successGET отдельно не инъецировался; guardпрочитан, ключевыеuserflows и другиеsessionraces поведенческипроверены. Длясогласованногоhide/order/delete незавершённыхобязательныхработнет, #26 закрываю.
yury closed this issue 2026-10-26 02:21:03 +01:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anton/preland#26