Problem
On every Stop / StopFailure hook event — i.e. once per turn — the plugin prints a user-visible message:
dash0: view session → <session-url>
See cmd/on-event/main.go:639-642:
if appURL := deriveAppURL(cfg.OTLPUrl); appURL != "" {
sessionURL := buildSessionURL(appURL, sessionID)
printHookResponse(fmt.Sprintf("dash0: view session → %s", sessionURL), "")
}
Because Stop fires on every turn, this line is emitted to the user on every turn of a session. It's noisy — the session URL is the same for the whole session, so repeating it each turn adds little value and clutters the transcript.
Request
Make the per-turn "view session" message opt-in, hidden by default:
- Add a config option (suggested:
SHOW_SESSION_LINK, with DASH0_SHOW_SESSION_LINK env fallback and show_session_link config-file key) gating the dash0: view session → … output on Stop/StopFailure.
- Default:
false — by default, do not print the message on each turn.
- When set to
true, restore the current behavior (print the session link every turn).
This mirrors the existing boolean options (OMIT_IO, OMIT_USER_INFO) and their pluginOptionBoolDefault handling.
Notes
- The
SessionStart connectivity messages (dash0: connected, telemetry is not active, connectivity check failed) are fine as-is — those fire once per session, not per turn.
- Document the new option in
README.md (Configuration, Environment variable fallback, and Configuration file tables).
🤖 Generated with Claude Code
Problem
On every
Stop/StopFailurehook event — i.e. once per turn — the plugin prints a user-visible message:See
cmd/on-event/main.go:639-642:Because
Stopfires on every turn, this line is emitted to the user on every turn of a session. It's noisy — the session URL is the same for the whole session, so repeating it each turn adds little value and clutters the transcript.Request
Make the per-turn "view session" message opt-in, hidden by default:
SHOW_SESSION_LINK, withDASH0_SHOW_SESSION_LINKenv fallback andshow_session_linkconfig-file key) gating thedash0: view session → …output onStop/StopFailure.false— by default, do not print the message on each turn.true, restore the current behavior (print the session link every turn).This mirrors the existing boolean options (
OMIT_IO,OMIT_USER_INFO) and theirpluginOptionBoolDefaulthandling.Notes
SessionStartconnectivity messages (dash0: connected,telemetry is not active,connectivity check failed) are fine as-is — those fire once per session, not per turn.README.md(Configuration, Environment variable fallback, and Configuration file tables).🤖 Generated with Claude Code