addedInput schema / additionalProperties
Added value: +false
removedInput schema / properties / action
Removed value: -{
- "enum": [
- "add_purpose",
- "set_category",
- "add_tag"
- ],
- "type": "string"
-}
addedInput schema / properties / change
Added value: +{
+ "additionalProperties": false,
+ "description": "Exactly one correction. The selected type determines which matching value field is required.",
+ "oneOf": [
+ {
+ "properties": {
+ "type": {
+ "const": "category"
+ }
+ },
+ "required": [
+ "category"
+ ]
+ },
+ {
+ "properties": {
+ "type": {
+ "const": "businessPurpose"
+ }
+ },
+ "required": [
+ "businessPurpose"
+ ]
+ },
+ {
+ "properties": {
+ "type": {
+ "const": "attendees"
+ }
+ },
+ "required": [
+ "attendees"
+ ]
+ }
+ ],
+ "properties": {
+ "attendeeMode": {
+ "description": "Use add unless the user explicitly asks to replace existing attendees.",
+ "enum": [
+ "add",
+ "replace"
+ ],
+ "type": "string"
+ },
+ "attendees": {
+ "description": "Attendee names explicitly supplied by the user when type is attendees; never infer names.",
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 25,
+ "minItems": 1,
+ "type": "array"
+ },
+ "businessPurpose": {
+ "description": "User-supplied business purpose to apply when type is businessPurpose.",
+ "type": "string"
+ },
+ "category": {
+ "description": "Configured expense category to apply when type is category.",
+ "type": "string"
+ },
+ "type": {
+ "description": "The one correction kind to apply to every exact selected expense.",
+ "enum": [
+ "category",
+ "businessPurpose",
+ "attendees"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+}
addedInput schema / properties / confirm
Added value: +{
+ "description": "Omit/false for preview; true only after explicit approval.",
+ "type": "boolean"
+}
addedInput schema / properties / operationId
Added value: +{
+ "description": "Stable idempotency key generated once for preview and reused unchanged.",
+ "pattern": "^expense-bulk:[a-zA-Z0-9_-]{8,100}$",
+ "type": "string"
+}
removedInput schema / properties / reportId
Removed value: -{
- "type": "string"
-}
addedInput schema / properties / selection
Added value: +{
+ "additionalProperties": false,
+ "description": "Exact expenses returned by search_expenses and approved for this bounded correction.",
+ "properties": {
+ "items": {
+ "description": "One exact receipt identity per selected expense; never broaden this list after preview.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "expected": {
+ "additionalProperties": false,
+ "description": "Optional optimistic-concurrency values copied from the search result.",
+ "properties": {
+ "category": {
+ "description": "Current category observed before preview for conflict detection.",
+ "type": "string"
+ },
+ "notes": {
+ "description": "Current structured Notes value observed before preview for conflict detection.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "receiptId": {
+ "description": "Exact full expenseId/Column-Q receipt identity from search_expenses.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "receiptId"
+ ],
+ "type": "object"
+ },
+ "maxItems": 100,
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "items"
+ ],
+ "type": "object"
+}
addedInput schema / properties / status
Added value: +{
+ "description": "Read operation status using operationId.",
+ "type": "boolean"
+}
addedInput schema / properties / undo
Added value: +{
+ "description": "Undo a completed correction within its Undo window.",
+ "type": "boolean"
+}
removedInput schema / properties / value
Removed value: -{
- "description": "The value to apply",
- "type": "string"
-}
changedInput schema / required
Previous value: -[
- "reportId",
- "action",
- "value"
-]New value: +[
+ "operationId"
+]
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": true,
+ "properties": {
+ "change": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "confirmation": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "finalAnswer": {
+ "type": "string"
+ },
+ "manifest": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
+ },
+ "operationId": {
+ "type": "string"
+ },
+ "preview": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "requiresConfirmation": {
+ "type": "boolean"
+ },
+ "responseGuidance": {
+ "type": "string"
+ },
+ "reviewExpensesUrl": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "success": {
+ "type": "boolean"
+ },
+ "undo": {
+ "additionalProperties": true,
+ "type": "object"
+ }
+ },
+ "required": [
+ "success",
+ "status"
+ ],
+ "type": "object"
+}