Repository navigation
Conversation
…est-admission # Conflicts: # src/lib/shell.ts
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Diagnostic draft updated to Still not Ready: the post-parallel Mac root cause is unknown, and the five-round reproduction remains the next evidence. Use this updated head for that run. Full local gate remains unqualified as described in the PR. second-family review: pending, lead The requested replacement Muse model could not start; earlier review reports are retained. No fallback reviewer was used. @codex review |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
…est-admission # Conflicts: # src/mux/mux-backend.ts # tests/native-authored-host-processes.test.ts
|
Diagnostic head for the Mac reproduction: This is a normal merge of Resolved both conflicts by retaining the diagnostics and the incoming changes:
Local merged-head verification: 122 passed / 60 macOS-only skipped / 0 failed across 15 focused files, including the #809 cancellation case; typecheck and check/privacy pass. These are Linux results, not Mac acceptance. This remains a diagnostic draft with no root-cause claim. Please run the six-way selected Mac batch, then each of the four affected files separately immediately afterward, for five rounds, at this exact head. Send the first failed case's sanitized complete output per round, including the The repeated 15–25 minute recovery window is recorded as evidence for investigating a resource that outlives a test process. The identity of that resource is still unproven; no timeout, permission, liveness or recovery check was relaxed. |
|
@codex review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
The Mac reproduction head is already posted above: |
…#844) The daemon session route tests created `myproject123`, `my-project` and `my_project` on the developer's default tmux server and never stopped them. The first name matches the orphan reported after a parallel test batch. Run these route tests against a fresh private socket instead. A fixture PATH shim invokes the real tmux executable with that socket and an empty config, clears inherited `TMUX`, and starts a fixed sleeping command so no user shell startup files run. Each case stops only its private server, verifies it is absent, and restores PATH even when the case fails. Final cleanup removes the owned fixture. Successful name validation now requires an actual 201 response; the alphanumeric case verifies its session exists on the private socket. Validation: 39 tests across `daemon-sessions`, `session-list-stop-tmux`, `shell-timeout` and `tmux-backend` pass locally with real tmux. Typecheck, check/privacy and changed-file lint pass. The same persistent independent Opus reviewer is clean after two rounds, including all three session-presence assertions and guarded PATH restoration. No macOS result is claimed yet; no extra macOS CI dispatch was requested. This fixes a confirmed test leak found during HACK-2219 investigation. It does **not** establish that the leak causes the post-parallel authored-start failures. The diagnostic #813 head remains separate and stable for the requested five-round Mac reproduction. Existing sessions on the default server are untouched. <!-- codesmith:footer --> --- <a href="https://backend.blacksmith.sh/track/run-proof?expires=1797249449&installation_model_id=17053&pr_number=844&ref=codesmith_pr_footer&repository=hack-dance%2Fhack&return_to=https%3A%2F%2Fgithub.com%2Fhack-dance%2Fhack%2Fpull%2F844&variant=prove_it_works&signature=04e3cfe568498b639fc36e746cc635e282edb594fa521a30f3724ecb3db14393"><picture><source media="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/proof-prove-it-works-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/proof-prove-it-works-light.svg"><img alt="Prove it works" src="https://pr-comments-assets.blacksmith.sh/codesmith/proof-prove-it-works-dark-3x.png" width="129" height="28"></picture></a> <sup><a href="https://app.blacksmith.sh/hack-dance/codesmith/hack/pr/844?autoLogin=true&ref=codesmith_pr_footer">Open in [code]smith</a> · Need help on this PR? Tag <code>@codesmith-bot</code> with what you need.</sup> <!-- codesmith:autofix:disabled --> <!-- /codesmith:footer --> --------- Co-authored-by: Kit <344842+roodboi@users.noreply.github.com>
|
Updated head for the five-round Mac reproduction: This normally merges the exact frozen next.17 candidate Local verification: 83 passed, 60 macOS-only skips, 0 failures across 14 focused files; typecheck passes. This remains a diagnostic draft, not root-cause acceptance. Please use this head for the six-way selected batch, followed immediately by each of the four affected files separately, five rounds. Send the first failed case's complete sanitized output per round, including the |
|
Lead Mac reproduction at So the failure reproduces every time: all four files fail inside the parallel phase and again alone, starting within one second of the parallel phase ending and lasting at least three minutes. First failing case per round ( What this shows and does not show:
Ruled out earlier on this Mac: the batch script's environment variables (the file passes with all of them set once the window has passed); a system scan backlog for new executables (first run of a fresh script costs a constant 130 to 250 ms here, the same before and after the parallel phase); leftover processes of the tests' own after the parallel phase (none found by name). The window closes by itself within about four minutes. Ownership: the previous owner's account ran out of capacity; a takeover session now owns this PR and #826. I rerun on request: post the head in a comment. 🤖 Generated with Claude Code |
A generic action failure reported only `action_failed`, so every plain refusal in the admitted action looked the same. Diagnostics now also carry the thrown value's built-in class, up to four Hack source frames relative to `src/` (anchored to this checkout's source root, so no path prefix, message or value leaves), and errno names from a wider closed set. Getters and proxy traps still never run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks for rounds 1 and 2. New diagnostic head for one more Mac run: What the round 1 and 2 output narrows down. The fixture's What this head adds (
Ask: one round is enough, since it reproduces every time. Run the six-way batch, then the four files alone right after it, at this exact head. Please send the first failing case's Local (Linux) at this head: |
|
Lead Mac reproduction at Every round: all four files fail inside the six-way phase and again alone, starting within one second of that phase ending: New timing fact: nine seconds after round 5's last alone run ended (three and a half minutes after its parallel phase ended), 🤖 Generated with Claude Code |
|
Sixth round at After the parallel phase I ran So this is not a window that closes a few minutes after the parallel phase. Each failing run re-arms something that expires after more than about 10 s and at most about 50 s. Retried at a shorter interval it fails indefinitely; left alone for 45 s it passes. That also explains the earlier rounds: each file was run once, then left alone, and passed a few minutes later. What it is not, from the snapshots taken at the first failure:
Where I would look: every path in the authored start, admission and host-process code that is not under the per-test root; anything compared against the clock with a bound between 10 and 60 seconds (a lease, a "recently active" guard, a staleness threshold, a retry budget); and what a refused run writes on its way out, since a refusal itself renews the condition. A closed diagnostic naming the throw site inside the action would settle it in one more run. The first trigger is still the parallel phase (probably a test killed by its own timeout mid-start, leaving the same thing behind). After that, the failures feed themselves. 🤖 Generated with Claude Code |
|
Thanks. The renewal result (fails indefinitely at a 10 s retry, passes after 45 s idle) narrows it well. One failing try at the diagnostic head should now name the throw site. Ask: check out What I checked on Linux at this head:
|
|
HACK-2219, two more data points from the Mac batch of Nov 14–15 (tree =
So the failing condition follows the batch script's process context or what its parallel phase left on disk, not the clock: it survived five idle hours, and was gone for runs started from a fresh shell. Things that differ and are still unchecked: descriptors and limits inherited from the batch's A separate lead, not proven: macOS 🤖 Generated with Claude Code |
|
Thanks. "It follows the batch's process context, not the clock" fits all three comments. The 10 s retry loop was itself a script, and a fresh shell passed. So I stop treating it as something with a lifetime. Linux, at
So the trigger is macOS-specific in that context. The Please run this on the Mac, as two runs on one tree.
cd <your hack checkout>
git fetch origin fix/native-authored-test-admission
git worktree add /tmp/hack-813 9a8511353a937a611cba1ca084192af7b14730b1
cd /tmp/hack-813 && bun install --frozen-lockfile
#!/bin/bash
# usage: bash /tmp/hack-813-probe.sh <label> [home]
set -u
label=$1; mode=${2:-}
out=/tmp/hack-813-probe-$label-$(date +%H%M%S); mkdir -p "$out"
fresh_exec_ms() { # cost of exec'ing a newly written shebang script
local d; d=$(mktemp -d); printf '#!/bin/sh\nexit 0\n' > "$d/x"; chmod 700 "$d/x"
local t0; t0=$(perl -MTime::HiRes=time -e 'printf "%d", time*1000')
"$d/x"; local rc=$?
local t1; t1=$(perl -MTime::HiRes=time -e 'printf "%d", time*1000')
rm -rf "$d"; echo "$((t1-t0))ms rc=$rc"
}
{
echo "label=$label mode=${mode:-default}"
echo "stdin_tty=$([ -t 0 ] && echo yes || echo no) stdout_tty=$([ -t 1 ] && echo yes || echo no)"
echo "ctty=$( (: </dev/tty) 2>/dev/null && echo yes || echo no)"
ps -o pid=,pgid=,sess=,tpgid=,stat= -p $$ | awk '{print "own_pgroup="($1==$2)" tpgid_set="($4>0)" stat="$5}'
echo "sigignore=$(ps -o sigignore= -p $$) sigmask=$(ps -o sigmask= -p $$)"
echo "open_fds=$(ls /dev/fd | wc -l | tr -d ' ') nofile=$(ulimit -Sn)/$(ulimit -Hn) maxproc=$(ulimit -u)"
echo "user_procs=$(ps -U "$(id -u)" -o pid= | wc -l | tr -d ' ')"
echo "syspolicyd_pid_age=$(ps -o etime= -p "$(pgrep -x syspolicyd | head -1)" 2>/dev/null | tr -d ' ')"
echo "fresh_exec=$(fresh_exec_ms) fresh_exec_again=$(fresh_exec_ms)"
} > "$out/context.txt"
env | cut -d= -f1 | sort > "$out/env-names.txt"
cd /tmp/hack-813
if [ "$mode" = home ]; then export HOME="$(mktemp -d)"; fi
HACK_DAEMON_AUTOSTART_DISABLE=1 bun test tests/native-authored-host-processes.test.ts > "$out/test.log" 2>&1
echo "rc=$? $(grep -E '^ [0-9]+ (pass|fail)' "$out/test.log" | tr '\n' ' ')" >> "$out/context.txt"
grep -m2 -E '"artifacts"' "$out/test.log" > "$out/artifacts.txt"
grep -m1 -A1 'diagnostic:' "$out/test.log" >> "$out/artifacts.txt"
echo "$out"
bash /tmp/hack-813-probe.sh batch
bash /tmp/hack-813-probe.sh batchhome home
bash /tmp/hack-813-probe.sh fresh
diff /tmp/hack-813-probe-batch-*/env-names.txt /tmp/hack-813-probe-fresh-*/env-names.txt
log show --last 2h --style compact --predicate 'process == "syspolicyd" AND messageType == fault' | tail -20
ls /Library/Logs/DiagnosticReports | grep -c syspolicydPlease post:
How I will read it:
|
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3255a0ccb7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
… and forged sites - A proxy error, or one with a proxy anywhere on its prototype chain, is refused before any reflection or instanceof, so none of its traps runs. - Inspection fields and codes are read once as own data properties; a subclass getter is never invoked. - `sites` accepts only frame lines (` at …`) whose file is in a fixed inventory of this checkout's `src/` files, so message text or a forged stack cannot pass as a site. - The stack and each frame line are size-bounded before matching; an oversized single-line stack no longer scans quadratically. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Status after
For the Mac probe in my previous comment, please use this head instead of git fetch origin fix/native-authored-test-admission
git worktree add /tmp/hack-813 5e798e0a7173b17a7fb019219d06b8f128cac6de
cd /tmp/hack-813 && bun install --frozen-lockfileEverything else in the probe stays the same. @codex review |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Status after
Mac probe: please use this head. Step 1 of the probe becomes: git fetch origin fix/native-authored-test-admission
git worktree add /tmp/hack-813 2c9a55f37931a4a254d99c3f2a9ff47907487b45
cd /tmp/hack-813 && bun install --frozen-lockfileThe rest of the probe is unchanged. Option for your merge sets: the diagnostics and per-case fixture isolation are reviewed and could land on their own, ahead of the root cause. If you want that, I will retitle this PR as diagnostics-only, mark it ready, and put the fix in a follow-up PR. My default is to keep it a draft until the probe names the cause, as the original brief asked. |
|
Status after
Mac probe: please use |
Authored startup failures currently collapse lock inspection, filesystem and host-process errors into the same artifact refusal. This diagnostic draft preserves closed cause and timing metadata before startup wrapping can hide it, and removes the host-process fixture's poison latch so one failed case restores its own environment and later cases report their own results.
This is not Ready. The post-parallel macOS root cause is still unknown; this PR does not classify it as test interference or a shared product resource, and does not change admission or recovery authority.
Current head
2e971f66includes a normal merge ofnextatc3b79bc0. Focused validation on that head: 120 passed / 60 macOS-only skipped / 0 failed across 15 files; typecheck passed. Earlier04ba3f38also passed check/privacy and CLI build, and independent review cleared its diagnostic scope. The requested Muse replacement could not start. Pre-push inherited false positives were triaged separately.second-family review: pending, lead
The full local gate was stopped after baseline fixtures rejected directories created under the host's umask 002. An isolated A/B reproduced that refusal at 002 and passed at 022. No full-suite pass is claimed; a complete run under 022 remains owed before Ready.
Next evidence: run the original six-way selected batch on macOS, then rerun each of these files in its own Bun process immediately afterward, for five consecutive rounds:
tests/native-authored-host-processes.test.tstests/native-authored-project-start.test.tstests/native-authored-project-start-recovery.test.tstests/native-authored-project-start-lifecycle.test.tsUse the first failed case's closed artifact diagnostics and mux timings to identify the actual cause, then add its regression and fix in this PR. The original first failure took about 210 ms, so slow executable assessment and command timeout are hypotheses, not findings.
Diagnostic limits:
host_deadlineincludes cooperative fixture abort; only the fixture emits that typed deadline. Repeated artifact samples can be one error crossing several wrappers. A started mux sample with no finished sample can also mean the surrounding process deadline was already expired and no child was spawned.Tracks HACK-2219.