diffstalker 0.2.4 → 0.2.6

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.
@@ -1,4 +1,7 @@
1
+ import { createRequire } from 'node:module';
1
2
  import blessed from 'neo-blessed';
3
+ const require = createRequire(import.meta.url);
4
+ const { version } = require('../../../package.json');
2
5
  const hotkeyGroups = [
3
6
  {
4
7
  title: 'Navigation',
@@ -209,7 +212,11 @@ export class HotkeysModal {
209
212
  }
210
213
  // Footer
211
214
  lines.push('');
212
- lines.push('{gray-fg}Press Esc, Enter, ?, or click to close{/gray-fg}');
215
+ const closeHint = 'Press Esc, Enter, ?, or click to close';
216
+ const versionLabel = `v${version}`;
217
+ const innerWidth = width - 4; // account for border + padding
218
+ const gap = Math.max(1, innerWidth - closeHint.length - versionLabel.length);
219
+ lines.push(`{gray-fg}${closeHint}${' '.repeat(gap)}${versionLabel}{/gray-fg}`);
213
220
  this.box.setContent(lines.join('\n'));
214
221
  this.screen.render();
215
222
  }
@@ -0,0 +1,236 @@
1
+ {
2
+ "timestamp": "2026-03-06T05:33:09.063Z",
3
+ "gitRef": "v0.2.5",
4
+ "gitSha": "d019555",
5
+ "summary": {
6
+ "files": 91,
7
+ "lines": 16350,
8
+ "functions": 1163,
9
+ "avgCyclomaticComplexity": 4.9,
10
+ "maxCyclomaticComplexity": {
11
+ "value": 34,
12
+ "function": "reconcileSelectionAfterStateChange",
13
+ "file": "src/App.ts:538"
14
+ },
15
+ "avgCognitiveComplexity": 6.1,
16
+ "maxCognitiveComplexity": {
17
+ "value": 41,
18
+ "function": "(anonymous)",
19
+ "file": "src/git/diff.ts:517"
20
+ },
21
+ "smells": 0
22
+ },
23
+ "hotspots": [
24
+ {
25
+ "file": "src/App.ts",
26
+ "lines": 1004,
27
+ "cyclomaticMax": 34,
28
+ "cognitiveMax": 19,
29
+ "smells": 0
30
+ },
31
+ {
32
+ "file": "src/utils/flatFileList.ts",
33
+ "lines": 100,
34
+ "cyclomaticMax": 29,
35
+ "cognitiveMax": 14,
36
+ "smells": 0
37
+ },
38
+ {
39
+ "file": "src/git/diff.ts",
40
+ "lines": 656,
41
+ "cyclomaticMax": 26,
42
+ "cognitiveMax": 41,
43
+ "smells": 0
44
+ },
45
+ {
46
+ "file": "src/utils/displayRows.ts",
47
+ "lines": 614,
48
+ "cyclomaticMax": 25,
49
+ "cognitiveMax": 39,
50
+ "smells": 0
51
+ },
52
+ {
53
+ "file": "src/git/status.ts",
54
+ "lines": 392,
55
+ "cyclomaticMax": 22,
56
+ "cognitiveMax": 25,
57
+ "smells": 0
58
+ },
59
+ {
60
+ "file": "src/ui/PaneRenderers.ts",
61
+ "lines": 240,
62
+ "cyclomaticMax": 20,
63
+ "cognitiveMax": 8,
64
+ "smells": 0
65
+ },
66
+ {
67
+ "file": "src/ui/widgets/ExplorerContent.ts",
68
+ "lines": 126,
69
+ "cyclomaticMax": 20,
70
+ "cognitiveMax": 24,
71
+ "smells": 0
72
+ },
73
+ {
74
+ "file": "src/NavigationController.ts",
75
+ "lines": 352,
76
+ "cyclomaticMax": 19,
77
+ "cognitiveMax": 13,
78
+ "smells": 0
79
+ },
80
+ {
81
+ "file": "src/config.ts",
82
+ "lines": 168,
83
+ "cyclomaticMax": 18,
84
+ "cognitiveMax": 25,
85
+ "smells": 0
86
+ },
87
+ {
88
+ "file": "src/ui/widgets/CommitPanel.ts",
89
+ "lines": 133,
90
+ "cyclomaticMax": 18,
91
+ "cognitiveMax": 16,
92
+ "smells": 0
93
+ },
94
+ {
95
+ "file": "src/ui/widgets/Header.ts",
96
+ "lines": 134,
97
+ "cyclomaticMax": 18,
98
+ "cognitiveMax": 22,
99
+ "smells": 0
100
+ },
101
+ {
102
+ "file": "src/MouseHandlers.ts",
103
+ "lines": 276,
104
+ "cyclomaticMax": 17,
105
+ "cognitiveMax": 15,
106
+ "smells": 0
107
+ },
108
+ {
109
+ "file": "src/ipc/CommandServer.ts",
110
+ "lines": 266,
111
+ "cyclomaticMax": 17,
112
+ "cognitiveMax": 6,
113
+ "smells": 0
114
+ },
115
+ {
116
+ "file": "src/index.ts",
117
+ "lines": 180,
118
+ "cyclomaticMax": 16,
119
+ "cognitiveMax": 17,
120
+ "smells": 0
121
+ },
122
+ {
123
+ "file": "src/ui/widgets/ExplorerView.ts",
124
+ "lines": 245,
125
+ "cyclomaticMax": 16,
126
+ "cognitiveMax": 21,
127
+ "smells": 0
128
+ },
129
+ {
130
+ "file": "src/utils/ansiTruncate.ts",
131
+ "lines": 118,
132
+ "cyclomaticMax": 16,
133
+ "cognitiveMax": 24,
134
+ "smells": 0
135
+ },
136
+ {
137
+ "file": "src/ui/widgets/DiffView.ts",
138
+ "lines": 493,
139
+ "cyclomaticMax": 15,
140
+ "cognitiveMax": 12,
141
+ "smells": 0
142
+ },
143
+ {
144
+ "file": "src/ui/widgets/CompareListView.ts",
145
+ "lines": 383,
146
+ "cyclomaticMax": 14,
147
+ "cognitiveMax": 16,
148
+ "smells": 0
149
+ },
150
+ {
151
+ "file": "src/core/ExplorerStateManager.ts",
152
+ "lines": 735,
153
+ "cyclomaticMax": 13,
154
+ "cognitiveMax": 17,
155
+ "smells": 0
156
+ },
157
+ {
158
+ "file": "src/utils/diffRowCalculations.ts",
159
+ "lines": 136,
160
+ "cyclomaticMax": 13,
161
+ "cognitiveMax": 24,
162
+ "smells": 0
163
+ },
164
+ {
165
+ "file": "src/StagingOperations.ts",
166
+ "lines": 224,
167
+ "cyclomaticMax": 12,
168
+ "cognitiveMax": 10,
169
+ "smells": 0
170
+ },
171
+ {
172
+ "file": "src/ui/widgets/FileList.ts",
173
+ "lines": 209,
174
+ "cyclomaticMax": 12,
175
+ "cognitiveMax": 12,
176
+ "smells": 0
177
+ },
178
+ {
179
+ "file": "src/utils/lineBreaking.ts",
180
+ "lines": 114,
181
+ "cyclomaticMax": 12,
182
+ "cognitiveMax": 17,
183
+ "smells": 0
184
+ },
185
+ {
186
+ "file": "src/core/WorkingTreeManager.ts",
187
+ "lines": 515,
188
+ "cyclomaticMax": 10,
189
+ "cognitiveMax": 13,
190
+ "smells": 0
191
+ },
192
+ {
193
+ "file": "src/ui/widgets/HistoryView.ts",
194
+ "lines": 97,
195
+ "cyclomaticMax": 9,
196
+ "cognitiveMax": 12,
197
+ "smells": 0
198
+ },
199
+ {
200
+ "file": "src/utils/formatPath.ts",
201
+ "lines": 72,
202
+ "cyclomaticMax": 9,
203
+ "cognitiveMax": 11,
204
+ "smells": 0
205
+ },
206
+ {
207
+ "file": "src/utils/explorerDisplayRows.ts",
208
+ "lines": 206,
209
+ "cyclomaticMax": 8,
210
+ "cognitiveMax": 15,
211
+ "smells": 0
212
+ },
213
+ {
214
+ "file": "src/ui/modals/FileFinder.ts",
215
+ "lines": 236,
216
+ "cyclomaticMax": 7,
217
+ "cognitiveMax": 13,
218
+ "smells": 0
219
+ },
220
+ {
221
+ "file": "src/ui/modals/BaseBranchPicker.ts",
222
+ "lines": 132,
223
+ "cyclomaticMax": 6,
224
+ "cognitiveMax": 13,
225
+ "smells": 0
226
+ },
227
+ {
228
+ "file": "src/ui/modals/RepoPicker.ts",
229
+ "lines": 134,
230
+ "cyclomaticMax": 6,
231
+ "cognitiveMax": 13,
232
+ "smells": 0
233
+ }
234
+ ],
235
+ "smellsByRule": {}
236
+ }
@@ -0,0 +1,236 @@
1
+ {
2
+ "timestamp": "2026-03-08T12:32:06.363Z",
3
+ "gitRef": "v0.2.6",
4
+ "gitSha": "d9d0c3d",
5
+ "summary": {
6
+ "files": 91,
7
+ "lines": 16357,
8
+ "functions": 1163,
9
+ "avgCyclomaticComplexity": 4.9,
10
+ "maxCyclomaticComplexity": {
11
+ "value": 34,
12
+ "function": "reconcileSelectionAfterStateChange",
13
+ "file": "src/App.ts:538"
14
+ },
15
+ "avgCognitiveComplexity": 6.1,
16
+ "maxCognitiveComplexity": {
17
+ "value": 41,
18
+ "function": "(anonymous)",
19
+ "file": "src/git/diff.ts:517"
20
+ },
21
+ "smells": 0
22
+ },
23
+ "hotspots": [
24
+ {
25
+ "file": "src/App.ts",
26
+ "lines": 1004,
27
+ "cyclomaticMax": 34,
28
+ "cognitiveMax": 19,
29
+ "smells": 0
30
+ },
31
+ {
32
+ "file": "src/utils/flatFileList.ts",
33
+ "lines": 100,
34
+ "cyclomaticMax": 29,
35
+ "cognitiveMax": 14,
36
+ "smells": 0
37
+ },
38
+ {
39
+ "file": "src/git/diff.ts",
40
+ "lines": 656,
41
+ "cyclomaticMax": 26,
42
+ "cognitiveMax": 41,
43
+ "smells": 0
44
+ },
45
+ {
46
+ "file": "src/utils/displayRows.ts",
47
+ "lines": 614,
48
+ "cyclomaticMax": 25,
49
+ "cognitiveMax": 39,
50
+ "smells": 0
51
+ },
52
+ {
53
+ "file": "src/git/status.ts",
54
+ "lines": 392,
55
+ "cyclomaticMax": 22,
56
+ "cognitiveMax": 25,
57
+ "smells": 0
58
+ },
59
+ {
60
+ "file": "src/ui/PaneRenderers.ts",
61
+ "lines": 240,
62
+ "cyclomaticMax": 20,
63
+ "cognitiveMax": 8,
64
+ "smells": 0
65
+ },
66
+ {
67
+ "file": "src/ui/widgets/ExplorerContent.ts",
68
+ "lines": 126,
69
+ "cyclomaticMax": 20,
70
+ "cognitiveMax": 24,
71
+ "smells": 0
72
+ },
73
+ {
74
+ "file": "src/NavigationController.ts",
75
+ "lines": 352,
76
+ "cyclomaticMax": 19,
77
+ "cognitiveMax": 13,
78
+ "smells": 0
79
+ },
80
+ {
81
+ "file": "src/config.ts",
82
+ "lines": 168,
83
+ "cyclomaticMax": 18,
84
+ "cognitiveMax": 25,
85
+ "smells": 0
86
+ },
87
+ {
88
+ "file": "src/ui/widgets/CommitPanel.ts",
89
+ "lines": 133,
90
+ "cyclomaticMax": 18,
91
+ "cognitiveMax": 16,
92
+ "smells": 0
93
+ },
94
+ {
95
+ "file": "src/ui/widgets/Header.ts",
96
+ "lines": 134,
97
+ "cyclomaticMax": 18,
98
+ "cognitiveMax": 22,
99
+ "smells": 0
100
+ },
101
+ {
102
+ "file": "src/MouseHandlers.ts",
103
+ "lines": 276,
104
+ "cyclomaticMax": 17,
105
+ "cognitiveMax": 15,
106
+ "smells": 0
107
+ },
108
+ {
109
+ "file": "src/ipc/CommandServer.ts",
110
+ "lines": 266,
111
+ "cyclomaticMax": 17,
112
+ "cognitiveMax": 6,
113
+ "smells": 0
114
+ },
115
+ {
116
+ "file": "src/index.ts",
117
+ "lines": 180,
118
+ "cyclomaticMax": 16,
119
+ "cognitiveMax": 17,
120
+ "smells": 0
121
+ },
122
+ {
123
+ "file": "src/ui/widgets/ExplorerView.ts",
124
+ "lines": 245,
125
+ "cyclomaticMax": 16,
126
+ "cognitiveMax": 21,
127
+ "smells": 0
128
+ },
129
+ {
130
+ "file": "src/utils/ansiTruncate.ts",
131
+ "lines": 118,
132
+ "cyclomaticMax": 16,
133
+ "cognitiveMax": 24,
134
+ "smells": 0
135
+ },
136
+ {
137
+ "file": "src/ui/widgets/DiffView.ts",
138
+ "lines": 493,
139
+ "cyclomaticMax": 15,
140
+ "cognitiveMax": 12,
141
+ "smells": 0
142
+ },
143
+ {
144
+ "file": "src/core/ExplorerStateManager.ts",
145
+ "lines": 742,
146
+ "cyclomaticMax": 14,
147
+ "cognitiveMax": 18,
148
+ "smells": 0
149
+ },
150
+ {
151
+ "file": "src/ui/widgets/CompareListView.ts",
152
+ "lines": 383,
153
+ "cyclomaticMax": 14,
154
+ "cognitiveMax": 16,
155
+ "smells": 0
156
+ },
157
+ {
158
+ "file": "src/utils/diffRowCalculations.ts",
159
+ "lines": 136,
160
+ "cyclomaticMax": 13,
161
+ "cognitiveMax": 24,
162
+ "smells": 0
163
+ },
164
+ {
165
+ "file": "src/StagingOperations.ts",
166
+ "lines": 224,
167
+ "cyclomaticMax": 12,
168
+ "cognitiveMax": 10,
169
+ "smells": 0
170
+ },
171
+ {
172
+ "file": "src/ui/widgets/FileList.ts",
173
+ "lines": 209,
174
+ "cyclomaticMax": 12,
175
+ "cognitiveMax": 12,
176
+ "smells": 0
177
+ },
178
+ {
179
+ "file": "src/utils/lineBreaking.ts",
180
+ "lines": 114,
181
+ "cyclomaticMax": 12,
182
+ "cognitiveMax": 17,
183
+ "smells": 0
184
+ },
185
+ {
186
+ "file": "src/core/WorkingTreeManager.ts",
187
+ "lines": 515,
188
+ "cyclomaticMax": 10,
189
+ "cognitiveMax": 13,
190
+ "smells": 0
191
+ },
192
+ {
193
+ "file": "src/ui/widgets/HistoryView.ts",
194
+ "lines": 97,
195
+ "cyclomaticMax": 9,
196
+ "cognitiveMax": 12,
197
+ "smells": 0
198
+ },
199
+ {
200
+ "file": "src/utils/formatPath.ts",
201
+ "lines": 72,
202
+ "cyclomaticMax": 9,
203
+ "cognitiveMax": 11,
204
+ "smells": 0
205
+ },
206
+ {
207
+ "file": "src/utils/explorerDisplayRows.ts",
208
+ "lines": 206,
209
+ "cyclomaticMax": 8,
210
+ "cognitiveMax": 15,
211
+ "smells": 0
212
+ },
213
+ {
214
+ "file": "src/ui/modals/FileFinder.ts",
215
+ "lines": 236,
216
+ "cyclomaticMax": 7,
217
+ "cognitiveMax": 13,
218
+ "smells": 0
219
+ },
220
+ {
221
+ "file": "src/ui/modals/BaseBranchPicker.ts",
222
+ "lines": 132,
223
+ "cyclomaticMax": 6,
224
+ "cognitiveMax": 13,
225
+ "smells": 0
226
+ },
227
+ {
228
+ "file": "src/ui/modals/RepoPicker.ts",
229
+ "lines": 134,
230
+ "cyclomaticMax": 6,
231
+ "cognitiveMax": 13,
232
+ "smells": 0
233
+ }
234
+ ],
235
+ "smellsByRule": {}
236
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "diffstalker",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Terminal application that displays git diff/status for directories",
5
5
  "author": "yogh-io",
6
6
  "license": "MIT",