Skip to content

Commit a46d736

Browse files
docs(changelog): Unreleased entries for the learning-tier writer (#38) and the WS pump leak (#40)
Both PRs landed without a CHANGELOG line; #36 and #42 are docs- and test-only and need none. Written on the integration branch rather than on either PR branch so the PR heads the receipts cite stay untouched.
1 parent 6b6a35b commit a46d736

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,20 @@ experience may change before `1.0.0`.
3535
separately through the skills CLI, not by `studyloop install agents`; its
3636
guide is published on the docs site as *Lesson Study Notes*
3737
(`docs/study-notes-skill.md`).
38+
- The mentor writes to the learning tier (issue #38, item 1 of the
39+
learning-tier plan). A `record_teachback` MCP tool records a teach-back
40+
score through the same validator the `studyloop teachback` CLI uses (the
41+
CLI now delegates to it; its messages are unchanged), so a mentor session's
42+
teach-back reaches tomorrow's recommendation instead of stopping at the
43+
conversation. One `agents/shared/recording-protocol.md` carries a
44+
machine-readable trigger table naming exactly the four append-only writers
45+
(`log_topic`, `log_struggle`, `record_teachback`, `record_plan_learning`);
46+
every harness definition and the built live persona name the same four,
47+
and parity tests pin the names, the protocol hash and the absence of any
48+
new pre-approval — recording stays prompt-per-call on every harness, by
49+
owner decision. Scheduling mutators never fire from the protocol. A
50+
child-process isolation guard proves the four writers land nowhere outside
51+
the sandbox database. Owner decisions 1–5 are recorded in the plan (#34).
3852

3953
### Changed
4054

@@ -62,6 +76,13 @@ experience may change before `1.0.0`.
6276
no learner saw the split; `spaced_repetition_due()` gains a keyword-only
6377
`now` for callers that already hold an instant, defaulting to the wall
6478
clock for everyone else.
79+
- A browser tab rejoining a session whose transport had already drained no
80+
longer leaves *Task exception was never retrieved … StopAsyncIteration* in
81+
the server log. The WebSocket pump pulls each transport event as its own
82+
future; when a newer socket took the slot, or the client closed while the
83+
drained future was already complete, the pump exited without reading that
84+
future's `StopAsyncIteration`. The pump now retrieves the result of a done
85+
pull future on every exit path.
6586

6687
## [0.5.0] - 2026-09-21
6788

0 commit comments

Comments
 (0)