Skip to content

v0.5.2

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Oct 04:48
· 50 commits to main since this release
1151c36

context-guru v0.5.2

This release adds commands that price changes on your own history before you make them: /context-guru:save-more and /context-guru:remove-mcp-and-skills. It also redesigns the dashboard, makes the savings figures more conservative, and fixes the status line after a plugin update.

Items marked [Notice] change something you will see, or need an action from you.

New and changed

/context-guru:save-more: which config and keep-alive strategy would have cost least on your history (#526, #528, #538, #530)

  • [Notice] It replaces /context-guru:adapt. adapt stays for one release and points to the new command.
  • save-more config replays your past sessions under every shipped preset and shows what each one would have saved. --custom also tries single components, their combinations and their order.
  • save-more cache replays every keep-alive strategy on your history, with a day-of-week × hour view of where the saving comes from.
  • save-more with no argument runs both and asks one question at the end. Nothing changes until you say yes, and revert undoes the last change.
  • Presets that use a model (extract_llm, the summarizers) cannot be replayed. Their figures are marked as estimates, with a range.
  • The command checks itself: it replays your current config and compares the result with what was really booked. If the two differ by more than 15%, it says so.

/context-guru:remove-mcp-and-skills: MCP servers, tools and skills you never use (#526, #523, #531, #537)

  • It lists the MCP servers, MCP tools and skills you declared and never called, with what carrying them cost. It never lists built-in tools or context-guru's own.
  • It asks one question: "Remove these N items, saving ≈$X/week?" It also says how long the one-off cache rewrite takes to pay back.
  • It shows what earlier removals have already saved, measured from your requests.
  • [Notice] The Inventory tab now prices each request on the tools it really carried. Before, it priced a tool on every request of every session that declared it, which counted too much.

/context-guru:insights now covers savings, cache and tools (#544)

  • [Notice] /context-guru:savings, /context-guru:cache and /context-guru:waste became /context-guru:insights savings, insights cache and insights tools. With no argument, it shows all three.

The dashboard is redesigned (#564)

  • [Notice] The Overview page shows only the three savings: cache keep-alive, compaction, and the tools and skills filter. Each one shows dollars and tokens against what you spent.
  • Every tab starts with one line that says what it shows. Technical terms have a tooltip.
  • [Notice] The Benchmarks tab is removed. The --dashboard-bench-dirs flag is still accepted, but does nothing.
  • The five-page home page is retired. Old links land on the matching tab.

The status line gives no more advice. It shows an optional weekly tip (#539)

  • [Notice] The hints are removed: the cold-cache price, the model-switch warning, the pause warning, the context-full line and the miss-cause line. The context bar keeps its "rewrite near" mark.
  • In the balanced and detailed layouts, a last line names a command that you have not run for a week, for example /context-guru:save-more.

Predictive keep-alive campaigns (opt-in) (#536, #522)

  • The automatic builder now reads each tenant's own history, even when other tenants fill the dashboard's row limit. Before, a busy fleet could push a tenant's own rows out of its build.
  • A new command, /context-guru:cache-campaign, builds, shows and switches campaigns. Build and switch always ask for permission. Show runs without asking.
  • Off by default, as in v0.5.1.

Fixed

  • [Notice] After a plugin update, the status line kept running the old version (#551, #553). The plugin wrote a fixed path to one version's script, and nothing moved it. Now each session start moves the status line to the running version's script. It does this only when the status line is the plugin's own, so a status line you wrote is never touched.
  • [Notice] In a long session, the status line lost its money line (#570, #575). With many threads, /api/cachestate was slower than the status line waits, and it showed only saved $x. The endpoint now answers in 45 ms at 300 threads, down from 1.6 s. A slow answer is refreshed in the background, so the line stays.
  • [Notice] Insights showed some savings with the wrong sign (#582, #583). Keep-alive, cache-split and declaration-filter savings appeared as losses, and the rows did not add up to the "Saved" headline. Example over 7 days: keep-alive showed −$185, the right figure was +$61. The rows now add up to the headline. Insights no longer shows what Claude Code removed by itself.
  • [Notice] The dashboard credited summarize too much (#546, #573).
    • The cause: a summary's credit had no end, and its first removal was priced at the cache-write rate.
    • The fix: the credit now stops where the client would have compacted anyway, and the first removal is priced as a cache read.
    • What you see: on measured sessions, the old figure was 3 to 7 times the real saving. The new one is lower than the real saving, by design.
    • Scope: this applies to both summarize and cache_aware_summarizer (the medium, high and xhigh presets). extract_llm and the offloaders get the same end to their credit.
  • The dashboard named the wrong cause for a cache miss after a keep-alive ping (#546). A miss after a ping that read the cache now says prefix_change, not ttl_expiry.
  • Compaction missed tool outputs that end with a Claude Code reminder (#556, #558). Some Claude Code versions add a <system-reminder> block at the end of a tool output. format, toon and dedup then skipped that output, and cmdfilter and extract could drop the reminder. The proxy now keeps the reminder separate.
  • Context windows were inexact when the LiteLLM map was not loaded (#515, #552). Without network access, or before the map's download finished, the summarizer's trigger at a fraction of the window did not fire. A built-in list now gives exact windows for 12 current Claude models, including Sonnet, Opus and Haiku 5.5 and Fable 5.1.
  • The proxy counted tokens for requests it forwards unchanged (#542). A bypassed request, such as Claude Code's compaction request, is now counted in the background, off the request path.
  • The dashboard missed the last minute of an all-day keep-alive window (#540). A window picked as 00:00–23:59 now ends at 24:00.
  • The dashboard's lifecycle-signal work is faster (#500). Each request body is normalized once, not twice: about 43% less time in the background writer.

How to upgrade

  1. Run /context-guru:update. It restarts the proxy on v0.5.2.
  2. Update the plugin, then start a new session. [Notice] The status line moves to the new version by itself (#553). If you upgraded to v0.5.1 and ran the workaround then, you have nothing more to do.

Known limits

  • In a session with many threads, if the proxy stalls, up to 12 background status-line refreshes can run at once.
  • After a keep-alive ping that missed and wrote the cache again, the dashboard can still give the next miss the cause ttl_expiry (#580). This is rare at the default 270 s idle setting.
  • Summarize credit over two adjacent time windows does not add up to the credit over both (#581).
  • Insights still shows a "self-removed-credit" finding for MCP servers you stopped declaring (#584).
  • On a slow gateway, a keep-alive ping for a large prompt can time out after 60 s (#532).
  • Claude Code's auto-mode classifier, and a tool output that quotes the compaction prompt, can be taken for a compaction (#533).

Changelog

Install

No Go toolchain and no C compiler are needed — the binary is statically linked.

Download the tarball for your platform, untar it, and put context-guru-proxy on your
PATH. The archive unpacks into its own directory, so this is safe to run anywhere:

tar xzf context-guru_*_darwin_arm64.tar.gz
install -m 755 context-guru_*/context-guru-proxy ~/.local/bin/

Then see docs/get-started/quickstart-proxy.md.