@nguyenquangthai/pi-todo 0.2.4 → 0.2.5

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
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.5 (2026-07-15)
4
+
5
+ - Fix progress bar: use single-width ASCII (`#`/`·`) instead of double-width Unicode (`█`/`░`) to avoid alignment issues in terminal.
6
+ - README: update progress bar example to match ASCII chars.
7
+
3
8
  ## 0.2.4 (2026-07-15)
4
9
 
5
10
  - README: add npm/CI/license badges.
package/README.md CHANGED
@@ -58,11 +58,11 @@ Shown above the editor while any **open** todo remains (`pending` / `in_progress
58
58
 
59
59
  Hidden when the list is empty or every item is `completed` / `cancelled`.
60
60
 
61
- Heading shows open + running counts + progress bar, e.g. `# Todos (2 open, 1 running) ████░░░░ 60%`:
61
+ Heading shows open + running counts + progress bar, e.g. `# Todos (3 open, 1 running) ####···· 25%`:
62
62
 
63
63
  - **open** = `pending` + `in_progress`
64
64
  - **running** = `in_progress` only (0 or 1 after a valid write)
65
- - **progress bar** = completed / total (adaptive width)
65
+ - **progress bar** = completed / total (adaptive width, single-width ASCII)
66
66
 
67
67
  Items within each status group are sorted by priority (high → medium → low).
68
68
  When space is tight, completed/cancelled items collapse into `+N done`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nguyenquangthai/pi-todo",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "OpenCode-like session todo checklist for the pi coding agent — todowrite/todoread with a live TUI overlay",
5
5
  "type": "module",
6
6
  "author": "QuangThai",
package/src/format.ts CHANGED
@@ -158,8 +158,7 @@ export function renderOverlayLines(
158
158
  const pct = total > 0 ? Math.round((done / total) * 100) : 0;
159
159
  const barWidth = Math.max(4, Math.min(12, Math.floor(width / 8)));
160
160
  const filled = Math.round((barWidth * done) / total);
161
- const bar =
162
- "█".repeat(filled) + "░".repeat(Math.max(0, barWidth - filled));
161
+ const bar = "#".repeat(filled) + "·".repeat(Math.max(0, barWidth - filled));
163
162
 
164
163
  const heading = truncate(
165
164
  theme.fg("accent", theme.bold(`# Todos`)) +