dev→main: gallery search/filter system, tags + modal fixes, mobile pass (release v26.06.04.0) #69

Merged
bvandeusen merged 2 commits from dev into main 2026-06-04 23:16:13 -04:00
Owner

Release cut of everything on dev since the last release (v26.06.01.0). Dev CI green at head 86efbf7 (run #544).

Highlights

Gallery — in-view search & filtering (3 phases)

  • Phase 1: pinned, deep-linkable filter bar + composable scroll filter (multi-tag AND, artist, media, sort).
  • Phase 2: faceted refine panel with live counts (platform / curation flags / date range).
  • Phase 3: visual "more like this" similarity search over SigLIP embeddings (modal Related strip + gallery takeover).
  • Perf: reveal-tiles-on-decode cascade, single initial fetch, materialized indexed effective_date sort key.

Tags

  • Edit a character tag's fandom (tags directory + modal), with collision/merge handling.
  • Create a character with no fandom (FandomPicker "No fandom").
  • "Reset content tagging" admin maintenance action.
  • ML: normalize Camie suggestion names to human-readable; preserve digit-only (year) tags.

Image modal

  • Kebab menus (tag chip + suggestions) open via explicit v-model (fixes never-opening).
  • Autofocus tag input; arrow nav works from empty input; Esc closes; post-title primary click.

Subscriptions / downloads

  • Tick/backfill modes + partial-success classifier; soft-time-limit salvage + timeout ladder.
  • Release DB connections across the gallery-dl subprocess; Patreon Mux video fix.

Other

  • Mobile responsiveness pass (nav hamburger, card layouts, filter bars).
  • Scheduled + manual DB VACUUM ANALYZE with bloat readout.
  • Extension 1.0.7: in-browser cookie verification + probe-and-add.
  • CI perf: integration shards collapsed to one job, Postgres durability relaxed.
  • 2026-06-02 audit batches (g1–g5): race-poisoning, async state leaks, recovery sweeps/retention/timeouts, status-enum fixes.
  • Posts model: nullable source_id + denormalized artist_id; retired sidecar synthetics.

🤖 Generated with Claude Code

Release cut of everything on dev since the last release (v26.06.01.0). Dev CI green at head `86efbf7` (run #544). ## Highlights **Gallery — in-view search & filtering (3 phases)** - Phase 1: pinned, deep-linkable filter bar + composable scroll filter (multi-tag AND, artist, media, sort). - Phase 2: faceted refine panel with live counts (platform / curation flags / date range). - Phase 3: visual "more like this" similarity search over SigLIP embeddings (modal Related strip + gallery takeover). - Perf: reveal-tiles-on-decode cascade, single initial fetch, materialized indexed `effective_date` sort key. **Tags** - Edit a character tag's fandom (tags directory + modal), with collision/merge handling. - Create a character with **no fandom** (FandomPicker "No fandom"). - "Reset content tagging" admin maintenance action. - ML: normalize Camie suggestion names to human-readable; preserve digit-only (year) tags. **Image modal** - Kebab menus (tag chip + suggestions) open via explicit v-model (fixes never-opening). - Autofocus tag input; arrow nav works from empty input; Esc closes; post-title primary click. **Subscriptions / downloads** - Tick/backfill modes + partial-success classifier; soft-time-limit salvage + timeout ladder. - Release DB connections across the gallery-dl subprocess; Patreon Mux video fix. **Other** - Mobile responsiveness pass (nav hamburger, card layouts, filter bars). - Scheduled + manual DB VACUUM ANALYZE with bloat readout. - Extension 1.0.7: in-browser cookie verification + probe-and-add. - CI perf: integration shards collapsed to one job, Postgres durability relaxed. - 2026-06-02 audit batches (g1–g5): race-poisoning, async state leaks, recovery sweeps/retention/timeouts, status-enum fixes. - Posts model: nullable `source_id` + denormalized `artist_id`; retired sidecar synthetics. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-06-04 23:15:56 -04:00
fix(tags): allow creating a character with no fandom
CI / lint (push) Successful in 2s
CI / backend-lint-and-test (push) Successful in 12s
CI / frontend-build (push) Successful in 18s
CI / integration (push) Successful in 3m4s
3a0cca5aca
Not all characters belong to a fandom (original characters, unsorted).
The create flow forced every new character through FandomPicker, whose
only outcomes were 'Use this fandom' (disabled until one is picked) or
Cancel (which aborts the whole creation) — there was no way to confirm a
character with no fandom.

- FandomPicker: add a 'No fandom' action that emits confirm(null).
- TagAutocomplete.onFandomChosen: pass fandom_id: null when null is
  emitted.

Backend already supported this end to end (Tag.fandom_id nullable, the
CHECK only forbids fandom_id on non-character kinds, tag_service
find_or_create defaults fandom_id=None, API reads body.get). A fandom can
still be assigned later from the chip kebab's 'Set fandom…'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(modal): kebab menus open via explicit v-model, not activator click
CI / lint (push) Successful in 3s
CI / backend-lint-and-test (push) Successful in 11s
CI / frontend-build (push) Successful in 17s
CI / integration (push) Successful in 2m56s
86efbf7f2c
Operator-confirmed on a fresh build: both the tag-chip and suggestion
kebabs still never opened. The prior 8326e54 'fix' only wrapped them in a
<span @click.stop> — inert for SuggestionItem (no parent capture) — and
never addressed why the `#activator`/`v-bind="props"` click failed to
toggle the menu inside the teleported ImageViewer modal. The dialogs in
that same modal open via v-model and work, so drive the menus the same way:

- The activator (v-btn / v-icon) toggles a reactive flag with @click.stop
  (which also shields the chip's close button / any parent).
- The v-menu binds that flag (v-model / :model-value) and uses
  activator="parent" with :open-on-click="false" purely for positioning,
  so opening no longer depends on Vuetify's activator-click path.
- TagPanel tracks a single openTagId (one chip menu open at a time).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
bvandeusen merged commit 2a8f7cd8b6 into main 2026-06-04 23:16:13 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledCurator#69