Search and tags look through the Archive, and archived cards say so

A search or a tag filter on the main board, and a tag's own view, now
list every note not in Trash (a new `all` board view on the server and in
the core), so finished work can still be looked up. Archive and Trash
keep a search inside themselves.

An archived note met anywhere but the Archive carries an "Archived" chip
at the top of its card, on the web and on Android.

Task #6315.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 16:23:08 -04:00
co-authored by Claude Opus 5.5
parent 5780220ff1
commit b98a0c315f
10 changed files with 107 additions and 18 deletions
+15
View File
@@ -1673,6 +1673,21 @@ async def test_owner_and_recipient_each_pin_archive_and_order_their_own(app_clie
assert await _board_ids(app_client) == [nid, older]
async def test_search_and_tags_look_through_the_archive_but_not_the_trash(app_client, db):
kept = await _owners_note(app_client, "ferry times #travel")
archived = await _owners_note(app_client, "ferry booked last summer #travel")
trashed = await _owners_note(app_client, "ferry refund #travel")
await app_client.patch(f"/api/notes/{archived}", json={"archived": True})
await app_client.post(f"/api/notes/{trashed}/trash")
labels = (await (await app_client.get("/api/labels")).get_json())["labels"]
travel = next(lb["id"] for lb in labels if lb["name"] == "travel")
# The board alone still keeps the archive out of the way.
assert await _board_ids(app_client, "q=ferry") == [kept]
assert sorted(await _board_ids(app_client, "filter=all&q=ferry")) == sorted([kept, archived])
assert sorted(await _board_ids(app_client, f"filter=all&label={travel}")) == sorted([kept, archived])
async def test_unsharing_trashing_and_deleting_each_end_access(app_client, db):
recipient, _, people = await _three_people(app_client)
nid = await _owners_note(app_client)