Skip to content

feat(owner): M7 — нагадування (дедлайн-кошики, snooze, ОС-нотифікації) - #8

Merged
vitaliytv merged 2 commits into
mainfrom
claude/m7-reminders
Jul 17, 2026
Merged

feat(owner): M7 — нагадування (дедлайн-кошики, snooze, ОС-нотифікації)#8
vitaliytv merged 2 commits into
mainfrom
claude/m7-reminders

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Що

M7 зі спеки docs/specs/260714-cognitive-delegation.md — нагадування як деривація з наявного deadline, без нової сутності:

  • owner/src/reminders.js — три детерміновані правила: deadline_due (нерозвʼязаний вузол мого скоупу з дедлайном у горизонті 24 год або простроченим), personal_today (мій pending із дедлайном сьогодні; прострочений pending — теж), escalation_stale (відкрита ескалація до мене без реакції >3 діб). Правила перетинаються на pending — вузол дає щонайбільше одне нагадування.
  • Бриф: секція «Нагадування» зі snooze-кнопкою + особисті задачі в кошиках дедлайнів (прострочено / сьогодні / цього тижня / пізніше / без дедлайну), прострочене — негативним кольором.
  • Рішення: тонка стрічка «сьогодні: N задач, з них M прострочено» (клік → Бриф). Правило вибору режиму не змінюється — стрічка інформує, не перериває.
  • Snooze — персональний ритм, не в git: зберігається per-identity у локальному конфігу owner (fail-closed без ідентичності, housekeeping прострочених записів); tools snoozes (read) / snooze_reminder (write). Deadline у git не чіпається — глухне лише в мене.
  • ОС-нотифікації (tauri-plugin-notification): ранковий дайджест раз на календарний день, нове рішення в моїй черзі, дедлайн перетнув межу. Перший rescan — baseline без спаму; >3 нових подій — одна зведена. Дельта-зміни нотифікацій не породжують; жодних LLM-тригерів.

Критерій M7 зі спеки

Прострочений deadline мого скоупу підіймається у бриф і глохне після snooze лише в мене — покрито тестами (reminders.test.js, Rust snooze_lifecycle_per_identity_with_pruning).

Верифікація

  • vitest: 97/97 (нові reminders.test.js, notifications.test.js)
  • cargo test: 16/16, clippy чистий
  • eslint/oxlint/knip/text-lint — чисто; доки регенеровано; change-файл owner (bump minor)

🤖 Generated with Claude Code

vitaliytv and others added 2 commits July 17, 2026 12:42
Три детерміновані правила з наявного deadline — без нової сутності:
deadline_due (нерозвʼязаний вузол мого скоупу, горизонт 24 год або
прострочено), personal_today (мій pending з дедлайном сьогодні),
escalation_stale (відкрита ескалація до мене >3 діб). Кошики дедлайнів
у Брифі (прострочено/сьогодні/цього тижня/пізніше/без дедлайну),
тонка стрічка нагадувань у Рішеннях (клік → Бриф, режим не змінює).
Snooze — per-identity локально у конфігу (не в git): tools
snoozes/snooze_reminder, fail-closed без ідентичності, housekeeping
прострочених. ОС-нотифікації (tauri-plugin-notification): ранковий
дайджест раз на день, нове рішення в черзі, дедлайн у горизонті;
перший rescan не спамить (baseline), лавина згортається в зведену.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- BriefPane: пʼять секцій з ідентичним q-list-каркасом узагальнено в
  одну data-driven розмітку (sections computed) — клон усунуто по суті,
  кошики дедлайнів стали секціями «Твої задачі — <кошик> (N)»
- owner/src/docs/notifications.md: переписано вручну — прибрано
  LLM-філер, вирівняно стиль списків (MD004), виправлено «переглянутості»

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vitaliytv
vitaliytv merged commit 9688af7 into main Jul 17, 2026
6 checks passed
@vitaliytv
vitaliytv deleted the claude/m7-reminders branch July 27, 2026 06:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant