gitoriaLog in with ident

notes

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Commit47db4fc147db4fc1notes mission 002 (3/4): code order — let only where reassigned (58 dropped; 34 left: 19 reassigned, 15 loop-bound); gates 50/0 + 18/0, live-data run = step 2mre47db4fc1/lib/notes-helpers.hl

1.1 KB

  1. // lib/notes-helpers.hl — what lib/notes.hl looks up (notes mission 002, code order): the size limit, the tombstone
  2. // check, the version stamp and the copy mark of a conflict.
  3. import { now } from 'hl:time'
  4. static maxText = 200000
  5. static textError = (text) => {
  6. if (text == null || hlTypeName(text) != 'String') { return 'the note must be text' }
  7. if (text.length > maxText) { return 'the note is too long (at most ' + maxText + ' characters)' }
  8. return null
  9. }
  10. // alive = not deleted (gone == 0; the row of a deleted note stays as a tombstone)
  11. static isAlive = (n) => { return n != null && (n.gone == null || n.gone == 0) }
  12. // the version stamp of an edit made at `at` (the browser's clock): never in the future, always after `prev` —
  13. // so the sidebar order is the order the edits were really made in, and a version stamp is never reused
  14. static stampOf = (at, prev) => {
  15. t = now()
  16. cand = at > 0 && at < t ? at : t
  17. return cand > prev ? cand : prev + 1
  18. }
  19. // the line at the end of the version that lost a conflict (kept as a note of its own)
  20. static copyMark = '
  21. *(kept as a copy: this note was changed on two devices at once)*'

Branches

Latest commits

  • 47db4fc1notes mission 002 (3/4): code order — let only where reassigned (58 dropped; 34 left: 19 reassigned, 15 loop-bound); gates 50/0 + 18/0, live-data run = step 2mre
  • 3f8cb383notes mission 002 (2/4): code order — topics, map, thin wrappers: lib/util.hl, lib/notes(-helpers).hl, lib/users.hl (+userOfLoginCode, tagOf), lib/api(-helpers).hl; project.hl = map; login routes take &req/&sessions (failed-login reason now kept); dead notes#1 functions removed; gates 50/0 + 18/0mre
  • 8cda5412notes mission 002 (1/4): code order — files moved: lib/notes.hl, lib/users.hl, lib/jsoncheck.hl, components/styles.hl (imports only); gates 50/0 + 18/0, live-data run identicalmre
  • 47dad68bnotes: Hybriel master 06617221 (plugin allocators 3a781359 + 413f60e4, mpackdb 2cb7ae5e, http1 773de63e); gates 50/0 + 18/0mre
  • a4a2b2aeantcolony#40: tracker missions moved too — references to them in missions/reports/LOG.md updatedmre
  • 3dea0ef2notes: Hybriel master 190aa11d (fc838894 GC correctness, #126 closure scopes, #127); gate 50/0mre
  • e27c7d71notes: Hybriel master 8efba065 (#126 GC by bytes, #48 lambda params copy; audit: nothing to fix; gate 50/0)mre
  • 124613b6antcolony#40: mission references point to the moved missionsmre
  • 1ca2f34dantcolony#40: history (LOG.md), worker briefs (missions/) and reports moved here from antcolony, numbered per project; old numbers in antcolony docs/mission-map.mdmre
  • 2bebebdanotes: Hybriel master ff51cf46 (re-vendor round)mre
  • 3eff126dnotes#3: installable app (manifest + own icon/favicon; notes' own sw.js kept)mre
  • 9883c540deploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
  • eee693b8deploy.sh: never send .git or .gitignore to Byrodinmre
  • c8904061State of 2026-09-27, before the move to gitoriamre