From cf8bbf3018d37b71f28ed7a2a9c680e47b7b943a Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 10 May 2026 16:50:02 +0200 Subject: [PATCH] fix(documents): defense-in-depth port_id scope + invisible chevron a11y - renameFolder/moveFolder UPDATE and deleteFolderSoftRescue DELETE now carry an explicit port_id predicate so the write is bounded to the same tenancy the pre-fetch verified, defending against future refactors that drop or reorder the ownership check. - FolderRow's collapsed-children chevron is `invisible` for layout purposes, but it was still in the tab order with a misleading Expand/Collapse aria-label. Add aria-hidden + tabIndex=-1 when no children so keyboard users skip it. Surfaced by post-implementation review (subagent code-review pass). Co-Authored-By: Claude Opus 4.7 (1M context) --- src/components/documents/folder-tree-sidebar.tsx | 2 ++ src/lib/services/document-folders.service.ts | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/documents/folder-tree-sidebar.tsx b/src/components/documents/folder-tree-sidebar.tsx index dff1d558..663cb33e 100644 --- a/src/components/documents/folder-tree-sidebar.tsx +++ b/src/components/documents/folder-tree-sidebar.tsx @@ -122,6 +122,8 @@ function FolderRow({