Skip to content

Release 0.64.0 — the numbers are on the door, and every one has a source - #18

Merged
JimmyWesley merged 4 commits into
mainfrom
develop
Aug 24, 2026
Merged

JimmyWesley merged 4 commits into
mainfrom
develop

Conversation

@JimmyWesley

Copy link
Copy Markdown
Owner

Release 0.64.0 — the numbers are on the door, and every one has a source

Where the engine work is. The v0.64 commits — A transport method is not a
capability
, The listen stream is served, The receiver is not the record —
already merged into main in #17, which was titled for the discoverability
commit it started as. So this release PR carries the version bump alone
(pyproject.toml, src/monkeyllm/__init__.py, 0.63.0 → 0.64.0) plus the brand
images. Anyone opening this diff looking for the spec v0.64 surface should read
#17 instead. docs/monkeyllm-spec-v0.64.md and the CLAUDE.md pointer are
already on main.

The strip

The README opened with a 120px logo and no claim, and the social card carried
one comparison. Both now carry the same four figures, and STATS in the
generator names the source of each beside it:

source
11/11 multi-hop QA, same 12B model that scores 0/11 as top-k RAG paper §5, abstract
1.3 ms entry search p95 at recall@5 = 1.0, no embedder paper §5.1, BM25 scent-weighted row
0.66× token cost per correct answer vs iterative RAG paper §5, 1,433 against 2,175
1,309 tests collected at this commit pytest --collect-only

The condition beside each number is not decoration. 11/11 without same
12B model
reads as a frontier model doing well. 1.3 ms without no embedder
reads as a vector index somebody paid for. 0.66× without per correct answer
inverts, because the raw median is comparable to iterative RAG's and the
ratio comes entirely from the questions the monkey does not fail. A figure
stripped of its condition is the same defect as the 0.58× that #17 corrected,
arriving by a different road.

Two sizes, one set of claims

notes
docs/social-preview.png 1280×640 short: vs 0/11 as top-k RAG
docs/banner.png 2000×760 long: same 12B model, 0/11 as top-k RAG

1280×640 is what GitHub's social preview field takes; an image at the banner's
2000×760 is cropped to 2:1 there, which cuts exactly the strip that was added.
A column is 280px on the card against 425px on the banner, so the note has to
lose something — and what it loses is the half already carried by the subline
above it or by the paper, never the half that changes what the number means.
STATS holds each figure once, in both lengths, so the two images cannot
drift apart without editing one list.

One commit is a rename with the wrong message

44084ca carries the message that describes cdeef44. The git add named the
path the rename had already retired, failed whole, and the commit went ahead
with the only thing staged. develop is protected against non-fast-forward and
was being pushed to concurrently, so this was not rewritten: cdeef44's own
message ends by saying what happened.

Still manual after merge

GitHub has no API for the social preview: Settings → General → Social preview
→ Upload an image
, docs/social-preview.png. Until then og:image stays the
auto-generated card. X and LinkedIn cache aggressively; their Post Inspector /
Card Validator force a refetch.

Files

  • pyproject.toml, src/monkeyllm/__init__.py: 0.64.0
  • README.md: the banner replaces the 120px logo, alt text carrying the figures
  • docs/banner.png, docs/social-preview.png
  • scripts/build_social_card.py → scripts/build_brand_art.py, which builds
    both from one palette and one STATS

No source under src/monkeyllm/ or apps/ is touched beyond the version
string.

🤖 Generated with Claude Code

Signed-off-by: Jimmy Wesley <rededown@hotmail.com>
The README opened with a 120px logo and nothing else, so the first screen
said the project's name and made no claim. The four-figure strip is the shape
that works on repositories people star: a number, what it measures, and the
condition it was measured under, in one line each.

The four are quoted, and STATS carries the source of each beside it:

  11/11   multi-hop QA, same 12B model that scores 0/11 as top-k RAG
          (paper section 5, abstract)
  1.3 ms  entry search p95 at recall@5 = 1.0 with no embedder
          (paper section 5.1, the BM25 scent-weighted row)
  0.66x   token cost per correct answer against iterative RAG
          (paper section 5: 1433 against 2175)
  1,309   tests collected at this commit
          (pytest --collect-only)

The condition is not decoration. 11/11 without "same 12B model" reads as a
frontier model doing well; 1.3 ms without "no embedder" reads as a vector
index somebody paid for; 0.66x without "per correct answer" inverts, because
the monkey's raw median is comparable to iterative RAG's and the ratio comes
from the questions it does not fail. A figure stripped of its condition is
the same defect as the 0.58x this branch just corrected, arriving by a
different road.

The card does not get the strip. It is read small and in a timeline, where
four columns collapse into grey texture, so it keeps the one comparison that
survives being small. Same palette, same wordmark, same tagline: two images,
one voice.

build_social_card.py becomes build_brand_art.py, since it now builds both.

Signed-off-by: Jimmy Wesley <rededown@hotmail.com>
The README opened with a 120px logo and nothing else, so the first screen
said the project's name and made no claim. docs/banner.png is the four-figure
strip that works on repositories people star: a number, what it measures, and
the condition it was measured under, one line each.

The four are quoted, and STATS names the source beside each:

  11/11   multi-hop QA, same 12B model that scores 0/11 as top-k RAG
          (paper section 5, abstract)
  1.3 ms  entry search p95 at recall@5 = 1.0 with no embedder
          (paper section 5.1, the BM25 scent-weighted row)
  0.66x   token cost per correct answer against iterative RAG
          (paper section 5: 1433 against 2175)
  1,309   tests collected at this commit
          (pytest --collect-only)

The condition is not decoration. 11/11 without "same 12B model" reads as a
frontier model doing well. 1.3 ms without "no embedder" reads as a vector
index somebody paid for. 0.66x without "per correct answer" inverts, because
the raw median is comparable to iterative RAG's and the ratio comes entirely
from the questions it does not fail. A figure stripped of its condition is
the same defect as the 0.58x this tree corrected last commit, arriving by a
different road.

The card does not get the strip. It is read small and in a timeline, where
four columns collapse into grey texture, so it keeps the one comparison that
survives being small. Same palette, same wordmark, same tagline: two images,
one voice.

The rename to build_brand_art.py landed alone in 44084ca, and that commit's
message describes this one. The add that should have staged the content named
the path the rename had already retired, so it failed, and the commit went
ahead with the only thing staged.

Signed-off-by: Jimmy Wesley <rededown@hotmail.com>
The social preview carried one comparison while the README banner carried
four, so the two images arriving from the same project said different things
about it, and the one that travels furthest said least. The card is what a
timeline, a chat and a search result render; the banner is seen by somebody
already reading the repository.

The strip is now one function serving both sizes. STATS holds each figure
once, with two lengths of note: at 1280x640 a column is 280px against the
banner's 425, so "same 12B model, 0/11 as top-k RAG" does not fit and becomes
"vs 0/11 as top-k RAG". What the short form drops is the half already carried
by the subline above it or by the paper, never the half that makes the number
mean something else: "per correct answer" stays, because 0.66x without it
inverts.

Sizes are what they are for a reason and now both are usable. 1280x640 is
what the social preview field takes, and an image at the banner's 2000x760
is cropped to 2:1 there, which cuts exactly the strip that was added.

Signed-off-by: Jimmy Wesley <rededown@hotmail.com>
@JimmyWesley
JimmyWesley merged commit 6cd279a into main Aug 24, 2026
6 checks 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