|
1 | 1 | # TreeMap — session handoff |
2 | 2 |
|
3 | | -**Date:** 3 August 2026 |
4 | | -**Status:** **v3.0.0 shipped; six post-release commits on `main` AWAITING THE |
5 | | -USER'S GITHUB DESKTOP PUSH** (`d3aa336` settings-open fix + rounded floating |
6 | | -sidebar · `de867ce` UI performance (backdrop-blur cull, static blobs, |
7 | | -content-visibility, delegation, formatDate memo) · `f731994` three UI defects |
8 | | -(donut legend overflow, light-theme --warn contrast, picker aria-labels) · |
9 | | -`5fba59a` **session restore** (boot reloads the last scan; contract-tested; |
10 | | -spec in `docs/superpowers/specs/`) · `935c211` polish (row rhythm, amber |
11 | | -reclaim pills, sidebar shadow) · plus the earlier `f1be026`). Suite is now |
12 | | -**829 (827 pass, 2 skips)**. The scroll architecture changed: **the window |
13 | | -never scrolls; `main` is the app's one scroller** — the sidebar is a floating |
14 | | -rounded card pinned in place. `.glass` no longer live-blurs (in-flow cards use |
15 | | -`--glass-strong` tint; only sidebar/modals/search/tm-timebar keep real |
16 | | -backdrop blur). These fixes reach the user's installed app only after a new |
17 | | -release (recipe below) — v3.1.0 is the natural next step when the user is |
18 | | -present to re-grant Full Disk Access and push/publish. |
19 | | - |
20 | | -**Previous release status (28 July):** ALL 21 FEATURES SHIPPED · PHASE 5 COMPLETE · v3.0.0 BUILT. |
21 | | -Phase 0 ✅ · Phase 1 ✅ (A1–A5) · Phase 2 ✅ (B1–B5) · Phase 3 ✅ (C1–C8) · |
22 | | -Phase 4 ✅ (D1, D2, D3) · **Phase 5 ✅ (1–5)** — only the push + publish remain, |
23 | | -and both are the user's to do. |
24 | | -**Suite:** 828 (826 pass, 2 platform-skips) · typecheck clean · zero console errors |
25 | | -Working tree clean, no dev server running, nothing of mine left on the user's |
26 | | -machine (checked: `~/Library/Services` empty, no `fleet.json` in the real |
27 | | -app-data, no stray node processes). |
28 | | - |
29 | | -**⚠️ SIX COMMITS ON `main` AWAITING THE USER'S GITHUB DESKTOP PUSH:** |
30 | | -`0dc4136` UI layout fixes + Fleet pairing instructions · `c2fedaa` README sweep |
31 | | -+ views.svg · `80208ee` treemap toolbar wrap · `4d037e2` handoff · `764c18d` |
32 | | -app-owned secrets + tool-owned empty folders · `f6adaf7` **Release v3.0.0**. |
33 | | - |
34 | | -**✅ v3.0.0 IS PUBLISHED AND FULLY VERIFIED (29 Jul 2026).** The user pushed |
35 | | -(3-OS Tests green at `c430c90` after the Windows separator fix) and published |
36 | | -"v3.0.0 - 21 Updates"; Build & Release succeeded from `c430c90`, so the release |
37 | | -carries every commit including the CI fix. Verified per recipe step 7: |
38 | | -**9 assets** (one more than v2.x — `TreeMap.3.0.0.exe` is the **D3 portable |
39 | | -Windows build**, from `win.target: ["nsis","portable"]`; GitHub stores the |
40 | | -space as a dot). Both ymls read 3.0.0; zip/dmg/Setup-exe sha512+size match |
41 | | -byte-exact; DMG mounts with a 3.0.0 app, gdu bundled, codesign clean; zip app |
42 | | -codesign clean; both exes have MZ headers; `releases/latest` → v3.0.0; and the |
43 | | -shipped app.asar contains this session's markers (appOwned 5, ownsItsContents |
44 | | -2, fleet-help 10, treemapCanvasHeight 3). **Verification trap: raw `grep` on |
45 | | -app.asar reports zero even for strings that ARE there** (BSD grep chokes on |
46 | | -the binary) — `npx asar extract` first, then grep the extracted files. |
47 | | - |
48 | | -**v3.0.0 is built, installed to `/Applications` and smoke-tested** (`/api/system` |
49 | | -answers, `/api/capabilities` reports `version: 3.0.0`, bundle carries |
50 | | -`Resources/gdu/gdu`, `codesign --verify --deep --strict` passes, |
51 | | -`npm rebuild better-sqlite3` done and the suite re-run green afterwards). |
52 | | - |
53 | | -**⚠️ THE USER MUST RE-GRANT FULL DISK ACCESS.** The reinstall reset it, and |
54 | | -scans of Desktop/Documents/home now return 0 items and sit at "running". This is |
55 | | -trap 5, not a regression — proven by scanning a TCC-free path in the same |
56 | | -installed build, which completed normally. Tell them: |
57 | | -`open "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"` |
58 | | -→ toggle TreeMap off→on → relaunch. |
| 3 | +**Date:** 25 August 2026 |
| 4 | +**Status:** **v3.2.0 committed, AWAITING THE USER'S GITHUB DESKTOP PUSH + RELEASE.** |
| 5 | +Three commits on `main` since the v3.1.0 release: `879eff7` scan cancellation, |
| 6 | +`6a0debd` the VS Code extension, and the `Release v3.2.0` version bump. |
| 7 | +Suite is **899 (897 pass, 2 platform skips)**; typecheck clean; build clean. |
| 8 | + |
| 9 | +**Two features shipped this session, both from the user's own spec:** |
| 10 | + |
| 11 | +1. **Stop a running scan.** The Scan button becomes a red Stop while a scan is |
| 12 | + in flight. `POST /api/scan/:scanId/cancel` settles the record, and a gdu |
| 13 | + subprocess is killed rather than left to finish its shard (measured: one |
| 14 | + process before, zero after). Design doc: |
| 15 | + `docs/superpowers/specs/2026-08-25-scan-cancellation-design.md`. |
| 16 | +2. **A VS Code extension** in `vscode-extension/`. Clones or reuses a TreeMap |
| 17 | + checkout, builds it, runs its server as a child process, frames the |
| 18 | + visualizer in a webview. Design doc: |
| 19 | + `docs/superpowers/specs/2026-08-25-vscode-extension-design.md`. |
| 20 | + |
| 21 | +**⚠️ THE RELEASE IS THE USER'S STEP AND IS WHAT THEY ACTUALLY WANT.** Their |
| 22 | +stated goal is "people to be easily able to download the .dmg and .exe". That |
| 23 | +happens through `.github/workflows/release.yml`, which builds BOTH on real |
| 24 | +macOS and Windows runners when a `v*` tag is published. Do NOT try to build |
| 25 | +Windows installers on the Mac — electron-builder needs Wine, which is not |
| 26 | +installed, and CI does it properly anyway. Steps 6–7 of the release recipe |
| 27 | +below are all that remain. |
| 28 | + |
| 29 | +**New traps found this session (all paid for):** |
| 30 | + |
| 31 | +- **A review subagent with write access edited the source mid-review.** One |
| 32 | + transiently mutated `gduScanner.ts` to test the new tests and restored it; |
| 33 | + another left a `clearTimeout` in `tests/scanCancel.test.ts` that got swept |
| 34 | + into a commit and made the file hang. **Use read-only agents (`agentType: |
| 35 | + 'Explore'`) for review, and `git diff` the whole tree before committing.** |
| 36 | +- **Never leave a non-unref'd `setTimeout` armed in a passing test.** The SSE |
| 37 | + cancellation test's 8s watchdog held the event loop for its full duration |
| 38 | + after the test passed — 8.8s per run of that file. Clear it on BOTH settle |
| 39 | + paths from inside the promise; clearing it from the outer `finally` instead |
| 40 | + made the test hang. |
| 41 | +- **`npm` on Windows is `npm.cmd`.** libuv's PATH search only appends `.com` |
| 42 | + and `.exe` and never reads PATHEXT, so `spawn('npm', …, {shell:false})` is |
| 43 | + ENOENT there. Spawning `npm.cmd` directly is not the fix either — Node |
| 44 | + refuses a `.cmd` without a shell since the CVE-2024-27980 mitigation. Route |
| 45 | + npm through `cmd.exe /d /s /c`; keep `git` on a direct spawn, because git is |
| 46 | + the one handed user-controlled values. |
| 47 | +- **`Write` can emit literal control bytes into a regex character class.** A |
| 48 | + `[\s -]` written that way landed on disk as raw `\x00-\x1f`, invisible in |
| 49 | + review. Prefer an explicit `charCodeAt` scan over a class with a range. |
| 50 | +- **The dashboard's `mount()` is a no-op**, so `switchView` cannot repaint the |
| 51 | + three panels `beginScanChrome` turns into skeletons. Any path that ends a |
| 52 | + scan without `finishScan` must call `restoreDashboardPanels()`. |
| 53 | + |
| 54 | +**Pre-existing defect found in passing, NOT fixed (out of scope):** the A1 |
| 55 | +instant-index-open path calls `finishScan` before any scanId exists, firing |
| 56 | +three `?scanId=null` requests that 404 on every boot. A background task was |
| 57 | +spawned for it. |
59 | 58 |
|
60 | 59 | Spec: `/Users/prithvivinay/Desktop/TreeMap-Master-Implementation-Prompt.md` |
61 | 60 |
|
|
0 commit comments