Skip to content

feat: add progress TUI logging to remove and init commands#64

Open
DecampsRenan wants to merge 3 commits into
mainfrom
claude/add-command-logging-n0g0m
Open

feat: add progress TUI logging to remove and init commands#64
DecampsRenan wants to merge 3 commits into
mainfrom
claude/add-command-logging-n0g0m

Conversation

@DecampsRenan
Copy link
Copy Markdown
Owner

Make the progress TUI labels configurable (action/done) instead of
hardcoded "Installing"/"Installed", then enable it for all one-shot
commands: install, add, remove, and init (both init + install steps).

https://claude.ai/code/session_01VhpBic8sMrVS9bFtbENWxY

claude added 3 commits April 5, 2026 09:15
Make the progress TUI labels configurable (action/done) instead of
hardcoded "Installing"/"Installed", then enable it for all one-shot
commands: install, add, remove, and init (both init + install steps).

https://claude.ai/code/session_01VhpBic8sMrVS9bFtbENWxY
Test the configurable labels (action/done) across all commands:
- View shows correct action label while running (e.g. "Installing...", "Removing...")
- View shows correct done label on success (e.g. "Installed in", "Removed in")
- View shows "Failed in" on error, never the done label
- Output line handling (trim, skip empty, ring buffer)
- Line truncation with ellipsis
- Config defaults to "Installing"/"Installed"
- Dry-run and error edge cases for progress.Run

https://claude.ai/code/session_01VhpBic8sMrVS9bFtbENWxY
Document the progress TUI changes (remove/init logging, configurable
labels) under [Unreleased]. Add CLAUDE.md requiring agents to update
the changelog in the same commit as any user-visible change.

https://claude.ai/code/session_01VhpBic8sMrVS9bFtbENWxY
Comment thread cmd/init.go
if err := runner.RunSubprocess(installArgs, dryRun); err != nil {
return fmt.Errorf("install failed: %w", err)
}
}
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The if isTTY && !rawOutput { progress.Run(...) } else { runner.RunSubprocess(...) } pattern is duplicated for both init and install steps here, and again in cmd/root.go. Consider extracting a small helper (e.g. runWithProgress(args, dryRun, rawOutput, action, done)) so the TTY decision lives in one place — otherwise future changes to the TTY detection or flag semantics need to be made in three spots.

if done == "" {
done = "Installed"
}
if len(args) == 0 {
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: the empty-args check runs after applying defaults. Move if len(args) == 0 { ... } above the label defaulting so the early-return path doesn't do unnecessary work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants