Commit Graph
10 Commits
Author SHA1 Message Date
Tommy D. Rossi 2e31b47ff6 release: @gpuix/native@0.11.0, @gpuix/react@0.11.0, @gpuix/solid@0.11.0, @gpuix/cli@0.1.2, disktree@0.2.1
Consume the pending changesets into a minor release. Users get the
terminal renderer, a headless Dialog with an Escape layer stack, default
Tab focus navigation, focus-visible styles and a headless Button,
createPortal, onLayout and onScrollChange, native scrollbars, new CSS
styles, registerFont, BGRA image uploads, getElementsAt, idle GC,
display-link frame pacing on macOS and Windows ARM64 builds.

Bump the native Cargo crate, napi loader version checks, native, React
and Solid packages to 0.11.0, @gpuix/cli to 0.1.2 and disktree to 0.2.1.

Fixes #73
Fixes #74
Fixes #75
Fixes #76
Fixes #77
Fixes #78
Fixes #84
Fixes #91
Fixes #93
Fixes #95
Fixes #96
Fixes #97
Fixes #98
Fixes #99

Discord: https://discord.com/channels/1422625037164351591/1562091690376962111
Session: ses_ea68cd52affex3PxfjqF4PhYyY
2026-10-20 15:20:56 +02:00
Tommy D. Rossi e4f4309635 fix(examples): use platform file managers and native Windows chrome
Reveal disktree selections through Finder, Explorer, or xdg-open instead of always invoking macOS open. Keep launcher errors in the selection panel and scope them to the selected path. Preserve Explorer selection arguments for paths with spaces. Normalize platform button labels in the existing scan/navigation snapshot.

Use the existing titlebarTransparent option to retain native Windows dragging and minimize/maximize/close controls in chat and disktree. Leave other platforms unchanged. Document both behaviors and add separate changesets for issues 75 and 77.

Validation: all package, Rust, and performance suites pass on macOS. A real missing-launcher probe leaves the selection panel responsive. Windows and Linux runtime behavior remains unverified locally.

Session: ses_ed48f90d4ffeqym03XRjqsA5xw

Discord: https://discord.com/channels/1422625037164351591/1558853977012174980
2026-10-11 17:06:12 +02:00
Tommy D. Rossi b552197260 test(disktree): normalize the displayed fixture path on every platform
Replace the Unix-only path regex with the exact path formatted by the same displayPath helper as the selection panel. Keep the existing end-to-end scan and navigation snapshot unchanged. Add a patch changeset referencing issue 76.

Session: ses_ed48f90d4ffeqym03XRjqsA5xw

Discord: https://discord.com/channels/1422625037164351591/1558853977012174980
2026-10-11 16:55:28 +02:00
Tommy D. Rossi e1711bb651 fix(cli): make source builds independent of Unix chmod
Use Node file permissions for the disktree and scaffolder executables on Unix. Skip permission changes on Windows, where a shell chmod command is not available. Document the portable build behavior and add a patch changeset for both packages.

Session: ses_ed48f90d4ffeqym03XRjqsA5xw

Discord: https://discord.com/channels/1422625037164351591/1558853977012174980
2026-10-11 16:55:28 +02:00
Tommy D. Rossi 0689c735db perf(disktree): compact scanned file records
Separate folder and file node shapes so retained file records carry no directory-only child arrays or metadata. The 350k-file scan kept about 8 MiB less Bun heap. Preserve navigation and scan totals through the existing app test.

Session: ses_f1be8a987ffeslJ1dooQ4pgDnx
2026-09-27 22:29:36 +02:00
Tommy D. Rossi 4ecca30f68 release: disktree@0.2.0
disktree now runs on plain Node (>=20). Bun is no longer required.

- ship tsc output in dist/, bin is dist/cli.js with a node shebang
- tsconfig follows the npm-package template (nodenext, rootDir src)
- worker URL follows the running file extension (.ts in src, .js in dist)
- prepublishOnly wipes dist and rebuilds
- README and AGENTS use npx disktree

Session: ses_f1b9d5d03ffep38dyOKhtgIJSt
2026-09-27 21:54:30 +02:00
Tommy D. Rossi e8efacb0f7 chore(disktree): publish locally instead of from CI
- remove the publish-disktree CI job. It waited for all three native builds
  even though disktree ships only .tsx source
- prepublishOnly now runs tsc and the GPU test instead of refusing without CI
- AGENTS.md documents disktree as the one local-publish exception

Session: ses_f1b9d5d03ffep38dyOKhtgIJSt
2026-09-27 21:48:07 +02:00
Tommy D. Rossi 0846f894d2 fix(disktree): drop bun:ffi iCloud check and publish 0.1.2
- remove the SF_DATALESS check in scan-worker.ts. It called libc lstat
  through bun:ffi with a hardcoded arm64 struct offset
- remove the `cloud` field from DirRecord and its use in core.ts
- iCloud folders are now scanned like any other folder
- disktree still runs on Bun (raw .tsx bin)
- bump disktree to 0.1.2 so CI publishes it

Session: ses_f1b9d5d03ffep38dyOKhtgIJSt
2026-09-27 21:45:27 +02:00
Tommy D. Rossi 193f9c9dae fix(disktree): reduce scan memory and publish 0.1.1
Limit scan workers to four, reducing peak physical footprint by about 60 MiB on a 350k-file scan. Publish disktree independently after its GPU-backed test, so unrelated GPUIX CI failures cannot block the release.

Session: ses_f1be8a987ffeslJ1dooQ4pgDnx
2026-09-27 20:28:40 +02:00
Tommy D. Rossi b3c2823e01 feat(disktree): publish disktree as its own npm package
`bunx disktree [dir]` opens the treemap on a folder, the current directory,
or `/`. Published as disktree@0.1.0.

- moved from examples/ to a `disktree` workspace package: src/app.tsx
  (store + view), src/cli.tsx (bin), src/core.ts, src/scan-worker.ts
- scan runs on a pool of worker threads with sync lstat, like the Rust
  original on rayon; the frontier is handed back after 400 dirs so deep
  trees spread across workers. Full disk here: 24.5M files in 150 s, no
  stall
- skips iCloud dataless folders (SF_DATALESS via bun:ffi lstat), like the
  Rust scanner; listing them made macOS download them and stalled the scan
- keeps the 12 largest files per directory, folds the rest into one
  "N smaller files" tile
- store lives on globalThis so `bun --hot` remounts instead of starting a
  second full scan
- scan progress bar uses used disk space as the total when scanning a
  volume root
- lighter pastel tiles at 90% opacity

Session: ses_f1cc78bbbffeiqA1qhn3vB0pzN
2026-09-27 17:18:30 +02:00