From c68833d209d36b6f65cf72f5c7874641ba9761dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Tejero=20Cantero?= Date: Wed, 16 Sep 2026 20:17:29 +0200 Subject: [PATCH] :books: The audit props cover the mutations, not every command The guide claimed the three keys for every branch operation. The three metadata mutations and the three reads carry the generic RPC event alone, which records who called what and no duration, so the section now says which is which. --- docs/technical-guide/developer/branching.md | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/technical-guide/developer/branching.md b/docs/technical-guide/developer/branching.md index 80d4604b5f..f36c24fa41 100644 --- a/docs/technical-guide/developer/branching.md +++ b/docs/technical-guide/developer/branching.md @@ -591,14 +591,20 @@ The listing is deliberately not gated. It renders the branch panel, so refusing it would take the panel away rather than protect it, and its cost is bounded by the summary cache instead. -Every branch operation attaches `:branch-operation`, `:branch-outcome` and -`:branch-duration-ms` to its own audit event, because the generic RPC event -records who called what and not how long it took, and duration is the number -the first enterprise trial will be asked about. Creation, compare, merge, -update-from-main and materialise attach them through `audited`; a save routed -to a branch's op log attaches them on the `update-file` event, whose props it -replaces. Every outcome carries them, the no-op merge, the idempotent -materialise and both refusal shapes included. +Every mutation on a branch attaches `:branch-operation`, `:branch-outcome` +and `:branch-duration-ms` to its own audit event, because the generic RPC +event records who called what and not how long it took, and duration is the +number the first enterprise trial will be asked about. Creation, compare, +merge, update-from-main and materialise attach them through `audited`; a save +routed to a branch's op log attaches them on the `update-file` event, whose +props it replaces. Every outcome carries them, the no-op merge, the +idempotent materialise and both refusal shapes included. + +Three mutations are the exception: `update-file-branch`, +`archive-file-branch` and `delete-file-branch` are single-row metadata +updates that carry only the generic event. The three reads are the same: +the listing, the branch context and the limits are hot paths, and the +listing's own cost is recorded by the summary cache instead. ## RPC API summary