agileflow 2.84.0 → 2.84.1

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/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.84.1] - 2026-01-11
11
+
12
+ ### Fixed
13
+ - Status line and welcome table formatting fixes
14
+
10
15
  ## [2.84.0] - 2026-01-11
11
16
 
12
17
  ### Added
package/README.md CHANGED
@@ -144,7 +144,7 @@ docs/
144
144
 
145
145
  ## Online Documentation
146
146
 
147
- Visit [projectquestorg.com](https://projectquestorg.com) for the full documentation site.
147
+ Visit [docs.agileflow.projectquestorg.com](https://docs.agileflow.projectquestorg.com) for the full documentation site.
148
148
 
149
149
  ---
150
150
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agileflow",
3
- "version": "2.84.0",
3
+ "version": "2.84.1",
4
4
  "description": "AI-driven agile development system for Claude Code, Cursor, Windsurf, and more",
5
5
  "keywords": [
6
6
  "agile",
@@ -385,11 +385,11 @@ PYTHON
385
385
  SESSION_COLOR="$SESSION_GREEN" # Light green - plenty of time
386
386
  fi
387
387
 
388
- # Build compact display: "~2h15m" or "~45m" (tilde indicates remaining time)
388
+ # Build compact display: "2h15m" or "45m" (hourglass indicates remaining time)
389
389
  if [ "$RH" -gt 0 ]; then
390
- SESSION_DISPLAY="${SESSION_COLOR}~${RH}h${RM}m${RESET}"
390
+ SESSION_DISPLAY="${SESSION_COLOR}⧗${RH}h${RM}m${RESET}"
391
391
  else
392
- SESSION_DISPLAY="${SESSION_COLOR}~${RM}m${RESET}"
392
+ SESSION_DISPLAY="${SESSION_COLOR}⧗${RM}m${RESET}"
393
393
  fi
394
394
  fi
395
395
  fi
@@ -675,8 +675,8 @@ function formatTable(
675
675
  expertise = {},
676
676
  damageControl = {}
677
677
  ) {
678
- const W = 58; // inner width
679
- const R = W - 24; // right column width (34 chars)
678
+ const W = 58; // inner width (total table = W + 2 = 60)
679
+ const R = W - 25; // right column width (33 chars) to match total of 60
680
680
  const lines = [];
681
681
 
682
682
  // Helper to create a row (auto-truncates right content to fit)
@@ -688,16 +688,26 @@ function formatTable(
688
688
  };
689
689
 
690
690
  // Helper for full-width row (spans both columns)
691
+ // Content width = W - 2 (for the two spaces after │ and before │)
691
692
  const fullRow = (content, color = '') => {
692
693
  const contentStr = `${color}${content}${color ? c.reset : ''}`;
693
- return `${c.dim}${box.v}${c.reset} ${pad(contentStr, W - 1)} ${c.dim}${box.v}${c.reset}`;
694
+ return `${c.dim}${box.v}${c.reset} ${pad(contentStr, W - 2)} ${c.dim}${box.v}${c.reset}`;
694
695
  };
695
696
 
697
+ // Two-column dividers: ├ + 22 dashes + ┼ + 35 dashes + ┤ = 60 total
696
698
  const divider = () =>
697
- `${c.dim}${box.lT}${box.h.repeat(22)}${box.cross}${box.h.repeat(W - 22)}${box.rT}${c.reset}`;
699
+ `${c.dim}${box.lT}${box.h.repeat(22)}${box.cross}${box.h.repeat(W - 23)}${box.rT}${c.reset}`;
700
+ // Full-width divider: ├ + 58 dashes + ┤ = 60 total
698
701
  const fullDivider = () => `${c.dim}${box.lT}${box.h.repeat(W)}${box.rT}${c.reset}`;
699
- const topBorder = `${c.dim}${box.tl}${box.h.repeat(22)}${box.tT}${box.h.repeat(W - 22)}${box.tr}${c.reset}`;
700
- const bottomBorder = `${c.dim}${box.bl}${box.h.repeat(22)}${box.bT}${box.h.repeat(W - 22)}${box.br}${c.reset}`;
702
+ // Transition: full-width TO two-column
703
+ const splitDivider = () =>
704
+ `${c.dim}${box.lT}${box.h.repeat(22)}${box.tT}${box.h.repeat(W - 23)}${box.rT}${c.reset}`;
705
+ // Transition: two-column TO full-width
706
+ const mergeDivider = () =>
707
+ `${c.dim}${box.lT}${box.h.repeat(22)}${box.bT}${box.h.repeat(W - 23)}${box.rT}${c.reset}`;
708
+ // Borders
709
+ const topBorder = `${c.dim}${box.tl}${box.h.repeat(W)}${box.tr}${c.reset}`;
710
+ const bottomBorder = `${c.dim}${box.bl}${box.h.repeat(22)}${box.bT}${box.h.repeat(W - 23)}${box.br}${c.reset}`;
701
711
 
702
712
  // Header with version and optional update indicator
703
713
  // Use vibrant colors for branch
@@ -725,7 +735,7 @@ function formatTable(
725
735
  : info.branch;
726
736
 
727
737
  const header = `${c.brand}${c.bold}agileflow${c.reset} ${c.dim}${versionStr}${c.reset} ${branchColor}${branchDisplay}${c.reset} ${c.dim}(${info.commit})${c.reset}`;
728
- const headerLine = `${c.dim}${box.v}${c.reset} ${pad(header, W - 1)} ${c.dim}${box.v}${c.reset}`;
738
+ const headerLine = `${c.dim}${box.v}${c.reset} ${pad(header, W - 2)} ${c.dim}${box.v}${c.reset}`;
729
739
 
730
740
  lines.push(topBorder);
731
741
  lines.push(headerLine);
@@ -760,7 +770,8 @@ function formatTable(
760
770
  lines.push(fullRow(` Run ${c.skyBlue}/agileflow:whats-new${c.reset} for full changelog`, ''));
761
771
  }
762
772
 
763
- lines.push(divider());
773
+ // Transition from full-width sections to two-column stories section
774
+ lines.push(splitDivider());
764
775
 
765
776
  // Stories section (always colorful labels like obtain-context)
766
777
  lines.push(