You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two genuine bugs and 14 polish items from the latest bot reviews.
Bugs:
- run_production_like rescues PortSelector::NoPortAvailable so an
exhausted port range exits cleanly instead of producing an unhandled
Ruby backtrace, mirroring configure_ports.
- warn_if_derived_ports_in_use accepts a pro_renderer keyword so OSS
apps without the Pro renderer don't see a confusing
"port base+2 (renderer) is already in use" warning when an unrelated
service binds the renderer port.
Polish:
- Strip-and-write-back whitespace-padded but-otherwise-valid PORT /
SHAKAPACKER_DEV_SERVER_PORT to match RENDERER_PORT normalization.
- Prefix the RENDERER_PORT-without-URL derivation message with WARNING:
so grep WARNING filtering catches it.
- valid_port_string? uses the existing TCP_PORT_MAX constant.
- sync_renderer_port_and_url calls warn_url_without_port without
pretending its return value is meaningful.
- file_manager.rb: SOCKET_PROBE_TIMEOUT_SECS hoisted to class body and
reduced from 1.0s to 0.15s; dead File.readlink nil/empty guard
removed.
- cleanup_socket_files (kill flow) now uses the same overmind*.sock
glob as FileManager#cleanup_overmind_sockets so renamed/copied
variants are removed.
- local_renderer_url_port_for_kill caches the parsed URI so
localhost_renderer_url? doesn't re-parse the same string. Helper
factored out as localhost_hostname?.
- Procfile.static delegates to `pnpm run node-renderer` so future
package.json flag additions propagate without divergence.
- Docs: PortSelector#select_ports ENV mutation note strengthened with
YARD-style @side_effect; killable_ports comments why
pro_renderer_active? rarely fires during kill; warn_if_legacy
message notes RENDERER_URL still activates the Pro path; CONDUCTOR_PORT
caveat extended with the future-semantics-change failure mode.
Specs:
- New: PortSelector skips renderer port-in-use warning when
pro_renderer is false.
- New: run_production_like exits cleanly on NoPortAvailable.
- New: kill flow cleans up renamed/copied overmind sockets via the
shared glob.
- Existing cleanup_socket_files spec updated to stub the new glob.
All bots' "addressed" items from PR review summaries are covered or
verified already-addressed in earlier commits (4dce031..a7d748a).
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
# Use `.hostname` not `.host`: for IPv6 URLs like `http://[::1]:3800`,
1200
-
# `.host` returns `"[::1]"` (with brackets) while `.hostname` returns
1201
-
# `"::1"` (bracket-stripped), matching the comparison list below.
1202
-
# Downcase: URI preserves host case, so `http://LOCALHOST:3900` would
1203
-
# otherwise be treated as non-local and skip the invalid-port URL
1204
-
# remediation path, leaving Rails targeting a stale port.
# Use `.hostname` not `.host`: for IPv6 URLs like `http://[::1]:3800`,
1250
+
# `.host` returns `"[::1]"` (with brackets) while `.hostname` returns
1251
+
# `"::1"` (bracket-stripped), matching the comparison list below.
1252
+
# Downcase: URI preserves host case, so `http://LOCALHOST:3900` would
1253
+
# otherwise be treated as non-local and skip the invalid-port URL
1254
+
# remediation path, leaving Rails targeting a stale port.
0 commit comments