v2.5.7 — Four interpreted realities, host process, runtime allowlist
RuleBlast 2.5.7
This is the public npm and GitHub Release of tree 2.5.7. It is the first independently published CLI after 2.5.1. Versions 2.5.2 through 2.5.6 were merged to main and are included in this package. They were not separate npm versions.
npx --yes ruleblast@2.5.7 .
npx --yes ruleblast@2.5.7 diff HEAD~1
npx --yes ruleblast@2.5.7 --mcpFour actions only: current stacks, diff, explain, case. Four bundled realities: Codex CLI, Claude Code CLI, Copilot CLI, Gemini CLI. No fifth action. No fifth bundled reality. No --pack loader. A model name is never a reality.
Canonical JSON remains schemaVersion: 1 / resolverRevision: 1. Overlay wall is still four baseline analyses and four analysis-plus-overlay samples. Overlay median/p95 add less than 500 ms. The 5 s test clock is unchanged.
Do not overwrite Marketplace 2.2.0 or 2.2.1.
Official lineage
| Tree | In-repo record | Commit | Public npm |
|---|---|---|---|
2.5.1 |
RELEASED — Copilot interpreted from resolver.json |
e60fd18ec4a83ce8aff7488b0bb9203ab4a8cedc |
ruleblast@2.5.1 |
2.5.2 |
merged to main — Claude interpreted from resolver.json |
cda8834b3bc79f52123eb4f05019b35d775c9655 |
included in 2.5.7 |
2.5.3 |
merged to main — Gemini interpreted by composed operations |
796c5d9abdde755f5827351358b747ce30260cb1 |
included in 2.5.7 |
2.5.4 |
merged to main — host quoting and macOS verify |
f4154fd063e99f0f6e43e78b2e62ce2516cbdf0e |
included in 2.5.7 |
2.5.5 |
merged to main — host Git spawn and shared snapshot entry |
7b99d529355383977ad4589d746fe83c87a59185 |
included in 2.5.7 |
2.5.6 |
merged to main — runtime IDs, not model names |
742e27d07cec76e72a18c40598315e0b11b2b146 |
included in 2.5.7; gate later replaced |
2.5.7 |
RELEASED — exact runtime allowlist | cf6badd2ab376f1aa7f6f9b1d3be9559c1457503 |
ruleblast@2.5.7 |
The in-repo changelog keeps 2.5.2–2.5.6 as development headings. This GitHub Release is the official public history of that work as one published package.
Verified publication receipt
Independently verified external records, not facts inferred from a checkout.
npm ruleblast@2.5.7
- npm
ruleblast@2.5.7 - integrity
sha512-SzTP41slyb4hvPPYZ0KHj97SLf8sesfHz2morW/O55tQ9FTG4QoIhYgprxgNNT1YhXdTq5kQBJKDLD+Wm/eQVQ== - shasum
ea5280804857851b599539b7fa9b8f9a5b758875 - tarball 185,439 bytes · SHA-256
8873e179d261ecb7715b88c9268abcd7233720b40fcb7657bbd024f419c5d426 - unpacked size 1,454,645 bytes
- exact-tarball publication: registry
gitHeadis absent rather than invented - a registry download of
ruleblast@2.5.7is byte-identical to the packedruleblast-2.5.7.tgzfromcf6badd
GitHub
- Annotated tag object
dd46f4a9c08d10a9de1f113092b6036091e0f2daforv2.5.7targets commitcf6badd2ab376f1aa7f6f9b1d3be9559c1457503 - GitHub Release tarball is the same 185,439-byte
ruleblast-2.5.7.tgzwith SHA-2568873e179d261ecb7715b88c9268abcd7233720b40fcb7657bbd024f419c5d426 - Companion
ruleblast-companion-2.5.7.vsix167,204 bytes · SHA-256afac7b99c17afd07fee7255e6abca78fa04c518416f2cb8a2309b9728b93155e - Do not overwrite Marketplace
2.2.0or2.2.1
2.5.2 — Claude Code interpreted from resolver.json
Commit cda8834b3bc79f52123eb4f05019b35d775c9655. Merged to main. Not a separate npm version.
Claude Code is no longer a fingerprint-only engine on the catalog path.
The interpreter executes the Claude pack as data:
strip-html-comments@pathimport with lexerclaude-markdown-v1(four import edges)json-exclude-globson.claude/settings.json- frontmatter-glob
pathswith brace-budget matching - same-basename partial for dual root memory (
CLAUDE.md/.claude/CLAUDE.md)
Live interpreter projections are byte-identical to createClaudeProfile on every packed Claude fixture. Lab INTERPRET / ORACLE. The adapter remains the test oracle and is not imported by the interpreter.
Frontmatter apply is narrow YAML shared with Copilot applyTo: one mapping field to a string scalar (comma-split) or a string sequence. Maps, aliases, and merge keys fail closed.
Transform admission is the operations the engine executes (byte-budget, strip-html-comments, at-path-import with a named lexer, json-exclude-globs). Markdown tokenize/import and glob-budget matchers live under src/packs/ops-* and are reused by adapters as the same primitive, not a third vendor interpreter.
Interpreter admission is the two executable families:
- first-per-directory / ordered / byte-budget
- select-all / unspecified assemble
At 2.5.2 Gemini still fingerprinted on onSymlink (partial-unfollowed) and ordered assemble. Flipping the symlink policy does not admit a third family. Select-all prepares frontmatter, rule parse, and document tokens once, then caches projections.
Lab --detail / --receipt recorded Codex, Copilot, and Claude as INTERPRET / ORACLE and Gemini as FINGERPRINT / ADAPTER with sealed probe counts. Overlay wall and the 5 s clock stayed unchanged. Not a fifth action. Not a fifth bundled reality.
2.5.3 — Gemini interpreted by composed operations
Commit 796c5d9abdde755f5827351358b747ce30260cb1. Merged to main. Not a separate npm version.
Gemini CLI is interpreted by composing operations the engine already had:
select.modeallassemble.modeorderedonSymlinkpartial-unfollowedat-path-importwith lexermarkdown-v1json-union-namesfor trackedcontext.fileName
Live interpreter projections are byte-identical to createGeminiProfile on every packed Gemini fixture and on union-name snapshots. Lab INTERPRET / ORACLE for all four bundled realities. No third interpreter family. The adapter remains the test oracle and is not imported by the interpreter.
Lexer markdown-v1 is the shared markdown mechanism. Pack id is the lookup key on --detail. Compact --receipt keeps badges only. HTML-comment strip is a separate transform. json-union-names has no vendor field branch.
onSymlink selects UNKNOWN vs PARTIAL on one markdown import expander. Ordered-assemble evidence is pack claims plus union parse plus expansion, not interpreter-hardcoded Gemini strings.
Admission checks executable select/assemble/symlink/transform capabilities. Select-all prepares import expansions once and caches ancestor-directory chains for ordered assemble.
Lab --detail prints pack id beside engine, proof, ops, and sealed probe counts so an agent can look up the executing reality. Benchmark 10k/GIF uses catalog interpreters (the CLI path), records all four engines on the same snapshot, and requires four ORACLE rows. Overlay wall and the 5 s clock stayed unchanged. Not a fifth action. Not a fifth bundled reality.
2.5.4 — Host platform quoting and macOS verify
Commit f4154fd063e99f0f6e43e78b2e62ce2516cbdf0e. Merged to main. Not a separate npm version.
Host shell quoting follows the process platform: PowerShell on Windows, POSIX on Linux and macOS. CLI, MCP stdio, companion presentExplain, and GIF explain share hostShellDialect(). MCP no longer hardcodes POSIX CTAs on Windows.
Verify runs ubuntu-latest, windows-latest, and macos-latest on Node 20/22/24/26. Same 20-minute cell clock.
Select-all prepare records the matching discover origin once per captured path instead of scanning origins again.
Overlay wall still four analysis pairs. Not a fifth action. Not a fifth bundled reality. Not a kernel.
2.5.5 — Host Git spawn and shared snapshot entry
Commit 7b99d529355383977ad4589d746fe83c87a59185. Merged to main. Not a separate npm version.
Git analysis and companion Diff From git log share one runGit() with the same lock/fsmonitor flags and windowsHide on Windows. That is not a second Git engine.
Omitted text presentation context uses hostShellDialect(), so companion Show Detail CTAs match the host. CLI and MCP still pass the dialect explicitly.
Interpreter and Codex/Claude adapter prepare capture snapshot entries through ownSnapshotEntry(). Same closed-record check. Four copies of entry validation are one primitive.
Overlay wall still four analysis pairs. Not a fifth action. Not a fifth bundled reality.
2.5.6 — Runtime IDs, not model names (then corrected)
Commit 742e27d07cec76e72a18c40598315e0b11b2b146. Merged to main. Not a separate npm version. The 2.5.6 heading stays in the changelog as the historical record.
2.5.6 introduced a candidate roster keyed by runtime IDs and refused --reality grok-4 as a model name. That direction was right:
- IDs name CLIs and harnesses, not model products.
xai/grok-build-cliis a not-admitted candidate runtime.grok-4,glm-5.3, andgpt-4are model names.--realityand MCP refuse those with distinct text.- Projection of a candidate remains
UNEXECUTED.RECORDEDis not a passing oracle. - No public fifth
--reality. No public--pack.
The first implementation was not that gate:
- a denylist of product names
- invented empty watch stubs (
deepseek/dsh-harness,moonshot/kimi-code-cli) - treating
xai/grok-build-cli@1as the unversioned forming candidate
2.5.7 replaces that gate. Empty watch stubs are not inventory. A revision suffix is not implied.
2.5.7 — Exact runtime allowlist and shared host process
Commit cf6badd2ab376f1aa7f6f9b1d3be9559c1457503. This is the tagged package.
Runtime classification is an allowlist of catalog ids and committed candidate ids, exact match only.
- Modeled public realities remain
openai/codex-cli@1,anthropic/claude-code-cli@1,github/copilot-cli@1,google/gemini-cli@1. - Forming candidates in this package:
xai/grok-build-cliandqwen/qwen-code-cli. Both areNOT_ADMITTED. Projection remainsUNEXECUTED.RECORDEDis not a passing oracle. xai/grok-build-cli@1is not the forming candidate. A revision is not implied.- Candidate JSON declares
surface(cli/harness/agent) as data. The id spelling is not a model detector. --reality grok-4is unknown, not a classified model product. Catalog IDs name runtimes, not models.- Empty watch stubs are not inventory.
- A denylist of model product names is not a gate.
CLI and MCP share one HostProcess (cwd, env, platform → shell dialect). Companion Show Detail uses the process host default. Not a third host class.
Qwen Code CLI is a forming candidate with official hierarchical QWEN.md evidence and five UNKNOWN fixture axes. Grok Build CLI keeps its five axes. Neither is a public --reality. Grok the model is not Grok Build CLI.
All four bundled realities are INTERPRET / ORACLE. Overlay wall still four analysis pairs. Not a kernel. Not a fifth action. Not a fifth bundled reality.
What this release does not do
- It does not add a fifth bundled reality.
- It does not add a fifth action.
- It does not load arbitrary
--packfiles at runtime. - It does not treat GLM, GPT, Grok-the-model, DeepSeek V4, or Kimi-the-model as realities.
- It does not keep the
2.5.6denylist or the invented empty watch stubs. - It does not overwrite VS Marketplace
2.2.0or2.2.1. - It does not raise the overlay wall or the 5 s clock.
Install
Published CLI after independent verification:
npx --yes ruleblast@2.5.7 .
npx --yes ruleblast@2.5.7 diff HEAD~1
npx --yes ruleblast@2.5.7 explain <path> --from HEAD~1 --json
npx --yes ruleblast@2.5.7 case
npx --yes ruleblast@2.5.7 --mcpCompanion: pack ruleblast-companion-2.5.7.vsix with npm run host:pack, or install the GitHub Release asset. Same four actions in VS Code, GitHub Copilot Chat, Cursor, Windsurf, Kiro, Antigravity, Codex IDE, Continue, Cline, and Trae.
The tagged tree is cf6badd. Install pins on main record this independently verified receipt. Do not retag v2.5.7.