pi-long-task 0.3.14 → 0.3.15

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
@@ -2,6 +2,13 @@
2
2
 
3
3
  Notable changes to Pi Long Task are recorded here. This project follows semantic versioning.
4
4
 
5
+ ## 0.3.15 - 2026-08-20
6
+
7
+ ### Changed
8
+
9
+ - Show the full active task status in a dedicated "Active status" section below the active task in the TUI sidebar, wrapping instead of truncating long status messages.
10
+ - Wrap the active task status message and current task line in the plain widget fallback instead of hard-truncating them.
11
+
5
12
  ## 0.3.14 - 2026-08-20
6
13
 
7
14
  ### Documentation and metadata
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-long-task",
3
- "version": "0.3.14",
3
+ "version": "0.3.15",
4
4
  "type": "module",
5
5
  "description": "Pi coding agent extension that breaks large coding requests into tracked TODOs and runs them in isolated AI worker sessions. A long-running task runner and subagent orchestrator for Pi, with a live TUI progress sidebar, retries, goal loops, and optional per-task git commits.",
6
6
  "keywords": [
package/src/index.ts CHANGED
@@ -275,7 +275,10 @@ function renderSidebarWidgetLines(update: CoordinatorProgressUpdate): string[] {
275
275
  const progress = update.taskProgress;
276
276
  const summary = progress?.summary;
277
277
  const statusDetails = sidebarUpdateStateDetails(update);
278
- const lines = ["Pi Long Task", `${statusDetails.icon} ${statusDetails.label} · ${update.message}`];
278
+ const lines = [
279
+ "Pi Long Task",
280
+ ...wrapPlainText(`${statusDetails.icon} ${statusDetails.label} · ${update.message}`, 96),
281
+ ];
279
282
  if (summary) {
280
283
  lines.push(
281
284
  `Tasks: ${summary.completedTasks}/${summary.totalTasks} · ${summary.completedPercent}%` +
@@ -290,7 +293,9 @@ function renderSidebarWidgetLines(update: CoordinatorProgressUpdate): string[] {
290
293
  const currentTask = currentIndex >= 0 ? progress.tasks[currentIndex] : undefined;
291
294
  if (currentTask) {
292
295
  const details = taskStatusDetails(currentTask.status);
293
- lines.push(`${details.label}: ${details.icon} TODO ${currentTask.taskId} — ${currentTask.title}`);
296
+ lines.push(
297
+ ...wrapPlainText(`${details.label}: ${details.icon} TODO ${currentTask.taskId} — ${currentTask.title}`, 96),
298
+ );
294
299
  }
295
300
  }
296
301
  if (update.workerCostTotal > 0) {
@@ -346,11 +351,6 @@ function renderSidebarRows(update: CoordinatorProgressUpdate | undefined, theme:
346
351
  }
347
352
  rows.push(renderSidebarStateLine(update, theme));
348
353
 
349
- const message = normalizeMessageForSidebar(update.message, update);
350
- if (message) {
351
- rows.push(...wrapPlainText(message, width, 2).map((line) => theme.fg("dim", line)));
352
- }
353
-
354
354
  if (!progress || progress.tasks.length === 0) {
355
355
  rows.push("", sidebarHeading("Context", theme), theme.fg("muted", "Waiting for TODO plan"));
356
356
  if (update.workerCostTotal > 0) {
@@ -397,6 +397,12 @@ function renderSidebarRows(update: CoordinatorProgressUpdate | undefined, theme:
397
397
  rows.push(theme.fg("success", "No active task"));
398
398
  }
399
399
 
400
+ const message = normalizeMessageForSidebar(update.message, update);
401
+ if (currentTask && message) {
402
+ rows.push("", sidebarHeading("Active status", theme));
403
+ rows.push(...wrapPlainText(message, width, 6).map((line) => theme.fg("dim", line)));
404
+ }
405
+
400
406
  rows.push("", sidebarHeading("Task timeline", theme));
401
407
  const taskIndexes = centeredTaskIndexes(progress.tasks.length, currentIndex, 9);
402
408
  const first = taskIndexes[0] ?? 0;