Skip to content

Add a project-scoped file manager to the chat workspace #241

Description

@Haz4rdovisk

Problem

Local projects give a chat a durable working folder, but the desktop UI does not provide a project-scoped way to inspect or manage that folder. Users must leave Chat On Steroids to browse files, and common actions such as previewing a result, making a small text edit, attaching an existing project file, or creating/renaming a file are disconnected from the project/session context already owned by the app.

The file UI should preserve the existing security boundary: the renderer should work only with project IDs and relative paths. Native paths, approved-root enforcement, symlink/junction checks and filesystem mutation should remain in the main process.

Desired behavior

  • Show Files only when the selected/new chat has a local project; workers inherit their prime project's workspace for this view.
  • Lazily browse the project tree and refresh expanded directories when the filesystem changes.
  • Preview bounded text/Markdown, supported images and PDFs in-app; offer syntax-highlighted text/code viewing and bounded editing.
  • Create files/folders, rename entries, move entries to the OS Trash after confirmation, reveal an entry in the OS file manager, and attach a regular project file through the existing input-attachment staging path.
  • Keep every operation scoped to the explicit LocalProject and reject traversal/link escapes.
  • Share the existing right-side work slot with Sub-agents, including one persistent/resizable width, so opening either panel closes the other.

Acceptance / security

  • Renderer never receives a native project path as file-operation authority or preview source.
  • Absolute paths, . / .., invalid leaf names, symlink/junction traversal and paths outside the selected project are rejected.
  • Text saves detect external changes before overwriting.
  • Preview and directory payloads are bounded.
  • Markdown preview does not execute scripts or load arbitrary remote media.
  • Existing chat/composer, project, agent and attachment semantics remain intact.

Related to #206, but this issue is intentionally narrower: it adds a Files surface for the current single-project workspace and does not implement multi-folder projects.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions