daemon: report the directory a session was spawned in #178
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis#178
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
SessionInfo.cwdis the directory a session's program last announced with OSC 7. A session whose program never sends OSC 7 (Claude Code, or a command spawned without a shell) lists no directory at all, though the daemon chose the directory the child started in.adroit keeps every session in a felis daemon and groups sessions by the directory each one works in. After adroit restarts, the daemon is the only place that still knows that directory, so adroit records it in the session's tags at spawn. A tag holds 128 bytes, and a path under
.claude/worktrees/in a deep checkout runs longer, so adroit splits the path across numbered tags and joins them back when listing. Tags are opaque labels; carrying a path the daemon already holds spends that budget on duplicated state (principle 3: the daemon owns state).GitHub mirror: https://github.com/felis-terminal/felis/issues/7
Direction
SessionInfo.spawn_cwd: Option<String>: the absolute directory the child was actually started in.Noneonly where the daemon does not know it.SpawnArgs.cwdas sent: an emptycwdmeans the daemon's own cwd, and an unusablecwdon a bare shell launch falls back to it (spawn_cwdand the fallback inserve.rs).upgrade/dump.rs), so a restored session keeps it. A session adopted from a PTY the daemon did not spawn reportsNone.docs/reference/ipc.mdnext tocwd,--format jsonoffelis sessions list/info,CHANGELOG.md.felis sessions infoprints it in its human-readable output, or whether the field stays a scripting surface only.Principle check