diff --git a/CLAUDE.md b/CLAUDE.md
index 98dd643..15b9100 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -348,6 +348,15 @@ no adjustments.
The `pf_bucket` datalist on the Baseline page was already per version
(`bucketsInUse`), so the two now agree.
+**Completion is the datalist and nothing else.** The operation panel used to
+carry six quick-pick pills under the tag field as well. They wrapped to two rows
+as soon as the tags were longer than a word, and the panel docked at the bottom
+has a fixed height, so they pushed the form past its own border. The datalist
+costs no space, is not capped at six, and now shows the tag alone — an option's
+text content renders as a second column beside the value, so the use count was
+widening every row of the pick list to carry a number nobody picks on. `uses`
+and `last_used` still come back from the route; nothing reads them.
+
---
## Renaming a version
diff --git a/ui/src/components/OperationPanel.jsx b/ui/src/components/OperationPanel.jsx
index f6e9193..e41dd66 100644
--- a/ui/src/components/OperationPanel.jsx
+++ b/ui/src/components/OperationPanel.jsx
@@ -898,7 +898,7 @@ export default function OperationPanel({
scaleInputs, setScaleInputs,
scalePlug, setScalePlug,
targetBasis, setTargetBasis,
- opTag, setOpTag, knownTags = [], logMeta = {},
+ opTag, setOpTag, logMeta = {},
scaleNote, setScaleNote,
recodeSet, setRecodeSet,
recodeNote, setRecodeNote,
@@ -1066,24 +1066,12 @@ export default function OperationPanel({
)}
- {/* Under the tag field and inside the same column, so they read as
- values for it rather than as a row of unexplained buttons. */}
- {knownTags.length > 0 && (
-
-
- {knownTags.slice(0, 6).map(t => (
-
- ))}
-
-
- )}
+ {/* The six quick-pick pills that used to sit here are gone. They
+ wrapped onto two rows once the tags were more than a word long,
+ which is most of them, and the panel docked at the bottom has a
+ fixed height to spend -- so they pushed the form past its own
+ border. The same tags complete from the input's datalist, which
+ costs no space and is not capped at six. */}
setNote(e.target.value)}
diff --git a/ui/src/views/Forecast.jsx b/ui/src/views/Forecast.jsx
index 8d8d528..45cbb7a 100644
--- a/ui/src/views/Forecast.jsx
+++ b/ui/src/views/Forecast.jsx
@@ -1881,7 +1881,7 @@ export default function Forecast({ sources = [], sourceId, versions = [], versio
scaleInputs, setScaleInputs,
scalePlug, setScalePlug,
targetBasis, setTargetBasis,
- opTag, setOpTag, knownTags, logMeta,
+ opTag, setOpTag, logMeta,
scaleNote, setScaleNote,
recodeSet, setRecodeSet,
recodeNote, setRecodeNote,
@@ -1898,10 +1898,11 @@ export default function Forecast({ sources = [], sourceId, versions = [], versio
{/* Tag completions, shared by the operation panel and the change log's
inline editor. Lives here so it is in the DOM even when the panel is shut. */}
+ {/* Value only. A datalist option's text content renders as a second
+ column beside the value, so the use count widened every row of the
+ pick list to carry a number nobody picks on. */}
{/* Toolbar */}