Repository navigation
v0.5.117
Upgrading
- Run
kit:update plan|applyforcore(re-pinnedsha256:727e9746…192e→sha256:b4ae55de…cb8b):Kit/Form/submitForm.ts,Kit/Form/formFrame.ts,Kit/Form/FormActions.vue,Kit/Workbench/Workbench.vueandKit/Workbench/workbench.tstake the Save gate and the status fix below, and the kit'suilang file gainsform.submit_blocked.*. A host that disabled Save by hand during an upload, or watched its form to clear "Not saved", can drop that.
Added
- Save is disabled while it can't succeed (docs/submit-form.md › When Save is disabled).
FormActionsand a Workbench with:formdisable Save, and ignore Enter and ⌘S, while pending work is in flight (an upload), a 409 stale-write conflict is open, or the host'scanSubmitis false.canSubmitis a new prop on both (can-submit) and auseSubmitFormoption, a boolean,Refor getter,trueby default; while it's falsesubmit()resolvesfalsewithout calling the handler. The button carriesdata-blockedand anaria-describedbywith the reason, fromkit::uiform.submit_blocked.*("Waiting for uploads to finish").submitBlock()andsubmitBlockMessages()are exported.tests/js/submit-form.test.mjsandworkbench-form.test.mjscover each reason; the browser job checks a pending upload,can-submitfalse and an open 409 on the Workbench.
Fixed
- A failed save no longer stays "Not saved" after further edits (docs/workbench.md › Form frame). A Workbench with
:formwhose form was already dirty kept "Not saved" through every later edit. The next edit now puts the bar back to "Unsaved changes" (editedSaveState), for auseSubmitFormand auseFormalike. The browser job checks both. - Run
kit:update plan|applyforcore(re-pinnedsha256:727e9746…192e→sha256:4be76339…aa64),mcp(re-pinnedsha256:e35e2879…7ae0→sha256:760d2e0a…d924),workspace-ui(re-pinnedsha256:bb66501a…3253→sha256:429f11b2…67b5) andnotes(re-pinnedsha256:1a0455e7…551b→sha256:cc6e2adb…bb95):DataTable.vue,ActivityEntryRow.vue, the Connections, People and Security pages andNoteCard.vuetake the table and date fixes below. A host that copiestypes/kit.d.tsre-copies it:TableColumnhasdate. Nothing to migrate.
Fixed
- DataTable sits on the card surface. The table and its two empty states had no background, so rows showed the page ground. They now use
bg-card text-card-foreground, the sticky first column matches, and column headers no longer wrap ("Connected by"). - Dates show through DateTime, not as raw ISO values. A
TableColumn(andTableQuery::column()) takesdate, a DateTime format, and DataTable renders that column throughDateTime: the viewer's zone, the full value intitle. AI assistants' Connected (a raw2026-…T…+00:00) and Expires, People's joined, sent and expiry dates, Security's sessions and log, Notes and activity entries now all use it. - Removing one MCP grant is no longer styled destructive. On AI assistants only Revoke stays destructive; "Remove " is a plain row action.
- Avatar upload and removal work on PostgreSQL with string or uuid morphs. Avatars compared
media.model_id(varchar there) with an integer, a 500 ("operator does not exist: character varying = integer"). The lookups and the avatar holder's media relation now bind the id as a string.
What's Changed
- DataTable card surface, date columns, nowrap headers; plain grant removal; string avatar model_id (0.5.x) by @jaspertey in #516
- Disable form Save while it can't succeed; clear Not saved on the next edit (0.5.x) by @jaspertey in #502
- Release v0.5.117 by @jaspertey in #529
Full Changelog: v0.5.116...v0.5.117