emitter: add "streaming brief" feature
Metadata
Current evaluation
Merged after approval and CI. Adds a streaming brief Emitter feature that streams info logs and pipe text on a single line prefixed by the active progress message. Initially disabled, it resolves issue #165 and increases coverage by 0.13%.
Suggested action: —
No scores available.
Issue body
This commit adds a new feature to the Emitter, tentatively called "streaming brief". It is initially disabled, and can be enabled in the Emitter's init() call.
Once enabled, the feature will leverage the "multi-action" nature of progress() calls to "stream", in a single line, info-level log messages and text written to the open_stream()'s pipe. For example, the following sequence of calls in BRIEF mode:
```
emit.progress("Starting stage 1", permanent=False) ...
log.info("Doing first step")
...
log.info("Doing second step")
...
emit.progress("Finished stage 1", permanent=True)
```
... will cause the two 'info' messages to "stream" on the terminal, prefixed by "Starting stage 1 ::" to indicate that they are related to that progress message. All these three messages are ephemeral which means that in the end only the final progress() call will be visible on the terminal.
Fixes #165
- [ ] Have you followed the guidelines for contributing?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `tox`?
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after approval and CI. Adds a streaming brief Emitter feature that streams info logs and pipe text on a single line prefixed by the active progress message. Initially disabled, it resolves issue #165 and increases coverage by 0.13%. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into main, implementing a streaming brief feature for the Emitter. Initially disabled, it streams info-level logs under progress messages when enabled via init(). Fixes #165. Merged with 100% diff coverage and a 0.13% overall increase. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4331 enable "streaming brief" CLI mode | snapcraft | merged | Merged into main, enabling the streaming brief CLI mode and resolving issue #4317. The update includes dependency bumps, passed CI checks, received reviewer approval, and increased test coverage. | |
| #349 enable "streaming brief" CLI mode | rockcraft | merged | Merged changes enabling streaming brief CLI mode. Updates craft-parts, craft-providers, and craft-cli. Streams info messages inline during Brief mode and cleans up progress output. Fixes #345. Approved by two reviewers and passed CI. | |
| #85 feat: enable streaming in brief | craft-application | merged | Successfully merged into main after passing CI and receiving approval from two reviewers. The change enables streaming in brief by adding a single line to one file, with no impact on overall code coverage. | |
| #419 feat: oxidize streaming_brief feature | craft-cli | merged | Merged after maintainer approval. The change re-adds the streaming_brief feature for niche logging scenarios and restores message prefixing for Emitter.open_stream. Commits were force-pushed to clean history before merging. | |
| #202 In "streaming brief" mode, `emit.message()` should clean the progress prefix | craft-cli | closed | Closed without a linked resolution or pull request. The bug report that emit.message() fails to clear the progress prefix in streaming brief mode was acknowledged but left without a merged fix or further action. |