This guide defines the required steps to roll protocol or auth changes safely across apps/node-agent and apps/cnc.
- Node-agent matrix:
apps/node-agent/docs/compatibility.md - C&C matrix:
apps/cnc/docs/compatibility.md - Protocol contract policy:
docs/PROTOCOL_COMPATIBILITY.md - Protocol external publish workflow:
docs/PROTOCOL_PUBLISH_WORKFLOW.md
- Update protocol/auth code in
packages/protocol,apps/node-agent, and/orapps/cnc. - Bump
@kaonis/woly-protocolversion when schema or type contracts change. - Update both compatibility matrices with the new supported pairing.
- Run local gates:
npm run test -w packages/protocol -- schemas.testnpm run test -w packages/protocol -- contract.cross-reponpm run test -w apps/node-agent -- protocol.contractnpm run test -w apps/cnc -- protocol.contractnpm run test:schema-gate -w apps/cnc
- Merge only after CI protocol and schema gates are green.
The .github/workflows/ci.yml protocol-compatibility job blocks merges unless all of these pass:
- Protocol schema tests (
packages/protocol) - Protocol cross-repo contract tests (
packages/protocol) - Node-agent protocol contract tests
- C&C protocol contract tests
- C&C schema-validation gate (
nodeManagerruntime validation path)
When a protocol change is not backward compatible:
- Bump protocol major version.
- Keep a transition window where C&C accepts both the old and new versions.
- Roll out node-agent upgrades in phases (canary -> staged -> full).
- Remove old-version compatibility only after all active nodes are upgraded.