Skip to content

Multi-line permanent progress doesn't overwrite temporary progress #371

@jonathan-conder

Description

@jonathan-conder

Bug Description

I assumed it was possible to pass multi-line strings to emit.progress. At least, craft-application does it. However, the first line doesn't overwrite the existing progress line if it was longer.

To Reproduce

from craft_cli import EmitterMode, emit


emit.init(EmitterMode.BRIEF, appname="testcraft", greeting="Greeting")
emit.progress("foo foo foo")
emit.progress("bar\nbar", permanent=True)

Expected output:

bar
bar

Actual output:

bar foo foo
bar

part yaml

Relevant log output

2025-08-11 15:02:50.183 Greeting
2025-08-11 15:02:50.183 foo foo foo
2025-08-11 15:02:50.183 bar
bar

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions