# Handoff — 2026-09-17 — Resizable file tree column (ticket 0015) ## State - Feature complete and user-tested in the browser: drag the divider between the file tree and the tabs, ←/→, Home/End, double-click reset, width remembered in localStorage (`ori.fileTreeWidth`). Ticket 0015 closed. - Quality gate PASS (run #15) after cleaning up pre-existing findings in ori-desktop `main.js`, `raw.go`, `search.go`, `PreviewPane.tsx`. - ori is running in the sandbox on :8888 with the current build (`env -u CLAUDECODE CLAUDE_CODE_EXECUTABLE=/home/agent/.local/share/claude/versions/2.1.275 ./bin/ori --addr 0.0.0.0:8888`, log `/tmp/ori.log`). ## In flight - Nothing on this topic. The user's next request, received mid-session: **light/dark theme selector, light by default (ticket 0013)**. Not started. Note `ui/src/app.css` already defines a dark palette under `@media (prefers-color-scheme: dark)` — the feature is mostly a `data-theme` attribute + a toggle + persistence, same localStorage pattern as the width. ## Next steps 1. Ticket 0013 (themes) through methodical-dev. 2. On the Mac: `cd ori-desktop && wails build`, check the connect screen still works now that `main.js` is an ES module. 3. Committed as `76d62ac` and merged into `main` (fast-forward) at the user's request; not pushed. ## Watch out for - `~/.qlty` is a fresh 488 MB volume after a sandbox recreation: recreate `~/.qlty/cache -> ~/.qlty-cache` before the first qlty run or `qlty check` dies with ENOSPC while unpacking Go. - jsdom 26 lacks `PointerEvent` and `setPointerCapture`; `ResizeHandle.test.tsx` polyfills the former, the component guards the latter with `?.()`. - `pkill -f 'bin/ori'` matches the shell running it; use `pkill -f '^\./bin/ori '`. - biome for ad-hoc checks: `npx -y @biomejs/biome@1.9.4` (project pin from `biome.json`); a bare `npx biome` installs an unrelated package.