8000 feat(search): find and filter moments by sound events like laughter or applause by adeelahmad · Pull Request #670 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content
8000

feat(search): find and filter moments by sound events like laughter or applause - #670

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: the sounds a speech provider hears (laughter, applause, music) were stored on segments but search couldn't find or filter by them.

After: sound is a search filter like emotion. Type event:laughter (any case; music is the BGM tag), pick one under Sounds in the filters, or pass event to GET /api/v1/search, a saved search or the MCP search tool. Each hit says its sound, and the facets count them (events), leaving plain speech out.

How: domain/search.py filters and counts on the segments' event tag, normalised by store.norm_event; the query parser and facet panel learn event:.

Motivation and Context

Item from the personal feature plan sheet ("find the funny bits").

Screenshots (if appropriate):

n/a

Steps to reproduce (if appropriate):

Search event:laughter on an archive transcribed by a provider that tags sounds.

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:

  • The title is a Conventional Commit.
  • My code follows the code style of this project (make hooks checks it on commit).
  • I added or updated tests (tests/api/test_search.py, tests/api/test_semantic.py, __tests__/search.test.ts).
  • My change requires documentation updates, and I have updated docs/ accordingly (docs/api.md, docs/processing.md, docs/mcp.md).
  • Users need more than the title to understand it, so I wrote it under ## Unreleased in CHANGELOG.md. Written as changelog.d/sound-events.md, per build(release): changelog fragments in changelog.d/ instead of one Unreleased section #581.

Done questions (AGENTS.md)

  • Goal: delivers what the user wanted, merged on green CI.
  • Agents: usable through the API, MCP or an assistant tool. event on GET /api/v1/search and the MCP search tool.
  • Zero setup: no new prerequisite, .env edit or manual step.
  • Fewest clicks and keystrokes. One facet click, or event: in the box.
  • Configurable: new settings in the web app with defaults; wizard asks only what is required. n/a: no settings.
  • Light: default install still runs on a Raspberry Pi with cloud models.
  • Private and secure: data local and encrypted, passkeys, threat model updated. n/a: no new surface; same search scoping.
  • Cost: cheapest path, model calls in the activity ledger, budgets respected. n/a: no model calls.
  • User decides: consequential or new actions wait for the user; defaults unchanged.
  • Upgrades: existing installs upgrade safely (upgrade step for stored-data changes). n/a: reads the event tags segments already hold.
  • Honest: sources cited; labelled built, in progress or planned.
  • Tests, docs and generated files updated (make openapi).
  • Open standards; dependencies keep Lens MIT. n/a: no dependencies.
  • Result reported with evidence; "refine later" items written down.
  • Reuse: existing Lens code and permissive libraries reused, nothing reinvented. Same path as the emotion filter.

Local CI (ci/local-ci.sh): FastAPI (embedded and server), Next.js (1268 tests), pre-commit and PR title passed.


Generated by Claude Code

…r applause

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 d4b01af into main Oct 19, 2026
12 checks passed
@adeelahmad
adeelahmad deleted the claude/project-thread-xfmkzn branch October 19, 2026 04:44
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