Skip to content

ADFA-1713: Add Plugin API changelog (YY.WW capability history) - #1589

Merged
hal-eisen-adfa merged 2 commits into
stagefrom
ADFA-1713-plugin-api-changelog
Jul 28, 2026
Merged

ADFA-1713: Add Plugin API changelog (YY.WW capability history)#1589
hal-eisen-adfa merged 2 commits into
stagefrom
ADFA-1713-plugin-api-changelog

Conversation

@hal-eisen-adfa

Copy link
Copy Markdown
Collaborator

What

Adds a Plugin API changelog — a version-mapped history of which YY.WW release first shipped each plugin capability — so a plugin developer can choose a correct plugin.min_ide_version.

Docs only. No code changes.

Why

Plugins declare plugin.min_ide_version in YY.WW form, and 26.28 (ADFA-3588) now enforces it at install. But there was no public record of when each capability appeared, so a developer had no basis for choosing the value. ADFA-1713 was blocked on exactly this document.

Changes

  • docs/PLUGIN_API_CHANGELOG.md (new) — 14 changes across 10 releases, 26.02 (Sep 2025) → 26.30 (Jul 2026). Every change so far is additive. Ends with the one-liner to regenerate it each release.
  • docs/plugin-api.md — corrected the stale "no binary-compat validator" follow-up (the ABI dump + validator landed in 26.28); linked the changelog from Related.
  • docs/PLUGIN_AUTHORING.md — pointed the plugin.min_ide_version manifest field at the changelog.

How it was built (and stays current)

The public surface is a checked-in, validator-enforced ABI dump (plugin-api/api/plugin-api.api) as of 26.28, so each release's additions are a mechanical diff. Pre-26.28 predates the dump and was diff-verified from plugin-api/src commit history. Version mapping:

git tag --list --contains <sha> | grep -E '^[0-9]{2}\.[0-9]{2}$' | sort -V | head -1

Notes for review

  • The [verified] / [reconstructed] markers distinguish entries read from the ABI dump (26.28+) from those diffed out of source history (earlier).
  • The plugin.min_ide_version / plugin.max_ide_version manifest keys have existed since genesis (26.02); ADFA-3588 (26.28) is the separate enforcement + ABI-baseline milestone.
  • Open question (out of scope here): max_ide_version is parsed but not enforced today — worth deciding before developers are told to rely on it.

Refs ADFA-1713.

Plugins declare plugin.min_ide_version in YY.WW form, and 26.28 (ADFA-3588)
now enforces it at install. Developers had no way to know which release first
shipped a given capability. This adds that reference.

- docs/PLUGIN_API_CHANGELOG.md: version-mapped history of plugin API
  capabilities, 26.02 -> 26.30, reconstructed from git history. Symbols read
  from the ABI dump (26.28+) and diff-verified from plugin-api/src for earlier
  releases. Includes the one-liner to regenerate it each release.
- plugin-api.md: correct the stale "no binary-compat validator" follow-up
  (BCV landed in 26.28); link the changelog from Related.
- PLUGIN_AUTHORING.md: point the min_ide_version field at the changelog.

Version mapping: git tag --contains <sha> filtered to ^\d{2}\.\d{2}$, lowest.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough
  • Added a version-mapped Plugin API changelog covering 14 additive capabilities across releases 26.02–26.30.
  • Documented guidance for selecting plugin.min_ide_version and parsing plugin.max_ide_version.
  • Updated plugin authoring documentation to reference the changelog.
  • Documented ABI dumps and Kotlin binary compatibility validation introduced in 26.28.
  • Added verification markers, historical-source caveats, and changelog regeneration instructions.
  • Documentation-only changes; no code modifications.
  • Risk: early capability history was reconstructed from source-history diffs because ABI dumps were unavailable before 26.28.

Walkthrough

Adds a version-mapped Plugin API changelog, documents its use for minimum IDE version selection, and updates compatibility documentation to reflect ABI validation enforced since 26.28.

Changes

Plugin API documentation

Layer / File(s) Summary
Versioned API changelog
docs/PLUGIN_API_CHANGELOG.md
Defines YY.WW version semantics, records historical additive API capabilities, explains caveats, and documents regeneration commands.
Authoring and compatibility references
docs/PLUGIN_AUTHORING.md, docs/plugin-api.md
Links minimum IDE version selection to the changelog and documents checked-in ABI validation for :plugin-api.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Poem

A rabbit hops through versions bright,
Mapping API trails by moonlit light.
“Set your minimum,” the bunny sings,
While ABI checks guard plugin things.
Newest first—what tidy wings!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding a Plugin API changelog with YY.WW capability history.
Description check ✅ Passed The description accurately matches the documentation-only Plugin API changelog and related doc updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ADFA-1713-plugin-api-changelog

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/PLUGIN_API_CHANGELOG.md`:
- Around line 150-164: Update the “Regenerating this doc” guidance to qualify
the ABI dump as the source of truth only for ABI symbols, then add a separate
source-history/audit step covering non-ABI contracts in docs/plugin-api.md,
including manifest keys, permission strings, and package/format requirements.
Ensure the guidance accounts for additions such as plugin.icon_day and
ide.environment.write when determining the appropriate plugin.min_ide_version.
- Around line 13-25: Define one consistent plugin-version contract across both
documentation sites: clarify in docs/PLUGIN_API_CHANGELOG.md lines 13-25 whether
versions are strict ISO YY.WW values or release tags, then align the dated
entries, 26.02 exception, and 99.0.0 example with that contract; update
docs/PLUGIN_AUTHORING.md lines 78-80 to use the same values or explicitly label
1.0.0 examples as legacy loader fallbacks.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7b219d39-a1e6-41db-b383-6d181156ef62

📥 Commits

Reviewing files that changed from the base of the PR and between 44bf899 and 0ba6cee.

📒 Files selected for processing (3)
  • docs/PLUGIN_API_CHANGELOG.md
  • docs/PLUGIN_AUTHORING.md
  • docs/plugin-api.md

Comment thread docs/PLUGIN_API_CHANGELOG.md
Comment thread docs/PLUGIN_API_CHANGELOG.md
@hal-eisen-adfa
hal-eisen-adfa merged commit a8f3740 into stage Jul 28, 2026
4 checks passed
@hal-eisen-adfa
hal-eisen-adfa deleted the ADFA-1713-plugin-api-changelog branch July 28, 2026 20:15
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.

2 participants