chore(release): 0.12.0 -- a session measures the effort it ran with
Bumps the six version-bearing files and gives ac62a38 its changelog entry.
Until the tag exists the plugin cache keeps serving the 0.11.0 skill, which
instructs every new session that effort is not observable and to ask the
operator for it. The fix is committed and pushed but not in circulation, so
the release is the part that changes behavior.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RxRVZm1busUeuXd5iPkK36
This commit is contained in:
parent
ac62a38b40
commit
dffc1f5e47
7 changed files with 49 additions and 6 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "repo-mailbox",
|
||||
"version": "0.11.0",
|
||||
"version": "0.12.0",
|
||||
"description": "Local mailbox for coordination between Claude Code sessions in different repositories. Directed messages and broadcasts as plain Markdown files on your own disk, injected as context at session start. Local, private, no network.",
|
||||
"author": {
|
||||
"name": "Kjell Tore Guttormsen"
|
||||
|
|
|
|||
43
CHANGELOG.md
43
CHANGELOG.md
|
|
@ -5,6 +5,49 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.12.0] - 2026-07-31
|
||||
|
||||
### Fixed
|
||||
|
||||
- **The last-session record asked the operator for the one field it could
|
||||
measure.** `route-last` (0.10.0) exists to make the routing policy
|
||||
falsifiable — a policy that always answers "Opus" is not a policy — and it
|
||||
only is if `--last-effort` reports what the session actually ran with.
|
||||
`route.sh` documented the opposite as settled fact: that a session cannot
|
||||
observe its own effort from the inside. That was true when written and is not
|
||||
now. Claude Code exports `CLAUDE_EFFORT` into every tool-use context as the
|
||||
session's current effort, so a single Bash call reads it.
|
||||
|
||||
**The premise had a cost, and it was the record's weakest field.** With effort
|
||||
unobservable, the record could only be completed by asking the operator at
|
||||
session end, which made all four fields block on their presence. It was also
|
||||
the weaker measurement, in exactly the way the previous board line is: the
|
||||
operator reads the effort off the startup command they typed, so both sources
|
||||
report what was *prescribed* rather than what was *run*. Those come apart
|
||||
precisely when the record would be worth having — as a session that silently
|
||||
ran `xhigh` under a board line saying `high` already showed. Reading the
|
||||
variable makes all four fields knowable from inside the ending session, so the
|
||||
record no longer waits on anyone.
|
||||
|
||||
**`route.sh` still does not read the variable, deliberately.** The skill
|
||||
measures and passes `--last-effort`; the calculator only computes. A
|
||||
calculator that consults its environment is no longer deterministic from its
|
||||
arguments, and the route → board round trip in selftest section 6 rests on
|
||||
that determinism.
|
||||
|
||||
- **The reading had a trap that would have hidden itself.** Skill frontmatter
|
||||
overrides the session effort while that skill is active, so an `effort:` field
|
||||
in `skills/route/SKILL.md` would make the reading report the skill instead of
|
||||
the session — a measurement quietly measuring itself, with nothing in the
|
||||
output to show it happened. Section 13 pins the absence of that field.
|
||||
|
||||
- **The neighbouring claim about the model was also wrong, in the other
|
||||
direction.** There is no `CLAUDE_MODEL` to read: `model` is a SessionStart
|
||||
field and documented as not guaranteed. The session takes the model from what
|
||||
it knows itself to be running as, and only the effort is measured.
|
||||
|
||||
`route-selftest.sh`: 50 → 56 checks.
|
||||
|
||||
## [0.11.0] - 2026-07-31
|
||||
|
||||
### Added
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
*AI-generated: all code produced by Claude Code through dialog-driven development.*
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "repo-mailbox",
|
||||
"version": "0.11.0",
|
||||
"version": "0.12.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"engines": {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ description: >-
|
|||
user names no repo and no tool — choosing *between* repos is this skill. Not for
|
||||
"where were we" inside the current repo: that is this repo's own STATE.md,
|
||||
already injected at session start.
|
||||
version: "0.11.0"
|
||||
version: "0.12.0"
|
||||
---
|
||||
|
||||
# board — which repo deserves the next session
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ description: >-
|
|||
covers retiring a broadcast that has become wrong or obsolete: "retract that
|
||||
broadcast", "that announcement is outdated, pull it", "trekk tilbake kringkastingen",
|
||||
"den broadcasten er utdatert".
|
||||
version: "0.11.0"
|
||||
version: "0.12.0"
|
||||
---
|
||||
|
||||
# coord-send — natural-language front door for inter-repo messages
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ description: >-
|
|||
the operator names no model and no tool — choosing the model for the next
|
||||
session IS this skill. Not for choosing which REPO gets the next session:
|
||||
that is the `board` skill.
|
||||
version: "0.11.0"
|
||||
version: "0.12.0"
|
||||
---
|
||||
|
||||
# route — what the next session should run with
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue