ddcore 0.4
This series was written after the fact, from the repository's history. It records what an app would notice in each release — a capability, a contract, a default — and not every commit that went into it.
0.4.1 — 2026-09-12
Changed
- No container image is published any more. An app builds its own image and downloads the binary of the release it pins.
Fixed
- The sign-in screen focuses its first field without
autofocus, so a password manager and the browser's own restore no longer fight over it.
0.4.0 — 2026-09-12
Added
- A form keeps what was typed. Edits are kept in the browser, one draft per user and record, for seven days and written as they are made; leaving a dirty form asks first, inside the desk and through the browser's own dialog on a reload; coming back puts the draft back and says so, and asks when someone else saved the record in between. "Discard changes" in the form's menu, and
frm.discardChanges(), return to the document as it was loaded without asking the server again. - A form field declares its width —
sm,md,lgorfull— and a line is four slots, so narrow fields pair side by side and collapse to full width on a phone. Date, Month, Time, Int and Percent default tosm, Datetime, Float and Currency tomd, the fallback islg, and the types that are unreadable narrow keepfull.
Breaking
- The
Column Breakfieldtype is gone: a form's shape now comes from the width of its fields, and the same field no longer renders at a different size on either side of a break. A DocType that still declares one loads — an obsolete fieldtype is dropped when the app is read, with a warning naming the DocType — so an app written against an older ddcore keeps working while it is cleaned up.
Fixed
Cmd+Ssaves what is still being typed, instead of the value the field had before the caret entered it.- The generated
tsconfigno longer emitsbaseUrl, the core's own TypeScript is typechecked, andhasPermission's declared document type is wide enough for what it is given.