Fix stderr log streaming from monitored applications#241
Merged
Conversation
The Sentinel logs server tails the stdout and stderr log files, but the
stderr terminal was created with the erlexec option [:stderr]. Since tail
always writes the followed file content to its own stdout, the stderr
file content was never captured, so stderr logs were never streamed,
stored or displayed. In addition, Host.Terminal.Server only handled
{:stdout, ...} messages, silently dropping any {:stderr, ...} data.
Both log terminals now capture :stdout (the log type is carried by the
terminal metadata) and the terminal server forwards :stderr messages the
same way as :stdout for terminals that do capture that stream.
Risk assessment:
- Impact: stderr logs become visible again in the Logs page and in the
retained log storage. No behavior change for stdout streaming.
- Blast radius: Sentinel.Logs.Server terminal creation and
Host.Terminal.Server message handling. Web terminals (tty) and the
monitor/deploy paths are untouched.
- Regression risk: low. The stderr path was delivering nothing before,
so the worst case is additional (correct) log volume in the UI and in
the retention tables.
- Rollback: revert this commit, no data or config migration involved.
2d0dfda to
7ba27a0
Compare
thiagoesteves
added a commit
that referenced
this pull request
Jul 8, 2026
…guide (#244) * Update changelog with 0.9.5 entries and document changelog maintenance Add the missing 0.9.5 entries for the merged PRs: #239, #240, #241 and #242 as bug fixes, and #237 (CloudWatch log group retention) as an enhancement. Document the changelog maintenance rules in AGENTS.md so agents know how to add entries, and remove the outdated note that said the changelog must not be edited manually. Risk assessment: - Impact: documentation only, no runtime behavior changes. - Blast radius: CHANGELOG.md and AGENTS.md. - Regression risk: none, docs-only diff. - Rollback: revert this commit. * Updated changelog
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Sentinel logs server tails the stdout and stderr log files, but the stderr terminal was created with the erlexec option [:stderr]. Since tail always writes the followed file content to its own stdout, the stderr file content was never captured, so stderr logs were never streamed, stored or displayed. In addition, Host.Terminal.Server only handled {:stdout, ...} messages, silently dropping any {:stderr, ...} data.
Both log terminals now capture :stdout (the log type is carried by the terminal metadata) and the terminal server forwards :stderr messages the same way as :stdout for terminals that do capture that stream.
Risk assessment:
Co-Authored-By: Claude Fable 5 noreply@anthropic.com