PR #2153's body and the regression test docstring omit the steady-state consequence: the cross-check effectively removes the gateway-lane stop rather than conditioning it

Open
#2,158 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
1-3 hours
Newbie friendliness
55/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript
Domain
testing

Research direction

Read the regression-test docstring in test/plugins/codex-privacy-skill-session-id.test.js around lines 227–238 and the PR #2153 body’s second Solution bullet. Update the docstring to state the steady-state consequence described in the issue; if the PR is still open, update its body too. Done when both texts explain that the stop arm is reachable only by a race and that the change removes the gateway-lane stop in steady state.

Written by the indexing model from the issue text.

Description

Source: #2153 at 3ba9ab31696e4968a7d60bfd9b3fe9613ddfb348
Location: PR #2153 body (second Solution bullet); test/plugins/codex-privacy-skill-session-id.test.js:216-231
Severity: minor

Evidence

Verified at 3ba9ab31: resolveLiveGatewayEndpointFromStatus (src/core/daemon/status.js:776-797) applies the same pid-liveness gate and the same gatewaySourceDetails port test over the same two files as the verb's own gateway resolution, so the gateway is absent from the receipt's recorders exactly when the cross-check will also find no live bound port. The 'still being recorded' stop arm is therefore reachable only by a race between the two commands or a port shape core rejects but a reader accepts; in steady state the cross-check always answers not-listening. Neither the PR body ('the second observation has to be the gateway's own bound address', with no consequence stated) nor the test docstring ('The answer is to condition the stop on a second observation, not to delete it') states this. Both rounds asked for one sentence in each; neither landed.

Why deferral is safe

Not a blocker and not a behavioral defect: the shipped SKILL.md itself is accurate at head (it presents the snapshot as carrying 'the very field the verb resolves the gateway by', a decomposition claim, not an independence claim), the behavior is correct in all three benign states and fails closed on unreadable snapshots, and removing the false stop was the point of #2148. The omission lives only in the merge-record prose and a test comment, and the consequence is already stated verbatim in both marker-signed review comments on the PR thread and again in the disposition record, so the merge record as a whole does not mislead. The related boot-race residual (src/core/daemon/runtime.js:323-329 writes the pid file before plugin activation, a sub-second under-warn window at daemon boot) is concurred as speculative under CLAUDE.md's threshold: closing it needs a gateway probe, a different change, and the head prose no longer over-claims either lane.

Acceptance condition

One sentence in the docstring of test/plugins/codex-privacy-skill-session-id.test.js (and, if the PR is still open, one in the PR body) stating that because the receipt omits the gateway exactly when no bound port was readable, the stop arm is reachable only by a race, so in steady state the change removes the gateway-lane stop rather than conditioning it.

Review preference; backlog only. A human may explicitly delegate it with neutral:fix.


Update at head 2a08f5dacabb6e479fef910766cbb7b68f425aed (triage re-run after fix/issue-2148 merged master): the omission stands unchanged. The merged PR body's second Solution bullet still reads "the second observation has to be the gateway's own bound address" with no steady-state consequence stated, and the regression-test docstring (now at test/plugins/codex-privacy-skill-session-id.test.js:227-238 after the keep-both merge added the master-side #2159 test below it) still says "condition the stop on a second observation, not to delete it" without the consequence. The merge changed neither text. Severity and acceptance unchanged.

Dominant language
JavaScript
Stars
11
Forks
0
Avg merge
2h 55m
Merged PRs (30d)
294

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from hyparam/hypaware

All issues in hyparam/hypaware

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.