Verify against a real Claude Code whether a sidechain transcript line can omit both isSidechain and agentId, the shape the settle.js guard cannot distinguish from a main-loop line
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- javascript
- Domain
- ai-infra-agents
Research direction
Read hypaware-core/plugins-workspace/claude/src/settle.js around line 478 and the replayed-parent regression test referenced in the issue. Observe real Claude Code subagent sidecar and main-loop transcript lines, or add an automated check, to establish whether a sidechain line can omit both fields. Done means documenting the result in LLP 0435 and closing if the shape cannot occur, or adding a discriminator and regression test if it can.
Written by the indexing model from the issue text.
Description
Source: #2143 at 0a5f656db1f0d8c06707a5a27fec43ea6247ca5e
Location: hypaware-core/plugins-workspace/claude/src/settle.js:478
Severity: minor
Evidence
!match.is_sidechain is true for undefined, so a matched transcript line naming neither isSidechain nor agentId still clears a header-derived agent_id: the same hazard finding 1 fixed, one field weaker. The looseness is deliberate and load-bearing (round 2 proved tightening the guard to match.is_sidechain === false fails the replayed-parent regression test 9 pass / 1 fail), so the two shapes are indistinguishable to this guard given the fixtures on hand; only a real client can say whether subagent sidecar lines ever arrive with neither field. No incorrect behavior has been observed, which is why this is not filed as a defect. Round 2 folded this into a claude_otel_shape_check 'eyeball list', but that home no longer exists: docs/ACCEPTANCE.md was deleted and the written manual acceptance procedures retired by LLP 0430 (#2133), which predates this PR's merge-base, and per LLP 0430's Consequences the recourse for a gap only a real client can show is an automated check or a new LLP reviving a specific gate. This issue is therefore the durable home.
Why deferral is safe
Safe outside PR #2143: the exposure is a hypothesis about wild transcript shapes, not an observed behavior; the guard's loose form is required by the replayed-parent case the PR exists to fix; and if the shape does occur, the affected row still gains correct native identity, losing only its header-derived agent_id label, which is the pre-round-1-fix status quo for that shape.
Acceptance condition
Observe real Claude Code subagent sidecar and main-loop transcript lines (a real client run, or an automated check per LLP 0430) and record whether any sidechain line arrives with neither isSidechain nor agentId. If the shape occurs, add a discriminator the guard can use (with a regression test that fails on the loose guard); if it cannot occur, record that in LLP 0435's orbit and close.
Review preference; backlog only. A human may explicitly delegate it with neutral:fix.
- Dominant language
- JavaScript
- Stars
- 11
- Forks
- 0
- Avg merge
- 2h 49m
- Merged PRs (30d)
- 302
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from hyparam/hypaware
-
docs: ollama.md says --source ollama adds to an existing install, but without --force it refusesOpen
Difficulty 2/5 Under an hour Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
report_commands.js runtime output still says 'server' in four places; one names the destinationOpen
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 76/100
Maintainers usually reply within 1 day
All issues in hyparam/hypaware
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
help wanted Idea 💡 wdio-cli
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
webdriverio/webdriverio#16361 · 2 comments ·
Maintainers usually reply within 1 day
-
clientV2: Application Info header separators show as missing-character boxes without a CJK fontOpenbug new-client
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
NUWCDIVNPT/stig-manager#2285 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Fei2411/DeepSeek-Bot#922 · 1 reaction ·
-
Workers AI integration drops output of non-streaming chat responses in the OpenAI format (`choices`)OpenBug Cloudflare Workers Spans
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
getsentry/sentry-javascript#26120 · 1 comment ·
Maintainers usually reply within 1 day