feat(tags): officially surface tags_match=exact in UI, docs, and clients - #2230
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
tags_match=exactset-equality match mode was added to the API and the generated clients in #2149 (alongside the/observations/scopesendpoint), but it was never:This PR completes the feature so
exactis a first-class, discoverable option everywheretags_matchis. It supersedes #2159 (which was docs-only) and folds those doc edits in.Changes
Control plane
lib/api.ts: addexactto theTagsMatchtype and the recall/reflect inline unionsthink-view.tsx,search-debug-view.tsx: local type + dropdown itemmental-models-view.tsx: both trigger-config dropdownsthinkView.tagsMatchExact,searchDebug.tagsMatchExact,mentalModels.optionsTagsMatchExact(locale-parity test enforces this)Docs (supersedes #2159)
recall.mdx:exactrow in thetags_matchtable, a dedicatedexact — set equalitysection, andexactadded to thetag_groupsmatchvaluesreflect.mdx:exactin thetags_matchvalue listobservations.mdx: scope-listing guidance pointing totags_match: "exact"generate-docs-skill.sh)Clients
python/hindsight_client/hindsight_client.py:exactin the 4Literal[...]annotations + docstringstypescript/src/index.ts:exactin the 2 unions + JSDocopenapi.json(already containsexact) at build time; the generated clients/OpenAPI spec were already in sync from feat(observations): enumerate + filter + visualize observation scopes #2149.Verification
npx vitest run tests/messages/messages.test.ts— locale parity green (20/20)./scripts/hooks/lint.sh— greentscerrors introduced (the 2 pre-existing ones are in unrelated routes)