Skip to content

Latest commit

 

History

History
60 lines (57 loc) · 2.32 KB

TODO.md

File metadata and controls

60 lines (57 loc) · 2.32 KB

v0.7:

  • join_delete_acount test is failing intermittently
  • found in CI (join_delete):
    • [2018-02-09][16:55:27][ERROR] dispatch::process() -- error processing: {"err":{"message":"key for user not found (Some("7"))","type":"not_found"},"file":"src/turtl.rs","line":507,"wrapped":true}
  • integration tests
    • !! test sync after logout WITHOUT clearing app data (need to test incremental sync) !!
    • sync:pause
    • sync:resume
    • sync:get-pending
    • sync:unfreeze-item
    • sync:delete-item
    • profile:find-notes
    • profile:get-file
    • profile:get-tags
    • profile:sync:model
      • edit a note with a file (without re-uploading file, ie just edit title)
        • does the file still remain?
        • does the sync system break in any way?
      • move space
    • check migrate w/ bad login (should fail)
  • premium
  • profile
    • calculate size

later:

  • document core API
    • dispatch endpoints: expected responses, possible errors
    • ui events that can fire (and associated data)
  • upgrade sodiumoxide, re-implement AEAD (ietf) over new version (annoying)
  • MsgPack for core <--> ui comm
  • type system enforce crypto
    • split protected model types (encrypted (for storage), encrypted (in-mem))
    • storage sysem ONLY accepts encrypted model types
    • UI messaging layer ONLY accepts decrypted model types
    • encrypting and decrypting BOTH consume a model and return the new type
  • implement i18n? the number of strings grows as the validation strings are moved into the core. right now stubbed out as t! macro in util/i18n.rs
    • thinking core should NOT own i18n, it should be owned by each interface
    • we can port the few translations over from js we need (space/board names, validation errors) and leave it at that.
  • move Turtl.find_model_key(s) et al to protected model (or wherever appropriate)
    • profile loading
    • messaging
    • key management
  • file writing locally: use buffers/locks: { let mut out = File::new("test.out"); let mut buf = BufWriter::new(out); let mut lock = io::stdout().lock(); writeln!(lock, "{}", header); for line in lines { writeln!(lock, "{}", line); writeln!(buf, "{}", line); } writeln!(lock, "{}", footer); } // end scope to unlock stdout and flush/close buf