Skip to content

observers.js leaks delegated click/keydown handlers on the shared #app container #405

Closed

Description

@dborup

Found during the review of #402 (merged), and pre-existing on master: public/observers.js (~182) binds its delegated click and keydown handlers to the shared #app container and never removes them.

After visiting the Observers page, those handlers keep running on every later page. This is the same leak class #402 fixed in compare.js, where it broke the observers slide-over (Kpa-clawbot#1056 AC#4).

Required work

  • Bind the handlers to the observers page's own container, or remove them in the page's destroy().
  • Grep public/*.js for other app.addEventListener( / document.addEventListener( calls in page modules without a matching removal in destroy(), and fix them the same way.
  • Add a regression test: navigate observers → another page, then assert that no observers handler fires.

Activity

  1. added a commit that references this issue on Oct 13, 2026
  2. dborup commented on Oct 13, 2026

    @dborup
    OwnerAuthor

    Fixed by #419 (merged as 20513d48f69fc3c162ce1a7582882b6e211b1966).

  3. dborup commented on Oct 13, 2026

    @dborup
    OwnerAuthor

    The observers.js part is fixed by #419. The remaining 15 same-class sites (compare, channels, live) are tracked in 428.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions