Skip to content

fix: name the actual cause when pad-wide is off (Etherpad version + runtime flag)#19

Merged
JohnMcLear merged 1 commit into
mainfrom
fix/passthrough-warning-message
May 17, 2026
Merged

fix: name the actual cause when pad-wide is off (Etherpad version + runtime flag)#19
JohnMcLear merged 1 commit into
mainfrom
fix/passthrough-warning-message

Conversation

@JohnMcLear
Copy link
Copy Markdown
Member

Summary

thm reported this on a fresh Etherpad 3.1.0 deployment:

[ep_plugin_helpers.padToggle ep_markdown] pad-wide settings unavailable — server lacks ep_* passthrough patch (Etherpad < 2.7.4). Per-user cookie toggle still works.

Two things wrong with that line:

  1. Wrong version gate. The passthrough patch shipped in Etherpad 3.0.0 (PR #7698), not 2.7.4. The "< 2.7.4" string was leftover copy from when the feature was scoped against a 2.x backport that never landed.
  2. Wrong root cause. padWideSupported = patchPresent && runtimeEnabled. On a v3.1.0 container the patch IS present but settings.enablePluginPadOptions is still the default false — so the warning was pointing the admin at an upgrade they don't need instead of at the settings flag they do.

Fix

  • Server: expose patchPresent and runtimeEnabled as separate clientVars flags alongside the existing padWideSupported. No protocol break — older clients only read padWideSupported and keep working.
  • Client (pad-toggle.js, pad-select.js): use the granular flags to pick the actual cause:
    • patch missing → Etherpad < 3.0.0
    • flag false → settings.enablePluginPadOptions is false — set to true in settings.json
  • Falls back to a generic line when the server is too old to emit the new fields, so mixed-version deployments still see something sensible.
  • Also fixed the 2.7.4 references in README.md and source comments that documented the wrong version gate.

Test plan

  • pnpm test — 104 passing locally
  • New spec: padToggle clientVars exposes patchPresent + runtimeEnabled — locks in that the server publishes both flags with the right values for each loadSettings input

🤖 Generated with Claude Code

thm reported this on a fresh Etherpad 3.1.0 deployment:

  [ep_plugin_helpers.padToggle ep_markdown] pad-wide settings
  unavailable — server lacks ep_* passthrough patch
  (Etherpad < 2.7.4). Per-user cookie toggle still works.

Two things wrong with that line:

1. The passthrough patch shipped in Etherpad 3.0.0 (PR #7698), not
   2.7.4. The "< 2.7.4" reference was wrong copy from when the
   feature was scoped against a possible 2.x backport that never
   landed.

2. `padWideSupported` is `patchPresent && runtimeEnabled`, but the
   warning only mentions one of the two — so on a v3.1.0 container
   where the patch IS present but settings.enablePluginPadOptions is
   still the default `false`, the message points the admin at an
   upgrade they don't need instead of at the settings flag they do.

Server: expose `patchPresent` and `runtimeEnabled` as separate
clientVars flags alongside the existing `padWideSupported`. No
protocol break — older clients only read padWideSupported and keep
working.

Client (pad-toggle.js, pad-select.js): use the granular flags to
pick the actual cause —

  - patch missing → "Etherpad < 3.0.0"
  - flag false   → "settings.enablePluginPadOptions is false — set
                    to true in settings.json"

Falls back to a generic line if the server is too old to emit the
new fields, so the warning still says something sensible against
mixed-version deployments.

Also fix the "2.7.4" reference in README and the source-level
comments that documented the wrong version gate.

Test plan
- 104 tests passing locally (mocha)
- New spec: padToggle clientVars exposes patchPresent +
  runtimeEnabled with the right values for each loadSettings input

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@qodo-code-review
Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@JohnMcLear JohnMcLear merged commit b99a365 into main May 17, 2026
4 checks passed
JohnMcLear added a commit to ether/ep_align that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss bug fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_cursortrace that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss bug fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_font_family that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and the prior range
doesn't resolve to it under caret semver for pre-1.0. Without this bump,
fresh installs of this plugin pull a stale ep_plugin_helpers and miss
fixes shipped in 0.6.x — including ether/ep_plugin_helpers#19 which
corrected the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_markdown that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_mediawiki that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_set_title_on_pad that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_hljs that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and the prior range
doesn't resolve to it under caret semver for pre-1.0. Without this bump,
fresh installs of this plugin pull a stale ep_plugin_helpers and miss
fixes shipped in 0.6.x — including ether/ep_plugin_helpers#19 which
corrected the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_subscript_and_superscript that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_table_of_contents that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JohnMcLear added a commit to ether/ep_comments_page that referenced this pull request May 17, 2026
* chore(deps): bump ep_plugin_helpers to ^0.6.0

0.6.x is the current line on npm (latest = 0.6.2) and ^0.5.x doesn't
resolve to it under caret semver for pre-1.0. Without this bump, fresh
installs of this plugin pull ep_plugin_helpers@0.5.3 and miss bug fixes
shipped in 0.6.x — including ether/ep_plugin_helpers#19 which corrected
the misleading "Etherpad < 2.7.4" degradation warning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(deps): regenerate pnpm-lock.yaml for ep_plugin_helpers bump

Required so the release workflow's `pnpm i --frozen-lockfile` step
doesn't fail with ERR_PNPM_OUTDATED_LOCKFILE after merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant