Follow-up requested by the maintainer when clearing the triage on PR #681, which was scoped to hyp status only.
1. Sweep runDaemonStatus's raw interpolations
hyp daemon status still interpolates untrusted values directly. Route these through the same sanitizeLabel / printable() treatment PR #681 applied on the hyp status side:
state
pid
- timestamps
uptimeMs
- the sources and sinks fields
Add hostile-input tests covering each, matching the shape of the tests #681 added.
Also handle the uncaught readStatusFile throw in that path: a malformed or unreadable status file should not surface as a raw stack.
2. Non-blocking residue recorded in #681's triage note
Strings that reach a rendered surface from files other than status.json, specifically:
- remote-authored config etags and reasons
- the client attach probe error
These were classified non-blocking during #681's triage, so they belong here rather than blocking that PR.
Context
Filed by neutral at the maintainer's explicit request on PR #681. See that PR's triage note and the maintainer's decision comment for the full reasoning and the scope ruling that produced this issue.
Follow-up requested by the maintainer when clearing the triage on PR #681, which was scoped to
hyp statusonly.1. Sweep
runDaemonStatus's raw interpolationshyp daemon statusstill interpolates untrusted values directly. Route these through the samesanitizeLabel/printable()treatment PR #681 applied on thehyp statusside:statepiduptimeMsAdd hostile-input tests covering each, matching the shape of the tests #681 added.
Also handle the uncaught
readStatusFilethrow in that path: a malformed or unreadable status file should not surface as a raw stack.2. Non-blocking residue recorded in #681's triage note
Strings that reach a rendered surface from files other than
status.json, specifically:These were classified non-blocking during #681's triage, so they belong here rather than blocking that PR.
Context
Filed by neutral at the maintainer's explicit request on PR #681. See that PR's triage note and the maintainer's decision comment for the full reasoning and the scope ruling that produced this issue.