mirror of
https://github.com/sbt/sbt.git
synced 2026-10-06 18:14:04 +02:00
**Problem** sbt compile through the thin client prints only elapsed time: 2 s, where the same command in the shell or under sbt --server prints elapsed time: 2 s, cache 94%, 13 disk cache hits, 24 remote cache hits. The summary is computed server-side and thrown away: ManagedLogger.success is gated on Terminal.isSuccessEnabled, and a NetworkChannel's terminal answered interactive.get || isInWatch, which is false whenever a command is passed on the command line. The line the user sees is the client's own, built from wall-clock alone. **Solution** Report the line from the server, and have the client print only when the server will not. NetworkChannel's terminal reports isSuccessEnabled = true, so the server writes the line on every channel, and it advertises successLog in its capabilities. A server from before this sends no such key, which reads as false, so an older client-server pair behaves as it does today; an unattached client also always prints, since it renders build/logMessage rather than the proxied systemOut bytes. Older sbtn keeps printing its own line and so reports success twice until it updates. Generated-by: Claude Opus 5 Claude-Session: https://claude.ai/code/session_015BqrfmHbJUph6Kx7gJn3G8 Co-authored-by: Claude Opus 5 (1M context) <[email protected]>