railmux 0.4.0.dev12__tar.gz → 0.4.0.dev13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. {railmux-0.4.0.dev12/src/railmux.egg-info → railmux-0.4.0.dev13}/PKG-INFO +1 -1
  2. railmux-0.4.0.dev13/src/railmux/__init__.py +1 -0
  3. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/tmux_server.py +19 -2
  4. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13/src/railmux.egg-info}/PKG-INFO +1 -1
  5. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_tmux_server.py +26 -0
  6. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_windows_msys2.py +1 -1
  7. railmux-0.4.0.dev12/src/railmux/__init__.py +0 -1
  8. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/LICENSE +0 -0
  9. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/MANIFEST.in +0 -0
  10. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/README.md +0 -0
  11. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/pyproject.toml +0 -0
  12. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/setup.cfg +0 -0
  13. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/__main__.py +0 -0
  14. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/atomic_file.py +0 -0
  15. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/background_index.py +0 -0
  16. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/cli.py +0 -0
  17. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/codex_index.py +0 -0
  18. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/config.py +0 -0
  19. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/config_cli.py +0 -0
  20. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/diagnostics.py +0 -0
  21. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/discovery.py +0 -0
  22. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/display_transport.py +0 -0
  23. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/entrypoint.py +0 -0
  24. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/fast_display_client.py +0 -0
  25. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/fast_display_history.py +0 -0
  26. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/fast_display_input.py +0 -0
  27. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/fast_display_protocol.py +0 -0
  28. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/fast_display_server.py +0 -0
  29. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/favorites.py +0 -0
  30. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/fuzzy.py +0 -0
  31. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/help_workspace.py +0 -0
  32. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/launcher.py +0 -0
  33. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/legacy_sessions.py +0 -0
  34. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/local_clipboard.py +0 -0
  35. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/local_open.py +0 -0
  36. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/models.py +0 -0
  37. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/modes.py +0 -0
  38. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/mouse_manager.py +0 -0
  39. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/orphan_marker.py +0 -0
  40. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/pane_surface.py +0 -0
  41. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/path_codec.py +0 -0
  42. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/provider_paths.py +0 -0
  43. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/remote_config.py +0 -0
  44. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/renames.py +0 -0
  45. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/restart_state.py +0 -0
  46. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/runtime_config.py +0 -0
  47. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/scroll_agent.py +0 -0
  48. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/scroll_manager.py +0 -0
  49. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/selection_isolation.py +0 -0
  50. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/self_update.py +0 -0
  51. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/session_cache.py +0 -0
  52. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/session_index.py +0 -0
  53. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/setting_contracts.py +0 -0
  54. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/settings.py +0 -0
  55. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ssh_args.py +0 -0
  56. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ssh_compat.py +0 -0
  57. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ssh_display_diagnostics.py +0 -0
  58. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ssh_doctor.py +0 -0
  59. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/system_deps.py +0 -0
  60. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/terminal_status.py +0 -0
  61. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/tmux_binding_manager.py +0 -0
  62. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/tmux_ctl.py +0 -0
  63. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/tmux_health.py +0 -0
  64. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/tool_panes.py +0 -0
  65. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/transcript.py +0 -0
  66. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/__init__.py +0 -0
  67. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/_widgets.py +0 -0
  68. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/app.py +0 -0
  69. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/keymap.py +0 -0
  70. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/modals.py +0 -0
  71. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/projects_pane.py +0 -0
  72. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/running_pane.py +0 -0
  73. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/sessions_pane.py +0 -0
  74. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/sidebar.py +0 -0
  75. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/statusbar.py +0 -0
  76. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/ui/workspace.py +0 -0
  77. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/windows_bootstrap.py +0 -0
  78. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/windows_install_log.py +0 -0
  79. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/windows_msys2.py +0 -0
  80. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/windows_pacman.py +0 -0
  81. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux/windows_tmux_lifecycle.py +0 -0
  82. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux.egg-info/SOURCES.txt +0 -0
  83. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux.egg-info/dependency_links.txt +0 -0
  84. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux.egg-info/entry_points.txt +0 -0
  85. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux.egg-info/requires.txt +0 -0
  86. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/src/railmux.egg-info/top_level.txt +0 -0
  87. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_agent_workspace.py +0 -0
  88. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_atomic_file.py +0 -0
  89. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_background_index.py +0 -0
  90. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_cli.py +0 -0
  91. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_codex_delete.py +0 -0
  92. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_codex_index.py +0 -0
  93. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_codex_lineage.py +0 -0
  94. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_codex_transcript.py +0 -0
  95. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_config.py +0 -0
  96. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_config_cli.py +0 -0
  97. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_denested_transport_benchmark.py +0 -0
  98. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_diagnostics.py +0 -0
  99. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_discovery.py +0 -0
  100. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_display_transport.py +0 -0
  101. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_fast_full_window.py +0 -0
  102. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_focus_highlight.py +0 -0
  103. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_fullscreen_binding.py +0 -0
  104. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_fuzzy.py +0 -0
  105. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_help_agent.py +0 -0
  106. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_help_workspace.py +0 -0
  107. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_history_cleanup.py +0 -0
  108. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_keymap.py +0 -0
  109. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_launcher.py +0 -0
  110. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_layout_profile.py +0 -0
  111. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_legacy_sessions.py +0 -0
  112. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_local_clipboard.py +0 -0
  113. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_local_open.py +0 -0
  114. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_modals.py +0 -0
  115. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_mode_selection.py +0 -0
  116. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_modes.py +0 -0
  117. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_mouse_manager.py +0 -0
  118. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_new_project.py +0 -0
  119. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_options.py +0 -0
  120. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_orphan_recovery.py +0 -0
  121. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_pane_surface.py +0 -0
  122. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_path_codec.py +0 -0
  123. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_projects_pane.py +0 -0
  124. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_provider_paths.py +0 -0
  125. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_release_notes.py +0 -0
  126. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_release_workflow.py +0 -0
  127. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_remote_config.py +0 -0
  128. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_renames.py +0 -0
  129. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_restart_state.py +0 -0
  130. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_running_pane.py +0 -0
  131. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_running_sort.py +0 -0
  132. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_runtime_config.py +0 -0
  133. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_scroll_agent.py +0 -0
  134. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_scroll_manager.py +0 -0
  135. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_selection_isolation.py +0 -0
  136. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_self_update.py +0 -0
  137. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_session_cache.py +0 -0
  138. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_session_index.py +0 -0
  139. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_sessions_pane.py +0 -0
  140. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_setting_contracts.py +0 -0
  141. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_settings.py +0 -0
  142. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_sidebar.py +0 -0
  143. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_soft_quit.py +0 -0
  144. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_ssh_args.py +0 -0
  145. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_ssh_compat.py +0 -0
  146. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_ssh_display_benchmark.py +0 -0
  147. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_ssh_display_diagnostics.py +0 -0
  148. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_ssh_doctor.py +0 -0
  149. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_status.py +0 -0
  150. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_statusbar.py +0 -0
  151. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_system_deps.py +0 -0
  152. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_terminal_size.py +0 -0
  153. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_terminal_status.py +0 -0
  154. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_termux_local_touch.py +0 -0
  155. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_tmux_binding_manager.py +0 -0
  156. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_tmux_ctl.py +0 -0
  157. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_tmux_health.py +0 -0
  158. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_tmux_integration.py +0 -0
  159. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_tmux_status.py +0 -0
  160. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_tool_panes.py +0 -0
  161. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_transcript.py +0 -0
  162. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_utf8_state.py +0 -0
  163. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_web_demo_recorder.py +0 -0
  164. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_wheel_smoke.py +0 -0
  165. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_widgets.py +0 -0
  166. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_windows_bootstrap.py +0 -0
  167. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_windows_install_log.py +0 -0
  168. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_windows_pacman.py +0 -0
  169. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_windows_tmux_lifecycle.py +0 -0
  170. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_windows_wrapper_contract.py +0 -0
  171. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tests/test_yolo_prompt.py +0 -0
  172. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tools/denested_transport_benchmark.py +0 -0
  173. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tools/release_notes.py +0 -0
  174. {railmux-0.4.0.dev12 → railmux-0.4.0.dev13}/tools/wheel_smoke.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: railmux
3
- Version: 0.4.0.dev12
3
+ Version: 0.4.0.dev13
4
4
  Summary: Terminal UI to navigate, resume, and start Claude Code and Codex sessions
5
5
  Author-email: Rightglow <zhang.taian@foxmail.com>
6
6
  License-Expression: MIT
@@ -0,0 +1 @@
1
+ __version__ = "0.4.0.dev13"
@@ -22,6 +22,8 @@ _SESSION_ID_RE = re.compile(r"[A-Za-z0-9-]{1,256}\Z")
22
22
  _HISTORY_SOURCE_SCHEMA = 1
23
23
  _TRANSCRIPT_SOURCE_SCHEMA = 1
24
24
  _MAX_TRANSCRIPT_SOURCE_BYTES = 8192
25
+ _DEFAULT_DISCOVERY_TIMEOUT = 2.0
26
+ _WINDOWS_DISCOVERY_TIMEOUT = 5.0
25
27
 
26
28
 
27
29
  class TmuxServerError(RuntimeError):
@@ -179,10 +181,25 @@ def current_target(
179
181
 
180
182
  def discover_target(
181
183
  *,
182
- timeout: float = 2.0,
184
+ timeout: float | None = None,
183
185
  env: Mapping[str, str] | None = None,
184
186
  ) -> TmuxServerTarget | None:
185
- """Resolve the live dedicated server without starting a new server."""
187
+ """Resolve the live dedicated server without starting a new server.
188
+
189
+ MSYS2 tmux can need slightly more than two seconds to classify an
190
+ abandoned AF_UNIX pathname as having no live server. Give only the
191
+ managed Windows wrapper enough time to receive that authoritative result;
192
+ explicit watchdog probes retain their caller-selected bounds.
193
+ """
194
+ if timeout is None:
195
+ from railmux.provider_paths import running_in_windows_wrapper
196
+
197
+ source = os.environ if env is None else env
198
+ timeout = (
199
+ _WINDOWS_DISCOVERY_TIMEOUT
200
+ if running_in_windows_wrapper(source)
201
+ else _DEFAULT_DISCOVERY_TIMEOUT
202
+ )
186
203
  return _discover_label_target(socket_label(env), timeout=timeout, env=env)
187
204
 
188
205
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: railmux
3
- Version: 0.4.0.dev12
3
+ Version: 0.4.0.dev13
4
4
  Summary: Terminal UI to navigate, resume, and start Claude Code and Codex sessions
5
5
  Author-email: Rightglow <zhang.taian@foxmail.com>
6
6
  License-Expression: MIT
@@ -101,6 +101,32 @@ def test_discover_target_uses_explicit_label_and_times_out(monkeypatch):
101
101
  }
102
102
 
103
103
 
104
+ @pytest.mark.parametrize(
105
+ ("env", "expected_timeout"),
106
+ [
107
+ ({}, 2.0),
108
+ ({"RAILMUX_WINDOWS_RUNTIME": "msys2"}, 5.0),
109
+ ],
110
+ )
111
+ def test_discover_target_allows_managed_msys_stale_socket_settle(
112
+ monkeypatch, env, expected_timeout,
113
+ ):
114
+ observed = {}
115
+
116
+ def discover(label, *, timeout, env):
117
+ observed.update(label=label, timeout=timeout, env=env)
118
+ return None
119
+
120
+ monkeypatch.setattr(tmux_server, "_discover_label_target", discover)
121
+
122
+ assert tmux_server.discover_target(env=env) is None
123
+ assert observed == {
124
+ "label": "railmux",
125
+ "timeout": expected_timeout,
126
+ "env": env,
127
+ }
128
+
129
+
104
130
  def test_discover_target_classifies_tmux_client_server_mismatch(monkeypatch):
105
131
  monkeypatch.setattr(
106
132
  subprocess,
@@ -33,7 +33,7 @@ from railmux.windows_msys2 import (
33
33
  from railmux.windows_pacman import PacmanMirrorDecision
34
34
 
35
35
 
36
- VERSION = "0.4.0.dev12"
36
+ VERSION = "0.4.0.dev13"
37
37
  LEGACY_VERSION = "0.4.0.dev10"
38
38
  _ANSI_STYLE_RE = re.compile(r"\x1b\[[0-9;]*m")
39
39
 
@@ -1 +0,0 @@
1
- __version__ = "0.4.0.dev12"
File without changes
File without changes
File without changes
File without changes