---
phase: quick-261006-s0v
plan: 01
type: execute
wave: 1
depends_on: []
files_modified:
- admin/src/components/form/fields/MLTextField.vue
- admin/src/components/form/fields/MLMarkdownField.vue
- admin/tests/form/MLFields.test.ts
- docs/backend/forms.md
- modules/boardwalk/dist/
autonomous: true
requirements: [QUICK-261006-s0v]
estimate:
tokens: 25000
raw_tokens: 25000
tasks: 1
confidence: high
---
Remove copy-from-locale from admin `mltext` and `mlmarkdown` fields. Keep one locale selector per field, synchronized across ML controls, and nested `Record` save bodies. Copy currently overwrites the active locale with the other locale's (often empty) string, so the editor appears to go blank.
Purpose: Journal UAT — the operator does not want Copy, and the control is lossy.
Output: SPA components and tests, forms.md sentence, rebuilt `modules/boardwalk/dist`, one code commit.
@~/.claude/gsd-core/workflows/execute-plan.md
@~/.claude/gsd-core/templates/summary.md
@.planning/STATE.md
@CLAUDE.md
@admin/src/components/form/fields/MLTextField.vue
@admin/src/components/form/fields/MLMarkdownField.vue
@admin/tests/form/MLFields.test.ts
@docs/backend/forms.md
@scripts/check-admin-dist.sh
Facts:
- Both ML components have a visible locale `Task 1: Drop copy-from chrome; keep locale picker and broadcastadmin/src/components/form/fields/MLTextField.vue, admin/src/components/form/fields/MLMarkdownField.vue, admin/tests/form/MLFields.test.ts, docs/backend/forms.md, modules/boardwalk/dist/admin/src/components/form/fields/MLTextField.vue, admin/src/components/form/fields/MLMarkdownField.vue, admin/tests/form/MLFields.test.ts, docs/backend/forms.md (Markdown and multilingual fields)
In MLTextField.vue and MLMarkdownField.vue, delete copyFrom, otherLocales, copyLocale, the copy-from select, and the Copy button. setLocale only assigns activeLocale. Keep data-ml-locale, broadcastMLLocale, and the editor.
In MLFields.test.ts, rewrite `edits the active locale and copies from another` to switch locale and type into the active field without `[data-ml-copy-from]` / `[data-ml-copy]`. In the existing "one locale selector" case, also assert those copy selectors and buttons are absent on both components.
In docs/backend/forms.md, remove the Copy-from-locale sentence; leave the rest of the paragraph.
Rebuild with `npm --prefix admin run build` and include modules/boardwalk/dist.
Commit: `fix(admin): drop ML copy-from locale chrome` (or equivalent). No .planning files, no trailers.
cd /media/nvme/dev/golem15/summercms.io/summercms/summercms.go && npm --prefix admin test -- tests/form/MLFields.test.ts && npm --prefix admin run typecheck && scripts/check-admin-dist.sh && go test ./cmd/summer -run TestDocsTree && ! grep -R -n 'data-ml-copy' admin/src admin/tests docs/backend/forms.mdML fields expose only the locale selector; Copy is gone; tests and docs match; dist is rebuilt; one code commit.
- npm --prefix admin test -- tests/form/MLFields.test.ts
- npm --prefix admin run typecheck
- scripts/check-admin-dist.sh
- go test ./cmd/summer -run TestDocsTree
- No data-ml-copy / copyLocale remaining in admin/src, admin/tests, or docs/backend/forms.md
- Clicking around an mltext/mlmarkdown field cannot blank the active locale via Copy, because Copy is not there.
- Switching en/pl still switches every ML control on the form.
- Nested locale maps still round-trip.