Skip to content

Make malformed extensions fatal in Agent Plugins 1.1 - #82

Open
jonathanhefner wants to merge 1 commit into
agentplugins:mainfrom
jonathanhefner:agent/simplify-manifest-validation
Open

Make malformed extensions fatal in Agent Plugins 1.1#82
jonathanhefner wants to merge 1 commit into
agentplugins:mainfrom
jonathanhefner:agent/simplify-manifest-validation

Conversation

@jonathanhefner

Copy link
Copy Markdown
Member

Summary

Agent Plugins 1.0 permits clients to continue loading when extensions is not an object, even though the manifest does not conform to the schema. This PR removes that exception from Agent Plugins 1.1, leaving unknown top-level fields as the sole non-fatal schema violation. The resulting loading rule distinguishes unrecognized fields from malformed recognized fields.

Rationale

Unknown top-level fields remain non-fatal because they may be defined by a later Agent Plugins version. Reporting and ignoring them supports forward compatibility without assigning semantics to data the client does not understand. A non-object extensions value has no equivalent forward-compatibility role: extensions is a recognized portable field, and its object shape establishes the boundary around client-specific namespaces. Treating it like every other recognized-field violation gives 1.1 a single exception with a single purpose.

The schema remains closed rather than accepting unknown top-level fields, preserving typo detection and schema-driven completion. A separate permissive loading schema would duplicate the manifest structure and could drift from the authoring schema. Instead, the schema $comment explains how clients apply the unknown-field loading exception while validating against the strict schema.

Compatibility

The published 1.0 contract is unchanged. A client that supports both versions selects the appropriate loading behavior from the declared $schema value. This affects only schema-invalid 1.1 manifests; conforming plugins are unaffected.


Closes #77.

Treat a non-object `extensions` field like every other recognized-field
schema violation. Keep unknown top-level fields as the sole non-fatal
exception so clients can support forward compatibility without weakening
strict authoring validation.

Leave Agent Plugins 1.0 behavior unchanged, document the loading
exception in the strict schema, and align the extension namespace,
conformance, and failure wording.
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.

plugin.schema.json rejects two manifests that §5.2 and §8.1 require clients to accept

1 participant