Skip to content

v4.8.0 — the plugin has a version, and a comment stays on its own element - #1

Merged
DeyangChan merged 1 commit into
mainfrom
release/v4.8.0
Aug 4, 2026
Merged

v4.8.0 — the plugin has a version, and a comment stays on its own element#1
DeyangChan merged 1 commit into
mainfrom
release/v4.8.0

Conversation

@DeyangChan

Copy link
Copy Markdown
Contributor

4.8.0 — 2026-08-04

  • The plugin declares a version. Until now it shipped without one, so every
    commit to main counted as a release. Your host now compares version numbers
    and updates when this number changes. A copy installed before this release has
    no version on record and keeps comparing commits until it updates once.
  • A comment lands on the element it was left on, not a lookalike. The
    selector recorded for a comment was cut off after eight steps, and a short
    path can first-match a different element elsewhere on the page, which is the
    one querySelector returns. The recorded selector is now the shortest one
    that matches a single element, and a path still ambiguous at full length is
    rooted at body so the chain is exact.
  • Reanchoring prefers the element carrying the comment's words. When a
    selector still parses but its match shares nothing with what was captured, an
    element scoring on text or identity is now taken ahead of it.
  • Both host manifests carry the full set of distribution metadata: version,
    display name, homepage, repository, license, and keywords covering what
    someone would search for. Descriptions across all three manifests are drawn
    from the README.
  • CI runs the tests on Node 18 and 22, checks the stamped shell for drift, and
    validates both manifests with the same tool the community-marketplace review
    pipeline runs. A release workflow rejects a tag that disagrees with the
    manifest version.
  • Issue and pull request templates, a changelog, and a release procedure in
    CONTRIBUTING.md.

Release PR. Merging this is step 7 of the release procedure in CLAUDE.md; the tag and GitHub release follow on main.

🤖 Generated with Claude Code

…ment

Until now plugin.json declared no version, which is how a host is told that
every commit is a release. That suited a tool being rewritten weekly and suits
a published plugin badly: there is no number to put in a bug report, nothing
for a marketplace listing to show, and no way to ship a fix without shipping
whatever else landed that afternoon. Both host manifests now declare 4.8.0, and
a host updates when that number changes. A copy installed before this release
has no version on record, so update-check falls back to comparing commits for
it, exactly as before, until it updates once.

The manifests were also thinner than what they describe. They now carry a
display name, homepage, repository, license and keywords chosen for what
someone would type to find this, and the Codex manifest carries the same set.
All three descriptions are drawn from the README rather than each inventing
their own wording.

A comment could land on a lookalike. selectorFor cut the path off after eight
steps, and a short suffix can first-match a different element elsewhere in the
document — querySelector returns that one. It now records the shortest suffix
matching a single element, and a path ambiguous even at full length is rooted
at body so the child chain is exact. Reanchoring had the same shape of problem
from the other side: a selector that still parsed was preferred over the
element carrying the comment's own words, so a stale path beat real evidence.
An element scoring on text or identity is now taken first.

CI runs the three suites on Node 18 and 22, checks the stamped shell for drift,
validates both manifests with the tool the community-marketplace review
pipeline runs, and fails when the two host manifests disagree about the
version. A release workflow rejects a tag that disagrees with the manifest,
which is the failure an explicit version makes possible.

The rest is what a stranger reads before installing: issue and pull request
templates, a changelog back to 1.0.0, a release procedure in CONTRIBUTING.md,
and the distribution rules in CLAUDE.md so the three manifests stay one
identity.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@DeyangChan
DeyangChan merged commit ef49c6a into main Aug 4, 2026
4 checks passed
@DeyangChan
DeyangChan deleted the release/v4.8.0 branch August 4, 2026 15:33
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