Skip to content

Flow journal: MP-88, MP-89, MP-93, MP-90, MP-92, MP-91, MP-94 - #83

Merged
prineycom merged 48 commits into
mainfrom
flow/journal
Nov 7, 2026
Merged

prineycom merged 48 commits into
mainfrom
flow/journal

Conversation

@prineycom

@prineycom prineycom commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Flow journal: the implementation subtasks of the epic MP-84 (journal research, https://draft.yokeloop.com/artifacts/mp-84-mypi-wvsfnkmf), merged one at a time into flow/journal from origin/main e1596c2. Assembled branch: build, cargo (30), fast (187) and boundary (65) tests green.

Key Title Plan Review Checks Live acceptance
MP-88 Движок: структурные записи журнала о фактах, которые он знает (5 event types, schema 15, writes in task-worktree/launcher/events/project-checkout/task-work) https://draft.yokeloop.com/artifacts/mp-88-u3cen2m8 approved (r2; 2 advice applied: code-point truncation, CHANGELOG note on project remove) build + verify green not required (boundary-tested)
MP-89 Движок: сохранять причину повторного статуса (<status> (unchanged). <reason> note) https://draft.yokeloop.com/artifacts/mp-89-2bcwsy6j approved (r1) green not required
MP-93 Текст вехи = текст записи журнала https://draft.yokeloop.com/artifacts/mp-93-lycwoui1 approved (r1) green not required
MP-90 Скиллы и роли: правило записи в журнал (docs/PIPELINE.md «Journal», skills, prompts, AGENTS pointer) https://draft.yokeloop.com/artifacts/mp-90-pme00xao approved (r1) green (warmup goldens) not required
MP-92 Web и TUI: фильтр и цвета новых типов записей журнала https://draft.yokeloop.com/artifacts/mp-92-web-tui-mnxhshuf approved (r1) green (cargo 30, web lib test) web select on the stand is the manual check
MP-91 Читатели: журнал в warmup и стартовом сообщении указателем (## Журнал sections, store stats/last) https://draft.yokeloop.com/artifacts/mp-91-warmup-nslnfvbv approved (r3; 2 wording advice applied) green; warmup timing +2 ms on a DB copy not required
MP-94 /board читает причину статуса из журнала (mp-task board reason/reasonAt) https://draft.yokeloop.com/artifacts/mp-94-board-lnuul711 approved (r1; 1 advice open: temp file on failure paths) green; manual board run 94 rows / 5 s not required

Engineer's answers taken on the way:

  • MP-88: clone_prepared written in project-checkout.ts inside the registration transaction for cloned/initialized/adopted; per-type scope table (session_opened/message_sent in task, project, org; clone_prepared project only; task facts task only).
  • MP-89: the plan-rework reason moves into the status call; the note prefix is English (unchanged).
  • MP-90: /do stage-1 in_progress reason is the plan link in both modes (worktree path dropped).
  • MP-92: TUI colours per group (one Magenta tone for session facts); web list + colour map in web/src/shared/lib/journal.ts with a deepEqual test against EVENT_TYPES; web colours per type (indigo/violet/grape, teal/yellow).
  • MP-91: the task start message keeps its 5 entries; the project pointer says «Записей журнала проекта: N, последняя <дата>» (the engineer chose this over «за сегодня: N»); message_sent rows stay visible in the task warmup as journal facts (README/AGENTS wording adjusted).
  • MP-94: last reason = newest of status_changed or the (unchanged) note, one project-wide journal read; shown only for blocked.
  • From MP-91 on, the engineer delegated remaining forks to the lead («реши сам, без переусложнений»); the lead's own decisions: MP-91 and MP-94 answers above were still asked; after that no fork remained.

Lead's edits of plans: none (all plans as written by plan-writer; line references re-resolved by re-scouts after MP-88 and MP-89).

Deviations on record: MP-88 re-exports EVENT_TYPES through src/app/commands.ts (dependency-cruiser forbids cli/http/mcp → module public.ts); MP-91 changed one boundary assertion in test/boundary/cli.test.ts (a parent message now appears in the task warmup as a message_sent fact line; inbox assertions unchanged).

Operator steps after merge and engine update: mypi db init (schema 15); reload Claude Code / Pi sessions.

Live acceptance (2026-11-07)

Disposable stand on f569f21, rechecked on 88e8479. Claude Code 2.1.283 (claude-haiku-4-5-20251001), Pi 1.0.4 (openai-codex/gpt-6-sol), herdr 0.9.5, node v24.21.0, schema 15; 14 model turns.

  • PASS: engine facts through the CLI (worktree_created, message_sent, title_changed, (unchanged) notes, milestone text = journal text), HTTP ?type= filter, MCP journal/task_update, live /open (session_opened started/focused/resumed, Claude and Pi), clone_prepared on /open of a project without a clone, /board blocked reason from the journal, web filter and badge colours, TUI filter cycle and colours, mp-task board on the installed engine (read-only), warmup timing (107 → 71 ms), skill and doc texts.
  • FAIL, fixed: with real data (a copy of the personal DB and the real home) warmup --max-chars 9500 gave MP 9888, global 9763, MP-91 10002, MP-84 10363 characters. The fix is on the MP-91 branch and merged in 88e8479: the chats' note rule appears once (project and organization roles), and as its last budget step a task warmup clips the end of its card, with a context_read pointer and an open fence closed. Review round 2 approved. After the fix: MP 9467, global 9459, tasks 9495–9496.
  • Not run: live /plan rework and /do (they publish to derive); covered by the engine checks and skill texts.

🤖 Generated with Claude Code

prineycom and others added 18 commits November 7, 2026 13:03
The project-note rule appeared in howto twice and again in the project role,
and the task role repeated howto's line about what the engine journals. The
copies cost about 210 characters in every warmup and pushed real project and
global warmups past the 9500-character hook budget.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A task warmup kept its card whole and, once journal entries and memory facts
were gone, printed above the limit; a long card pushed the Claude hook past
10,000 characters. The card's end is now cut last, with a line naming the
context_read call that reads it in full.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The organization chat does a project chat's work for its projects but never
reads the project role, so it had no rule for the project-scope note. The
rule now sits in both roles, and PIPELINE.md names these two chats; howto
stays without it, since every role, the main chat included, pays for it in
the warmup budget.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ARCHITECTURE.md still listed the task card as never cut. A clip inside a
fenced block left it open, so the clip line and the sections after it read
as code; the clip now closes it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Counting fence lines missed ~~~ blocks, longer fences and indented code; the
clip now closes the block with its own opener, found by the same rule demote
uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@prineycom
prineycom merged commit 33c3844 into main Nov 7, 2026
1 check passed
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