Finder: icon view and multi-select - #5
Merged
Merged
Conversation
Spec §6.3 icon view and §6.5 selection. - Icon view: 80px grid, toolbar toggle (aria-pressed) and View menu; the choice persists per folder and across reloads (views in the Finder's persisted state). Familiar-written files show in the familiar's colour. - Selection is now a set with a range anchor: click selects, Shift-click extends a range, Cmd/Ctrl-click toggles, Cmd/Ctrl+A selects all, arrows move (Shift+arrow extends), and a marquee drag on the icon grid background selects what it touches. Selection is painted in place, never by re-rendering (re-rendering eats double-clicks, as the desktop icons showed). - Multi-item operations: Open opens each file, Duplicate and Move to Trash take the whole selection, and dragging a selected item carries every selected item. The status bar shows "N items, M selected". Tests: shell e2e 39 (117/117 over 3 repeats; new FND-09..FND-15); kernel 43/43. Clean-room attestation: written from the Cauldron spec and general knowledge only; no ryOS or Puter source, DOM, CSS, or assets consulted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Five unresolved review comments remain, including four moderate issues.
Review effort: Lite
Findings: 2
Open (3)
What changed in this PR
Adds Finder icon view, per-folder persistence, multi-selection, keyboard/marquee selection, and multi-item operations.
Changes:
- Added icon/list view controls and styling.
- Implemented selection, navigation, marquee, and multi-item actions.
- Added FND-09–FND-15 end-to-end and screenshot coverage.
| File | Summary | Review notes |
|---|---|---|
apps/shell/src/finder.ts |
Finder views, selection, navigation, and operations | Moderate: view persistence is scoped per window; Shift-arrow range handling needs a stable anchor; rendered menus can become stale; shortcuts should ignore editable targets. Nit: add multi-selection duplicate coverage. |
apps/shell/src/slate.css |
Icon-grid and selection styling | No comments. |
apps/shell/e2e/screenshots.spec.ts |
Icon-view marquee screenshot coverage | No comments. |
apps/shell/e2e/rows3.spec.ts |
Finder acceptance tests | No comments. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| #anchor: string | null = null; | ||
| #renaming: string | null = null; | ||
| /** View choice per folder (spec §6.3). */ | ||
| #views: Record<string, ViewMode> = {}; |
| if (step === 0) return; | ||
| const next = cur < 0 ? (step > 0 ? 0 : this.#order.length - 1) : Math.min(this.#order.length - 1, Math.max(0, cur + step)); | ||
| const name = this.#order[next]!; | ||
| if (extend && cur >= 0) this.select(new Set([...this.#sel, name]), name); |
Comment on lines
+258
to
+260
| async duplicate(names: string | string[]) { | ||
| for (const n of typeof names === "string" ? [names] : names) { | ||
| if (!(await this.#run(() => this.#shell.kernel.vfs.copy(u, this.#join(n), this.path)))) break; |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


What & why
Val asked for Finder's icon view and multi-select next (spec §6.3, §6.5).
Spec rows covered
FND-09 (icon view), FND-09b (per-folder persistence + reload), FND-10 (click/Shift/⌘), FND-11 (⌘A + multi-trash), FND-12 (marquee), FND-13 (arrows), FND-14 (multi-drag), FND-15 (multi-open).
Shell e2e 39 tests, 117/117 over three repeats · kernel 43/43 · typecheck clean.
Clean-room attestation
🤖 Generated with Claude Code