Autotag: a settings panel, and a way back from the dismissed file-write warning #91

Open
opened 2026-08-18 20:05:29 +00:00 by yonlu · 0 comments
Owner

The autotagger has no settings panel. Everything it does — including a pass that rewrites files on disk — is configured by nothing the user can see.

Phase 012 of .planning/autotag.md, deleted in favour of this issue and its sibling. Most of that phase has already shipped and is not repeated here: the rate limiter now distinguishes interactive from background work (WithBackgroundLane / WithBackgroundPriority), VA compilation handling is in mixedbag.go and rank.go, and the singleton recording-level path is in mb.go. What is left is three things.

1. The settings panel

In the existing templ + HTMX settings UI, under its own config-section. It exposes:

  • enable/disable auto-accept (blocked on that feature existing),
  • per-library file-write warning reset — the "don't show again" flag lives on the libraries row and there is currently no way back once it is set,
  • default review filter and default sort order.

Two house rules apply. The section header is a <button aria-expanded aria-controls> and the body renders unconditionally toggled with hidden, because aria-controls has to name an element that is in the DOM. And every control gets a real <label for>config-field renders the label as a sibling, and getting that wrong is what left 24 of 93 Settings controls with an empty accessible name.

2. The Identifier seam

type Identifier interface { Identify(path) ([]Candidate, error) }

with MetadataIdentifier as the v1 implementation. No fpcalc integration — the point is the seam, so a future AcoustIDIdentifier is a new implementation rather than a rewrite of the call sites.

Worth being honest about the cost: an interface with exactly one implementation and no second one in sight is speculative generality. Argue for it on the strength of acoustic fingerprinting actually being wanted, or leave it out.

3. Docs

A user-facing quickstart, a backend/autotag/ package description in CLAUDE.md — which currently documents the package's existence through the jobs registry and the dialog rules but never says what the package is — and the scoring-function dev notes committed rather than carried in a plan file.

Done when

Autotag is configurable from Settings, and a user who dismissed the irreversibility warning can get it back.

The autotagger has no settings panel. Everything it does — including a pass that rewrites files on disk — is configured by nothing the user can see. Phase 012 of `.planning/autotag.md`, deleted in favour of this issue and its sibling. **Most of that phase has already shipped** and is not repeated here: the rate limiter now distinguishes interactive from background work (`WithBackgroundLane` / `WithBackgroundPriority`), VA compilation handling is in `mixedbag.go` and `rank.go`, and the singleton recording-level path is in `mb.go`. What is left is three things. ## 1. The settings panel In the existing templ + HTMX settings UI, under its own `config-section`. It exposes: - enable/disable auto-accept (blocked on that feature existing), - per-library file-write warning reset — the "don't show again" flag lives on the `libraries` row and there is currently no way back once it is set, - default review filter and default sort order. Two house rules apply. The section header is a `<button aria-expanded aria-controls>` and the body renders unconditionally toggled with `hidden`, because `aria-controls` has to name an element that is in the DOM. And every control gets a real `<label for>` — `config-field` renders the label as a sibling, and getting that wrong is what left 24 of 93 Settings controls with an empty accessible name. ## 2. The `Identifier` seam ```go type Identifier interface { Identify(path) ([]Candidate, error) } ``` with `MetadataIdentifier` as the v1 implementation. **No fpcalc integration** — the point is the seam, so a future `AcoustIDIdentifier` is a new implementation rather than a rewrite of the call sites. Worth being honest about the cost: an interface with exactly one implementation and no second one in sight is speculative generality. Argue for it on the strength of acoustic fingerprinting actually being wanted, or leave it out. ## 3. Docs A user-facing quickstart, a `backend/autotag/` package description in CLAUDE.md — which currently documents the package's existence through the jobs registry and the dialog rules but never says what the package *is* — and the scoring-function dev notes committed rather than carried in a plan file. ## Done when Autotag is configurable from Settings, and a user who dismissed the irreversibility warning can get it back.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: yonlu/yellowjacket#91