fix(version): prevent ASCII logo from wrapping in banner#73
Merged
Conversation
The tagline ("Port CLI · Agentic Engineering Platform", 41 cols) is wider
than the ASCII logo (38 cols). JoinVertical padded every line to the widest
element, then the outer container clamped the block back to the logo width,
forcing every line — including the padded logo rows — to wrap and shattering
the art.
Derive the width from the widest piece of content (max of logo and tagline)
and use it for both the separator and the outer container so nothing wraps.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
EricFernandezPort
approved these changes
Jun 5, 2026
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.
Problem
port versionrendered the Port ASCII logo botched — the art wrapped and shattered into misaligned blocks.Root cause
In
internal/output/banner.go, the banner is assembled withJoinVertical(Center, …)and then wrapped in a container constrained toWidth(logoWidth).The tagline "Port CLI · Agentic Engineering Platform" is 41 columns wide, but the ASCII logo is only 38.
JoinVerticalpads every line out to the widest element (41), then the outer container clamped the block back to 38 — narrower than its own content — forcing every line (including the padded logo rows) to wrap.Fix
Derive the width from the widest piece of content (
max(logoWidth, taglineWidth)) and use it for both the separator and the outer container, so nothing wraps.Before:

After:

Testing
TestBannerDoesNotWrapLogoregression test.go test ./internal/output/...,go vet ./...,go build ./...all pass.port versionrenders the logo cleanly.🤖 Generated with Claude Code