Project File and folder Hide markers into the ranked Search index #1175

Open
opened 2026-10-06 03:55:40 +00:00 by kayg · 0 comments
Owner

Found during the #1153 real-server review follow-up.

Hide markers for generic Files and folders live in .calternal.json; Photo markers live in XMP. The Search response now checks the committed Tag Index for owner marker state. Default Search omits these items, and Show hidden labels their state at once. A route regression and the real-server Hide flow cover this behavior.

The ranked text Index still derives the hidden flag from Markdown content (crates/calternal-search/src/indexer.rs, markdown_fields). The positive is:hidden filter runs inside the text query before the server marker projection (crates/calternal-search/src/query.rs, build_query). A generic File or folder with a metadata marker can therefore fail to match that positive operator. Provider limits also run before the marker projection, so results dominated by hidden generic Files can return fewer visible hits than the limit.

Project whole-item metadata marker changes into the ranked Index. Keep Log entry markers scoped to their blocks, owner state out of recipient Shares, and ordinary Search filtering before its result limit. Add regressions for generic Files/folders with is:hidden, and a visible hit behind a full page of hidden candidates. Keep the immediate response marker check until provider flags cannot lag.

This is a nonblocking Search completeness gap. The default Hide flow removes the item, preserves bytes and access, and supports Undo and Unhide. Do not weaken existing guard budgets.

Found during the #1153 real-server review follow-up. Hide markers for generic Files and folders live in `.calternal.json`; Photo markers live in XMP. The Search response now checks the committed Tag Index for owner marker state. Default Search omits these items, and Show hidden labels their state at once. A route regression and the real-server Hide flow cover this behavior. The ranked text Index still derives the `hidden` flag from Markdown content (`crates/calternal-search/src/indexer.rs`, `markdown_fields`). The positive `is:hidden` filter runs inside the text query before the server marker projection (`crates/calternal-search/src/query.rs`, `build_query`). A generic File or folder with a metadata marker can therefore fail to match that positive operator. Provider limits also run before the marker projection, so results dominated by hidden generic Files can return fewer visible hits than the limit. Project whole-item metadata marker changes into the ranked Index. Keep Log entry markers scoped to their blocks, owner state out of recipient Shares, and ordinary Search filtering before its result limit. Add regressions for generic Files/folders with `is:hidden`, and a visible hit behind a full page of hidden candidates. Keep the immediate response marker check until provider flags cannot lag. This is a nonblocking Search completeness gap. The default Hide flow removes the item, preserves bytes and access, and supports Undo and Unhide. Do not weaken existing guard budgets.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#1175
No description provided.