Skip to content

feat(ui): explicit save button on the processing edit page - #109

Merged
albanm merged 2 commits into
masterfrom
feat-save-button
Sep 7, 2026
Merged

feat(ui): explicit save button on the processing edit page#109
albanm merged 2 commits into
masterfrom
feat-save-button

Conversation

@BatLeDev

@BatLeDev BatLeDev commented Sep 7, 2026

Copy link
Copy Markdown
Member

Replace the auto-PATCH on every form change of the processing edit page with an explicit "Enregistrer" / "Annuler" pair in the right-hand actions panel, guarded against leaving with unsaved changes.

Why: persisting on every keystroke produced noisy writes and a confusing indeterminate progress bar; users expect to control when their edits are saved.

  • hasDiff compares the edited model to a snapshot of the last saved state — taken on vjsf's first normalizing emit — so save/cancel only show up for real changes
  • server-side refreshes no longer clobber unsaved edits, and "Exécuter" is disabled while a diff is pending
  • new e2e spec covering save, cancel and the leave guard
  • new e2e-warmup Playwright project that walks the heavy dev routes once, so Vite's lazy dep re-optimization stops failing a random e2e spec on a cold start
  • chore(deps): data-fair libs bumped, vulnerable transitive deps patched

Heads-up:

  • nodemailer jumps from ^8 to ^10 in the worker — the mail sending path deserves a second look.
  • ui/src/pages/processings/[id]/index.vue now imports fast-deep-equal, which is declared in no workspace package.json and only resolves as a hoisted transitive dep. It should be added to ui/package.json.

Edits are no longer patched on every form change: a save/cancel pair
appears at the top of the right-hand actions when there are unsaved
changes, and useLeaveGuard warns before leaving the page.

Covered by a new e2e spec, plus an e2e-warmup Playwright project that
walks the heavy dev routes once so Vite finishes optimizing its lazy
deps before the specs run.
@data-fair/lib-node 2.12.1 -> 2.13.3 carries the streamed-error-body socket
leak fix (data-fair/lib 2ef7764). axios settles a `responseType: 'stream'`
request by rejecting without consuming or destroying the body, so every
registry 403/404 permanently checked out one of the 8 keepalive sockets of the
shared agent. Past 8 of them the api could no longer reach the registry at all
and POST /processings hung forever, which surfaced as an unrelated e2e timeout
in memory-oom. The worker shares the same call site.

The other @data-fair libs are aligned across the four workspaces, and every
dependency flagged by npm audit is bumped (16 advisories -> 0), including tar
(critical) and nodemailer 8 -> 10, whose only breaking change is requiring
node 20+.
@albanm
albanm merged commit df2f145 into master Sep 7, 2026
4 checks passed
@albanm
albanm deleted the feat-save-button branch September 7, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants