tamaratran/fast-jev-compaction: first run, 2026-10-11
Installed from its README in a throwaway sandbox by Claude Code (Claude Opus 5.5), with a Jev API key in the environment and nothing else: no GPU, no desktop, no other paid keys, no accounts. The README's first example was run once. Repo commit e3f262a7f4d4; 52 seconds. All results · Task
Quick start: ran. Jev calls made: 1.
| Install | mkdir /tmp/qs && cd /tmp/qs && npm init -y && npm install fast-jev-compaction |
|---|---|
| Quick start, as run | README 'Install and usage' snippet: compactMessages(transcript, { preserveRecentMessages: 4 }) then console.log(result.messages, result.decisions, result.stats) and reductionRatio(result). Run as plain ESM (node quickstart.mjs), with the '// …' part of the transcript filled in so it had 12 messages and 5 tool calls; key read from TYPESAFE_API_KEY (the project's default name). |
| What came back | One Jev request (471 ms, stateTokens 663, stage 'full'). Decisions: t1 Read keepCall 0.22/keepResult 0.12 drop_call; t2 Bash 0.20/0.12 drop_call; t3 Read 0.15/0.09 drop_call; t4 Edit and t5 Bash pinned. stats: messagesBefore 12 -> messagesAfter 6, charsBefore 10106 -> charsAfter 195, callsDropped 3, pinned 2, requests 1; reductionRatio 0.98. |
| What stopped it | Nothing. |
Steps the README does not mention
- Had to create a project to install into (npm init -y). The package is ESM-only, so the script has to be .mjs or the project needs "type": "module".
- The README example is TypeScript with an 'import type'. Running it needs tsx or tsc, which the README doesn't mention for library users. I used plain JS (.mjs) and dropped the type import.
- The README transcript is incomplete ('// …'). As written it has 3 messages with preserveRecentMessages: 4, so every call is pinned and Jev would never be asked. I had to write extra messages (5 tool calls in total) to get a real Jev call.
- Version mismatch: npm installs fast-jev-compaction 0.4.1, but the repo at ~/src is 0.2.0. The published package also ships files the repo doesn't have: cli/*.mjs, cli/jev-gate.py with a committed __pycache__ .pyc, SKILL.md, plugins/ and test dumps. So what users install is not the source in this checkout.
The session's closing message
The quick start worked on a clean machine: it installed from npm and its first example made one real Jev call.
- **Install:** `npm install fast-jev-compaction` into a fresh folder I made with `npm init -y`. The README gives this command. I used the npm library rather than the Claude Code plugin.
- **Run:** the README's `compactMessages(..., { preserveRecentMessages: 4 })` example, with the key taken from `TYPESAFE_API_KEY`, which is the name the project already expects.
- **Result:** one Jev request, 471 ms. Jev dropped 3 of the 5 tool calls (keep scores 0.09–0.22) and the other 2 stayed because they were recent. The transcript went from 12 to 6 messages and from 10,106 to 195 characters, a reduction of 0.98.
Steps the README doesn't mention:
1. **ES modules:** the package uses `import` syntax only, so I needed a project folder and had to run the script as an `.mjs` file.
2. **TypeScript:** the example is TypeScript. It needs `tsx` or `tsc` to run, which the README doesn't say, so I ran it as plain JavaScript without the type import.
3. **Incomplete example:** the transcript ends in `// …`. As written it has 3 messages and protects the newest 4, so Jev would never be called. I wrote extra messages to get a real call.
4. **Different version on npm:** npm installs version 0.4.1, but the repo at `~/src` is 0.2.0. The published package also contains files the repo doesn't have: CLI scripts, a Python script with a compiled `.pyc` file, `SKILL.md`, `plugins/` and test dumps. So what users install isn't the source in this checkout.
I didn't need to change any project code.
DELIVERABLE: ~/work/output/report.json