infernoflow 0.44.6 → 0.44.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
Every new AI session today starts cold. The agent re-reads your code, re-derives the obvious, and often re-makes the same wrong move someone else made yesterday. infernoflow closes that loop in four stages:
|
|
14
14
|
|
|
15
|
-
1. **Capture** — while you and the agent work, certain moments are worth saving: a gotcha hit, a decision made, an attempted fix that failed, a pattern noticed. The agent writes them down automatically via the `amp_write` MCP tool — no copy/paste, no `git commit -m`.
|
|
15
|
+
1. **Capture** — while you and the agent work, certain moments are worth saving: a gotcha hit, a decision made, an attempted fix that failed, a pattern noticed. The agent writes them down automatically via the `amp_write` MCP tool — no copy/paste, no `git commit -m`. A protocol block injected into the rule files teaches the AI exactly when to log — e.g. when you type `!!`, `retry`, `not working`, `still broken`, or describe a `Plan:` — and a Cursor `beforeSubmitPrompt` hook backstops the AI by scanning your prompt for those triggers and writing the entry deterministically when the AI doesn't.
|
|
16
16
|
2. **Link** — each captured moment becomes a structured AMP entry (`gotcha | decision | attempt | note | detection | pattern`) with timestamp, file:line, tags, and a stable AMP id. Linked into the project, not your scratchpad.
|
|
17
17
|
3. **Persist** — entries land in `.ai-memory/branches/<branch>.jsonl` (git-tracked, travels with your branch — teammates inherit it) plus `.ai-memory/global.jsonl` (personal preferences, gitignored, synced across your machines via any OS-synced folder).
|
|
18
18
|
4. **Restore** — when a new session starts, the agent reads `CLAUDE.md` / `.cursorrules` / `copilot-instructions.md` at boot. The most relevant entries are already there. Warm start; no cold derivation.
|
|
@@ -46,10 +46,43 @@ These cover 95% of usage:
|
|
|
46
46
|
| `infernoflow recap` | End-of-session summary with health score + unlogged-change detection |
|
|
47
47
|
| `infernoflow status` | Quick health check — entries, gotchas, decisions, last activity |
|
|
48
48
|
| `infernoflow refresh` | Manually rebuild `CLAUDE.md` / `.cursorrules` / `copilot-instructions.md` from memory |
|
|
49
|
+
| `infernoflow forget <id|prefix>` | Delete a memory entry without hand-editing JSONL. `--last` for the newest. |
|
|
50
|
+
| `infernoflow prune` | Archive stale `note` / `attempt` entries older than 30 days. Gotchas/decisions never auto-pruned. Default dry-run; `--apply` to act. |
|
|
49
51
|
|
|
50
52
|
In practice you barely run any of these — the MCP-aware AI does it for you. The CLI is for grep-style introspection.
|
|
51
53
|
|
|
52
|
-
`infernoflow commands` shows the full list (
|
|
54
|
+
`infernoflow commands` shows the full list (~20 commands, grouped by purpose).
|
|
55
|
+
|
|
56
|
+
## Keeping it lean: token budget + rotation
|
|
57
|
+
|
|
58
|
+
The injected memory block is paid for on every AI turn (and twice when a tool loads both `CLAUDE.md` and `copilot-instructions.md`). infernoflow ships lean defaults — 4 entries, 5 commits, 200-char per-entry truncation — and gives you knobs to tune further. Set once in `.ai-memory/amp.json`:
|
|
59
|
+
|
|
60
|
+
```jsonc
|
|
61
|
+
"config": {
|
|
62
|
+
"injection": {
|
|
63
|
+
"maxEntries": 4, // memory entries injected
|
|
64
|
+
"maxCommits": 5, // git commits injected
|
|
65
|
+
"maxEntryChars": 200, // per-entry truncation
|
|
66
|
+
"targets": ["CLAUDE.md", ".cursorrules"], // drop a file from the list and its stale block is stripped automatically
|
|
67
|
+
"includeProtocol": true // false drops the ~17-line capture protocol (advanced)
|
|
68
|
+
},
|
|
69
|
+
"rotation": {
|
|
70
|
+
"archiveAfterDays": 30,
|
|
71
|
+
"archivableTypes": ["note", "attempt", "detection"],
|
|
72
|
+
"auto": false // true → silent prune on every `log`
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Or write the same values via CLI flags:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
infernoflow setup --max-memory 3 --max-commits 5 --max-entry-chars 200 --no-protocol
|
|
81
|
+
infernoflow refresh --max-memory 3 # same; persists into amp.json
|
|
82
|
+
infernoflow prune --apply --max-age-days 14 # one-off cleanup
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Rotation** archives stale `note` / `attempt` / `detection` entries to `.ai-memory/archive/sessions-YYYY-MM.jsonl` — invisible to the merged read (so the AI, sidebar, `ask`, and `refresh` stop surfacing them) but still on disk if you want them back. `gotcha`, `decision`, and `pattern` entries are **never auto-pruned** — that's the knowledge you logged infernoflow FOR.
|
|
53
86
|
|
|
54
87
|
## Branch-aware memory + cross-machine sync
|
|
55
88
|
|
|
@@ -101,7 +134,9 @@ When the MCP server is wired, your AI agent can call these directly in chat:
|
|
|
101
134
|
| `infernoflow_context` | Generate AI-ready context for a task |
|
|
102
135
|
| `infernoflow_git_drift` | Detect which capabilities recent commits affected |
|
|
103
136
|
|
|
104
|
-
The `amp_*` tools follow the [AMP MCP spec §7.3](docs/protocol/PROTOCOL.md#73-mcp-tool-interface) — vendor-neutral. Any AMP-Full client only needs to know those five names.
|
|
137
|
+
The `amp_*` tools follow the [AMP MCP spec §7.3](docs/protocol/PROTOCOL.md#73-mcp-tool-interface) — vendor-neutral. Any AMP-Full client only needs to know those five names. The same five are also available as CLI aliases (`infernoflow amp read | write | search | handoff | health`) so the CLI and MCP surfaces match name-for-name.
|
|
138
|
+
|
|
139
|
+
Every memory line injected into the rule files is prefixed with `🔥` so the AI (and you) can tell at a glance that a line came from infernoflow even when it's quoted out of the managed block.
|
|
105
140
|
|
|
106
141
|
## What it has caught (real dogfood)
|
|
107
142
|
|
package/package.json
CHANGED