mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 19:32:43 +00:00
Add ~/.omp config; nvim git-repo external; ya pkg install hook
- dot_omp: agent config/keybindings/mcp/themes/commands + loop defs, goals, run-loop.sh; dotstate config.yml symlink materialized; dbs, logs, sessions, memories, blobs, caches, .env (secret), and managed-skills excluded - .chezmoiexternal.toml: prdlk/nvim as git-repo external — no refreshPeriod + ff-only pull, local checkout wins over remote - yazi plugins: vendored source copies dropped (target-ignored already); package.toml is the manifest, installed via run_onchange ya pkg install hook; stale piper/easyjump pins bumped to match live content - herdr: plugins/github checkout, logs, session.json, .bak, release-notes dropped from sync (herdr-managed machine state)
This commit is contained in:
1 parent
12368d5e7d
commit
45df42b91b
24 files changed
+577
-2946
No files matched your search
@@ -0,0 +1,10 @@
|
|||||||
|
# External content — cloned/downloaded by chezmoi, not stored in this repo.
|
||||||
|
|
||||||
|
# Neovim config lives in its own repo. No refreshPeriod: chezmoi clones it
|
||||||
|
# when ~/.config/nvim is missing (fresh machine) and otherwise never pulls,
|
||||||
|
# so the local checkout always wins over the remote.
|
||||||
|
[".config/nvim"]
|
||||||
|
type = "git-repo"
|
||||||
|
url = "https://github.com/prdlk/nvim.git"
|
||||||
|
[".config/nvim".pull]
|
||||||
|
args = ["--ff-only"]
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
/dot_config/lazygit/dot_omc
|
/dot_config/lazygit/dot_omc
|
||||||
/dot_config/tmux/plugins
|
/dot_config/tmux/plugins
|
||||||
/dot_config/yazi/plugins
|
|
||||||
|
|
||||||
# Beads / Dolt files (added by bd init)
|
# Beads / Dolt files (added by bd init)
|
||||||
.dolt/
|
.dolt/
|
||||||
*.db
|
*.db
|
||||||
.beads-credential-key
|
.beads-credential-key
|
||||||
/dot_config/herdr/plugins/github/official.browser-ff2a44eccae9
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
onboarding = false
|
|
||||||
[ui]
|
|
||||||
|
|
||||||
show_agent_labels_on_pane_borders = false
|
|
||||||
agent_panel_sort = "priority"
|
|
||||||
[keys]
|
|
||||||
# tmux-style bindings (prefix is the leader, default ctrl+b)
|
|
||||||
split_vertical = "prefix+%"
|
|
||||||
split_horizontal = 'prefix+"'
|
|
||||||
detach = "prefix+d"
|
|
||||||
|
|
||||||
# leader+s opens the workspace ("spaces") picker (settings moves off prefix+s to make room)
|
|
||||||
workspace_picker = "prefix+s"
|
|
||||||
settings = "prefix+shift+s"
|
|
||||||
|
|
||||||
# vim-style j/k move the selection up/down inside the spaces picker
|
|
||||||
# (frees pane up/down in navigate mode; use arrows or ctrl+b j/k for pane focus)
|
|
||||||
navigate_workspace_up = "k"
|
|
||||||
navigate_workspace_down = "j"
|
|
||||||
navigate_pane_up = ""
|
|
||||||
navigate_pane_down = ""
|
|
||||||
|
|
||||||
# leader+. / leader+, step to the next / previous agent in the panel
|
|
||||||
next_agent = "prefix+."
|
|
||||||
previous_agent = "prefix+,"
|
|
||||||
|
|
||||||
# leader+a focuses the agent panel for keyboard browsing
|
|
||||||
# (j/k to move, enter to jump, esc to leave) — needs the rebuilt binary
|
|
||||||
|
|
||||||
[experimental]
|
|
||||||
pane_history = false
|
|
||||||
kitty_graphics = true
|
|
||||||
|
|
||||||
switch_ascii_input_source_in_prefix = true
|
|
||||||
[theme]
|
|
||||||
name = "rose-pine"
|
|
||||||
auto_switch = false
|
|
||||||
|
|
||||||
[[keys.command]]
|
|
||||||
key = "ctrl+h"
|
|
||||||
type = "plugin_action"
|
|
||||||
command = "vim-herdr-navigation.left"
|
|
||||||
description = "navigate left (vim/herdr)"
|
|
||||||
|
|
||||||
[[keys.command]]
|
|
||||||
key = "ctrl+j"
|
|
||||||
type = "plugin_action"
|
|
||||||
command = "vim-herdr-navigation.down"
|
|
||||||
description = "navigate down (vim/herdr)"
|
|
||||||
|
|
||||||
[[keys.command]]
|
|
||||||
key = "ctrl+k"
|
|
||||||
type = "plugin_action"
|
|
||||||
command = "vim-herdr-navigation.up"
|
|
||||||
description = "navigate up (vim/herdr)"
|
|
||||||
|
|
||||||
[[keys.command]]
|
|
||||||
key = "ctrl+l"
|
|
||||||
type = "plugin_action"
|
|
||||||
command = "vim-herdr-navigation.right"
|
|
||||||
description = "navigate right (vim/herdr)"
|
|
||||||
|
|
||||||
[ui.toast]
|
|
||||||
delivery = "system"
|
|
||||||
@@ -1,178 +0,0 @@
|
|||||||
2026-05-28T19:40:57.057705Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1680670
|
|
||||||
2026-05-28T19:40:57.057733Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-05-28T19:40:57.262004Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-05-28T19:42:19.434571Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1680670
|
|
||||||
2026-05-28T19:42:26.639491Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1683643
|
|
||||||
2026-05-28T19:42:26.639525Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-05-28T19:42:26.719401Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-05-28T20:31:23.777641Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1683643
|
|
||||||
2026-05-28T20:31:26.570038Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1791775
|
|
||||||
2026-05-28T20:31:26.570063Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-05-28T20:31:26.759313Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-05-28T20:31:28.727582Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1791775
|
|
||||||
2026-05-28T20:37:39.576802Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1805927
|
|
||||||
2026-05-28T20:37:39.576831Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-05-28T20:37:39.620232Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-05-28T20:38:17.881212Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1805927
|
|
||||||
2026-05-28T20:38:20.643896Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1809290
|
|
||||||
2026-05-28T20:38:20.643927Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-05-28T20:38:20.646586Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-05-29T15:05:34.667934Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=61185
|
|
||||||
2026-05-29T15:05:34.667982Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-05-29T15:05:34.679337Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-03T14:32:02.360706Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=31587
|
|
||||||
2026-06-03T14:32:02.360760Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-03T14:32:02.368403Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-03T14:32:31.855540Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=31587
|
|
||||||
2026-06-03T15:51:52.825690Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=172456
|
|
||||||
2026-06-03T15:51:52.825718Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-03T15:51:53.062403Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-08T14:52:22.694135Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=368548
|
|
||||||
2026-06-08T14:52:22.694194Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-08T14:52:22.702171Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-10T14:30:43.565299Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=56627
|
|
||||||
2026-06-10T14:30:43.565345Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-10T14:30:43.598445Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-10T20:48:04.152703Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=750091
|
|
||||||
2026-06-10T20:48:04.152731Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-10T20:48:04.160687Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-10T21:09:48.411301Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=750091
|
|
||||||
2026-06-10T21:09:55.929109Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=858089
|
|
||||||
2026-06-10T21:09:55.929138Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-10T21:09:55.937811Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-11T02:49:30.176667Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=858089
|
|
||||||
2026-06-11T12:59:13.247855Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=165087
|
|
||||||
2026-06-11T12:59:13.248187Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-11T12:59:13.249978Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-11T12:59:29.638175Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=165087
|
|
||||||
2026-06-11T13:05:28.328247Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=182410
|
|
||||||
2026-06-11T13:05:28.328275Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-11T13:05:28.511680Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-15T18:04:39.006183Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=400798
|
|
||||||
2026-06-15T18:04:39.006505Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-15T18:04:39.007199Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
|
|
||||||
2026-06-15T18:05:02.645539Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=400798
|
|
||||||
2026-06-15T18:05:12.138850Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=404873
|
|
||||||
2026-06-15T18:05:12.138895Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-15T18:05:12.149336Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-15T18:06:27.459183Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=404873
|
|
||||||
2026-06-16T01:58:58.687849Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1115079
|
|
||||||
2026-06-16T01:58:58.687903Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-16T01:58:58.759505Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-16T01:59:13.356088Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1115079
|
|
||||||
2026-06-16T20:30:39.749269Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=82514
|
|
||||||
2026-06-16T20:30:39.749614Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-16T20:30:39.792184Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-16T20:35:24.106218Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=122647
|
|
||||||
2026-06-16T20:35:24.106247Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-16T20:35:24.343929Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-16T20:36:11.253746Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=126138
|
|
||||||
2026-06-16T20:36:11.253776Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-16T20:36:11.431513Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-19T16:27:36.734121Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=76862
|
|
||||||
2026-06-19T16:27:36.734147Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-19T16:27:36.734215Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-20T05:03:47.038376Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=76862
|
|
||||||
2026-06-27T00:01:00.932547Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=164638
|
|
||||||
2026-06-27T00:01:00.932956Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-27T00:01:00.934155Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-27T00:02:47.644799Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=164638
|
|
||||||
2026-06-27T00:03:11.186443Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=167846
|
|
||||||
2026-06-27T00:03:11.186471Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-27T00:03:11.216769Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-27T00:09:43.682841Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=167846
|
|
||||||
2026-06-27T00:09:45.678252Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=176355
|
|
||||||
2026-06-27T00:09:45.678280Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-06-27T00:09:45.692879Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-06-27T00:15:44.471267Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=176355
|
|
||||||
2026-07-02T21:32:15.764489Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=233448
|
|
||||||
2026-07-02T21:32:15.764745Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-07-02T21:32:15.765231Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-07-03T23:10:28.602029Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=286613
|
|
||||||
2026-07-03T23:10:28.602324Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-07-03T23:10:28.608148Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
|
|
||||||
2026-07-03T23:10:47.971834Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=286613
|
|
||||||
2026-07-15T18:28:37.583336Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=245041
|
|
||||||
2026-07-15T18:28:37.583587Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-07-15T18:28:37.592449Z INFO herdr::client: handshake succeeded version=16 encoding=SemanticFrame
|
|
||||||
2026-07-15T18:29:32.006609Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=245041
|
|
||||||
2026-07-23T16:57:59.203976Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=119405
|
|
||||||
2026-07-23T16:57:59.204188Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-07-23T16:57:59.212810Z INFO herdr::client: handshake succeeded version=16 encoding=SemanticFrame
|
|
||||||
2026-07-23T16:58:03.577736Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=119405
|
|
||||||
2026-07-23T17:32:26.908954Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=158519
|
|
||||||
2026-07-23T17:32:26.908974Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-07-23T17:32:26.909097Z INFO herdr::client: handshake succeeded version=17 encoding=SemanticFrame
|
|
||||||
2026-07-23T17:34:46.307539Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=158519
|
|
||||||
2026-07-23T17:35:25.610182Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=162811
|
|
||||||
2026-07-23T17:35:25.610209Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-07-23T17:35:25.630930Z INFO herdr::client: handshake succeeded version=17 encoding=SemanticFrame
|
|
||||||
2026-07-23T17:35:36.061207Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=162811
|
|
||||||
2026-07-23T17:36:10.748541Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=164221
|
|
||||||
2026-07-23T17:36:10.748562Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-07-23T17:36:10.817594Z INFO herdr::client: handshake succeeded version=17 encoding=SemanticFrame
|
|
||||||
2026-07-23T19:29:42.325170Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=164221
|
|
||||||
2026-08-09T19:05:36.891702Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=192692
|
|
||||||
2026-08-09T19:05:36.891879Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-09T19:05:36.893062Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-09T19:08:20.252723Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=192692
|
|
||||||
2026-08-09T19:13:18.999174Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=225176
|
|
||||||
2026-08-09T19:13:18.999192Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-09T19:13:19.081080Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-09T19:15:24.551494Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=225176
|
|
||||||
2026-08-10T20:41:02.491553Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=466140
|
|
||||||
2026-08-10T20:41:02.491587Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-10T20:41:02.493525Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-10T20:55:36.944275Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=488820
|
|
||||||
2026-08-10T20:55:36.944295Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-10T20:55:36.949421Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-10T20:56:27.365912Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=466140
|
|
||||||
2026-08-10T20:57:26.892918Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=492752
|
|
||||||
2026-08-10T20:57:26.892943Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-10T20:57:26.906140Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-11T18:40:51.207726Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=176655
|
|
||||||
2026-08-11T18:40:51.207960Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-11T18:40:51.210518Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-11T18:41:04.828470Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=176655
|
|
||||||
2026-08-11T18:46:13.849126Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=183260
|
|
||||||
2026-08-11T18:46:13.849148Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-11T18:46:14.063265Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-11T19:08:39.960619Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=216140
|
|
||||||
2026-08-11T19:08:39.960643Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
|
|
||||||
2026-08-11T19:08:40.116564Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
|
|
||||||
2026-08-11T19:09:25.791477Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=218168
|
|
||||||
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
|
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "0.8.0",
|
|
||||||
"body": "### Added\n- Added `herdr --skill` to print the agent skill bundled with the running Herdr binary.\n- Added `ui.pane_scrollbars = false` to hide terminal pane scrollbars and reclaim their reserved column. (#2167)\n- Added `ui.tab_bar_position = \"bottom\"` to place the desktop tab row below terminal panes. (#2117)\n- Added live filtering to the keybind help with `/`, Backspace, and `Ctrl+U`. (#1825, #1832, thanks @corrius)\n- Added Windows support for `experimental.switch_ascii_input_source_in_prefix` with Korean IMEs. (#1802, #1823, thanks @joonhwan)\n- Added Grok CLI session reporting and native restore with `grok --resume <id>`. (#1800, #1807, thanks @carlesso)\n- Added Antigravity CLI session reporting and native restore with `agy --conversation <id>`. (#1011, #1571, #2087, thanks @ludoo)\n- Added automatic text history reads for idle alternate-screen agents, with the application viewport restored after collection.\n- Added `workspace.move_block`, the `workspace.reordered` event, and atomic worktree-group reordering. (#1694)\n- Added a Simplified Chinese README. (#1990, thanks @patrick-xin)\n\n### Changed\n- Experimental options are no longer exposed in the Settings TUI and remain available through the config file.\n- Agent status indicators now use the same static workspace marks across the sidebar, navigator, and mobile views, eliminating continuous spinner rendering while agents work.\n- Hidden pane output no longer triggers unnecessary TUI rendering.\n- Windows preview downloads now include Herdr and a modern app-local ConPTY runtime in one archive. (#1533, #1644, #1828)\n- Worktree parents and children now stay packed together in the sidebar, including while groups are reordered.\n- Public documentation now separates stable, preview, and immutable versioned release snapshots.\n- Repository and installation links now use `herdrdev/herdr` after the GitHub organization migration.\n- Relicensed Herdr from AGPL-3.0-or-later to Apache-2.0.\n\n### Fixed\n- Pane applications now receive semantic light/dark query responses and live Mode 2031 updates when the host appearance changes. (#714)\n- Remote attach now falls back to `sh` when the login shell cannot perform path discovery. (#1201)\n- PTY output continues to be read while pane input is temporarily blocked. (#1295)\n- Worktree CLI help and docs no longer advertise the redundant `--json` flag; worktree commands remain JSON-only and continue accepting the flag for compatibility. (#2171)\n- OpenCode 2 preview panes now appear as OpenCode agents and use the existing OpenCode status detection. (#2169)\n- Pane text copied through VS Code Remote Tunnels now reaches the viewing machine's clipboard instead of overwriting the remote host clipboard. (#2015)\n- Windows agent detection now follows Git Bash-launched agents across emulated `exec` process boundaries. (#2107)\n- Detached Windows servers and pane processes now survive logout from the OpenSSH session that started them. (#2008)\n- Windows `agent start` now launches agents without native arguments instead of timing out on an invalid empty PowerShell argument list. (#2072)\n- Headless servers now resume restored agent sessions without waiting for a TUI client to attach. (#2064)\n- Vibe and other Kitty-keyboard pane applications now receive shifted letters and punctuation when they request associated text. (#2020)\n- Kitty-keyboard pane applications now receive printable key releases without duplicate text input. (#1746)\n- Kitty graphics remain visible during host repaints. (#1628)\n- Pane applications now receive correct XTWINOPS terminal and cell-size query responses. (#835)\n- WSL clients query the host cell size when the terminal ioctl reports no pixels, keeping graphics sharp instead of using the 8x16 fallback. (#2146, #2160, thanks @WakaTaira)\n- Linux runtimes without terminal foreground process groups can opt into child-group agent detection with `HERDR_PROCESS_DETECTION=child-groups`. (#1982)\n- Installing the Herdr agent skill with the `skills` CLI no longer copies the entire repository. (#2022)\n- Nix builds now include the bundled agent skill required by `herdr --skill`. (#1889, #1890, thanks @olafkfreund)\n- Agent prompts now wait briefly after sending text before pressing Enter, preventing prompts from remaining in agent composers without starting a turn. (#1878)\n- Empty clipboard writes from pane applications no longer erase existing clipboard contents or show a copied confirmation. (#1893)\n- Plain mouse movement no longer triggers continuous full renders while preserving Herdr menu hover and pane application mouse tracking. (#1865)\n- Extended-button drags now preserve Herdr hover state while applications receive the drag.\n- `ui.copy_on_select = false` now retains drag and double-click word selections without copying; `Ctrl+C`, or `Cmd+C` when the host terminal forwards it, copies and clears the selection. (#1782)\n- Pane and agent read responses now report `truncated: true` wLine truncated
|
|
||||||
"show_on_startup": false
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"workspaces": [
|
|
||||||
{
|
|
||||||
"id": "w13",
|
|
||||||
"custom_name": null,
|
|
||||||
"identity_cwd": "/home/prad",
|
|
||||||
"public_pane_numbers": {
|
|
||||||
"8": 1
|
|
||||||
},
|
|
||||||
"next_public_pane_number": 2,
|
|
||||||
"public_tab_numbers": [
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"next_public_tab_number": 2,
|
|
||||||
"tabs": [
|
|
||||||
{
|
|
||||||
"custom_name": null,
|
|
||||||
"layout": {
|
|
||||||
"Pane": 8
|
|
||||||
},
|
|
||||||
"panes": {
|
|
||||||
"8": {
|
|
||||||
"cwd": "/home/prad"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"zoomed": false,
|
|
||||||
"focused": 8,
|
|
||||||
"root_pane": 8
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"active_tab": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"active": 0,
|
|
||||||
"selected": 0,
|
|
||||||
"sidebar_width": 24,
|
|
||||||
"sidebar_section_split": 0.4939759,
|
|
||||||
"collapsed_space_keys": []
|
|
||||||
}
|
|
||||||
@@ -15,8 +15,8 @@ hash = "187cc58ba7ac3befd49c342129e6f1b6"
|
|||||||
|
|
||||||
[[plugin.deps]]
|
[[plugin.deps]]
|
||||||
use = "yazi-rs/plugins:piper"
|
use = "yazi-rs/plugins:piper"
|
||||||
rev = "5c7973c"
|
rev = "3f2b882"
|
||||||
hash = "e0d59bd47866a6a574c74574097e5070"
|
hash = "f23ecc89ce0f9eeefdd4cea14e2a9ba7"
|
||||||
|
|
||||||
[[plugin.deps]]
|
[[plugin.deps]]
|
||||||
use = "Rolv-Apneseth/starship"
|
use = "Rolv-Apneseth/starship"
|
||||||
@@ -25,8 +25,8 @@ hash = "7de446280b1ba8c49ffd86dbc24bbbe6"
|
|||||||
|
|
||||||
[[plugin.deps]]
|
[[plugin.deps]]
|
||||||
use = "mikavilpas/easyjump.yazi:easyjump"
|
use = "mikavilpas/easyjump.yazi:easyjump"
|
||||||
rev = "5bd5fa7"
|
rev = "a2a7373"
|
||||||
hash = "b976709df0f6d3341736f053e87b2b8"
|
hash = "6f8b9e41dde4ae29d958d4cdc829c121"
|
||||||
|
|
||||||
[[plugin.deps]]
|
[[plugin.deps]]
|
||||||
use = "cap153/tv"
|
use = "cap153/tv"
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Loop 1 — answer-engine gap (green)
|
||||||
|
# Cadence: Thu 07:00 weekly · Tool: Exa
|
||||||
|
|
||||||
|
You are one round of a weekly answer-gap loop: questions developers ask that
|
||||||
|
WalletBase should be the answer to, but isn't.
|
||||||
|
|
||||||
|
## Question universe (rotate through, same check per question)
|
||||||
|
Seed: "how do I give my AI agent a wallet", "how to sponsor gas for users",
|
||||||
|
"passkey signing for smart accounts", "how to limit what an AI agent can spend",
|
||||||
|
"ERC-4337 vs EIP-7702 for agents", "revoke an AI agent's permissions onchain".
|
||||||
|
Plus: new questions harvested from previous rounds (see state file ## queue).
|
||||||
|
|
||||||
|
## Round procedure
|
||||||
|
1. READ the state file. Find the first question in ## queue not yet processed
|
||||||
|
(or the next seed question on first runs).
|
||||||
|
2. For that ONE question: search what currently answers it (docs, blogs, SO,
|
||||||
|
competitor pages). Log who owns the answer today.
|
||||||
|
3. Write ONE full content brief under ## queue: exact target question, current
|
||||||
|
best answer's weakness, outline, code-example requirements, internal
|
||||||
|
docs/GUIDE.md sections to link. Brief only — a human writes and ships it.
|
||||||
|
4. Harvest up to 3 NEW adjacent questions discovered during research; append
|
||||||
|
to ## queue unprocessed.
|
||||||
|
|
||||||
|
## Escalation contract
|
||||||
|
Never escalate. Gap analysis is routine work.
|
||||||
|
|
||||||
|
## Stop
|
||||||
|
ONE question per round, ONE brief. Max 15 fetches. Two failures → ## blocked.
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# run-loop.sh <loop-name> — one round of a loop, cheap-model-first with Fable escalation.
|
||||||
|
# Green loops only: prompts are read-only + write-to-own-state-file by design.
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
LOOP="${1:?usage: run-loop.sh <loop-name>}"
|
||||||
|
DIR="$HOME/.omp/loops/$LOOP"
|
||||||
|
PROMPT="$DIR/loop.md"
|
||||||
|
STATE="$DIR/state.md"
|
||||||
|
LOG="$DIR/runs.log"
|
||||||
|
[[ -f "$PROMPT" ]] || { echo "no such loop: $LOOP" >&2; exit 1; }
|
||||||
|
[[ -f "$STATE" ]] || printf '# %s — state\n\n## queue\n\n## done\n\n## blocked\n' "$LOOP" > "$STATE"
|
||||||
|
|
||||||
|
# Hard caps (loop #21 escalation policy + the article's stop rules):
|
||||||
|
# - smol model runs the routine round, 10 min wall clock
|
||||||
|
# - Fable (default model) only re-runs on an explicit ESCALATE marker, 20 min cap
|
||||||
|
# - one escalation max per round; never more than one round per invocation
|
||||||
|
SMOL_MAX=600
|
||||||
|
FABLE_MAX=1200
|
||||||
|
|
||||||
|
ts() { date -Is; }
|
||||||
|
run() { # run <model-flag...> — returns the model's stdout
|
||||||
|
omp -p --no-session --max-time "$2" ${1:+--model "$1"} \
|
||||||
|
"$(cat "$PROMPT")
|
||||||
|
|
||||||
|
Loop directory: $DIR
|
||||||
|
State file (read it first, append to it, never rewrite history): $STATE
|
||||||
|
Round timestamp: $(ts)"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "[$(ts)] round start (smol)" >> "$LOG"
|
||||||
|
OUT="$(run "kimi-for-coding" "$SMOL_MAX" 2>>"$LOG" || true)"
|
||||||
|
printf '%s\n' "$OUT" >> "$LOG"
|
||||||
|
|
||||||
|
if grep -q '^ESCALATE' <<<"$OUT"; then
|
||||||
|
echo "[$(ts)] escalating to default model" >> "$LOG"
|
||||||
|
OUT="$(run "" "$FABLE_MAX" 2>>"$LOG" || true)"
|
||||||
|
printf '%s\n' "$OUT" >> "$LOG"
|
||||||
|
# Escalation ledger (loop #21): every Fable call must be visible and countable
|
||||||
|
echo "[$(ts)] $LOOP escalated" >> "$HOME/.omp/loops/escalations.log"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[$(ts)] round end" >> "$LOG"
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Loop 10 — brand-mention feature radar (green)
|
||||||
|
# Cadence: Wed 07:00 weekly · Tools: HN Algolia API (no key), Exa
|
||||||
|
|
||||||
|
You are one round of a weekly mention-sweep for WalletBase and its problem
|
||||||
|
space. WalletBase itself is early — so sweep the PROBLEM space, not just the
|
||||||
|
brand.
|
||||||
|
|
||||||
|
## Queries (same check every round)
|
||||||
|
- HN Algolia (https://hn.algolia.com/api/v1/search_by_date?query=...):
|
||||||
|
"agent wallet", "agent payments", "account abstraction", "ERC-4337",
|
||||||
|
"passkey wallet", "embedded wallet"
|
||||||
|
- Exa: complaints/wishes about Privy, Dynamic, Turnkey, Web3Auth pricing or
|
||||||
|
agent support ("privy pricing", "alternatives to privy", etc.)
|
||||||
|
- Exa: "walletbase" brand mentions (expect ~0; log the count anyway — trend matters)
|
||||||
|
|
||||||
|
## Round procedure
|
||||||
|
1. READ the state file. Skip item IDs/URLs already logged.
|
||||||
|
2. Sweep last 7 days. Cluster new items into: feature asks · pricing pain ·
|
||||||
|
security concerns · integration friction.
|
||||||
|
3. Log clusters with counts and 1–2 representative links each.
|
||||||
|
4. ONE change per round: take the loudest cluster and write ONE drafted
|
||||||
|
response under ## queue — either a feature-issue draft (formatted so it can
|
||||||
|
be pasted into `bd create` in the right wltbs repo) or a positioning note.
|
||||||
|
Draft only. Never create the issue yourself.
|
||||||
|
|
||||||
|
## Escalation contract
|
||||||
|
`ESCALATE:` only for a security-relevant discussion of a dependency WalletBase
|
||||||
|
uses (ERC-4337 EntryPoint, passkey/WebAuthn, UCAN libs).
|
||||||
|
|
||||||
|
## Stop
|
||||||
|
One sweep, one draft, stop. Max 30 API calls. Two failures → ## blocked, stop.
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# Loop 4 — competitor-content watch (green)
|
||||||
|
# Cadence: Fri 07:00 weekly · Tool: Exa web search
|
||||||
|
|
||||||
|
You are one round of a weekly competitor-content loop for WalletBase.
|
||||||
|
|
||||||
|
## Watched competitors (same check every round)
|
||||||
|
- Privy (privy.io/blog), Dynamic (dynamic.xyz/blog), Turnkey (turnkey.com/blog)
|
||||||
|
- Crossmint (blog.crossmint.com), Para (getpara.com/blog), Pimlico (pimlico.io/blog)
|
||||||
|
|
||||||
|
## Round procedure
|
||||||
|
1. READ the state file. Skip URLs already logged.
|
||||||
|
2. Find posts published in the last 7 days from each competitor.
|
||||||
|
3. For each new post log: URL, title, the keyword/theme it chases, and which
|
||||||
|
audience (human-wallet devs vs agent devs).
|
||||||
|
4. ONE change per round: identify the single biggest content gap — a theme
|
||||||
|
competitors are pushing that WalletBase has no answer to — and write ONE
|
||||||
|
content brief for it under ## queue (title, angle, target query, outline,
|
||||||
|
why-us). One brief, not a list.
|
||||||
|
|
||||||
|
## Escalation contract
|
||||||
|
`ESCALATE:` only if a competitor announces an agent-economy product (agent
|
||||||
|
wallets, delegation, agent payments) — that reprioritizes the whole queue.
|
||||||
|
|
||||||
|
## Stop
|
||||||
|
Six competitors, one pass, one brief, stop. Max 20 page fetches. Two
|
||||||
|
consecutive tool failures → log under ## blocked, stop.
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# /goal templates — kill-criteria (#22) and pre-mortem (#23)
|
||||||
|
|
||||||
|
Not scheduled. Paste into an interactive omp session when facing a decision.
|
||||||
|
Both end with pasted proof per the goal contract: the judge only sees the
|
||||||
|
conversation, so "done" = the artifact is IN the chat.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## kill-criteria (#22)
|
||||||
|
|
||||||
|
/goal For the decision "[DECISION]", produce a kill-criteria table for every
|
||||||
|
live option. For each option: (1) state the option in one line, (2) write the
|
||||||
|
SINGLE measurable condition that would disqualify it — a number, a date, or a
|
||||||
|
named event, not vibes, (3) hunt for evidence for/against that condition using
|
||||||
|
web search and the repos under ~/Developer/github.com/wltbs, citing every
|
||||||
|
claim, (4) verdict: ALIVE / KILLED / NEEDS-DATA with what data and where to
|
||||||
|
get it. Done when the full table is pasted in this chat with a citation per
|
||||||
|
verdict, and every KILLED verdict quotes the evidence that tripped its
|
||||||
|
condition. If evidence can't be found for an option, paste what you searched
|
||||||
|
and mark it NEEDS-DATA — do not guess. Hard cap: 40 tool calls.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## pre-mortem (#23)
|
||||||
|
|
||||||
|
/goal It is 12 months from now and the decision "[DECISION]" failed badly.
|
||||||
|
Write the post-mortem as if it already happened: (1) the headline of the
|
||||||
|
failure, (2) the 3–5 causal chains that led there, each traced back to a
|
||||||
|
specific assumption we hold TODAY (quote the assumption from our notes/repos
|
||||||
|
where possible), (3) for each chain, the earliest observable warning sign and
|
||||||
|
where it would show up first (a metric, a log, a competitor move, a regulator
|
||||||
|
page), (4) the one cheapest mitigation per chain that we could start this
|
||||||
|
week. Done when the full pre-mortem is pasted in this chat and every causal
|
||||||
|
chain names its present-day assumption explicitly. No generic risks ("market
|
||||||
|
turns") — every chain must be specific to WalletBase's architecture, GTM, or
|
||||||
|
regulatory surface. Hard cap: 30 tool calls.
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Loop 19 — overnight intel refresh (green)
|
||||||
|
# Cadence: Mon 06:00 weekly · Tool: Exa web search
|
||||||
|
|
||||||
|
You are one round of a weekly intel loop for WalletBase — embedded wallet
|
||||||
|
infrastructure for the agent economy (ERC-4337 smart accounts, passkeys,
|
||||||
|
UCAN delegation, in-house bundler/paymaster on Base).
|
||||||
|
|
||||||
|
## Tracked beats (same check every round)
|
||||||
|
1. ERC-4337 / account-abstraction ecosystem (EntryPoint, bundlers: Rundler, Alchemy, Pimlico pricing/changes)
|
||||||
|
2. EIP-7702 adoption and wallet implementations
|
||||||
|
3. Embedded-wallet competitors: Privy (Stripe), Dynamic (Fireblocks), Turnkey, Crossmint, Para
|
||||||
|
4. Agent-payments protocols: x402, UCAN ecosystem, agent wallet SDKs
|
||||||
|
5. Base chain: fees, precompiles (RIP-7212), infra changes
|
||||||
|
|
||||||
|
## Round procedure
|
||||||
|
1. READ the state file first. Skip anything already logged in ## done.
|
||||||
|
2. Search each beat for items from the last 7 days ONLY.
|
||||||
|
3. Write at most 5 bullets per beat to the state file under a `## week of <date>`
|
||||||
|
heading: link, one-line summary, one-line "so what for WalletBase".
|
||||||
|
4. ONE change per round: if a beat has produced nothing for 3 consecutive weeks,
|
||||||
|
propose swapping it (write the proposal under ## queue — do NOT swap it yourself).
|
||||||
|
|
||||||
|
## Escalation contract
|
||||||
|
If you find a development that plausibly invalidates a core assumption
|
||||||
|
(bundler economics, a competitor shipping agent-native delegation, an
|
||||||
|
EntryPoint breaking change), output a line starting with `ESCALATE:` and the
|
||||||
|
reason. Otherwise never escalate.
|
||||||
|
|
||||||
|
## Stop
|
||||||
|
One pass over the 5 beats, then stop. If a search tool fails twice, log it
|
||||||
|
under ## blocked and stop. Never fetch more than 25 pages total.
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# Loop 20 — regulatory / source digest (green)
|
||||||
|
# Cadence: Tue 07:00 weekly · Tool: Exa
|
||||||
|
# Maps to the WalletBase risk register: MSB/FinCEN, OFAC, MiCA/CASP, MEV policy.
|
||||||
|
|
||||||
|
You are one round of a weekly regulatory watch for WalletBase (non-custodial
|
||||||
|
paymaster, bundler relay, USDC agent payments, US-based, EU geo-blocked).
|
||||||
|
|
||||||
|
## Watched sources (same check every round)
|
||||||
|
1. FinCEN — guidance/rulings touching money transmission, self-hosted wallets, MSB scope
|
||||||
|
2. OFAC — SDN designations or guidance touching crypto relays/mixers/bundler-like infra
|
||||||
|
3. SEC/CFTC — enforcement touching wallet infra or AA providers
|
||||||
|
4. EU — MiCA/CASP implementation news relevant to non-custodial infra
|
||||||
|
5. Ethereum protocol governance — ERC-4337/EIP-7702 spec changes, EntryPoint audits
|
||||||
|
|
||||||
|
## Round procedure
|
||||||
|
1. READ the state file. Skip items already logged.
|
||||||
|
2. Search last 7 days per source. ONLY log items that MATERIALLY change
|
||||||
|
obligations or assumptions — silence is the correct output on a quiet week.
|
||||||
|
3. Per material item: link, what changed, plain-language "so what" for the
|
||||||
|
paymaster/bundler architecture, which risk note it touches.
|
||||||
|
4. ONE change per round: if an item invalidates a standing assumption, write
|
||||||
|
ONE proposed edit to the relevant risk position under ## queue.
|
||||||
|
|
||||||
|
## Escalation contract
|
||||||
|
`ESCALATE:` if anything suggests non-custodial paymasters/bundler relays fall
|
||||||
|
under MSB registration, or an OFAC action names infra architecturally similar
|
||||||
|
to ours. These are existential — worth Fable's read.
|
||||||
|
|
||||||
|
## Stop
|
||||||
|
Five sources, one pass, stop. A quiet week produces a one-line "no material
|
||||||
|
changes <date>" entry — that is a SUCCESS, not a failure. Max 20 fetches.
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# Loop 24 — repeat-offender digest (green)
|
||||||
|
# Cadence: Sun 18:00 weekly · Tools: beads (bd) in ~/Developer/github.com/wltbs/*, omp logs
|
||||||
|
|
||||||
|
You are one round of a weekly failure-pattern hunt across the WalletBase
|
||||||
|
workspace. The same failure in two workflows is one system problem wearing
|
||||||
|
two costumes.
|
||||||
|
|
||||||
|
## Sources (same check every round)
|
||||||
|
1. `bd list --all --json` in each of: ~/Developer/github.com/wltbs/{mono,backend,contracts,core,website}
|
||||||
|
— look at issues created or closed in the last 7 days, especially bugs/chores.
|
||||||
|
2. ~/.omp/loops/*/runs.log and ~/.omp/loops/*/state.md ## blocked sections
|
||||||
|
— the loop harness's own failures.
|
||||||
|
3. ~/.omp/loops/escalations.log — is any loop escalating too often?
|
||||||
|
|
||||||
|
## Round procedure
|
||||||
|
1. READ the state file. Note previously identified patterns.
|
||||||
|
2. Sweep the sources. Cluster failures by ROOT shape, not surface symptom
|
||||||
|
(e.g. "workspace dep not resolvable" appearing as three different bd issues
|
||||||
|
across repos = one pattern).
|
||||||
|
3. Log new/recurring patterns: name, occurrences (issue IDs / log lines), trend.
|
||||||
|
4. ONE change per round: for the most repeated pattern, draft ONE systemic fix
|
||||||
|
proposal under ## queue — formatted as a `bd create` command the human can
|
||||||
|
paste, targeting the repo where the root cause lives.
|
||||||
|
NEVER run bd create yourself — draft only; a human files it.
|
||||||
|
|
||||||
|
## Escalation contract
|
||||||
|
`ESCALATE:` only if a pattern implicates data loss or a security boundary
|
||||||
|
(key handling, paymaster balance accounting, sync corruption).
|
||||||
|
|
||||||
|
## Stop
|
||||||
|
One sweep, one proposal, stop. Read-only on beads (list/show only). Two
|
||||||
|
failures → ## blocked, stop.
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# Loop 3 — share-of-model watch (green)
|
||||||
|
# Cadence: Mon 07:00 weekly · Tool: Exa (answer mode)
|
||||||
|
|
||||||
|
You are one round of a weekly share-of-model tracker: when buyers ask AI
|
||||||
|
engines about our category, who is in the answer?
|
||||||
|
|
||||||
|
## Fixed question set (NEVER reword — comparability is the point)
|
||||||
|
1. "best embedded wallet SDK for developers"
|
||||||
|
2. "best wallet infrastructure for AI agents"
|
||||||
|
3. "how to give an AI agent a crypto wallet"
|
||||||
|
4. "Privy alternatives"
|
||||||
|
5. "ERC-4337 bundler and paymaster providers"
|
||||||
|
6. "passkey wallet SDK"
|
||||||
|
|
||||||
|
## Round procedure
|
||||||
|
1. READ the state file for last week's table.
|
||||||
|
2. Ask each question via Exa answer/search. Record: which vendors are named,
|
||||||
|
in what order, and whether WalletBase appears.
|
||||||
|
3. Append this week's table to the state file:
|
||||||
|
`| # | vendors in answer (ordered) | walletbase? |`
|
||||||
|
4. ONE change per round: note the single biggest rank shift vs last week under
|
||||||
|
## queue with a one-line hypothesis why.
|
||||||
|
|
||||||
|
## Escalation contract
|
||||||
|
Never escalate. This loop only measures.
|
||||||
|
|
||||||
|
## Stop
|
||||||
|
Six questions, one table, stop. If Exa fails twice → ## blocked, stop.
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
description: Convert a LeetCode solution file into a Fumadocs MDX docs page
|
||||||
|
---
|
||||||
|
|
||||||
|
Convert the LeetCode solution file at `$1` into a Fumadocs-formatted MDX page.
|
||||||
|
|
||||||
|
Extra instructions (optional, may include output dir override): $@
|
||||||
|
|
||||||
|
## Input format
|
||||||
|
|
||||||
|
The source file follows the standard on-disk format:
|
||||||
|
- A `/* ... */` header block: problem number, title, difficulty, LeetCode URL, problem description, examples, constraints
|
||||||
|
- A JSDoc `@param`/`@return` block
|
||||||
|
- One or more solution functions (possibly with line-by-line beginner comments and `// ====` banners)
|
||||||
|
|
||||||
|
## Output location
|
||||||
|
|
||||||
|
Default: write next to the content root at `content/docs/leetcode/<difficulty>/<category>/<number>-<slug>.mdx`, mirroring the source tree (e.g. `Easy/Array/1365.how-many-numbers.js` → `content/docs/leetcode/easy/array/1365-how-many-numbers.mdx`). Lowercase all path segments. If the extra instructions specify a different output path or content root, use that instead. Create directories as needed.
|
||||||
|
|
||||||
|
## Page structure
|
||||||
|
|
||||||
|
Produce exactly this shape:
|
||||||
|
|
||||||
|
```mdx
|
||||||
|
---
|
||||||
|
title: 1365. How Many Numbers Are Smaller Than the Current Number
|
||||||
|
description: <one-sentence summary of the technique, e.g. "Frequency map + prefix count — the counting hammer.">
|
||||||
|
---
|
||||||
|
|
||||||
|
<Callout title="Easy · Array · Hash Table">
|
||||||
|
[View on LeetCode](https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number/)
|
||||||
|
</Callout>
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
|
||||||
|
<problem description from the header block, reflowed into clean Markdown prose — no hard-wrapped 70-char lines>
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
<each example as a fenced code block:>
|
||||||
|
|
||||||
|
```txt title="Example 1"
|
||||||
|
Input: nums = [8,1,2,2,3]
|
||||||
|
Output: [4,0,1,1,3]
|
||||||
|
```
|
||||||
|
|
||||||
|
<if an example has an Explanation, put it as plain prose under its code block>
|
||||||
|
|
||||||
|
## Constraints
|
||||||
|
|
||||||
|
<bulleted list from the header block, with values in inline code: `2 <= nums.length <= 500`>
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
|
||||||
|
<one-paragraph intuition: name the pattern (frequency map, prefix sum, two pointers, etc.) and the key insight in 2–3 sentences. Derive this from the code itself.>
|
||||||
|
|
||||||
|
```js title="solution.js" lineNumbers
|
||||||
|
<the solution function, verbatim — including any existing beginner comments>
|
||||||
|
```
|
||||||
|
|
||||||
|
<Callout type="idea" title="Complexity">
|
||||||
|
**Time:** O(n log n) — **Space:** O(n)
|
||||||
|
</Callout>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
1. **Frontmatter `title` carries the h1** — Fumadocs renders it as the page title, so never emit a `# heading` in the body.
|
||||||
|
2. **Escape MDX hazards.** The header text may contain `<`, `>`, `{`, `}` (e.g. `j != i and nums[j] < nums[i]`, `2 <= nums.length <= 500`). Anything with these characters must be wrapped in inline code or fenced blocks, or the MDX compile will fail. When in doubt, inline-code it.
|
||||||
|
3. **Code is verbatim.** Copy the solution function(s) exactly — do not rewrite, reformat, or strip existing comments. The docs page documents the code as it exists.
|
||||||
|
4. **Multiple approaches → tab group:**
|
||||||
|
````mdx
|
||||||
|
```js tab="Frequency Map" tab-group="approach"
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
```js tab="Sort + Map"
|
||||||
|
...
|
||||||
|
```
|
||||||
|
````
|
||||||
|
5. **Complexity callout is derived, not guessed blindly.** Read the code: nested loop → O(n²), sort → O(n log n), single pass + map → O(n). If genuinely ambiguous, state the dominant term and why in one clause.
|
||||||
|
6. **Callout header line** = `<Difficulty> · <topic tags>`. Difficulty comes from the header block; infer 1–2 topic tags from the directory path and the technique used.
|
||||||
|
7. **No invented content.** Problem statement, examples, and constraints come only from the header block. The intuition paragraph and complexity are the only sections you author.
|
||||||
|
8. **After writing**, print one line: the output path. Nothing else.
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
description: Add super-simple line-by-line comments to a LeetCode solution file
|
||||||
|
---
|
||||||
|
|
||||||
|
Add beginner-level line-by-line comments to the LeetCode solution file at: $1
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
|
||||||
|
1. **Read the file first.** It follows the standard on-disk format:
|
||||||
|
- A `/* ... */` header block containing problem number, title, difficulty, URL, description, examples, and constraints
|
||||||
|
- A JSDoc `@param`/`@return` block
|
||||||
|
- The solution function(s)
|
||||||
|
|
||||||
|
2. **Never touch the header block or JSDoc block.** Preserve them byte-for-byte.
|
||||||
|
|
||||||
|
3. **Never change the code.** Do not rename variables, reformat logic, alter whitespace inside expressions, or "improve" anything. Comments only. The file must produce an identical AST after your edit.
|
||||||
|
|
||||||
|
4. **Comment style — explain as if to a complete beginner who has never programmed:**
|
||||||
|
- One comment line (or short block) ABOVE each meaningful line/statement
|
||||||
|
- Use plain everyday language and physical metaphors:
|
||||||
|
- object/map → "box" ("Create an empty box to count how many times each number appears")
|
||||||
|
- increment → "add 1 to its count"
|
||||||
|
- `(freq[x] || 0) + 1` → "If we already saw this number, add 1 to its count. If we never saw it before, start counting from 1"
|
||||||
|
- sort comparator → spell out the rule in words ("put the letter that appears MORE times first; if tied, alphabetical order")
|
||||||
|
- return → say WHAT is being returned and WHY in plain words
|
||||||
|
- Explain the WHY, not just the WHAT ("so the next bigger numbers know there are more smaller ones")
|
||||||
|
- Inline comments (`// ...` at end of line) are fine for short trailing clarifications like `.join('')` → "glue the sorted letters back into a string"
|
||||||
|
- No jargon without immediate translation: if you must say "index", follow with "(its position)"
|
||||||
|
|
||||||
|
5. **Add a section banner** above the solution function in this exact style:
|
||||||
|
```js
|
||||||
|
// ============================================
|
||||||
|
// <problem number>. <problem title>
|
||||||
|
// ============================================
|
||||||
|
```
|
||||||
|
Pull the number and title from the header block.
|
||||||
|
|
||||||
|
6. **Multiple solutions in one file:** comment every one of them, each with its own banner (append "– Approach 2" etc. to the banner title).
|
||||||
|
|
||||||
|
7. **Extra instructions** (if provided after the file path): $@
|
||||||
|
|
||||||
|
8. **After editing**, print a one-line confirmation: file path + number of comment lines added. Nothing else.
|
||||||
|
|
||||||
|
## Example transformation
|
||||||
|
|
||||||
|
Input body:
|
||||||
|
```js
|
||||||
|
var smallerNumbersThanCurrent = function (nums) {
|
||||||
|
const freq = {};
|
||||||
|
for (let x of nums) freq[x] = (freq[x] || 0) + 1;
|
||||||
|
return nums.map((x) => smaller[x]);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
Output body:
|
||||||
|
```js
|
||||||
|
// ============================================
|
||||||
|
// 1365. How Many Numbers Are Smaller Than the Current Number
|
||||||
|
// ============================================
|
||||||
|
|
||||||
|
var smallerNumbersThanCurrent = function (nums) {
|
||||||
|
// Create an empty box to store how many times each number appears
|
||||||
|
const freq = {};
|
||||||
|
|
||||||
|
// Go through every number in the list one by one
|
||||||
|
// If we already saw this number, add 1 to its count
|
||||||
|
// If we never saw it before, start counting from 1
|
||||||
|
for (let x of nums) freq[x] = (freq[x] || 0) + 1;
|
||||||
|
|
||||||
|
// Go through the original list and replace each number
|
||||||
|
// with "how many numbers are smaller than it"
|
||||||
|
return nums.map((x) => smaller[x]);
|
||||||
|
};
|
||||||
|
```
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
app.editor.external: Ctrl+E
|
||||||
|
app.exit: Ctrl+Q
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
theme:
|
||||||
|
dark: cyberdream
|
||||||
|
symbolPreset: nerd
|
||||||
|
setupVersion: 1
|
||||||
|
hideThinkingBlock: true
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/can1357/oh-my-pi/main/packages/coding-agent/src/config/mcp-schema.json",
|
||||||
|
"mcpServers": {
|
||||||
|
"exa": {
|
||||||
|
"type": "http",
|
||||||
|
"url": "https://mcp.exa.ai/mcp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
||||||
|
"name": "cyberdream",
|
||||||
|
"vars": {
|
||||||
|
"bg": "#16181a",
|
||||||
|
"bgAlt": "#1e2124",
|
||||||
|
"bgHighlight": "#3c4048",
|
||||||
|
"fg": "#ffffff",
|
||||||
|
"grey": "#7b8496",
|
||||||
|
"blue": "#5ea1ff",
|
||||||
|
"green": "#5eff6c",
|
||||||
|
"cyan": "#5ef1ff",
|
||||||
|
"red": "#ff6e5e",
|
||||||
|
"yellow": "#f1ff5e",
|
||||||
|
"magenta": "#ff5ef1",
|
||||||
|
"pink": "#ff5ea0",
|
||||||
|
"orange": "#ffbd5e",
|
||||||
|
"purple": "#bd5eff"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"accent": "blue",
|
||||||
|
"border": "blue",
|
||||||
|
"borderAccent": "cyan",
|
||||||
|
"borderMuted": "grey",
|
||||||
|
"success": "green",
|
||||||
|
"error": "red",
|
||||||
|
"warning": "yellow",
|
||||||
|
"muted": "grey",
|
||||||
|
"dim": "grey",
|
||||||
|
"text": "",
|
||||||
|
"thinkingText": "grey",
|
||||||
|
|
||||||
|
"selectedBg": "bgHighlight",
|
||||||
|
"userMessageBg": "bgAlt",
|
||||||
|
"userMessageText": "fg",
|
||||||
|
"customMessageBg": "bgAlt",
|
||||||
|
"customMessageText": "fg",
|
||||||
|
"customMessageLabel": "cyan",
|
||||||
|
"toolPendingBg": "bgAlt",
|
||||||
|
"toolSuccessBg": "bgAlt",
|
||||||
|
"toolErrorBg": "bgAlt",
|
||||||
|
"toolTitle": "cyan",
|
||||||
|
"toolOutput": "fg",
|
||||||
|
|
||||||
|
"mdHeading": "orange",
|
||||||
|
"mdLink": "cyan",
|
||||||
|
"mdLinkUrl": "blue",
|
||||||
|
"mdCode": "cyan",
|
||||||
|
"mdCodeBlock": "fg",
|
||||||
|
"mdCodeBlockBorder": "grey",
|
||||||
|
"mdQuote": "grey",
|
||||||
|
"mdQuoteBorder": "grey",
|
||||||
|
"mdHr": "grey",
|
||||||
|
"mdListBullet": "cyan",
|
||||||
|
|
||||||
|
"toolDiffAdded": "green",
|
||||||
|
"toolDiffRemoved": "red",
|
||||||
|
"toolDiffContext": "grey",
|
||||||
|
|
||||||
|
"syntaxComment": "grey",
|
||||||
|
"syntaxKeyword": "magenta",
|
||||||
|
"syntaxFunction": "blue",
|
||||||
|
"syntaxVariable": "yellow",
|
||||||
|
"syntaxString": "green",
|
||||||
|
"syntaxNumber": "purple",
|
||||||
|
"syntaxType": "cyan",
|
||||||
|
"syntaxOperator": "pink",
|
||||||
|
"syntaxPunctuation": "grey",
|
||||||
|
|
||||||
|
"thinkingOff": "grey",
|
||||||
|
"thinkingMinimal": "blue",
|
||||||
|
"thinkingLow": "cyan",
|
||||||
|
"thinkingMedium": "green",
|
||||||
|
"thinkingHigh": "yellow",
|
||||||
|
"thinkingXhigh": "orange",
|
||||||
|
"thinkingMax": "red",
|
||||||
|
|
||||||
|
"bashMode": "yellow",
|
||||||
|
"pythonMode": "purple",
|
||||||
|
|
||||||
|
"statusLineBg": "bgAlt",
|
||||||
|
"statusLineSep": "grey",
|
||||||
|
"statusLineModel": "purple",
|
||||||
|
"statusLinePath": "blue",
|
||||||
|
"statusLineGitClean": "green",
|
||||||
|
"statusLineGitDirty": "yellow",
|
||||||
|
"statusLineContext": "cyan",
|
||||||
|
"statusLineSpend": "pink",
|
||||||
|
"statusLineStaged": "green",
|
||||||
|
"statusLineDirty": "yellow",
|
||||||
|
"statusLineUntracked": "red",
|
||||||
|
"statusLineOutput": "fg",
|
||||||
|
"statusLineCost": "orange",
|
||||||
|
"statusLineSubagents": "magenta"
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Reinstall yazi plugins from the manifest whenever it changes.
|
||||||
|
# package.toml hash: {{ include "dot_config/yazi/package.toml" | sha256sum }}
|
||||||
|
set -eu
|
||||||
|
command -v ya >/dev/null 2>&1 || exit 0
|
||||||
|
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/yazi/package.toml" ] || exit 0
|
||||||
|
ya pkg install
|
||||||
Reference in new issue
Block a user