Skip to content

fix(tmux): use pane PID to find correct opencode server port#119

Open
PhantomYdn wants to merge 1 commit intonickjvandyke:mainfrom
PhantomYdn:main
Open

fix(tmux): use pane PID to find correct opencode server port#119
PhantomYdn wants to merge 1 commit intonickjvandyke:mainfrom
PhantomYdn:main

Conversation

@PhantomYdn
Copy link

When multiple opencode instances share the same CWD, the previous CWD-based discovery could select the wrong instance. This was particularly problematic with tmux provider since opencode processes spawned via tmux are not descendants of Neovim.

Changes:

  • Add get_port() method to provider interface
  • Implement get_port() for tmux provider using pane PID tracing
  • Add process utilities (get_descendants, get_listening_port)
  • Check provider's get_port() before falling back to CWD discovery
  • Other providers return nil (fallback to existing behavior)

Fixes #118

When multiple opencode instances share the same CWD, the previous
CWD-based discovery could select the wrong instance. This was
particularly problematic with tmux provider since opencode processes
spawned via tmux are not descendants of Neovim.

Changes:
- Add get_port() method to provider interface
- Implement get_port() for tmux provider using pane PID tracing
- Add process utilities (get_descendants, get_listening_port)
- Check provider's get_port() before falling back to CWD discovery
- Other providers return nil (fallback to existing behavior)

Fixes nickjvandyke#118
@nickjvandyke
Copy link
Owner

Thanks for proofing this out! I think it's the correct solution for #118. I hope to review it soon.

I'm also curious which other providers could surface their opencode PID. Not necessarily for this PR, but I'd like this pattern to be generally useful if we incorporate it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: provider's opencode process sometimes orphans when exiting Neovim

2 participants