claude-context-saver 1.2.2 → 1.2.3
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/conv-backup.mjs +1 -1
- package/package.json +1 -1
- package/statusline-monitor.mjs +15 -8
package/conv-backup.mjs
CHANGED
|
@@ -21,7 +21,7 @@ async function main() {
|
|
|
21
21
|
|
|
22
22
|
const sessionId = data.session_id || 'unknown';
|
|
23
23
|
const transcriptPath = data.transcript_path || '';
|
|
24
|
-
const projectDir = data.workspace?.project_dir || data.workspace?.cwd || process.cwd();
|
|
24
|
+
const projectDir = data.workspace?.project_dir || data.workspace?.current_dir || data.cwd || process.cwd();
|
|
25
25
|
|
|
26
26
|
// Determine trigger type
|
|
27
27
|
const trigger = data.trigger === 'manual'
|
package/package.json
CHANGED
package/statusline-monitor.mjs
CHANGED
|
@@ -30,10 +30,19 @@ async function main() {
|
|
|
30
30
|
|
|
31
31
|
const sessionId = data.session_id || 'unknown';
|
|
32
32
|
const transcriptPath = data.transcript_path || '';
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
const
|
|
33
|
+
|
|
34
|
+
// Context window — Claude Code sends total_input_tokens + total_output_tokens
|
|
35
|
+
const cw = data.context_window || {};
|
|
36
|
+
const inputTokens = cw.total_input_tokens ?? 0;
|
|
37
|
+
const outputTokens = cw.total_output_tokens ?? 0;
|
|
38
|
+
const tokensUsed = inputTokens + outputTokens;
|
|
39
|
+
const windowSize = cw.context_window_size ?? 200_000;
|
|
40
|
+
|
|
41
|
+
// Model — Claude Code sends model.id and model.display_name
|
|
42
|
+
const modelName = data.model?.display_name || data.model?.id || 'unknown';
|
|
43
|
+
|
|
44
|
+
// Workspace
|
|
45
|
+
const projectDir = data.workspace?.project_dir || data.workspace?.current_dir || data.cwd || process.cwd();
|
|
37
46
|
|
|
38
47
|
// Calculate free-until-compaction percentage
|
|
39
48
|
const freeTokens = windowSize - tokensUsed - AUTO_COMPACT_BUFFER;
|
|
@@ -42,7 +51,7 @@ async function main() {
|
|
|
42
51
|
// Format token counts for display
|
|
43
52
|
const usedK = Math.round(tokensUsed / 1000);
|
|
44
53
|
const windowK = Math.round(windowSize / 1000);
|
|
45
|
-
const usedPercent = Math.round((tokensUsed / windowSize) * 100);
|
|
54
|
+
const usedPercent = cw.used_percentage ?? Math.round((tokensUsed / windowSize) * 100);
|
|
46
55
|
const freeDisplay = Math.round(freePercent);
|
|
47
56
|
|
|
48
57
|
// Load/reset state for this session
|
|
@@ -62,9 +71,7 @@ async function main() {
|
|
|
62
71
|
// --- Token-based triggers ---
|
|
63
72
|
if (tokensUsed >= FIRST_TOKEN_THRESHOLD) {
|
|
64
73
|
// Calculate which threshold we should be at
|
|
65
|
-
const expectedThreshold = tokensUsed
|
|
66
|
-
? FIRST_TOKEN_THRESHOLD + Math.floor((tokensUsed - FIRST_TOKEN_THRESHOLD) / TOKEN_INCREMENT) * TOKEN_INCREMENT
|
|
67
|
-
: 0;
|
|
74
|
+
const expectedThreshold = FIRST_TOKEN_THRESHOLD + Math.floor((tokensUsed - FIRST_TOKEN_THRESHOLD) / TOKEN_INCREMENT) * TOKEN_INCREMENT;
|
|
68
75
|
|
|
69
76
|
if (expectedThreshold > (state.lastTokenThreshold || 0)) {
|
|
70
77
|
triggered = true;
|