Skip to content

Latest commit

 

History

History
58 lines (38 loc) · 1.83 KB

File metadata and controls

58 lines (38 loc) · 1.83 KB

Agent Guide — ep_post_data

Post data into Etherpad using Curl.

Tech stack

  • Etherpad plugin framework (hooks declared in ep.json)

Project structure

ep_post_data/
├── AGENTS.md
├── CONTRIBUTING.md
├── LICENSE.md
├── ep.json
├── index.js
├── package.json
├── static/
│   ├── tests/

Helpers used

None — ep_plugin_helpers is not a dependency. Adoption is part of the helpers-adoption sweep (Phase 4).

Helpers NOT used

To be audited in the helpers-adoption sweep (Phase 4).

Running tests locally

ep_post_data runs inside Etherpad's test harness. From an etherpad checkout that has installed this plugin via pnpm run plugins i --path ../ep_post_data:

# Backend (Mocha) — harness boots its own server
pnpm --filter ep_etherpad-lite run test

# Playwright — needs `pnpm run dev` in a second terminal
pnpm --filter ep_etherpad-lite run test-ui

Standing rules for agent edits

  • PRs target main. Linear commits, no merge commits.
  • Every bug fix includes a regression test in the same commit.
  • All user-facing strings in locales/. No hardcoded English in templates.
  • No hardcoded aria-label on icon-only controls — etherpad's html10n auto-populates aria-label from the localized string when (a) the element has a data-l10n-id and (b) no author-supplied aria-label is present. Adding a hardcoded English aria-label blocks that and leaves it untranslated. (See etherpad-lite/src/static/js/vendors/html10n.ts:665-678.)
  • No nested interactive elements (no <button> inside <a>).
  • LLM/Agent contributions are explicitly welcomed by maintainers.

Quick reference: hooks declared in ep.json

  • Server: expressCreateServer

When adding a hook, register it in both ep.json and the matching exports.<hook> = ... in the JS file.