[2026-11-13] eagle: personal/projects/personal-os/personal-os-fixes-2026-11-13.md personal/projects/personal-os/personal-os-repeat-audit-2026-11-13.md
This commit is contained in:
1 parent
effdf8803b
commit
a76cbae033
2 files changed
+47
-6
No files matched your search
@@ -7,10 +7,10 @@
|
||||
- A01–A03, A12, A16: входящие адресные обязательства без предварительного ответа; атомарные действия разных типов; единый жизненный цикл accept/reject/complete/cancel/wait/defer/reopen/optional с revision и историей. Ручные решения не переписываются запоздавшей моделью. Проверка завершения требует точного артефакта и автора; неоднозначное закрытие остаётся на проверке. Связь с Asana необязательна. Для Next TP требуется подтверждённое авторство, назначенный исполнитель не считается автором комментария.
|
||||
- A02, A04–A07: единый mapper действий для локального и опубликованного E5; ранжирование E4 до размещения; энергия и облегчённый день сокращают подтверждённые 90 минут. Непрерывные интервалы, точные сроки, конфликт обещаний, роли, рекурсивная связь с целями/AoR/Career. Подключены явные данные о начатых действиях и остатках недельного времени; отсутствие данных не подменяется нулём.
|
||||
- A05: добавлен read-only адаптер free/busy штатного Microsoft Outlook, без Calendar/EventKit и изменения встреч. Проверяются учётная запись, период и покрытие. При блокировке macOS AppleEvents не запускаются; неизвестная схема ответа не выдаётся за свободное время. Реальный ответ Outlook и полнота повторяющихся встреч ещё не проверены.
|
||||
- A08, A14: очередь локальных черновиков Next TP и recap, ограничение бюджета ревью, журнал запусков, переработка после отклонения с учётом причины. Уведомления о готовом результате и Weekly Review используют допустимое окно, дедупликацию и локальные ссылки. Установка новой версии приложения уведомлений выполнена; визуальная доставка ещё не проверена.
|
||||
- A08, A14: очередь локальных черновиков Next TP и recap, ограничение бюджета ревью, журнал запусков, переработка после отклонения с учётом причины. Уведомления о готовом результате и Weekly Review используют допустимое окно, дедупликацию и локальные ссылки. Установка новой версии приложения уведомлений выполнена; фактическая доставка macOS подтверждена receipt, просмотр пользователем не утверждается.
|
||||
- A09: API скрывает просроченный план, план после failed refresh и план, не использовавший последнюю коррекцию пользователя. Изменение режима/ёмкости/состояния действия запускает ограниченный пересчёт; окно ревью само по себе не меняет расчёт ёмкости.
|
||||
- A10, A15: зачёт пилота требует покрытия источников, нагрузки и явного отклика о самочувствии, посильности и фокусе; пропущенное финальное наблюдение регистрируется для восстановления и не засчитывается. Пять реальных дней и субъективные решения пользователя не заменяются синтетическими тестами.
|
||||
- A11: ранее известные видимые Zoom notes перечитываются, изменения импортируются. Покрытие Owned/Shared и всех страниц остаётся непроверенным и явно partial.
|
||||
- A11: ранее известные Zoom notes перечитываются, изменения импортируются. Реальный полный обход Owned/Shared/Starred и контрольные суммы импортированных транскриптов подтверждены; подробности ниже.
|
||||
- A13: история ActivityWatch и Git сохраняет привязку из того же исторического снимка, не переписывается нынешней привязкой ветки.
|
||||
- A17: canonical project-state заменяет runtime-конфигурацию фиксированных проектов; кандидаты не становятся принятыми утверждениями. Крупные пакеты разделяются по целым группам доказательств, ответы сохраняются до валидации, применение всех частей атомарно. Повтор после сбоя инфраструктуры ограничен; человеческие решения, новые версии источников и lease защищены. Неизвестные или неполные источники остаются видимыми.
|
||||
- GTD Reflect: Weekly Review показывает Inbox, Next Actions, Waiting For, Someday, проекты без подтверждённого следующего действия, действующие цели и ёмкость. Решение версионируется; при неполных источниках обзор остаётся незавершённым.
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
## Внешние условия и автоматическое продолжение
|
||||
|
||||
Mac фактически заблокирован (`CGSSessionScreenIsLocked=Yes`); запрос на разблокировку уже отправлен. Это блокирует живую приёмку Outlook, полного Zoom UI и визуальной доставки уведомления, но не серверные проверки.
|
||||
Mac фактически заблокирован (`CGSSessionScreenIsLocked=Yes`); запрос на разблокировку уже отправлен. Это блокирует живую приёмку Outlook. Полный обход Zoom, headless UI и доставка уведомления macOS уже проверены без разблокировки.
|
||||
|
||||
В приложении создано активное слежение **personal-os**, период 15 минут, продолжение в текущем чате. Старое `windmill-e5` отсутствовало в приложении; попытка обновления вернула `Automation does not exist`. Новая автоматизация проверяет текущие job ID, исправляет дефекты, не создаёт дубликатов, обновляет документацию/Obsidian и отключается только после подтверждённой приёмки. Проверка пяти дней идёт по реальным данным; автоматизация не принимает субъективные решения за пользователя.
|
||||
|
||||
@@ -34,7 +34,7 @@ Mac фактически заблокирован (`CGSSessionScreenIsLocked=Yes
|
||||
1. Завершить исправления повторного независимого аудита и полный тестовый прогон.
|
||||
2. Опубликовать проверенные E4/E5 с актуальной схемой; резервные копии текущих версий сохранены в `/private/tmp/personalos-e4-before-audit-fixes.json` и `/private/tmp/personalos-e5-before-audit-fixes.json`.
|
||||
3. Проверить живой вход `/api/planning-sources`, опубликованный E5 без подставленного proposal, фактические UI, notification receipts и восстановление claims.
|
||||
4. После разблокировки проверить Outlook, полноту Zoom и реальные клики/уведомления; устранять найденное до прохождения.
|
||||
4. После разблокировки проверить фактический ответ Outlook и повторяющиеся встречи; устранять найденное до прохождения.
|
||||
5. Пройти пять настоящих рабочих дней и принять миссионные критерии. Ни один из этих пунктов не считается выполненным только по наличию кода.
|
||||
|
||||
## Рабочая проверка 13 ноября, после 19:00 Бишкек
|
||||
@@ -48,3 +48,31 @@ Mac фактически заблокирован (`CGSSessionScreenIsLocked=Yes
|
||||
My Tasks, Weekly Review и Work History реально загрузились в отдельном headless Chrome без JS ошибок. Проверка снимков показала необходимость компактного Weekly Review: списки свёрнуты, добавлены полный список проектов, текущие цели и ёмкость. Это не заменяет реальный click-through пользовательских решений/уведомлений.
|
||||
|
||||
Финальный Node прогон с DB: 221 passed/9 skipped; оставшиеся девять выполнены отдельно (13 passed включая четыре повторяющихся unit-теста). Python69 passed. Дополнительно появился тест generic recap attachment и история повторной подготовки. Сервис анализа перезапущен после read-only подтверждения отсутствия выполняющихся jobs/посторонних DB-сессий; идёт rescan исправленным методом.
|
||||
|
||||
## Подтверждено на рабочем контуре около 19:20 Бишкек
|
||||
|
||||
- Первый самостоятельный E5 `01a1d4fd-69e7-e2f1-6101-64557020c44d` завершился успешно за 1 247 212 мс, priority=ranked. Все17 discussion IDs сохранены: Next TP в overflow/capacity, шесть действий без Asana в overflow/held, ни одно не потеряно. Новая работа после19:00 не назначена. Однако все6 модельных work-пакетов получили ошибку `Source read is outside this work or field is not readable`; это отдельный незакрытый дефект, а не успешный model-quality результат. Исправление и повторный прогон продолжаются.
|
||||
- Полный набор: **244 Node +72 Python — PASS, ноль пропущенных тестов**. DB-проверки использовали отдельную БД и session-local TEMP таблицы. Последующие изменения проходят целевые регрессии и ещё один финальный запуск.
|
||||
- Zoom A11 принят на реальном импорте: Owned84/5страниц, Shared0 и Starred0 с явными terminalcursor. Все29 транскриптов с30сентября импортированы и SHA256-проверены; gaps=[]/withoutTranscript=0. Даты20 изmeeting.startTime и9 иззаголовков; Created/Modified не используются как даты встречи. Запущен refresh локальной очереди обсуждений.
|
||||
- Claims v4: все597 работ поставлены в очередь без blocked, включая6 ранее слишком крупных пакетов. Каждый источник/прежнее утверждение сохранён ровно один раз; результаты до завершения не выдаются за принятые факты. Реальное предложение process вернуло busy — другой worker уже владел advisory lock; дубликат не создан.
|
||||
- Windmill: две долгие работы (сбор и inference) блокировали единственного Python-исполнителя. Проверен dry-run, добавлены worker-2/worker-3; worker-1 сохранил uptime8дней, работающие задания не останавливались. В docker-compose.yml закреплены3replicas.
|
||||
- Бюджет ревью: исправлена дополнительная перегрузка готовыми результатами. Резерв сохраняется, pending review minutes учитываются до новой работы; partialOutlook больше не превращается в якобы проверенные свободные интервалы. Проверяется гонка появления нового артефакта во время расчёта. Эти изменения ещё требуют следующей публикации E5.
|
||||
|
||||
## Дополнительные рабочие проверки и разрыв Clarify
|
||||
|
||||
- Реальная доставка macOS: разрешение notification authorization=2, alert_setting=2; `pilot-review-test` зарегистрирован в delivered notifications в13:23:56Z. Ссылки на текущий артефакт и уточнение проверены в изолированном Chrome, включая сохранение конкретного next action с исходной revision. Рабочие пользовательские решения не подменялись тестовыми.
|
||||
- Источники теперь стареют по времени фактического чтения: MM/capture/work45мин, Zoom90мин. Завершение длительной обработки не освежает источники. Новый реальный builder: capture13:37:23Z, MM13:25:32Z, Zoom13:18:17Z. Производственная очередь ещё обновляется; отсутствующие метки не мигрируются выдуманным временем.
|
||||
- Zoom LaunchAgent переведён на интервал30мин после проверки отсутствия активного запуска и захвата его блокировки. Профиль, обработка логина и пути сохранены; работающий импорт не останавливался.
|
||||
- Claims v4: первый рабочий job нового обработчика для1201661861647413 завершён succeeded, attempts1. Полная очередь597 ещё не является597 принятыми фактами.
|
||||
- Повторная независимая проверка обнаружила незамкнутый Clarify→Engage:165 назначений Asana удерживались, опубликованный E5 повторял первые6 работ, результаты не возвращались в локальный план. Исправляется сохраняемой очередью с source revision, справедливым продвижением, bounded attempts и ручным разрешением; безопасные проверенные предложения возвращаются в канонический вход передE4. Новая запись задания в очереди не равна успешному анализу.
|
||||
- Реальная проверка модели выявила недопустимое чтение известных пустых полей и ложные претензии verifier к типу задачи/дню недели. Пустые поля теперь явно доступны, точная task identity и вычисленный календарь передаются модели. После исправления verifier обоснованно отклонил действие, назначенное наFriday вопреки явному плануTuesday; запрет сохранился. Добавлена обработка такого действия как отложенного, без выдуманной подготовки. Новая модельная проверка продолжается.
|
||||
|
||||
## Проверки после подключения сохраняемой очереди уточнений
|
||||
|
||||
- Полный повтор: **266 Node +88 Python — PASS, ноль пропусков**. Логи `/private/tmp/personalos-node-final-audit.log` и `/private/tmp/personalos-python-final-audit.log`. После этого обнаружен и исправляется дополнительный воспроизведённый вариант A12; требуется повтор его регрессий.
|
||||
- Clarify встроен в штатный collector→canonical_actions→E4→E5. Актуальный рабочий вход:217 записей дерева,166 назначений,131 в очереди и35 Someday явно удержаны. Все наблюдавшиеся комментарии доступны: максимум72, общее ограничение80+1 с явным запретом автоматического допуска при переполнении. У текущего Top Priority44 комментария, они больше не обрезаются до6.
|
||||
- Настоящий production worker обработал текущий1‑Must1220422645861898. Генерация:51,2с чтение источников и270,5с ответ; verifier57,5с, accepted=true/unsupported=[]. Ответ — ожидание, без подтверждённого конкретного действия; зарегистрирована ручная сверка5мин. Это рабочая проверка безопасного удержания и маршрутизации, не доказательство автоматического выполнения задачи.
|
||||
- `com.personalos.clarification-worker` установлен и подтверждён launchctl: StartInterval900сек, будни08:00–19:00, работающие задания защищены lease. Модель не запускается в HTTP-пересчёте. Новое подтверждённое действие вызывает отдельный пересчёт с общей блокировкой.
|
||||
- Исправлены исходная давность Asana, гонка API→SQL, проверки всей цепочки родителей, устаревание модельного решения на новом дне, сохранение ручных решений и возврат отложенного вопроса к сверке. Обработка сначала выбирает1‑Must/Top Priority и сроки среди ещё не рассмотренных работ, затем продвигается дальше; один сбой не задерживает остальные.
|
||||
- Новые локальные ссылки уведомлений открывают именно результат, уточнение или обязательство с наступившей сверкой. Нагрузка таких сверок учитывается до новой работы. Схема payload проверена настоящим Swift decoder без отправки лишнего уведомления; сериализация исключает одновременную повторную отправку.
|
||||
- Независимый аудит воспроизвёл ещё один A12 на копии рабочего snapshot:4 карточкиupdate_design сID4bb64e2ddf1bd1e1dfc9a715 иразнымиrevision, ручное решение возвращает404ambiguous. Устраняется в каноническом слое без изменения рабочих источников и без подмены решений пользователя.
|
||||
@@ -7,7 +7,7 @@
|
||||
## A01–A07. От сигнала к плану
|
||||
|
||||
- **A01 — исправлено, тестовые источники.** Адресный запрос попадает в очередь до первого ответа. Адресат и действие определяются по фрагменту сообщения. Регрессии покрывают FYI, прямой вопрос, несколько адресатов и несколько действий одного типа. Полнота для произвольных формулировок, языков и каналов не измерена. [Сборщик](../scripts/build-discussion-packets.js#L48) · [Регрессии](../test/discussion-lifecycle.test.js)
|
||||
- **A02 — исправлено в локальном контуре, проверено на рабочих чтениях.** Обсуждения, запросы Asana и GitHub доходят до E4 или получают причину удержания. В реальных прочитанных данных найдено финальное ревью PR #8095. Локальный E5 принимает каноническую очередь. Автоматическую передачу очереди в опубликованный E5 нужно подтвердить штатным прогоном. [Сборка входа](../scripts/acceptance-plan-input.js#L48) · [Вход E5](../windmill/workspace/f/attend/attention_loop_e5__flow/read_context.py#L63)
|
||||
- **A02 — исправлено в локальном контуре, проверено на рабочих чтениях.** Обсуждения, запросы Asana и GitHub доходят до E4 или получают причину удержания. В реальных прочитанных данных найдено финальное ревью PR #8095. Очередь уточнения передаёт текущее проверенное действие в канонический вход E4, а E5 повторно проверяет совпадение источника. Опубликованный E5 до этой правки не использовал результаты модели в локальном плане. Повторная публикация и положительный сквозной прогон штатного фонового обработчика требуют подтверждения. [Сборка входа](../scripts/acceptance-plan-input.js#L48) · [Вход E5](../windmill/workspace/f/attend/attention_loop_e5__flow/read_context.py#L63)
|
||||
- **A03 — исправлено для проверенных путей и ручной сверки.** Разные обязательства получают отдельные ID. Рекап требует связи публикации с источником обещания. Один артефакт с несколькими возможными обязательствами удерживается для сверки. Для точных PR и Asana-документов проверяются автор, артефакт и время. Решения пользователя имеют ревизию и историю, новые пробелы и конфликтующие результаты открывают сверку. Общие действия и неподтверждённые результаты закрываются после ручной проверки. Доказательства релиза и эффекта остаются отдельными. [Экстрактор](../windmill/workspace/f/analyse/discussion_actions.py#L225) · [Артефакты](../scripts/discussion-artifacts.js#L17) · [Решения](../scripts/discussion-state.py#L51)
|
||||
- **A04 — исправлено, рабочие чтения и локальный пересчёт.** При подтверждённых 90 минутах облегчённый день дал 45 минут. «Перенести» останавливает подбор, «слишком много» уменьшает объём, «не тот фокус» допускает явно выбранное действие. Граница буднего дня сохранена. [Ограничения](../windmill/workspace/f/attend/attention_loop_e5__flow/day_constraints.py#L114) · [Тесты](../test/test_daily_planner.py)
|
||||
- **A05 — исправлено для подтверждённых интервалов, календарь покрыт частично.** 25-минутное неделимое действие не помещается в два раздельных окна по 20 минут. В рабочем чтении Asana подтверждён интервал отдельной встречи. Полный охват Outlook и всех рабочих встреч не доказан. [Интервалы](../scripts/acceptance-plan.py#L16) · [Размещение](../windmill/workspace/f/attend/attention_loop_e5__flow/day_constraints.py#L341)
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
## A08–A10. Доставка и критерии приёмки
|
||||
|
||||
- **A08 — частично закрыто.** Штатный скрипт запускает подготовку Next TP. Готовый артефакт попадает в локальную очередь и может вызвать уведомление в разрешённое окно. Повторы, тихие интервалы и привязка к актуальному источнику проверены изолированно. Исполнение всех типов подготовок E5 и фактическая доставка баннера в обычный день не подтверждены. [Штатный вызов](../scripts/run-focus-shadow.sh#L69) · [Уведомления](../scripts/observe-acceptance-pilot.py#L207)
|
||||
- **A08 — частично закрыто.** Штатный скрипт запускает подготовку Next TP. Готовый артефакт попадает в локальную очередь и может вызвать уведомление в разрешённое окно. Повторы, тихие интервалы и привязка к актуальному источнику проверены изолированно. Уточнения, требующие решения пользователя, попадают в общий бюджет ревью и групповые уведомления. Произвольные подготовки модели не запускаются. Фактическая доставка баннера в обычный день ещё не подтверждена. [Штатный вызов](../scripts/run-focus-shadow.sh#L69) · [Уведомления](../scripts/observe-acceptance-pilot.py#L207)
|
||||
- **A09 — исправлено, локальные регрессии.** Ошибка пересчёта, возраст плана и изменение пользовательского состояния блокируют выдачу старого плана как актуального. Отказ рабочего сервиса не воспроизводился. [Допуск плана](../scripts/plan-state.js#L17) · [Тесты](../test/plan-state.test.js)
|
||||
- **A10 — критерии исправлены, рабочая приёмка открыта.** Для зачёта нужны покрытие источников, итоговое наблюдение, измерения пропусков, ложных закрытий, нагрузки ревью и переключений, а также подтверждение самочувствия, посильности и фокуса. Синтетический неполный или перегруженный день не засчитывается. Пять реальных зачтённых дней и улучшение относительно исходного уровня не подтверждены. [Критерии](../scripts/observe-acceptance-pilot.py#L103) · [Тесты](../test/test_operations_review.py)
|
||||
|
||||
@@ -42,3 +42,16 @@
|
||||
- 35 тестов Node для обсуждений, артефактов, контекста и Zoom. 12 тестов Python для извлечения, перепривязки, параллельного решения и устаревшего снимка. Браузер и источники подменялись, записи шли во временные каталоги.
|
||||
- 34 теста E5, 5 тестов E4, 7 тестов операционной сверки и 9 тестов состояния плана и истории. Отдельная сборка читала рабочие источники и писала во временный каталог. Обычный бюджет составил 90 минут, облегчённый — 45. PR #8095 присутствовал во входе.
|
||||
- 24 теста claims на выделенной PostgreSQL с временными таблицами. Проверены очередь, версии, защита решений, сохранение ответов, восстановление по частям, конкурентное обновление, время сверки и проекция неполноты. Тесты не измеряют качество выводов модели на полной рабочей очереди.
|
||||
|
||||
|
||||
## Уточнение назначений Asana
|
||||
|
||||
До исправления локальный план удерживал 165 уникальных назначений до уточнения. Опубликованный E5 на сохранённом рабочем входе дважды выбрал те же шесть из 140 подходящих задач, без сохранения прогресса между запусками. Ни одна из шести не прошла проверку в этом прогоне.
|
||||
|
||||
Фоновый обработчик берёт одно назначение за запуск. Первые попытки идут по актуальному 1‑Must, Top Priority и срокам, а повторные уступают ещё не обработанным задачам. Явный 1‑Must сохраняет приоритет после получения конкретного действия. Someday/Maybe остаётся удержанным. Результат привязан к содержимому Asana и версии комментариев. До 80 комментариев доступны с постраничным чтением в пределах запроса модели. Превышение лимита или отсутствие подтверждённого родителя удерживает действие. Успешно проверенные предложения ограничены операциями исследования и уточнения объёма. Недостаточное подтверждение попадает на ручную сверку. Действия проходят E4 и ограничения E5. Обработчик пишет только локальное состояние. [Очередь](../scripts/clarification-queue.js) · [Обработчик](../scripts/clarification-worker.js) · [Проверка модели](../scripts/clarification-propose.py)
|
||||
|
||||
Изолированное чтение рабочих источников дало 217 записей графа задач и 165 назначений. 130 попали в очередь, 35 удержаны как Someday/Maybe. В одном реальном прогоне qwen27b для задачи 1204180319229711 вернул пустой список действий, проверяющий подтвердил пустой результат. Временная очередь сохранила причину удержания. Подтверждённый моделью конкретный шаг, его допуск через E4/E5 и продвижение после сбоя проверены на тестовых данных. Положительный рабочий прогон, запуск LaunchAgent по расписанию и полная обработка очереди остаются отдельными проверками.
|
||||
|
||||
Повторное чтение после включения 1‑Must дало 131 назначение в очереди и 35 Someday/Maybe. Текущий Top Priority получил все 44 наблюдённых комментария. Задач с переполнением лимита 80 в этом срезе не было.
|
||||
|
||||
Первый запуск на рабочей локальной очереди выбрал 1‑Must 1220422645861898. Модель запросила чтение точного источника, затем предложила ожидание. Проверяющий принял результат без неподтверждённых утверждений. Обработчик сохранил задачу как «Требует решения», общий адаптер отразил пять минут ревью. Действие в план не допущено. Запуск начался на версии источника до расширения истории комментариев, поэтому следующее чтение может обоснованно заменить эту ревизию.
|
||||
Reference in new issue
Block a user