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
Triage closure record for PR #515 (fix/issue-480, head d0c91a0372f3eedd81748f108db198e7a2842feb).
Review history
Round 1 (e46ea60): 2 findings.
F1 (medium, regression-proofing on a privacy path): the demoted workspace
key's own usableInBandCwd call site
(hypaware-core/plugins-workspace/codex/src/exchange-projector.js:150) was
unpinned; a relative workspace key could reach the shared .hypignore
matcher, which resolves relative paths against the daemon's own cwd (Follow-up: deferred review finding from PR #466 (Codex live projector's in-band cwd reaches the .hypignore gate unpredicated) #471
class defect on a new line). Fixed in-branch (a21b3ab): test/plugins/codex-rollout-cwd.test.js:272 (a relative workspace key is refused rather than resolved against the daemon (#480, #471)),
mutation-verified.
After round 2's clean pass, the branch merged origin/master again
(e3a169b..d0c91a0), pulling in PR #513 (10f4aa0, "Codex live projector
reads the cwd predicate from core, not a copy") among others. That merge was
never itself put through a review round. Triage independently verified it
introduces no new defect and does not regress either round-1 fix:
git diff e3a169b d0c91a0 -- '*exchange-projector.js' shows only Codex live projector reads the cwd predicate from core, not a copy #513's own
scoped change (usableInBandCwd now delegates its shape check to the shared sessionMetaCwd, exchange-projector.js:1286-1298); the ranking/gate logic
this PR owns (exchange-projector.js:148-150, :889-909) is untouched.
No unresolved merge-conflict markers anywhere in the tree.
None new. The one legitimate non-blocking backlog item visible in this
PR's review thread, that a workspace key outranked specifically by the rollout (as opposed to an in-band cwd) is discarded silently rather than
logged (see llp/0083-codex-live-cwd-from-rollout.decision.md:~267,
"Three limits, stated rather than implied"), is already tracked as #492
and was explicitly judged acceptable, not a finding in round 1 (every
outcome remains observable on the row or in the drop log; only the attribution is missing, and widening the warn would fire on every ordinary
subdirectory session per the frequency objection LLP 0160 settled). No new
issue is warranted for it.
The informational note in round 2 (the PR body's Docs section still names the
old PR #477 F4/D4 objection instead of LLP 0160, which now supersedes it) is
PR-description staleness, not a code or doc defect, and needs no tracking.
Triage closure record for PR #515 (
fix/issue-480, headd0c91a0372f3eedd81748f108db198e7a2842feb).Review history
e46ea60): 2 findings.key's own
usableInBandCwdcall site(
hypaware-core/plugins-workspace/codex/src/exchange-projector.js:150) wasunpinned; a relative workspace key could reach the shared
.hypignorematcher, which resolves relative paths against the daemon's own cwd (Follow-up: deferred review finding from PR #466 (Codex live projector's in-band cwd reaches the .hypignore gate unpredicated) #471
class defect on a new line). Fixed in-branch (
a21b3ab):test/plugins/codex-rollout-cwd.test.js:272(a relative workspace key is refused rather than resolved against the daemon (#480, #471)),mutation-verified.
llp/0083-codex-live-cwd-from-rollout.decision.mdstill described the Follow-up: deferred review findings from PR #477 (ignored-workspace identity on newly-recorded rows; refusal warn fires every turn) #481 over-record limit as "clean in-band
cwd,ignored declared workspace" only, when this PR widened the same case to
the whole subscription route via the rollout. Fixed in-branch (
a21b3ab).e3a169b): 0 findings. Both round-1 fixes re-verified with threetargeted mutations, all reddening as expected; Codex workspace-cwd refusal is an ancestor test, not a byte test (#481, finding 2 of 2) #491's ancestor-test predicate
confirmed untouched; LLP 0083/0160 cross-doc consistency confirmed.
Head
d0c91a0(post-round-2 state)After round 2's clean pass, the branch merged
origin/masteragain(
e3a169b..d0c91a0), pulling in PR #513 (10f4aa0, "Codex live projectorreads the cwd predicate from core, not a copy") among others. That merge was
never itself put through a review round. Triage independently verified it
introduces no new defect and does not regress either round-1 fix:
git diff e3a169b d0c91a0 -- '*exchange-projector.js'shows only Codex live projector reads the cwd predicate from core, not a copy #513's ownscoped change (
usableInBandCwdnow delegates its shape check to the sharedsessionMetaCwd,exchange-projector.js:1286-1298); the ranking/gate logicthis PR owns (
exchange-projector.js:148-150,:889-909) is untouched.npm testond0c91a0: 3267 pass / 0 fail / 1 skipped (better thanround 2's reported baseline, since the merge also pulled in the
leave-commandfix, PR hyp leave: the daemon status query must answer, not throw #527/test/core/leave-command.test.js: 8 of 11 tests fail on master (exit 1 from hyp leave), red since the tests were introduced #512).npm run typecheck: clean.@ref LLP …anchors touched by this PR's diff resolve(
LLP 0083#workspace-key-ranks-last,LLP 0083#decision,LLP 0083#container-fallback-gap,LLP 0160#decision,LLP 0160#corrections-0083,LLP 0150#usable-cwd).llp/0083andllp/0160read consistently after the merge: the Codex live projector reads the cwd predicate from core, not a copy #513provenance correction and the Codex live projector: rank the workspace-key guess below the rollout cwd #515 ranking/limit edits both landed in the
same bullets without contradiction.
Deferred items
None new. The one legitimate non-blocking backlog item visible in this
PR's review thread, that a workspace key outranked specifically by the
rollout (as opposed to an in-band cwd) is discarded silently rather than
logged (see
llp/0083-codex-live-cwd-from-rollout.decision.md:~267,"Three limits, stated rather than implied"), is already tracked as #492
and was explicitly judged acceptable, not a finding in round 1 (every
outcome remains observable on the row or in the drop log; only the
attribution is missing, and widening the warn would fire on every ordinary
subdirectory session per the frequency objection LLP 0160 settled). No new
issue is warranted for it.
The informational note in round 2 (the PR body's Docs section still names the
old PR #477 F4/D4 objection instead of LLP 0160, which now supersedes it) is
PR-description staleness, not a code or doc defect, and needs no tracking.
Backlink: #515