specsmd 0.1.54 → 0.1.55
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/lib/dashboard/git/changes.js +2 -2
- package/lib/dashboard/tui/app.js +35 -25
- package/package.json +1 -1
|
@@ -273,7 +273,7 @@ function readUntrackedFileDiff(repoRoot, absolutePath) {
|
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
const result = runGit(
|
|
276
|
-
['-c', 'color.ui=
|
|
276
|
+
['-c', 'color.ui=false', '--no-pager', 'diff', '--no-index', '--', '/dev/null', absolutePath],
|
|
277
277
|
repoRoot,
|
|
278
278
|
{ acceptedStatuses: [0, 1] }
|
|
279
279
|
);
|
|
@@ -305,7 +305,7 @@ function loadGitDiffPreview(changeEntry) {
|
|
|
305
305
|
}
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
const args = ['-c', 'color.ui=
|
|
308
|
+
const args = ['-c', 'color.ui=false', '--no-pager', 'diff'];
|
|
309
309
|
if (bucket === 'staged') {
|
|
310
310
|
args.push('--cached');
|
|
311
311
|
}
|
package/lib/dashboard/tui/app.js
CHANGED
|
@@ -1558,7 +1558,7 @@ function getSectionOrderForView(view, options = {}) {
|
|
|
1558
1558
|
return ['standards', 'stats', 'warnings', 'error-details'];
|
|
1559
1559
|
}
|
|
1560
1560
|
if (view === 'git') {
|
|
1561
|
-
return ['git-changes'];
|
|
1561
|
+
return ['git-status', 'git-changes', 'git-branches', 'git-commits', 'git-stash', 'git-diff'];
|
|
1562
1562
|
}
|
|
1563
1563
|
const sections = [];
|
|
1564
1564
|
if (includeWorktrees) {
|
|
@@ -2752,7 +2752,7 @@ function buildQuickHelpText(view, options = {}) {
|
|
|
2752
2752
|
}
|
|
2753
2753
|
parts.push('a current', 'f files');
|
|
2754
2754
|
} else if (view === 'git') {
|
|
2755
|
-
parts.push('
|
|
2755
|
+
parts.push('6 status', '7 files', '8 branches', '9 commits', '0 stash', '- diff');
|
|
2756
2756
|
}
|
|
2757
2757
|
parts.push(`tab1 ${activeLabel}`);
|
|
2758
2758
|
|
|
@@ -2764,7 +2764,7 @@ function buildQuickHelpText(view, options = {}) {
|
|
|
2764
2764
|
return parts.join(' | ');
|
|
2765
2765
|
}
|
|
2766
2766
|
|
|
2767
|
-
function
|
|
2767
|
+
function buildGitCommandStrip(view, options = {}) {
|
|
2768
2768
|
const {
|
|
2769
2769
|
hasWorktrees = false,
|
|
2770
2770
|
previewOpen = false
|
|
@@ -2784,7 +2784,7 @@ function buildLazyGitCommandStrip(view, options = {}) {
|
|
|
2784
2784
|
} else if (view === 'health') {
|
|
2785
2785
|
parts.push('s standards', 't stats', 'w warnings');
|
|
2786
2786
|
} else if (view === 'git') {
|
|
2787
|
-
parts.push('
|
|
2787
|
+
parts.push('6 status', '7 files', '8 branches', '9 commits', '0 stash', '- diff', 'space preview');
|
|
2788
2788
|
}
|
|
2789
2789
|
|
|
2790
2790
|
if (previewOpen) {
|
|
@@ -2797,7 +2797,7 @@ function buildLazyGitCommandStrip(view, options = {}) {
|
|
|
2797
2797
|
return parts.join(' | ');
|
|
2798
2798
|
}
|
|
2799
2799
|
|
|
2800
|
-
function
|
|
2800
|
+
function buildGitCommandLogLine(options = {}) {
|
|
2801
2801
|
const {
|
|
2802
2802
|
statusLine = '',
|
|
2803
2803
|
activeFlow = 'fire',
|
|
@@ -2874,7 +2874,7 @@ function buildHelpOverlayLines(options = {}) {
|
|
|
2874
2874
|
{ text: '', color: undefined, bold: false },
|
|
2875
2875
|
{ text: 'Tab 5 Git Changes', color: 'yellow', bold: true },
|
|
2876
2876
|
'select changed files and preview diffs',
|
|
2877
|
-
'
|
|
2877
|
+
'6 status | 7 files | 8 branches | 9 commits | 0 stash | - diff',
|
|
2878
2878
|
{ text: '', color: undefined, bold: false },
|
|
2879
2879
|
{ text: `Current view: ${String(view || 'runs').toUpperCase()}`, color: 'gray', bold: false }
|
|
2880
2880
|
);
|
|
@@ -3897,24 +3897,34 @@ function createDashboardApp(deps) {
|
|
|
3897
3897
|
return;
|
|
3898
3898
|
}
|
|
3899
3899
|
} else if (ui.view === 'git') {
|
|
3900
|
-
if (input === '
|
|
3900
|
+
if (input === '6') {
|
|
3901
|
+
setSectionFocus((previous) => ({ ...previous, git: 'git-status' }));
|
|
3902
|
+
setPaneFocus('main');
|
|
3903
|
+
return;
|
|
3904
|
+
}
|
|
3905
|
+
if (input === '7') {
|
|
3901
3906
|
setSectionFocus((previous) => ({ ...previous, git: 'git-changes' }));
|
|
3907
|
+
setPaneFocus('main');
|
|
3902
3908
|
return;
|
|
3903
3909
|
}
|
|
3904
|
-
if (input === '
|
|
3905
|
-
|
|
3910
|
+
if (input === '8') {
|
|
3911
|
+
setSectionFocus((previous) => ({ ...previous, git: 'git-branches' }));
|
|
3912
|
+
setPaneFocus('main');
|
|
3906
3913
|
return;
|
|
3907
3914
|
}
|
|
3908
|
-
if (input === '
|
|
3909
|
-
|
|
3915
|
+
if (input === '9') {
|
|
3916
|
+
setSectionFocus((previous) => ({ ...previous, git: 'git-commits' }));
|
|
3917
|
+
setPaneFocus('main');
|
|
3910
3918
|
return;
|
|
3911
3919
|
}
|
|
3912
|
-
if (input === '
|
|
3913
|
-
|
|
3920
|
+
if (input === '0') {
|
|
3921
|
+
setSectionFocus((previous) => ({ ...previous, git: 'git-stash' }));
|
|
3922
|
+
setPaneFocus('main');
|
|
3914
3923
|
return;
|
|
3915
3924
|
}
|
|
3916
|
-
if (input === '
|
|
3917
|
-
|
|
3925
|
+
if (input === '-') {
|
|
3926
|
+
setSectionFocus((previous) => ({ ...previous, git: 'git-diff' }));
|
|
3927
|
+
setPaneFocus('main');
|
|
3918
3928
|
return;
|
|
3919
3929
|
}
|
|
3920
3930
|
}
|
|
@@ -4299,11 +4309,11 @@ function createDashboardApp(deps) {
|
|
|
4299
4309
|
availableFlowCount: availableFlowIds.length,
|
|
4300
4310
|
hasWorktrees: worktreeSectionEnabled
|
|
4301
4311
|
});
|
|
4302
|
-
const commandStripText =
|
|
4312
|
+
const commandStripText = buildGitCommandStrip(ui.view, {
|
|
4303
4313
|
hasWorktrees: worktreeSectionEnabled,
|
|
4304
4314
|
previewOpen
|
|
4305
4315
|
});
|
|
4306
|
-
const commandLogLine =
|
|
4316
|
+
const commandLogLine = buildGitCommandLogLine({
|
|
4307
4317
|
statusLine,
|
|
4308
4318
|
activeFlow,
|
|
4309
4319
|
watchEnabled,
|
|
@@ -4391,37 +4401,37 @@ function createDashboardApp(deps) {
|
|
|
4391
4401
|
panelCandidates = [
|
|
4392
4402
|
{
|
|
4393
4403
|
key: 'git-status',
|
|
4394
|
-
title: '[
|
|
4404
|
+
title: '[6]-Status',
|
|
4395
4405
|
lines: gitStatusPanelLines,
|
|
4396
4406
|
borderColor: 'green'
|
|
4397
4407
|
},
|
|
4398
4408
|
{
|
|
4399
4409
|
key: 'git-changes',
|
|
4400
|
-
title: '[
|
|
4410
|
+
title: '[7]-Files',
|
|
4401
4411
|
lines: sectionLines['git-changes'],
|
|
4402
4412
|
borderColor: 'yellow'
|
|
4403
4413
|
},
|
|
4404
4414
|
{
|
|
4405
4415
|
key: 'git-branches',
|
|
4406
|
-
title: '[
|
|
4416
|
+
title: '[8]-Local branches',
|
|
4407
4417
|
lines: gitBranchesPanelLines,
|
|
4408
4418
|
borderColor: 'magenta'
|
|
4409
4419
|
},
|
|
4410
4420
|
{
|
|
4411
4421
|
key: 'git-commits',
|
|
4412
|
-
title: '[
|
|
4422
|
+
title: '[9]-Commits',
|
|
4413
4423
|
lines: gitCommitsPanelLines,
|
|
4414
4424
|
borderColor: 'cyan'
|
|
4415
4425
|
},
|
|
4416
4426
|
{
|
|
4417
4427
|
key: 'git-stash',
|
|
4418
|
-
title: '[
|
|
4428
|
+
title: '[0]-Stash',
|
|
4419
4429
|
lines: gitStashPanelLines,
|
|
4420
4430
|
borderColor: 'blue'
|
|
4421
4431
|
},
|
|
4422
4432
|
{
|
|
4423
4433
|
key: 'git-diff',
|
|
4424
|
-
title: '[
|
|
4434
|
+
title: '[-]-Unstaged changes',
|
|
4425
4435
|
lines: gitInlineDiffLines,
|
|
4426
4436
|
borderColor: 'yellow'
|
|
4427
4437
|
}
|
|
@@ -4485,7 +4495,7 @@ function createDashboardApp(deps) {
|
|
|
4485
4495
|
}
|
|
4486
4496
|
|
|
4487
4497
|
const panels = allocateSingleColumnPanels(panelCandidates, contentRowsBudget);
|
|
4488
|
-
const
|
|
4498
|
+
const gitHierarchyLayout = ui.view === 'git'
|
|
4489
4499
|
&& !ui.showHelp
|
|
4490
4500
|
&& !worktreeOverlayOpen
|
|
4491
4501
|
&& !overlayPreviewOpen
|
|
@@ -4506,7 +4516,7 @@ function createDashboardApp(deps) {
|
|
|
4506
4516
|
});
|
|
4507
4517
|
|
|
4508
4518
|
let contentNode;
|
|
4509
|
-
if (
|
|
4519
|
+
if (gitHierarchyLayout) {
|
|
4510
4520
|
const preferredRightPanel = panelCandidates.find((panel) => panel?.key === 'git-diff')
|
|
4511
4521
|
|| (previewOpen && !overlayPreviewOpen
|
|
4512
4522
|
? panelCandidates.find((panel) => panel?.key === 'preview')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specsmd",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.55",
|
|
4
4
|
"description": "Multi-agent orchestration system for AI-native software development. Delivers AI-DLC, Agile, and custom SDLC flows as markdown-based agent systems.",
|
|
5
5
|
"main": "lib/installer.js",
|
|
6
6
|
"bin": {
|