Symptoms
When bulk-editing in the TUI, custom fields show an ugly custom_fields.<name> name and edits made there don't save (silent — no change, no error).
Root causes
- Invisible include toggle (the save bug).
.bulk-include { width: 6 } is too narrow for a Textual Switch (border + padding + slider ≈ 10 cells); with the real stylesheet the slider clips to zero width, so every per-field include toggle renders blank. Users can't see or flip it, so no field is opted in and the patch is empty → silent no-change.
- Raw custom-field labels. Both the single-edit and bulk-edit forms render
Label(name) (the raw custom_fields.<name> key) instead of the fetched CustomFieldDef.label. Same in the change-preview diff.
- Latent: opting in a blank
select nulls the field. A select whose choice-set didn't resolve renders empty; opting it in seeded None and silently cleared a value the user never edited.
Fixes
- Size
.bulk-include to fit the Switch slider (regression-tested so it can't clip to zero again).
- Render
spec.label or name in both forms and thread custom-field labels into the diff rows.
- A blank select seeds nothing on opt-in; only the explicit ∅ button nulls.
Reported by maintainer.
Symptoms
When bulk-editing in the TUI, custom fields show an ugly
custom_fields.<name>name and edits made there don't save (silent — no change, no error).Root causes
.bulk-include { width: 6 }is too narrow for a TextualSwitch(border + padding + slider ≈ 10 cells); with the real stylesheet the slider clips to zero width, so every per-field include toggle renders blank. Users can't see or flip it, so no field is opted in and the patch is empty → silent no-change.Label(name)(the rawcustom_fields.<name>key) instead of the fetchedCustomFieldDef.label. Same in the change-preview diff.selectnulls the field. A select whose choice-set didn't resolve renders empty; opting it in seededNoneand silently cleared a value the user never edited.Fixes
.bulk-includeto fit the Switch slider (regression-tested so it can't clip to zero again).spec.label or namein both forms and thread custom-field labels into the diff rows.Reported by maintainer.