Severity: medium · Category: framework design issue
Evidence. entry-generators.ts: the submit chain's catch does window.location.reload() unconditionally — a transient network failure discards the user's unsaved input elsewhere on the page and gives the app no hook.
Fix. Dispatch a cancelable open:action-error CustomEvent on the form (detail { error, form }) before the reload; preventDefault() suppresses the reload so apps can show their own retry UI. Default behavior (reload) is unchanged. Document in MORPH_CONTRACT.
Filed from the 0.42 round-2 review (docs/audit/2026-07-28-alpha5-round2-review.md). Target line: 0.42.0-alpha.6.
Severity: medium · Category: framework design issue
Evidence.
entry-generators.ts: the submit chain'scatchdoeswindow.location.reload()unconditionally — a transient network failure discards the user's unsaved input elsewhere on the page and gives the app no hook.Fix. Dispatch a cancelable
open:action-errorCustomEvent on the form (detail{ error, form }) before the reload;preventDefault()suppresses the reload so apps can show their own retry UI. Default behavior (reload) is unchanged. Document in MORPH_CONTRACT.Filed from the 0.42 round-2 review (docs/audit/2026-07-28-alpha5-round2-review.md). Target line: 0.42.0-alpha.6.