Skip to content

v8.6.0 - Enabled is not installed

Choose a tag to compare

@ShugokiFable ShugokiFable released this 26 Aug 00:18
· 7 commits to main since this release

v8.6.0 -- Enabled is not installed

2026-08-25. Based on v8.5.0. 160 canonical skills (+1: local-model-ops).
One new optional CLI, no new MCP servers.

v8.5.0 found that a cloned Hermes profile copies its config once and then
drifts. This one found the same shape one level down: a cloned profile copies
the list of enabled plugins and never the plugins.


Two cloned profiles had been running no plugins at all

Hermes resolves a user plugin at <HERMES_HOME>/plugins/<name>. For a named
profile that is profiles/<name>/plugins, which hermes profile create does
not create. Measured on the maintainer's machine:

default   disk-cleanup=bundled  ponytail=user  superpowers=user
roblox    disk-cleanup=bundled  ponytail=MISSING  superpowers=MISSING
skyrim    disk-cleanup=bundled  ponytail=MISSING  superpowers=MISSING

Both cloned profiles had enabled Ponytail and Superpowers since the day they
were created, and neither had ever loaded. Nothing reported it: an enabled
plugin that cannot be resolved simply does nothing, and every config check
passes because the config is not what is wrong.

The migration now links each profile's plugins directory back to the shared
root with a junction -- one authoritative copy, rather than duplicates that
would drift again -- and converges plugins.enabled additively. Discovery
reads what the default profile actually runs, filtered to payloads that
exist. It never enables a plugin from a hardcoded list, because enabling
something that is not there is the bug being fixed.

Verification asserts both halves: the name landed in the list and the
payload resolves.

All four of the pack's own Hermes gate hooks were dead

The same class again, from a rename. The allowlist still held consent for
...\Skyrim-AI-V5\hooks\completeness_gate.py under the old interpreter, while
the config now points at ...\Ultimate-AI-Starter-Bundle\hooks\. hermes hooks doctor was unambiguous once asked:

✗ not allowlisted -- hook will NOT fire at runtime

Consent is deliberately interactive and this pack does not forge it. The
installed-state doctor now reports it, with the command that grants it
(hermes --accept-hooks). Detect, do not silently grant.

Free web search, stated plainly

A hosted provider's own web plugin bills per search. Hermes never uses it:
web_search / web_extract are Hermes tools, so the search happens outside
the model and any model can drive it -- including a local one. With no
backend configured and no key present, Hermes rotates across several vendors'
public free tiers and fails over on rate limits.

The README now says so, and documents pip install ddgs for a backstop that
depends on no vendor account at all -- with the warning that pinning
web.search_backend disables the rotation.

A local model is now a documented, first-class option

New skill: local-model-ops. lmstudio is a first-class Hermes provider, and
one number blocks the obvious setup:

Hermes refuses any model whose context window is under 64,000 tokens and
raises before the first turn. LM Studio commonly saves 32K. The failure names
the model, not the loader, so it reads like a config problem.

Measured end to end on a 16 GB card with a 35B mixture-of-experts quant at 64K:
weights 17.08 GiB (partial CPU offload therefore mandatory), ~15.5 GiB VRAM
while generating, 41 tok/s. LM Studio's --estimate-only reports the same
figure at 32K, 64K and 128K and labels itself Confidence: LOW -- it models
weights and not the KV cache, so it cannot size a context change. The skill
ships a GGUF header parser and the KV arithmetic instead.

The local alias is deliberately not in the shipped starter config: it
names one machine's model behind a localhost endpoint, which the starter is
contractually forbidden to carry. The README/starter cross-check now encodes
that exception explicitly rather than being weakened.

RTK, with the caveat the vendor page does not carry

New optional CLI component (Apache-2.0). Measured on this repository:

Command Raw Through rtk Saved
git diff HEAD~3 2,010,426 B 71,268 B 97%
git log 158,877 B 2,460 B 99%
git status 321 B 72 B 78%

It is a CLI, so it costs zero standing tokens -- the same reason this pack
prefers Forge's CLI to Forge's MCP.

On native Windows only the Hermes integration actually works. It is a
Python plugin that mutates the terminal command. The Claude Code, Cursor and
Gemini integrations are shell hooks and fall back to CLAUDE.md prompt
injection -- spending context to ask for savings. Codex and Kimi are
prompt-level by design. Grok is unsupported. Claude Code's built-in Read,
Grep and Glob never pass through the Bash hook at all, so the win is
concentrated in git, test runners and builds.

exclude_commands = ["curl"] is pinned: curl output is usually an API response
that gets parsed or hash-checked, where a filtered body is a wrong answer
rather than a smaller one. Telemetry is opt-in and stays off.

An agent cannot confirm the rewrite is happening -- it reports the command it
asked for, not the one that ran. rtk gain is the out-of-band evidence, and
that is how this was verified.


Also

  • A new gate for a bug this release actually shipped and caught. Authoring
    files through a shell heredoc into Python collapsed a doubled backslash one
    level too far, turning \venv into a vertical tab and \rtk into a carriage
    return in two separate files. Both read correctly in a diff; one was a
    command a user would paste. Every shipped text file is now scanned for stray
    control characters.
  • Six new release contracts, all registered in the explicit tests list.
  • The doctor's JSON report carries hermes_plugin_issues and
    hermes_hook_issues so downstream tooling can read them.