addedOutput schema / properties / $schema
Added value: +{
+ "description": "Exact dated canonical manifest schema URL. Omitted for legacy apps.",
+ "enum": [
+ "https://charm.ing/schema/app-manifest/2026-07-31.json",
+ "https://charm.ing/schema/app-manifest/2026-09-05.json"
+ ],
+ "type": "string"
+}
changedOutput schema / properties / advisories / description
Previous value: -"Structured advisories attached when the tool detected a non-fatal authoring issue (e.g. legacy bridge usage). Each advisory.summary is also appended to the text content for the LLM path."New value: +"Structured non-fatal advisories, including authoring issues and unread staff feedback responses. Each advisory.summary is also appended to the text content for the LLM path."
changedOutput schema / properties / appVersion / description
Previous value: -"Author-declared version string for the app (whatever the manifest source set as `manifest.version`, e.g. \"0.0.1\"). Distinct from the concurrency `version` int and from `manifestVersion` (Charming contract date)."New value: +"Canonical apps return decimal String(revision). Legacy apps return their stored effective SemVer."
changedOutput schema / properties / capabilities / properties / imports / description
Previous value: -"WIT-style capability ids the app requests (e.g. \"buildy:storage/kv@1.0\"). Empty if the app declares none."New value: +"WIT-style capability ids the app requests (e.g. \"charming:storage/kv@1.0\"). Empty if the app declares none."
removedOutput schema / properties / description / anyOf
Removed value: -[
- {
- "type": "string"
- },
- {
- "type": "null"
- }
-]
addedOutput schema / properties / description / type
Added value: +[
+ "string",
+ "null"
+]
removedOutput schema / properties / expiresAt / anyOf
Removed value: -[
- {
- "type": "string"
- },
- {
- "type": "null"
- }
-]
addedOutput schema / properties / expiresAt / type
Added value: +[
+ "string",
+ "null"
+]
changedOutput schema / properties / manifestVersion / description
Previous value: -"Charming manifest contract date (`YYYY-MM-DD`) the app is pinned to. The runtime branches on this value to pick contract-specific behaviour."New value: +"Deprecated public contract marker. Canonical apps return null; legacy apps return their stored contract date."
changedOutput schema / properties / manifestVersion / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
addedOutput schema / properties / revision
Added value: +{
+ "description": "Server-owned app source revision. Historical null counters read as 0; new apps start at 1; each successful source write advances it once. Pass this value through `expected_revision` when guarding update_app.",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+}
removedOutput schema / properties / source / properties / styles / anyOf
Removed value: -[
- {
- "type": "string"
- },
- {
- "type": "null"
- }
-]
addedOutput schema / properties / source / properties / styles / type
Added value: +[
+ "string",
+ "null"
+]
removedOutput schema / properties / source / properties / ui / anyOf
Removed value: -[
- {
- "type": "string"
- },
- {
- "type": "null"
- }
-]
addedOutput schema / properties / source / properties / ui / type
Added value: +[
+ "string",
+ "null"
+]
removedOutput schema / properties / version
Removed value: -{
- "description": "Monotonic int version of the app. 0 on truly-legacy rows that predate versioning (still editable — pass `expected_version: 0`); otherwise a positive int bumped on every successful update_app/PUT. Pass back as `expected_version` on edits-aware update_app and as `If-Match: \"v<N>\"` on PATCH /app/:id/source.",
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
-}
changedOutput schema / required
Previous value: -[
- "ok",
- "id",
- "url",
- "manifestId",
- "sourceManifestId",
- "displayName",
- "description",
- "version",
- "appVersion",
- "manifestVersion",
- "capabilities",
- "claimed",
- "expiresAt",
- "source"
-]New value: +[
+ "ok",
+ "id",
+ "url",
+ "manifestId",
+ "sourceManifestId",
+ "displayName",
+ "description",
+ "revision",
+ "appVersion",
+ "manifestVersion",
+ "capabilities",
+ "claimed",
+ "expiresAt",
+ "source"
+]