-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
94 lines (85 loc) · 6.39 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
* Write Lean Canvas App
* Look into the return value of GetTypeName in FieldIntRegister and FieldIntCounter
* Add a test for viewing an email we have received also display it encryption status
* Convert the unittest.py file to use pytest or similar break up into smaller files
* FieldList does not store the order in the SQL lite on disk database
* Review all instances where testingmailserver.ResetMailDict() is called. This needed to be called inside share_trello_board feature and should not have been
* Form new checkers has lots of hard coded stuff in it review and remove junk
* Test chatter and retry messages and receiving multiple times
* Mock all windows in the BDD tests
* All edges need to include a user or session creating them in the data structure. Because otherwise two identical FieldIntCounter edges can be added to give an invalid total
Currently Working on
* Move todo list to github issues
Finished
* Write multi chat app
* Write Trello app
* Add unittest to verify when two documents of (possibly) different classes are added to the same dc they save and reload correctly (they don't appear to)
* Add support for list CFRDT
* Rename FieldList to FieldCollection since it is not a list because it is not ordered
* Add support for history depth as a timestamp for the list CFRDT
* Write checkers app
* Add support for counter CFRDT
* Rename FieldInt to FieldIntRegister since we are adding FieldIntCounter to stop confusion
* Write simple encrypted email app
* Change code to use SSL - we need to patch we the test against the local server because we can't emaulate SSL locally
* Change new message dialog to sending emails via the demux
* Write BDD Test for settings dialog (pressing OK actually saves data)
* Write BDD Test for settings dialog (pressing Cancel actually does nothing)
* Require edges received off the net to be signed by a known contact
* test saving multiple objects (both mutable and imutable in a database)
* change ReceiveEmailByPOPTestCase and SendEmailBySMTPTestCase to use the demux
* Demux needs to be able to save to a file
* Rewrite DetectsLivewireEnabledSenderExistingContact, DetectsLivewireEnabledSender, SendEmailBySMTPTestCase, ReceiveEmailByPOPTestCase should be changed to use the testingemailserver infrastructure that more accurately emulates a real email server
* fromrawbodytest should accept a list of lines not a single string. Also maybe the full version of this function should be used
* add chains of mutable objects. So we can record events and know we have the correct sequence
* Remove global variables from the old app MessageStore and place in the Demux class
* In document collection objects should be a dict of dicts not a dict of lists
* Remove the DocumentCollection.documentcollection global
* BDD harness finished in lettuce
* Make sure the demux correctly handles multiple queued up emails
* Add unit tests to test edge listener functionality of both documents and collections
* Test sharing of immutable objects
* Handle app routing of messages (we receive a message on the wire intended for an app how do we send it)
* Ensure apps can send out updates of shared data.
* Update handling including when edges are replayed
* Store ImmutableObjects in database
* Transmit ImmutableObject via JSON
* Add support for imutable data records ie things that would record information from sensor at a certain time. Temp at 1pm is 26c
* Test that a three way merge works. Ie produce a graph with three dangling edges and replay it to produce the correct result
* DocumentObject __setattr__ only needs to skip on insetattr other are filtered out by doop fields
* Test performance of merging hundreds of edges
* Change AddEdge functions to addedges and send edges around in groups for performance reasons
* Change startnode and endnode addressess to be hashes
* Change md5 hashes to sha256
* Add a more realistic way of sending edges around. This would involve sending edges and adding them to a a document and detecting dangling edges and ophaned edges and whatever odd scnarios happen
* Test receiving an unplayable edge that is not a merge edge with a missing startnode
* Add the ability to freeze edges - this is from the traingles app
On Hold
* Add unittests for smtp and pop logins
* Add unittest to test email received with Date stamps
* createdocumentcollection message creates a document without asking the user for permission
* Documents with no activity cannot be shared. This may or may not be a problem
* Make edge reversible so we can get back to data that used to exist
* Stop directly accessing the history graph access it via methods on the Document class
* Put special DOOP fields into a Meta class as per Django Models
* Replaying the graph has a pattern like ProcessGraph, RecordPastEdges, ProcessConflictWinners, Replay see Document.Unfreeze clean this up and make one function
* Add transactions, we could store them in edges with multiple commands to reduce metadata requirements
* Send our full contact details at the end of handshake
* Handshake if we are given a livewire URI. Ask the other end for their full key (livewire URL to only have fingerprint), giving them our at the same time. Then send them our full contact details once we hae theirs
* Handle simple encrypted text messages
* Have two parties in a conversation successfully request missing edges.
* Make testing server thread safe by replacing Dict with FrozenDict
* Demux plain email don't include the full name of the sender
* Test we receive normal emails OK including not sending confirmation emails
* Require encoded messages to be signed
* Remove tests that manually handshake and send encrypted messages and use a Demux instead
* testingmailserver.ResetMailDict() is used too often in tests somehow deleting things is not working correctly
* Changes made while frozen should not be shared
* check mockpoplib is correctly emulating the behaviour of real email
* Remove sqlite for the messagestore and use our own document structures
* Make sure the Demux saves and reloads our info correctly on program restart
* Add key rotation support
* SettingsStore should assert if we attempt to Load or Save an unknown setting
Rejected
* Switch to SQLite JSON storage - SQLite's JSON storage appears to be too combersome for this for now. Relational is good enough
* documentcollection is used by HistoryEdgeAddChild to lookup the class when replaying. Should this info be stored elsewhere (eg in the history graph) No documentcollection is a database the classes are part of the schema