Repository navigation
Fix publish with unavailable Orca tabs and spaced project names - #82
Merged
Merged
Conversation
ps joins argv with spaces and quotes nothing, so shlex.split misread any page server whose slug_dir, bus dir or interpreter path held a space: restart, rollback and unpublish refused such pages as foreign, and doctor could not see unregistered legacy servers (agent-annotate-d8q, part 2). cli._process_argv reads the exact argv (Linux /proc cmdline, macOS sysctl KERN_PROCARGS2). cli._running_servers, deployment._identity and version_guard._unregistered_servers use it, and skip or refuse a process whose argv cannot be read. Identity, port, bus and registry checks are unchanged. Tests: fake executables use pip/uv's /bin/sh launcher header instead of a raw #!sys.executable; shims and expected fix commands are shell-quoted; the bd stub records argv one per line; the version-guard estate keeps its skills on the cwd chain, so the effective-skill walk never reaches a real home. New coverage, independent of the runner's path: exact argv of a real spaced process, no prefix mapping for a spaced slug_dir, unreadable argv refused, and legacy restart/rollback and unregistered-server checks on spaced paths. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
KERN_PROCARGS2 pads the executable path with NULs to a multiple of 8 bytes before argv. Skipping every NUL also skipped an empty argv[0], so the parse counted the first environment entry as an argument (root's controlled /bin/sleep probe). Place argv[0] at the padded offset instead: non-NUL padding, a NUL where argv[0] must start (an empty argv[0] and more padding are indistinguishable) or a missing terminator returns None. Non-empty interpreter paths, spaces and later empty arguments read exactly as before; Linux /proc is unchanged. test_process_argv_never_reads_the_environment_as_an_argument: a live /bin/sleep child with argv ["", "3"] and a sentinel environment reads as ["", "3"] on Linux and None on macOS, never the sentinel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When Orca creates a tab ID that cannot be read back,
new --publish --askcurrently fails after successful origin and Tailscale probes and leaves its cards unposted. Report browser harness failures as unavailable, print the skip reason with the URL, and continue posting cards; rendered login pages, HTTP errors, gateway pages and missing anchors still fail the public check.Default Funnel routes now slugify the project segment for both fresh publish and transport migration. Project keys and explicit publish path overrides retain their values. Exact server argv comes from only the two requested pilot commits (
db22387and973b61d), cherry-picked with the removed 2.28.0 legacy tests kept deleted; no pilot branch merge.agent-annotate-52s: unmodified 2.28.0 loaded every image on a temporary FLD v583 copy in iPad WebKit and desktop Chrome (154 images each, all lazy, one first-screen image request, no broken images or HTTP errors). This exercised the full mounted page at a sandbox origin, without changing live Funnel routes. Bare/annotate/paths fall through to a shared root handler outside this package; that handler was left untouched as directed.All requested full-suite chunks were run:
The raw browser suite is not green. Both original A–F failures pass isolated on this branch and on unmodified 2.28.0. Slower typing across a save response confirms an existing 2.28.0 Library text-loss defect; the popup navigation timeout also reproduces on the baseline (the four Q–Z nodes reran as 3 passed, 1 failed). These findings were escalated to the coordinator. Browser scripts, page generation and the sync server are unchanged by this PR; no tests were weakened.
Ruff, all seven browser JavaScript syntax checks, and
git diff --checkpass. Per-bead reproduction, root cause, commits, the deterministic baseline reproducer and sandbox browser evidence are recorded in the validation report. All three assigned beads remain open for coordinator reconciliation.