From 16daa01647491a470c0e03daddc14b4466f95d91 Mon Sep 17 00:00:00 2001 From: Lars Nolden Date: Mon, 14 Sep 2026 12:31:03 +0200 Subject: [PATCH] Document server-side name cap and hidden-rune rejection --- OPERATIONS.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/OPERATIONS.txt b/OPERATIONS.txt index 36fb02c..09240a7 100644 --- a/OPERATIONS.txt +++ b/OPERATIONS.txt @@ -172,7 +172,12 @@ response records high, medium or low confidence. Imports never auto-apply a low-confidence category: the row keeps the kind-specific unclassified category with merchant and confidence recorded. Analyse previews show the low-confidence suggestion unselected for review. Transactions exposes a -Needs review filter for low-confidence or fallback rows. +Needs review filter for low-confidence or fallback rows. A model-proposed +merchant name is dropped (the row keeps its validated category and tags) +when it is identifier-shaped, longer than 100 characters, or contains +control or format code points such as bidirectional overrides and +zero-width characters, which could visually spoof the review UI; proposed +taxonomy names are rejected under the same hidden-rune rule. Categories and tags have editable hints. Categories -> Propose taxonomy sends up to 300 grouped, redacted transaction samples, then shows proposed @@ -701,7 +706,9 @@ The grammar is version-one strict: extension/split fields are not accepted yet. Future format extensions require an explicit parser migration. Stable category IDs survive renaming and moving; assigned categories must remain -leaves. Built-in roots and fallback leaves are protected. Move assigned records +leaves. Registry display names (category, tag, merchant, instrument) are +capped at 200 characters server-side, matching every UI form. Built-in roots +and fallback leaves are protected. Move assigned records to another leaf before adding children to their former category. Category merges migrate referenced transactions/defaults; tag merges deduplicate links; tag deletion removes all affected links after UI confirmation. Merchant merging