feat(colors): add padOptions.fadeInactiveAuthorColors toggle#7554
feat(colors): add padOptions.fadeInactiveAuthorColors toggle#7554JohnMcLear wants to merge 2 commits intoether:developfrom
Conversation
Adds a new pad option fadeInactiveAuthorColors (default true). When false, each author's background color stays at their chosen value instead of fading toward white as the author goes inactive. Settable server-side via settings.json / settings.json.docker and per-pad via the ?fadeInactiveAuthorColors=false URL parameter. Motivation (from issue): a user who picks a light color can become visually indistinguishable after the fade, and switching machines multiplies the effective color count because each session fades its own near-white variant. Default is unchanged (true) so existing deployments keep legacy behavior. Closes ether#7138 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review Summary by QodoAdd fadeInactiveAuthorColors option to control inactive author color fading
WalkthroughsDescription• Add padOptions.fadeInactiveAuthorColors toggle to control author color fade behavior • Default true preserves existing fade-on-inactive behavior for backward compatibility • Configurable via settings.json, Docker env var, and URL parameter • Solves issue where light colors become indistinguishable after fade Diagramflowchart LR
A["Settings Configuration"] -->|"padOptions.fadeInactiveAuthorColors"| B["Backend Settings"]
C["Docker Environment"] -->|"PAD_OPTIONS_FADE_INACTIVE_AUTHOR_COLORS"| B
D["URL Parameter"] -->|"?fadeInactiveAuthorColors=false"| E["Client Variables"]
B -->|"clientVars.padOptions"| E
E -->|"Controls fade logic"| F["Ace2Inner Color Rendering"]
F -->|"Applies or skips fade"| G["Author Background Color"]
File Changes1. src/node/utils/Settings.ts
|
Code Review by Qodo
1. https:// URL in comment
|
Addresses Qodo review feedback on ether#7554: 1. doc/docker.md's Pad Options env-var table was missing PAD_OPTIONS_FADE_INACTIVE_AUTHOR_COLORS. Users following the docs had no way to discover the new toggle — add the entry with its description and default. 2. The Playwright spec's `browser.newContext() + clearCookies()` pattern was ineffective — tests navigate with the `page` fixture from the default context, so clearing cookies on a separate context is a no-op and the context leaks. Replace with `page.context().clearCookies()`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
squarooticus
left a comment
There was a problem hiding this comment.
Proposing an improvement in the documentation for the feature.
| | `PAD_OPTIONS_ALWAYS_SHOW_CHAT` | | `false` | | ||
| | `PAD_OPTIONS_CHAT_AND_USERS` | | `false` | | ||
| | `PAD_OPTIONS_LANG` | | `null` | | ||
| | `PAD_OPTIONS_FADE_INACTIVE_AUTHOR_COLORS` | Fade each author's caret/background toward white as they go inactive. Set to `false` if users pick light colors that become indistinguishable from the faded variants. | `true` | |
There was a problem hiding this comment.
I might say "or when inactivity tracking is undesirable for whatever reason". The reason I asked for this feature is that we often have 30 people contributing to the same pad, and it's hard enough to find 30 distinguishable colors, much less 60 when every contributor effectively has two colors.
Summary
Adds a new pad option
fadeInactiveAuthorColors(defaulttrue). Whenfalse, each author's background color stays at their chosen value instead of fading toward white as they go inactive.Configurable via:
settings.json→padOptions.fadeInactiveAuthorColorsPAD_OPTIONS_FADE_INACTIVE_AUTHOR_COLORS?fadeInactiveAuthorColors=falseMotivation (from issue): a user who picks a light color becomes visually indistinguishable after the fade, and switching machines multiplies the effective color count because each session fades its own near-white variant — "Zeno's white".
Default is
trueso existing deployments are unchanged.Closes #7138
Test plan
padOptions.fadeInactiveAuthorColorsdefault istrue(new test insrc/tests/backend/specs/settings.ts)clientVars.padOptions.fadeInactiveAuthorColorsdefaults totrue?fadeInactiveAuthorColors=falseflipsclientVars.padOptions.fadeInactiveAuthorColorstofalsepnpm run ts-checkclean locally🤖 Generated with Claude Code