Width and metadata
Rows use the full width of their output terminal. When output is redirected or the width cannot be detected, GAT uses 100 columns. Long paths, names, and metadata end with... instead of wrapping onto another line. Unicode display
width is respected, including wide characters and combining marks.
Metadata is dim and limited to 24 columns. Common states use short labels such
as new, cached, uncached, and conflict. Recovery guidance appears below
the rows, including when affected rows are omitted.
The two-column layout requires at least 40 terminal columns. Below that width,
GAT omits metadata and fits the status and primary label to the available space.
This threshold does not force a narrow terminal to display 40 columns.
Wrapping and indentation
Headings, messages, hints, fields, notices, and footers wrap at the smaller of the destination terminal width and 100 columns. Stdout and stderr use their own widths. Wrapping keeps explanations complete; it never replaces prose with....
Continuation lines align after a message’s symbol or a hint’s hint: prefix.
Detail fields align values beneath their first line. Below 40 columns, or when
labels would take more than half the available width, fields stack:
--full-output, so each explanation appears once.
Incomplete sync reports its result once and exits nonzero; it does not append a
second error summary after the completed report.
Help and transient progress use their own terminal-aware renderers.
Complete output
Use the global-o / --full-output flag to disable list-row and list-width limits and show
complete metadata:
--full-output.
The flag works before or after a subcommand. Complete output can wrap in the
terminal. Redirecting output does not automatically enable it. It also does not
change path selection: a configured selection still applies unless explicitly
replaced, for example with --path ..
What the limits cover
The 20-line budget covers list rows and the omission marker. Headings, hints, count footers, detail views, and diagnostics have their own formatting and are outside that budget. A report can therefore occupy more than 20 physical lines. Sync and system reports share one row budget across their sections. Their omission marker includes hidden rows in later sections; those sections retain their headings and guidance. Human output includes formatting and summaries even with--full-output; it is
not a machine-readable path stream. Git integration protocols retain their
existing output contracts.
