You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(tags): officially surface tags_match=exact across UI, docs, clients (#2230)
The `exact` set-equality match mode landed in the API + generated clients
in #2149 but was never exposed in the control plane, documented, or added
to the hand-maintained SDK wrappers. This completes the feature.
Control plane: add `exact` to the TagsMatch type/unions and to the
tags_match dropdowns in think-view, search-debug-view, and both
mental-model trigger forms; add translated labels to all 10 locales.
Docs: document `exact` in the recall tags_match table + tag_groups,
the reflect tags value list, and the observations scope-listing guide;
regenerate the docs skill mirror.
Clients: add `exact` to the hand-maintained Python and TypeScript wrapper
Literals/unions and docstrings (generated clients already had it; Rust is
generated from openapi.json at build time).
Supersedes #2159.
Copy file name to clipboardExpand all lines: hindsight-clients/typescript/src/index.ts
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -318,8 +318,8 @@ export class HindsightClient {
318
318
maxSourceFactsTokens?: number;
319
319
/** Optional list of tags to filter memories by */
320
320
tags?: string[];
321
-
/** How to match tags: 'any' (OR, includes untagged), 'all' (AND, includes untagged), 'any_strict' (OR, excludes untagged), 'all_strict' (AND, excludes untagged). Default: 'any' */
/** Compound tag filter using boolean groups. Groups are AND-ed. Each group is a leaf {tags, match} or compound {and: [...]}, {or: [...]}, {not: ...}. Mutually exclusive with tags/tagsMatch. */
@@ -370,8 +370,8 @@ export class HindsightClient {
370
370
budget?: Budget;
371
371
/** Optional list of tags to filter memories by */
372
372
tags?: string[];
373
-
/** How to match tags: 'any' (OR, includes untagged), 'all' (AND, includes untagged), 'any_strict' (OR, excludes untagged), 'all_strict' (AND, excludes untagged). Default: 'any' */
Copy file name to clipboardExpand all lines: hindsight-control-plane/src/messages/de.json
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -794,6 +794,7 @@
794
794
"optionsTagsMatchAll": "all — UND-Abgleich, schließt Einträge ohne Tags ein",
795
795
"optionsTagsMatchAnyStrict": "any_strict — ODER-Abgleich, schließt Einträge ohne Tags aus",
796
796
"optionsTagsMatchAllStrict": "all_strict — UND-Abgleich, schließt Einträge ohne Tags aus",
797
+
"optionsTagsMatchExact": "exact — Mengengleichheit, schließt Einträge ohne Tags aus",
797
798
"optionsTagsMatchDescription": "Steuert, wie die Tags des Modells Erinnerungen während der Aktualisierung filtern.",
798
799
"optionsTagGroupsLabel": "Tag-Gruppen (JSON)",
799
800
"optionsTagGroupsDescription": "Zusammengesetzte boolesche Tag-Ausdrücke zur Filterung bei der Aktualisierung. Überschreibt flache Tags, wenn gesetzt.",
Copy file name to clipboardExpand all lines: hindsight-control-plane/src/messages/es.json
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -794,6 +794,7 @@
794
794
"optionsTagsMatchAll": "all — coincidencia AND, incluye sin etiqueta",
795
795
"optionsTagsMatchAnyStrict": "any_strict — coincidencia OR, excluye sin etiqueta",
796
796
"optionsTagsMatchAllStrict": "all_strict — coincidencia AND, excluye sin etiqueta",
797
+
"optionsTagsMatchExact": "exact — igualdad de conjuntos, excluye sin etiqueta",
797
798
"optionsTagsMatchDescription": "Controla cómo las etiquetas del modelo filtran las memorias durante la actualización.",
798
799
"optionsTagGroupsLabel": "Grupos de etiquetas (JSON)",
799
800
"optionsTagGroupsDescription": "Expresiones booleanas compuestas de etiquetas para filtrar durante la actualización. Anula las etiquetas planas cuando está configurado.",
Copy file name to clipboardExpand all lines: hindsight-control-plane/src/messages/fr.json
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -794,6 +794,7 @@
794
794
"optionsTagsMatchAll": "all — correspondance ET, inclut non taggés",
795
795
"optionsTagsMatchAnyStrict": "any_strict — correspondance OU, exclut non taggés",
796
796
"optionsTagsMatchAllStrict": "all_strict — correspondance ET, exclut non taggés",
797
+
"optionsTagsMatchExact": "exact — égalité d'ensembles, exclut non taggés",
797
798
"optionsTagsMatchDescription": "Contrôle la façon dont les tags du modèle filtrent les souvenirs lors de l'actualisation.",
798
799
"optionsTagGroupsLabel": "Groupes de tags (JSON)",
799
800
"optionsTagGroupsDescription": "Expressions booléennes composées de tags pour le filtrage lors de l'actualisation. Remplace les tags plats lorsque défini.",
@@ -843,6 +844,7 @@
843
844
"tagsMatchAll": "Tous (incl. non taggés)",
844
845
"tagsMatchAnyStrict": "N'importe lequel (strict)",
845
846
"tagsMatchAllStrict": "Tous (strict)",
847
+
"tagsMatchExact": "Exact (ensemble)",
846
848
"excludeMentalModels": "Exclure les modèles mentaux",
847
849
"excludeIdsLabel": "Exclure les IDs :",
848
850
"excludeIdsPlaceholder": "modèle-a, modèle-b",
@@ -919,6 +921,7 @@
919
921
"tagsMatchAll": "Tous (incl. non taggés)",
920
922
"tagsMatchAnyStrict": "N'importe lequel (strict)",
0 commit comments