[2026-11-14] eagle: personal/projects/personal-os/personal-os-action-plan-2026-10-05.md personal/projects/personal-os/personal-os-fixes-2026-11-13.md personal/projects/personal-os/personal-os-production-acceptance.md

This commit is contained in:
Alexey Martemyanov committed 2026-11-14 22:03:06 +06:00
1 parent 197e8f8fc2
commit 2c04541597
3 files changed
+39 -7

No files matched your search

@@ -1,6 +1,6 @@
# Personal OS — план действий E1–E5
Текущее исполнение A01–A17: [журнал исправлений и оставшаяся приёмка](personal-os-fixes-2026-11-13.md), [повторный независимый аудит](personal-os-repeat-audit-2026-11-13.md), [актуальная приёмка](personal-os-production-acceptance.md). E4v186/E5v188 опубликованы; четыре расписания переключены на Windmill13ноября. Последний штатный production `a5367cb5-4c50-473e-be94-e07bf677836c` без подставленного proposal завершён за62,790с: ranked, rejected0, все38 незакрытых действий обсуждений сохранены. Неизвестная субботняя ёмкость удерживает действия без слотов; все29сверок/145мин остаются backlog. Python/SQL-домен и Windmill-оркестрация подтверждены. Полная рабочая приёмка остаётся открытой: две удержанные работы после частично успешного scoped A17 flow1c5085d8…, восстановление A17 после исправления пустого шаблона, Outlook, сценарии открытого дня/доставки и пять реальных дней. UI8/8 и полный Node310/310, Python212/212 прошли; host безопасно перезагружен14ноября13:59:36Z. Пилот0/5. Ниже сохранён план и история его уточнений.
Текущее исполнение A01–A17: [журнал исправлений](personal-os-fixes-2026-11-13.md), [независимый аудит](personal-os-repeat-audit-2026-11-13.md), [актуальная приёмка](personal-os-production-acceptance.md). E4v186/E5v188 опубликованы; четыре расписания работают в Windmill. Последний штатный production `3cebf559-0f12-4a4e-99b3-00a8ac7ce4e4` прошёл за86,208с без подготовленного proposal: все38открытых действий и29сверок/145мин сохранены, неизвестная субботняя ёмкость удерживает исполнение. A17:45f завершён17/17частей через существующее расписание,27изменений остаются candidate;842 восстановлен и ожидает обработки,be3f ещё не применён. Новый P1 старых queued-пакетов исправляется с независимым ревью; прежние324Node/212Python проверяли версию до него. Отдельно готовится получение точного кода доступногоPR1564. Outlook при заблокированномMac, рабочий сценарий нового артефакта/доставки и пилот0/5 остаются открытыми. Ниже сохранена история плана.
## Уточнение плана после независимого аудита 13 ноября
@@ -4,11 +4,13 @@
## Текущий контрольный срез — E4v186/E5v188, 14 ноября
Публикация, переключение четырёх расписаний и штатный production подтверждены. Полная приёмка открыта; актуальные критерии и ограничения — в [журнале приёмки](personal-os-production-acceptance.md). Независимый аудит A01–A17 и опубликованного прогона выполнен; финальнаяUI-регрессия принята. Ночной saved-attempt audit вновь открыл дефектыA17. Исправления JSON-цитат икорня загружены, четыре старых задания восстановлены с guards/backup; два succeeded. После исправления пустогошаблона 45f дошёл16/17 и выявил потерю промежуточногородителя; fixещё вработе. Дополнительныйf727 восстановлен и прошёл2/78. Дополнительный A12 с тремя карточками одного update_design исправлен: exact aliases, атомарныйreview, защита от source drift и старой оценки; независимый аудит и рабочийread-onlyUI пройдены.
Публикация E4v186/E5v188 и четыре расписания подтверждены. Последний штатный production `3cebf559-0f12-4a4e-99b3-00a8ac7ce4e4` прошёл за86,208с; точные ревизии/хеши и UI API проверены независимо. Полная приёмка открыта; критерии — в [журнале приёмки](personal-os-production-acceptance.md).
A17: два ранних восстановленных задания и45f succeeded;45f прошёл17/17частей через штатное расписание,34→47claims остаются candidate.842 повторно поставлен в очередь с2/14частями,be3f пока не применён. После полного набора324Node/212Python обнаружен новый P1 допуска старых queued-пакетов; исправление проходит отдельные тесты/ревью. Получение codeartifact для доступногоPR1564 готовится отдельно. A12: aliases и история сохранены, атомарный review защищён от source drift и старой оценки, рабочий read-only UI проверен.
- Job22b4e60b-974a-4fe2-ae64-2b8f74ec3420: success=true,67,822с, только mode=production. Ranked, rejected0;39 действий обсуждений,23 безAsana, ни одно не потеряно. NextTP присутствует; после19:00 назначено0мин.
- Первый автоматический observer01a1d5b4-9289-5b45-54a2-d44c3741491a:26/26 текущих работ проверены. Пять исторических пустых тредов остаются missing; открытые обязательства этим выпадением не утрачены.
- Deadline projection и устранение artifact-budget churn приняты независимой проверкой. Последний backend набор212Python PASS; Node310 PASS, ноль пропусков. UI8/8 и независимое ревью пройдены. Методpublisher/state неизменёнe381eeee…; действия и человеческие решения не подменялись.
- Deadline projection и устранение artifact-budget churn приняты независимой проверкой. Последний backend набор212Python PASS; Node324 PASS, ноль пропусков. UI8/8 и независимое ревью пройдены. Методpublisher/state неизменёнe381eeee…; действия и человеческие решения не подменялись.
- Исправлена потеря диагностики исторических ошибок источников (последний GET подтвердил8), E5v187 опубликован. Точные причины прошлыхHTTP400 неизвестны; последующее чтение26/26успешно. Host загружен13:59:36Z с health200; остаются два удержанных результата A17, живойOutlook, рабочие сценарии нового артефакта/доставки/отклонения и0/5реальныхдней. Слежениеactive15мин.
## Повторный production 14 ноября: неизвестная ёмкость
@@ -34,8 +36,36 @@
## A17: промежуточный родитель и запись дочерней задачи
- Последняя часть45f содержала task1217216869320004 и root1209466022474921, но пропустила parent1217211109458979, который присутствовал в полномисточнике. Новый Python `claim-partition-context.py` добавляет точную запись текущейзадачи и всех её предков до корня; Node обслуживает прежний транспорт. Отсутствующий/удалённый/противоречивый/циклический путь и превышение лимита удерживаются, источники не усекаются.
- Независимое ревью нашло и устранило смежный случай story-onlyparts без самойchildtask.53целевых и финальные310Node/212Python PASS, ноль пропусков.5из6репрезентативных сохранённых пакетов прошли; be3f… остаётсяheld из-за отсутствующей task1210920934149166. Это ограничение не замаскировано успешными тестами.
- Реальный part16 меняется только добавлением существующего parent:6519→9419символов. Остальные16частей,16валидированныхрезультатов и23rawattempts сохраняются. Новый точечныйплан4e27526f… прошёл независимое ревью, dry-run и изолированные проверки busy/hash/source/duplicate. Загрузка reviewedhelper7d9a2e14…/transport56067af7… и повтор запрошены; итог ещё проверяется.
- Независимое ревью нашло и устранило смежный случай story-onlyparts без самойchildtask.53целевых и финальные310Node/212Python PASS, ноль пропусков.5из6репрезентативных сохранённых пакетов прошли; be3f… былheld из-за отсутствующей task1210920934149166 в packet; дальнейший read-only аудит нашёл точную запись1827chars в исходномsnapshot. Причина — пропуск taskrecord для unchangedstory из evidence прежнегоclaim; сборка контекста ещё исправляется. Это ограничение не замаскировано успешными тестами.
- Реальный part16 меняется только добавлением существующего parent:6519→9419символов. Остальные16частей,16валидированныхрезультатов и23rawattempts сохраняются. Новый точечныйплан4e27526f… прошёл независимое ревью, dry-run и изолированные проверки busy/hash/source/duplicate. Reviewedhelper7d9a2e14…/transport56067af7… загружены безопасной заменойhost24244, health200. Единственный scopedrepeat `9ebe349c-9d51-410d-97ac-5aea113f0172` завершёнsuccess/statuspartial за21,308с: модель теперь видит родителей, но45f остаётся16/17 из-за неоднозначности bootstrap/filteredclaimscope. Сохранённые34globalclaims ошибочно интерпретируются как отсутствующие из-за0локальныхclaims в этойчасти. Принятия/no-opза модель не подставлялось; boundedfeedbackконтракт ещё исправляется.
## Дополнительные ограничения A17 после реальных повторов
- Обход модели не заменяется принятием за пользователя: после run9ebe… источник цепочки уже полный, но сохранённый ответ требует whole-work baseline из-за0filteredclaims в части при34globalclaims. Bounded Python feedback уточняет областьчасти; результат ещё должен пройти прежний validator и атомарное применение всехчастей.
- Отдельно842… запросил отвергнутые операции для исправления validationerror; их передача как явноневалидного feedback, не как evidence, ещё проверяется. Предыдущие ответыпо точнымpacket/partition не подменяются чужими или прежними версиями.
- be3f6cb0-75ba-4321-b658-5b49cc8798bd: fullsnapshot и PGmirror содержатtask1210920934149166 с одинаковымSHAa5b1b503…/1827chars. Дефектв сборкеpacket дляunchangedstory изpreviousclaim. Изолированныйseed добавил8точныхtaskrecords (278→286), сохранилchanges/53previousclaims, сформировал8частей с max159506≤160000. PGmirror observation10ноября; прямое актуальное чтениеAsana этойпроверкой не утверждается. Причина исходного quoteerror отделена от пропускаконтекста.
## Проверка контекстного протокола и свежести, 14 ноября15:35–15:40UTC
- Независимое ревью выявило и закрыло два дополнительных дефекта до загрузки: удалённая дочерняя задача ошибочно требовала существующего родителя для отзыва утверждений; ошибка построения контекста теряла устойчивый hold или допускала повтор через API. Версия source-context-v2 сохраняет точные удалённые записи, требует родителей только для существующих источников и записывает context_hold при неполном/слишком большом пакете. Модель и ручной retry для такого пакета запрещены. Поведение прежнего загруженного Node-процесса сохраняется до согласованной загрузки. Независимый целевой набор67/67 и полный324Node/212Python PASS, ноль пропусков; хеши замороженного кода совпали. Доказательство `context-protocol-full-tests.json`; рабочий повтор ещё следует.
- Повторный `wmill job get` подтвердил production `a5367cb5-4c50-473e-be94-e07bf677836c`: success,62,790с; активных E5 не обнаружено. Текущий API теперь корректно stale/pending_review_queue_changed: единственная clarification-сверка `1220422645861898` потеряла свежесть исходного capture14:50:07Z, 29сверок/145мин стали28/140. Её решение не принято и не удалено; оно исключено из текущей допустимой очереди. Asana также unverified по тому же source_synced_at; observed_at15:07:30Z не заменяет часы источника. Доказательство: `resume-stale-cause.json`.
- Ревизия обсуждений0e3e… сохранена; текущий observer capture15:35:00Z fresh, source_revalidated=true. Штатный refresh15:30 дал26cache_hits/0delegated. Полнота старых MM-тредов этим не утверждается. Пилот0/5; Mac остаётся заблокирован, CUA и Outlook AppleEvents не выполнялись.
## Полнота очереди анализа, контроль14ноября15:39–15:42UTC
- Последняя неснятая версия задания на работу:299работ, из них72succeeded,26blocked,199queued,2retry. Все неснятые строки:309заданий на299работ;82успеха относятся к81работе, включая историческую версию при новом ожидающем задании. Разные знаменатели не складываются в процент готовности.
- Среди26blocked:11исчерпавших повторы,8запросов более полного контекста,2ошибки цитат,2превышения бюджета,2ссылки на удалённый источник и1неразрешённый full-review. У11exhausted сохранённые причины:5цитат,2удалённых источника,1дублирование claim,1неверная ссылка на изменение,1лимит вывода,1часть теперь проходит validator. Автоматического массового повтора нет.
- Девять работ с несколькими неснятыми заданиями имеют разные source hash/base revision; одинаковых `(snapshot, base, method)` не обнаружено. Два ранее восстановленных успеха не выполнялись повторно. f727 штатно продвинулся6/78частей. Все12551claims остаются candidate; человеческих review-решений0. Терминальный job не означает человеческого принятия.
- Доказательства: `a17-blocked-audit/current-method-queue-summary.json`, `current-method-queue-deep-triage.json`. Отсутствующий PR в одном captured packet ещё не доказан как недоступный upstream; проверка продолжается.
## Рабочее восстановление A17, 14 ноября15:47–15:55UTC
- После естественного завершения Asana E1 выполнены две проверки отсутствия активных запросов и DB-работ. Собственный idle host заменён24244→88902, health200; четыре хеша runtime совпали с замороженным набором324Node/212Python. Чужие задания не останавливались.
- Восстановленный45f выполнен существующим расписанием: flow `01a1dabb-c0c1-79c5-5726-d8091fa54625`, success=true за133,394с; конкретное задание45f succeeded17/17. Последний bounded diagnostic дал0новых операций за20,38с; затем атомарно применены результаты всехчастей:14updates+13adds,34→47claims, всеcandidate, accepted0. Старые24raw/16validated сохранены, итоговыхraw25. Дополнительный ручной submit был отклонён автоматической проверкой разрешений из-за риска дубликата; новый flow не создавался, результат получен штатным расписанием. Proof `bootstrap-success-proof.json` и `a17-protocol-scheduled-proof.json`.
- План842 e9f99… прошёл независимое ревью/dry-run/TEMP guards и применён с сохранением2валидированных частей и11raw. Рабочий результат ещё ожидается. Проверенный планbe3f a4a6… пока не применён.
- В рабочем scan обнаружен новый P1:16старых queued-заданий получили ошибку построения контекста только в ответе scan, но прежняя строка не получилаcontext_hold. Read-only проверка подтвердила строки; изолированное TEMP-воспроизведение показало один вызов stub-модели и ложный succeeded. Вызов модели для этих16рабочих заданий не доказан. Исправляются collision приenqueue и проверка exact current context перед моделью; be3f не применялся до нового исправления/ревью. Это ограничение не закрывается прежним полным набором.
- Exact PR1564 доступен GitHubHTTP200; root/childAsana→PR и обратнаяAsana-ссылка вPRbody совпали. Метаданные/diff/files/commits сохранены сSHA; локальный collector хранит metadata/reviews/CI, но не codeartifact. Готовится отдельное ограниченное исправление capture; upstream и пользователь не объявлены блокером. ИсходникиGitHub не изменены.
- Штатный dispatcher создал один production `3cebf559-0f12-4a4e-99b3-00a8ac7ce4e4` для stale-плана; proposal не передавался. Job завершёнsuccess за86,208с, десятьreceipts получены; трикопииплана SHA45d6c046… совпали. Независимое ревью подтвердило APIheld/plan_not_admitted с актуальнымUUID, freshAsana/GitHub/discussion, все38открытыхIDs,29сверок/145мин,256held/13waiting/0rejected и0слотов. Неизвестная ёмкость не подменена нулевой/разрешённой; prepare.changed=false. Доказательство `stale-recovery-production-proof.json`.
## Реализованные изменения
@@ -2,7 +2,7 @@
## Текущее состояние 14 ноября 2026
**Полная приёмка открыта.** Исходные исправления A01–A17 проходят рабочую приёмку. Рабочие повторы дополнительно выявили дефекты A17 в JSON-цитатах, корневом и промежуточном родительском контексте, а также обработке пустого шаблона. Первые исправления загружены; передача промежуточных родителей и полное восстановление выбранных заданий ещё не приняты. Дополнительный A12 с тремя карточками одного update_design исправлен и принят независимым ревью; проверен рабочий UI без записи пользовательских решений. Доказательства: [журнал исправлений](personal-os-fixes-2026-11-13.md), [повторный независимый аудит](personal-os-repeat-audit-2026-11-13.md), [исходный аудит](personal-os-implementation-audit-2026-11-13.md).
**Полная приёмка открыта.** A01–A17 проходят рабочую проверку. A17: исправления цитат, корня, пустого шаблона, родительского контекста и bounded feedback довели45f до17/17частей через штатное расписание;27изменений сохранены какcandidate.842 ожидает продолжения после точечного восстановления,be3f ещё не применён. Дополнительно воспроизведён P1 допуска старых queued-пакетов с неполным контекстом; новый guard проходит тесты/ревью. Пропуск доступного кодаPR1564 исправляется отдельно. A12 принят независимым ревью и проверен в рабочем UI без записи решений пользователя. Доказательства: [журнал исправлений](personal-os-fixes-2026-11-13.md), [повторный аудит](personal-os-repeat-audit-2026-11-13.md), [исходный аудит](personal-os-implementation-audit-2026-11-13.md).
Опубликованы **E4 v186 и E5 v188**. Версия E5v187 от14ноября добавила проверенную диагностику host-ошибок, v188 — удержание действий при неизвестной ёмкости и точные безопасные причины отказа публикации; исторический успешный production ниже выполнялся наv185. GET опубликованных flows подтвердил совпадение всех inline-скриптов и lockfiles с проверенным кодом. Зависимости не изменены: psycopg/psycopg-binary3.3.6, typing-extensions4.16.0. Новые доменные правила выполняются в Python/SQL; Windmill владеет порядком шагов и UUID, существующие Node API/UI обслуживают транспорт. История SQLite, ID обязательств и решения пользователя сохранены.
@@ -12,11 +12,13 @@
- Независимая проверка новогоv188: plan/published-plan/latest-plan совпали по SHA и UUID. Все41 сырых ID сохранены через39 канонических карточек/aliases; все38 незакрытых карточек присутствуют в удержании плана. E4 ranked:298входов, включая29сверок;256held,13waiting,0rejected.32работы удержаны human_capacity_unknown;29сверок/145мин остаются backlog, слотов/ordered_actions0. Неизвестная суммарная ёмкость остаётся unknown, не подменена нулём. NextTP: два уточнения срока и одно удержание ёмкости. prepare.changed=false; рабочий второй проход и новый артефакт этим запуском не доказаны. Новых внерабочих уведомлений нет.
- Повторные9частей анализа неизменного164-record обсуждения устранены для наблюдавшегося стабильного входа. Из10реальныхcaptures подтверждены90лишних вызовов; после proof-bound cache reuse observer26/26, свежий опубликованный refresh7,508с и0модельныхdiscussion-вызовов. Исходная ревизия анализа сохранена; дальнейшее изменение диагностики междуcaptures может потребовать новогоанализа. Точнаяrevisionоднойкарточки изменилась, прежнийплан безопасноstale; штатный пересчёт `4dede083-1dbe-4b2f-a2f2-3379c0a68801` завершёнsuccess за71,798с и принят независимойпроверкой.
- Окончательный same-capture refresh принят двумя настоящими E5runs: `01a1da9c-41a3-9061-1907-fd5d676399c4` (7,373с) и `01a1da9c-f76f-0c1b-859a-4a628f7c8c67` (6,987с). В каждом26cache_hits/0delegated и0модельных вызовов. Все41действие, история и точнаяревизия очереди сохранены;21проверка артефакта получила новый checked_at. Итоговый штатный production `a5367cb5-4c50-473e-be94-e07bf677836c` завершён за62,790с; трикопииплана совпалиSHA, currentUI APIheld/plan_not_admitted с темжеUUID иактуальными ревизиями.
- Проверка15:35UTC: production a536… корректно стал stale/pending_review_queue_changed, потому что источник единственной clarification-сверки14:50:07Z вышел из45-минутного окна. Допустимых сверок стало28/140мин; Asana unverified по source_synced_at, несмотря на более поздний observed_at. Все41 действия обсуждений и ревизия0e3e… сохранены. Причина записана в resume-stale-cause.json.
- Новый штатный production `3cebf559-0f12-4a4e-99b3-00a8ac7ce4e4` завершёнsuccess за86,208с, без proposal. Три копииплана SHA45d6c046… совпали; независимое ревью подтвердило API200 held/plan_not_admitted с актуальнымUUID. Asana/GitHub/обсуждения fresh; все38открытых действий, включая24безAsana, и29сверок/145мин сохранены. E4ranked5goals,256held/13waiting,0rejected,0слотовработы/сверки. NextTP:2уточнениясрока/1удержаниеёмкости; prepare.changed=false. Свежесть источников не означает завершения claims-очереди.
- Текущая общая очередь ранжирует сверки и действия через E4. Обычные сверки не вытесняют срочный1-Must; применяется общий недельный остаток AoR. Непринятое человеческое решение не считается выполненной зависимостью. Незнакомое время участия ведёт к явному revision-bound уточнению.
- Собственные сроки Zoom/MM доходят до E4/E5 с доказательством. Точные подтверждённые timestamps ограничивают окно; относительные, условные, отрицаемые и конфликтующие сроки требуют сверки. На настоящем входе указанного запуска было11 таких удержаний. Срок закрытой родительской задачи не переносится на самостоятельное обещание.
- Обработка обсуждений завершила текущий метод; первый автоматический observer **01a1d5b4-9289-5b45-54a2-d44c3741491a** подтвердил26/26 обнаруженных работ, held_changed/input/method0. Исправлена нестабильность отрицательных проверок артефакта из-за лимита и порядка: неизвестный/неполный источник не становится подтверждённым. Пять исторических пустых MM-тредов вышли из14-дневного окна; они не содержали опубликованных действий и остаются отмеченными missing. Это не доказательство полного доступа ко всем историческим тредам.
- Выделенный worker personalos_planning подтверждён реальными job receipts. Долгая модель работает в обычном python3 pool. Двухпроходный маршрут подтверждён настоящим Windmill preview **01a1d5aa-59c2-23ff-7697-3d29151c5922** с изолированным синтетическим host; рабочий production не создал новый артефакт и вернул prepare.changed=false. Синтетический стенд не выдаётся за рабочую проверку нового черновика.
- Финальная UI-правка принята:8 браузерных сценариев и независимое ревью. Полный Node-набор14ноября после A12/A17:310/310 PASS, ноль пропусков; PostgreSQL-интеграции включены. Python после исправления неизвестной ёмкости:212/212 PASS. Устаревшие рекомендации скрываются сразу; завершение пересчёта проверяется по актуальности и UUID, чужой/старый ответ не заменяет план, незаполненные другие формы сохраняются. Логи сохранены в `.local/acceptance-pilot/checks-2026-11-14/`.
- Финальная UI-правка принята:8 браузерных сценариев и независимое ревью. Полный Node-набор14ноября после A12/A17:324/324 PASS, ноль пропусков; PostgreSQL-интеграции включены. Python после исправления неизвестной ёмкости:212/212 PASS. Устаревшие рекомендации скрываются сразу; завершение пересчёта проверяется по актуальности и UUID, чужой/старый ответ не заменяет план, незаполненные другие формы сохраняются. Логи сохранены в `.local/acceptance-pilot/checks-2026-11-14/`.
- Zoom: Owned84/5страниц, Shared0, Starred0;29 импортов проверены SHA256, gaps=[]. MyTasks/WeeklyReview/WorkHistory проверялись headless Chrome. Реальная macOS-доставка прежнего тестового уведомления подтверждена receipt; новая production-ветка вне рабочего окна не должна отправлять уведомление. Просмотр баннера пользователем не утверждается.
- Outlook free/busy не принят на живом ответе: текущая проверка CGSSessionScreenIsLocked=true. Apple Calendar/EventKit не используется. Пилот — **0/5 настоящих принятых дней**; субъективные решения пользователя не подменяются автоматическими.