zellij-org / zellij

A terminal workspace with batteries included
https://zellij.dev
MIT License
21.95k stars 666 forks source link

tabs / panes lost their working directories on session restore after a reboot #3374

Open n8henrie opened 6 months ago

n8henrie commented 6 months ago

Issue description

I am new to zellij. I have about 15 named tabs in a named session (main). Each tab has a working directory for a project (from which the tab name is derived). I have been able to disconnect and reconnect to this session and am glad to see this works well!

I just had to reboot my machine, and upon resurrecting this session, I found that about half of the tabs had retained their name, but their working directory had been changed to a different directory (~/git/espanso in this case, I doubt the specific directory is relevant except that it was not $HOME or / or something empty). Oddly, the other half of the tabs had retained their working directory.

Minimal reproduction

Somewhat difficult since it requires a full machine reboot, and I just got done changing all of the tabs back to the proper directory. I will report back if this recurs though.

Other relevant information

$ zellij --version
zellij 0.40.1
$ sw_vers
ProductName:            macOS
ProductVersion:         14.5
BuildVersion:           23F79

Is there a user-facing way for me to inspect the cached files -- I assume in ~/Library/Caches/org.Zellij-Contributors.Zellij -- to see if there is something that seems off? All I see is a bunch of UUIDs, so I'm not entirely sure where to look.

Dialga commented 6 months ago

Following this, my cwd in open tabs also aren't being restored.

n8henrie commented 5 months ago

Just rebooted for the first time since posting, this happened again. I made sure to detach from the session before rebooting to see if that would change anything, but it didn't.

I have 14 tabs open, each with a different working directory. Of the 14, 13 of them restored their cwd to ~/git/espanso. 1 of them (the 12th) properly restored its cwd to ~/git/esp32-rust-mqtt -- I don't see any rhyme or reason why that 12th tab worked as expected.

EDIT: Actually, one of the tabs actually had 3 panes; one of the panes incorrectly restored to ~/git/espanso, while the other two stayed in their expected cwd.

n8henrie commented 4 months ago

Continues to be an issue.

While the cache file is itself being updated, It doesn't seem that the CWD is being updated in the cache file.

As one can see, I'm currently in session main, in a tab called icwasm, which has only one pane.

Screenshot 2024-07-15 at 06 01 38

From here, one can see that the session layout file is being updated every second, but the reported cwd for this tab / pane is wrong:

$ date; stat ~/Library/Caches/org.Zellij-Contributors.Zellij/0.40.1/session_info/"${ZELLIJ_SESSION_NAME}"/session-layout.kdl
Mon Jul 15 06:03:20 MDT 2024
  File: /Users/n8henrie/Library/Caches/org.Zellij-Contributors.Zellij/0.40.1/session_info/main/session-layout.kdl
  Size: 13363           Blocks: 32         IO Block: 4096   regular file
Device: 1,22    Inode: 688103593   Links: 1
Access: (0644/-rw-r--r--)  Uid: (  501/n8henrie)   Gid: (   20/   staff)
Access: 2024-07-15 06:00:46.692627626 -0600
Modify: 2024-07-15 06:03:20.255973977 -0600
Change: 2024-07-15 06:03:20.255973977 -0600
 Birth: 2024-05-19 13:58:34.778133752 -0600
$
$ rg -A7 'name="icwasm"' ~/Library/Caches/org.Zellij-Contributors.Zellij/0.40.1/session_info/"${ZELLIJ_SESSION_NAME}"
/Users/n8henrie/Library/Caches/org.Zellij-Contributors.Zellij/0.40.1/session_info/main/session-layout.kdl
27:    tab name="icwasm" focus=true hide_floating_panes=true {
28-        pane size=1 borderless=true {
29-            plugin location="zellij:tab-bar"
30-        }
31-        pane cwd="/Users/n8henrie/git/espanso" focus=true
32-        pane size=2 borderless=true {
33-            plugin location="zellij:status-bar"
34-        }

As noted above, panes are still restoring themselves to /Users/n8henrie/git/espanso -- not sure why this directory specifically.