openwolf-enhanced 1.20.7 → 1.20.8

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.
Files changed (23) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/dashboard/assets/{AISuggestions-DhjEYxwe.js → AISuggestions-Dg1-N5nC.js} +1 -1
  3. package/dist/dashboard/assets/{ActivityLog-DO9iZv_8.js → ActivityLog-BFmWCl6A.js} +1 -1
  4. package/dist/dashboard/assets/{ActivityTimeline-CUCLZ_UU.js → ActivityTimeline-BoxSrnVz.js} +1 -1
  5. package/dist/dashboard/assets/{AnatomyBrowser-CIzR6ZvY.js → AnatomyBrowser-ZeCZi-d5.js} +1 -1
  6. package/dist/dashboard/assets/{BugLog-CS1eGRR6.js → BugLog-B75NmOEV.js} +1 -1
  7. package/dist/dashboard/assets/{CerebrumViewer-xIpHOPFj.js → CerebrumViewer-BZ-ae6GT.js} +1 -1
  8. package/dist/dashboard/assets/{CronStatus-CvE1wm1v.js → CronStatus-CYMtXRZB.js} +1 -1
  9. package/dist/dashboard/assets/{DesignQC-D8U-D73g.js → DesignQC-CnFknZBk.js} +1 -1
  10. package/dist/dashboard/assets/{MemoryViewer-BJUPEsAJ.js → MemoryViewer-JpwUqDv5.js} +1 -1
  11. package/dist/dashboard/assets/{NativeMemory-BwMXbvW0.js → NativeMemory-CVphymZQ.js} +1 -1
  12. package/dist/dashboard/assets/{ProjectOverview-BVe46vny.js → ProjectOverview-B5nh-GRv.js} +1 -1
  13. package/dist/dashboard/assets/{ProjectsAggregate-DVw_v3O9.js → ProjectsAggregate-ff08rggP.js} +1 -1
  14. package/dist/dashboard/assets/{StatusBadge-DZhrgnt6.js → StatusBadge-CXXG4-EY.js} +1 -1
  15. package/dist/dashboard/assets/{TokenUsage-CxVCUmAf.js → TokenUsage-4SuEka1K.js} +1 -1
  16. package/dist/dashboard/assets/{index-BNgFf0HP.js → index-CYh1Yqk6.js} +3 -3
  17. package/dist/dashboard/index.html +1 -1
  18. package/dist/hooks/stop.js +60 -19
  19. package/dist/src/daemon/llm-provider.js +59 -13
  20. package/dist/src/daemon/llm-provider.js.map +1 -1
  21. package/dist/src/hooks/stop.js +60 -19
  22. package/dist/src/hooks/stop.js.map +1 -1
  23. package/package.json +1 -1
@@ -7,7 +7,7 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com" />
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
9
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
10
- <script type="module" crossorigin src="./assets/index-BNgFf0HP.js"></script>
10
+ <script type="module" crossorigin src="./assets/index-CYh1Yqk6.js"></script>
11
11
  <link rel="stylesheet" crossorigin href="./assets/index-Cr3yWM5G.css">
12
12
  </head>
13
13
  <body>
@@ -1,6 +1,18 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import { getWolfDir, ensureWolfDir, readJSON, writeJSON, appendMarkdown, timeShort, getRetention, compactMemoryIfLarge, countSemanticEntries, withLock, readStdin, readTranscriptUsage, detectAgent } from "./shared.js";
4
+ const NOTHING_BOOKED = {
5
+ reads: 0, writes: 0, tokens: 0, anatomy_hits: 0, anatomy_misses: 0, repeated_reads_blocked: 0,
6
+ savings: 0, real_input: 0, real_output: 0, real_cache_read: 0, real_cache_creation: 0, real_api_calls: 0,
7
+ };
8
+ /**
9
+ * Only what is new since the last stop goes into lifetime.
10
+ *
11
+ * Clamped at zero: if the cumulative value ever goes DOWN (session file reset while `booked`
12
+ * survived, retention trimming a counter), the honest answer is "nothing new", never a negative
13
+ * correction — that would silently eat other sessions' numbers.
14
+ */
15
+ const delta = (current, booked) => Math.max(0, current - booked);
4
16
  async function main() {
5
17
  ensureWolfDir();
6
18
  const wolfDir = getWolfDir();
@@ -126,34 +138,63 @@ async function main() {
126
138
  if (Array.isArray(sessionEntry.writes) && sessionEntry.writes.length > ret.session_io_max) {
127
139
  sessionEntry.writes = sessionEntry.writes.slice(-ret.session_io_max);
128
140
  }
129
- ledger.sessions.push(sessionEntry);
141
+ // One entry per session, not per turn: the entry carries the session's cumulative state, so a
142
+ // later stop REPLACES the earlier one instead of appending a near-duplicate under the same id.
143
+ const existing = ledger.sessions.findIndex((s) => s.id === sessionEntry.id);
144
+ if (existing === -1)
145
+ ledger.sessions.push(sessionEntry);
146
+ else
147
+ ledger.sessions[existing] = sessionEntry;
130
148
  if (ledger.sessions.length > ret.token_ledger_max_sessions) {
131
149
  ledger.sessions = ledger.sessions.slice(-ret.token_ledger_max_sessions);
132
150
  }
133
- ledger.lifetime.total_reads += readCount;
151
+ // Everything below books DELTAS. The values on `session` are cumulative for the whole session and
152
+ // this hook runs every turn — see the `booked` doc comment. [bug-210]
153
+ const booked = { ...NOTHING_BOOKED, ...(session.booked ?? {}) };
154
+ const totalWritesNow = writeCount + unnamedWrites;
155
+ const tokensNow = inputTokens + outputTokens;
156
+ // Estimate savings: anatomy hits save ~200 tokens each, repeated reads blocked save their token count
157
+ const savedFromAnatomy = session.anatomy_hits * 200;
158
+ const savedFromRepeats = Object.values(session.files_read)
159
+ .filter((r) => r.count > 1)
160
+ .reduce((sum, r) => sum + r.tokens * (r.count - 1), 0);
161
+ const savingsNow = savedFromAnatomy + savedFromRepeats;
162
+ ledger.lifetime.total_reads += delta(readCount, booked.reads);
134
163
  // Unnamed writes (shell / other working dirs) count toward the lifetime total — they were real
135
164
  // work. They stay OUT of the session's named writes[] list (no path was recorded, by design).
136
- ledger.lifetime.total_writes += writeCount + unnamedWrites;
137
- ledger.lifetime.total_tokens_estimated += inputTokens + outputTokens;
138
- ledger.lifetime.anatomy_hits += session.anatomy_hits;
139
- ledger.lifetime.anatomy_misses += session.anatomy_misses;
140
- ledger.lifetime.repeated_reads_blocked += session.repeated_reads_warned;
165
+ ledger.lifetime.total_writes += delta(totalWritesNow, booked.writes);
166
+ ledger.lifetime.total_tokens_estimated += delta(tokensNow, booked.tokens);
167
+ ledger.lifetime.anatomy_hits += delta(session.anatomy_hits, booked.anatomy_hits);
168
+ ledger.lifetime.anatomy_misses += delta(session.anatomy_misses, booked.anatomy_misses);
169
+ ledger.lifetime.repeated_reads_blocked += delta(session.repeated_reads_warned, booked.repeated_reads_blocked);
170
+ ledger.lifetime.estimated_savings_vs_bare_cli += delta(savingsNow, booked.savings);
141
171
  // Accumulate measured usage alongside the estimates, so the ledger carries both a heuristic and
142
- // a verifiable ground truth (F1).
172
+ // a verifiable ground truth (F1). readTranscriptUsage reads the WHOLE transcript, so these are
173
+ // cumulative per session too and need the same delta treatment.
143
174
  if (realUsage) {
144
175
  const lt = ledger.lifetime;
145
- lt.real_input_tokens = (lt.real_input_tokens ?? 0) + realUsage.input_tokens;
146
- lt.real_output_tokens = (lt.real_output_tokens ?? 0) + realUsage.output_tokens;
147
- lt.real_cache_read_tokens = (lt.real_cache_read_tokens ?? 0) + realUsage.cache_read_input_tokens;
148
- lt.real_cache_creation_tokens = (lt.real_cache_creation_tokens ?? 0) + realUsage.cache_creation_input_tokens;
149
- lt.real_api_calls = (lt.real_api_calls ?? 0) + realUsage.api_calls;
176
+ lt.real_input_tokens = (lt.real_input_tokens ?? 0) + delta(realUsage.input_tokens, booked.real_input);
177
+ lt.real_output_tokens = (lt.real_output_tokens ?? 0) + delta(realUsage.output_tokens, booked.real_output);
178
+ lt.real_cache_read_tokens = (lt.real_cache_read_tokens ?? 0) + delta(realUsage.cache_read_input_tokens, booked.real_cache_read);
179
+ lt.real_cache_creation_tokens = (lt.real_cache_creation_tokens ?? 0) + delta(realUsage.cache_creation_input_tokens, booked.real_cache_creation);
180
+ lt.real_api_calls = (lt.real_api_calls ?? 0) + delta(realUsage.api_calls, booked.real_api_calls);
150
181
  }
151
- // Estimate savings: anatomy hits save ~200 tokens each, repeated reads blocked save their token count
152
- const savedFromAnatomy = session.anatomy_hits * 200;
153
- const savedFromRepeats = Object.values(session.files_read)
154
- .filter((r) => r.count > 1)
155
- .reduce((sum, r) => sum + r.tokens * (r.count - 1), 0);
156
- ledger.lifetime.estimated_savings_vs_bare_cli += savedFromAnatomy + savedFromRepeats;
182
+ // Mark what is now booked. Set inside the lock, right after the numbers went in, so a crash
183
+ // between the two writes cannot leave the ledger credited and the session unmarked.
184
+ session.booked = {
185
+ reads: Math.max(readCount, booked.reads),
186
+ writes: Math.max(totalWritesNow, booked.writes),
187
+ tokens: Math.max(tokensNow, booked.tokens),
188
+ anatomy_hits: Math.max(session.anatomy_hits, booked.anatomy_hits),
189
+ anatomy_misses: Math.max(session.anatomy_misses, booked.anatomy_misses),
190
+ repeated_reads_blocked: Math.max(session.repeated_reads_warned, booked.repeated_reads_blocked),
191
+ savings: Math.max(savingsNow, booked.savings),
192
+ real_input: Math.max(realUsage?.input_tokens ?? 0, booked.real_input),
193
+ real_output: Math.max(realUsage?.output_tokens ?? 0, booked.real_output),
194
+ real_cache_read: Math.max(realUsage?.cache_read_input_tokens ?? 0, booked.real_cache_read),
195
+ real_cache_creation: Math.max(realUsage?.cache_creation_input_tokens ?? 0, booked.real_cache_creation),
196
+ real_api_calls: Math.max(realUsage?.api_calls ?? 0, booked.real_api_calls),
197
+ };
157
198
  writeJSON(ledgerPath, ledger);
158
199
  });
159
200
  // Write a session summary line to memory.md if there was meaningful activity
@@ -1,3 +1,4 @@
1
+ import * as net from "node:net";
1
2
  import * as path from "node:path";
2
3
  import { readJSON } from "../utils/fs-safe.js";
3
4
  const DEFAULTS = {
@@ -20,17 +21,57 @@ export function resolveLlmConfig(wolfDir) {
20
21
  const cfg = readJSON(path.join(wolfDir, "config.json"), {});
21
22
  return llmConfigFrom(cfg.openwolf?.cron);
22
23
  }
23
- // Literal-IP private/link-local check (incl. cloud metadata 169.254.169.254). Hostnames that resolve
24
- // to private IPs via DNS are NOT caught here — this guards the common SSRF sinks, not every case.
25
- function isPrivateHost(host) {
26
- if (host === "::1" || host.startsWith("fe80:") || host.startsWith("fc") || host.startsWith("fd"))
27
- return true;
24
+ function isPrivateIpv4(host) {
28
25
  const m = host.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.\d{1,3}$/);
29
26
  if (!m)
30
27
  return false;
31
28
  const a = Number(m[1]), b = Number(m[2]);
32
29
  return a === 0 || a === 10 || a === 127 || (a === 169 && b === 254) || (a === 172 && b >= 16 && b <= 31) || (a === 192 && b === 168);
33
30
  }
31
+ /**
32
+ * Private/link-local check for an IPv6 LITERAL (brackets already stripped).
33
+ *
34
+ * The ranges are defined by the first 16-bit group, so that is what gets compared — as a number, not
35
+ * as text:
36
+ * fe80::/10 link-local → fe80 … febf (the old `startsWith("fe80:")` missed fe81…febf,
37
+ * so fe90::1 sailed through the guard) [bug-213]
38
+ * fc00::/7 unique local → fc00 … fdff
39
+ *
40
+ * ::ffff:a.b.c.d maps an IPv4 address into v6 and is the classic way around a v4-only check, so it
41
+ * is unwrapped and handed to the v4 rules. Both spellings have to be handled: WHATWG `new URL()`
42
+ * rewrites ::ffff:127.0.0.1 into the hex form ::ffff:7f00:1 before this code ever sees it, so
43
+ * matching only the dotted spelling would leave exactly the bypass this is meant to close.
44
+ */
45
+ function isPrivateIpv6(host) {
46
+ if (host === "::1" || host === "::")
47
+ return true;
48
+ const mapped = host.match(/^::ffff:(?:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|([0-9a-f]{1,4}):([0-9a-f]{1,4}))$/i);
49
+ if (mapped) {
50
+ if (mapped[1])
51
+ return isPrivateIpv4(mapped[1]);
52
+ const hi = parseInt(mapped[2], 16), lo = parseInt(mapped[3], 16);
53
+ return isPrivateIpv4(`${hi >> 8}.${hi & 0xff}.${lo >> 8}.${lo & 0xff}`);
54
+ }
55
+ const head = parseInt(host.split(":")[0], 16);
56
+ if (!Number.isFinite(head))
57
+ return false;
58
+ return (head >= 0xfe80 && head <= 0xfebf) || (head >= 0xfc00 && head <= 0xfdff);
59
+ }
60
+ /**
61
+ * Literal-IP private/link-local check (incl. cloud metadata 169.254.169.254). Hostnames that resolve
62
+ * to private IPs via DNS are NOT caught here — this guards the common SSRF sinks, not every case.
63
+ *
64
+ * The prefix rules only apply to actual IP literals. They used to run against any string, so
65
+ * `startsWith("fc")` / `startsWith("fd")` rejected every ordinary hostname beginning with those two
66
+ * letters — fc2.com, fdisk.example.com, fd-api.vendor.io — as if it were an IPv6 ULA. [bug-212]
67
+ */
68
+ function isPrivateHost(host) {
69
+ switch (net.isIP(host)) {
70
+ case 4: return isPrivateIpv4(host);
71
+ case 6: return isPrivateIpv6(host);
72
+ default: return false; // a name, not an address — DNS is out of scope here, see above
73
+ }
74
+ }
34
75
  // A loopback endpoint is a local model server (Ollama, llama.cpp, LM Studio). Two consequences:
35
76
  // it may be reached over cleartext http, and it needs no API key — so there is no secret to leak.
36
77
  export function isLocalEndpoint(baseUrl) {
@@ -112,11 +153,22 @@ export async function callLlmDetailed(cfg, apiKey, prompt, opts = {}) {
112
153
  const req = buildLlmRequest(cfg, apiKey, prompt, opts.maxTokens ?? 4096);
113
154
  const controller = new AbortController();
114
155
  const timer = setTimeout(() => controller.abort(), opts.timeoutMs ?? 120_000);
115
- let response;
156
+ // The timer has to survive until the BODY is read, not just until the headers arrive. fetch()
157
+ // resolves as soon as the response head is in; response.json()/.text() pull the rest afterwards.
158
+ // With clearTimeout in a finally around the fetch alone, a server that sends headers and then
159
+ // stalls the body held the call forever — timeoutMs covered the handshake and nothing else.
160
+ // [bug-211]
116
161
  try {
117
- response = await fetch(req.url, { method: "POST", headers: req.headers, body: req.body, signal: controller.signal, redirect: "error" });
162
+ const response = await fetch(req.url, { method: "POST", headers: req.headers, body: req.body, signal: controller.signal, redirect: "error" });
163
+ if (!response.ok) {
164
+ const body = await response.text();
165
+ throw new Error(`${cfg.provider} API error (${cfg.model}) ${response.status}: ${body.slice(0, 200)}`);
166
+ }
167
+ const data = await response.json();
168
+ return { text: parseLlmResponse(cfg.provider, data), truncated: wasTruncated(cfg.provider, data) };
118
169
  }
119
170
  catch (err) {
171
+ // Also catches an abort during the body read, which is the case this fix is about.
120
172
  if (err.name === "AbortError")
121
173
  throw new Error(`${cfg.provider} API request timed out`);
122
174
  throw err;
@@ -124,12 +176,6 @@ export async function callLlmDetailed(cfg, apiKey, prompt, opts = {}) {
124
176
  finally {
125
177
  clearTimeout(timer);
126
178
  }
127
- if (!response.ok) {
128
- const body = await response.text();
129
- throw new Error(`${cfg.provider} API error (${cfg.model}) ${response.status}: ${body.slice(0, 200)}`);
130
- }
131
- const data = await response.json();
132
- return { text: parseLlmResponse(cfg.provider, data), truncated: wasTruncated(cfg.provider, data) };
133
179
  }
134
180
  /** Did the model stop because it hit max_tokens (rather than finishing its thought)? — pure. */
135
181
  export function wasTruncated(provider, data) {
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../../src/daemon/llm-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../../src/daemon/llm-provider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,18 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import { getWolfDir, ensureWolfDir, readJSON, writeJSON, appendMarkdown, timeShort, getRetention, compactMemoryIfLarge, countSemanticEntries, withLock, readStdin, readTranscriptUsage, detectAgent } from "./shared.js";
4
+ const NOTHING_BOOKED = {
5
+ reads: 0, writes: 0, tokens: 0, anatomy_hits: 0, anatomy_misses: 0, repeated_reads_blocked: 0,
6
+ savings: 0, real_input: 0, real_output: 0, real_cache_read: 0, real_cache_creation: 0, real_api_calls: 0,
7
+ };
8
+ /**
9
+ * Only what is new since the last stop goes into lifetime.
10
+ *
11
+ * Clamped at zero: if the cumulative value ever goes DOWN (session file reset while `booked`
12
+ * survived, retention trimming a counter), the honest answer is "nothing new", never a negative
13
+ * correction — that would silently eat other sessions' numbers.
14
+ */
15
+ const delta = (current, booked) => Math.max(0, current - booked);
4
16
  async function main() {
5
17
  ensureWolfDir();
6
18
  const wolfDir = getWolfDir();
@@ -126,34 +138,63 @@ async function main() {
126
138
  if (Array.isArray(sessionEntry.writes) && sessionEntry.writes.length > ret.session_io_max) {
127
139
  sessionEntry.writes = sessionEntry.writes.slice(-ret.session_io_max);
128
140
  }
129
- ledger.sessions.push(sessionEntry);
141
+ // One entry per session, not per turn: the entry carries the session's cumulative state, so a
142
+ // later stop REPLACES the earlier one instead of appending a near-duplicate under the same id.
143
+ const existing = ledger.sessions.findIndex((s) => s.id === sessionEntry.id);
144
+ if (existing === -1)
145
+ ledger.sessions.push(sessionEntry);
146
+ else
147
+ ledger.sessions[existing] = sessionEntry;
130
148
  if (ledger.sessions.length > ret.token_ledger_max_sessions) {
131
149
  ledger.sessions = ledger.sessions.slice(-ret.token_ledger_max_sessions);
132
150
  }
133
- ledger.lifetime.total_reads += readCount;
151
+ // Everything below books DELTAS. The values on `session` are cumulative for the whole session and
152
+ // this hook runs every turn — see the `booked` doc comment. [bug-210]
153
+ const booked = { ...NOTHING_BOOKED, ...(session.booked ?? {}) };
154
+ const totalWritesNow = writeCount + unnamedWrites;
155
+ const tokensNow = inputTokens + outputTokens;
156
+ // Estimate savings: anatomy hits save ~200 tokens each, repeated reads blocked save their token count
157
+ const savedFromAnatomy = session.anatomy_hits * 200;
158
+ const savedFromRepeats = Object.values(session.files_read)
159
+ .filter((r) => r.count > 1)
160
+ .reduce((sum, r) => sum + r.tokens * (r.count - 1), 0);
161
+ const savingsNow = savedFromAnatomy + savedFromRepeats;
162
+ ledger.lifetime.total_reads += delta(readCount, booked.reads);
134
163
  // Unnamed writes (shell / other working dirs) count toward the lifetime total — they were real
135
164
  // work. They stay OUT of the session's named writes[] list (no path was recorded, by design).
136
- ledger.lifetime.total_writes += writeCount + unnamedWrites;
137
- ledger.lifetime.total_tokens_estimated += inputTokens + outputTokens;
138
- ledger.lifetime.anatomy_hits += session.anatomy_hits;
139
- ledger.lifetime.anatomy_misses += session.anatomy_misses;
140
- ledger.lifetime.repeated_reads_blocked += session.repeated_reads_warned;
165
+ ledger.lifetime.total_writes += delta(totalWritesNow, booked.writes);
166
+ ledger.lifetime.total_tokens_estimated += delta(tokensNow, booked.tokens);
167
+ ledger.lifetime.anatomy_hits += delta(session.anatomy_hits, booked.anatomy_hits);
168
+ ledger.lifetime.anatomy_misses += delta(session.anatomy_misses, booked.anatomy_misses);
169
+ ledger.lifetime.repeated_reads_blocked += delta(session.repeated_reads_warned, booked.repeated_reads_blocked);
170
+ ledger.lifetime.estimated_savings_vs_bare_cli += delta(savingsNow, booked.savings);
141
171
  // Accumulate measured usage alongside the estimates, so the ledger carries both a heuristic and
142
- // a verifiable ground truth (F1).
172
+ // a verifiable ground truth (F1). readTranscriptUsage reads the WHOLE transcript, so these are
173
+ // cumulative per session too and need the same delta treatment.
143
174
  if (realUsage) {
144
175
  const lt = ledger.lifetime;
145
- lt.real_input_tokens = (lt.real_input_tokens ?? 0) + realUsage.input_tokens;
146
- lt.real_output_tokens = (lt.real_output_tokens ?? 0) + realUsage.output_tokens;
147
- lt.real_cache_read_tokens = (lt.real_cache_read_tokens ?? 0) + realUsage.cache_read_input_tokens;
148
- lt.real_cache_creation_tokens = (lt.real_cache_creation_tokens ?? 0) + realUsage.cache_creation_input_tokens;
149
- lt.real_api_calls = (lt.real_api_calls ?? 0) + realUsage.api_calls;
176
+ lt.real_input_tokens = (lt.real_input_tokens ?? 0) + delta(realUsage.input_tokens, booked.real_input);
177
+ lt.real_output_tokens = (lt.real_output_tokens ?? 0) + delta(realUsage.output_tokens, booked.real_output);
178
+ lt.real_cache_read_tokens = (lt.real_cache_read_tokens ?? 0) + delta(realUsage.cache_read_input_tokens, booked.real_cache_read);
179
+ lt.real_cache_creation_tokens = (lt.real_cache_creation_tokens ?? 0) + delta(realUsage.cache_creation_input_tokens, booked.real_cache_creation);
180
+ lt.real_api_calls = (lt.real_api_calls ?? 0) + delta(realUsage.api_calls, booked.real_api_calls);
150
181
  }
151
- // Estimate savings: anatomy hits save ~200 tokens each, repeated reads blocked save their token count
152
- const savedFromAnatomy = session.anatomy_hits * 200;
153
- const savedFromRepeats = Object.values(session.files_read)
154
- .filter((r) => r.count > 1)
155
- .reduce((sum, r) => sum + r.tokens * (r.count - 1), 0);
156
- ledger.lifetime.estimated_savings_vs_bare_cli += savedFromAnatomy + savedFromRepeats;
182
+ // Mark what is now booked. Set inside the lock, right after the numbers went in, so a crash
183
+ // between the two writes cannot leave the ledger credited and the session unmarked.
184
+ session.booked = {
185
+ reads: Math.max(readCount, booked.reads),
186
+ writes: Math.max(totalWritesNow, booked.writes),
187
+ tokens: Math.max(tokensNow, booked.tokens),
188
+ anatomy_hits: Math.max(session.anatomy_hits, booked.anatomy_hits),
189
+ anatomy_misses: Math.max(session.anatomy_misses, booked.anatomy_misses),
190
+ repeated_reads_blocked: Math.max(session.repeated_reads_warned, booked.repeated_reads_blocked),
191
+ savings: Math.max(savingsNow, booked.savings),
192
+ real_input: Math.max(realUsage?.input_tokens ?? 0, booked.real_input),
193
+ real_output: Math.max(realUsage?.output_tokens ?? 0, booked.real_output),
194
+ real_cache_read: Math.max(realUsage?.cache_read_input_tokens ?? 0, booked.real_cache_read),
195
+ real_cache_creation: Math.max(realUsage?.cache_creation_input_tokens ?? 0, booked.real_cache_creation),
196
+ real_api_calls: Math.max(realUsage?.api_calls ?? 0, booked.real_api_calls),
197
+ };
157
198
  writeJSON(ledgerPath, ledger);
158
199
  });
159
200
  // Write a session summary line to memory.md if there was meaningful activity
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/hooks/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/hooks/stop.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openwolf-enhanced",
3
- "version": "1.20.7",
3
+ "version": "1.20.8",
4
4
  "description": "A second brain for Claude Code, Codex & Gemini — persistent git-native project memory with searchable citations, an MCP server for Claude Desktop, and invisible hook-based context. No database.",
5
5
  "type": "module",
6
6
  "bin": {