Skip to content

chore(capabilities): pin pluginApi compat baseline, fail CI on host-compat drift#257

Open
Tet-9 wants to merge 1 commit into
vouchdev:testfrom
Tet-9:chore/237-host-compat-baseline
Open

chore(capabilities): pin pluginApi compat baseline, fail CI on host-compat drift#257
Tet-9 wants to merge 1 commit into
vouchdev:testfrom
Tet-9:chore/237-host-compat-baseline

Conversation

@Tet-9

@Tet-9 Tet-9 commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Closes #237

What

kb.capabilities now reports a host_compat block mirroring the openclaw.compat constraints declared in openclaw.plugin.json, so non-OpenClaw clients can detect compat without parsing the manifest.

{
"host_compat": {
"openclaw": {
"pluginApi": ">=2026.4.0"
}
}
}

Changes

  • models.py: added host_compat: dict[str, Any] field to Capabilities
  • capabilities.py: added _load_host_compat() which reads openclaw.compat from openclaw.plugin.json and populates host_compat in capabilities(). Degrades to {} (no raise) if the manifest is missing or malformed.
  • tests/test_capabilities.py: four new tests
    • test_capabilities_host_compat_matches_openclaw_manifest - fails CI if pluginApi drifts between openclaw.plugin.json and kb.capabilities.host_compat (the acceptance criterion from chore(release): pin pluginApi compat baseline in kb.capabilities #237)
    • test_capabilities_host_compat_present_and_nonempty - guards against both sides silently agreeing on "missing"
    • test_load_host_compat_returns_empty_on_missing_manifest
    • test_load_host_compat_returns_empty_on_malformed_manifest

Out of scope (per issue)

Multi-host compat matrix beyond OpenClaw - host_compat is structured as {: {...}} so a future host (Cursor, Codex) can register its own compat range under the same block without a schema change.

Checklist

  • make check passes (ruff + mypy + pytest)
  • CHANGELOG.md updated under [Unreleased]
  • Targets test branch
  • No new dependencies

@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: babb3835-2b46-4e1a-b2a0-2bf2417caa54

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@Tet-9 Tet-9 changed the base branch from main to test June 21, 2026 21:24
@Tet-9 Tet-9 force-pushed the chore/237-host-compat-baseline branch 2 times, most recently from e733016 to 2bcb699 Compare June 21, 2026 21:48
@Tet-9

Tet-9 commented Jun 21, 2026

Copy link
Copy Markdown
Contributor Author

@plind-junior , if you could review this

@Tet-9 Tet-9 force-pushed the chore/237-host-compat-baseline branch from 2bcb699 to d416e65 Compare June 24, 2026 10:02
@Tet-9

Tet-9 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

@plind-junior , could you kindly check this out now

@Tet-9

Tet-9 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

@plind-junior , guess the whole requirements has been made on it.....now it is finished

@Tet-9

Tet-9 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

@plind-junior
??

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.

chore(release): pin pluginApi compat baseline in kb.capabilities

1 participant