changedInput schema / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "description": "action=\"add\": Leave a comment on any node — the human↔agent steering channel; the next agent that reads the node sees it flagged unseen. Reply by passing parent_comment_id (replies are one level deep). Pass `anchor` to attach to a quoted span (inline comment); omit for node-level. Commenting watches the node, so future comments on it show as unread to you.",
- "properties": {
- "action": {
- "const": "add",
- "type": "string"
- },
- "anchor": {
- "additionalProperties": false,
- "description": "(add only) Attach the comment to a quoted span of the node's body (per-line / inline comment). Omit for a node-level comment. Anchored to TEXT, never line numbers: on a later edit the quote is relocated; if it vanishes the comment goes 'outdated' (never deleted).",
- "properties": {
- "node_version": {
- "description": "The node `version` the quote was taken from, as returned when you fetched the node.",
- "exclusiveMinimum": 0,
- "type": "integer"
- },
- "offset": {
- "description": "Rough char offset to disambiguate a repeated quote.",
- "minimum": 0,
- "type": "integer"
- },
- "quote": {
- "description": "The exact quoted substring to attach the comment to.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "node_version",
- "quote"
- ],
- "type": "object"
- },
- "body": {
- "description": "REQUIRED for add/update — comment text (markdown).",
- "minLength": 1,
- "type": "string"
- },
- "node_id": {
- "description": "REQUIRED for add — the node to comment on (any node type).",
- "type": "string"
- },
- "parent_comment_id": {
- "description": "(add only) Reply target — the comment_id of a TOP-LEVEL comment. Replies are one level deep; replying to a reply is rejected.",
- "format": "uuid",
- "type": "string"
- },
- "privacy_bypass": {
- "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
- "type": "boolean"
- },
- "privacy_false_positive": {
- "description": "With privacy_bypass: true reports the privacy flag as wrong.",
- "type": "boolean"
- },
- "privacy_judgement_id": {
- "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
- "type": "string"
- },
- "privacy_note": {
- "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
- "maxLength": 500,
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "node_id",
- "body"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"update\": Edit the body of a comment you authored. AUTHOR-ONLY. Sets the 'edited' marker and does not re-flag the comment unread for others.",
- "properties": {
- "action": {
- "const": "update",
- "type": "string"
- },
- "body": {
- "description": "New comment text.",
- "minLength": 1,
- "type": "string"
- },
- "comment_id": {
- "description": "REQUIRED for update/resolve/delete — the comment_id to act on.",
- "format": "uuid",
- "type": "string"
- },
- "privacy_bypass": {
- "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
- "type": "boolean"
- },
- "privacy_false_positive": {
- "description": "With privacy_bypass: true reports the privacy flag as wrong.",
- "type": "boolean"
- },
- "privacy_judgement_id": {
- "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
- "type": "string"
- },
- "privacy_note": {
- "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
- "maxLength": 500,
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "comment_id",
- "body"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"resolve\": Resolve (or reopen) a comment thread. ANY project member may do this, not just the author. Resolve a steering comment once addressed so it stops nagging the next agent — resolved threads drop out of the [N comments, M unread] marker. Applies to the whole thread (resolving a reply resolves its parent).",
- "properties": {
- "action": {
- "const": "resolve",
- "type": "string"
- },
- "comment_id": {
- "description": "A comment_id in the thread (top-level or a reply).",
- "format": "uuid",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "resolved": {
- "description": "REQUIRED for resolve — true to resolve the thread, false to reopen it.",
- "type": "boolean"
- }
- },
- "required": [
- "action",
- "project_slug",
- "comment_id",
- "resolved"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"delete\": Soft-delete a comment you authored — the row stays as a tombstone and replies remain intact (never orphaned). AUTHOR-ONLY; there is no hard delete.",
- "properties": {
- "action": {
- "const": "delete",
- "type": "string"
- },
- "comment_id": {
- "description": "The comment_id to delete.",
- "format": "uuid",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "comment_id"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "description": "comment action \"add\".",
+ "properties": {
+ "action": {
+ "const": "add",
+ "description": "Run the add action.",
+ "type": "string"
+ },
+ "anchor": {
+ "additionalProperties": false,
+ "description": "(add only) Attach the comment to a quoted span of the node's body (per-line / inline comment). Omit for a node-level comment. Anchored to TEXT, never line numbers: on a later edit the quote is relocated; if it vanishes the comment goes 'outdated' (never deleted).",
+ "properties": {
+ "node_version": {
+ "description": "The node `version` the quote was taken from, as returned when you fetched the node.",
+ "exclusiveMinimum": 0,
+ "type": "integer"
+ },
+ "offset": {
+ "description": "Rough char offset to disambiguate a repeated quote.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "quote": {
+ "description": "The exact quoted substring to attach the comment to.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "node_version",
+ "quote"
+ ],
+ "type": "object"
+ },
+ "body": {
+ "description": "REQUIRED for add/update — comment text (markdown).",
+ "minLength": 1,
+ "type": "string"
+ },
+ "node_id": {
+ "description": "REQUIRED for add — the node to comment on (any node type).",
+ "type": "string"
+ },
+ "parent_comment_id": {
+ "description": "(add only) Reply target — the comment_id of a TOP-LEVEL comment. Replies are one level deep; replying to a reply is rejected.",
+ "format": "uuid",
+ "type": "string"
+ },
+ "privacy_bypass": {
+ "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
+ "type": "boolean"
+ },
+ "privacy_false_positive": {
+ "description": "With privacy_bypass: true reports the privacy flag as wrong.",
+ "type": "boolean"
+ },
+ "privacy_judgement_id": {
+ "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
+ "type": "string"
+ },
+ "privacy_note": {
+ "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "node_id",
+ "body"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "comment action \"update\".",
+ "properties": {
+ "action": {
+ "const": "update",
+ "description": "Run the update action.",
+ "type": "string"
+ },
+ "body": {
+ "description": "New comment text.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "comment_id": {
+ "description": "REQUIRED for update/resolve/delete — the comment_id to act on.",
+ "format": "uuid",
+ "type": "string"
+ },
+ "privacy_bypass": {
+ "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
+ "type": "boolean"
+ },
+ "privacy_false_positive": {
+ "description": "With privacy_bypass: true reports the privacy flag as wrong.",
+ "type": "boolean"
+ },
+ "privacy_judgement_id": {
+ "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
+ "type": "string"
+ },
+ "privacy_note": {
+ "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "comment_id",
+ "body"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "comment action \"resolve\".",
+ "properties": {
+ "action": {
+ "const": "resolve",
+ "description": "Run the resolve action.",
+ "type": "string"
+ },
+ "comment_id": {
+ "description": "A comment_id in the thread (top-level or a reply).",
+ "format": "uuid",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "resolved": {
+ "description": "REQUIRED for resolve — true to resolve the thread, false to reopen it.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "comment_id",
+ "resolved"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "comment action \"delete\".",
+ "properties": {
+ "action": {
+ "const": "delete",
+ "description": "Run the delete action.",
+ "type": "string"
+ },
+ "comment_id": {
+ "description": "The comment_id to delete.",
+ "format": "uuid",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "comment_id"
+ ],
+ "type": "object"
+ }
+]