Skip to content

Flow sessions-transcript: MP-95, MP-96, MP-97, MP-98, MP-99, MP-100, MP-101, MP-102 - #85

Merged
prineycom merged 68 commits into
mainfrom
flow/sessions-transcript
Nov 7, 2026
Merged

prineycom merged 68 commits into
mainfrom
flow/sessions-transcript

Conversation

@prineycom

Copy link
Copy Markdown
Collaborator

Conversation archive for mypi — epic MP-85 (research: https://draft.yokeloop.com/artifacts/mp-85-6wvuvrfx). Eight subtasks, one flow branch flow/sessions-transcript, each merged --no-ff after its own review and checks, one task at a time.

Tasks

Key Title Plan Review Live acceptance
MP-95 Transcript readers for Claude and Pi hul72ijv approved r1 not required
MP-96 Archive module and archive.sqlite3 (FTS5) 9vohrfjp approved r1 not required
MP-97 mypi archive import / status 4jhrai45 approved r1 not required
MP-98 Search: CLI, MCP archive_search / archive_show, howto line uqrcdldi r1 changes_required (README direct tools) → r2, r3 approved stand 4/4 PASS after a scope-description fix
MP-99 Live capture for Claude (Stop + SessionEnd hooks) xy9utl0z approved r1 stand S0–S5 PASS
MP-100 Live capture for Pi (agent_settled) and session_info r2jz7rrx approved r1 stand S0–S5 PASS
MP-101 Retention policy, mypi archive forget, documentation 7a0tw8v5 approved r1 not required
MP-102 Agent scenarios: «journal first» clause, retro skill vg7uum4z approved r1 not required

Checks

Every task in its worktree and the assembled flow head c4ea494: mise exec -- pnpm build exit 0, mise exec -- pnpm verify exit 0 (flow head: fast 223/223, boundary 67/67, wall 49.2 s). Local runs use mise exec -- bash -c 'PATH=$HOME/.cargo/bin:$PATH pnpm verify' because plain mise exec puts /usr/bin/rustc 1.98.1 ahead of rustup's 1.99.1 on this machine; the check itself is unchanged.

Live acceptance

A disposable stand (Claude Code 2.1.283 on claude-haiku-4-5-20251001, Pi 1.0.4 on openai-codex/gpt-6-sol, herdr 0.9.5, node v24.21.0), torn down afterwards; evidence in the task folders (stand/checklist.md).

  • MP-98: a model in a global Claude chat passed scope: "global" and missed an unbound imported session → the scope description was spelled out (behaviour unchanged); then Claude and Pi found and showed the record without permission prompts (Pi: archive_search direct, archive_show via codemode).
  • MP-99: capture on Stop and SessionEnd, no duplicates, broken/missing archive never blocks (exit 1, never 2). Findings: an answer sometimes lands after its own Stop and is captured by the next Stop/SessionEnd; Claude may append a cost-state line after SessionEnd, read by the next capture/import; with a broken archive Claude shows a non-blocking «Stop hook error» line.
  • MP-100: manual Pi bound via sessions; /open writes session_info = key; start and parent messages stored as origin frame and hidden from search unless --include-peer; --no-session captures nothing.

Decisions taken on the way

Engineer: MP-95 — skip turnOrigin values outside human/peer/task_notification; readers return session metadata (name, cwd, parent). MP-96 — a session name binds only if it resolves to a registered key; open/migrations in infrastructure, store adapter in the module; archive-migrations/ folder.
Lead, on the engineer's delegation («все остальные развилки реши сам…»): MP-97 --dir requires --agent, default root engineRoot(), per-file import use case in the module, a failing file goes to failed (plan edit); MP-98 optional q lists sessions, archive_show pages a session, Pi exposes archive_search directly; MP-99 one generic archive capture command, synchronous hooks; MP-100 sequential capture after the event emit; MP-101 forget keeps session rows and offsets, exact --key, MP-101 owns policy text; MP-102 new shared retro skill, one howto clause. On the way: MP-96 backup test asserts manifest keys and no archive* file (backup.ts unchanged); MP-98 scope description fix; MP-99 byte criterion = up to the last message record; MP-101 two warmup budget tests got input-data-only changes (assertions unchanged).

Open

  • Pre-existing: plain pnpm test (fast profile) often exceeds its 5 s working budget under machine load; verify passes.
  • Outside scope (stand): Pi --no-session still registers a sessions row; a resume through /open opens a new tab and leaves the old one.
  • The warmup is at 8979 of 9500 characters for global; further howto growth will press the budget tests.

🤖 Generated with Claude Code

@prineycom
prineycom merged commit 02f87b2 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