From 320d8ee95b40c693a3cdec8aeb2b80d9fa6e9a0b Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Thu, 13 Aug 2026 21:04:38 -0400 Subject: [PATCH] feat(config): enable pane labels, terminal toasts, tweak kitty and niri settings --- dot_config/herdr/config.toml | 4 +- dot_config/herdr/herdr-client.log | 32 + dot_config/herdr/herdr-server.log | 758 ++++++++++++++++++ dot_config/herdr/plugins.json | 209 +++++ dot_config/herdr/session.json | 116 +-- dot_config/kitty/kitty.conf | 16 +- dot_config/lazygit/config.yml | 14 +- .../niri/exact_config.d/30-window-rules.kdl | 1 + dot_config/niri/exact_config.d/70-binds.kdl | 4 +- dot_config/nvim/README.md | 34 - dot_config/nvim/dot_luarc.json | 3 - dot_config/nvim/dot_neoconf.json | 20 - dot_config/nvim/dot_stylua.toml | 7 - dot_config/nvim/init.lua | 38 - dot_config/nvim/lazyvim.json | 9 - dot_config/nvim/lua/codemark/.keep | 0 dot_config/nvim/lua/community.lua | 32 - .../nvim/lua/config/ignore_patterns.lua | 314 -------- dot_config/nvim/lua/lazy_setup.lua | 32 - dot_config/nvim/lua/plugins/astrocore.lua | 456 ----------- dot_config/nvim/lua/plugins/astrolsp.lua | 104 --- dot_config/nvim/lua/plugins/astroui.lua | 15 - dot_config/nvim/lua/plugins/conform.lua | 105 --- dot_config/nvim/lua/plugins/flash.lua | 76 -- dot_config/nvim/lua/plugins/kitty.lua | 42 - dot_config/nvim/lua/plugins/mason.lua | 28 - dot_config/nvim/lua/plugins/none-ls.lua | 24 - dot_config/nvim/lua/plugins/treesitter.lua | 24 - dot_config/nvim/lua/plugins/user.lua | 98 --- dot_config/nvim/lua/plugins/yazi.lua | 91 --- dot_config/nvim/lua/polish.lua | 2 - dot_config/nvim/neovim.yml | 6 - dot_config/nvim/prdlk.sh | 24 - dot_config/nvim/private_dot_gitignore | 4 - dot_config/nvim/selene.toml | 8 - dot_config/nvim/zed-keymap.jsonc | 77 -- dot_config/yazi/package.toml | 9 +- 37 files changed, 1034 insertions(+), 1802 deletions(-) delete mode 100644 dot_config/nvim/README.md delete mode 100644 dot_config/nvim/dot_luarc.json delete mode 100644 dot_config/nvim/dot_neoconf.json delete mode 100644 dot_config/nvim/dot_stylua.toml delete mode 100644 dot_config/nvim/init.lua delete mode 100644 dot_config/nvim/lazyvim.json delete mode 100644 dot_config/nvim/lua/codemark/.keep delete mode 100644 dot_config/nvim/lua/community.lua delete mode 100644 dot_config/nvim/lua/config/ignore_patterns.lua delete mode 100644 dot_config/nvim/lua/lazy_setup.lua delete mode 100644 dot_config/nvim/lua/plugins/astrocore.lua delete mode 100644 dot_config/nvim/lua/plugins/astrolsp.lua delete mode 100644 dot_config/nvim/lua/plugins/astroui.lua delete mode 100644 dot_config/nvim/lua/plugins/conform.lua delete mode 100644 dot_config/nvim/lua/plugins/flash.lua delete mode 100644 dot_config/nvim/lua/plugins/kitty.lua delete mode 100644 dot_config/nvim/lua/plugins/mason.lua delete mode 100644 dot_config/nvim/lua/plugins/none-ls.lua delete mode 100644 dot_config/nvim/lua/plugins/treesitter.lua delete mode 100644 dot_config/nvim/lua/plugins/user.lua delete mode 100644 dot_config/nvim/lua/plugins/yazi.lua delete mode 100644 dot_config/nvim/lua/polish.lua delete mode 100644 dot_config/nvim/neovim.yml delete mode 100644 dot_config/nvim/prdlk.sh delete mode 100644 dot_config/nvim/private_dot_gitignore delete mode 100644 dot_config/nvim/selene.toml delete mode 100644 dot_config/nvim/zed-keymap.jsonc diff --git a/dot_config/herdr/config.toml b/dot_config/herdr/config.toml index 98dfd36..51c3c51 100644 --- a/dot_config/herdr/config.toml +++ b/dot_config/herdr/config.toml @@ -1,7 +1,7 @@ onboarding = false [ui] -show_agent_labels_on_pane_borders = false +show_agent_labels_on_pane_borders = true agent_panel_sort = "priority" [keys] # tmux-style bindings (prefix is the leader, default ctrl+b) @@ -71,4 +71,4 @@ command = "vim-herdr-navigation.right" description = "navigate right (vim/herdr)" [ui.toast] -delivery = "system" +delivery = "terminal" diff --git a/dot_config/herdr/herdr-client.log b/dot_config/herdr/herdr-client.log index 633d310..885bbf2 100644 --- a/dot_config/herdr/herdr-client.log +++ b/dot_config/herdr/herdr-client.log @@ -144,3 +144,35 @@ 2026-08-11T19:09:25.791502Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock 2026-08-11T19:09:25.993975Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame 2026-08-11T19:09:28.222858Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=216140 +2026-08-11T19:46:47.094693Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=371595 +2026-08-11T19:46:47.094721Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-11T19:46:47.303780Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-11T19:46:49.103116Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=372056 +2026-08-11T19:46:49.103138Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-11T19:46:49.112674Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-11T19:47:12.071854Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=371595 +2026-08-11T19:47:12.091280Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=372056 +2026-08-11T20:00:20.762527Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=8489 +2026-08-11T20:00:20.762658Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-11T20:00:20.764334Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-11T20:25:17.280204Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=8489 +2026-08-11T20:25:19.733690Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=55901 +2026-08-11T20:25:19.733714Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-11T20:25:19.810402Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-11T20:38:46.666284Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=55901 +2026-08-11T20:41:50.439940Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=82669 +2026-08-11T20:41:50.439967Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-11T20:41:50.467945Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-12T02:40:29.265522Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=82669 +2026-08-12T17:39:16.296116Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=310780 +2026-08-12T17:39:16.296280Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-12T17:39:16.297226Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-12T18:43:57.927055Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=310780 +2026-08-12T18:48:02.972578Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=10003 +2026-08-12T18:48:02.972738Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-12T18:48:02.980497Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-13T02:14:18.289391Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=10003 +2026-08-13T19:25:45.498649Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=254621 +2026-08-13T19:25:45.498818Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock +2026-08-13T19:25:45.507671Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame +2026-08-13T19:26:16.630819Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=254621 diff --git a/dot_config/herdr/herdr-server.log b/dot_config/herdr/herdr-server.log index a84b505..90a0491 100644 --- a/dot_config/herdr/herdr-server.log +++ b/dot_config/herdr/herdr-server.log @@ -1893,3 +1893,761 @@ 2026-08-11T19:10:08.111473Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wS" tab_id="wS:t2" 2026-08-11T19:10:12.500007Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wS" tab_id="wS:t1" 2026-08-11T19:10:17.505765Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-11T20:00:20.712692Z INFO herdr::api::server: api server listening path=/home/prad/.config/herdr/herdr.sock +2026-08-11T20:00:20.713969Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=2 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-11T20:00:20.714486Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=2 pid=8532 +2026-08-11T20:00:20.714823Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=3 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-11T20:00:20.715189Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=3 pid=8535 +2026-08-11T20:00:20.715313Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=4 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-11T20:00:20.715674Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=4 pid=8538 +2026-08-11T20:00:20.715766Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=5 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-11T20:00:20.716182Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=5 pid=8543 +2026-08-11T20:00:20.716291Z INFO herdr::logging: session restore evaluated event="persist.restore" subsystem="persist" outcome="ok" workspaces=3 +2026-08-11T20:00:20.716299Z INFO herdr::app: using pane scrollback configuration pane_scrollback_limit_bytes=10000000 +2026-08-11T20:00:20.753457Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-11T20:00:20.754977Z INFO herdr::server::headless: restored session already has workspaces; ignoring startup cwd cwd=/home/prad +2026-08-11T20:00:20.755045Z INFO herdr::server::headless: client protocol socket listening path=/home/prad/.config/herdr/herdr-client.sock +2026-08-11T20:00:20.755063Z INFO herdr::server::headless: herdr server started api_socket=/home/prad/.config/herdr/herdr.sock client_socket=/home/prad/.config/herdr/herdr-client.sock +2026-08-11T20:00:20.755262Z INFO herdr::logging: herdr starting event="app.startup" subsystem="server" outcome="started" pid=8498 +2026-08-11T20:00:20.764360Z INFO herdr::server::headless: client connected client_id=2 cols=184 rows=78 cell_width_px=18 cell_height_px=47 render_encoding=SemanticFrame +2026-08-11T20:00:20.775061Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=1 rows=77 cols=159 scrollback_limit_bytes=10000000 +2026-08-11T20:00:20.775845Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=1 pid=9102 +2026-08-11T20:00:21.327516Z INFO herdr::pane: agent changed pane=1 previous_agent=None agent=Some(Omp) process=omp pgid=Some(9530) +2026-08-11T20:00:22.383016Z INFO herdr::pane: agent changed pane=1 previous_agent=None agent=Some(Omp) process=omp pgid=Some(9530) +2026-08-11T20:00:23.349109Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=4 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:00:23.350042Z INFO herdr::pane: pane session terminated pane=4 pid=8538 signal=Hangup +2026-08-11T20:00:24.793141Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=5 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:00:24.793624Z INFO herdr::pane: pane session terminated pane=5 pid=8543 signal=Hangup +2026-08-11T20:00:29.796893Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:00:34.770156Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=6 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:00:34.771732Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=6 pid=10560 +2026-08-11T20:00:34.771878Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wQ" tab_id="wQ:t1" +2026-08-11T20:00:35.708665Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=6 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:00:35.709122Z INFO herdr::pane: pane session terminated pane=6 pid=10560 signal=Hangup +2026-08-11T20:00:38.807130Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=7 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:00:38.808437Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=7 pid=10878 +2026-08-11T20:00:38.808620Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="wT" pane_id=7 +2026-08-11T20:00:38.808623Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:00:38.808644Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:00:43.814887Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-11T20:00:49.943116Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:00:50.940691Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:00:50.940854Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:00:51.726645Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wQ" +2026-08-11T20:00:51.726727Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wQ" tab_id="wQ:t1" +2026-08-11T20:00:52.393388Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=3 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:00:52.393850Z INFO herdr::pane: pane session terminated pane=3 pid=8535 signal=Hangup +2026-08-11T20:00:57.397556Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:03:42.198196Z INFO herdr::pane: agent changed pane=7 previous_agent=None agent=Some(Omp) process=omp pgid=Some(14791) +2026-08-11T20:03:42.543005Z INFO herdr::pane: agent changed pane=7 previous_agent=None agent=Some(Omp) process=omp pgid=Some(14791) +2026-08-11T20:03:47.543425Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:08:53.326355Z INFO herdr::server::headless: client resize client_id=2 cols=184 rows=38 cell_width_px=18 cell_height_px=47 +2026-08-11T20:08:54.227643Z INFO herdr::server::headless: client resize client_id=2 cols=184 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-11T20:10:04.079215Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:10:04.079282Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:10:05.838488Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:10:05.838565Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:10:10.845925Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:10:39.301915Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=8 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:10:39.303644Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=8 pid=22508 +2026-08-11T20:10:39.303855Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="wV" pane_id=8 +2026-08-11T20:10:39.303859Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wV" +2026-08-11T20:10:39.303884Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wV" tab_id="wV:t1" +2026-08-11T20:10:42.019492Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=8 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:10:42.020463Z INFO herdr::pane: pane session terminated pane=8 pid=22508 signal=Hangup +2026-08-11T20:10:42.844021Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=9 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:10:42.845289Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=9 pid=22755 +2026-08-11T20:10:42.845414Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:10:46.353247Z INFO herdr::server::headless: client resize client_id=2 cols=373 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-11T20:10:47.153953Z INFO herdr::server::headless: client resize client_id=2 cols=90 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-11T20:10:47.654437Z INFO herdr::server::headless: client resize client_id=2 cols=121 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-11T20:10:47.848508Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:10:47.854573Z INFO herdr::server::headless: client resize client_id=2 cols=184 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-11T20:10:48.355040Z INFO herdr::server::headless: client resize client_id=2 cols=247 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-11T20:16:01.218146Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:16:01.218210Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:16:02.312815Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:16:02.312892Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:16:03.638730Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:16:04.130733Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:16:04.130787Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:16:04.801441Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:16:04.801495Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:16:05.411145Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:16:05.411207Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:16:08.210644Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:16:08.210708Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:16:09.632067Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:16:09.632131Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:16:10.722324Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:16:10.722364Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:16:12.038378Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:16:12.038420Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:16:12.606166Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t3" +2026-08-11T20:16:14.444725Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=2 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:16:14.445235Z INFO herdr::pane: pane session terminated pane=2 pid=8532 signal=Hangup +2026-08-11T20:16:16.384537Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:16:16.384627Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:16:21.400364Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:16:24.534684Z INFO herdr::logging: tab renamed event="tab.rename" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:16:29.535979Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:17:00.424404Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=10 rows=77 cols=112 scrollback_limit_bytes=10000000 +2026-08-11T20:17:00.425991Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=10 pid=32089 +2026-08-11T20:17:00.426190Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="wW" pane_id=10 +2026-08-11T20:17:00.426193Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wW" +2026-08-11T20:17:00.426224Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wW" tab_id="wW:t1" +2026-08-11T20:17:05.437564Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-11T20:17:10.571679Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:plugin" method="plugin.action.invoke" changes_ui=true +2026-08-11T20:17:10.572503Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:plugin" method="plugin.action.invoke" +2026-08-11T20:17:13.154184Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=10 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:17:13.154753Z INFO herdr::pane: pane session terminated pane=10 pid=32089 signal=Hangup +2026-08-11T20:17:18.162726Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:17:18.526402Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:17:23.535088Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:21:50.712620Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:21:52.307701Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:21:53.111082Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:21:55.378063Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:21:57.103984Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:21:58.026877Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:21:58.886277Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:22:00.423307Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:22:00.423426Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:22:01.171436Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:22:01.171507Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:22:01.729797Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:22:01.729844Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:22:02.446419Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:22:02.446491Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:22:04.356905Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:22:05.178630Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:22:06.541380Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:22:11.549893Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:22:15.654031Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=11 rows=77 cols=112 scrollback_limit_bytes=10000000 +2026-08-11T20:22:15.655715Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=11 pid=50453 +2026-08-11T20:22:15.655882Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t2" +2026-08-11T20:22:20.661264Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:22:23.282800Z INFO herdr::logging: tab renamed event="tab.rename" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t2" +2026-08-11T20:22:28.285190Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:22:43.174150Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=12 rows=77 cols=223 scrollback_limit_bytes=10000000 +2026-08-11T20:22:43.176276Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=12 pid=51313 +2026-08-11T20:22:43.176421Z INFO herdr::logging: tab renamed event="tab.rename" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t3" +2026-08-11T20:22:43.176491Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t3" +2026-08-11T20:22:48.182572Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:24:59.641671Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t2" +2026-08-11T20:25:04.647378Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:25:08.984075Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t3" +2026-08-11T20:25:09.813187Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t1" +2026-08-11T20:25:10.369158Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t2" +2026-08-11T20:25:10.477493Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786479910476993102" method="pane.release_agent" changes_ui=true +2026-08-11T20:25:10.479531Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786479910476993102" method="pane.release_agent" +2026-08-11T20:25:12.516692Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786479912516356848" method="pane.release_agent" changes_ui=true +2026-08-11T20:25:12.518847Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786479912516356848" method="pane.release_agent" +2026-08-11T20:25:15.378350Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:25:17.279194Z INFO herdr::server::headless: client detached client_id=2 +2026-08-11T20:25:17.282479Z INFO herdr::server::headless: client disconnected client_id=2 +2026-08-11T20:25:19.810486Z INFO herdr::server::headless: client connected client_id=4 cols=184 rows=78 cell_width_px=18 cell_height_px=47 render_encoding=SemanticFrame +2026-08-11T20:25:30.264217Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=11 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-11T20:25:30.268557Z INFO herdr::pane: pane session terminated pane=11 pid=50453 signal=Hangup +2026-08-11T20:25:30.269540Z WARN herdr::app::actions: PaneDied for unknown pane pane=11 +2026-08-11T20:25:30.285440Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-11T20:25:33.223423Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=13 rows=77 cols=80 scrollback_limit_bytes=10000000 +2026-08-11T20:25:33.225397Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=13 pid=56220 +2026-08-11T20:25:33.225573Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t4" +2026-08-11T20:25:38.231614Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:26:05.624995Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786479965624740498" method="pane.release_agent" changes_ui=true +2026-08-11T20:26:05.627473Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786479965624740498" method="pane.release_agent" +2026-08-11T20:26:10.708957Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786479970708734383" method="pane.release_agent" changes_ui=true +2026-08-11T20:26:10.712461Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786479970708734383" method="pane.release_agent" +2026-08-11T20:26:14.393082Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786479974392831869" method="pane.release_agent" changes_ui=true +2026-08-11T20:26:14.395710Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786479974392831869" method="pane.release_agent" +2026-08-11T20:26:19.026308Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786479979026052592" method="pane.release_agent" changes_ui=true +2026-08-11T20:26:19.028897Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786479979026052592" method="pane.release_agent" +2026-08-11T20:30:20.754566Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-11T20:37:57.029292Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=14 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:37:57.030868Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=14 pid=75792 +2026-08-11T20:37:57.031051Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t5" +2026-08-11T20:38:02.035769Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:38:10.089803Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:plugin" method="plugin.action.invoke" changes_ui=true +2026-08-11T20:38:10.091040Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:plugin" method="plugin.action.invoke" +2026-08-11T20:38:10.114680Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:plugin" method="plugin.pane.open" changes_ui=true +2026-08-11T20:38:10.115302Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=15 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:38:10.116487Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=15 pid=76674 +2026-08-11T20:38:10.117497Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:plugin" method="plugin.pane.open" +2026-08-11T20:38:13.580175Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t5" +2026-08-11T20:38:18.584802Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:38:20.011055Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wT" tab_id="wT:t5" +2026-08-11T20:38:21.838590Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=14 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:38:21.839265Z INFO herdr::pane: pane session terminated pane=14 pid=75792 signal=Hangup +2026-08-11T20:38:23.494582Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:pane:rename" method="pane.rename" changes_ui=true +2026-08-11T20:38:23.494720Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:pane:rename" method="pane.rename" +2026-08-11T20:38:23.495677Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=15 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:38:23.496220Z INFO herdr::pane: pane session terminated pane=15 pid=76674 signal=Hangup +2026-08-11T20:38:28.501291Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:38:29.442729Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=13 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:38:29.443732Z INFO herdr::pane: pane session terminated pane=13 pid=56220 signal=Hangup +2026-08-11T20:38:32.281969Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=12 status="ExitStatus { code: 0, signal: None }" +2026-08-11T20:38:32.282636Z INFO herdr::pane: pane session terminated pane=12 pid=51313 signal=Hangup +2026-08-11T20:38:37.287692Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:38:40.486764Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=9 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-11T20:38:40.490111Z INFO herdr::pane: pane session terminated pane=9 pid=22755 signal=Hangup +2026-08-11T20:38:40.490956Z WARN herdr::app::actions: PaneDied for unknown pane pane=9 +2026-08-11T20:38:40.507947Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-11T20:38:41.699352Z INFO herdr::logging: workspace closed event="workspace.close" subsystem="workspace" outcome="ok" workspace_id="wT" +2026-08-11T20:38:41.701515Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=7 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-11T20:38:41.764842Z INFO herdr::pane: pane session terminated pane=7 pid=10878 signal=Hangup +2026-08-11T20:38:41.766301Z WARN herdr::app::actions: PaneDied for unknown pane pane=7 +2026-08-11T20:38:41.781017Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-11T20:38:46.665516Z INFO herdr::server::headless: client detached client_id=4 +2026-08-11T20:38:46.666753Z INFO herdr::server::headless: client disconnected client_id=4 +2026-08-11T20:38:46.773486Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=1 +2026-08-11T20:41:50.468029Z INFO herdr::server::headless: client connected client_id=6 cols=184 rows=78 cell_width_px=18 cell_height_px=47 render_encoding=SemanticFrame +2026-08-11T20:41:54.883534Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=16 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:41:54.884799Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=16 pid=82744 +2026-08-11T20:41:54.884990Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="wX" pane_id=16 +2026-08-11T20:41:54.884993Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-11T20:41:54.885020Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t1" +2026-08-11T20:41:58.450037Z INFO herdr::pane: agent changed pane=16 previous_agent=None agent=Some(Omp) process=omp pgid=Some(83230) +2026-08-11T20:41:58.827292Z INFO herdr::pane: agent changed pane=16 previous_agent=None agent=Some(Omp) process=omp pgid=Some(83230) +2026-08-11T20:42:03.727468Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:52:45.725070Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=17 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-11T20:52:45.726515Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=17 pid=126869 +2026-08-11T20:52:45.726678Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-11T20:52:50.733526Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T20:52:51.318956Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786481571318638345" method="pane.release_agent" changes_ui=true +2026-08-11T20:52:51.320997Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786481571318638345" method="pane.release_agent" +2026-08-11T20:54:03.854364Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786481643854186973" method="pane.release_agent" changes_ui=true +2026-08-11T20:54:03.856931Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786481643854186973" method="pane.release_agent" +2026-08-11T20:54:38.585558Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t1" +2026-08-11T20:54:40.353977Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-11T20:54:41.271509Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:54:41.271591Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:54:42.050072Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-11T20:54:42.050151Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-11T20:54:43.180023Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wP" +2026-08-11T20:54:43.180156Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-11T20:54:48.192598Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-11T21:00:20.755397Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-11T21:30:20.757272Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-11T22:00:20.758646Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-11T22:30:20.761337Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-11T23:00:20.762304Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-11T23:30:20.764546Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T00:00:20.766755Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T00:30:20.767862Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T01:00:20.769550Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T01:30:20.771302Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T02:00:20.772791Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T02:30:20.773584Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T02:40:29.246637Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=16 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T02:40:29.257840Z INFO herdr::pane: pane session terminated pane=16 pid=82744 signal=Hangup +2026-08-12T02:40:29.260548Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=1 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T02:40:29.263229Z INFO herdr::server::headless: server shutdown initiated +2026-08-12T02:40:29.279422Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=17 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T02:40:29.313324Z INFO herdr::server::headless: completing server shutdown +2026-08-12T02:40:29.364329Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T02:40:29.364358Z INFO herdr::server::headless: headless server exiting +2026-08-12T02:40:29.364717Z INFO herdr::pane: pane session terminated pane=17 pid=126869 signal=Hangup +2026-08-12T02:40:29.364735Z INFO herdr::pane: pane session terminated pane=1 pid=9102 signal=Hangup +2026-08-12T02:40:29.364939Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-12T02:40:29.378705Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="server" outcome="completed" pid=8498 +2026-08-12T17:39:16.246166Z INFO herdr::api::server: api server listening path=/home/prad/.config/herdr/herdr.sock +2026-08-12T17:39:16.247919Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=2 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T17:39:16.248741Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=2 pid=310819 +2026-08-12T17:39:16.249124Z INFO herdr::logging: session restore evaluated event="persist.restore" subsystem="persist" outcome="ok" workspaces=2 +2026-08-12T17:39:16.249137Z INFO herdr::app: using pane scrollback configuration pane_scrollback_limit_bytes=10000000 +2026-08-12T17:39:16.287583Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T17:39:16.289262Z INFO herdr::server::headless: restored session already has workspaces; ignoring startup cwd cwd=/home/prad +2026-08-12T17:39:16.289320Z INFO herdr::server::headless: client protocol socket listening path=/home/prad/.config/herdr/herdr-client.sock +2026-08-12T17:39:16.289335Z INFO herdr::server::headless: herdr server started api_socket=/home/prad/.config/herdr/herdr.sock client_socket=/home/prad/.config/herdr/herdr-client.sock +2026-08-12T17:39:16.289373Z INFO herdr::logging: herdr starting event="app.startup" subsystem="server" outcome="started" pid=310785 +2026-08-12T17:39:16.297261Z INFO herdr::server::headless: client connected client_id=2 cols=184 rows=78 cell_width_px=18 cell_height_px=47 render_encoding=SemanticFrame +2026-08-12T17:39:16.307572Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=1 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:39:16.308344Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=1 pid=310975 +2026-08-12T17:39:16.860516Z INFO herdr::pane: agent changed pane=1 previous_agent=None agent=Some(Omp) process=omp pgid=Some(311275) +2026-08-12T17:39:17.698927Z INFO herdr::server::headless: client resize client_id=2 cols=184 rows=38 cell_width_px=18 cell_height_px=47 +2026-08-12T17:39:17.736835Z INFO herdr::pane: agent changed pane=1 previous_agent=None agent=Some(Omp) process=omp pgid=Some(311275) +2026-08-12T17:39:18.200936Z INFO herdr::server::headless: client resize client_id=2 cols=184 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-12T17:39:21.309475Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:39:41.978503Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=3 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:39:41.979729Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=3 pid=312192 +2026-08-12T17:39:41.979896Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t4" +2026-08-12T17:39:44.038166Z INFO herdr::pane: agent changed pane=3 previous_agent=None agent=Some(Omp) process=omp pgid=Some(312518) +2026-08-12T17:39:46.989472Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:39:49.760060Z INFO herdr::pane: agent changed pane=3 previous_agent=Some(Omp) agent=None pgid=Some(312192) +2026-08-12T17:39:52.489789Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wP" tab_id="wP:t1" +2026-08-12T17:39:57.501136Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:40:24.644509Z INFO herdr::pane: agent changed pane=1 previous_agent=Some(Omp) agent=None pgid=Some(310975) +2026-08-12T17:40:25.244815Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=1 status="ExitStatus { code: 0, signal: None }" +2026-08-12T17:40:25.245946Z INFO herdr::pane: pane session terminated pane=1 pid=310975 signal=Hangup +2026-08-12T17:40:29.604739Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=3 status="ExitStatus { code: 0, signal: None }" +2026-08-12T17:40:29.605310Z INFO herdr::pane: pane session terminated pane=3 pid=312192 signal=Hangup +2026-08-12T17:40:34.610083Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=1 +2026-08-12T17:41:18.399647Z INFO herdr::app::worktrees: opening worktree dialog ws_idx=0 repo_root=/home/prad/Developer/github.com/prdlk/blume branch="worktree/quiet-cloud-248d" checkout_path=/home/prad/.herdr/worktrees/blume/worktree-quiet-cloud-248d +2026-08-12T17:41:48.508266Z INFO herdr::app::worktrees: opening worktree dialog ws_idx=0 repo_root=/home/prad/Developer/github.com/prdlk/blume branch="worktree/calm-forest-9059" checkout_path=/home/prad/.herdr/worktrees/blume/worktree-calm-forest-9059 +2026-08-12T17:41:59.915670Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=4 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:41:59.916710Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=4 pid=315795 +2026-08-12T17:41:59.916825Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="wY" pane_id=4 +2026-08-12T17:41:59.916828Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:41:59.916842Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:41:59.957407Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:plugin" method="plugin.pane.open" changes_ui=true +2026-08-12T17:41:59.958152Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=5 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:41:59.959072Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=5 pid=316060 +2026-08-12T17:41:59.959841Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:plugin" method="plugin.pane.open" +2026-08-12T17:42:04.961096Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:42:10.106966Z INFO herdr::logging: tab renamed event="tab.rename" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:42:12.514692Z INFO herdr::pane: agent changed pane=4 previous_agent=None agent=Some(Omp) process=omp pgid=Some(316494) +2026-08-12T17:42:13.148574Z INFO herdr::pane: agent changed pane=4 previous_agent=None agent=Some(Omp) process=omp pgid=Some(316494) +2026-08-12T17:42:18.049031Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:42:25.365286Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=6 rows=77 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T17:42:25.366506Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=6 pid=317135 +2026-08-12T17:42:25.366739Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t2" +2026-08-12T17:42:30.373263Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:42:32.779057Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:42:37.787255Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:42:57.980365Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t2" +2026-08-12T17:43:02.987658Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=2 +2026-08-12T17:43:06.802190Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=7 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:43:06.803464Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=7 pid=318936 +2026-08-12T17:43:06.803652Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t2" +2026-08-12T17:43:07.899729Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=7 status="ExitStatus { code: 0, signal: None }" +2026-08-12T17:43:07.900340Z INFO herdr::pane: pane session terminated pane=7 pid=318936 signal=Hangup +2026-08-12T17:43:08.978134Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=8 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:43:08.979295Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=8 pid=319423 +2026-08-12T17:43:08.979438Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="wZ" pane_id=8 +2026-08-12T17:43:08.979441Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wZ" +2026-08-12T17:43:08.979479Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:43:10.895593Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:43:13.689639Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T17:43:13.689728Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T17:43:14.941140Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T17:43:14.941237Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T17:43:19.943699Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:43:23.323975Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:43:23.324029Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:43:25.581492Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t2" +2026-08-12T17:43:26.310288Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=6 status="ExitStatus { code: 0, signal: None }" +2026-08-12T17:43:26.311488Z INFO herdr::pane: pane session terminated pane=6 pid=317135 signal=Hangup +2026-08-12T17:43:28.895260Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wZ" +2026-08-12T17:43:28.895347Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:43:31.227523Z INFO herdr::app::worktrees: opening worktree dialog ws_idx=2 repo_root=/home/prad/Developer/github.com/prdlk/blume branch="worktree/quiet-valley-ef7d" checkout_path=/home/prad/.herdr/worktrees/blume/worktree-quiet-valley-ef7d +2026-08-12T17:43:33.900153Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:43:49.116443Z INFO herdr::app::worktrees: opening worktree dialog ws_idx=2 repo_root=/home/prad/Developer/github.com/prdlk/blume branch="worktree/silver-cloud-e60f" checkout_path=/home/prad/.herdr/worktrees/blume/worktree-silver-cloud-e60f +2026-08-12T17:44:01.417348Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=9 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:44:01.418373Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=9 pid=321309 +2026-08-12T17:44:01.418479Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="w0" pane_id=9 +2026-08-12T17:44:01.418482Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:44:01.418506Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:44:01.442732Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:plugin" method="plugin.pane.open" changes_ui=true +2026-08-12T17:44:01.443520Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=10 rows=77 cols=160 scrollback_limit_bytes=10000000 +2026-08-12T17:44:01.444549Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=10 pid=321533 +2026-08-12T17:44:01.445770Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:plugin" method="plugin.pane.open" +2026-08-12T17:44:04.441888Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:44:05.623956Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T17:44:05.624033Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T17:44:06.796237Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:44:06.796302Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:44:09.314037Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wZ" +2026-08-12T17:44:09.314129Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:44:10.657782Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:44:10.657833Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:44:11.075746Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wZ" +2026-08-12T17:44:11.075797Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:44:11.866222Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:44:11.866284Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:44:13.012739Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wZ" +2026-08-12T17:44:13.012844Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:44:13.531248Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:44:13.531353Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:44:14.305504Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T17:44:14.305547Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T17:44:14.875167Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:44:14.875265Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:44:17.344569Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wZ" +2026-08-12T17:44:17.344628Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:44:17.681477Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:44:17.681566Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:44:19.234511Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wZ" +2026-08-12T17:44:19.234605Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wZ" tab_id="wZ:t1" +2026-08-12T17:44:23.432489Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=8 status="ExitStatus { code: 0, signal: None }" +2026-08-12T17:44:23.433100Z INFO herdr::pane: pane session terminated pane=8 pid=319423 signal=Hangup +2026-08-12T17:44:24.859611Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:44:24.859771Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:44:25.366469Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T17:44:25.366549Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T17:44:26.140597Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:44:26.140690Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:44:26.685528Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:44:26.685588Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:44:27.876030Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:44:27.876093Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:44:32.882061Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:44:32.900963Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=11 rows=77 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T17:44:32.902550Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=11 pid=324074 +2026-08-12T17:44:32.902701Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T17:44:37.906856Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:44:53.537928Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:44:53.537990Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:44:58.161326Z INFO herdr::pane: agent changed pane=9 previous_agent=None agent=Some(Omp) process=omp pgid=Some(325981) +2026-08-12T17:44:58.542408Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:44:58.744995Z INFO herdr::pane: agent changed pane=9 previous_agent=None agent=Some(Omp) process=omp pgid=Some(325981) +2026-08-12T17:45:03.381671Z INFO herdr::logging: tab renamed event="tab.rename" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:45:06.192527Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=12 rows=77 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T17:45:06.194211Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=12 pid=326470 +2026-08-12T17:45:06.194554Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t2" +2026-08-12T17:45:11.200097Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:45:12.629695Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:45:14.824805Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:45:14.824894Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T17:45:18.546202Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:45:18.546298Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:45:20.654375Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t2" +2026-08-12T17:45:21.952869Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:45:26.960952Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:45:27.131860Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:45:27.131958Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:45:27.954596Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:45:27.954671Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:45:32.961462Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:46:17.715661Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:46:17.715708Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:46:19.535170Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:46:19.535217Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:46:20.196087Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:46:20.196140Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:46:24.236573Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:46:24.236626Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:46:29.244467Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:46:35.527193Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T17:46:35.527280Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T17:46:36.971725Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T17:46:36.971772Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T17:46:41.978773Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T17:55:04.705902Z INFO herdr::app::actions: copied selection to clipboard +2026-08-12T17:57:45.087429Z INFO herdr::server::headless: client resize client_id=2 cols=89 rows=43 cell_width_px=18 cell_height_px=47 +2026-08-12T18:09:16.289137Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T18:39:16.290636Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T18:43:57.926337Z INFO herdr::server::headless: server shutdown initiated +2026-08-12T18:43:57.927853Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=5 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T18:43:57.929135Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=10 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T18:43:57.932361Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=11 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T18:43:57.936061Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=4 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T18:43:57.939076Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=2 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T18:43:57.940772Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=12 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T18:43:57.952476Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=9 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-12T18:43:57.976514Z INFO herdr::server::headless: completing server shutdown +2026-08-12T18:43:58.027376Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:43:58.027414Z INFO herdr::server::headless: headless server exiting +2026-08-12T18:43:58.027760Z INFO herdr::pane: pane session terminated pane=11 pid=324074 signal=Hangup +2026-08-12T18:43:58.027780Z INFO herdr::pane: pane session terminated pane=10 pid=321533 signal=Hangup +2026-08-12T18:43:58.027804Z INFO herdr::pane: pane session terminated pane=12 pid=326470 signal=Hangup +2026-08-12T18:43:58.027816Z INFO herdr::pane: pane session terminated pane=2 pid=310819 signal=Hangup +2026-08-12T18:43:58.027871Z INFO herdr::pane: pane session terminated pane=4 pid=315795 signal=Hangup +2026-08-12T18:43:58.027879Z INFO herdr::pane: pane session terminated pane=5 pid=316060 signal=Hangup +2026-08-12T18:43:58.027922Z INFO herdr::pane: pane session terminated pane=9 pid=321309 signal=Hangup +2026-08-12T18:43:58.033828Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="server" outcome="completed" pid=310785 +2026-08-12T18:48:02.922845Z INFO herdr::api::server: api server listening path=/home/prad/.config/herdr/herdr.sock +2026-08-12T18:48:02.924449Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=1 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T18:48:02.925062Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=1 pid=10042 +2026-08-12T18:48:02.925290Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=3 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T18:48:02.925750Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=3 pid=10045 +2026-08-12T18:48:02.925856Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=4 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T18:48:02.926294Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=4 pid=10048 +2026-08-12T18:48:02.926518Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=6 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T18:48:02.927009Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=6 pid=10052 +2026-08-12T18:48:02.927159Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=7 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-12T18:48:02.927633Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=7 pid=10058 +2026-08-12T18:48:02.927785Z INFO herdr::logging: session restore evaluated event="persist.restore" subsystem="persist" outcome="ok" workspaces=3 +2026-08-12T18:48:02.927793Z INFO herdr::app: using pane scrollback configuration pane_scrollback_limit_bytes=10000000 +2026-08-12T18:48:02.962584Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T18:48:02.963795Z INFO herdr::server::headless: restored session already has workspaces; ignoring startup cwd cwd=/home/prad +2026-08-12T18:48:02.963892Z INFO herdr::server::headless: client protocol socket listening path=/home/prad/.config/herdr/herdr-client.sock +2026-08-12T18:48:02.963917Z INFO herdr::server::headless: herdr server started api_socket=/home/prad/.config/herdr/herdr.sock client_socket=/home/prad/.config/herdr/herdr-client.sock +2026-08-12T18:48:02.963977Z INFO herdr::logging: herdr starting event="app.startup" subsystem="server" outcome="started" pid=10008 +2026-08-12T18:48:02.980517Z INFO herdr::server::headless: client connected client_id=2 cols=184 rows=78 cell_width_px=18 cell_height_px=47 render_encoding=SemanticFrame +2026-08-12T18:48:02.999997Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=2 rows=75 cols=77 scrollback_limit_bytes=10000000 +2026-08-12T18:48:03.000699Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=2 pid=10950 +2026-08-12T18:48:03.000823Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=5 rows=75 cols=78 scrollback_limit_bytes=10000000 +2026-08-12T18:48:03.001399Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=5 pid=10953 +2026-08-12T18:48:03.553117Z INFO herdr::pane: agent changed pane=2 previous_agent=None agent=Some(Omp) process=omp pgid=Some(11448) +2026-08-12T18:48:03.554301Z INFO herdr::pane: agent changed pane=5 previous_agent=None agent=Some(Omp) process=omp pgid=Some(11447) +2026-08-12T18:48:04.519942Z INFO herdr::pane: agent changed pane=5 previous_agent=None agent=Some(Omp) process=omp pgid=Some(11447) +2026-08-12T18:48:04.566076Z INFO herdr::pane: agent changed pane=2 previous_agent=None agent=Some(Omp) process=omp pgid=Some(11448) +2026-08-12T18:48:08.003206Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:48:16.465830Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:48:16.465903Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T18:48:16.903369Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:48:16.903466Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:48:21.917943Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:49:03.670900Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:49:08.680635Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:49:49.488425Z INFO herdr::server::headless: client resize client_id=2 cols=184 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-12T18:49:50.489793Z INFO herdr::server::headless: client resize client_id=2 cols=247 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-12T18:49:58.628026Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:pane:focus" method="pane.focus_direction" changes_ui=true +2026-08-12T18:49:58.628091Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:49:58.628122Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:49:58.628152Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:pane:focus" method="pane.focus_direction" +2026-08-12T18:49:59.632820Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:pane:focus" method="pane.focus_direction" changes_ui=true +2026-08-12T18:49:59.632918Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:49:59.632953Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:49:59.632986Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:pane:focus" method="pane.focus_direction" +2026-08-12T18:50:04.642419Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:50:40.775204Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T18:50:45.782868Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:51:32.427585Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:51:34.165991Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T18:51:39.178084Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:51:40.662207Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:51:42.092728Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:51:42.092817Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T18:51:43.530124Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t2" +2026-08-12T18:51:48.539260Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:54:57.827774Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:54:57.827870Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:55:02.836619Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:55:17.079204Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:55:22.088646Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:55:29.622093Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=3 status="ExitStatus { code: 0, signal: None }" +2026-08-12T18:55:29.623438Z INFO herdr::pane: pane session terminated pane=3 pid=10045 signal=Hangup +2026-08-12T18:55:34.633759Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T18:56:02.046826Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:56:02.046925Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t2" +2026-08-12T18:56:02.551631Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T18:56:02.551740Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T18:56:03.469515Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:56:03.469575Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:56:04.055798Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:56:04.055862Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t2" +2026-08-12T18:56:04.727750Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T18:56:04.727809Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T18:56:05.265687Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:56:05.265781Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:56:05.833269Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:56:05.833431Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t2" +2026-08-12T18:56:06.333445Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T18:56:06.333506Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T18:56:06.817144Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:56:06.817194Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:56:07.458931Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T18:56:07.458989Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T18:56:08.651573Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:56:08.651667Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T18:56:09.046241Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:56:09.046301Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:56:10.033753Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:56:10.033812Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T18:56:11.009186Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:56:11.009273Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:56:12.252774Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:56:12.252825Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T18:56:14.259310Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T18:56:14.259394Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T18:56:15.889015Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T18:56:15.889122Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T18:56:19.470364Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T18:56:20.558386Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=6 status="ExitStatus { code: 0, signal: None }" +2026-08-12T18:56:20.559013Z INFO herdr::pane: pane session terminated pane=6 pid=10052 signal=Hangup +2026-08-12T18:56:25.566830Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:14:55.970625Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T19:14:55.970684Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T19:15:00.907865Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:pane:focus" method="pane.focus_direction" changes_ui=true +2026-08-12T19:15:00.907955Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:pane:focus" method="pane.focus_direction" +2026-08-12T19:15:00.981672Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:15:01.016066Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="cli:pane:focus" method="pane.focus_direction" changes_ui=true +2026-08-12T19:15:01.016172Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="cli:pane:focus" method="pane.focus_direction" +2026-08-12T19:15:15.014692Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=8 rows=77 cols=223 scrollback_limit_bytes=10000000 +2026-08-12T19:15:15.016096Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=8 pid=45837 +2026-08-12T19:15:15.016267Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t4" +2026-08-12T19:15:20.025828Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:15:33.830322Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=8 status="ExitStatus { code: 0, signal: None }" +2026-08-12T19:15:33.830921Z INFO herdr::pane: pane session terminated pane=8 pid=45837 signal=Hangup +2026-08-12T19:15:35.911966Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T19:15:40.923031Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:18:02.963855Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T19:23:28.742257Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:23:32.289233Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T19:23:36.212378Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:23:41.227393Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:23:45.742646Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=9 rows=77 cols=223 scrollback_limit_bytes=10000000 +2026-08-12T19:23:45.744170Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=9 pid=97668 +2026-08-12T19:23:45.744412Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t5" +2026-08-12T19:23:46.591543Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786562626591247024" method="pane.release_agent" changes_ui=true +2026-08-12T19:23:46.593625Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786562626591247024" method="pane.release_agent" +2026-08-12T19:23:47.894775Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T19:23:48.232466Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:23:49.503009Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786562629502674215" method="pane.release_agent" changes_ui=true +2026-08-12T19:23:49.506266Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786562629502674215" method="pane.release_agent" +2026-08-12T19:23:53.249143Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:23:56.643118Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t5" +2026-08-12T19:24:00.629226Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T19:24:01.468418Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:24:03.943530Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t5" +2026-08-12T19:24:08.951314Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:24:12.640474Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T19:24:13.778470Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:24:18.795609Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=3 +2026-08-12T19:25:03.837793Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786562703837534325" method="pane.release_agent" changes_ui=true +2026-08-12T19:25:03.840861Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786562703837534325" method="pane.release_agent" +2026-08-12T19:25:08.310079Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786562708309756694" method="pane.release_agent" changes_ui=true +2026-08-12T19:25:08.312734Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786562708309756694" method="pane.release_agent" +2026-08-12T19:28:50.219093Z INFO herdr::logging: api request received event="api.request.start" subsystem="api" outcome="started" request_id="crush:release:1786562930218510482" method="pane.release_agent" changes_ui=true +2026-08-12T19:28:50.222546Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="ok" request_id="crush:release:1786562930218510482" method="pane.release_agent" +2026-08-12T19:28:53.714243Z INFO herdr::server::headless: client resize client_id=2 cols=375 rows=80 cell_width_px=18 cell_height_px=47 +2026-08-12T19:28:55.217657Z INFO herdr::server::headless: client resize client_id=2 cols=247 rows=78 cell_width_px=18 cell_height_px=47 +2026-08-12T19:28:57.028703Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=10 rows=77 cols=223 scrollback_limit_bytes=10000000 +2026-08-12T19:28:57.031427Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=10 pid=120123 +2026-08-12T19:28:57.031670Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:28:58.470690Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=11 rows=77 cols=112 scrollback_limit_bytes=10000000 +2026-08-12T19:28:58.472525Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=11 pid=120411 +2026-08-12T19:28:58.472803Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="w11" pane_id=11 +2026-08-12T19:28:58.472807Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w11" +2026-08-12T19:28:58.472864Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w11" tab_id="w11:t1" +2026-08-12T19:29:03.484433Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-12T19:29:05.533543Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wX" +2026-08-12T19:29:05.533634Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wX" tab_id="wX:t2" +2026-08-12T19:29:06.012423Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T19:29:06.012498Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:29:06.437842Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T19:29:06.437959Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T19:29:07.310440Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w11" +2026-08-12T19:29:07.310544Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w11" tab_id="w11:t1" +2026-08-12T19:29:08.436872Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T19:29:08.436995Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T19:29:10.678854Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T19:29:10.678926Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t3" +2026-08-12T19:29:15.690044Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-12T19:29:16.722595Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=10 status="ExitStatus { code: 0, signal: None }" +2026-08-12T19:29:16.723890Z INFO herdr::pane: pane session terminated pane=10 pid=120123 signal=Hangup +2026-08-12T19:29:21.736270Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-12T19:29:24.972442Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=4 status="ExitStatus { code: 0, signal: None }" +2026-08-12T19:29:24.973715Z INFO herdr::pane: pane session terminated pane=4 pid=10048 signal=Hangup +2026-08-12T19:29:29.985579Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-12T19:29:30.928974Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w11" +2026-08-12T19:29:30.929091Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w11" tab_id="w11:t1" +2026-08-12T19:29:35.939090Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-12T19:44:56.136290Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-12T19:44:56.136359Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="wY" tab_id="wY:t1" +2026-08-12T19:44:58.675005Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-12T19:44:58.675091Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w0" tab_id="w0:t1" +2026-08-12T19:45:03.689553Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-12T19:48:02.966392Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T20:18:02.967629Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T20:48:02.968691Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T21:18:02.971326Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T21:48:02.972814Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T22:18:02.974210Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T22:48:02.975395Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T23:18:02.976265Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-12T23:48:02.977840Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T00:18:02.980282Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T00:18:03.092318Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T00:48:02.981481Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T00:48:03.141734Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T01:18:02.982914Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T01:18:03.128942Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T01:48:02.984751Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T01:48:03.200636Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T02:14:18.288521Z INFO herdr::server::headless: client detached client_id=2 +2026-08-13T02:14:18.289950Z INFO herdr::server::headless: client disconnected client_id=2 +2026-08-13T02:18:02.986425Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T02:18:03.129556Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T02:48:02.986789Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T02:48:03.155153Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T03:18:02.988202Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T03:18:03.141990Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T03:19:36.443724Z INFO herdr::server::headless: server shutdown initiated +2026-08-13T03:19:36.447222Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=9 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-13T03:19:36.447473Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=7 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-13T03:19:36.447481Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=1 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-13T03:19:36.447512Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=11 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-13T03:19:36.447603Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=2 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-13T03:19:36.447909Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=5 status="ExitStatus { code: 1, signal: Some(\"Terminated\") }" +2026-08-13T03:19:36.493829Z INFO herdr::server::headless: completing server shutdown +2026-08-13T03:19:36.494324Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-13T03:19:36.494355Z INFO herdr::server::headless: headless server exiting +2026-08-13T03:19:36.495526Z INFO herdr::pane: pane session terminated pane=7 pid=10058 signal=Hangup +2026-08-13T03:19:36.495553Z INFO herdr::pane: pane session terminated pane=11 pid=120411 signal=Hangup +2026-08-13T03:19:36.495569Z INFO herdr::pane: pane session terminated pane=5 pid=10953 signal=Hangup +2026-08-13T03:19:36.495578Z INFO herdr::pane: pane session terminated pane=2 pid=10950 signal=Hangup +2026-08-13T03:19:36.495586Z INFO herdr::pane: pane session terminated pane=9 pid=97668 signal=Hangup +2026-08-13T03:19:36.495597Z INFO herdr::pane: pane session terminated pane=1 pid=10042 signal=Hangup +2026-08-13T03:19:36.499410Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="server" outcome="completed" pid=10008 +2026-08-13T19:25:45.449214Z INFO herdr::api::server: api server listening path=/home/prad/.config/herdr/herdr.sock +2026-08-13T19:25:45.450606Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=1 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-13T19:25:45.451176Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=1 pid=254656 +2026-08-13T19:25:45.451414Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=3 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-13T19:25:45.451963Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=3 pid=254659 +2026-08-13T19:25:45.452194Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=5 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-13T19:25:45.452668Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=5 pid=254662 +2026-08-13T19:25:45.452867Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=6 rows=24 cols=80 scrollback_limit_bytes=10000000 +2026-08-13T19:25:45.453412Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=6 pid=254669 +2026-08-13T19:25:45.453530Z INFO herdr::logging: session restore evaluated event="persist.restore" subsystem="persist" outcome="ok" workspaces=4 +2026-08-13T19:25:45.453541Z INFO herdr::app: using pane scrollback configuration pane_scrollback_limit_bytes=10000000 +2026-08-13T19:25:45.489376Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T19:25:45.490379Z INFO herdr::server::headless: restored session already has workspaces; ignoring startup cwd cwd=/home/prad/Developer/github.com/prdlk/blume +2026-08-13T19:25:45.490471Z INFO herdr::server::headless: client protocol socket listening path=/home/prad/.config/herdr/herdr-client.sock +2026-08-13T19:25:45.490493Z INFO herdr::server::headless: herdr server started api_socket=/home/prad/.config/herdr/herdr.sock client_socket=/home/prad/.config/herdr/herdr-client.sock +2026-08-13T19:25:45.490540Z INFO herdr::logging: herdr starting event="app.startup" subsystem="server" outcome="started" pid=254622 +2026-08-13T19:25:45.507695Z INFO herdr::server::headless: client connected client_id=2 cols=167 rows=70 cell_width_px=15 cell_height_px=39 render_encoding=SemanticFrame +2026-08-13T19:25:45.526269Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=2 rows=69 cols=142 scrollback_limit_bytes=10000000 +2026-08-13T19:25:45.527169Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=2 pid=255455 +2026-08-13T19:25:45.527340Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=4 rows=69 cols=143 scrollback_limit_bytes=10000000 +2026-08-13T19:25:45.528005Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=4 pid=255458 +2026-08-13T19:25:45.662923Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T19:25:46.079249Z INFO herdr::pane: agent changed pane=2 previous_agent=None agent=Some(Omp) process=omp pgid=Some(255988) +2026-08-13T19:25:46.080369Z INFO herdr::pane: agent changed pane=4 previous_agent=None agent=Some(Omp) process=omp pgid=Some(255986) +2026-08-13T19:25:46.594886Z INFO herdr::pane: agent changed pane=4 previous_agent=None agent=Some(Omp) process=omp pgid=Some(255986) +2026-08-13T19:25:46.687097Z INFO herdr::pane: agent changed pane=2 previous_agent=None agent=Some(Omp) process=omp pgid=Some(255988) +2026-08-13T19:25:50.529715Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-13T19:25:50.660500Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=4 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-13T19:25:50.705364Z INFO herdr::pane: pane session terminated pane=4 pid=255458 signal=Hangup +2026-08-13T19:25:50.706523Z WARN herdr::app::actions: PaneDied for unknown pane pane=4 +2026-08-13T19:25:50.723513Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-13T19:25:55.708990Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=4 +2026-08-13T19:25:55.817558Z INFO herdr::logging: workspace closed event="workspace.close" subsystem="workspace" outcome="ok" workspace_id="w0" +2026-08-13T19:25:55.818811Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=5 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-13T19:25:55.823514Z INFO herdr::pane: pane session terminated pane=5 pid=254662 signal=Hangup +2026-08-13T19:25:55.824922Z WARN herdr::app::actions: PaneDied for unknown pane pane=5 +2026-08-13T19:25:55.841652Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-13T19:25:58.009662Z INFO herdr::logging: workspace closed event="workspace.close" subsystem="workspace" outcome="ok" workspace_id="w11" +2026-08-13T19:25:58.015402Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=6 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-13T19:25:58.034934Z INFO herdr::pane: pane session terminated pane=6 pid=254669 signal=Hangup +2026-08-13T19:25:58.037087Z WARN herdr::app::actions: PaneDied for unknown pane pane=6 +2026-08-13T19:25:58.050543Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-13T19:25:59.811421Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=2 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-13T19:25:59.875356Z INFO herdr::pane: pane session terminated pane=2 pid=255455 signal=Hangup +2026-08-13T19:25:59.876391Z WARN herdr::app::actions: PaneDied for unknown pane pane=2 +2026-08-13T19:25:59.892803Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-13T19:26:00.833802Z INFO herdr::logging: workspace closed event="workspace.close" subsystem="workspace" outcome="ok" workspace_id="wY" +2026-08-13T19:26:00.838487Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=3 status="ExitStatus { code: 1, signal: Some(\"Hangup\") }" +2026-08-13T19:26:00.839335Z INFO herdr::pane: pane session terminated pane=3 pid=254659 signal=Hangup +2026-08-13T19:26:00.840702Z WARN herdr::app::actions: PaneDied for unknown pane pane=3 +2026-08-13T19:26:00.856776Z INFO herdr::logging: api request completed event="api.request.complete" subsystem="api" outcome="error" request_id="cli:pane:current" method="pane.current" +2026-08-13T19:26:05.844348Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=1 +2026-08-13T19:26:11.871605Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=1 status="ExitStatus { code: 0, signal: None }" +2026-08-13T19:26:11.872225Z INFO herdr::pane: pane session terminated pane=1 pid=254656 signal=Hangup +2026-08-13T19:26:11.872432Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=7 rows=69 cols=143 scrollback_limit_bytes=10000000 +2026-08-13T19:26:11.873278Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=7 pid=257291 +2026-08-13T19:26:11.873398Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="w12" pane_id=7 +2026-08-13T19:26:11.873401Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w12" +2026-08-13T19:26:11.873407Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w12" tab_id="w12:t1" +2026-08-13T19:26:13.191478Z INFO herdr::logging: pane child exited event="pane.exit" subsystem="pane" outcome="completed" pane_id=7 status="ExitStatus { code: 0, signal: None }" +2026-08-13T19:26:13.192792Z INFO herdr::pane: pane session terminated pane=7 pid=257291 signal=Hangup +2026-08-13T19:26:13.193118Z INFO herdr::logging: spawning pane terminal event="pane.spawn.start" subsystem="pane" outcome="started" pane_id=8 rows=69 cols=143 scrollback_limit_bytes=10000000 +2026-08-13T19:26:13.194061Z INFO herdr::logging: pane child spawned event="pane.spawned" subsystem="pane" outcome="ok" pane_id=8 pid=257575 +2026-08-13T19:26:13.194165Z INFO herdr::logging: workspace created event="workspace.create" subsystem="workspace" outcome="ok" workspace_id="w13" pane_id=8 +2026-08-13T19:26:13.194169Z INFO herdr::logging: workspace focused event="workspace.focus" subsystem="workspace" outcome="ok" workspace_id="w13" +2026-08-13T19:26:13.194176Z INFO herdr::logging: tab focused event="tab.focus" subsystem="tab" outcome="ok" workspace_id="w13" tab_id="w13:t1" +2026-08-13T19:26:16.630045Z INFO herdr::server::headless: client detach requested via keybind client_id=2 +2026-08-13T19:26:16.633446Z INFO herdr::server::headless: client disconnected client_id=2 +2026-08-13T19:26:18.203379Z INFO herdr::logging: session saved event="persist.save" subsystem="persist" outcome="ok" path=/home/prad/.config/herdr/session.json workspaces=1 +2026-08-13T19:55:45.490311Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T19:55:45.574013Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T20:25:45.491500Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T20:25:45.579795Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T20:55:45.492933Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T20:55:45.647366Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T21:25:45.495070Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T21:25:45.582277Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" +2026-08-13T21:55:45.497129Z INFO herdr::logging: checking for updates event="update.check.start" subsystem="update" outcome="started" +2026-08-13T21:55:45.570899Z WARN herdr::detect::manifest_update: skipping unknown remote manifest agent agent="qwen" diff --git a/dot_config/herdr/plugins.json b/dot_config/herdr/plugins.json index 2c19b06..3285e73 100644 --- a/dot_config/herdr/plugins.json +++ b/dot_config/herdr/plugins.json @@ -67,6 +67,215 @@ "installed_unix_ms": 1786302769417 } }, + { + "plugin_id": "persiyanov.reviewr", + "name": "reviewr", + "version": "0.30.1", + "min_herdr_version": "0.7.5", + "description": "Review agent-written diffs beside the chat and add line comments to the agent input.", + "manifest_path": "/home/prad/.config/herdr/plugins/github/persiyanov.reviewr-e87b654a74f8/herdr-plugin.toml", + "plugin_root": "/home/prad/.config/herdr/plugins/github/persiyanov.reviewr-e87b654a74f8", + "enabled": true, + "platforms": [ + "macos", + "linux" + ], + "build": [ + { + "command": [ + "bash", + "herdr/install.sh" + ] + } + ], + "actions": [ + { + "id": "close", + "title": "reviewr: close pane", + "contexts": [ + "pane", + "workspace" + ], + "command": [ + "bash", + "herdr/pane.sh", + "close" + ] + }, + { + "id": "open", + "title": "reviewr: open pane", + "contexts": [ + "pane", + "workspace" + ], + "command": [ + "bash", + "herdr/pane.sh", + "open" + ] + }, + { + "id": "toggle", + "title": "reviewr: toggle pane", + "contexts": [ + "pane", + "workspace" + ], + "command": [ + "bash", + "herdr/pane.sh", + "toggle" + ] + } + ], + "events": [ + { + "on": "worktree.created", + "command": [ + "bash", + "herdr/pane.sh", + "auto-open" + ] + } + ], + "panes": [ + { + "id": "pane", + "title": "reviewr", + "placement": "split", + "command": [ + "sh", + "-c", + "exec \"$HERDR_PLUGIN_ROOT/bin/herdr-reviewr\"" + ] + } + ], + "source": { + "kind": "github", + "owner": "persiyanov", + "repo": "herdr-reviewr", + "resolved_commit": "792b4b31475ddbf263ee4d421a984e7418031506", + "managed_path": "/home/prad/.config/herdr/plugins/github/persiyanov.reviewr-e87b654a74f8", + "installed_unix_ms": 1786480679113 + } + }, + { + "plugin_id": "rjyo.window-title-sync", + "name": "Window Title Sync", + "version": "0.1.0", + "min_herdr_version": "0.7.0", + "description": "Sync the outer terminal title to the focused Herdr workspace, tab, and agent session.", + "manifest_path": "/home/prad/.config/herdr/plugins/github/rjyo.window-title-sync-aa963fbbc3d9/herdr-plugin.toml", + "plugin_root": "/home/prad/.config/herdr/plugins/github/rjyo.window-title-sync-aa963fbbc3d9", + "enabled": true, + "platforms": [ + "macos", + "linux" + ], + "actions": [ + { + "id": "refresh", + "title": "Refresh terminal title", + "contexts": [ + "workspace", + "tab", + "pane" + ], + "command": [ + "bun", + "sync-title.js" + ] + } + ], + "events": [ + { + "on": "pane.agent_detected", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "pane.agent_status_changed", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "pane.closed", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "pane.created", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "pane.focused", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "pane.moved", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "tab.focused", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "tab.renamed", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "workspace.focused", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "workspace.renamed", + "command": [ + "bun", + "sync-title.js" + ] + }, + { + "on": "workspace.updated", + "command": [ + "bun", + "sync-title.js" + ] + } + ], + "source": { + "kind": "github", + "owner": "rjyo", + "repo": "herdr-window-title-sync", + "resolved_commit": "b07f1140b7308d66487b2f4be546c0c7db065569", + "managed_path": "/home/prad/.config/herdr/plugins/github/rjyo.window-title-sync-aa963fbbc3d9", + "installed_unix_ms": 1786479421566 + } + }, { "plugin_id": "vim-herdr-navigation", "name": "Vim Herdr Navigation", diff --git a/dot_config/herdr/session.json b/dot_config/herdr/session.json index a439f82..63ea50d 100644 --- a/dot_config/herdr/session.json +++ b/dot_config/herdr/session.json @@ -2,63 +2,11 @@ "version": 3, "workspaces": [ { - "id": "wP", + "id": "w13", "custom_name": null, - "identity_cwd": "/home/prad/Developer/github.com/prdlk/clipmark", + "identity_cwd": "/home/prad", "public_pane_numbers": { - "7": 5, - "3": 1 - }, - "next_public_pane_number": 6, - "public_tab_numbers": [ - 1, - 3 - ], - "next_public_tab_number": 4, - "tabs": [ - { - "custom_name": "omp", - "layout": { - "Pane": 3 - }, - "panes": { - "3": { - "cwd": "/home/prad/Developer/github.com/prdlk/clipmark", - "agent_session": { - "source": "herdr:omp", - "agent": "omp", - "kind": "path", - "value": "/home/prad/.omp/agent/sessions/-Developer-github.com-prdlk-clipmark/2026-08-10T20-42-28-503Z_019fed69-9917-7000-b3c6-b4fedc829e55.jsonl" - } - } - }, - "zoomed": false, - "focused": 3, - "root_pane": 3 - }, - { - "custom_name": null, - "layout": { - "Pane": 7 - }, - "panes": { - "7": { - "cwd": "/home/prad/Developer/github.com/prdlk/clipmark" - } - }, - "zoomed": false, - "focused": 7, - "root_pane": 7 - } - ], - "active_tab": 0 - }, - { - "id": "wQ", - "custom_name": null, - "identity_cwd": "/home/prad/Developer/prad.codes/go/crypto", - "public_pane_numbers": { - "5": 1 + "8": 1 }, "next_public_pane_number": 2, "public_tab_numbers": [ @@ -68,76 +16,24 @@ "tabs": [ { "custom_name": null, - "layout": { - "Pane": 5 - }, - "panes": { - "5": { - "cwd": "/home/prad/Developer/prad.codes/go/crypto" - } - }, - "zoomed": false, - "focused": 5, - "root_pane": 5 - } - ], - "active_tab": 0 - }, - { - "id": "wS", - "custom_name": null, - "identity_cwd": "/home/prad/Developer/github.com/prdlk/tldraw-system-design", - "public_pane_numbers": { - "9": 2, - "8": 1 - }, - "next_public_pane_number": 3, - "public_tab_numbers": [ - 1, - 2 - ], - "next_public_tab_number": 3, - "tabs": [ - { - "custom_name": "omp", "layout": { "Pane": 8 }, "panes": { "8": { - "cwd": "/home/prad/Developer/github.com/prdlk/tldraw-system-design", - "agent_session": { - "source": "herdr:omp", - "agent": "omp", - "kind": "path", - "value": "/home/prad/.omp/agent/sessions/-Developer-github.com-prdlk-tldraw-system-design/2026-08-11T19-09-58-310Z_019ff23b-44a6-7000-96ce-9aab86e8d0c9.jsonl" - } + "cwd": "/home/prad" } }, "zoomed": false, "focused": 8, "root_pane": 8 - }, - { - "custom_name": null, - "layout": { - "Pane": 9 - }, - "panes": { - "9": { - "cwd": "/home/prad/Developer/github.com/prdlk/tldraw-system-design" - } - }, - "zoomed": false, - "focused": 9, - "root_pane": 9 } ], "active_tab": 0 } ], - "active": 2, - "selected": 2, + "active": 0, + "selected": 0, "sidebar_width": 24, "sidebar_section_split": 0.4939759, "collapsed_space_keys": [] diff --git a/dot_config/kitty/kitty.conf b/dot_config/kitty/kitty.conf index 01b0bf3..47ba216 100644 --- a/dot_config/kitty/kitty.conf +++ b/dot_config/kitty/kitty.conf @@ -1,5 +1,5 @@ # ── base.conf · shared ── -font_size 13.5 +font_size 11.5 font_family VictorMono Nerd Font bold_italic_font auto window_padding_width 8 @@ -17,19 +17,21 @@ cursor_blink_interval 0 # real socket is @kitty-local-; scripts must use $KITTY_LISTEN_ON, not this name listen_on unix:@kitty-local -enabled_layouts splits:split_axis=vertical +enabled_layouts splits:split_axis=vertical,stack # launch aliases action_alias launch_mn launch --cwd=current --type=overlay-main action_alias launch_os launch --cwd=current --type=os-window action_alias launch_ov launch --cwd=current --type=overlay action_alias launch_tb launch --cwd=current --type=tab -action_alias launch_hs launch --cwd=current --location=hsplit --bias=25 -action_alias launch_vs launch --cwd=current --location=vsplit --bias=35 +action_alias launch_hs launch --cwd=current --location=hsplit --bias=20 +action_alias launch_vs launch --cwd=current --location=vsplit --bias=40 # panes = kitty windows map super+t new_tab map super+enter new_tab_with_cwd +map ctrl+space launch_hs +map ctrl+enter launch_vs map super+n new_os_window map ctrl+shift+space new_os_window @@ -41,9 +43,11 @@ map ctrl+shift+k next_tab # Shortcuts map ctrl+shift+g launch_ov lazygit -map ctrl+shift+f launch_mn yazi +map ctrl+shift+f toggle_layout stack map ctrl+shift+e launch_tb nvim -map ctrl+shift+a launch_vs omp +map ctrl+shift+a launch_vs omp +# suvadu history picker: pick → execute → drop to shell (script: ~/.local/bin/suv-pick) +map ctrl+shift+p launch_hs suv-pick # Misc map ctrl+shift+c copy_to_clipboard diff --git a/dot_config/lazygit/config.yml b/dot_config/lazygit/config.yml index a97afdf..4624e24 100644 --- a/dot_config/lazygit/config.yml +++ b/dot_config/lazygit/config.yml @@ -137,16 +137,16 @@ gui: # Config relating to git git: # See https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md - pagers: + diffRenderers: # - pager: critique --stdin - # Value of the --color arg in the git diff command. Some pagers want this to be set to 'always' and some want it set to 'never' colorArg: always - pager: delta --dark --paging=never - # e.g. - # diff-so-fancy - # delta --dark --paging=never - # ydiff -p cat -s --wrap --width={{columnWidth}} - # - pager: "git diff | git-split-diffs --color | less -RFX" + command: delta --dark --paging=never + # e.g. + # diff-so-fancy + # delta --dark --paging=never + # ydiff -p cat -s --wrap --width={{columnWidth}} + # - pager: "git diff | git-split-diffs --color | less -RFX" # If true, Lazygit will use whatever pager is specified in `$GIT_PAGER`, `$PAGER`, or your *git config*. If the pager ends with something like ` | less` we will strip that part out, because less doesn't play nice with our rendering approach. If the custom pager uses less under the hood, that will also break rendering (hence the `--paging=never` flag for the `delta` pager). # Config relating to committing diff --git a/dot_config/niri/exact_config.d/30-window-rules.kdl b/dot_config/niri/exact_config.d/30-window-rules.kdl index bcb531a..cd629aa 100644 --- a/dot_config/niri/exact_config.d/30-window-rules.kdl +++ b/dot_config/niri/exact_config.d/30-window-rules.kdl @@ -72,6 +72,7 @@ window-rule { default-column-width { proportion 0.5; } } + window-rule { match title="Picture-in-Picture" app-id="zen" match title="Picture in picture" diff --git a/dot_config/niri/exact_config.d/70-binds.kdl b/dot_config/niri/exact_config.d/70-binds.kdl index 172c647..0716bd7 100644 --- a/dot_config/niri/exact_config.d/70-binds.kdl +++ b/dot_config/niri/exact_config.d/70-binds.kdl @@ -33,13 +33,13 @@ binds { Super+Ctrl+A { spawn "vicinae" "vicinae://launch/applications/com.anthropic.Claude"; } Super+Ctrl+G { spawn "vicinae" "vicinae://launch/applications/gemini-desktop"; } Super+Alt+Ctrl+H { spawn "hermes" "desktop"; } - Super+Alt+Ctrl+J { spawn "niri-launch" "kitty"; } Super+Alt+Ctrl+K { spawn "niri-launch" "brave-origin-nightly"; } Super+Alt+Ctrl+O { spawn "niri-launch" "obsidian"; } - Super+Alt+Ctrl+G { spawn "vicinae" "vicinae://launch/applications/com.mitchellh.ghostty"; } + Super+Alt+Ctrl+W { spawn "vicinae" "vicinae://launch/applications/tldraw_offline"; } Super+Alt+Ctrl+E { spawn "vicinae" "vicinae://launch/applications/com.fastmail.Fastmail"; } Super+Alt+Ctrl+B { spawn "vicinae" "vicinae://launch/applications/beeper"; } + Super+Alt+Ctrl+G { spawn "vicinae" "vicinae://launch/applications/com.mitchellh.ghostty"; } Super+Alt+Ctrl+L { spawn "vicinae" "vicinae://launch/applications/WebApp-Linear3312"; } Super+Alt+Ctrl+M { spawn "vicinae" "vicinae://launch/applications/beeper"; } Super+Alt+Ctrl+T { spawn "vicinae" "vicinae://launch/applications/todoist"; } diff --git a/dot_config/nvim/README.md b/dot_config/nvim/README.md deleted file mode 100644 index 4488bde..0000000 --- a/dot_config/nvim/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# AstroNvim Template - -**NOTE:** This is for AstroNvim v6+ - -A template for getting started with [AstroNvim](https://github.com/AstroNvim/AstroNvim) - -## 🛠️ Installation - -#### Make a backup of your current nvim and shared folder - -```shell -mv ~/.config/nvim ~/.config/nvim.bak -mv ~/.local/share/nvim ~/.local/share/nvim.bak -mv ~/.local/state/nvim ~/.local/state/nvim.bak -mv ~/.cache/nvim ~/.cache/nvim.bak -``` - -#### Create a new user repository from this template - -Press the "Use this template" button above to create a new repository to store your user configuration. - -You can also just clone this repository directly if you do not want to track your user configuration in GitHub. - -#### Clone the repository - -```shell -git clone https://github.com// ~/.config/nvim -``` - -#### Start Neovim - -```shell -nvim -``` diff --git a/dot_config/nvim/dot_luarc.json b/dot_config/nvim/dot_luarc.json deleted file mode 100644 index 8415579..0000000 --- a/dot_config/nvim/dot_luarc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "format.enable": false -} diff --git a/dot_config/nvim/dot_neoconf.json b/dot_config/nvim/dot_neoconf.json deleted file mode 100644 index 2d7a81f..0000000 --- a/dot_config/nvim/dot_neoconf.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "neodev": { - "library": { - "enabled": true, - "plugins": true - } - }, - "neoconf": { - "plugins": { - "lua_ls": { - "enabled": true - } - } - }, - "lspconfig": { - "lua_ls": { - "Lua.format.enable": false - } - } -} diff --git a/dot_config/nvim/dot_stylua.toml b/dot_config/nvim/dot_stylua.toml deleted file mode 100644 index bfcffff..0000000 --- a/dot_config/nvim/dot_stylua.toml +++ /dev/null @@ -1,7 +0,0 @@ -column_width = 120 -line_endings = "Unix" -indent_type = "Spaces" -indent_width = 2 -quote_style = "AutoPreferDouble" -call_parentheses = "None" -collapse_simple_statement = "Always" diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua deleted file mode 100644 index 5c1c71b..0000000 --- a/dot_config/nvim/init.lua +++ /dev/null @@ -1,38 +0,0 @@ --- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution --- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk. -local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim" - -if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then - -- stylua: ignore - local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) - if vim.v.shell_error ~= 0 then - -- stylua: ignore - vim.api.nvim_echo({ { ("Error cloning lazy.nvim:\n%s\n"):format(result), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) - vim.fn.getchar() - vim.cmd.quit() - end -end - -vim.opt.rtp:prepend(lazypath) - --- validate that lazy is available -if not pcall(require, "lazy") then - -- stylua: ignore - vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) - vim.fn.getchar() - vim.cmd.quit() -end - -require "lazy_setup" -require "polish" - --- Enable terminal title setting in Nvim -vim.opt.title = true --- Set the format of the title -vim.opt.titlestring = "%t - Nvim" - --- Ensure Nvim doesn't slow down on exit by resetting shell -vim.cmd('set shell=sh') -- Prevents fish-incompatible lag when exiting nvim in fish/tmux - -vim.opt.guicursor:append("v:hor20") -vim.opt.guicursor:append("a:blinkon0") diff --git a/dot_config/nvim/lazyvim.json b/dot_config/nvim/lazyvim.json deleted file mode 100644 index dc3e179..0000000 --- a/dot_config/nvim/lazyvim.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extras": [ - - ], - "news": { - "NEWS.md": "11866" - }, - "version": 8 -} \ No newline at end of file diff --git a/dot_config/nvim/lua/codemark/.keep b/dot_config/nvim/lua/codemark/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/dot_config/nvim/lua/community.lua b/dot_config/nvim/lua/community.lua deleted file mode 100644 index 793bdb2..0000000 --- a/dot_config/nvim/lua/community.lua +++ /dev/null @@ -1,32 +0,0 @@ - --- AstroCommunity: import any community modules here --- We import this file in `lazy_setup.lua` before the `plugins/` folder. --- This guarantees that the specs are processed before any user plugins. - ----@type LazySpec -return { - "AstroNvim/astrocommunity", - version = false, -- Use latest astrocommunity - { import = "astrocommunity.bars-and-lines.bufferline-nvim" }, - { import = "astrocommunity.editing-support.refactoring-nvim" }, - { import = "astrocommunity.editing-support.conform-nvim" }, - { import = "astrocommunity.diagnostics.trouble-nvim" }, - { import = "astrocommunity.git.octo-nvim" }, - { import = "astrocommunity.pack.mdx" }, - { import = "astrocommunity.pack.biome" }, - { import = "astrocommunity.pack.go" }, - { import = "astrocommunity.pack.golangci-lint" }, - { import = "astrocommunity.pack.html-css" }, - { import = "astrocommunity.pack.json" }, - { import = "astrocommunity.pack.proto" }, - { import = "astrocommunity.pack.pkl" }, - { import = "astrocommunity.pack.rust" }, - { import = "astrocommunity.pack.yaml" }, - { import = "astrocommunity.pack.toml" }, - { import = "astrocommunity.pack.typescript" }, - { import = "astrocommunity.pack.tailwindcss" }, - { import = "astrocommunity.completion.supermaven-nvim" }, - { import = "astrocommunity.lsp.dev-tools-nvim" }, - { import = "astrocommunity.lsp.nvim-lsp-file-operations" }, - { import = "astrocommunity.colorscheme.cyberdream-nvim" }, -} diff --git a/dot_config/nvim/lua/config/ignore_patterns.lua b/dot_config/nvim/lua/config/ignore_patterns.lua deleted file mode 100644 index 5c33c9f..0000000 --- a/dot_config/nvim/lua/config/ignore_patterns.lua +++ /dev/null @@ -1,314 +0,0 @@ ---- Shared ignore patterns for file explorers and pickers ---- This module provides a centralized list of patterns to ignore across ---- snacks.picker and other file browsing tools. (The never_show lists were ---- consumed by neo-tree, now replaced by yazi.nvim; kept as reference data.) ---- ---- Everything here is fast-event-context safe (pure Lua + libuv only): ---- snacks picker transforms run inside async/uv callbacks where vimL ---- functions (vim.fn.*) raise E5560. ---- @module config.ignore_patterns - -local uv = vim.uv or vim.loop - -local M = {} - ---- Core ignore patterns used across the configuration ---- These patterns use glob syntax (* and ? wildcards), matched against ---- file basenames and individual path segments. -M.patterns = { - -- Build artifacts and generated files - ".beads", - "chain_*.json", - ".npmrc", - ".epiq", - ".omc", - ".claude", - ".changeset", - ".codegraph", - ".gitignore", - "turbo.json", - "vite.config.ts", - "bunfig.toml", - "*.pb.go", - "*.pkl.go", - "*.pulsar.go", - "*.pb.gorm.go", - "*.pb.gw.go", - "*_templ.go", - "*_mock.go", - "*_integration.go", - "*_test.go", - "AGENTS.md", - "test", - "tests", - - -- Configuration files - ".editorconfig", - ".gitpod.*", - - -- Lock files and dependencies - "*.lock", - "*.lockb", - "*.sum", - "*.work.*", - "package-lock.json", - "pnpm-lock.yaml", - ".gitattributes", - ".oxlintrc.json", - "tsconfig*", - - -- Temporary and cache files - "*.tmp", - ".typecopy", - ".python-version", - ".prettierrc", - ".trunk", - ".config", - ".pkl-lsp", - ".tsbuildinfo", - ".wrangler", - ".parcel-cache", - ".conform*", - ".null-ls_*", - - -- Binary and media files - "*.wasm", - "*.png", - "*.jpg", - "*.icns", - "*.ico", - - -- Directories and special files - "contrib", - "interchaintest", - "PULL_REQUEST_TEMPLATE.md", - "Icon?", - "iCloud~", - "com~", -} - ---- Patterns that should never be shown in any file browser -M.never_show = { - -- Version control - ".git", - ".ai", - ".omc", - - -- Dependencies - "node_modules", - ".wrangler", - "CODEOWNERS", - ".golangci.yml", - - -- Build outputs - ".next", - ".parcel-cache", - - -- Task runners and tools - ".task", - ".devbox", - ".turbo", - ".jj", - ".spawn", - - -- IDE and editor - ".idea", - ".venv", - ".metadata", - ".dart_tool", - ".devcontainer", - - -- Build tools - ".gradle", - "gradle.bat", - "heighliner", - - -- Temporary - ".tmp", - "tmp", - - -- Logs - "sonr.log", - "junit.xml", - - -- macOS - ".DS_Store", - ".DocumentRevisions-V100", - ".Spotlight-V100", - ".TemporaryItems", - ".Trashes", - ".fseventsd", - ".timemachine", - - -- Templates - "DISCUSSION_TEMPLATE", - "ISSUE_TEMPLATE", - - -- License - "LICENSE", -} - ---- Patterns that should never be shown (pattern matching) -M.never_show_patterns = { - "*DS_Store", - ".obsidian", - ".pkl-lsp", - ".tsbuildinfo", - "package-lock.json", - ".prettierrc", - "node_modules", - ".DocumentRevisions-V100", - ".Spotlight-V100", - ".TemporaryItems", - ".Trashes", - ".fseventsd", - ".editorconfig", - "*.min.js", - "*.lock", - "*lock*", - "*.lockb", - "*.pulsar.go", - "*.pb.gorm.go", - "*.pb.gw.go", - "*_templ.go", - "*.tmp", - "*.work.*", - "*.sum", - ".parcel-cache", - "*.icns", - "*.ico", - "*.iml", - "Icon?", - "iCloud~", - "com~", - ".conform*", - ".null-ls_*", -} - ---- Directories to ignore when filtering files -M.ignored_directories = { - "contracts", - "crypto", - "api", - "chains", - "test", - "examples", - "scripts", - "bridge", - "client", - "translations", - "env", - ".husky", - ".worktrees", -} - -local EMPTY = {} - ---- Convert a glob (* and ? wildcards) to an anchored Lua pattern ---- @param glob string ---- @return string -local function glob_to_lua(glob) - return "^" .. glob:gsub("[%%%.%(%)%+%-%^%$%[%]]", "%%%0"):gsub("%*", ".*"):gsub("%?", ".") .. "$" -end - ---- @param globs string[] ---- @return string[] -local function compile_globs(globs) - local out = {} - for _, g in ipairs(globs) do - out[#out + 1] = glob_to_lua(g) - end - return out -end - ---- Find the git root for a directory by walking up (pure libuv, cached) -local root_cache = {} ---@type table ---- @param dir string ---- @return string? -local function git_root(dir) - local cached = root_cache[dir] - if cached ~= nil then return cached or nil end - local cur = dir - while cur and cur ~= "" do - if uv.fs_stat(cur .. "/.git") then - root_cache[dir] = cur - return cur - end - local parent = cur:match "(.+)/[^/]+$" - if not parent or parent == cur then break end - cur = parent - end - root_cache[dir] = false - return nil -end - ---- Read additional ignore patterns from the .rgignore file in the git root. ---- Cached per file and invalidated on mtime change. Safe in fast event contexts. ---- @param dir? string directory to resolve the git root from (defaults to cwd) ---- @return string[] patterns List of glob patterns from .rgignore -local rgignore_cache = {} ---@type table -function M.read_rgignore(dir) - local root = git_root(dir or uv.cwd()) - if not root then return EMPTY end - local path = root .. "/.rgignore" - local stat = uv.fs_stat(path) - if not stat then return EMPTY end - local cached = rgignore_cache[path] - if cached and cached.mtime == stat.mtime.sec then return cached.patterns end - local patterns = {} - local file = io.open(path, "r") - if file then - for line in file:lines() do - if line ~= "" and not line:match "^#" then - patterns[#patterns + 1] = (line:gsub("^%./", "")) - end - end - file:close() - end - rgignore_cache[path] = { mtime = stat.mtime.sec, patterns = patterns } - return patterns -end - ---- Get all hide patterns including rgignore ---- @param dir? string directory to resolve the git root from (defaults to cwd) ---- @return table patterns Combined list of all patterns to hide -function M.get_all_patterns(dir) - return vim.list_extend(vim.list_extend({}, M.patterns), M.read_rgignore(dir)) -end - ---- Create a filter for snacks picker `transform` options. ---- Snacks contract: return `false` to DROP an item, `true`/`nil` to keep it ---- (returning nil keeps the item!). Runs per item in a fast event context, ---- so only pure Lua and libuv are used here. ---- @return fun(item: snacks.picker.finder.Item): boolean -function M.create_picker_filter() - local static ---@type string[]? compiled static globs (lazy) - local last_raw, last_rg = nil, EMPTY ---@type string[]?, string[] - return function(item) - local file = item and item.file - if not file then return true end - - static = static or compile_globs(M.patterns) - local raw = M.read_rgignore(item.cwd) - if raw ~= last_raw then - last_raw, last_rg = raw, compile_globs(raw) - end - - -- Match every path segment (directories and basename) anchored, - -- so `test` drops `test/foo.lua` but never `latest.md`. - for seg in file:gmatch "[^/\\]+" do - for _, pat in ipairs(static) do - if seg:match(pat) then return false end - end - for _, pat in ipairs(last_rg) do - if seg:match(pat) then return false end - end - for _, dirname in ipairs(M.ignored_directories) do - if seg == dirname then return false end - end - end - return true - end -end - -return M diff --git a/dot_config/nvim/lua/lazy_setup.lua b/dot_config/nvim/lua/lazy_setup.lua deleted file mode 100644 index 8e1abfb..0000000 --- a/dot_config/nvim/lua/lazy_setup.lua +++ /dev/null @@ -1,32 +0,0 @@ -require("lazy").setup({ - { - "AstroNvim/AstroNvim", - version = "^6", -- Remove version tracking to elect for nightly AstroNvim - import = "astronvim.plugins", - opts = { -- AstroNvim options must be set here with the `import` key - mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up - maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up - icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available) - pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override - update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins - }, - }, - { import = "community" }, - { import = "plugins" }, -} --[[@as LazySpec]], { - -- Configure any other `lazy.nvim` configuration options here - install = { colorscheme = { "astrotheme", "habamax" } }, - ui = { backdrop = 100 }, - performance = { - rtp = { - -- disable some rtp plugins, add more to your liking - disabled_plugins = { - "gzip", - "netrwPlugin", - "tarPlugin", - "tohtml", - "zipPlugin", - }, - }, - }, -} --[[@as LazyConfig]]) diff --git a/dot_config/nvim/lua/plugins/astrocore.lua b/dot_config/nvim/lua/plugins/astrocore.lua deleted file mode 100644 index 5127e59..0000000 --- a/dot_config/nvim/lua/plugins/astrocore.lua +++ /dev/null @@ -1,456 +0,0 @@ ---- AstroCore configuration (AstroNvim v6 / Neovim 0.12) ---- Core settings, keymappings, and autocmds ---- @module plugins.astrocore - -local ignore_patterns = require "config.ignore_patterns" - -local file_filter = ignore_patterns.create_picker_filter() - --- Open a snacks picker with trouble.nvim send-to-quickfix action bound to . -local function with_trouble(source, opts) - opts = opts or {} - opts.actions = require("trouble.sources.snacks").actions - opts.win = opts.win or {} - opts.win.input = opts.win.input or {} - opts.win.input.keys = vim.tbl_extend("force", opts.win.input.keys or {}, { - [""] = { "trouble_open", mode = { "n", "i" } }, - }) - require("snacks").picker[source](opts) -end - -return { - "AstroNvim/astrocore", - ---@type AstroCoreOpts - opts = { - sessions = { - autosave = { - last = true, - cwd = true, - }, - ignore = { - dirs = {}, - filetypes = { "gitcommit", "gitrebase" }, - buftypes = {}, - }, - }, - - rooter = { - detector = { - "lsp", - { ".git", "_darcs", ".hg", ".bzr", ".svn" }, - { - "package.json", - "lua", - "Cargo.toml", - "Pipfile", - "docs.json", - }, - }, - ignore = { - servers = { "golangci_lint_ls" }, - dirs = {}, - }, - autochdir = true, - scope = "global", - notify = false, - }, - - -- v6: features schema changed - -- diagnostics_mode (0-3) -> diagnostics = { virtual_text, virtual_lines } - -- large_buf and cmp are new keys - features = { - large_buf = { size = 1024 * 256, lines = 10000 }, - autopairs = true, - cmp = true, - diagnostics = { virtual_text = false, virtual_lines = false }, - highlighturl = true, - notifications = false, - }, - - -- vim.diagnostic.config() values applied when diagnostics are toggled on - diagnostics = { - virtual_text = true, - underline = true, - }, - - autocmds = { - custom_title = { - { - event = { "BufEnter", "DirChanged" }, - desc = "Update terminal title with org/repo format", - callback = function() - local filepath = vim.fn.expand "%:p" - local filename = vim.fn.expand "%:t" - - if filename == "" then - local cwd = vim.fn.getcwd() - local github_match = cwd:match "github%.com/([^/]+/[^/]+)" - if github_match then - vim.opt.titlestring = github_match - else - vim.opt.titlestring = "Nvim" - end - return - end - - local github_match = filepath:match "github%.com/([^/]+/[^/]+)" - - if github_match then - vim.opt.titlestring = string.format("%s | %s", filename, github_match) - else - vim.opt.titlestring = string.format("%s | Nvim", filename) - end - end, - }, - }, - restore_session = { - { - event = "VimEnter", - desc = "Restore previous directory session if neovim opened with no arguments", - nested = true, -- trigger other autocommands as buffers open - callback = function() - if vim.fn.argc(-1) == 0 then - require("resession").load( - vim.fn.getcwd(), - { dir = "dirsession", silence_errors = true } - ) - end - end, - }, - }, - }, - - options = { - opt = { - relativenumber = false, - number = true, - spell = false, - wrap = true, - clipboard = "unnamedplus", - title = true, - titlestring = "", - laststatus = 0, - }, - g = {}, - }, - - mappings = { - n = { - -- overrides AstroNvim's default = force quit (:q!) - [""] = { "wqa", desc = "Save all buffers and quit Neovim" }, - [""] = { "suspend", desc = "Suspend nvim (return with 'fg')" }, - ["ZZ"] = { "wqa", desc = "Save all buffers and quit Neovim" }, - [""] = { "wqa", desc = "Save all buffers and quit Neovim" }, - [""] = { "wabd", desc = "Save and close buffer" }, - ["F"] = { "za", desc = "Toggle fold under cursor" }, - -- v6: vim.diagnostic.goto_next/goto_prev deprecated in 0.11, use jump() - ["J"] = { - function() vim.diagnostic.jump { count = 1, float = true } end, - desc = "Next diagnostic", - }, - ["K"] = { - function() vim.diagnostic.jump { count = -1, float = true } end, - desc = "Previous diagnostic", - }, - ["L"] = { "BufferLineCycleNext", desc = "Next buffer" }, - ["H"] = { "BufferLineCyclePrev", desc = "Previous buffer" }, - ["e"] = { - function() require("snacks").picker.git_files { transform = file_filter } end, - desc = "Find git files", - }, - [""] = { - function() require("snacks").picker.smart() end, - desc = "Find files", - }, - ["b"] = { "BufferLinePick", desc = "Pick buffer" }, - ["f"] = { - function() require("snacks").picker.buffers() end, - desc = "Find buffers", - }, - [""] = { - function() - local current_buffer = vim.api.nvim_get_current_buf() - for _, buf in ipairs(vim.api.nvim_list_bufs()) do - if buf ~= current_buffer then vim.api.nvim_buf_delete(buf, { force = true }) end - end - end, - desc = "Close all buffers except the current one", - }, - ["g"] = { - function() - local groups = { "DEX", "DID", "DWN", "SVC", "Tests", "Actions", "Claude", "Docs", "Config" } - for _, group in ipairs(groups) do - vim.cmd("BufferLineGroupToggle " .. group) - end - end, - desc = "Toggle all buffer groups", - }, - ["l"] = { - function() require("snacks").picker.lines() end, - desc = "Find in line", - }, - ["o"] = { "!gh repo view --web", desc = "Open Repo on Web" }, - [""] = { "w", desc = "Save buffer" }, - [""] = { "wbd", desc = "Save and close buffer" }, - [""] = { "tabnext", desc = "Next Tab" }, - [""] = { "Octo issue list", desc = "List Issues" }, - [""] = { "Octo label", desc = "Manage Labels" }, - [""] = { "Octo pr list", desc = "List PRs" }, - ["s"] = { "Octo search", desc = "Octo Search" }, - [""] = { "!gh release list", desc = "List Releases" }, - ["d"] = { - function() require("snacks").picker.git_diff() end, - desc = "Search git diffs", - }, - [""] = { - function() require("snacks").picker.git_branches() end, - desc = "Search git branches", - }, - ["vv"] = { "gg0VG$", desc = "Select all contents in buffer" }, - ["T"] = { "gg", desc = "Go to top of file" }, - ["d"] = { - function() require("snacks").picker.diagnostics() end, - desc = "Find diagnostics", - }, - ["l"] = { - function() require("snacks").picker.lines() end, - desc = "Find in line", - }, - ["t"] = { - function() require("snacks").picker.lines() end, - desc = "Find in line", - }, - ["w"] = { - function() require("snacks").picker.grep() end, - desc = "Find word", - }, - ["f"] = { - function() require("snacks").picker.files { transform = file_filter } end, - desc = "Find files (cwd)", - }, - [""] = { - function() - require("snacks").picker.lsp_symbols { layout = { preset = "vscode", preview = "main" } } - end, - desc = "Find LSP symbols", - }, - ["o"] = { - function() require("snacks").picker.recent() end, - desc = "Find recent files", - }, - ["p"] = { - function() require("snacks").picker.projects() end, - desc = "Find projects", - }, - ["gc"] = { - function() - local ai_dir = vim.fn.getcwd() .. "/.ai" - if vim.fn.isdirectory(ai_dir) == 0 then - vim.notify("No .ai directory found in current project", vim.log.levels.WARN) - return - end - require("snacks").picker.files { - cwd = ai_dir, - transform = file_filter, - } - end, - desc = "Find AI files", - }, - ["g"] = { desc = "Find by Group" }, - ["gw"] = { - function() - local workflows_dir = vim.fn.getcwd() .. "/.github/workflows" - if vim.fn.isdirectory(workflows_dir) == 0 then - vim.notify("No .github/workflows directory found in current project", vim.log.levels.WARN) - return - end - require("snacks").picker.files { - cwd = workflows_dir, - transform = file_filter, - } - end, - desc = "Find GitHub Workflow files", - }, - ["gd"] = { - function() - require("snacks").picker.files { - cmd = "fd", - args = { "devbox.json|process-compose.yaml|Dockerfile|docker-compose.yaml|compose.yaml" }, - } - end, - desc = "Find Devbox/Docker files", - }, - ["gm"] = { - function() require("snacks").picker.files { cmd = "fd", args = { "Makefile" } } end, - desc = "Find Makefile files", - }, - ["gp"] = { - function() require("snacks").picker.files { cmd = "fd", args = { "package.json" } } end, - desc = "Find Package.json files", - }, - [""] = { - function() - if vim.b.toggle_number == 99 then - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("", true, false, true), "t", false) - return - end - local content = vim.fn.getreg "+" - vim.api.nvim_paste(content, true, -1) - end, - desc = "Paste from system clipboard", - }, - ["d"] = { - function() with_trouble("diagnostics") end, - desc = "Search diagnostics ( sends to Trouble)", - }, - ["a"] = { - function() vim.lsp.buf.code_action() end, - desc = "Show code actions", - }, - ["s"] = { - function() with_trouble("lsp_symbols") end, - desc = "Search LSP symbols ( sends to Trouble)", - }, - ["S"] = { - function() with_trouble("lsp_workspace_symbols") end, - desc = "Search LSP workspace symbols ( sends to Trouble)", - }, - [""] = { "SupermavenToggle", desc = "Toggle Supermaven" }, - - ["u"] = { desc = "UI Toggles" }, - ["ud"] = { - function() require("snacks").toggle.diagnostics():toggle() end, - desc = "Toggle Diagnostics", - }, - ["un"] = { - function() require("snacks").toggle.line_number():toggle() end, - desc = "Toggle Line Numbers", - }, - ["ur"] = { - function() require("snacks").toggle.option("relativenumber"):toggle() end, - desc = "Toggle Relative Numbers", - }, - ["uw"] = { - function() require("snacks").toggle.option("wrap"):toggle() end, - desc = "Toggle Line Wrap", - }, - ["us"] = { - function() require("snacks").toggle.option("spell"):toggle() end, - desc = "Toggle Spelling", - }, - ["ui"] = { - function() require("snacks").toggle.inlay_hints():toggle() end, - desc = "Toggle Inlay Hints", - }, - ["ut"] = { - function() require("snacks").toggle.treesitter():toggle() end, - desc = "Toggle Treesitter", - }, - ["uc"] = { - function() require("snacks").toggle.option("conceallevel", { off = 0, on = 2 }):toggle() end, - desc = "Toggle Conceal", - }, - ["uI"] = { - function() require("snacks").toggle.indent():toggle() end, - desc = "Toggle Indent Guides", - }, - ["uz"] = { - function() require("snacks").toggle.zen():toggle() end, - desc = "Toggle Zen Mode", - }, - ["uZ"] = { - function() require("snacks").toggle.zoom():toggle() end, - desc = "Toggle Zoom", - }, - ["ua"] = { - function() require("snacks").toggle.animate():toggle() end, - desc = "Toggle Animations", - }, - ["uS"] = { - function() require("snacks").toggle.scroll():toggle() end, - desc = "Toggle Smooth Scroll", - }, - ["up"] = { - function() require("snacks").toggle.profiler():toggle() end, - desc = "Toggle Profiler", - }, - ["uh"] = { - function() require("snacks").toggle.profiler_highlights():toggle() end, - desc = "Toggle Profiler Highlights", - }, - ["ux"] = { - function() require("snacks").toggle.dim():toggle() end, - desc = "Toggle Dim Inactive", - }, - ["uf"] = { - function() - vim.g.disable_autoformat = not vim.g.disable_autoformat - local status = vim.g.disable_autoformat and "disabled" or "enabled" - vim.notify("Format on save " .. status, vim.log.levels.INFO) - end, - desc = "Toggle Format on Save", - }, - -- v6: virtual_lines is native in vim.diagnostic.config, lsp_lines plugin no longer needed - ["ul"] = { - function() - local cfg = vim.diagnostic.config() or {} - local enabled = not cfg.virtual_lines - vim.diagnostic.config { virtual_lines = enabled, virtual_text = not enabled } - end, - desc = "Toggle Virtual Lines", - }, - }, - i = { - [""] = { "wa", desc = "Save buffer, and return to normal mode" }, - [""] = { "wabd", desc = "Save, close buffer, and return to normal mode" }, - [""] = { "wabd", desc = "Save, close buffer, and return to normal mode" }, - }, - v = { - [""] = { "wbd", desc = "Save and close buffer" }, - [""] = { "wbd", desc = "Save and close buffer" }, - ["D"] = { - function() - vim.cmd 'normal! "vy' - local selection = vim.fn.getreg "v" - local escaped = vim.fn.escape(selection, [[/\.*$^~[]]) - vim.cmd(string.format([[%%s/%s//ge]], escaped)) - vim.notify(string.format("Deleted all occurrences of: %s", selection), vim.log.levels.INFO) - end, - desc = "Delete all occurrences of selected text", - }, - ["R"] = { - function() - vim.cmd 'normal! "vy' - local selection = vim.fn.getreg "v" - local escaped = vim.fn.escape(selection, [[/\.*$^~[]]) - require("snacks").input({ - prompt = string.format("Replace '%s' with:", selection), - default = "", - }, function(replacement) - if replacement then - local escaped_replacement = vim.fn.escape(replacement, [[/\&~]]) - vim.cmd(string.format([[%%s/%s/%s/ge]], escaped, escaped_replacement)) - vim.notify(string.format("Replaced '%s' with '%s'", selection, replacement), vim.log.levels.INFO) - end - end) - end, - desc = "Replace all occurrences of selected text", - }, - }, - t = { - [""] = { function() vim.cmd 'normal! "+p' end, desc = "Paste from system clipboard" }, - ["f"] = { - function() require("snacks").picker.buffers() end, - desc = "Find buffers", - }, - [""] = { - function() - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes([[]], true, false, true), "n", false) - vim.cmd "close" - end, - desc = "Exit terminal and close window", - }, - }, - }, - }, -} diff --git a/dot_config/nvim/lua/plugins/astrolsp.lua b/dot_config/nvim/lua/plugins/astrolsp.lua deleted file mode 100644 index b8b121f..0000000 --- a/dot_config/nvim/lua/plugins/astrolsp.lua +++ /dev/null @@ -1,104 +0,0 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine --- Configuration documentation can be found with `:h astrolsp` --- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) --- as this provides autocomplete and documentation while editing - ----@type LazySpec -return { - "AstroNvim/astrolsp", - ---@type AstroLSPOpts - opts = { - -- Configuration table of features provided by AstroLSP - features = { - codelens = true, -- enable/disable codelens refresh on start - inlay_hints = false, -- enable/disable inlay hints on start - semantic_tokens = true, -- enable/disable semantic token highlighting - }, - -- customize lsp formatting options - formatting = { - -- control auto formatting on save - format_on_save = { - enabled = true, -- enable or disable format on save globally - allow_filetypes = { -- enable format on save for specified filetypes only - -- "go", - }, - ignore_filetypes = { -- disable format on save for specified filetypes - -- "python", - }, - }, - disabled = { -- disable formatting capabilities for the listed language servers - -- disable lua_ls formatting capability if you want to use StyLua to format your lua code - -- "lua_ls", - }, - timeout_ms = 1000, -- default format timeout - -- filter = function(client) -- fully override the default formatting function - -- return true - -- end - }, - -- enable servers that you already have installed without mason - servers = { - -- "pyright" - }, - -- customize language server configuration passed to `vim.lsp.config` - -- client specific configuration can also go in `lsp/` in your configuration root (see `:h lsp-config`) - config = { - -- ["*"] = { capabilities = {} }, -- modify default LSP client settings such as capabilities - }, - -- customize how language servers are attached - handlers = { - -- a function with the key `*` modifies the default handler, functions takes the server name as the parameter - -- ["*"] = function(server) vim.lsp.enable(server) end - - -- the key is the server that is being setup with `vim.lsp.config` - -- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server - }, - -- Configure buffer local auto commands to add when attaching a language server - autocmds = { - -- first key is the `augroup` to add the auto commands to (:h augroup) - lsp_codelens_refresh = { - -- Optional condition to create/delete auto command group - -- can either be a string of a client capability or a function of `fun(client, bufnr): boolean` - -- condition will be resolved for each client on each execution and if it ever fails for all clients, - -- the auto commands will be deleted for that buffer - cond = "textDocument/codeLens", - -- cond = function(client, bufnr) return client.name == "lua_ls" end, - -- list of auto commands to set - { - -- events to trigger - event = { "InsertLeave", "BufEnter" }, - -- the rest of the autocmd options (:h nvim_create_autocmd) - desc = "Refresh codelens (buffer)", - callback = function(args) - if require("astrolsp").config.features.codelens then vim.lsp.codelens.enable(true, { bufnr = args.buf }) end - end, - }, - }, - }, - -- mappings to be set up on attaching of a language server - mappings = { - n = { - -- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean - gD = { - function() vim.lsp.buf.declaration() end, - desc = "Declaration of current symbol", - cond = "textDocument/declaration", - }, - ["uY"] = { - function() require("astrolsp.toggles").buffer_semantic_tokens() end, - desc = "Toggle LSP semantic highlight (buffer)", - cond = function(client) - return client:supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil - end, - }, - }, - }, - -- A custom `on_attach` function to be run after the default `on_attach` function - -- takes two parameters `client` and `bufnr` (`:h lsp-attach`) - on_attach = function(client, bufnr) - -- this would disable semanticTokensProvider for all clients - -- client.server_capabilities.semanticTokensProvider = nil - end, - }, -} diff --git a/dot_config/nvim/lua/plugins/astroui.lua b/dot_config/nvim/lua/plugins/astroui.lua deleted file mode 100644 index 0c49c1f..0000000 --- a/dot_config/nvim/lua/plugins/astroui.lua +++ /dev/null @@ -1,15 +0,0 @@ - --- AstroUI provides the basis for configuring the AstroNvim User Interface --- Configuration documentation can be found with `:h astroui` --- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) --- as this provides autocomplete and documentation while editing - ----@type LazySpec -return { - "AstroNvim/astroui", - ---@type AstroUIOpts - opts = { - -- change colorscheme - colorscheme = "cyberdream", - }, -} diff --git a/dot_config/nvim/lua/plugins/conform.lua b/dot_config/nvim/lua/plugins/conform.lua deleted file mode 100644 index dd14af1..0000000 --- a/dot_config/nvim/lua/plugins/conform.lua +++ /dev/null @@ -1,105 +0,0 @@ --- Run all safe LSP code actions advertised by attached servers before save, --- then let conform format. The astrocommunity conform-nvim pack wires up --- format_on_save; this just adds the pre-save code-action pass. - --- Action kinds we consider safe to apply on save. Matches exact kinds and --- any subkinds via "." prefix (LSP CodeActionKind is hierarchical). --- Deliberately NOT the bare "source" umbrella: it covers non-idempotent --- document rewrites (e.g. marksman's "Create Table of Contents"). -local SAFE_KINDS = { - "source.organizeImports", - "source.fixAll", - "quickfix", -} - -local function is_safe_kind(kind) - if not kind or kind == "" then return false end - for _, safe in ipairs(SAFE_KINDS) do - if kind == safe or vim.startswith(kind, safe .. ".") then return true end - end - return false -end - --- Pull the kinds a given client advertises support for, filtered to safe ones. --- If the server returns no kinds list, fall back to the top-level SAFE_KINDS so --- it gets the chance to satisfy a broad "only" filter. -local function safe_kinds_for(client) - local provider = (client.server_capabilities or {}).codeActionProvider - if not provider then return {} end - local advertised = type(provider) == "table" and provider.codeActionKinds or nil - if not advertised or #advertised == 0 then return vim.deepcopy(SAFE_KINDS) end - local kinds = {} - for _, k in ipairs(advertised) do - if is_safe_kind(k) then table.insert(kinds, k) end - end - return kinds -end - --- Collect LSP-shaped diagnostics so quickfix actions have something to bind to. -local function lsp_diagnostics(bufnr) - local out = {} - for _, d in ipairs(vim.diagnostic.get(bufnr)) do - if d.user_data and d.user_data.lsp then table.insert(out, d.user_data.lsp) end - end - return out -end - --- Servers may ignore context.only (LSP allows it), so re-filter the returned --- actions by kind before applying. Kind-less actions are skipped: we asked for --- specific kinds, so anything untagged is not provably safe. -local function apply_result(client, bufnr, result) - if not result then return end - for _, action in ipairs(result) do - if is_safe_kind(action.kind) then - if action.edit then - vim.lsp.util.apply_workspace_edit(action.edit, client.offset_encoding or "utf-8") - end - if type(action.command) == "table" then - client:exec_cmd(action.command, { bufnr = bufnr }) - end - end - end -end - -local function apply_safe_actions(bufnr) - local clients = vim.lsp.get_clients { bufnr = bufnr, method = "textDocument/codeAction" } - if #clients == 0 then return end - local diagnostics = lsp_diagnostics(bufnr) - for _, client in ipairs(clients) do - local kinds = safe_kinds_for(client) - if #kinds > 0 then - local enc = client.offset_encoding or "utf-8" - local params = vim.lsp.util.make_range_params(0, enc) - params.context = { only = kinds, diagnostics = diagnostics, triggerKind = 2 } - local resp = client:request_sync("textDocument/codeAction", params, 1000, bufnr) - if resp and not resp.err then apply_result(client, bufnr, resp.result) end - end - end -end - ----@type LazySpec -return { - "stevearc/conform.nvim", - init = function() - vim.api.nvim_create_autocmd("BufWritePre", { - group = vim.api.nvim_create_augroup("user_lsp_safe_actions", { clear = true }), - desc = "Apply all safe LSP code actions (source.*, quickfix) before save", - callback = function(args) - if vim.bo[args.buf].buftype ~= "" then return end - if vim.g.disable_autoformat or vim.b[args.buf].disable_autoformat then return end - apply_safe_actions(args.buf) - end, - }) - end, - opts = function(_, opts) - -- Skip format-on-save for JavaScript buffers (.js/.mjs/.cjs); manual - -- :Format / lf still works. Wraps the astrocommunity pack's - -- format_on_save so its autoformat toggle handling is preserved. - local pack_format_on_save = opts.format_on_save - opts.format_on_save = function(bufnr) - if vim.bo[bufnr].filetype == "javascript" then return end - if type(pack_format_on_save) == "function" then return pack_format_on_save(bufnr) end - return pack_format_on_save - end - end, -} diff --git a/dot_config/nvim/lua/plugins/flash.lua b/dot_config/nvim/lua/plugins/flash.lua deleted file mode 100644 index 16c1941..0000000 --- a/dot_config/nvim/lua/plugins/flash.lua +++ /dev/null @@ -1,76 +0,0 @@ ---- flash.nvim: labeled jumps and enhanced motions ----@type LazySpec -return { - "folke/flash.nvim", - event = "VeryLazy", - ---@type Flash.Config - opts = { - modes = { - char = { - -- normal-mode `f` is the Vimium-style word jump and `F` is the - -- search-style jump below, so flash's char mode must not rebind - -- them; t/T/;/, stay enhanced - keys = { "t", "T", ";", "," }, - -- show jump labels on the char-motion matches (t/T) - jump_labels = true, - }, - -- label-enhanced regular `/` and `?` search; in cmdline - -- toggles it off for a plain search - search = { enabled = true }, - }, - }, - keys = { - { - "f", - mode = "n", - function() - -- Vimium-c style: label every visible word start immediately, - -- press a label to jump (no search pattern typed) - require("flash").jump { - search = { mode = "search", max_length = 0 }, - label = { after = false, before = { 0, 0 } }, - pattern = [[\<]], - } - end, - desc = "Jump to word (Vimium-style)", - }, - { - "F", - mode = "n", - function() - -- Search-style flash: type a regex pattern and labels appear on - -- every match. While selecting, ``/`` cycle to the - -- next/previous result, confirms the selection, a label jumps - -- directly, cancels back to the origin. The pattern is pushed - -- to search history and the `/` register, so `n`/`N` keep working - -- after the jump. - local current ---@type Flash.Match? - require("flash").jump { - search = { mode = "search" }, - jump = { history = true, register = true, nohlsearch = true }, - actions = { - [""] = function(state) - -- first press selects the current target, then cycle forward - current = current and state:find { match = current, forward = true, wrap = true } or state.target - if current then state:jump(current) end - end, - [""] = function(state) - current = state:find { match = current or state.target, forward = false, wrap = true } - if current then state:jump(current) end - end, - [""] = function(state) - state:jump(current) -- nil falls back to state.target - return false -- end the loop - end, - }, - } - end, - desc = "Flash search", - }, - { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" }, - { "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" }, - { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" }, - { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, - { "", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, - }, -} diff --git a/dot_config/nvim/lua/plugins/kitty.lua b/dot_config/nvim/lua/plugins/kitty.lua deleted file mode 100644 index 443b39d..0000000 --- a/dot_config/nvim/lua/plugins/kitty.lua +++ /dev/null @@ -1,42 +0,0 @@ -local function t_nav(fn) - return function() - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes([[]], true, false, true), "n", false) - vim.schedule(fn) - end -end - -return { - "MunsMan/kitty-navigator.nvim", - -- Keep the kitty-side kittens in sync with the plugin. ~/.config/kitty is symlinked into the - -- dotfiles repo, so this copies navigate_kitty.py + pass_keys.py straight into the tracked config. - -- navigate_kitty.py is required for the nvim->kitty edge handoff (init.lua calls `kitty @ kitten - -- navigate_kitty.py `); pass_keys.py must match the `neighboring_window` map syntax in kitty.conf. - build = { - "cp navigate_kitty.py ~/.config/kitty", - "cp pass_keys.py ~/.config/kitty", - }, - -- Disable smart-splits navigation keys (AstroNvim injects these when KITTY_LISTEN_ON is set); - -- kitty-navigator owns . Resize bindings () are left intact. - specs = { - { - "AstroNvim/astrocore", - opts = function(_, opts) - local m = opts.mappings.n - m[""] = false - m[""] = false - m[""] = false - m[""] = false - end, - }, - }, - keys = { - {"", function()require("kitty-navigator").navigateLeft()end, desc = "Move left a Split", mode = {"n"}}, - {"", function()require("kitty-navigator").navigateDown()end, desc = "Move down a Split", mode = {"n"}}, - {"", function()require("kitty-navigator").navigateUp()end, desc = "Move up a Split", mode = {"n"}}, - {"", function()require("kitty-navigator").navigateRight()end, desc = "Move right a Split", mode = {"n"}}, - {"", t_nav(function()require("kitty-navigator").navigateLeft()end), desc = "Move left a Split", mode = {"t"}}, - {"", t_nav(function()require("kitty-navigator").navigateDown()end), desc = "Move down a Split", mode = {"t"}}, - {"", t_nav(function()require("kitty-navigator").navigateUp()end), desc = "Move up a Split", mode = {"t"}}, - {"", t_nav(function()require("kitty-navigator").navigateRight()end), desc = "Move right a Split", mode = {"t"}}, - }, -} diff --git a/dot_config/nvim/lua/plugins/mason.lua b/dot_config/nvim/lua/plugins/mason.lua deleted file mode 100644 index 2d79b5f..0000000 --- a/dot_config/nvim/lua/plugins/mason.lua +++ /dev/null @@ -1,28 +0,0 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- Customize Mason - ----@type LazySpec -return { - -- use mason-tool-installer for automatically installing Mason packages - { - "WhoIsSethDaniel/mason-tool-installer.nvim", - -- overrides `require("mason-tool-installer").setup(...)` - opts = { - -- Make sure to use the names found in `:Mason` - ensure_installed = { - -- install language servers - "lua-language-server", - - -- install formatters - "stylua", - - -- install debuggers - "debugpy", - - -- install any other package - "tree-sitter-cli", - }, - }, - }, -} diff --git a/dot_config/nvim/lua/plugins/none-ls.lua b/dot_config/nvim/lua/plugins/none-ls.lua deleted file mode 100644 index 2b0ed18..0000000 --- a/dot_config/nvim/lua/plugins/none-ls.lua +++ /dev/null @@ -1,24 +0,0 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- Customize None-ls sources - ----@type LazySpec -return { - "nvimtools/none-ls.nvim", - opts = function(_, opts) - -- opts variable is the default configuration table for the setup function call - -- local null_ls = require "null-ls" - - -- Check supported formatters and linters - -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting - -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics - - -- Only insert new sources, do not replace the existing ones - -- (If you wish to replace, use `opts.sources = {}` instead of the `list_insert_unique` function) - opts.sources = require("astrocore").list_insert_unique(opts.sources, { - -- Set a formatter - -- null_ls.builtins.formatting.stylua, - -- null_ls.builtins.formatting.prettier, - }) - end, -} diff --git a/dot_config/nvim/lua/plugins/treesitter.lua b/dot_config/nvim/lua/plugins/treesitter.lua deleted file mode 100644 index 3a9afe9..0000000 --- a/dot_config/nvim/lua/plugins/treesitter.lua +++ /dev/null @@ -1,24 +0,0 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - --- Customize Treesitter --- -------------------- --- Treesitter customizations are handled with AstroCore --- as nvim-treesitter simply provides a download utility for parsers - ----@type LazySpec -return { - "AstroNvim/astrocore", - ---@type AstroCoreOpts - opts = { - treesitter = { - highlight = true, -- enable/disable treesitter based highlighting - indent = true, -- enable/disable treesitter based indentation - auto_install = true, -- enable/disable automatic installation of detected languages - ensure_installed = { - "lua", - "vim", - -- add more arguments for adding more treesitter parsers - }, - }, - }, -} diff --git a/dot_config/nvim/lua/plugins/user.lua b/dot_config/nvim/lua/plugins/user.lua deleted file mode 100644 index 71bf325..0000000 --- a/dot_config/nvim/lua/plugins/user.lua +++ /dev/null @@ -1,98 +0,0 @@ ---- User plugins: cursor animation and snacks.nvim (picker + dashboard) customization - --- Confirm action for file-opening pickers: opens the selection as a --- tab via `tabdrop` (:tab drop semantics — focus the buffer if it's already --- visible in any tab, don't spawn a tab from an empty buffer, else open a --- new tab). Explicit edit-cmd keybinds (/ vsplit, split) --- carry `action.cmd` and are passed through untouched. -local function tab_confirm(picker, item, action) - local actions = require "snacks.picker.actions" - if action.cmd then return actions.jump(picker, item, action) end - return actions.jump(picker, item, vim.tbl_extend("force", {}, action, { cmd = "tabdrop" })) -end - --- Tab-on-enter + vsplit-on-shift-enter for the file-opening pickers only; --- location pickers (lsp_*, lines, diagnostics, grep) and sources with their --- own confirm (git_branches, projects) keep their defaults. -local picker_sources = {} -for _, source in ipairs { "files", "git_files", "smart", "recent", "buffers" } do - picker_sources[source] = { - confirm = tab_confirm, - win = { - input = { keys = { [""] = { "edit_vsplit", mode = { "n", "i" } } } }, - list = { keys = { [""] = "edit_vsplit" } }, - }, - } -end - --- Smart picker: anchor to the current git repository. `config` runs when --- the picker opens: cwd becomes the repo root (so the `files` finder scans --- the whole repo, not just a rooter-chdir'd subdir) and `filter.cwd` drops --- buffers/recent entries from other repos. Outside a repo, plain cwd --- behavior is kept. -picker_sources.smart.config = function(opts) - local root = require("snacks").git.get_root() - if root then - opts.cwd = root - opts.filter = vim.tbl_extend("force", opts.filter or {}, { cwd = true }) - end - return opts -end - ----@type LazySpec -return { - { "sphamba/smear-cursor.nvim", opts = {} }, - - -- terminals are handled by kitty now - { "akinsho/toggleterm.nvim", enabled = false }, - - { - "folke/snacks.nvim", - opts = { - picker = { - jump = { reuse_win = true }, - sources = picker_sources, - }, - dashboard = { - enabled = true, - preset = { - -- "prdlk.nvim" in ansi_regular block style - header = table.concat({ - "██████ ██████ ██████ ██ ██ ██ ███ ██ ██ ██ ██ ███ ███", - "██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ████ ████", - "██████ ██████ ██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ██ ████ ██", - "██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██", - "██ ██ ██ ██████ ███████ ██ ██ ██ ██ ████ ████ ██ ██ ██", - }, "\n"), - }, - sections = { - { section = "header" }, - { section = "keys", gap = 1, padding = 1 }, - { - icon = " ", - desc = "Browse Repo", - padding = 1, - key = "b", - action = function() Snacks.gitbrowse() end, - }, - { - icon = " ", - desc = "Projects (ghq)", - padding = 1, - key = "p", - action = function() - local repos = vim.fn.systemlist "ghq list -p" - vim.ui.select(repos, { prompt = "Select repository" }, function(dir) - if not dir then return end - vim.cmd.cd(dir) - Snacks.picker.files() - end) - end, - }, - { section = "startup" }, - }, - }, - }, - }, - -} diff --git a/dot_config/nvim/lua/plugins/yazi.lua b/dot_config/nvim/lua/plugins/yazi.lua deleted file mode 100644 index 28e154c..0000000 --- a/dot_config/nvim/lua/plugins/yazi.lua +++ /dev/null @@ -1,91 +0,0 @@ ---- Yazi as the default file manager (full neo-tree replacement) ----@type LazySpec -return { - { - "mikavilpas/yazi.nvim", - version = "*", -- latest stable release - event = "VeryLazy", - dependencies = { - { "nvim-lua/plenary.nvim", lazy = true }, - }, - keys = { - { - "-", - mode = { "n", "v" }, - "Yazi", - desc = "Open yazi at the current file", - }, - { - "cw", - "Yazi cwd", - desc = "Open yazi in nvim's working directory", - }, - { - -- replaces AstroNvim's o "Toggle Explorer Focus" (neo-tree) - "o", - "Yazi", - desc = "Open Explorer (yazi at current file)", - }, - { - "", - mode = { "n", "v", "t" }, - function() - -- true toggle: if a yazi window is already open, quit it instead - -- of nesting a second instance (yazi.nvim's toggle() always spawns) - for _, win in ipairs(vim.api.nvim_list_wins()) do - local buf = vim.api.nvim_win_get_buf(win) - if vim.bo[buf].filetype == "yazi" then - -- send `q` to the yazi process so it exits gracefully and - -- saves its state for the next resume - vim.api.nvim_chan_send(vim.bo[buf].channel, "q") - return - end - end - vim.cmd "Yazi toggle" - end, - desc = "Toggle yazi (resume last session)", - }, - }, - ---@type YaziConfig | {} - opts = { - -- yazi replaces netrw/neo-tree when opening directories (nvim .) - open_for_directories = true, - -- keep a single yazi tab: `true` would pass every visible split as an - -- extra path arg, and each one becomes a yazi tab that then persists - -- across toggles (resume), piling up tabs over time - open_multiple_tabs = false, - -- occupy the whole screen instead of a floating popup - floating_window_scaling_factor = 1, - yazi_floating_window_border = "none", - keymaps = { - show_help = "", - -- Open the hovered/selected file(s) as nvim splits. These are - -- buffer-local terminal-mode keymaps on the yazi buffer, so nvim - -- intercepts the chord before the yazi process ever sees it -- - -- nothing is needed in ~/.config/yazi/keymap.toml. Chords match - -- the telescope/snacks picker convention (//). - open_file_in_vertical_split = "", - open_file_in_horizontal_split = "", - -- NOTE: the default (open in tab) shadows the yazi-side - -- "plugin tv" bind from keymap.toml while inside nvim; - -- set open_file_in_tab = false to let reach yazi/tv instead - open_file_in_tab = "", - -- ~/.config/yazi/keymap.toml binds to quit inside yazi; - -- don't hijack it for the quickfix list (multi-select still goes - -- to the quickfix list via the default yazi_opened_multiple_files) - send_to_quickfix_list = false, - }, - integrations = { - -- copy-relative-path action inside snacks pickers too - picker_add_copy_relative_path_action = "snacks.picker", - }, - }, - init = function() - -- netrw is fully replaced by yazi (open_for_directories) - vim.g.loaded_netrwPlugin = 1 - end, - }, - - -- neo-tree is fully replaced by yazi.nvim - { "nvim-neo-tree/neo-tree.nvim", enabled = false }, -} diff --git a/dot_config/nvim/lua/polish.lua b/dot_config/nvim/lua/polish.lua deleted file mode 100644 index cbcd1d6..0000000 --- a/dot_config/nvim/lua/polish.lua +++ /dev/null @@ -1,2 +0,0 @@ --- This will run last in the setup process. --- Pure lua; anything that doesn't fit the normal config locations goes here. diff --git a/dot_config/nvim/neovim.yml b/dot_config/nvim/neovim.yml deleted file mode 100644 index b9235ab..0000000 --- a/dot_config/nvim/neovim.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -base: lua51 - -globals: - vim: - any: true diff --git a/dot_config/nvim/prdlk.sh b/dot_config/nvim/prdlk.sh deleted file mode 100644 index c733552..0000000 --- a/dot_config/nvim/prdlk.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -# Generated Bash ANSI Art - -ansi_art_lines=( - " ████ ██████ ████ ████ " - " ████░░ ████░████░░ ░░░░ " - "██████████ ████████ ██████████░░ ████░████░░████ ██████████ ████ ████ ██████ ██████████████ " - "████░░░░████ ████░░░░░░░████░░░░████░░ ████░████████░░░░ ████░░░░████ ████░░ ████░░ ████░████░░████░░████ " - "████░░ ████░████░░ ████░░ ████░░ ████░██████░░░░ ████░░ ████░████░░ ████░░ ████░████░░████░░████░░" - "████░░ ████░████░░ ████░░ ████░░ ████░████████ ████ ████░░ ████░░ ████████░░░░ ████░████░░████░░████░░" - "██████████░░░████░░ ██████████░░ ████░████░░████ ████░████░░ ████░░ ████░░░░ ████░████░░████░░████░░" - "████░░░░░░░░ ░░░░ ░░░░░░░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░ ░░░░" - "████░░ " - " ░░░░ " -) - -display_ansi_art() { - for line in "${ansi_art_lines[@]}"; do - echo -e "$line" - done -} - -# Call the function -display_ansi_art diff --git a/dot_config/nvim/private_dot_gitignore b/dot_config/nvim/private_dot_gitignore deleted file mode 100644 index 88007b8..0000000 --- a/dot_config/nvim/private_dot_gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.omc -/.omc/state -/.understand-anything/tmp -/.understand-anything diff --git a/dot_config/nvim/selene.toml b/dot_config/nvim/selene.toml deleted file mode 100644 index e7005c3..0000000 --- a/dot_config/nvim/selene.toml +++ /dev/null @@ -1,8 +0,0 @@ -std = "neovim" - -[rules] -global_usage = "allow" -if_same_then_else = "allow" -incorrect_standard_library_use = "allow" -mixed_table = "allow" -multiple_statements = "allow" diff --git a/dot_config/nvim/zed-keymap.jsonc b/dot_config/nvim/zed-keymap.jsonc deleted file mode 100644 index 585ba5c..0000000 --- a/dot_config/nvim/zed-keymap.jsonc +++ /dev/null @@ -1,77 +0,0 @@ -// Zed keymap mirroring the AstroNvim config in this repo. -// Only binds with a real Zed equivalent are mapped; nvim-only features -// (lazygit, Octo, ClaudeCode, snacks scoped pickers, Overseer-specific -// pickers, in-line search) are skipped — see notes at the bottom. -// -// Docs: https://zed.dev/docs/key-bindings -[ - { - "context": "Workspace", - "bindings": { - "ctrl-e": "workspace::ToggleLeftDock", // toggle explorer - "ctrl-s": "workspace::Save", // save - "ctrl-m": "task::Spawn" // run task (Overseer) - } - }, - { - "context": "Editor && vim_mode == insert", - "bindings": { - "ctrl-s": "workspace::Save" // i_ - } - }, - { - "context": "VimControl && vim_mode == normal", - "bindings": { - // --- existing binds --- - "space space": "file_finder::Toggle", - "space w": "pane::CloseActiveItem", - "space o": "outline::Toggle", - "space g b": "git::Branch", - "space t": "terminal_panel::ToggleFocus", - "space g g": "git_panel::ToggleFocus", - "space /": "pane::DeploySearch", - "escape escape": "workspace::Save", - "shift-u": "vim::Redo", - "space h": "editor::ToggleInlayHints", - "space e": "pane::RevealInProjectPanel", - "ctrl-a": "editor::ToggleCodeActions", - "] f": "vim::NextMethodStart", - "[ f": "vim::PreviousMethodStart", - - // --- diagnostics / buffers / folds --- - "shift-j": "editor::GoToDiagnostic", // J next diagnostic - "shift-k": "editor::GoToPreviousDiagnostic", // K prev diagnostic - "shift-l": "pane::ActivateNextItem", // L next buffer - "shift-h": "pane::ActivatePreviousItem", // H prev buffer - "shift-f": "editor::ToggleFold", // F = za - "v v": "editor::SelectAll", // vv select whole buffer - - // --- save / close --- - "ctrl-s": "workspace::Save", - "ctrl-w": "pane::CloseActiveItem", // save+close -> close (Zed autosaves) - - // --- find ( prefix) --- - "ctrl-f f": "file_finder::Toggle", - "ctrl-f w": "pane::DeploySearch", - "ctrl-f d": "diagnostics::Deploy", - "ctrl-f o": "projects::OpenRecent", - "ctrl-f p": "projects::OpenRecent", - - // --- buffers ( prefix) --- - "ctrl-b f": "tab_switcher::Toggle", - - // --- actions / symbols ( prefix) --- - "ctrl-a a": "editor::ToggleCodeActions", - "ctrl-a d": "diagnostics::Deploy", - "ctrl-a s": "outline::Toggle", - "ctrl-a shift-s": "project_symbols::Toggle", - - // --- git ( prefix) --- - "ctrl-g g": "git_panel::ToggleFocus", - "ctrl-g b": "git::Branch", - - // --- terminal --- - "ctrl-j ctrl-j": "terminal_panel::ToggleFocus" - } - } -] diff --git a/dot_config/yazi/package.toml b/dot_config/yazi/package.toml index ba18f56..7f8f6ab 100644 --- a/dot_config/yazi/package.toml +++ b/dot_config/yazi/package.toml @@ -1,6 +1,6 @@ [[plugin.deps]] use = "yazi-rs/plugins:smart-filter" -rev = "5c7973c" +rev = "0be29a9" hash = "d6f7351ea25a43c9b5f4315fa1e23935" [[plugin.deps]] @@ -10,7 +10,7 @@ hash = "8c1b36103121a66b37308afaf7124575" [[plugin.deps]] use = "yazi-rs/plugins:smart-enter" -rev = "5c7973c" +rev = "0be29a9" hash = "187cc58ba7ac3befd49c342129e6f1b6" [[plugin.deps]] @@ -43,5 +43,10 @@ use = "coder0x6675/osc7" rev = "ae73046" hash = "4f73595837992eeefcb525c0a95b92ba" +[[plugin.deps]] +use = "WhoSowSee/mdv-previewer" +rev = "d487f90" +hash = "2b9699810478c6de60f609092fc9bfc9" + [flavor] deps = []