openwolf-enhanced 1.26.0 → 1.27.0

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 (73) hide show
  1. package/CHANGELOG.md +175 -0
  2. package/dist/dashboard/assets/{AISuggestions-DZmzksSA.js → AISuggestions-DBUq3WQW.js} +1 -1
  3. package/dist/dashboard/assets/{ActivityLog-BJ0omuzu.js → ActivityLog-DzvER0xw.js} +1 -1
  4. package/dist/dashboard/assets/{ActivityTimeline-BWhxretI.js → ActivityTimeline-DVx1o9Of.js} +1 -1
  5. package/dist/dashboard/assets/{AnatomyBrowser-DNVp6-_r.js → AnatomyBrowser-CQGTp2MR.js} +1 -1
  6. package/dist/dashboard/assets/{BugLog-DMJTuU9p.js → BugLog-Ka23MuzX.js} +1 -1
  7. package/dist/dashboard/assets/{CerebrumViewer-BwcGr6pu.js → CerebrumViewer-2SO_QPQn.js} +1 -1
  8. package/dist/dashboard/assets/{CronStatus-Dwf_M4-S.js → CronStatus-BSJ7o-Xc.js} +1 -1
  9. package/dist/dashboard/assets/{DesignQC-DzHkh94I.js → DesignQC-D7Btjv4l.js} +1 -1
  10. package/dist/dashboard/assets/{LinkGraph-kqQD--Yj.js → LinkGraph-Cj0m-9HI.js} +1 -1
  11. package/dist/dashboard/assets/{MemoryViewer-BCn9Fr-w.js → MemoryViewer-DQ_OGTaW.js} +1 -1
  12. package/dist/dashboard/assets/{NativeMemory-DPMZaP5E.js → NativeMemory-BLa2fOaz.js} +1 -1
  13. package/dist/dashboard/assets/{ProjectOverview-PWENJiC4.js → ProjectOverview-DK4qaJsJ.js} +1 -1
  14. package/dist/dashboard/assets/{ProjectsAggregate-Baj44DVk.js → ProjectsAggregate-DW8TBuH2.js} +1 -1
  15. package/dist/dashboard/assets/{StatusBadge-Db61D51H.js → StatusBadge-Bclc5R-9.js} +1 -1
  16. package/dist/dashboard/assets/{TokenUsage-UefDh9w4.js → TokenUsage-BwhsNFH4.js} +1 -1
  17. package/dist/dashboard/assets/index-BNi8lsJE.css +2 -0
  18. package/dist/dashboard/assets/{index-e2PfOI0b.js → index-DsimHkSD.js} +5 -5
  19. package/dist/dashboard/index.html +2 -2
  20. package/dist/hooks/post-bash.js +6 -1
  21. package/dist/hooks/post-read.js +20 -20
  22. package/dist/hooks/post-write.js +22 -18
  23. package/dist/hooks/pre-read.js +39 -30
  24. package/dist/hooks/session-start.js +5 -3
  25. package/dist/hooks/shared.js +83 -2
  26. package/dist/hooks/stop.js +25 -5
  27. package/dist/src/cli/daemon-cmd.js +9 -7
  28. package/dist/src/cli/daemon-cmd.js.map +1 -1
  29. package/dist/src/cli/doctor-cmd.js +2 -1
  30. package/dist/src/cli/doctor-cmd.js.map +1 -1
  31. package/dist/src/cli/export-cmd.js +8 -0
  32. package/dist/src/cli/export-cmd.js.map +1 -1
  33. package/dist/src/cli/init.js +25 -6
  34. package/dist/src/cli/init.js.map +1 -1
  35. package/dist/src/cli/update.js +10 -2
  36. package/dist/src/cli/update.js.map +1 -1
  37. package/dist/src/daemon/cron-engine.js +47 -3
  38. package/dist/src/daemon/cron-engine.js.map +1 -1
  39. package/dist/src/daemon/llm-provider.js +9 -6
  40. package/dist/src/daemon/llm-provider.js.map +1 -1
  41. package/dist/src/daemon/wolf-daemon.js +52 -12
  42. package/dist/src/daemon/wolf-daemon.js.map +1 -1
  43. package/dist/src/designqc/designqc-capture.js +116 -6
  44. package/dist/src/designqc/designqc-capture.js.map +1 -1
  45. package/dist/src/designqc/designqc-engine.js +9 -3
  46. package/dist/src/designqc/designqc-engine.js.map +1 -1
  47. package/dist/src/hooks/post-bash.js +6 -1
  48. package/dist/src/hooks/post-bash.js.map +1 -1
  49. package/dist/src/hooks/post-read.js +20 -20
  50. package/dist/src/hooks/post-read.js.map +1 -1
  51. package/dist/src/hooks/post-write.js +22 -18
  52. package/dist/src/hooks/post-write.js.map +1 -1
  53. package/dist/src/hooks/pre-read.js +39 -30
  54. package/dist/src/hooks/pre-read.js.map +1 -1
  55. package/dist/src/hooks/session-start.js +5 -3
  56. package/dist/src/hooks/session-start.js.map +1 -1
  57. package/dist/src/hooks/shared.js +83 -2
  58. package/dist/src/hooks/shared.js.map +1 -1
  59. package/dist/src/hooks/stop.js +25 -5
  60. package/dist/src/hooks/stop.js.map +1 -1
  61. package/dist/src/utils/embeddings.js +9 -1
  62. package/dist/src/utils/embeddings.js.map +1 -1
  63. package/dist/src/utils/fs-safe.js +15 -1
  64. package/dist/src/utils/fs-safe.js.map +1 -1
  65. package/dist/src/utils/logger.js +21 -6
  66. package/dist/src/utils/logger.js.map +1 -1
  67. package/dist/src/utils/maintenance.js +44 -1
  68. package/dist/src/utils/maintenance.js.map +1 -1
  69. package/dist/src/utils/platform.js +39 -0
  70. package/dist/src/utils/platform.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/templates/config.json +2 -1
  73. package/dist/dashboard/assets/index-CVfvTpSA.css +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"post-read.js","sourceRoot":"","sources":["../../../src/hooks/post-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-read.js","sourceRoot":"","sources":["../../../src/hooks/post-read.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import { getWolfDir, ensureWolfDir, readJSON, writeJSON, writeAtomic, parseAnatomy, serializeAnatomy, extractDescription, estimateFileTokens, getTokenRatios, appendMarkdown, timeShort, readStdin, normalizePath, getRetention, loadIgnore, readBugLog, isSecretFile } from "./shared.js";
3
+ import { getWolfDir, ensureWolfDir, writeJSON, writeAtomic, parseAnatomy, serializeAnatomy, extractDescription, estimateFileTokens, getTokenRatios, appendMarkdown, timeShort, readStdin, normalizePath, getRetention, loadIgnore, readBugLog, isSecretFile, updateSession, isOutsideProject } from "./shared.js";
4
4
  async function main() {
5
5
  ensureWolfDir();
6
6
  const wolfDir = getWolfDir();
@@ -37,10 +37,10 @@ async function main() {
37
37
  // nothing happened, and the STATUS.md reminder never fires. That is exactly how a handoff doc goes
38
38
  // stale for eleven slices without anyone noticing. The counter is a number only: no path, no name,
39
39
  // so #56 still holds.
40
- if (relPath === "" || relPath.startsWith("..")) {
41
- const session = readJSON(sessionFile, { files_written: [], edit_counts: {} });
42
- session.external_writes = (session.external_writes ?? 0) + 1;
43
- writeJSON(sessionFile, session);
40
+ if (isOutsideProject(relPath)) {
41
+ updateSession(sessionFile, { files_written: [], edit_counts: {} }, (session) => {
42
+ session.external_writes = (session.external_writes ?? 0) + 1;
43
+ });
44
44
  process.exit(0);
45
45
  return;
46
46
  }
@@ -133,24 +133,28 @@ async function main() {
133
133
  catch { }
134
134
  // 3. Record in session tracker + track edit counts
135
135
  try {
136
- const session = readJSON(sessionFile, { files_written: [], edit_counts: {} });
137
- if (!session.edit_counts)
138
- session.edit_counts = {};
139
136
  const normalizedFile = normalizePath(filePath);
140
137
  const action = toolName === "Write" ? "create" : "edit";
141
138
  const fileContent = input.tool_input?.content ?? "";
142
139
  const tokens = estimateFileTokens(fileContent || writtenText, absolutePath, getTokenRatios(wolfDir));
143
- session.files_written.push({
144
- file: normalizedFile,
145
- action,
146
- tokens,
147
- at: new Date().toISOString(),
148
- });
149
140
  const editKey = normalizePath(path.relative(projectRoot, absolutePath));
150
- session.edit_counts[editKey] = (session.edit_counts[editKey] || 0) + 1;
151
- writeJSON(sessionFile, session);
152
- if (session.edit_counts[editKey] >= 3) {
153
- process.stderr.write(`⚠️ OpenWolf: ${baseName} has been edited ${session.edit_counts[editKey]} times this session. If you're fixing a bug, remember to log it to .wolf/buglog.json.\n`);
141
+ let edits = 0;
142
+ updateSession(sessionFile, { files_written: [], edit_counts: {} }, (session) => {
143
+ if (!session.files_written)
144
+ session.files_written = [];
145
+ if (!session.edit_counts)
146
+ session.edit_counts = {};
147
+ session.files_written.push({
148
+ file: normalizedFile,
149
+ action,
150
+ tokens,
151
+ at: new Date().toISOString(),
152
+ });
153
+ session.edit_counts[editKey] = (session.edit_counts[editKey] || 0) + 1;
154
+ edits = session.edit_counts[editKey];
155
+ });
156
+ if (edits >= 3) {
157
+ process.stderr.write(`⚠️ OpenWolf: ${baseName} has been edited ${edits} times this session. If you're fixing a bug, remember to log it to .wolf/buglog.json.\n`);
154
158
  }
155
159
  }
156
160
  catch { }
@@ -1 +1 @@
1
- {"version":3,"file":"post-write.js","sourceRoot":"","sources":["../../../src/hooks/post-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-write.js","sourceRoot":"","sources":["../../../src/hooks/post-write.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import { getWolfDir, ensureWolfDir, readJSON, writeJSON, readMarkdown, parseAnatomy, readStdin, normalizePath, loadIgnore, isSecretFile } from "./shared.js";
3
+ import { getWolfDir, ensureWolfDir, readJSON, updateSession, readMarkdown, parseAnatomy, readStdin, normalizePath, loadIgnore, isSecretFile, matchesAnatomyEntry } from "./shared.js";
4
+ const SESSION_FALLBACK = {
5
+ session_id: "", files_read: {}, anatomy_hits: 0, anatomy_misses: 0, repeated_reads_warned: 0,
6
+ };
4
7
  async function main() {
5
8
  ensureWolfDir();
6
9
  const wolfDir = getWolfDir();
@@ -56,27 +59,34 @@ async function main() {
56
59
  process.exit(0);
57
60
  return;
58
61
  }
59
- const session = readJSON(sessionFile, {
60
- session_id: "", files_read: {}, anatomy_hits: 0, anatomy_misses: 0,
61
- repeated_reads_warned: 0,
62
- });
62
+ // Snapshot read, used only to DECIDE what to print. Every mutation below re-reads under the lock
63
+ // and applies a delta, so a concurrent hook's update is never overwritten with this snapshot.
64
+ const session = readJSON(sessionFile, SESSION_FALLBACK);
63
65
  // Check if already read this session
64
66
  if (session.files_read[normalizedFile]) {
65
67
  const prev = session.files_read[normalizedFile];
66
68
  // If the file changed since we last read it (e.g. it was edited during the session),
67
69
  // a re-read is legitimate — refresh state and don't warn about a repeated read (upstream #41).
68
70
  if (fileMtime !== undefined && prev.mtime !== undefined && fileMtime !== prev.mtime) {
69
- prev.count++;
70
- prev.mtime = fileMtime;
71
- writeJSON(sessionFile, session);
71
+ updateSession(sessionFile, SESSION_FALLBACK, (s) => {
72
+ const e = s.files_read[normalizedFile];
73
+ if (e) {
74
+ e.count++;
75
+ e.mtime = fileMtime;
76
+ }
77
+ });
72
78
  process.exit(0);
73
79
  return;
74
80
  }
75
81
  process.stderr.write(`⚡ OpenWolf: ${path.basename(normalizedFile)} was already read this session (~${prev.tokens} tokens). Consider using your existing knowledge of this file.\n`);
76
- prev.count++;
77
- prev.mtime = fileMtime ?? prev.mtime;
78
- session.repeated_reads_warned++;
79
- writeJSON(sessionFile, session);
82
+ updateSession(sessionFile, SESSION_FALLBACK, (s) => {
83
+ const e = s.files_read[normalizedFile];
84
+ if (e) {
85
+ e.count++;
86
+ e.mtime = fileMtime ?? e.mtime;
87
+ }
88
+ s.repeated_reads_warned++;
89
+ });
80
90
  process.exit(0);
81
91
  return;
82
92
  }
@@ -90,7 +100,7 @@ async function main() {
90
100
  for (const entry of entries) {
91
101
  // Build the full relative path from the section key + filename for accurate matching
92
102
  const entryRelPath = normalizePath(path.join(sectionKey, entry.file));
93
- if (normalizedFile.endsWith(entryRelPath) || normalizedFile.endsWith("/" + entryRelPath)) {
103
+ if (matchesAnatomyEntry(normalizedFile, entryRelPath)) {
94
104
  process.stderr.write(`📋 OpenWolf anatomy: ${entry.file} — ${entry.description} (~${entry.tokens} tok)\n`);
95
105
  // If we indexed this big file's symbols, offer line ranges so the agent can read one
96
106
  // function with offset/limit instead of the whole file.
@@ -107,23 +117,22 @@ async function main() {
107
117
  if (found)
108
118
  break;
109
119
  }
110
- if (found) {
111
- session.anatomy_hits++;
112
- }
113
- else {
114
- session.anatomy_misses++;
115
- }
116
- // Record initial read entry (tokens will be updated in post-read)
117
- session.files_read[normalizedFile] = {
118
- count: 1,
119
- tokens: 0,
120
- first_read: new Date().toISOString(),
121
- // Whether anatomy.md already described this file. The ledger used to hardcode this as
122
- // false, which made the waste detector's "anatomy would have sufficed" pattern unreachable.
123
- anatomy_had_description: found,
124
- mtime: fileMtime,
125
- };
126
- writeJSON(sessionFile, session);
120
+ updateSession(sessionFile, SESSION_FALLBACK, (s) => {
121
+ if (found)
122
+ s.anatomy_hits++;
123
+ else
124
+ s.anatomy_misses++;
125
+ // Record initial read entry (tokens will be updated in post-read)
126
+ s.files_read[normalizedFile] = {
127
+ count: 1,
128
+ tokens: 0,
129
+ first_read: new Date().toISOString(),
130
+ // Whether anatomy.md already described this file. The ledger used to hardcode this as
131
+ // false, which made the waste detector's "anatomy would have sufficed" pattern unreachable.
132
+ anatomy_had_description: found,
133
+ mtime: fileMtime,
134
+ };
135
+ });
127
136
  process.exit(0);
128
137
  }
129
138
  main().catch(() => process.exit(0));
@@ -1 +1 @@
1
- {"version":3,"file":"pre-read.js","sourceRoot":"","sources":["../../../src/hooks/pre-read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pre-read.js","sourceRoot":"","sources":["../../../src/hooks/pre-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAC9D,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EACxF,MAAM,aAAa,CAAC;AAErB,MAAM,gBAAgB,GAAgB;IACpC,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC7F,CAAC;AAWF,KAAK,UAAU,IAAI;IACjB,aAAa,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEzD,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,IAAI,KAA6D,CAAC;IAClE,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC;IAC7E,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE/C,qFAAqF;IACrF,IAAI,SAA6B,CAAC;IAClC,IAAI,CAAC;QAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE/E,uFAAuF;IACvF,4FAA4F;IAC5F,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClF,yFAAyF;IACzF,+FAA+F;IAC/F,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC;QAC9D,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,EAAE,CAAC;IACP,6DAA6D;IAC7D,IAAI,CAAC,YAAY,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC/C,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,6FAA6F;IAC7F,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACtE,8FAA8F;IAC9F,0FAA0F;IAC1F,qDAAqD;IACrD,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAE9D,iGAAiG;IACjG,8FAA8F;IAC9F,MAAM,OAAO,GAAG,QAAQ,CAAc,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAErE,qCAAqC;IACrC,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChD,qFAAqF;QACrF,+FAA+F;QAC/F,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACpF,aAAa,CAAc,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC;oBAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC;gBAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,oCAAoC,IAAI,CAAC,MAAM,kEAAkE,CAC9J,CAAC;QACF,aAAa,CAAc,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;YAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC;gBAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC;YAAC,CAAC;YACrD,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,gGAAgG;IAChG,MAAM,WAAW,GAAG,QAAQ,CAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAAE,EAAE,CAC/C,CAAC,KAAK,IAAI,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,qFAAqF;YACrF,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,IAAI,mBAAmB,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wBAAwB,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,WAAW,MAAM,KAAK,CAAC,MAAM,SAAS,CACrF,CAAC;gBACF,qFAAqF;gBACrF,wDAAwD;gBACxD,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;gBACvC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjG,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iBAAiB,KAAK,GAAG,IAAI,gEAAgE,CAC9F,CAAC;gBACJ,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,KAAK;YAAE,MAAM;IACnB,CAAC;IAED,aAAa,CAAc,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;QAC9D,IAAI,KAAK;YAAE,CAAC,CAAC,YAAY,EAAE,CAAC;;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QAExB,kEAAkE;QAClE,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG;YAC7B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,sFAAsF;YACtF,4FAA4F;YAC5F,uBAAuB,EAAE,KAAK;YAC9B,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -35,8 +35,10 @@ async function main() {
35
35
  catch { }
36
36
  const continuing = (source === "compact" || source === "resume") && fs.existsSync(sessionFile);
37
37
  if (!continuing) {
38
- // Create fresh session state
39
- writeJSON(sessionFile, {
38
+ // Create fresh session state. Under the lock like every other writer of this file: the reset is
39
+ // a whole-file replacement, so an unlocked write here could land in the middle of another
40
+ // hook's read-modify-write and hand it a half-written file to parse.
41
+ withLock(sessionFile, () => writeJSON(sessionFile, {
40
42
  session_id: sessionId,
41
43
  started: timestamp(),
42
44
  files_read: {},
@@ -47,7 +49,7 @@ async function main() {
47
49
  repeated_reads_warned: 0,
48
50
  cerebrum_warnings: 0,
49
51
  stop_count: 0,
50
- });
52
+ }));
51
53
  // Append session header to memory.md
52
54
  const memoryPath = path.join(wolfDir, "memory.md");
53
55
  const header = `\n## Session: ${now.toISOString().slice(0, 10)} ${timeShort()}\n\n${SESSION_SUMMARY_SCAFFOLD}\n\n| Time | Action | File(s) | Outcome | ~Tokens |\n|------|--------|---------|---------|--------|\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/session-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/session-start.ts"],"names":[],"mappings":"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"}
@@ -126,6 +126,26 @@ export function withLock(targetPath, fn) {
126
126
  }
127
127
  }
128
128
  }
129
+ /**
130
+ * Read-modify-write `_session.json` under the lock, in one place.
131
+ *
132
+ * Every hook in a session mutates this one file, and until now only two of the seven writers took
133
+ * the lock at all: the rest did `readJSON` … `writeJSON` around unrelated work, so a PostToolUse
134
+ * hook finishing while PreToolUse was mid-cycle silently dropped one of the two updates. Reads and
135
+ * writes get counted for the token ledger, so a lost update is a wrong number in a report nobody
136
+ * can audit afterwards.
137
+ *
138
+ * The mutator receives the state as it is ON DISK at the moment the lock is held — not a snapshot
139
+ * taken earlier — and must apply a DELTA (increment, add a key), never assign a whole object it
140
+ * captured before. That is what makes the update safe against a concurrent writer.
141
+ */
142
+ export function updateSession(sessionFile, fallback, mutate) {
143
+ withLock(sessionFile, () => {
144
+ const session = readJSON(sessionFile, fallback);
145
+ mutate(session);
146
+ writeJSON(sessionFile, session);
147
+ });
148
+ }
129
149
  // A missing file is normal (first run) and silently yields the fallback. An EXISTING file that
130
150
  // fails to parse is a different situation: whatever it held is about to be treated as empty, and
131
151
  // a read-modify-write caller would then overwrite it with defaults. That must at least be visible.
@@ -201,10 +221,24 @@ export function readJSON(filePath, fallback) {
201
221
  return JSON.parse(raw);
202
222
  }
203
223
  catch (e) {
204
- process.stderr.write(`[openwolf] ${path.basename(filePath)} exists but is not valid JSON — using defaults (${e.message})\n`);
224
+ // The caller is about to treat this file as empty and, in a read-modify-write, overwrite it
225
+ // with defaults — so a corrupt token-ledger.json meant months of usage history vanished on the
226
+ // next Stop hook, with one line on stderr as the only trace. Move it aside first. Recovery is
227
+ // then a possibility rather than a hope, and because the path no longer exists, the next read
228
+ // takes the ordinary "missing file" branch instead of warning forever.
229
+ quarantineCorrupt(filePath);
230
+ process.stderr.write(`[openwolf] ${path.basename(filePath)} was not valid JSON — moved aside, using defaults (${e.message})\n`);
205
231
  return fallback;
206
232
  }
207
233
  }
234
+ /** Rename a corrupt file to <name>.corrupt-<stamp>. Best-effort: never throws, never blocks a read. */
235
+ function quarantineCorrupt(filePath) {
236
+ try {
237
+ const stamp = new Date().toISOString().replace(/[:.]/g, "-");
238
+ fs.renameSync(filePath, `${filePath}.corrupt-${stamp}`);
239
+ }
240
+ catch { /* unwritable directory, race with another process — defaults still apply */ }
241
+ }
208
242
  // Duplicated from utils/fs-safe.ts (separate build roots). Never throws — a hook must not kill a
209
243
  // session over a failed journal write — but a total failure is reported on stderr instead of
210
244
  // vanishing: a silently dropped write once hid a completely broken persistence path (bug-183).
@@ -298,12 +332,17 @@ export function makeIgnoreMatcher(patterns) {
298
332
  if (pat.startsWith("*.") && norm.endsWith(pat.slice(1)))
299
333
  return true;
300
334
  }
301
- if (pat.includes("*")) {
335
+ // `?` is a gitignore wildcard for exactly one character, and it also has to be handled BEFORE
336
+ // this becomes a regex — it used to be neither escaped nor translated, so it survived into the
337
+ // pattern as a regex quantifier and made the preceding character OPTIONAL. `build?/*.js` then
338
+ // matched `buil/x.js` and missed `build2/x.js`: the rule silently covered the wrong files.
339
+ if (pat.includes("*") || pat.includes("?")) {
302
340
  const re = new RegExp("^" +
303
341
  pat
304
342
  .replace(/[.+^${}()|[\]\\]/g, "\\$&")
305
343
  .replace(/\*\*/g, "\u0000")
306
344
  .replace(/\*/g, "[^/]*")
345
+ .replace(/\?/g, "[^/]")
307
346
  .replace(/\u0000/g, ".*") +
308
347
  "$");
309
348
  if (re.test(norm) || (!anchored && re.test(base)))
@@ -1054,6 +1093,48 @@ export function readStdin() {
1054
1093
  export function normalizePath(p) {
1055
1094
  return p.replace(/\\/g, "/");
1056
1095
  }
1096
+ /**
1097
+ * Does an absolute (forward-slashed) file path correspond to this anatomy.md entry?
1098
+ *
1099
+ * anatomy entries are project-relative ("src/api/client.ts"); the hooks see an absolute path. The
1100
+ * old test was `abs.endsWith(rel) || abs.endsWith("/" + rel)`, and the first half of that had no
1101
+ * path-segment boundary: `/home/me/vendor/src/api/client.ts` and `/tmp/other-src/api/client.ts`
1102
+ * both "matched" an entry for `src/api/client.ts`, so the hook printed another file's description
1103
+ * and token estimate and booked an anatomy HIT for a file anatomy.md had never seen. The second
1104
+ * half of the old expression was already correct, so this keeps that and drops the loose one — an
1105
+ * exact equality covers the case where the path is already relative.
1106
+ */
1107
+ export function matchesAnatomyEntry(filePath, entryRelPath) {
1108
+ return filePath === entryRelPath || filePath.endsWith("/" + entryRelPath);
1109
+ }
1110
+ /**
1111
+ * Does this project-relative path point OUTSIDE the project root?
1112
+ *
1113
+ * Input is the output of `normalizePath(path.relative(root, file))`. The obvious test —
1114
+ * "does it start with `..`" — is complete on POSIX and wrong on Windows, because `path.relative`
1115
+ * cannot express a route between two drives and gives up by returning the target ABSOLUTE:
1116
+ *
1117
+ * path.win32.relative("C:\\proj", "F:\\secrets\\x") === "F:\\secrets\\x"
1118
+ *
1119
+ * That has no leading `..`, so the guard passed it and the full foreign path was written into
1120
+ * anatomy.md and memory.md — precisely the leak (upstream #56) the guard exists to prevent, on the
1121
+ * one platform nobody tested it on. An absolute result means "no relative route exists", i.e. the
1122
+ * strongest possible outside-the-root signal.
1123
+ *
1124
+ * The `..` test is also anchored to a whole segment now: a file genuinely named `..config` in the
1125
+ * root is inside the project, and used to be counted as external.
1126
+ */
1127
+ export function isOutsideProject(relPath) {
1128
+ if (relPath === "")
1129
+ return true; // the path IS the root, not a file in it
1130
+ if (relPath === ".." || relPath.startsWith("../"))
1131
+ return true;
1132
+ if (path.isAbsolute(relPath))
1133
+ return true; // win32 cross-drive ("F:/secrets/x")
1134
+ if (/^[a-zA-Z]:/.test(relPath))
1135
+ return true; // drive-relative ("F:x"), also not ours
1136
+ return false;
1137
+ }
1057
1138
  // Count non-mechanical (semantic) entries written to memory.md today. Mechanical rows
1058
1139
  // (auto file-op / session-end lines) don't count. Used by the stop hook to detect whether
1059
1140
  // a meaningful session summary was written. (upstream #55)