mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 02:29:33 +01:00
fix(terminal): clear the pane directory when a read says the session has none
applyPaneExits() only applied the manager's directory when it returned a
value, so after a successful read a session that was split into several
panes, or was no longer on the socket, kept its stale cwd. The manager
already keeps its map across a failed or empty read, so the server now
applies its answer as given, undefined included, and setCwd() broadcasts
the clear once.
A blank #{pane_current_path} on a single-pane session (tmux could not read
the process cwd that tick) now carries the previous entry forward in
derivePaneCurrentPaths(), so only a split or unlisted session clears.
The server tests now drive the real TmuxManager with only the tmux read
faked. docs/api-reference.md documents SessionState.cwd.
This commit is contained in:
1 parent
1607b1e488
commit
54c1692350
5 files changed
+146
-21
No files matched your search
@@ -969,6 +969,15 @@ also pure decoration: it confers no permission, and a child is unaffected by its
|
||||
parent exiting. It appears on session state as `parentSessionId` (absent when
|
||||
unresolved) and survives a server restart.
|
||||
|
||||
## Pane directory (`cwd`)
|
||||
|
||||
Session state (`GET /api/v1/sessions`, the `session:updated` event) may carry `cwd`,
|
||||
the directory the session's local tmux pane is in now (`#{pane_current_path}`), which
|
||||
the web UI uses as the base for a relative path printed in the terminal. It is
|
||||
runtime-only (never persisted, so a restart starts without it), absent for remote,
|
||||
Docker, direct-PTY and rediscovered sessions and for a session split into several panes,
|
||||
and never a confinement root: file routes stay confined to `workingDir`.
|
||||
|
||||
## Session model (`displayModel`)
|
||||
|
||||
Session state (`GET /api/v1/sessions`, the `session:updated` event) carries the model a
|
||||
|
||||
Reference in new issue
Block a user