feat(tags): add cortex-wide tag management - #145
Merged
Conversation
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.
What changed
noema tags stats,rename,delete, anddoctorwith aligned text and stable JSON output--yesremove --forceoverride source locking without bypassing recoverable trashrecover --forcefor source-locked recovery and reserve hard deletion for explicit purge workflowsmainback ontonextWhy
Noema had trace-level tag editing but no safe cortex-wide maintenance surface. Operators needed statistics, deterministic hygiene checks, and bulk changes that preview their full impact before mutation. During release qualification,
remove --forcewas also found to contradict its recoverable-trash contract by hard-deleting immediately.Impact
Tag maintenance is available from both the CLI and MCP. Mutating CLI commands prompt with
y/Nunless--dry-runor--yesis supplied; MCP mutations require an explicit apply request. Existing trace content remains unchanged by tag-only operations.remove --forceis now recoverable and consistently means only “override source-lock protection.”Validation
make testmake release-checkcd plugins/obsidian && npm ci --silent && npm run build && npx tsc --noEmitgit diff --checktests/remove_semantics.rs