8000 feat(search): filter by date, tag, origin and language by adeelahmad · Pull Request #695 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

feat(search): filter by date, tag, origin and language - #695

Merged
adeelahmad merged 1 commit into
mainfrom
claude/project-thread-xfmkzn
Oct 19, 2026
Merged

adeelahmad merged 1 commit into
mainfrom
claude/project-thread-xfmkzn

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Description

Before: search could not be narrowed by when an asset is from, its tags, where it came from or its language; those filters existed only in the Library.

After: GET /search takes from/to, tag, origin and language (the Library's filters, through library.where) and keeps every kind of hit to the assets that match. The MCP search tool takes date_from/date_to (a day, month or year), tags, origins and languages. The search page has compact Assets controls at the top of the filter panel, empty until picked; filters can also be typed in the box, and they show as chips and carry through the URL and saved searches.

A recording-set restriction (such as the object filter) now applies to screen, file, object and description hits too, not only to what was said.

Motivation and Context

Personal feature plan: find things by date, tag, source and language.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change; ! in the title)

Checklist:

Done questions (AGENTS.md)

  • Goal: delivers what the user wanted, merged on green CI.
  • Agents: API query parameters and MCP search arguments.
  • Zero setup: no new prerequisite, .env edit or manual step.
  • Fewest clicks and keystrokes: filters can be typed in the search box; controls stay empty until used.
  • Configurable: n/a, no new setting.
  • Light: no new dependency.
  • Private and secure: same namespace scoping as search; no new surface.
  • Cost: no model calls.
  • User decides: filters apply only when picked; defaults unchanged.
  • Upgrades: n/a, no stored-data change (saved searches gain optional fields).
  • Honest: README built list and docs/requirements.md updated.
  • Tests, docs and generated files updated (make openapi).
  • Open standards; no new dependencies.
  • Result re 8000 ported; refine later: chat and batch links don't carry the new filters yet.
  • Reuse: the Library's library.where filters reused.

Local CI: pytest tests/api/test_search.py tests/api/test_mcp.py tests/api/test_unnamed_faces.py (29 passed), ruff, mypy, jest __tests__/search* (23 passed), tsc --noEmit, ci/check_requirements.py all clean; OpenAPI regenerated with no drift.


Generated by Claude Code

GET /search takes from/to, tag, origin and language (the Library's filters,
via library.where) and keeps every kind of hit to the assets that have them;
the MCP search tool takes date_from/date_to (day, month or year), tags,
origins and languages. The search page gets compact Assets controls at the
top of the filter panel, empty until picked, typed filters in the box, chips,
the URL and saved searches carry them. A recording-set restriction (such as
the object filter) now applies to screen, file, object and description hits
too, not only to what was said.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QFUNzy1QZy5HhKAyJxTAYJ
@adeelahmad adeelahmad self-assigned this Oct 19, 2026
@adeelahmad
adeelahmad merged commit 92f027e into main Oct 19, 2026
12 checks passed
@adeelahmad
adeelahmad deleted the claude/project-thread-xfmkzn branch October 19, 2026 17:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

0