Bladeren bron

Name the branch in plugin.yaml instead of a release nobody cuts

The manifest said 1.0.1 while two tools had been added without a bump, so
the field read as a release cadence that nothing follows. This plugin
installs from git and publishes no feed, so `main` states what it tracks
and does not have to be remembered.

Nothing reads it in anger: the manifest parser takes it as an optional
string, and a git-class install compares SHA to SHA via ls-remote rather
than versions. The only reader that parses it is the release-feed branch,
where a non-PEP-440 value returns "unknown" instead of a false update —
a cost that lands only if a feed appears, which is a decision to make then
and not one to inherit now. AGENTS.md records that.
Paul Klumpp 1 week geleden
bovenliggende
commit
04ff786746
2 gewijzigde bestanden met toevoegingen van 16 en 1 verwijderingen
  1. 15 0
      AGENTS.md
  2. 1 1
      plugin.yaml

+ 15 - 0
AGENTS.md

@@ -595,6 +595,21 @@ configuration docs must be able to predict what happens when they set nothing.
 Secrets (`CHATTO_TOKEN`, `CHATTO_PASSWORD`) belong in `~/.hermes/.env`, never
 in `config.yaml` — docs and setup wizard rely on that split.
 
+### `plugin.yaml`'s `version:` names a branch, not a release
+
+**This plugin ships no releases, so the field says `main` and is not bumped per
+feature.** The alternative — a `1.0.1` that quietly goes stale, as it did while
+two tools were added without a bump — promises a release cadence nobody runs.
+
+Hermes does not validate the field (`plugins_manifest.py` reads it as a plain
+optional string) and, for a git-class install, never compares it: the update
+check resolves SHA against SHA via `ls-remote` (`plugins_updates.py:222-234`).
+The one reader that parses it is the release-feed branch, where a non-PEP-440
+value yields `update_available = None` — "unknown", not a false update
+(`_version_is_newer`). So the cost lands only if a feed ever appears, and by then
+it is a decision to make, not an accident to inherit. A day that happens, the
+feed's `version:` and this paragraph are the two things that move together.
+
 A raw value from **anywhere** is parsed by the field's kind before anything
 reads it. `.env` lines are strings whatever the field means: a list field
 holding `"a,b"` turns `room_id in require_mention + optional_mention` into a

+ 1 - 1
plugin.yaml

@@ -1,7 +1,7 @@
 name: chatto-platform
 label: Chatto
 kind: platform
-version: 1.0.1
+version: main
 description: >
   Chatto gateway adapter for Hermes Agent.
   Connects to a Chatto server (cloud-hosted or self-hosted team chat) and relays messages