Zum Inhalt springen

Filebrowser

Was es ist

Der Filebrowser ist ein anpassbares Seitenleisten-Panel für jedes Projekt. Er zeigt den Verzeichnisbaum des registrierten Projektpfads. Jede Dateioperation läuft durch einen Pfad-Guard (resolveSafe in lib/files.js), der Pfade ablehnt, die via ../ aus dem Projektstamm ausbrechen, und dabei 403 zurückgibt.

Unterstützte Operationen: Verzeichnisse auflisten, Dateien lesen (Text bis 2 MB, Bilder und PDFs bis 10 MB als Base64), Verzeichnisse erstellen, umbenennen oder verschieben (atomar), kopieren, per Multipart hochladen und in den OS-Papierkorb verschieben. Dateien werden nie mit rm gelöscht; der Papierkorb-Aufruf geht auf macOS und Linux an den Systempapierkorb.

Live-Änderungen im Verzeichnis kommen über den /api/files/events-WebSocket an, sodass sich der Baum im Browser ohne manuelles Neuladen aktualisiert.

Warum / wann

Der Filebrowser ist nützlich, wenn eine Coding-Session Dateien erstellt oder geändert hat und man diese inspizieren möchte, ohne in ein Terminal oder einen externen Editor zu wechseln. Quelldateien lassen sich mit Syntax-Highlighting vorschauen, PDFs inline öffnen und Assets direkt ins Projektverzeichnis hochladen.

Er ergänzt auch das Repo-Panel: Das Repo-Panel zeigt, was sich in git geändert hat; der Filebrowser zeigt die gesamte Verzeichnisstruktur und ermöglicht das Öffnen jeder beliebigen Datei, nicht nur der modifizierten.

Wie nutzen

  • Baum öffnen: Das Repo-Panel über den Repo-Toggle der Session-Karte öffnen, dann den Files-Tab wählen. Der Baum lädt beim Aufklappen von Ordnern lazy nach.
  • Datei vorschauen: Datei anklicken, um sie im Vorschau-Modal zu öffnen. Textdateien bekommen Syntax-Highlighting (via highlight.js, on-demand geladen). PDFs öffnen in einem eingebetteten <iframe>. Dateien über dem Größenlimit zeigen stattdessen Metadaten.
  • Rechtsklick-Aktionen: Ein Rechtsklick auf eine Datei oder einen Ordner öffnet ein Kontextmenü mit Umbenennen, Kopieren, Verschieben und Löschen mit zwei Klicks (in den Papierkorb).
  • Hochladen: Dateien auf den Baum ziehen, um sie in den Zielordner hochzuladen. Alternativ Dateien auf den Terminal-Bereich ablegen oder den mobilen Datei-Picker nutzen. Der Uploader zeigt Fortschritts-Toasts und behandelt Konflikte (409) mit einem Dialog.
  • Ordner erstellen: Neue-Ordner-Aktion in der Baum-Toolbar nutzen.

Grenzen

Der Filebrowser ist auf das registrierte Projektverzeichnis beschränkt. Er kann weder $HOME noch Pfade außerhalb des Projektstamms anzeigen. Cross-Projekt-Kopieren wird nicht unterstützt. Uploads werden gegen das globale Write-Limiter (60 pro Minute) gezählt. Der File-Watcher hat einen 30-Sekunden-Idle-Timeout und ein 80-ms-Debounce; sehr schnelle Änderungen können gebündelt werden. Der Watcher ignoriert .git, daher triggern git-Operationen keine Live-Aktualisierung in der Seitenleiste.