@alyibrahim/claude-statusline 1.4.5 → 1.4.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 CHANGED
@@ -1,6 +1,7 @@
1
1
  <div align="center">
2
2
 
3
- <img src=".github/assets/logo.svg" alt="claude-statusline" width="600">
3
+ <img src=".github/assets/logo-light.svg#gh-light-mode-only" alt="claude-statusline" width="600">
4
+ <img src=".github/assets/logo-dark.svg#gh-dark-mode-only" alt="claude-statusline" width="600">
4
5
 
5
6
  [![CI](https://github.com/AlyIbrahim1/claude-statusline/actions/workflows/ci.yml/badge.svg)](https://github.com/AlyIbrahim1/claude-statusline/actions/workflows/ci.yml)
6
7
  [![npm](https://img.shields.io/npm/v/@alyibrahim/claude-statusline)](https://www.npmjs.com/package/@alyibrahim/claude-statusline)
@@ -60,11 +61,9 @@ Done. The statusline configures itself automatically. Restart Claude Code to see
60
61
 
61
62
  ## Session History
62
63
 
63
- </div>
64
-
65
64
  Track token usage, cost, and duration across every Claude Code session with a built-in analytics dashboard.
66
65
 
67
- ![history dashboard](https://raw.githubusercontent.com/AlyIbrahim1/claude-statusline/main/.github/assets/history-dashboard.png)
66
+ ![history dashboard](assets/dashboard-preview.png)
68
67
 
69
68
  Session history is **enabled by default** on setup. Each session records:
70
69
 
@@ -77,6 +76,8 @@ Session history is **enabled by default** on setup. Each session records:
77
76
  | Duration | Session length in seconds |
78
77
  | Exit reason | How the session ended |
79
78
 
79
+ </div>
80
+
80
81
  **Commands:**
81
82
 
82
83
  ```bash
package/bin/cli.js CHANGED
@@ -13,7 +13,7 @@ claude-statusline <command>
13
13
  Commands:
14
14
  setup Configure ~/.claude/settings.json to use this statusline
15
15
  uninstall Remove this statusline from ~/.claude/settings.json
16
- enable-history Enable tracking session analytics to SQLite (default on setup)
16
+ enable-history Enable tracking session analytics to JSONL (default on setup)
17
17
  disable-history Remove history tracking hooks from Claude settings
18
18
  history Open the session analytics dashboard
19
19
  `.trim();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alyibrahim/claude-statusline",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
4
4
  "description": "Rich statusline for Claude Code — model, context bar, real-time token tracking, git branch, rate limits, and session stats. Rust binary, ~5ms startup.",
5
5
  "keywords": [
6
6
  "claude",
@@ -56,11 +56,11 @@
56
56
  "open": "^10.1.0"
57
57
  },
58
58
  "optionalDependencies": {
59
- "@alyibrahim/claude-statusline-linux-x64": "1.4.0",
60
- "@alyibrahim/claude-statusline-linux-arm64": "1.4.0",
61
- "@alyibrahim/claude-statusline-darwin-x64": "1.4.0",
62
- "@alyibrahim/claude-statusline-darwin-arm64": "1.4.0",
63
- "@alyibrahim/claude-statusline-win32-x64": "1.4.0"
59
+ "@alyibrahim/claude-statusline-linux-x64": "1.4.7",
60
+ "@alyibrahim/claude-statusline-linux-arm64": "1.4.7",
61
+ "@alyibrahim/claude-statusline-darwin-x64": "1.4.7",
62
+ "@alyibrahim/claude-statusline-darwin-arm64": "1.4.7",
63
+ "@alyibrahim/claude-statusline-win32-x64": "1.4.7"
64
64
  },
65
65
  "devDependencies": {
66
66
  "jest": "^29.0.0"
@@ -158,7 +158,7 @@ async function handleHistory() {
158
158
  // Inject CSS, JS, and data into the template using the sentinel strings
159
159
  const html = template
160
160
  .replace('/*INJECT_CSS*/', css)
161
- .replace('/*INJECT_DATA*/', sessionsJson)
161
+ .replace('/*INJECT_DATA*/null', sessionsJson)
162
162
  .replace('/*INJECT_JS*/', js);
163
163
 
164
164
  const tempPath = path.join(os.tmpdir(), 'claude-statusline-dashboard.html');
package/scripts/setup.js CHANGED
@@ -62,9 +62,9 @@ function updateHooks(settings, command, enable) {
62
62
  // Remove any existing statusline hook entries (both old and new format)
63
63
  settings.hooks[hookName] = settings.hooks[hookName].filter(h => {
64
64
  if (h.hooks) {
65
- return !h.hooks.some(inner => inner.command && (inner.command.includes('hook start') || inner.command.includes('hook end')));
65
+ return !h.hooks.some(inner => inner.command && (inner.command.endsWith(' hook start') || inner.command.endsWith(' hook end')));
66
66
  }
67
- return !(h.command && (h.command.includes('hook start') || h.command.includes('hook end')));
67
+ return !(h.command && (h.command.endsWith(' hook start') || h.command.endsWith(' hook end')));
68
68
  });
69
69
  if (enable) {
70
70
  settings.hooks[hookName].push({ matcher: '', hooks: [{ type: 'command', command: cmdString }] });