gitoriaLog in with ident

calendar

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Branchmain2881119fcalendar mission 001 (4/4): code order — README layout + same-output test, STATUS, LOG, report; tests/letcount.py (sub-folders), tests/realdata-baseline.mjs, tests/realdata-compare.pymremain/CONCEPT.md

2.7 KB

  1. # calendar.worldapi.org — concept
  2. A calendar PWA in Hybriel (hl:web), login via ident. It is meant to replace the creator's Android and desktop calendar.
  3. Source of truth = the creator's words below; everything under "Decisions" is the architect's, changeable on request.
  4. ## The creator's words (chat, 2026-09-25, verbatim)
  5. > so the next thing i want to start is calendar.worldapi.org - as a first it just shows a monthly view, you can page
  6. > through with prev and next buttons on top and the name of the month and year in the middle. however that can already
  7. > be a component for hybriel components. since we also will need a date selector on input fields. standard html has date
  8. > selectors but for example no date range (i think?). next step for calendar is then implement ident and let me add
  9. > (private) events. i want to replace the android and desktop calendar with this calendar as pwa. next would then be to
  10. > test the offline realm idea by having the pwa act offline, for example send a notification before an event. event can
  11. > carry reminders. i want to set in the calendar settings that every event automatically gets reminded 1 hour before the
  12. > event and the day before at 20:00. events can also carry custom reiminders. these calendar events should already use
  13. > worldapi event definitions.
  14. > the worldapi definitions are changeable. they were made in theory. not used in practice. so if anything else is needed
  15. > or is unpracticable propose changes.
  16. > yes go ahead. make decisions on your own. if i dont like something i will request changes afterwards
  17. ## Steps (one ticket each, in this order)
  18. 1. Month view: prev / next buttons on top, month name + year in the middle. The view is a Hybriel component from
  19. components.hybriel.worldapi.org (built there first, vendored here).
  20. 2. ident login; add, edit, delete own (private) events, stored as WorldAPI Events (https://worldapi.org/standards/event).
  21. 3. PWA: installable, works as the everyday calendar on Android and desktop.
  22. 4. Reminders: calendar settings with default reminders (1 hour before, the day before at 20:00) applied to every event;
  23. custom reminders per event; notifications — also when offline (the "offline realm" test).
  24. Later: import / export (iCal) from the old calendars, recurring events in the UI, date / date-range pickers in forms.
  25. ## Decisions (architect, 2026-09-25 — changeable)
  26. - Events use the new WorldAPI **Event** standard (written 2026-09-25 because none existed); dates: instants ISO 8601 UTC,
  27. events carry local time + `$timezone`, all-day = date only (worldapi conventions changed the same day).
  28. - Week starts on Monday; month and weekday names follow the browser's language; today is marked.
  29. - Storage: hl:mpackdb in `storage/mpackdb/`, `@id` keys. Port 127.0.0.1:45005, container `calendar.worldapi.org`,
  30. vhost + cert exist (Byrodin).

Branches

  • mainmain branch

Latest commits

  • 2881119fcalendar mission 001 (4/4): code order — README layout + same-output test, STATUS, LOG, report; tests/letcount.py (sub-folders), tests/realdata-baseline.mjs, tests/realdata-compare.pymre
  • 3b2a4cd0calendar mission 001 (3/4): code order — let only where reassigned (147 dropped incl. components/month-view; 110 left: 67 reassigned, 43 loop-bound); gates 78/0 (3 of 4 runs; 1 known 'next month' flake) + 18/0, live-data run = step 2mre
  • f5ce6b1dcalendar mission 001 (2/4): code order — topics, map, thin faces: lib/util.hl, lib/events(-helpers).hl (+calendarView/settingsView/soonOf), lib/settings.hl, lib/users.hl (+userOfLoginCode, tagOf), lib/api(-helpers).hl; project.hl = map; login route takes &req/&sessions (failed-login reason now kept); gates 78/0 + 18/0mre
  • c6fbd011calendar mission 001 (1/4): code order — files moved: lib/events.hl, lib/users.hl, components/styles.hl (imports only); gates 78/0 + 18/0, live-data run identicalmre
  • d6c59290calendar: Hybriel master 06617221 (plugin allocators 3a781359 + 413f60e4, mpackdb 2cb7ae5e, http1 773de63e); gates 78/0 + 18/0mre
  • 7bd0337ccalendar: Hybriel master 190aa11d (fc838894 GC correctness, #126 closure scopes, #127); gates 78/0 + 18/0mre
  • ff41310ccalendar: Hybriel master 8efba065 (#126 memory, #48 lambda copy; audit: no & needed)mre
  • 14ba08c7antcolony#40: mission references point to the moved missionsmre
  • 99c73346antcolony#40: history (LOG.md), worker briefs (missions/) and reports moved here from antcolony, numbered per project; old numbers in antcolony docs/mission-map.mdmre
  • 76edaa62calendar: Hybriel master ff51cf46 (re-vendor round, static workaround removed)mre
  • 90a3fc2cdeploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
  • 6722b72ddeploy.sh: never send .git or .gitignore to Byrodinmre
  • be099807State of 2026-09-27, before the move to gitoriamre