Skip to content

File Management (Web UI)

This page documents the implemented Files surface at /ui/files.

File browser layout

  • Left panel: directory tree for allowed roots
  • Main panel: file/folder results
  • Breadcrumbs: quick navigation inside the selected path

Implemented filters and sorting

The current Files view supports:

  • search by name
  • type filter (image, pdf, video, audio, text, all)
  • sorting by name, modified, created, size, type
  • ascending/descending sort order
  • grid/list view toggle
  • incremental loading via Load more

Upload behavior

Uploads are handled by /ui/files/upload and enforce validation:

  • empty filenames are skipped/ignored
  • unsafe/invalid names are normalized/rejected
  • hidden filenames are rejected by default in this flow
  • oversized files are rejected
  • existing files are not silently overwritten

After upload, the file results panel refreshes in place.

Preview and raw file access

  • Preview opens a file preview panel (/ui/files/preview)
  • Raw file endpoint: /ui/files/raw?path=...
  • Thumbnail endpoint exists for image/pdf/video previews (/ui/files/thumbnail)

Preview intentionally degrades safely for unsupported or unreadable files.

Desktop-only integration in Files view

When running in the desktop app, context actions can call the pywebview bridge:

  • window.desktopOpenPath(path) to reveal a path in Finder/Explorer/Nautilus

This action is hidden in plain browser mode.

Not yet implemented in this surface

The UI intentionally marks bulk and context actions as not yet implemented:

  • bulk move
  • bulk rename
  • bulk delete
  • per-item move/rename/delete from context menu