mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-02 11:45:20 +02:00
1829f60596
Four schemas for the OpenClaw dispatch protocol: - dispatch.schema.json (task dispatch with target_agent, source_signature) - completion.schema.json (session completion report with retry_count) - handoff.schema.json (cross-runtime context transfer with resume_prompt) - activity-entry.schema.json (weekly activity index entries) COMPATIBILITY.md defines breaking vs non-breaking changes so future contributors don't guess under pressure. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.4 KiB
1.4 KiB
Schema Compatibility
gstack uses JSON Schema definitions in schemas/ for cross-runtime file formats
(dispatch, completion, handoff, activity). Both the gstack dispatch daemon and
OpenClaw bridge skill validate against these schemas.
Version policy
Schema version is tied to gstack's VERSION file.
Breaking change (major version bump required)
A change is breaking if it:
- Removes a required field
- Changes a field's type (e.g., string to integer)
- Changes the semantics of an existing field (e.g.,
durationfrom milliseconds to seconds) - Narrows an enum (removes a valid value)
Non-breaking change (minor version bump)
A change is non-breaking if it:
- Adds a new optional field
- Widens an enum (adds a new valid value)
- Relaxes a constraint (e.g., increases maxLength)
- Adds a new schema file
Rules
- Additive by default. New fields are always optional. Existing readers ignore unknown fields.
- Breaking changes require a major version bump and must be called out in CHANGELOG.
- Both sides validate. The gstack daemon validates incoming dispatch files. The OpenClaw bridge validates completion reports. If validation fails, the file is rejected with an error status, not silently ignored.
- Schema version in file. Future versions may add a
schema_versionfield to each file for explicit version negotiation. For now, schema version is implied by gstack VERSION.