Files
windmill/frontend
Diego Imbert d4ecf4b9fd feat(frontend): DB-backed user-scoped drafts; drop local-storage + conflict UX
Rework UserDraft into a purely in-memory two-way sync layer and push every
change to the backend draft table via a new UserDraftDbService.

- userDraft.svelte.ts: no more localStorage, staleness/meta tracking, GC, or
  legacy migration. Reactive in-memory cells; the handle setter syncs each edit
  through UserDraftDbService (debounced). Callers seed the loaded value with
  setInitial() (no write-back); meta/setDraftAndMeta/setMeta kept as inert
  shims so non-editor callers compile.
- userDraftDbService.ts (new): save({path, itemKind, content}) maps the kind to
  a draft typ (script/flow/app; raw_app→app) and calls createDraft, or
  deleteDraft when content is undefined. Debounced; skips kinds without a DB
  draft and brand-new items (empty path).
- Remove all draft conflict UX: LocalDraftStaleModal, userDraftToast, the
  legacy-migration module, the staleness checks/modals/restore toasts and the
  URL-hash sync in the script/flow/app/raw-app editors.
- Drop draft_only everywhere it was read/sent (builders, rows, DraftBadge,
  editor headers, list filters include_draft_only, copilot, sessions).
- Editors now load their own value and seed it; edits autosync. "Restore to
  deployed" deletes the DB draft explicitly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 16:44:03 +02:00
..
2026-01-22 16:20:01 +00:00
2025-12-23 18:19:30 +00:00
2026-02-19 09:33:33 +00:00
2026-03-05 18:11:40 +01:00
2025-08-14 11:30:10 +00:00
2026-01-22 16:20:01 +00:00
2026-03-18 11:38:22 +00:00
2026-02-19 09:33:33 +00:00

Windmill frontend

The Windmill frontend written in Svelte 5 + Tailwind CSS

The frontend is under AGPL, see the LICENSE file at the root of this repo