specsmd 0.1.56 → 0.1.57

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.
@@ -2926,6 +2926,12 @@ function colorizeMarkdownLine(line, inCodeBlock) {
2926
2926
  };
2927
2927
  }
2928
2928
 
2929
+ function sanitizeRenderLine(value) {
2930
+ const raw = String(value ?? '');
2931
+ const withoutAnsi = raw.replace(/\u001B\[[0-9;?]*[ -/]*[@-~]/g, '');
2932
+ return withoutAnsi.replace(/[\u0000-\u0008\u000B-\u001A\u001C-\u001F\u007F]/g, '');
2933
+ }
2934
+
2929
2935
  function buildPreviewLines(fileEntry, width, scrollOffset, options = {}) {
2930
2936
  const fullDocument = options?.fullDocument === true;
2931
2937
 
@@ -2967,7 +2973,8 @@ function buildPreviewLines(fileEntry, width, scrollOffset, options = {}) {
2967
2973
  bold: true
2968
2974
  };
2969
2975
 
2970
- const cappedLines = fullDocument ? rawLines : rawLines.slice(0, 300);
2976
+ const normalizedLines = rawLines.map((line) => sanitizeRenderLine(line));
2977
+ const cappedLines = fullDocument ? normalizedLines : normalizedLines.slice(0, 300);
2971
2978
  const hiddenLineCount = fullDocument ? 0 : Math.max(0, rawLines.length - cappedLines.length);
2972
2979
  let inCodeBlock = false;
2973
2980
 
@@ -4070,6 +4077,13 @@ function createDashboardApp(deps) {
4070
4077
  setPreviewScroll(0);
4071
4078
  }, [previewOpen, overlayPreviewOpen, paneFocus, selectedFocusedFile?.path, previewTarget?.path]);
4072
4079
 
4080
+ useEffect(() => {
4081
+ if (ui.view !== 'git') {
4082
+ return;
4083
+ }
4084
+ setPreviewScroll(0);
4085
+ }, [ui.view, focusedSection, selectedGitFile?.path, selectedGitCommit?.commitHash]);
4086
+
4073
4087
  useEffect(() => {
4074
4088
  if (statusLine === '') {
4075
4089
  return undefined;
@@ -4235,8 +4249,8 @@ function createDashboardApp(deps) {
4235
4249
  : [];
4236
4250
  const gitInlineDiffTarget = (
4237
4251
  focusedSection === 'git-commits'
4238
- ? (selectedGitCommit || selectedGitFile || firstGitFile || previewTarget)
4239
- : (selectedGitFile || firstGitFile || previewTarget)
4252
+ ? (selectedGitCommit || selectedGitFile || firstGitFile)
4253
+ : (selectedGitFile || firstGitFile)
4240
4254
  ) || null;
4241
4255
  const gitInlineDiffLines = ui.view === 'git'
4242
4256
  ? buildPreviewLines(gitInlineDiffTarget, compactWidth, previewOpen && paneFocus === 'preview' ? previewScroll : 0, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specsmd",
3
- "version": "0.1.56",
3
+ "version": "0.1.57",
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": {