feat: ship skill and MCP workflows with signed updater for v0.0.7
This commit is contained in:
1 parent
1b52df0603
commit
a01085c656
136 files changed
+18646
-217
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# YCode Update Manifest Contract v1
|
||||
|
||||
The release tooling and updater backend use this exact document:
|
||||
|
||||
```json
|
||||
{
|
||||
"payload": {
|
||||
"schemaVersion": 1,
|
||||
"version": "0.0.2",
|
||||
"publishedAt": "2026-10-20T10:00:00.000Z",
|
||||
"notes": {
|
||||
"zh": "更新说明",
|
||||
"en": "Release notes"
|
||||
},
|
||||
"platforms": {
|
||||
"windows-x64": {
|
||||
"url": "http://192.168.10.6/ycode/releases/versions/0.0.2/YCode-0.0.2-Setup-x64.exe",
|
||||
"size": 123456789,
|
||||
"sha256": "64-lowercase-hex-characters"
|
||||
}
|
||||
}
|
||||
},
|
||||
"signature": "base64-encoded-64-byte-ed25519-signature"
|
||||
}
|
||||
```
|
||||
|
||||
Rules:
|
||||
|
||||
- The Ed25519 signature covers exactly `Buffer.from(JSON.stringify(payload), "utf8")`.
|
||||
- Payload property insertion order is part of the contract and must be preserved.
|
||||
- `publishedAt` is canonical UTC ISO-8601 with millisecond precision.
|
||||
- `version` is strict SemVer. Build metadata does not establish newer precedence.
|
||||
- `sha256` is lowercase hexadecimal; `size` is the exact installer byte length.
|
||||
- The artifact URL is absolute HTTP(S), has no query, fragment or credentials, and is exactly
|
||||
`<base>/versions/<version>/<safe-installer-name>.exe`.
|
||||
- The client and release tooling require the artifact origin to match the manifest origin.
|
||||
- `latest.json` is served at `<base>/latest.json`; artifacts are immutable version directories.
|
||||
- `resources/updates/public-key.pem` is the SPKI PEM trust anchor. Private keys never enter the
|
||||
repository, the server, build artifacts or logs.
|
||||
|
||||
Default base URL: `http://192.168.10.6/ycode/releases/`
|
||||
@@ -0,0 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEAxUeHhwDpkjDtIDI9EliFgdmMjahN5Mgq/2cX2+gLkKY=
|
||||
-----END PUBLIC KEY-----
|
||||
Reference in new issue
Block a user