All Properties cleanup, bulk actions, tags, and property search #208
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#208
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
All Properties currently exposes nested generated property paths, lacks
vault-wide property maintenance actions, misses some frontmatter tags, and does
not hand off property clicks to Search.
Problem
tags[0]andprop[0].nameinstead of only top-level frontmatter keys.tagsarrays are not consistently added to the metadata tagcache.
render with unknown icons.
files.
parse quoted property field names such as
["note.status"].Goal
Make All Properties a top-level frontmatter property browser with bulk
maintenance actions, accurate tag handling, shared tag/chip rendering, and a
Search handoff for property queries.
Scope
operations.
Non-goals
MetadataTypeManager; nested pathsremain needed for File Properties editing and rename behavior.
multitexttotags.persistence model.
Acceptance Criteria
literal dotted keys such as
note.status.tags[0],prop[0], orprop[0].name.tags/tagarrays and comma strings populatecache.tagsfortag UI/search.
tags,aliases,multitext,array,object, andunknown.from
multitext.tags/tag,aliases/alias, andprimitive-array
multitextproperties inline instead of expanding them asarray/object trees.
Delete Property across all affected files.
of using browser prompts.
confirmation prompt.
child counts and expose matching nested-property actions.
indexes instead of rendering
[0],[1], or[N]rows.property filters such as
["items.name"].normalizeMetadataValue()where possible.summarize partial failures.
[tags]and["tags"]as equivalent property queries.["property.name"]across both object values and arrays of objects while preserving exact dotted
top-level key matching.
Implementation Notes
objects, then merge type/count details from metadata type state.
MetadataTypeManagerfor top-level rename,delete, and type changes; do not use lodash path semantics for these
All Properties actions.
app.notifications.withProgress({ location: "status", source: "Markdown" })for bulk work.@lapis-notes/ui/tag.PhraseinsidePropertyNameandstrip quotes during AST lowering.
do not force a rendered
#prefix in the editor, and autocomplete inputs fromexisting values for the same property.
and value complexity so semantic tag and primitive-array widgets get rendered
before array child derivation can force the tree branch.
Suggested Files or Specs To Inspect
packages/api/src/lib/cache.svelte.tspackages/api/src/lib/metadata.svelte.tspackages/api/src/lib/metadata-value.tspackages/api/src/lib/search-query/search-query.grammarpackages/plugins/plugin-markdown/src/lib/views/all-properties/all-properties.sveltepackages/plugins/plugin-markdown/src/lib/components/frontmatter/widgets.tspackages/plugins/plugin-search/src/search-plugin.tspackages/plugins/plugin-bases/src/bases-view/components/Tag.sveltespec/src/20-packages/plugins/markdown/index.mdspec/src/20-packages/plugins/search/index.mdspec/src/30-cross-package-contracts/storage-metadata-search.mdValidation Commands
pnpm --filter @lapis-notes/api generate:search-query-parserpnpm --filter @lapis-notes/api test:run src/lib/__tests__/metadata-value.test.ts src/lib/__tests__/metadata-type-manager.test.ts src/lib/__tests__/search-query.test.ts src/lib/__tests__/app-database.test.tspnpm --filter @lapis-notes/api check:allpnpm --filter @lapis-notes/ui check:allpnpm --filter @lapis-notes/markdown check:allpnpm --filter @lapis-notes/search check:allpnpm --filter @lapis-notes/bases check:allmake spec-lintmdbook build specpnpm test:smokeRelated Issues
Follow-up Tasks
Implementation Summary
Populate when closing the issue.