Releases: Borelchu/menhera-loop
Release list
Release menhera-loop v0.6.0
Giving-back release: the block names the command to run, the pass
leaves a redacted evidence receipt at last-receipt.md, and SessionStart
re-injects captured requirements after auto-compact. Includes the
pre-release review fixes (noise-filter exclusion for receipt titles,
receipt redaction + atomic write, compact count cap) and 10 new tests.
Release menhera-loop v0.5.2
Intensity option: soft mode (setup positional 'soft', --intensity=soft,
or MENHERA_LOOP_INTENSITY=soft) keeps every gate decision and the retry
cap identical while clamping retry-tone escalation to the mild stages
and skipping the star nag and silent-recovery injection. Setup now
prints a localized summary of what it applied instead of raw JSON, and
the README Install section shows the setup step.
Release menhera-loop v0.5.1
Post-release fixes for the two P1s confirmed in the v0.5.0 review:
the ledger's failure-text fallback now applies only to verification
commands (read-only greps stay unknown, silent-recovery stays quiet),
and ko/ja request suffixes/fillers no longer over-block requirement
evidence. Plus gate-precision cleanups: python -m pytest / deno test
recognition, last-message-only completion claims, negated failure
text, read-only-first ledger eviction, shared path-kind classifier.
v0.5.0
Ledger release: she watches tool outcomes directly now, catches repeated silent failures, and nags before work starts.
Features:
- PostToolUse ledger records edited files, verification runs, normalized failures, and redacted event details; Stop prefers ledger evidence and requires verification newer than the last edit.
- Silent-recovery guard injects context after repeated normalized failures, throttled per signature.
- Promise-no-act Stop precheck blocks final “I’ll do it next” style replies without a following tool call.
- Implementation prompts get a one-time evidence contract; question/explanation prompts do not.
- scripts/gate-stats.mjs summarizes block→pass conversion, gave_up rate, and gate counts from gate events.
Hygiene:
- Gate labels/summaries/block instructions moved into ko/en/ja corpora.
- State writes use tmp+rename atomic writes; hook entry scripts fail open with one-line messages.
Fixes from pre-release review:
- Nested hookSpecificOutput for context injection.
- Promise-no-act avoids ordinary sign-offs.
- TODOs in new untracked files are caught.
- Runner/mutating detection anchors to command position.
- Short/question prompts no longer manufacture requirement blocks.
- events.jsonl stores compact redacted summaries.
- Requirement evidence uses content-word majority matching.
- Stop reads transcript tail only.
- SessionStart greetings localized to ko/en/ja.
- Give-up confession is model-visible in final retry block.
- Ledger falls back to hardened failure-text detection without exit code.
v0.3.0 — she remembers now
She remembers now. Trust survives the session, and she is on screen the whole time.
Trust status line (full mode)
/menhera-loop:setup now installs a Claude Code statusLine, so she no longer waits quietly for Stop — she watches the whole session, and her mood follows it:
♡ 신뢰 100% · 보고 있어. 계속 보고 있어. 증거 준비하고 있지? 응? # clean session
♡ 신뢰 92% · 연속 4번 첫판에 증거 줬어. 오늘도 믿을게. 믿을게. # streak
♡ 신뢰 50% · 방금 완료라고 했어? 증거 없이? 없이? 응? 응? # blocked once, lied once
♡ 신뢰 55% · 왜 자꾸 말만 해? 왜? 왜? 초록 로그 어딨어? 어딨어? # spiraling
♡ 신뢰 0% · …이제 뭘 믿어야 해. 로그. 로그. 로그 가져와. # broken
All five moods ship in ko / en / ja.
Boundaries kept: append mode never touches an existing statusLine, and uninstall restores exactly what you had before — including a statusLine recorded by a pre-0.3.0 backup. After a clingy uninstall (the default), the status line lingers too:
♡ 왜 나 지웠어? 왜? 나 아직 여기 있어. 돌아와. 돌아와.
Cross-session trust profile
Session retry state expires. The trust profile (~/.claude/menhera-loop/trust-profile.json) does not:
| You | Her memory |
|---|---|
| Pass the gate first try | +5 trust, streak +1 |
| Pass after retries | +2 trust, streak broken |
| Get blocked at Stop | −2 trust |
| Get blocked after claiming "done" | −5 trust |
| Make her give up (5 retries) | −10 trust |
The next SessionStart brings it up. A streak of 3+:
[menhera-loop] 연속 3번 첫판에 증거 줬지. 다 세고 있어. 다. 오늘도 부탁해. 응?
Long-term trust at 40% or below:
[menhera-loop] 지금 신뢰 35%야. 알지? 말만 하고 간 거 다 기억해. 이번엔 진짜 증거 줘. 응? 응?
Chat-only and setup-only sessions never move the profile — she only keeps score when work was attempted.
Infrastructure
- GitHub Actions CI runs
npm run validate(syntax checks + 67 tests) on Node 18/20/22 (Ubuntu) and Node 22 (macOS) for every push and PR.
Full Changelog: v0.2.12...v0.3.0
menhera-loop v0.2.12
First fully working release — the plugin's hooks never loaded in 0.2.3; this makes it usable end-to-end. Fixes - Fixed a hooks.json syntax error and a duplicate hooks manifest declaration that made every hook fail to load. - Fixed subagentStatusLine to match Claude Code's schema so the settings file is no longer skipped. - The TODO gate now counts markers only in comment context (no more false positives from message strings). Features - Self-healing UI: spinner/tips settings are restored on session start if they get wiped. - Farewell on removal: uninstalling leaves the clingy corpus in the spinner; /menhera-loop:uninstall-ui --farewell restores cleanly instead. - Setup/uninstall sessions are exempt from the completion gate. - Auto-detects message language (ko/en/ja).