forked from bots-garden/ori
| ✨ Workspace panel, selectors, previews, desktop app, sandbox template, resizable file tree, light/dark theme | 1 | # Handoff — 2026-09-17 — ori-desktop (Wails), @/skill selectors, draw.io + image previews |
| 2 | ||
| 3 | ## Where things stand | |
| 4 | ||
| 5 | - **ori-desktop** (`ori-desktop/`, own Go module, Wails v2.16.0): builds and launches on the user's Mac. Check reported "ori is reachable (status: ok)"; Connect appeared to do nothing → root cause was CSS specificity (`#connect-screen` beat `.screen[hidden]`), fixed in `frontend/src/main.css` + `index.html`. **The user has not yet rebuilt and retested.** Next unknown: does the `<iframe>` to `http://localhost:8888` render inside WKWebView from the `wails://` origin? If blank: `wails build -debug`, right-click → Inspect Element, read the console; candidates are ATS (`NSAllowsLocalNetworking` is already in `build/darwin/Info.plist`) or a mixed-content/frame policy. Fallback already wired: "Open in browser" (`runtime.BrowserOpenURL`). | |
| 6 | - **Selectors + previews** in ori: implemented, tested (102 vitest, 9 Go pkgs, -race clean), documented EN+FR. Smoke-tested by riker with the real binary + mock agent (`make run-mock`: type `@` and `/` in the composer; the mock announces commands `review`/`compact` and echoes `[attached: name]`). Not yet tried against the real Claude adapter (v0.16.2 reportedly converts `resource_link` into a file reference — verified by reading its source, not by running it). | |
| 7 | - **Quality gate not run**: qlty is not installed in this sandbox. Rerun `python3 ~/.claude/skills/quality/scripts/quality_report.py --workspace .` in a sandbox with the dev-toolkit kit before considering this work closed; expect possible findings in the new files (`internal/files/search.go`, `raw.go`, `internal/skills/`, `ui/src/mentions.ts`, `useCompletion.ts`, `CompletionPopup.tsx`, `PromptInput.tsx`, `ImageView.tsx`, `DrawioView.tsx`). | |
| 8 | ||
| 9 | ## Traps learned | |
| 10 | ||
| 11 | - Wails CLI `go install` needs `CGO_ENABLED=0` where there is no gcc; Windows cross-build needs no C toolchain; macOS/Linux builds need Xcode / webkit2gtk. `wails build` writes `frontend/wailsjs/` and `build/bin/` — both gitignored. | |
| 12 | - Wails "plain" frontend: never style a screen by `#id` when hiding relies on `[hidden]` — id specificity wins. | |
| 13 | - biome `organizeImports` fires on many pre-existing files → evidently not part of the project gate; `useExhaustiveDependencies` rejects synthetic deps; `role="listbox"/"option"` on divs needs `tabIndex={-1}` plus a `useSemanticElements` suppression. | |
| 14 | - `sandboxes/` (untracked sbx source checkout at the repo root) is walked by `/api/files/search`; consider gitignoring/removing it. | |
| 15 | - The IssueSpec task-item schema is unknown here (no tool installed); tickets were filled with `body` text only (bob used `{text, done}` tasks in 0005 — unverified shape). | |
| 16 | ||
| 17 | ## Next steps (user's decisions) | |
| 18 | ||
| 19 | 1. Rebuild ori-desktop (`cd ori-desktop && wails build && open build/bin/ori-desktop.app`) and report whether ori shows in the frame. | |
| 20 | 2. Run the qlty gate; fix findings without weakening checks. | |
| 21 | 3. Optional follow-ups: render `user_message.attachments` as chips; refresh the skills list on demand; offline draw.io via vendored `viewer-static.min.js`; ori's own app icon for the desktop; mermaid preview (ticket 0010), light/dark themes (0013), resizable explorer (0015) are open tickets not touched. | |
| 22 | 4. Commit — everything since 2434cc7 is still uncommitted. |