Conversation
Single-line footer below the status bar, toggled with /infobar and persisted as config show-info-bar. Segments: late version, project folder, focused agent's provider/profile ref + model (config agent_models lookup), context usage bar, running subagent count, discovered skills with estimated token footprint (SkillsInfo plumbed from cmd/late/main.go), tokens to the compaction threshold, and session uptime. The row reserves one layout row, truncates to window width, and hides while the file picker is open. Note: state.go and update.go also carry the /timestamps command def and toggle handler (feature (b)) — the info bar is the dominant feature in both files, so they are committed here per the no-hunk-split rule. Note: config show-info-bar field lands with the compaction commit (config.go is dominantly compaction). Port notes (branch surgery): - Config fields: the original note deferred show-info-bar/show-timestamps to a later compaction-era commit; here both fields (with their doc comments) are ported directly into internal/config/config.go so the /infobar and /timestamps toggles persist via SaveConfig and every commit builds. - Headroom segment: upstream/main has no compaction config, so config.ResolveCompactionThreshold/config.DefaultCompactionThresholdPercent are replaced by a package-private tui constant defaultContextThresholdPercent = 80 (mirroring local/full's default); the segment itself is unchanged and uses only token counts plus this percentage. - cmd/late/main.go: skillsInfoForTUI + model.SkillsInfo assignment ported from local/full (pathutil/skill/common were already available upstream).
…estamps Session stamps every appended history message with an RFC3339 receive time (appendMessage is the single path; caller-supplied timestamps are preserved, legacy entries stay unprefixed). The TUI renders the time as a muted [HH:MM:SS] row at the start of user and assistant blocks when ShowTimestamps is on; toggling /timestamps invalidates the transcript block cache and persists show-timestamps to config.json (handled by the update.go change in the info-bar commit). Port notes (branch surgery): - Docs: carries the README developer-ergonomics bullet and the Quickstart "Info Bar & Timestamps" section for both features (the first commit where both exist). The Quickstart headroom wording reads "context threshold" instead of "compaction threshold" — this branch's base has no compaction configuration.
Closed
5 tasks
Owner
|
Great addition! I did notice it seems to duplicate the context window. Will likely just need some tiny polishing and then be merged. Again thank you! |
…mid-CSI The status bar and info bar truncate rendered, lipgloss-styled segments on narrow terminals. The old rune walker counted escape bytes as content and could cut INSIDE a CSI sequence, emitting garbage like "ESC[3..." into the bars. Replace it with ansi.Truncate, which measures the same visible width, keeps sequences intact, and already accounts for the tail width. Review fix cherry-picked from 0a97d2f (truncate helper + view_truncate_test.go only).
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.
Update 2026-09-25
New since the original description (
998aa4b): the same ANSI-aware truncation fix as #135 protects the info bar too. Styled info-bar segments are truncated on narrow terminals, and the old rune walker could cut inside a CSI escape sequence — the helper now usesansi.Truncate, keeping escape sequences intact at the same visible width.Two opt-in TUI extras, toggled and persisted independently. Both default OFF, so out-of-the-box behavior is unchanged.
Info bar (
/infobar) — a single-line footer below the status bar: late version · project folder · focused agent's provider/model (honoringagent_models) · context usage bar · running subagent count · discovered skills with estimated token footprint · compaction headroom · session uptime. Reserves one layout row, truncates to window width, and persists toconfig.json(show-info-bar).Transcript timestamps (
/timestamps) — a muted[HH:MM:SS]prefix on user and assistant transcript blocks. The session stamps every appended history message with its receive time; legacy history entries render unprefixed. Persists toconfig.json(show-timestamps).Pure TUI work plus two config fields. The headroom segment uses a local 80% default constant (
defaultContextThresholdPercent), so this PR has no dependency on the compaction PR.Split out of #133 so the TUI changes can be evaluated separately (per review).
Testing
exit 0 — all 18 packages green (15 ok, 3 without test files).
gofmt -lon the touched files: no output (clean)go vet ./cmd/late ./internal/client ./internal/config ./internal/session ./internal/tui: cleaninternal/tui/infobar_test.go), timestamp prefix rendering + persistence (internal/tui/timestamps_test.go), RFC3339 stamping (internal/session/timestamp_test.go)