mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-10-03 16:01:59 +00:00
* feat(search): replace the command palette with tabbed Search Everywhere The palette was one flat list that every new kind of row had to be squeezed into: tabs and SSH hosts rode along as "Switch to Tab: …" and "SSH: …" commands, and the only way to narrow to one kind was a magic seed word. Search Everywhere splits it into sources behind one trait — All, Actions, Terminals, Hosts — each with its own empty-query layout and ranking. The All tab shows each source's top rows, ordered by best match, with a row that opens the full tab. Tab / Shift-Tab walk the tabs and keep the query. - Terminals lists every open tab of every workspace (reusing the switcher's tab rows) and jumps to it wherever it lives, plus the shells and agents. - Hosts replaces the separate "Add Connection" input: a typed address or full `ssh …` line offers to connect. - Fixes Return doing nothing after a search that found nothing, or when the search opens pre-filtered: gpui-component re-picks the row from a stale frame; the delegate now re-arms the first row. - Fixes `ssh -p 2222 me@box` being offered as a quick-connect address with user `ssh -p 2222 me`. The keymap action stays `TogglePalette` so custom bindings keep working. * feat(search): a Sessions tab to resume past agent sessions Search Everywhere gains a Sessions tab listing the Claude Code and Codex sessions on this computer, read from ~/.claude/projects and ~/.codex/sessions ($CODEX_HOME). Sessions that ran in the focused tab's directory lead; the All tab offers the last three of them before anything is typed. Return opens a new tab in the session's directory and runs the agent's resume command with its configured launch flags. - Only each transcript's head and tail are read, off the window thread, and cached by path, size and mtime: ~170ms cold for 50 sessions, under 1ms warm. The search opens on the cached list and fills in. - Titles: /rename name, then the agent's own title (ai-title, Codex's session_index.jsonl), then the first thing typed, skipping harness injections. Codex rollouts it ran for itself (subagent/internal) and sessions never asked anything are left out. - A session whose directory is gone is refused with a notice rather than resumed where the agent cannot find it.
60 lines
2.3 KiB
Plaintext
60 lines
2.3 KiB
Plaintext
---
|
|
title: "SFTP"
|
|
description: "A file browser for the machine on the other end of the connection."
|
|
---
|
|
|
|
While a pane is in an SSH session, *SSH: Remote Files* (Search Everywhere) slides
|
|
a file panel in over it. It is a real SFTP client on the same connection — no
|
|
second login, no second password.
|
|
|
|
<Frame caption="The SFTP panel over an SSH pane, a download in progress">
|
|
<img src="/images/sftp-panel.webp" alt="The tty7 SFTP panel" />
|
|
</Frame>
|
|
|
|
## Browsing
|
|
|
|
The panel opens wherever the pane's shell currently is. If tty7 cannot tell
|
|
(the remote shell does not report its directory), it opens on the last folder
|
|
you browsed in that pane, or on the remote home directory the first time.
|
|
Switching between panes with the panel open brings each pane back to the folder
|
|
you left it on. **Go to Shell Directory** in the overflow menu jumps back to the
|
|
shell's directory at any time.
|
|
|
|
Right-click a row for **Edit** (**Open** on a directory), **Download**,
|
|
**Follow Symlink**, **Rename**, **chmod…**, and delete. The overflow menu adds
|
|
**New Folder**, **New File**, **Upload…**, and **Refresh**.
|
|
|
|
## Editing
|
|
|
|
Click a text file and it opens in the [built-in
|
|
editor](/window/side-panel), the same gesture as the local file tree; saving
|
|
writes straight back over the same connection. Files the editor cannot hold —
|
|
binary, or over its 4 MB limit — say so instead; right-click → **Download**
|
|
for those.
|
|
|
|
## Transferring
|
|
|
|
| Direction | How |
|
|
|---|---|
|
|
| Download | Right-click → **Download** |
|
|
| Upload | **Upload…**, or drag files into the panel |
|
|
|
|
Uploads are written under a temporary name and renamed into place at the end, so
|
|
a half-finished file never looks like a finished one. A name that is already
|
|
taken asks before replacing.
|
|
|
|
**Transfer History** in the overflow menu shows every transfer with its
|
|
progress, and lets you cancel one in flight. The panel header summarises what is
|
|
happening — *"2 transferring · 64%"*.
|
|
|
|
## Permissions
|
|
|
|
**chmod…** takes an octal mode (`755`, `600`). The current mode is shown in the
|
|
row's editor before you change it.
|
|
|
|
<Tip>
|
|
For files in a [remote workspace](/remote/workspaces) you can often skip SFTP
|
|
entirely — the Files panel reads and writes across the link directly, and the
|
|
built-in editor saves back to the remote machine.
|
|
</Tip>
|