Two changes in Stalwart 1.0 broke ihasmail for its readers:
Calendar. A CalendarEvent/get naming recurrenceOverrides together with utcStart or utcEnd now fails whole, even with no ids, so no calendar would load. The everyday property list no longer asks for the overrides (an occurrence's are null anyway); the export asks with SERIES_PROPS, without the times.
Settings and Files. FileNode renamed nodeType to @type ("Directory", "File") and type to mediaType, and each version refuses the other's names on create and update. ihasmail could make no folder on 1.0, its own included, so the settings file was never written and settings reset at every sign-in. The client now asks once per session which shape the server wants and translates FileNode calls in one place, web/src/jmap/fileNodeShape.ts.
Checked
npm run typecheck, npm test (1562 passed), npm run build.
The compatibility test, extended to read events with both property lists, expand a weekly series, and write, find, update and read back the settings file through the client's own translation: 6/6 against real 0.16.27 and 1.0.0 servers (the images CI pins).
The app by hand against 1.0.0: calendars load and draw a weekly event; a setting survives signing out and back in, with the browser's storage emptied in between; the Files view loads with the app folder hidden.
Not in this PR: 1.0 returns myRights for folders only, so rename, delete and editing show as unavailable on files there. Recorded in KNOWN-ISSUES.md.
Fixes #66.
Two changes in Stalwart 1.0 broke ihasmail for its readers:
- **Calendar.** A `CalendarEvent/get` naming `recurrenceOverrides` together with `utcStart` or `utcEnd` now fails whole, even with no ids, so no calendar would load. The everyday property list no longer asks for the overrides (an occurrence's are null anyway); the export asks with `SERIES_PROPS`, without the times.
- **Settings and Files.** FileNode renamed `nodeType` to `@type` (`"Directory"`, `"File"`) and `type` to `mediaType`, and each version refuses the other's names on create and update. ihasmail could make no folder on 1.0, its own included, so the settings file was never written and settings reset at every sign-in. The client now asks once per session which shape the server wants and translates FileNode calls in one place, `web/src/jmap/fileNodeShape.ts`.
**Checked**
- `npm run typecheck`, `npm test` (1562 passed), `npm run build`.
- The compatibility test, extended to read events with both property lists, expand a weekly series, and write, find, update and read back the settings file through the client's own translation: 6/6 against real 0.16.27 and 1.0.0 servers (the images CI pins).
- The app by hand against 1.0.0: calendars load and draw a weekly event; a setting survives signing out and back in, with the browser's storage emptied in between; the Files view loads with the app folder hidden.
**Not in this PR:** 1.0 returns `myRights` for folders only, so rename, delete and editing show as unavailable on files there. Recorded in KNOWN-ISSUES.md.
Two changes in Stalwart 1.0 broke ihasmail for its readers (#66).
A CalendarEvent/get that names recurrenceOverrides together with utcStart
or utcEnd now fails whole, even with no ids, so no calendar would load.
The everyday property list no longer asks for the overrides; an
occurrence's are null anyway. The export, which needs them, asks with
SERIES_PROPS, without the times.
FileNode renamed nodeType to @type ("Directory", "File") and type to
mediaType, and each version refuses the other's names on create and
update. ihasmail could make no folder on 1.0, including its own, so the
settings file was never written and settings reset at every sign-in. The
client now asks once per session which shape the server wants (a query
sorted by type, which 1.0 refuses as unsupportedSort), asking the
reader's own account, and translates FileNode calls in one place,
jmap/fileNodeShape.ts, so the rest of the app keeps the shape it was
written for. A filter by nodeType, which 1.0 answers with nothing, is
dropped there; the Files tree already sorts folders from files itself.
The compatibility test missed both because it never made these calls. It
now reads events with both property lists, expands a weekly series, and
writes, finds, updates and reads back the settings file through the
client's own translation. Run against real 0.16.27 and 1.0.0 servers,
and the app was checked by hand on 1.0: calendars load, and a setting
survives signing out and back in.
Fixes#66
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes #66.
Two changes in Stalwart 1.0 broke ihasmail for its readers:
CalendarEvent/getnamingrecurrenceOverridestogether withutcStartorutcEndnow fails whole, even with no ids, so no calendar would load. The everyday property list no longer asks for the overrides (an occurrence's are null anyway); the export asks withSERIES_PROPS, without the times.nodeTypeto@type("Directory","File") andtypetomediaType, and each version refuses the other's names on create and update. ihasmail could make no folder on 1.0, its own included, so the settings file was never written and settings reset at every sign-in. The client now asks once per session which shape the server wants and translates FileNode calls in one place,web/src/jmap/fileNodeShape.ts.Checked
npm run typecheck,npm test(1562 passed),npm run build.Not in this PR: 1.0 returns
myRightsfor folders only, so rename, delete and editing show as unavailable on files there. Recorded in KNOWN-ISSUES.md.