Skip to content

Auto-transcribe uploads, one-button generate all, accept-all tags - #24

Merged
davior merged 1 commit into
mainfrom
claude/sweet-wright-51jhnu
Sep 17, 2026
Merged

davior merged 1 commit into
mainfrom
claude/sweet-wright-51jhnu

Conversation

@davior

@davior davior commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Summary

Addresses a batch of AI-enrichment feedback:

  • Video/audio now auto-transcribe on upload. ingest_upload chains a transcribe job the same way transcription already chains into embedding — guarded on a Deepgram key actually being configured, so an unconfigured library gets no spurious activity rows.
  • One "Generate all" button. New generate_all job kind runs summarize → describe → autotag serially over one asset (backend/app/enrichment/generate_all.py), with its own endpoint (POST /api/assets/{id}/generate-all). Order is summarize-then-describe (not the UI order) because describe's prompt already knows to skip repeating an existing summary — running summarize first is what gives that check something to check against. Autotag runs last so it can read both.
  • AI triggers moved beside their field labels. Description, Summary and Tags each get a small icon-only button next to their label instead of a full-width "Describe/Summarise with AI" button below the field. EnrichmentButton gained an iconOnly mode; TagInput gained a labelAdornment slot. "Generate all" sits at the top of the panel.
  • "Accept all" for suggestions. SuggestionPanel no longer owns its own trigger (that moved to the icon button beside Tags) and now offers one click to accept every pending tag/title suggestion, watching both autotag and generate_all jobs for the reload signal.
  • Description/summary limit raised 2000 → 6000 characters, and each prompt now states its own limit explicitly, so a reply that used to be silently clipped mid-sentence either fits or the model stops itself in time.

Test plan

  • cd backend && pytest -q — 754 passed, same 6 pre-existing failures (missing ffmpeg on PATH / an unrelated httpx typing issue) confirmed via git stash baseline, no new failures.
  • cd frontend && npm test && npm run build — 256 passed, typecheck + build clean.
  • npm run lint / prettier --check clean on changed files.
  • Manual check: ran both dev servers, signed in with a self-minted JWT, uploaded an image, and exercised every new control in a real browser (icon buttons next to Description/Summary/Tags, "Generate all", and "Accept all" against seeded suggestions — title and tags applied correctly in one click).

🤖 Generated with Claude Code

https://claude.ai/code/session_019RTuL5VnMWCM6j7hDiw46X


Generated by Claude Code

…ccept-all tags

- Video and audio now queue their own transcription on upload when a Deepgram
  key is configured, mirroring the existing transcribe -> embed auto-chain
  instead of requiring a manual Transcribe click first.
- New "Generate all" job/endpoint runs summarize, describe and autotag in
  turn over one asset. Summarize runs before describe so describe's own
  "don't repeat an existing summary" check has something to check against;
  autotag runs last so it can read both.
- Description, Summary and Tags each get a small AI icon button beside their
  label instead of a full-width button below the field; "Generate all" sits
  at the top of the panel. EnrichmentButton gained an iconOnly mode shared by
  all of them.
- SuggestionPanel no longer owns a trigger button (that moved beside the
  Tags label); it gained an "Accept all" control and now watches both
  autotag and generate_all jobs for the reload signal.
- Raised the description/summary truncation limit from 2000 to 6000
  characters and told each prompt the limit, so a reply that used to be cut
  off mid-sentence now either fits or the model stops itself in time.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019RTuL5VnMWCM6j7hDiw46X
@davior
davior marked this pull request as ready for review September 17, 2026 16:55
@davior
davior merged commit c2a17d5 into main Sep 17, 2026
3 checks passed
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