From 8556fa626aecd555e1a87f0bd39621fe517cebd5 Mon Sep 17 00:00:00 2001 From: VERSE Date: Sat, 30 May 2026 06:56:43 -0700 Subject: [PATCH] fix: correct nightly tag, fix tmux startup, full-word suggestions only, and keep current dir on reload (#8) - correct nightly release tag name 989b61eefb212c18ca04b2121b382f19f86e39c2 - iris not start in tmux 0fef95430b6a1877810e3a4ffd8aa658f75c542c - suggestions only show on full word typing f29cbfd74a2d90371f8f369e6f8e7419f979da38 - keep current dir on reload instead of return home dir a923e78f52a95e06587aff6856a6a81319b38e84 --- .github/workflows/nightly.yml | 1 + integration/history.go | 6 ++++-- root/init.go | 14 ++++++++++++++ root/wrapper.go | 3 +++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 55befed..362fa16 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -29,6 +29,7 @@ jobs: id: version run: | BASE=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0") + BASE=${BASE%%-nightly*} SHORT=$(git rev-parse --short HEAD) echo "version=${BASE}-nightly.${SHORT}" >> $GITHUB_OUTPUT diff --git a/integration/history.go b/integration/history.go index d350d77..6f5e7d5 100644 --- a/integration/history.go +++ b/integration/history.go @@ -145,8 +145,10 @@ func SearchHistory(query string) ([]HistResult, error) { // when query has a clear first word, only keep history entries that share the same first word // this prevents e.g. curl commands from showing up when typing "git ..." queryFirstWord := "" - if fields := strings.Fields(query); len(fields) > 0 { - queryFirstWord = strings.ToLower(fields[0]) + if strings.IndexByte(query, ' ') != -1 { + if fields := strings.Fields(query); len(fields) > 0 { + queryFirstWord = strings.ToLower(fields[0]) + } } var results []HistResult diff --git a/root/init.go b/root/init.go index 62b68d3..2d8944f 100644 --- a/root/init.go +++ b/root/init.go @@ -23,6 +23,12 @@ For example, add this to your ~/.zshrc: case "bash", "zsh": fmt.Printf(` # Iris Autostart Hook +if [ -n "$TMUX" ] && [ -n "$IRIS_PID" ]; then + if ps -o comm= -p $PPID 2>/dev/null | grep -q "tmux"; then + unset IRIS_PID IRIS_IS_CHILD IRIS_FD + fi +fi + if [ -z "$IRIS_PID" ]; then export IRIS_ACTIVE_SHELL="%s" exec iris @@ -31,6 +37,14 @@ fi case "fish": fmt.Printf(` # Iris Autostart Hook +if set -q TMUX; and set -q IRIS_PID + if ps -o comm= -p $PPID 2>/dev/null | grep -q "tmux" + set -e IRIS_PID + set -e IRIS_IS_CHILD + set -e IRIS_FD + end +end + if not set -q IRIS_PID set -gx IRIS_ACTIVE_SHELL "fish" exec iris diff --git a/root/wrapper.go b/root/wrapper.go index cfc797f..547928a 100644 --- a/root/wrapper.go +++ b/root/wrapper.go @@ -160,6 +160,9 @@ func runWrapper() { } if c.Process != nil { + if cwd, err := os.Readlink(fmt.Sprintf("/proc/%d/cwd", c.Process.Pid)); err == nil { + _ = os.Chdir(cwd) + } _ = syscall.Kill(c.Process.Pid, syscall.SIGKILL) _ = ptmx.Close() }