Skip to content

1.2.0: what real sessions say about retirement, and memory for subagents - #29

Merged
ilien-dev merged 1 commit into
masterfrom
feature/usage-review-subagent-memory
Nov 3, 2026
Merged

ilien-dev merged 1 commit into
masterfrom
feature/usage-review-subagent-memory

Conversation

@ilien-dev

Copy link
Copy Markdown
Owner

1.2.0. The full list is in the CHANGELOG entry; this is the short version.

Reading 773 sessions and 1,200 subagent transcripts from ten stores turned up two problems.
Records the user really said were being retired, and subagents never got memory. Only counts
and record ids are published; the projects stay private.

Retirement (usage-v1). Of the 95 typed records retired with a replacement, 25 were real
losses. Replaying every session, 1.1.0 retires 20 of them and this branch 9. Both valid
retirements still happen. On the held-out loop7 and loop8 sets every figure equals 1.1.0's, and
the noise arm retires nothing. maintain restores, once, what the fixed paths had retired: 56
records on copies of the ten stores, 13 of them real losses and neither valid one.

Subagents (usage-v3). A new SubagentStart hook, on by default. A recorded rule was followed
in 5 of 6 tasks with it and 1 of 6 without it, on one model.

Also: queued messages are read (28 of the 31 that were missing), the catalogue lists a long
sentence once, muninn show no longer calls a budget-cut record retired, and the startup text
says to ask muninn why in the records' language (27 of 30 against 5 of 30, usage-v2). It also
takes the four open dependency bumps (#22, #23, #24, #27).

Checks run locally: fmt, clippy, cargo test --workspace --features exact-tokens, the fault
suite at 200 reps (14 of 14) and init --check-budget (489 of 500 tokens) all pass. perf --strict fails on the full UserPromptSubmit on this Windows machine, as on 1.1.0. Over seven
interleaved runs of each build the p95 medians are 10.6 ms on 1.1.0 and 9.7 ms here.
SubagentStart reads 6.7 to 9.7 ms p95.

Not fixed: a user statement read as a change of an earlier one on the same subject still retires
it, and that is most of what is still retired wrongly.

Results, pre-registration and amendments are in ilien-dev/muninn-experiments, branch
experiment/usage-replay-1.1.1.

- A correction no longer replaces an unrelated one through a shared turn index; corrections
  replace only a same-session restatement (10 % shared content words).
- Episodes take no part in replacement by text; AskUserQuestion answers retire nothing by wording.
- A commit retires only records older than itself, and only a newer record naming an added word
  inherits; typed records of the turn go only if they name the value.
- maintain restores, once, records those paths retired wrongly.
- queued_command attachments are read; Agent SDK sessions are kept as episodes, untyped.
- The catalogue lists a long sentence once; show no longer calls a budget-cut record retired.
- SubagentStart hook, on by default (subagent-delivery off turns it off).
- Startup text: ask muninn why in the records' language.
- rusqlite 0.41.1, serde_json 1.0.154, sha2 0.11.1, tree-sitter 0.27.1.

Measured in usage-v1, v2 and v3 (muninn-experiments).
@ilien-dev
ilien-dev merged commit 00d6916 into master Nov 3, 2026
32 of 34 checks passed
@ilien-dev
ilien-dev deleted the feature/usage-review-subagent-memory branch November 3, 2026 03:56
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant