specsmd 0.1.37 → 0.1.38

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.
@@ -906,7 +906,8 @@ function collectSimpleSpecFiles(spec) {
906
906
  }));
907
907
  }
908
908
 
909
- function getRunFileEntries(snapshot, flow) {
909
+ function getRunFileEntries(snapshot, flow, options = {}) {
910
+ const includeBacklog = options.includeBacklog !== false;
910
911
  const effectiveFlow = getEffectiveFlow(flow, snapshot);
911
912
  const entries = [];
912
913
  const seenPaths = new Set();
@@ -917,6 +918,10 @@ function getRunFileEntries(snapshot, flow) {
917
918
  pushFileEntry(entries, seenPaths, { ...file, scope: 'active' });
918
919
  }
919
920
 
921
+ if (!includeBacklog) {
922
+ return entries;
923
+ }
924
+
920
925
  const pendingBolts = Array.isArray(snapshot?.pendingBolts) ? snapshot.pendingBolts : [];
921
926
  for (const pendingBolt of pendingBolts) {
922
927
  for (const file of collectAidlcBoltFiles(pendingBolt)) {
@@ -963,6 +968,10 @@ function getRunFileEntries(snapshot, flow) {
963
968
  pushFileEntry(entries, seenPaths, { ...file, scope: 'active' });
964
969
  }
965
970
 
971
+ if (!includeBacklog) {
972
+ return entries;
973
+ }
974
+
966
975
  const pendingSpecs = Array.isArray(snapshot?.pendingSpecs) ? snapshot.pendingSpecs : [];
967
976
  for (const pendingSpec of pendingSpecs) {
968
977
  for (const file of collectSimpleSpecFiles(pendingSpec)) {
@@ -985,6 +994,10 @@ function getRunFileEntries(snapshot, flow) {
985
994
  pushFileEntry(entries, seenPaths, { ...file, scope: 'active' });
986
995
  }
987
996
 
997
+ if (!includeBacklog) {
998
+ return entries;
999
+ }
1000
+
988
1001
  const pendingItems = Array.isArray(snapshot?.pendingItems) ? snapshot.pendingItems : [];
989
1002
  for (const pendingItem of pendingItems) {
990
1003
  pushFileEntry(entries, seenPaths, {
@@ -1154,10 +1167,10 @@ function getFileEntityLabel(fileEntry, fallbackIndex = 0) {
1154
1167
  return `item-${fallbackIndex + 1}`;
1155
1168
  }
1156
1169
 
1157
- function buildRunFileEntityGroups(snapshot, flow) {
1170
+ function buildRunFileEntityGroups(snapshot, flow, options = {}) {
1158
1171
  const order = ['active', 'upcoming', 'completed', 'intent', 'other'];
1159
1172
  const rankByScope = new Map(order.map((scope, index) => [scope, index]));
1160
- const entries = filterExistingFiles(getRunFileEntries(snapshot, flow));
1173
+ const entries = filterExistingFiles(getRunFileEntries(snapshot, flow, options));
1161
1174
  const groupsByEntity = new Map();
1162
1175
 
1163
1176
  for (let index = 0; index < entries.length; index += 1) {
@@ -2115,7 +2128,9 @@ function createDashboardApp(deps) {
2115
2128
  currentExpandedGroups
2116
2129
  );
2117
2130
  const shouldHydrateSecondaryTabs = deferredTabsReady || ui.view !== 'runs';
2118
- const runFileGroups = buildRunFileEntityGroups(snapshot, activeFlow);
2131
+ const runFileGroups = buildRunFileEntityGroups(snapshot, activeFlow, {
2132
+ includeBacklog: shouldHydrateSecondaryTabs
2133
+ });
2119
2134
  const runFileExpandedGroups = { ...expandedGroups };
2120
2135
  for (const group of runFileGroups) {
2121
2136
  if (runFileExpandedGroups[group.key] == null) {
@@ -2592,14 +2607,19 @@ function createDashboardApp(deps) {
2592
2607
  }, [activeFlow, rowLengthSignature, snapshot?.generatedAt]);
2593
2608
 
2594
2609
  useEffect(() => {
2610
+ if (ui.view !== 'runs') {
2611
+ setDeferredTabsReady(true);
2612
+ return undefined;
2613
+ }
2614
+
2595
2615
  setDeferredTabsReady(false);
2596
2616
  const timer = setTimeout(() => {
2597
2617
  setDeferredTabsReady(true);
2598
- }, 0);
2618
+ }, 250);
2599
2619
  return () => {
2600
2620
  clearTimeout(timer);
2601
2621
  };
2602
- }, [activeFlow, snapshot?.generatedAt]);
2622
+ }, [activeFlow, snapshot?.generatedAt, ui.view]);
2603
2623
 
2604
2624
  useEffect(() => {
2605
2625
  setPaneFocus('main');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specsmd",
3
- "version": "0.1.37",
3
+ "version": "0.1.38",
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": {