Поручение владельца26.10.2026: убрать даты сохранения заметок и версии конфигов; редактировать значения непосредственно в основной таблице доменов, сохранять; под таблицей копирование сохранённых настроек из выбранного домена в несколько доменов с checkbox. Отдельный configeditor заменить этим интерфейсом. Сначала обязательно показать и согласовать эскиз основной таблицы и копирования, до реализации.
План задачи: 1) уточнить значения полей/границы копирования по эскизу, сохранить спецификацию в KB; 2) после согласования — inline editor на существующем CAS/Jobs/validation, source saved config/target checkbox; 3) реальные UIinput/save/copy/conflict/error/regressions, review; 4) разрешённый scopedrelease, productionприёмка/KB/Giteaитог.
Текущий этап — только эскиз. Runtime/код приложения/production не изменяются до согласования. Связано#22/#23/#24, сохранять obsoletechbguard и скрытиеrequisites.
Поручение владельца26.10.2026: убрать даты сохранения заметок и версии конфигов; редактировать значения непосредственно в основной таблице доменов, сохранять; под таблицей копирование сохранённых настроек из выбранного домена в несколько доменов с checkbox. Отдельный configeditor заменить этим интерфейсом. Сначала обязательно показать и согласовать эскиз основной таблицы и копирования, до реализации.
План задачи: 1) уточнить значения полей/границы копирования по эскизу, сохранить спецификацию в KB; 2) после согласования — inline editor на существующем CAS/Jobs/validation, source saved config/target checkbox; 3) реальные UIinput/save/copy/conflict/error/regressions, review; 4) разрешённый scopedrelease, productionприёмка/KB/Giteaитог.
Текущий этап — только эскиз. Runtime/код приложения/production не изменяются до согласования. Связано#22/#23/#24, сохранять obsoletechbguard и скрытиеrequisites.
Подготовлены запрошенные два эскиза: output/preland25/main-table-sketch.png и copy-sketch.png, общий interface-sketch.html. ОбеPNG отрендерены вDockerChromium и визуальнопроверены. Код/runtime/productionнеизменны. KBчерновик Спеки/2026-10-26 Таблица и копирование настроек — 25.md, статусожидаетсогласования.
Владелец26.10: «Да, это именно то, что нужно», просит аккуратный дизайн и независимые роли; затем явно «выкладывай в ... Проду». Эскизы/weightedit+computedpct и scopehost+UTM/безnotesassets утверждены. Старыйeditor/apply заменяетсяmatrix+copy, соседниеbuilder/ZIP/connections/history сохранены. Спецификация обновлена, план KB Планы/2026-10-26 Таблица и копирование — план25.md, T1copybackend/T2inlinefrontend/T3independentreview/integration/productionQA.
Владелец26.10: «Да, это именно то, что нужно», просит аккуратный дизайн и независимые роли; затем явно «выкладывай в ... Проду». Эскизы/weightedit+computedpct и scopehost+UTM/безnotesassets утверждены. Старыйeditor/apply заменяетсяmatrix+copy, соседниеbuilder/ZIP/connections/history сохранены. Спецификация обновлена, план KB Планы/2026-10-26 Таблица и копирование — план25.md, T1copybackend/T2inlinefrontend/T3independentreview/integration/productionQA.
CopyAPI planned POST /api/copy strict {source:{id,version},targets:[{id,version}]}, серверныйсохранённыйsnapshot, pertargetCAS/Jobs/validation/backup; inlineSaveexistingapply. Versions остаютсявAPI/state, скрытывUI; notesdatesскрыты. Отсутствующуюгруппуисточника не трактуеммолча: владельцу заданshortquestion сохранитьилиудалитьуtarget; остальноепродолжается. ProductionQA сначалаdrycompareprojection наэквивалентныхцелях иonlynoopsave/copy безвмешательствавбизнесправила. Коммит/выкатещёневыполнены.
Прямой ответ владельца на missinggroup: «если вдруг нет, то ни в коем случае не удалять группу в рецепиенте». Решение: отсутствующая группа/host источника не входят в copyprojection, соответствующие значения получателя остаются без изменения. После выпуска владелец сам выполнит боевую синхронизацию соZoomStage; агент не делает её за владельца.
Роли backendPHP/frontendUI/independentdesigner-review начали независимые области; root ведётинтеграцию/prodQA. Actualdataне изменены.
Прямой ответ владельца на missinggroup: «если вдруг нет, то ни в коем случае не удалять группу в рецепиенте». Решение: отсутствующая группа/host источника не входят в copyprojection, соответствующие значения получателя остаются без изменения. После выпуска владелец сам выполнит боевую синхронизацию соZoomStage; агент не делает её за владельца.
Согласован backendinterface: POST /api/copy strict source{id,version64hex}, targetsarray1..100{id,version}, unknownkeys/duplicates/sourceintarget rejected. 202{job}; serverreads savedsource matchingversion409, snapshots onlyhost+canonical8default/weights (semantic→numeric), targetalias preserved черезexistingadaptChange, targetunknownprops/notes/assets/requisitesне копируются. Выделенный immutablejobtypecopy соsource metadata позволяет видетьоперациювжурнале; targetCAS/backup/validation/indpic/catalog иrecoveryобщие сapply. Sourceпослеenqueueможетизмениться — queuedjobиспользуетвыбранныйсохранённыйsnapshot, несвежиезначения. Этоimplementationdetail сохранённогоcopy, неlivebinding.
Роли backendPHP/frontendUI/independentdesigner-review начали независимые области; root ведётинтеграцию/prodQA. Actualdataне изменены.
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.
Поручение владельца26.10.2026: убрать даты сохранения заметок и версии конфигов; редактировать значения непосредственно в основной таблице доменов, сохранять; под таблицей копирование сохранённых настроек из выбранного домена в несколько доменов с checkbox. Отдельный configeditor заменить этим интерфейсом. Сначала обязательно показать и согласовать эскиз основной таблицы и копирования, до реализации.
План задачи: 1) уточнить значения полей/границы копирования по эскизу, сохранить спецификацию в KB; 2) после согласования — inline editor на существующем CAS/Jobs/validation, source saved config/target checkbox; 3) реальные UIinput/save/copy/conflict/error/regressions, review; 4) разрешённый scopedrelease, productionприёмка/KB/Giteaитог.
Текущий этап — только эскиз. Runtime/код приложения/production не изменяются до согласования. Связано#22/#23/#24, сохранять obsoletechbguard и скрытиеrequisites.
Подготовлены запрошенные два эскиза: output/preland25/main-table-sketch.png и copy-sketch.png, общий interface-sketch.html. ОбеPNG отрендерены вDockerChromium и визуальнопроверены. Код/runtime/productionнеизменны. KBчерновик Спеки/2026-10-26 Таблица и копирование настроек — 25.md, статусожидаетсогласования.
ПредлагаемыйUI: inlineвариант/вес/расчётнаядоля/default-radio, заметкивстрокеимени, сохранениеподколонкойдомена; датыnotes/hashверсийубраны. Copysource любойдоменdropdown, destinationmultiplecheckbox/sourceexcluded, однакнопка. Предлагаемыйscopehost+canonicalUTMизсохранённогоconfig; notes/ZIP/requisites/unknownнепередавать. Редактированиевесоввместопроцентов — тоже предложениеэскиза, неутверждённоеправило. ВладелецполучитобеPNG; реализацияпослесогласования, задачаостаётсяOPEN.
Владелец26.10: «Да, это именно то, что нужно», просит аккуратный дизайн и независимые роли; затем явно «выкладывай в ... Проду». Эскизы/weightedit+computedpct и scopehost+UTM/безnotesassets утверждены. Старыйeditor/apply заменяетсяmatrix+copy, соседниеbuilder/ZIP/connections/history сохранены. Спецификация обновлена, план KB Планы/2026-10-26 Таблица и копирование — план25.md, T1copybackend/T2inlinefrontend/T3independentreview/integration/productionQA.
CopyAPI planned POST /api/copy strict {source:{id,version},targets:[{id,version}]}, серверныйсохранённыйsnapshot, pertargetCAS/Jobs/validation/backup; inlineSaveexistingapply. Versions остаютсявAPI/state, скрытывUI; notesdatesскрыты. Отсутствующуюгруппуисточника не трактуеммолча: владельцу заданshortquestion сохранитьилиудалитьуtarget; остальноепродолжается. ProductionQA сначалаdrycompareprojection наэквивалентныхцелях иonlynoopsave/copy безвмешательствавбизнесправила. Коммит/выкатещёневыполнены.
Прямой ответ владельца на missinggroup: «если вдруг нет, то ни в коем случае не удалять группу в рецепиенте». Решение: отсутствующая группа/host источника не входят в copyprojection, соответствующие значения получателя остаются без изменения. После выпуска владелец сам выполнит боевую синхронизацию соZoomStage; агент не делает её за владельца.
Согласован backendinterface: POST /api/copy strict source{id,version64hex}, targetsarray1..100{id,version}, unknownkeys/duplicates/sourceintarget rejected. 202{job}; serverreads savedsource matchingversion409, snapshots onlyhost+canonical8default/weights (semantic→numeric), targetalias preserved черезexistingadaptChange, targetunknownprops/notes/assets/requisitesне копируются. Выделенный immutablejobtypecopy соsource metadata позволяет видетьоперациювжурнале; targetCAS/backup/validation/indpic/catalog иrecoveryобщие сapply. Sourceпослеenqueueможетизмениться — queuedjobиспользуетвыбранныйсохранённыйsnapshot, несвежиезначения. Этоimplementationdetail сохранённогоcopy, неlivebinding.
Роли backendPHP/frontendUI/independentdesigner-review начали независимые области; root ведётинтеграцию/prodQA. Actualdataне изменены.
T1backendFROZEN: strictCopyAPI/serverimmutable snapshot, source409/targetCAS partialsuccess, alias+nestedmetadata/JSONtypes/missingpreserve, actualindpic/catalog/recovery/obsoletechbguards. RED→GREEN49copychecks, fullcomposer9suites319PASS exit0; ведущийнезависимоповторилfullgate. IndependentT1review APPROVE. Копируемыйdefaultможетвзятьint/stringизsource, targetschemaозначаетaliassemanticshape; unrelatedtypesсохраняются. Отчёты output/preland25/backend-report.md, backend-composer-green.log, root-composer-gate.log.
Свежий privatepreland25-before снятreadonlyсо4целей: canonicalcopy scope stage==ila==ika; pixelотличаетсяtp/cons, невыбиратьего дляQA. Productionпослерелизапровериттолькокопированиеstage→ila+ikaэквивалентныхнастроек, не массовуюсинхронизациюowner. Actualbusinessvaluesнеизменять; rawformatdifferenceтолькопослестрогогоsemanticcompare/CASможновернуть. Настройкиproductionпоканеизменены.
T2frontendещёполируется: независимыеoperationtargets дляZIP/history, стабильныеdraftDOM/epoch приreads, dynamicrename/add/deleteцелях, source/recipientdirtycopyblocks. Rootpreflightнашёл6рисков и передалfrontendbeforefreeze; ониневыдаютсязавыпущенныедефекты. НуженwholeUIrealinputsavecopy/errors/recovery/1440+390/noartifacts+reviewдоrelease. KBспека/планопубликованы06108bd, задачаостаётсяOPEN.
T2FROZEN + independentWHOLEreviewAPPROVE: 8UI suites иrealZIP happy-path; matrixweights/default/add/remove/missing/save/CAS/offline/partialcopy/source409 + notes3races/builder/remember/verifiedrefresh, actualoperationtargetsZIPreset иcopyindependent. 1440/390cleanUI, dynamic6domains/rename/disable/delete-readd/lateGETlogoutlogin browserPASS, all4fixtureconfigshashes unchanged/e-fcleanup. ParentnativeUIinput/click/cancel/copysource-checkbox/reread/notesnode/1440+390 independentlyPASS twice.
Дорелиза найденивоспроизведён настоящий POSTcontinuationrace: heldactualcompletedjobresponse→logout/login→newdraft→oldcompletion стиралdraft. Исправленsessiongeneration/entryidentity/copyepoch/old401 guards; newui-session-jobs actualRED→GREEN дляSave/Copy/caret/node/outcomes/newbusy. Послеfix повтореныfullmatrix+notes+rememberGREEN, reviewerguardsAPPROVE. Преждевпродуэтоткодневыпускался. QAhelperвdynamicproofпотребовалисправитьroutehandling/loginwait; этоошибкиharness, финальныйactualcasePASS.
Исходникиdd6d221dd7d3b4d94ccbac1c572ed1ab1ad5bdfe опубликованыmain/staging. Adminimage8041afd5a3de129e8096625b4be9e226166ca3d675a5f7993af05867074efcd5, autoloadCopyPASS, отдельныйreleaseидёт; health/productionQAещёpending. Sessions/remember не включенывrollbackstatebackup; ихживыеprivateкаталогисохраняются. ProductionQA scriptfrozen сguard ровноoneequivalentstage→ila+ika POSTcopy, всеостальныемутаторыblocked; actualrunещёнепроводился. #25открытадополнойприёмки.
ИТОГ#25: productionPASS, обязательныхостатковнет. Админка dd6d221dd7d3b4d94ccbac1c572ed1ab1ad5bdfe/image8041afd5a3de129e8096625b4be9e226166ca3d675a5f7993af05867074efcd5, webhealthy/workerrunning. Actions500/job712SUCCESS runner37/zoomzilla-prod-org. KBmaster7dbd0ec опубликована: финальнаяспека/план/индекс/эксплуатационнаязаметка.
NativeproductionUI с первого запуска: host/weightinput+cancel, матрица8UTM икопирование1440/390; один разрешённый эквивалентныйPOSTcopy stage→ila+ika202, job e06237cf2775ea260f0f7dc3ad09bbff completed2success, обе видимы в #copy-results. Сохранённыеconfigsemantics4/4/notes точные, source/pixelRAWнеизменны. RegцелямкопированиепоменялотолькопредставлениеJSON. Послеstrictrecursivevalue/typecompare, проверкиpendingjobs иfreshcurrenthash обеREGRAWвернулиисходнымTransport/CAS+backup, receipt privatepreland25-qa-raw-restore.json. Повторногокопированиянет, notes/assetsнеписались.
Финально отдельныйreadonlyUI иrootTransportreads: stagecd113651..., pixel737f46a9..., ila/ika24f226a5... точныепредтестовыеbytes, notes originalbytesexact; matrix+copyготовы,390/nooverflow, QAlogout401, pageErrors0/blockedwrites[]. Privatebaseline/receipt/notes0600UID997:987. Скриншоты production-copy/table-1440/390-copy-success.png, final-readonly-evidence.json, production-report.md вoutput/preland25. Password/SID/notesplaintextневыводились.
СогласованныйUI/бережноеcopy реализованы; missingгруппаисточникаНЕудаляетrecipientgroup. Source snapshotserver-owned, host+8default/weights, no notes/assets/requisites/unknowncopy; source/targetdrafts иверсии защищены. Историческиенаборы/builder/remember90/indpicselection/historyсохранены ипрогнаны. МассовуюStage→allбоевуюсинхронизациюownerсделаетсам. Существующиеобщиеcatalogwarningsприотсутствииfreshmatchingcatalogсохранены, не выдаютсязапроверенныйкаталог; физическиеindpicпроверяютсявсегда.
Fullbackend319PASS/rootrepeat; UI8suites+realZIP, independentlydynamic6+GET/session+POSTjobactualRED→GREEN, visual/codeAPPROVE, nativeparentflowPASS. Задача закрывается.