CoolFace
Datasetpublic

wakamex/github

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes2.7kdownloads
Peergos_Peergos.json1 linesDownload Raw Back to root
1[{"node": {"oid": "805cc8d2f977229f89955a8b659df5e544075f7e", "messageHeadline": "Fix quota in account deletion", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6c0d3be2eb7298050bc7fc12472cd7165e53faf9", "messageHeadline": "Support mimetypes for gzip, ps, json, rar, otf, ttf, aiff (audio) and\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 2}}, {"node": {"oid": "849321288b655019b5be676530314ccd0578593e", "messageHeadline": "Add mimetype test for truncated utf-8", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "2a0d1640c765155e8c8e2694951b7b063899f212", "messageHeadline": "Support UTF-8 text in mime type parser", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 5}}, {"node": {"oid": "12ec589e841fd51233bff15d4d3eb27761efca15", "messageHeadline": "Treat http connection refused as rate limited", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "626191ff0d25536e6d102a149e43c3d2ee27e369", "messageHeadline": "Handle null error stream", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "ee17750c04f0cd929cea45532c13e1e7cebcd613", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "f81a0b5166c152022dce0cef99acb4953f110d46", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "3a8fcaa37c6ab4bd77ac00f451024795bff0db12", "messageHeadline": "Merge pull request #1123 from Peergos/update/nabu-kademlia-only-publi\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "d6dc29534a950e17d2e1963b24fa68e135efdb99", "messageHeadline": "Update nabu - only return public addresses in kademlia", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "4310d2acd9b5a271e5f6d463855a5e99e8596473", "messageHeadline": "Merge pull request #1122 from Peergos/update/nabu-kademlia-routing-table", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "90bd73c0b0eb9254284c358844b07d3aed23d95a", "messageHeadline": "Don't call identify or kademlia on incoming connections for peers we \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "61f0d2eec779491767d6c11eb121c78fdfb09ac4", "messageHeadline": "Merge pull request #1121 from Peergos/update/nabu-kademlia-routing-table", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "1e77baa7f322203a654f88df33fbf2f5057b5f18", "messageHeadline": "Fix kademlia routing table", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "3ddd0994b7633bb83e56fb9ae74c4e696a347bc8", "messageHeadline": "Remove webrtc csp which has not been implemented by browsers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "067db88dc635f21f1043d59e8b4e9c31b14db664", "messageHeadline": "Merge pull request #1120 from Peergos/update/nabu-v0.7.1", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "7141779fd53c468eb5fd1db3a83a80003885c1fb", "messageHeadline": "Upgrade to nabu v0.7.1", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "a71b9a3bb3b1e305d0f051ab4d5e4e12471b758f", "messageHeadline": "Handle apk mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "39d8537270bfe73f7d192ede6b97677d4b0e2ed9", "messageHeadline": "Merge pull request #1119 from Peergos/fix/better-gc-errors", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 21}}, {"node": {"oid": "449be52f8edaf3a07d4c0ad2d0790181a13316a3", "messageHeadline": "Make GC tolerant to links to non-existent blocks", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 20}}, {"node": {"oid": "e2fd6e20a26f7845912519756cf81fa0832c1f2d", "messageHeadline": "Add integrity check method to GC to check all users' blocks are present", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 1}}, {"node": {"oid": "f414715c30b542e273673cd583d9b6d9cf45a2f3", "messageHeadline": "Merge pull request #1118 from Peergos/fix/better-gc-errors", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 12}}, {"node": {"oid": "06539d5ce78c48540f5acf57819963ddcd48770f", "messageHeadline": "Give more information during GC errors,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 12}}, {"node": {"oid": "f833e7a7dbd1544fda2054a54b0b8351ce5194c4", "messageHeadline": "Merge pull request #1117 from Peergos/opt/cbor-block-cache-in-s3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 44}}, {"node": {"oid": "a4ae3e545232ef389085207f2bb8a50cae093a18", "messageHeadline": "Cache cbor blocks in S3 puts as well", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "21e7ee8266dc256261fefba0d4beb5a891b7d482", "messageHeadline": "Add a local cbor block cache for S3 to make champ.gets >10x faster.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 44}}, {"node": {"oid": "5dc1e28ce9da3709e42604b344add8fedc03910e", "messageHeadline": "Merge pull request #1116 from Peergos/opt/usage-update-on-start", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 104, "deletions": 7}}, {"node": {"oid": "f93220eceb943bf7d883232a103e77b0cbc7aa99", "messageHeadline": "Fix usage update during migration", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "74ee5448554ee9f16a496b0ab78ddc23cef62726", "messageHeadline": "Include owner in getAllWriters", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6f969e3b9a02d7c36e1a686d5addbfb5748fb762", "messageHeadline": "Don't query blockstore when calculating usage for users that haven't \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 91, "deletions": 6}}, {"node": {"oid": "d4121240dff263933c03ae25b51c9bf888ccb5fb", "messageHeadline": "Count S3 InternalError as a rate limit exception", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 5}}, {"node": {"oid": "d0752bdcf38eb6fe75a2f60562e7b7538f058913", "messageHeadline": "Add util to check a versioned bucket is in canonical form", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 98, "deletions": 0}}, {"node": {"oid": "332c331a5f501e8dcbbe1060564a2a7b727eab14", "messageHeadline": "Handle rate limits in S3 bucket copy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "1f7af6824dc36bb433124b8220abb1a1dfc2b67a", "messageHeadline": "Increase social feed request count test number", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "3fc9a98a7ea42c4b9ded2084f8512de286a5df98", "messageHeadline": "Bump minor version", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "85871d9bbddd53350e7e34085f73beab5d7ce5b3", "messageHeadline": "Merge pull request #1107 from Peergos/fix/notes-app-support", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 4}}, {"node": {"oid": "8747979b3d232107b2c5976de5f184aa2d19b80e", "messageHeadline": "add back host to default-src", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "143b71e5bcb76e28c1f94f4de94a6cdb3516de04", "messageHeadline": "add both a default-src and script-src", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1e29064f1649590ffd6388c71e86a10401034c76", "messageHeadline": "apply to subdomains only", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 17, "deletions": 13}}, {"node": {"oid": "3baa581ff625d638ea08ab3d4bbd041274d5472f", "messageHeadline": "support notes app (.note files) as a first class format like .md", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "ebfbb411a9b10313d396c4ac4b015cb387213ae2", "messageHeadline": "Update nabu jar - tolerant blockstore listing, v0.7.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "374dc6e4839e00a310e94a4493b5b691115f9c98", "messageHeadline": "Merge pull request #1112 from Peergos/fix/remove-legacy-kubo-data", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 14}}, {"node": {"oid": "813f19c533594f31dcba9c24f5c48f2fc64dfbbc", "messageHeadline": "Fix new filename parsing in FileCAS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "f4d2f47620a70966096a90258b403625d3dc9ca6", "messageHeadline": "Add util for removing legacy kubo blocks which are protobuf", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 10}}, {"node": {"oid": "d45521c2c08e21b816996fb0d250c32e9a0d1f4c", "messageHeadline": "Disable updating Nabu metadb", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1ad13e918ab6c8d0eb2c3bbb88554b4b274f34d8", "messageHeadline": "Merge pull request #1111 from Peergos/fix/direct-listing-of-blockstore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 17}}, {"node": {"oid": "538419d18e32ad694f3a3850f270ba3ea67353de", "messageHeadline": "Update Nabu jar - include direct listing of blockstore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "f208e5e4892d3147dc48632ab4ac56011cdca6a2", "messageHeadline": "List blockstore directly when populating metadb", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 17}}, {"node": {"oid": "40c3325a11ade60a05d086e15e5dbda4ee6cf524", "messageHeadline": "Merge pull request #1110 from Peergos/fix/always-populate-metadb", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 4}}, {"node": {"oid": "f9b415fcebf5091ff9c867212d0604e8a6ffe27a", "messageHeadline": "Bump block metadb file name to ensure everyone updates metadb", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "dc7deffe7f6f7c031b0d9057c4982caabad9f4c7", "messageHeadline": "Make sure block metadata db is populated for file block stores too!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 3}}, {"node": {"oid": "733fe94dead2f15131af91310ed9c48b816af455", "messageHeadline": "Merge pull request #1109 from Peergos/feat/bitswap-auth-without-block", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "f7b530bfd510010703e0706fa46a900d8d1df52f", "messageHeadline": "Don't retrieve blocks to auth them in bitswap", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "4c3458478d2318ace3832e366e8a340d50532249", "messageHeadline": "Merge pull request #1108 from Peergos/fix/bat-auth-with-bare-peerid", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 4}}, {"node": {"oid": "c5b257a3596fb4ae3fcc8331e1f740e17f05cbbf", "messageHeadline": "Make sure mirror core nodes mirror all blocks under pki key", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 2}}, {"node": {"oid": "015225162218a06b00dd8c4778521134f2a73da2", "messageHeadline": "Keep wrapped peerids, but use bare peer ids in bat auth", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "c42ecd61da1433cb60739924bbbecf6a6ebad00f", "messageHeadline": "Improve message on how to sign up", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "2a3fee90b6ccadc92748e91f89a661b6754c661f", "messageHeadline": "Revert requiring wrapped peerids for bat auth", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 4}}, {"node": {"oid": "70f3a5676b12b1c131b76077aa5919ddeb145842", "messageHeadline": "Merge pull request #1103 from Peergos/feat/decimal-storage-sizes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "9efaca4d71515851a8179fa9275783acffef54a9", "messageHeadline": "update nabu jar - add more kademlia metrics", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "42adaf8d557d873fa46d3c77459546973a4a8ff7", "messageHeadline": "Merge pull request #1106 from Peergos/feat/auth-bare-peerid-guard", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "8945b3b587aae2decbdb46e404dce0a7a1b8817a", "messageHeadline": "Guard against using bare peerid in BAT auth", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "b8bcf266b931a7f40297c3fc3497bcfc570b9002", "messageHeadline": "Merge pull request #1105 from Peergos/fix/save-identity", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "ff7df6e705cb4e60752fe61a3a15a2115a8ac3ba", "messageHeadline": "add identity to peergos config if read from ipfs config or generated", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "1d07c35411c449638bfff2238f1966db0006278d", "messageHeadline": "Revert using bare peer id generating bat auth", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e2ca8f521c8f57d53077754a851b082b63bec43b", "messageHeadline": "User bare peer id when generating auth", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "2f0029db35c74dfa2f4d8c783eef20e32cff1168", "messageHeadline": "Mirror peergos user in S3UserTests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "9a90315715695aad32fd47c8542e0d194290038c", "messageHeadline": "Switch to decimal storage sizes in UI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6f992765a86d7af95310d62c93d01bda52fad07f", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "aaba2fc44699a7e6909c89558007c5bcd05641be", "messageHeadline": "Update README.md - remove ipfs-nucleus ref", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "c7dd41e1f3f33035cd2b364dd5fc8b8b2573a3aa", "messageHeadline": "Bump version to v0.14.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d06ae790ffb004d7dbdf8ef9763443e932606f65", "messageHeadline": "Don't log when blocking aggressive bitswap connections", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "b4141071caa5b32d446c0fa1ff44aabea63ba5ab", "messageHeadline": "Reinstate default bootstrap node list!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 22}}, {"node": {"oid": "06eb944c4d1f21c6fcda2f0cb0ecbbc8f9a6c3b1", "messageHeadline": "update nabu jar", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "ed5a51ed8afd90eeced451b236e31adb10f220dc", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "454806075280ee2f8962cd13ba6e51cf3ab0e505", "messageHeadline": "Make starting prometheus exporter idempotent", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "e30c8a8ba7ff75917125378bc90ee43ce17e0e57", "messageHeadline": "Fix ipfs metrics", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 1}}, {"node": {"oid": "cd75ee61357516af6788aae5077876094b1c9ba1", "messageHeadline": "Enable metrics in IPFS command (#1100)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 24}}, {"node": {"oid": "f1ef961a32bedb298257190261d12a2b01e84517", "messageHeadline": "Merge pull request #1099 from Peergos/fix/update-nabu-s3-metrics", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "af8caeab77f0f2cf1ed2f5b87ca59e9679d626f9", "messageHeadline": "update Nabu.jar file", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "75ccbcc60227b35b2bc25b014823dbc40069bac7", "messageHeadline": "Merge pull request #1097 from Peergos/feat/auth-allow-target", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 139}}, {"node": {"oid": "b08a9daa4f3e2077a58ee5ace74a91bfa0cfc014", "messageHeadline": "Remove unused imports", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "422347272c8bb843365cb08752bda045adcc181b", "messageHeadline": "Remove unnecessary arg from IPFS command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "c156d288829dd8c22733645eb1601bb2874fe818", "messageHeadline": "Simplify IpfsWrapper", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 50}}, {"node": {"oid": "dc4c832e2687965d4c5b69c2c0e8281d7386813a", "messageHeadline": "try moving params once more", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "76f80a86b21e0f6049d40605507e8adc2827ab7f", "messageHeadline": "make same change, but in a different place", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "88ebeefac059a9ef11b0d4e84a147298612e91bf", "messageHeadline": "another case where param needs to be set", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "72218ed772e95e87547d634c8648926a6146168c", "messageHeadline": "add missing param", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "28f331172c341dcb6e2b07a83673d3d68b6f0b27", "messageHeadline": "move object construction to launch method", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 37, "deletions": 11}}, {"node": {"oid": "8db1cb564e4b515b84e22edd5f2947d7b440af14", "messageHeadline": "Merge pull request #1098 from Peergos/fix/timezone", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "89b4bc7c851bfc852f53deacbf78061c102fc4c3", "messageHeadline": "Fix timezone for block auth generation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c7d251edb660bd4a9bd349191da450081926b816", "messageHeadline": "always inline auth", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 15, "deletions": 119}}, {"node": {"oid": "813bdb6091d536fce6737cd5f88029605864b67a", "messageHeadline": "Log failing bat id when no matching bat is found", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0fe70573d75a1fbb135f4edd29a5b9093e8f3fc2", "messageHeadline": "inline BlockRequestAuthoriser calls", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 49, "deletions": 32}}, {"node": {"oid": "0297429fc025cb1ab6fc25aa4aa1af6482837abe", "messageHeadline": "Merge pull request #1095 from Peergos/fix/authed-storage-id", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "d82dc1b66c9a2bc993efa7dd77fb18af9070b4fb", "messageHeadline": "cache peerId in AuthedStorage", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "d81d24017659f395cf5ad301dd58b4a6aa4f0a40", "messageHeadline": "handle NPE", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "baa2607122fa023817424f89fa187e2059c745d9", "messageHeadline": "Use Nabu (#1094)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1616, "deletions": 1819}}, {"node": {"oid": "c11f3326b08e6076f8ad2987f64616f47b096417", "messageHeadline": "Support ed25519 pki peerid", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "74c0c6296959e07fed4e967ead3ed379bb931e0e", "messageHeadline": "Merge pull request #1087 from Peergos/feat/owner-block-get-hint", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 359, "deletions": 509}}, {"node": {"oid": "24082376cf964e459f60fe090d84eebaa1bda789", "messageHeadline": "Add owner as a hint to block.get for where to find block", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 359, "deletions": 509}}, {"node": {"oid": "9e75ac596ee7389a80354f7472de089e9d7666d7", "messageHeadline": "Merge pull request #1086 from Peergos/fix/social-cas-exception", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 16}}, {"node": {"oid": "c369e11bcdf183e6bab2f7d8d51a0a1178148b0a", "messageHeadline": "Fix CAS exception making social post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 18}}, {"node": {"oid": "6bd90a2b39fb3df93ccd36bb6007522701737678", "messageHeadline": "add failing unit test", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 41, "deletions": 0}}, {"node": {"oid": "6eaf319da2419310194b3067babe6201c95b3477", "messageHeadline": "Merge pull request #1084 from Peergos/feat/metadb-progress", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 7}}, {"node": {"oid": "c8203fba2fd5420e4f6150616aeca3493e636b1f", "messageHeadline": "Treat http 502 as a rate limit exception", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "9c9239db5f8780ea8c679e3a4c060609830fd176", "messageHeadline": "Don't put incorrect size for raw blocks in metadb with S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "e416ada5542705d46ebcb0e94ec65f7dadd9ce92", "messageHeadline": "Intra batch parallelism slows down loading metadata db!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "44249b7565ad00a228021b7c4db927f25c052382", "messageHeadline": "parallelise within batch loading metadata db", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "dc6d13e845e439e949744a4119047060e62e49f3", "messageHeadline": "Log progress when populating metadb from S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 2}}, {"node": {"oid": "fee9df3ec8200781d888f76e7149a0430a922b1b", "messageHeadline": "Merge pull request #1082 from Peergos/feat/bats-in-metadata-store", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 675, "deletions": 416}}, {"node": {"oid": "2a5cc3f36ac2fedc1e36220a5a821538b9b611c1", "messageHeadline": "Fix S3.listRawBlocks", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "a1c2089f3111fa41ba1586aa6ce4894c6c942b96", "messageHeadline": "rename method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 9}}, {"node": {"oid": "e3ed6aa4db92d2554ee20bddda7dfeeaf495d2ee", "messageHeadline": "Remove debug", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "8e429a83eba7633bac3552f0ac577860887997bc", "messageHeadline": "Short circuit getLinks on raw blocks in metadata caching storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "50ea662e3891d051a04b8c85796a91626a12cb70", "messageHeadline": "Handle identity blocks in S3.getBlockMetadata()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 1}}, {"node": {"oid": "58a3454d54711f2a420acaa5b997d14835a14db9", "messageHeadline": "Give option for force GC to list from blockstore directly rather than\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "b357507c97f2f753e4eabe1484ad3059830da312", "messageHeadline": "Fix metadata sql for postgres", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "569d01caed3306c5364991d6579aec58c684b78b", "messageHeadline": "Log when building metadata db", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6266f8a7bd3b017a86d0451d421718f0b8a3b0c5", "messageHeadline": "Support postgres block metadata store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 88}}, {"node": {"oid": "a23ea91af1e74ab2de37ff27914709658c20ab1f", "messageHeadline": "Don't do direct reads for cbor blocks in S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6527fa83f5d438c17520dbc89892b2ed96a1455d", "messageHeadline": "And the other", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "70fec1693746471b2f68744443e66ea5b0cc08ff", "messageHeadline": "Fix NPE parsing headers!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "2a423ae846bd796940242f30d0ed7e2fff8d0a15", "messageHeadline": "Test null versions in metadata store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "1e4cdf3669f2c3a1c972bee93c9bebbebe96fe95", "messageHeadline": "Fix GC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 2}}, {"node": {"oid": "7e8bb8a11d017ff232f1784966cd4f2151ede678", "messageHeadline": "Store version in block metadata store (we still only store 1 version \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 249, "deletions": 146}}, {"node": {"oid": "83ef26c293cf4e17f32463f39407a3b520e6a892", "messageHeadline": "Test BlockMetadataStore.list()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "2ff2fc6e8030e9ec3633a437c652f43a966eb047", "messageHeadline": "Add list() to BlockMetadataStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 6}}, {"node": {"oid": "65364798198889477b8d28eaf318438151f280c6", "messageHeadline": "Fix CI env warning", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "3f44fccbc963e78dca321af25d294b30de76cdce", "messageHeadline": "Make S3 auth reads use block metadata store,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 87, "deletions": 69}}, {"node": {"oid": "4858ce6cd1c2c8b41c2e2b45baa59d8d6c7663e4", "messageHeadline": "Make metadata caching storage pass through getBlockMetadata", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 4}}, {"node": {"oid": "0e274e6715d9795bad940cf2c760ff545bf2b7f0", "messageHeadline": "Remove max file size from sqlite block metadata store.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 42}}, {"node": {"oid": "f4311b74bb6969496e3d5aa08df9473977634be6", "messageHeadline": "Fix quota tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "73e8c8d9d266303bf95cf7a6fc9c8dbf969a095d", "messageHeadline": "Store bats in block metadata store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 125, "deletions": 94}}, {"node": {"oid": "00231cfd569fed40d0b60f7001ccd5176508558f", "messageHeadline": "Fix chunk prefetcher going beyond end of file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "11dc900a3e944949b4463123372999e06433e5df", "messageHeadline": "Fix bulk S3 delete, by adding missing content-type header", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 10}}, {"node": {"oid": "c5d402001d6a9f5757f27b0cb8bcbfc858094fbf", "messageHeadline": "Merge pull request #1081 from Peergos/feat/versioned-s3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 532, "deletions": 96}}, {"node": {"oid": "8bc45d4b999b33ed33fef40a4a88e39d498e8f7e", "messageHeadline": "Fix bulk S3 delete breakage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4490d75a8b1ba321a108c9ac8871878b617b1774", "messageHeadline": "Fix telescoping getAllBlockHashVersions()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 3}}, {"node": {"oid": "57e338981af4c42600cc343f31df66fe1acc518f", "messageHeadline": "Implement support for versioned S3 buckets.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 503, "deletions": 96}}, {"node": {"oid": "1b88d759d69c14374b59e1e878710ca7f4e26f95", "messageHeadline": "Merge pull request #1076 from Peergos/opt/cacheless-delete", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 228, "deletions": 94}}, {"node": {"oid": "c3731656bd334fe31c9c973f57a767cb80080a56", "messageHeadline": "Update request count test numbers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "e76946d130a57488650e2c6e7e02abd6e93528f3", "messageHeadline": "Revert bulk writes until we figure out fix", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1656bc45cc720cc2f6b241d4eb1762de41222b12", "messageHeadline": "Make JavaPoster use different names.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "1e71798880bf1cbec713eb1295a3a2a0344a7a06", "messageHeadline": "Make JavaPoster use different names for each multipart block.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "295f48f8cc72172c9802463fed10540f676f5882", "messageHeadline": "Remove more printlns", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 12}}, {"node": {"oid": "0a01fa8029f04147bf48ef68c8ea7e27a2d42d9d", "messageHeadline": "Remove printlns", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 19}}, {"node": {"oid": "2469513399fa7a05410fd26d4fd1005bf6d2e23f", "messageHeadline": "Doing a delete with an empty cache (e.g. on a new device)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 246, "deletions": 88}}, {"node": {"oid": "98bc190a933fa8b317633a011621e51aca0fc1fa", "messageHeadline": "Add util class for printing block stats in S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 94, "deletions": 0}}, {"node": {"oid": "48ceb1b9bcdae0f324aebb4907aa56e1d0b52ab6", "messageHeadline": "Fix S3 not found on B2", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b16117518f5852256bf0f3acf28e921636626fec", "messageHeadline": "Merge pull request #1075 from Peergos/fix/parallel-bulk-puts", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "a128182327b361be881fecf3e9b225c9042b2d23", "messageHeadline": "Make S3 bulk puts happen in parallel.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "5ecd8f939060c1425775dfa16fded8d77611a314", "messageHeadline": "Fix S3 bucket copy between different providers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 21}}, {"node": {"oid": "a8cd416a946bc41a5fa8ddd82c9c801781969185", "messageHeadline": "Support S3 bucket copy between different providers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 5}}, {"node": {"oid": "a4b7a1fe5ff9bc2a1e1cb171ee00c31efd5b98d1", "messageHeadline": "Merge pull request #1074 from Peergos/fix/gwt-compiler-warnings", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 25}}, {"node": {"oid": "ac5e791e0fd08fe4f186339a60b4fbd41dcf6285", "messageHeadline": "Remove cbor gwt compiler warnings", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 26, "deletions": 25}}, {"node": {"oid": "898f53d48293b1e876a2b804f483a186020662cc", "messageHeadline": "Put open true in writable links", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f156f3103c73e3d9dcf2244e7a7c6cc8fafdf0f9", "messageHeadline": "Fix writable links (wrap in json)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "95a93e6eacef776501af403962d4d14cd2e48e34", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "39fcb85c5b184c766fc982c1e1c986bb51dc0f41", "messageHeadline": "Bump version to v0.13.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "71980b93439c99f298593f2a007e3755adbf6cb7", "messageHeadline": "Allow signup with token from CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "4245667b0f5824c1fc7abbe90c47a3f405cc3a46", "messageHeadline": "Add util for generating a writable secret link", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 0}}, {"node": {"oid": "ff628797afd5fb54ec47f12577788a702efea388", "messageHeadline": "Merge pull request #1064 from Peergos/opt/bulk-delete", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 92, "deletions": 0}}, {"node": {"oid": "120c0ea3a77809842f2d3c5396181992954cd76c", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2a97542f9b7ea80673eec9acbe6aeda6239911ba", "messageHeadline": "Add method to bulk delete some children of a folder", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 92, "deletions": 0}}, {"node": {"oid": "4a05b22569a7cb0ee2ad44fab0457c762051d46d", "messageHeadline": "Merge pull request #1063 from Peergos/fix/bulk-put-timeout", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 6}}, {"node": {"oid": "4e919ef7c45228c6d646f303d177971023673353", "messageHeadline": "Increase http timeout for bulk block puts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 6}}, {"node": {"oid": "d62a0776a061d0775e8371d4dc2d118766787433", "messageHeadline": "Merge pull request #1062 from Peergos/fix/bulk-write-small-blocks", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "14ef6eb8a1c29b48f6aeb5a2b2a5b4b657a85591", "messageHeadline": "Parallelise block puts in S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "e19c63eae85084b6bd82b28b89684fc5ba328268", "messageHeadline": "Allow bulk writes to a Peergos server", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "c908fcede7c90f2fe25f413973c06c4b5800ed37", "messageHeadline": "Merge pull request #1060 from Peergos/opt/parallel-chunk-downloads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 212, "deletions": 280}}, {"node": {"oid": "dd9fe1a4ea3fe169ba573b80b6469eb7b1ff85cb", "messageHeadline": "Make LISC prefetch max number of chunks it can", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "a648036fcb7ad42fa8fa77bc9d11aaf5f6c6abf8", "messageHeadline": "Unify pending logic in LISC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 9}}, {"node": {"oid": "e7bc9c72bb6b00d6665286c7ece0e46ffc18a16c", "messageHeadline": "Fix LISC regression", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "adf3ca48b45016fedf2ea1c9bcf964caa0845399", "messageHeadline": "Make LISC inline chunk reads wait on pending blocks rather than dupli\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 3}}, {"node": {"oid": "917ca2e4f20e22344a9359a053dd43eaa5bfd5f7", "messageHeadline": "Fix LISC log statements", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "eb8e7d9e6fe7cef3f881a72a4ecd61cade9ab2d4", "messageHeadline": "Make sure LISC doesn't redownload chunks", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "b575a905dc80ba1689c055488234b767b029fdfd", "messageHeadline": "Make sure chunks are only downloaded once", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "c795d428faf95868363b1af7fa982f1d98e89611", "messageHeadline": "Fix chunk index usage during LISC seek", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "ff78bd0978c4f301254f7b68a3d14d808f6529e8", "messageHeadline": "Fix offset calculation during LISC seek", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f8c35c5347040c697e1a8d237a63399c285aad13", "messageHeadline": "Make sure index is zeroed after a seek", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 9}}, {"node": {"oid": "889aaffb8e290e20b776d6c0a5f55f952bc77556", "messageHeadline": "Add test for seeking to the middle of a file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 0}}, {"node": {"oid": "3af8b1c1eb28f159b81c7947807966b90f281fae", "messageHeadline": "Don't re-add first chunk after seek", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "856604ef92785c7bae41a74e65a947a429d265cd", "messageHeadline": "Handle much later chunks in LISC buffer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 4}}, {"node": {"oid": "67d359fd7ea86c62aaeac81211e991518229b27a", "messageHeadline": "Don't clear LISC buffer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 5}}, {"node": {"oid": "d7e652ec4667743f79544c58a8a043cf8b3eaad6", "messageHeadline": "Clean up LISC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 8}}, {"node": {"oid": "cdb56edfc0ab7d910c84c09d7504dc30275fa027", "messageHeadline": "Remove prefetch from AsynReader interface", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 25}}, {"node": {"oid": "bfa88117828837f8c8389caf2228625178e8e7a0", "messageHeadline": "Use supplied number of chunks in LISC.prefetch", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6dc9d202fed31a9e238ebe0a854ec3a6ab50085a", "messageHeadline": "Return self in LazyInputStreamCombiner.seekJS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 31}}, {"node": {"oid": "064d92e9703a879c52bdfa69210c6cd894778135", "messageHeadline": "Parallel download working!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "caa612c6674936722fc02f8c4cbb223bc31fa698", "messageHeadline": "extract parallelChunksDownload method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 10}}, {"node": {"oid": "2fe28c19f6183929fa83fc2a2d75465212588284", "messageHeadline": "Fixes for parallel LazyInputStreamCombiner", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 13}}, {"node": {"oid": "529cfc3f52b2b06c1b8673a35b9e9e8e0680e2de", "messageHeadline": "Make sure bufferedChunks is never empty in LazyInputStreamCombiner", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "1c968fadf1336823c51a606ce82221204c427c23", "messageHeadline": "Make LazyInputStreamCombiner able the prefetch and buffer chunks in p\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 253}}, {"node": {"oid": "65c1ece32964a585bf024992913313aff3f58bd0", "messageHeadline": "Update README.md to require java 17", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6cfd6e1ec33b9bd9c4d7cb86be7167d0498c94ed", "messageHeadline": "Merge pull request #1050 from Peergos/feat/2fa", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1947, "deletions": 129}}, {"node": {"oid": "d3f3755c8576179925fa7bbc14039aa896d3a19f", "messageHeadline": "Fix totp test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "33d925131c3877bf49ff1d88589f711936107d11", "messageHeadline": "Remove csp prefetch-src which chrome had enabled by accident.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "38d86a8c82b52145c348621d5157cfe63e0cdb66", "messageHeadline": "Accept current or previous totp code", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "cb8110d2da7ec216e234c7a3ffaf09d4e0139f83", "messageHeadline": "Don't return disabled totp", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "abf9dfe767268c99ae6535135e714b28506b0694", "messageHeadline": "Return credentialId when creating totp", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 6}}, {"node": {"oid": "c0f8fe759262d92a606d968e8fff62943bb9fbdb", "messageHeadline": "fix order of parameters in SQL", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4e5941bc9cd705a056c32d1bbe7ed5c58e5e179e", "messageHeadline": "add convenience method for MultiFactorAuthResponse constructor", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "a59dd8689106df34b82b4460812996eba4e7f3e3", "messageHeadline": "fix arg name", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "642a46188c3bda4fec77583a449d2da0a8f2997a", "messageHeadline": "add 2 more JsMethods", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "238fee4cc42ab36c7a665f895cc4b515b1daf6d0", "messageHeadline": "Add missing default methods for security keys on Account", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 0}}, {"node": {"oid": "896ad1eded20937355b45cdd35679ce34ccf2956", "messageHeadline": "Fix http account delete arg name", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a1859e84321aa0124474d87925125875affc4a50", "messageHeadline": "change from Supplier to Function for MultiFactorAuth", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 15, "deletions": 36}}, {"node": {"oid": "5f9ba26819144219cd19cd06dbbf815bd68c66f7", "messageHeadline": "Remove race in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "accfca71c9383cf53170b90c5f3c73df465257fb", "messageHeadline": "Add creation date to MFA keys", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 8}}, {"node": {"oid": "b376bd9b618e09554e94c2539eae389cbfe63558", "messageHeadline": "Add name to MFA keys", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 34}}, {"node": {"oid": "cd3d38893b1142b93e7e4b1706b1da65714a1391", "messageHeadline": "refactor while integrating with ui", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 175, "deletions": 52}}, {"node": {"oid": "4d6b3a6ef3bda3856dde20def7116fd23ab9ac81", "messageHeadline": "Merge pull request #1059 from Peergos/fix/change-password-in-browser", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 3}}, {"node": {"oid": "4337851c729c62199bbe3f134841bcf9fe621d10", "messageHeadline": "Remove dangerous default implementation of MutablePointers.clearCache()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 3}}, {"node": {"oid": "d0e58065cebdc03b7932a572c3759d77285f361e", "messageHeadline": "Fix immediate login after changing password in browser", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "654eb0c922a94bc0bc302d6619f76ee58be09ffe", "messageHeadline": "Update ant.yml", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "9a7496a8556b7ee6213947a4b808d0fedc0b8fca", "messageHeadline": "Randomise test ports better", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 16}}, {"node": {"oid": "b13d0674d1540aa8e2be3e260efa64e4522e50f6", "messageHeadline": "Merge pull request #1058 from Peergos/feat/webauthn", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1046, "deletions": 219}}, {"node": {"oid": "c9613a1712b80965d54303e21e41c1dca1ae3d49", "messageHeadline": "Make sure old totp factors are deleted", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "f523015e636e7e5564b5e10124768760b83e4b22", "messageHeadline": "Make sure we allow multiple second auth factors", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 9}}, {"node": {"oid": "d7628d1452778e400ed101dea1000bad483063ad", "messageHeadline": "Rename class that is not a test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4ac7e208097ed18b99a0c0361d63afbb501b7a8e", "messageHeadline": "Fix http handler label", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "45bbccf4ac2d277460f7d6e155c64304c96f0018", "messageHeadline": "Fix subsequent challenge storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 28}}, {"node": {"oid": "ef5f280a158ecad5350d2462480f60324ad18657", "messageHeadline": "Proxy webauthn calls so localhost webauthn works from any localhost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 15}}, {"node": {"oid": "e5427c4819d7fc4a32c3a94a93b179426128c6a0", "messageHeadline": "Pass through MFA in OfflineAccountStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "3a6e508e3b16fb589e921bdbbc9d0bee2a84e0a4", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "585b48739866cdc5604f05de6cc998d1c3d0b112", "messageHeadline": "First attempt at Webauthn", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 640, "deletions": 189}}, {"node": {"oid": "9765c86b2d5072a6271b5ca1c9d9075bf3485da2", "messageHeadline": "Merge pull request #1057 from Peergos/feat/heic-jpegxl-mimetypes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "94d8fdbc74773aa6077b18a80e96ba002cb5b82f", "messageHeadline": "Support HEIC and JPEGXL image mimetypes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "97ac5f22f138b0bbbec8726dae051ecd46351a7d", "messageHeadline": "Add timeouts to webauthn calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "b54dfd34596b737666a137897775734626641e8c", "messageHeadline": "Show results in webauthn test ui", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 20}}, {"node": {"oid": "21822d9e3a5682943579dc3306dd153110ac26af", "messageHeadline": "Minimal webauthn demo server and js implementation working.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 281, "deletions": 0}}, {"node": {"oid": "a3f449d54cd2bac8bf5bc3395a585a2c48e71ea9", "messageHeadline": "Make sure local pki update in paid signup happens in different thread!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "fe2d7825f6366354dcafd57f6fceac8806c7d360", "messageHeadline": "Merge pull request #1051 from Peergos/fix/paid-signup-do-pki-last", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "4a701d935887edb5d1842e169353d819ef8c3913", "messageHeadline": "Update the local pki after paid signup in the background", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "a96a3319b32be316fd33de62bf5a94ab95a8b6d8", "messageHeadline": "Tolerate errors updating local pki after completing paid signup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "021482f2e58f9799c04f2774b62f57e26b4ccaf1", "messageHeadline": "During completion of paid signup, do the pki call last so the usernam\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "c9254d9d2264b82c3f2e0cf2d4615ca986f83524", "messageHeadline": "mplement deleting mfa methods", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 12}}, {"node": {"oid": "f7f79149642d1594a48b06fc79cfd02b990e2931", "messageHeadline": "Implement mfa methods in http", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 85, "deletions": 10}}, {"node": {"oid": "619411aa209ee02f571bdb478e5899793d868bc4", "messageHeadline": "TOTP based MFA login working", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 736, "deletions": 104}}, {"node": {"oid": "5749f66d06218222a01befec9efe259c8ff297fc", "messageHeadline": "Remove log spam", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "58ae9981092d23ff395f36f49131800e2796883f", "messageHeadline": "Standalone TOTP implementation working and compatible with google aut\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 1}}, {"node": {"oid": "e03da8fb2203f3390a0531c7e345310f21711e63", "messageHeadline": "Fix hosting peergos on a subdomain", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "7153d1da43e65944a19ac1d633ccbf2d0eb9c713", "messageHeadline": "Merge pull request #1040 from Peergos/fix/wildcard-listener-address", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 15}}, {"node": {"oid": "1869c8fe3aa5757c17551e4e9c60af8420cdcf13", "messageHeadline": "Enable apps to work with a wildcard domain", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 12}}, {"node": {"oid": "b2bb0ae72fcdfd341d82b247bab5e446298773c7", "messageHeadline": "Fix Host header handling for wildcard listen addresses", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 3}}, {"node": {"oid": "69715b93bce3dd7a682594e0febdfea32cec597e", "messageHeadline": "Merge pull request #1039 from Peergos/feat/config-listen-address", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 13}}, {"node": {"oid": "227838d47baaa92678d804b7db0bc3a59ecbe09d", "messageHeadline": "Remove hardcoded localhost from start message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "9f11752655913b550664083c9cd2d7aa6457c690", "messageHeadline": "Allow non-zero max-users with non-localhost API.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "5252edea2e620b5dd3e52b22f350c106bde61911", "messageHeadline": "Allow listen address to be configured.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 11}}, {"node": {"oid": "3486375ba07d79545e4e06263ac5523aea334173", "messageHeadline": "Fix svg mimetype case", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "34a0feb1e74ee0b031e3e266a22da7003d99c6df", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cf9121b2cc82931e25a9a020123bd54128ff11bb", "messageHeadline": "Merge pull request #1038 from Peergos/fix/sandbox-modals", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "02195e42716f9fd31dc31e919d7545ccca917b8f", "messageHeadline": "Fix UserCleanup handling of some legacy dirs and files with missing m\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "32086220e4fd35fc05c239a229047af1d2651a3e", "messageHeadline": "Merge pull request #1037 from Peergos/fix/error-propagation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "a40170d1ffe74b3bf241d14c20276f5fcbc1a33d", "messageHeadline": "Make sure CAS.getRaw() error are propagated and don't just return Opt\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "bb9d9e0f7a500df44c4103ede524e7ee5843548d", "messageHeadline": "give sandbox allow-modals permission", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e767163950bf6c431e4c06f80fdd542fa4dbde70", "messageHeadline": "Merge pull request #1035 from Peergos/feat/enable-quic", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "7a903d27b175f6fdbbdac96a0fbab66f3f245fd8", "messageHeadline": "Enable quic in ipfs-nucleus config!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "4523085e2a1c253daf14aea5d9f5f8639177f689", "messageHeadline": "Merge pull request #1034 from Peergos/fix/async-bloom-add", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 4}}, {"node": {"oid": "8bd0ddaaae52596f483d262e73354d71c9f0c1a1", "messageHeadline": "Log bloom add error correctly", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a02925056e2e3c87ea4ff12961b17b9559276dee", "messageHeadline": "Make bloom adds async and error tolerant", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 4}}, {"node": {"oid": "325e3503d2170f22b27e9e84fadaa5bf10e3d9e1", "messageHeadline": "Merge pull request #1032 from Peergos/feat/enable-noise", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 14}}, {"node": {"oid": "ac9b4f6d839e43811b1d913d959604b97d8673ce", "messageHeadline": "Bump peergos version to v0.12.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5a166847595fe54e3dfe90235fd401081138f660", "messageHeadline": "Enable noise as a security protocol for compatibility", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "cc8192df429d75b15b18bbcf093ec2a407c02a03", "messageHeadline": "Merge pull request #1031 from Peergos/feat/persistent-block-metadata", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 11}}, {"node": {"oid": "df0f03b6b189320f90665746e8262ac7b827827d", "messageHeadline": "Enable persistent block metadata store in all configurations", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 11}}, {"node": {"oid": "0dad491d2e04ae5ae35e96848127945d638847bd", "messageHeadline": "Make sure block metadata file is within peergos dir", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "47bd41f62f1f59deaa230294372eaae88ef9a8d0", "messageHeadline": "Treat ssl exception from S3 as being rate limited and try again", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "48804e1d9d0f89f39a414d90a69028b40a2950cc", "messageHeadline": "Merge pull request #1030 from Peergos/feat/persistent-block-metadata-\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 324, "deletions": 36}}, {"node": {"oid": "088a237a43b4af445963d041ab2814ef9857a4e6", "messageHeadline": "Use local sqlite block metadata store in non-clustered S3 cases.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 17}}, {"node": {"oid": "e8f26d4fac43b9d5339fd09f967ac5039ba54721", "messageHeadline": "Tolerate 404s in S3 GC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "79463530f5412f8f47b4adfc33d46a48fad87471", "messageHeadline": "Tolerate repeated adding of the same cid to block metadata store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "4af09aa949d808fdb314ab4b0e33a371474e63b6", "messageHeadline": "Access time is not unique!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f55488d98deb7c7342e5296832a8869f7ddd25cf", "messageHeadline": "Move metadata index to access time", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6c07c5e26040ff3ffe7abe20fc0864783f49eab8", "messageHeadline": "Compact the block metadata store after GC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 5}}, {"node": {"oid": "583f984a4c100cc984d63e6691b15555fef085ec", "messageHeadline": "Add a persistent block metadata store sing sqlite", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 282, "deletions": 18}}, {"node": {"oid": "d9e730156a097dfdc0492041028b9df734c6af6e", "messageHeadline": "Merge pull request #1029 from omahs/patch-1", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "c90c73ff30e5216779fc066634535d476b007483", "messageHeadline": "Fix: typos", "author": {"name": "omahs", "email": "73983677+omahs@users.noreply.github.com", "user": {"login": "omahs"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "2e8c2282127fac31f51e31aa4a1596151a16c57a", "messageHeadline": "Merge pull request #1028 from Peergos/fix/convergent-signup2", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 17}}, {"node": {"oid": "aed737d238911f0c48b0771f1f499c36168d6783", "messageHeadline": "Only use convergent signup for paid signups", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "8deb3624a5bacb34987a692d8ed0319db5cc7c75", "messageHeadline": "Allow identity generation to be convergent during signup session", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 17}}, {"node": {"oid": "73acbb3232bce6583d21631670a5943ba4ab4ef7", "messageHeadline": "Merge pull request #1027 from Peergos/fix/convergent-signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "e2906f6d943ddc009ca0f254eee3774aea9152f6", "messageHeadline": "Allow identity generation to be convergent during signup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "201772809c1b627c4be9a2774ef222155d1c8ec6", "messageHeadline": "Merge pull request #1026 from Peergos/fix/cas-exception-failure", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 33}}, {"node": {"oid": "8cbf1273a7a3c76828ba1e5ffa8a09cb6e63afea", "messageHeadline": "test not required - works as expected", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 28}}, {"node": {"oid": "8e394408b73ff9ef700a1467bd9aa01ff7973034", "messageHeadline": "use CasException rather than create a new ConcurrentModificationExcep\u2026", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 23, "deletions": 23}}, {"node": {"oid": "22c1433a02366e733dadf41a00772ad9a5ee6a09", "messageHeadline": "add failing test upgradeAccess", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 27, "deletions": 0}}, {"node": {"oid": "754a0667c559b763d5811879167f14e9f5f3a5c7", "messageHeadline": "add ConcurrentModificationException in retry handling", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "8dc7dc2c46bcf7eaac03cf87f7812e3e3617fc60", "messageHeadline": "remove gwt incompatible references", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 13}}, {"node": {"oid": "9a7a840556d92320858b1b11c1bc21c7a0b3670e", "messageHeadline": "remove test so gwt with run", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 196}}, {"node": {"oid": "d76b9a9c6d513013b797cea5425e402b96d10abe", "messageHeadline": "Retry taking payment during paid signup if no cards are available yet", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "56fe2161c84a6bb51956b659a4bddfd3bd0cdf32", "messageHeadline": "Improve resiliency of paid signup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b77e82350358181b80bba7f9de1998c5384be335", "messageHeadline": "Make sure Cas exceptions are thrown with concurrent modifications of \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 29}}, {"node": {"oid": "9e44f6fe31b649ba6140ff9ede69dee9e7ba4e60", "messageHeadline": "oops", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f7d5e80cdbbc6f4fa9f2b55f34c9caa1a030334d", "messageHeadline": "failing unit test", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 207, "deletions": 0}}, {"node": {"oid": "e91aa9c58a3669562481de56e594a59ddcdc1ae9", "messageHeadline": "Merge pull request #1025 from Peergos/fix/writable-access-failure", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "a82324d3d9540777bbe7cf06fbdebf25be31decc", "messageHeadline": "BufferedNetworkAccess commit() fix", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "653cd2fb660cd7912ebb12f06fd250d49545e5ea", "messageHeadline": "Merge pull request #1024 from Peergos/fix/cleanup-failed-paid-signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "2efdb147ba212ff046fba9ea9a392ba4e36e1158", "messageHeadline": "Cleanup failed paid signups", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "5d2f3a11de2bcb552381fb2e09678fc62e321998", "messageHeadline": "Merge pull request #1023 from Peergos/opt/block-metadata-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 342, "deletions": 7}}, {"node": {"oid": "c367250b458adafa257a818a3b6cff1846b60902", "messageHeadline": "Cache raw block metadata in authWrite calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "481de1d7dae12a0092afc621fc800b5b9c6405eb", "messageHeadline": "Add extra method to delegating deletable storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "26c86b569b73185bd2ece1fc5a162352aa901d00", "messageHeadline": "revert unintended changes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4f30ca00ef614576041db1c3691ea87af23ab42e", "messageHeadline": "Add a block metadata cache when S3 is used", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 329, "deletions": 7}}, {"node": {"oid": "a51adcbea5056078c130dc6b76b518d3f6ea7ad6", "messageHeadline": "Merge pull request #1022 from Peergos/fix/pki-breaking-paid-signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "f9c4a53e01249b5eff556cd657948def2f92c712", "messageHeadline": "Fix paid signup.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "a19bc72dccbd3fb34b61aaed40ab7f15b067f3f9", "messageHeadline": "Merge pull request #1020 from Peergos/fix/s3-mirror", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 208, "deletions": 59}}, {"node": {"oid": "d45fef2aac21e3b6551f39900b192dc18ce93980", "messageHeadline": "Add a retry to getting new block in mirror", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "af71422857364c1651de928b0913a62d1212cd1a", "messageHeadline": "Implement adding mirror bat to fragments that only have 1 bat.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 27}}, {"node": {"oid": "8870f53edf8f7a2530e50909c5792750c7359d83", "messageHeadline": "Handle named owned keys in UserCleanup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 15}}, {"node": {"oid": "eb09996607760375dc7dc3e771f8ee79abe4c31b", "messageHeadline": "Update UserCleanup to fix files/dirs with only 1 BAT", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 62, "deletions": 21}}, {"node": {"oid": "b541da09c724ef73ff0a5a9eb2d57707cdcb46d5", "messageHeadline": "Make sure we use mirror id if user has one on all getOrMkdirs calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 15}}, {"node": {"oid": "f5f66c92c373737f96d1eacf5a862eabdaad5e20", "messageHeadline": "Don't attempt to mirror inlined cids!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "967d28ae9294ea0918945262d55d9801c1cf2bbd", "messageHeadline": "Don't bother retrieving existing raw blocks in s3 mirror", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "2fb4e10bfcb8c8624a363d5e78a7552b92225907", "messageHeadline": "Handle rate limiting in PUT during S3 mirror", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fb222705d81fe1873cd292a8af9ad1c21aa5d515", "messageHeadline": "Fix mirroring a user's data on an S3 instance", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 14}}, {"node": {"oid": "631bd21cb6731de76076ebd9d01d73ae78b59913", "messageHeadline": "Merge pull request #1019 from Peergos/fix/copy-to-legacy-folder", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "666de739b7aa280bdf117828481104fd96c9b9b2", "messageHeadline": "Use Optional.or", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "6c7f0baca9397affbb002437161a348a45840084", "messageHeadline": "Fix copying to a legacy dir without a mirror bat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "4009efa72f4e1a1404f42e9eaaa537c9e733d5d3", "messageHeadline": "Another fix for S3 based mirroring", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3ff53b0d1ba66ed563a0f69c3ae9652708521416", "messageHeadline": "Fix mirroring to S3 node", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ef26d6bf8b90cc443a615c6393da53bac50f64ca", "messageHeadline": "Merge pull request #1018 from Peergos/fix/pair-with-bytearray", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "5b15be5c6bfd93083872255092f3225c34f103b4", "messageHeadline": "Merge pull request #1017 from Peergos/fix/migrate-http-timeout", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "03499c7677ff3b77d531a1139c01b01e1b3d119f", "messageHeadline": "Merge pull request #1016 from Peergos/fix/retry-paid-signup-complete", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 11}}, {"node": {"oid": "2edd98dbe0e9793485be500a2ea0354864276e50", "messageHeadline": "Wrap byte[] when constructing Pair", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6f617d5995c87cb2634a6c9ec38c89e72f5394f6", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 14}}, {"node": {"oid": "a291514422f892aa2be734037c2cba7a3e600197", "messageHeadline": "Make sure http timeout is propagated in java poster", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "32dd595430dade317e331a0664d197fa2b73ec9d", "messageHeadline": "Retry completing paid signup until quota is non zero", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 2}}, {"node": {"oid": "c86652a2db9dc6e2172374e86d6cb3a519cc9f0a", "messageHeadline": "Verify reserved username identity key when completing paid sign up", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "1a707846bc4d7fda8f1b7186dac4d6cfc2244788", "messageHeadline": "Merge pull request #1015 from Peergos/opt/local-champ-first", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 132, "deletions": 4}}, {"node": {"oid": "7d0a624868099e36c6bd5a9b0ca991c713129f58", "messageHeadline": "Fix race in test?", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "22623f6b6c58d3e2644e997096ad34a76feead6c", "messageHeadline": "Fix race in test?", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "aa89ce39b16c7930ed50a35fdccf250ed6524b42", "messageHeadline": "Try doing a local champ lookup first, only falling back to direct.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 130, "deletions": 3}}, {"node": {"oid": "0439e753ed956a1c1cf116f35f821ce6a6a9fbc2", "messageHeadline": "Add a metric for successful paid signups", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "f323ea8f1999f77ec5da72ab1486aee20ba5b4a7", "messageHeadline": "More logging during paid signup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "50422260349d49573bf2d825491490ef677c7b94", "messageHeadline": "Merge pull request #1014 from Peergos/config/paid-signup-rate", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 5}}, {"node": {"oid": "18c7806d32fd19e574d5ba127c7566eb7aa21b4e", "messageHeadline": "Make the paid signup rate limit configurable", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 5}}, {"node": {"oid": "480947afed8952acf56f840620bcb13fddf777ef", "messageHeadline": "Merge pull request #1013 from Peergos/fix/commit-upload-buffer-when-full", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "bba1447dac02e3e4275bf9ccf4a25e222e663f7c", "messageHeadline": "Make sure we commit the upload buffer when it is full.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "b1513d201880ffe98115cb4292c310713880b88b", "messageHeadline": "Merge pull request #1012 from Peergos/fix/reinstate-champ-get", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 18}}, {"node": {"oid": "ee6ca15eff8fb3bfce06d73edd87e2ac2897d1b5", "messageHeadline": "Update request count test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "6f6616e167b2df93a2bc053137d973c2d4375b89", "messageHeadline": "Randomise ipfs metrics port", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "56082c158c858fe0060b0162826e70d8fe2c6d7e", "messageHeadline": "Make sure fuse2 is installled in CI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "a8208373cf921df9d92d6b75c90d6c814d6db487", "messageHeadline": "Fix comment", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "18ae616beba53fe1b94a65fb5d59b50ff721a025", "messageHeadline": "Don't error if local champ.get in buffered storage fails.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 76}}, {"node": {"oid": "b02eb31aad32ec6ac7e60f3788dddfa2010f0dfa", "messageHeadline": "Only try local champ.get in BufferedStorage if the storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "d03cbc530a8968030347f7f78514fcab11a6cd9e", "messageHeadline": "Return to using champ.get calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 118, "deletions": 13}}, {"node": {"oid": "d2ac65f4b7310e34bd2fa4deacf754f03f42fa74", "messageHeadline": "Merge pull request #1010 from Peergos/fix/ipfs-nucleus-config", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "855173feb16cede42a7513528724ca9d56c658ae", "messageHeadline": "Revert ipfs error log print", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "8ae187e98b5c324574831e29ac621dabe1545560", "messageHeadline": "Merge pull request #1011 from Peergos/fix/retry-failed-direct-s3-puts", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 8}}, {"node": {"oid": "3875d33db07fc568974fd25cf96e84a4a4aa6d29", "messageHeadline": "Retry failed direct S3 PUTs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 8}}, {"node": {"oid": "871f8d3997adf0b80350326763a431e3401bed09", "messageHeadline": "Print full ipfs test log, and only that test!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "696a1989f1d7ee7065d5858dc5af4f1f6275cd94", "messageHeadline": "Print full ipfs test log", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "4c5cf95246e093a01f3e5af17ba717e266b43fb9", "messageHeadline": "Update ipfs-nucleus to fix config parse error", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "6e2c728338275f0599d83848c2e33685a88498bc", "messageHeadline": "Use LinkedHashMap in BufferedStorage to preserve block write order", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d0cae2ea222393420a971cdcf2c96da16ba5ff61", "messageHeadline": "Merge pull request #1009 from Peergos/feat/pay-to-sign-up", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 436, "deletions": 64}}, {"node": {"oid": "b6e8ad1b93fe8f552d4e1e879f18092ab789cbf0", "messageHeadline": "Fix completing paid signup in mirror core node", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "45fb7379a2400ec937172ef41624584c1ebee3de", "messageHeadline": "Fix confirming reserved username in pki during paid signup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "217732384470897326226903e70a56994b62a7ff", "messageHeadline": "Fix equals for isPki", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5e9725cf5ef3684528bb1325094a51fcf9126e98", "messageHeadline": "Fix paid signup from a non pki instance instance", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 5}}, {"node": {"oid": "ad6ceb6e5e48eec966dcd14504f16aa65dfc30a7", "messageHeadline": "Configure disabled metrics", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "0a5b4238a3dc0b16002701aef17fa551b0114d46", "messageHeadline": "Expose long boxing method and Optional.of to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "440b09b78eef93f46aea6d79c4641ccd9973d7b8", "messageHeadline": "First attempt at a pay-to-sign-up flow.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 405, "deletions": 59}}, {"node": {"oid": "40def28f73931b0b1627a27041fd899dc8eb3ee2", "messageHeadline": "Merge pull request #1007 from Peergos/feat/ipfs-metrics", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 16}}, {"node": {"oid": "a6951eb99110e0a28ef64730ac6ee61dd99f7990", "messageHeadline": "Merge pull request #1008 from Peergos/fix/offline-by-measurement", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 27}}, {"node": {"oid": "902cde80ea7da1d3df60f657be2af59823faa783", "messageHeadline": "Don't user browser's definition of offline", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 27}}, {"node": {"oid": "470a69510135334616ec9cce7fb39e25df559a66", "messageHeadline": "Set metrics config as json", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "b97b2ef8e07d33aca3f70c36bb9f75f655494b90", "messageHeadline": "fix tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7a150416ba2b007c190e9d70d62b182ed392f8ad", "messageHeadline": "fix tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "d573d4bafaf58495248b0edacad138a1fd4c6cc6", "messageHeadline": "Merge pull request #1006 from Peergos/feat/app-gallery", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 1}}, {"node": {"oid": "8abd15e7e6adfcd8d4b5d1a2d6fed95e1da949d8", "messageHeadline": "change apps folder to recommended-apps", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "590a262ed4199dcd68fcd083c4b17200ee83cb48", "messageHeadline": "Fix ipfs metrics config", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "7f4ab2c0f13d8560222e16ec04fbcf9c0516d4ea", "messageHeadline": "Fix ipfs metrics config", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "23a3350c8f9648623934b5d26fd523b0e22df576", "messageHeadline": "Add config params for ipfs metrics", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "d22da200646f700269f492bd3ba05109b9596fec", "messageHeadline": "Make ipfs metrics listen on a different port", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "500fcf6dc541220a94d4d53b94c78430e6eac684", "messageHeadline": "Support prometheus metrics in ipfs-nucleus", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 14}}, {"node": {"oid": "6f45392e15ffadf15685c50126933cf4976d5f7a", "messageHeadline": "Support getting public files in context.getByPath", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "67ad6012cc93219a1814d3f8828d626318f5e890", "messageHeadline": "Gate unnecessary usage recalculation on start", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "922ce86c342a9705aaef4b1c1eb24874eb534abd", "messageHeadline": "Merge pull request #1005 from Peergos/fix/app-folders", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "7e0896938471f49e0de53dc7b1decd9d84eeb32a", "messageHeadline": "Merge pull request #1003 from Peergos/fix/slow-offline-login", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 112, "deletions": 24}}, {"node": {"oid": "068eeda892fd8883ffaa2d05023ee356a96ea482", "messageHeadline": "make app sub folders with isSystemFolder set to False", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "341cc5e8ab20fbee6be4da6ffa2d688dca7ee948", "messageHeadline": "App Gallery", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "be04091fa1a5ddfdc64797c69cb8b6bb1a53ea95", "messageHeadline": "fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5990719842344b0a2a2dcc1d8cd828220e51e95f", "messageHeadline": "Use hybrid approach to detect offline status in browser", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 6}}, {"node": {"oid": "64dd478faf60b11d6df5ca124b4b7d11a28e31e5", "messageHeadline": "Detect offline state in browser rather than waiting for connection ti\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 22}}, {"node": {"oid": "17279727ac8117fe4400f40a30dad9d8741c0365", "messageHeadline": "Merge pull request #1001 from Peergos/fix/content-based-html-mimetype", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "76577f21832e68a051da30e28aa97f77f73af581", "messageHeadline": "lowercase prefix for html mimetype detection", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a6738d348ab8b08254bcbb00ff1f4b9eb1c8f720", "messageHeadline": "Detect html mimetype based on content as well", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "e562437cbcfdfafbab572b796d1e88a8f8742b57", "messageHeadline": "Merge pull request #1000 from Peergos/fix/incorrect-password-message", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "d3925c18995b5723d8ea6e7812de2e134d3f1609", "messageHeadline": "Make sure login shows correct error message if password is wrong", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "f3dd20aa9e20a285fd890ecfcff987b24bfe99a6", "messageHeadline": "Merge pull request #997 from Peergos/feat/fully-offline", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 50}}, {"node": {"oid": "26474a566f269aaf03f5108dd1b192e3a595b23f", "messageHeadline": "Clean up Network access to better separate access via a gateway from \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 46}}, {"node": {"oid": "63a6258b72a6c032c6c3541250a936246f136bdc", "messageHeadline": "Remove JS check if we are on a peergos server.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 5}}, {"node": {"oid": "5421f347d269295386de95951b8cd039314a109d", "messageHeadline": "Merge pull request #995 from Peergos/fix/s3-rate-limit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "33babd4ca5b20d9615de0ef383f180da17f5530d", "messageHeadline": "Handle response code before getting http body", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "5b58d640ce3335523d0cebded5d2cc5bc6aa4994", "messageHeadline": "Merge pull request #996 from Peergos/fix/bloom-add", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 19}}, {"node": {"oid": "349a6f107faf1e7fb14c36ae3d2db21df8a2344f", "messageHeadline": "Include fixed bloom add in ipfs nucleus", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "f3d79f6a0b2f9ea7f88d21f67e9e00b62e2c1e85", "messageHeadline": "Update ipfs nucleus to fix log spam", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 6}}, {"node": {"oid": "4090bce41afe1d4e1b37e21d9b7d1b146d8a9252", "messageHeadline": "Use bloom add api to tell ipfs we have externally added a block", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 6}}, {"node": {"oid": "a5740e64ad81a4b4f0751f9c5ea03d14da013220", "messageHeadline": "Update ipfs-nucleus to support bloom.add function", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "de0084ad0d0e5804965846f0641d8cc943c50194", "messageHeadline": "Convert http 503 to RateLimitException for all request types", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "c28c82da7eac53c014836bad43a0fbc9c68f8b20", "messageHeadline": "Merge pull request #993 from Peergos/feat/s3-metrics", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 0}}, {"node": {"oid": "3fce3d140825a523f1e7bc9febaaaaa8f940a917", "messageHeadline": "Add metrics to measure number of each S3 request type", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 0}}, {"node": {"oid": "5f466a84ef39b71656d7590b4168f169640c7f9f", "messageHeadline": "Merge pull request #992 from Peergos/feat/offline-login", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 464, "deletions": 97}}, {"node": {"oid": "6943847e086bd3c2c04355e1d59d8ff016a0e333", "messageHeadline": "Don't retry requests on a ConnectException", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "6ed749171d57964b945da241f4fc8e35ab342568", "messageHeadline": "stay logged in functionality", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 39}}, {"node": {"oid": "59de9981b24ea66880578c807e8d8647fc07b753", "messageHeadline": "root key cache?", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 40, "deletions": 1}}, {"node": {"oid": "2032ebf186276a1f9917a2a0e18baf399c877a83", "messageHeadline": "Encrypt BAT cache to avoid leaking mirror bat on device compromise.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 52}}, {"node": {"oid": "b39cc9526ab58e4ec4330666ad7a2e68decc3dfc", "messageHeadline": "Support re-login offline from symmetric login key + cached user stati\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 33}}, {"node": {"oid": "8eb6b3ccceb6ad6caa00fbbab2fb080dca7a7644", "messageHeadline": "fix serialisation", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "57af67279648346bdb7bba43a6e77c21ea49d910", "messageHeadline": "wrong signature", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "97ec0ac366f5bca2d78ca485a4bcd67458dc2126", "messageHeadline": "undo", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "0b9f5240a7037178624715013b845d4827ae150f", "messageHeadline": "handle cache empty", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 19, "deletions": 3}}, {"node": {"oid": "bb8ade92fdf8500eda204b5db384ce2752531cf0", "messageHeadline": "remove debugging code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 6}}, {"node": {"oid": "da2b57c0d31b53bf626bc053642dfae8840c6411", "messageHeadline": "Remove join in offline account cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "af702a0e74b10de0c2b4b044b5a519d5aadae2d7", "messageHeadline": "Implement offline login support in NetworkAccess.buildJS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 4}}, {"node": {"oid": "3ef81cd5fb891599576946cb665c17f0f66db907", "messageHeadline": "more JS Backed cache classes", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 188, "deletions": 3}}, {"node": {"oid": "e09b8cbd6cf5afc9ef15ad81e77fc58ae22a53c0", "messageHeadline": "Merge pull request #990 from Peergos/fix/update-write-progress-on-commit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 15}}, {"node": {"oid": "6b476c983106f72d29586f557e7136f194a9d4bb", "messageHeadline": "Only update progress monitor during upload when buffered storage is f\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 15}}, {"node": {"oid": "a2b324f26fa9de1b51ba75889f5a589cb420fd01", "messageHeadline": "Merge pull request #989 from Peergos/opt/headerless-s3-gets", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fc8b152d1f0ffdb11026be24296928910e477d9f", "messageHeadline": "Switch to using query parameters for S3 gets now that we use a block \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "651b9a2ab03806f5957014562f653b6afca3baf5", "messageHeadline": "Merge pull request #987 from Peergos/fix/handle-errors-building-feed", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 19}}, {"node": {"oid": "137e5deda7a4e3b6c37066907e5f0e5dbd8350e2", "messageHeadline": "Merge pull request #988 from Peergos/fix/rate-limited-s3-writes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "b3ab03b22c21ec5fe93878093b939c0a147d9fbc", "messageHeadline": "Handle S3 rate limit during signup block writes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "5d25a4de1e5059e72d68cc8fd52fad1206e81ac2", "messageHeadline": "Handle errors building social feed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 19}}, {"node": {"oid": "4421a5949268a3701206c47d8490ee115da43274", "messageHeadline": "Merge pull request #985 from Peergos/opt/hoisted-pointers-in-feed-update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 181, "deletions": 59}}, {"node": {"oid": "35560a30c737564af2b91983db098f71c7c47ef1", "messageHeadline": "Wait for result in test!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a2465031688ea345f58aa5fd35bbb52ef034f720", "messageHeadline": "Move offline BatCache to client package", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 5}}, {"node": {"oid": "55f7a6ae76e5a96fb70a3b9ec473bfca4c8fcdda", "messageHeadline": "Move offline PkiCache to client package", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 24}}, {"node": {"oid": "f6491ff27f3ee1537e89f32767e0288bc441f3c7", "messageHeadline": "Move offline account store and bat cache to client package", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 8}}, {"node": {"oid": "0e7a0d76859293038a143b402f1f065863d4a88f", "messageHeadline": "fix race condition in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6216963ba7a583b68451f823f6e1299bd5e009ab", "messageHeadline": "Handle case when user was removed as a follower", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "6cb670b9577ee3041e0e363dbf88635ec9fae4e1", "messageHeadline": "Fix updating an empty social feed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "877ea6991f86228d775dd7d23915087600dacb76", "messageHeadline": "Merge pull request #986 from Peergos/feat/offline-in-browser", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 158, "deletions": 21}}, {"node": {"oid": "0b106b7781066d03dd31a1f81359d736dab0d65b", "messageHeadline": "Make sure we return complete Snapshot when committing new caps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "07de8d6d087ccba6224f1247cfeba50112706621", "messageHeadline": "Cache owner lookup in JdbcUsageStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 1}}, {"node": {"oid": "fcb275746558554dc28aae6325eade25a5d96e9c", "messageHeadline": "Fix snapshot in FriendSourcedTrieNode.getByPath/getChildren", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "c19139a7c40408d0e3244433d424bb82af9af3c7", "messageHeadline": "doUpdate method bugfix", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "ef1f575e29f965d94696b459eae42f97f13b32c6", "messageHeadline": "Hoist pointer gets in social feed update, and parallelise", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 161, "deletions": 51}}, {"node": {"oid": "e748fa89e56f36be439dfd557055c9644c032eb7", "messageHeadline": "Fix building of pointer cache in Buffered network usage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 7}}, {"node": {"oid": "bc2a54e887d0cbce4a00f205d68d2d45ef19f3ae", "messageHeadline": "JsPointerCache put method re-factor", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 4}}, {"node": {"oid": "bd4b921ac6f20a6898e6e048af82b4fb0c03bf62", "messageHeadline": "Factor out pointer cache update logic", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 19}}, {"node": {"oid": "935f6870eac9382fb4af523e72351d124fd76da6", "messageHeadline": "Change to MiB in JS block cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "8b14c150de24bc88fe30c030790ca07cc433687a", "messageHeadline": "add JSPointerCache", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 53, "deletions": 1}}, {"node": {"oid": "48d5903fc33e4430c02e71109742f0ef1c460fc2", "messageHeadline": "add simple implementation", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 58, "deletions": 1}}, {"node": {"oid": "f614df795a4de30f2e370d0d401e5756f16abdc4", "messageHeadline": "Begin offline support in browser", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "c22697ec3371b77b6e6d3f94a44687c8e2cf30a6", "messageHeadline": "Merge pull request #981 from Peergos/feat/offline-client", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 529, "deletions": 78}}, {"node": {"oid": "8f1e9c993feac0569c79d2e7fb164d3a46e95230", "messageHeadline": "Update offline bat cache after adding a bat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "31920d0870fbf17b70111260328cfa5a5c772d2a", "messageHeadline": "Remove debug code", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 5}}, {"node": {"oid": "cbcabc4556164e62e44abd05cd2e6bc8e6f779b5", "messageHeadline": "Fix legacy account password change", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "eea1331341637f50bba0fbb96c4e9f7827234011", "messageHeadline": "Refactor Java Crypto initialisation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 34}}, {"node": {"oid": "0d57959e81778236a8d536a3d2b62eb190eae9f3", "messageHeadline": "Add classes for offline client caches", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 497, "deletions": 65}}, {"node": {"oid": "ee1db7077d4266f0a6f21f6a1351a0aacf60ea66", "messageHeadline": "Implement an offline PointerCache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 91, "deletions": 0}}, {"node": {"oid": "dc07f44f4461d01d3fffc1efac2c2c68d7ed7cc8", "messageHeadline": "Implement LRU for FileBlockCache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 1}}, {"node": {"oid": "16d5de9e73679b85d782279a975bba49b715fbdf", "messageHeadline": "fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "359bf86c74022dff96fc4ff51402404f8f69f0a0", "messageHeadline": "Add some utility classes for caching blocks in different stores", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 381, "deletions": 0}}, {"node": {"oid": "7cd2f0604349a62216ee56cb43367209dab054d9", "messageHeadline": "Use interface instead of ServerMessageStore in UserService", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "97092f6a620d67bbc8d49ba36b8bb84247a93317", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "caf87bbe5db85604d403efc3b09227bfe5050557", "messageHeadline": "Merge pull request #977 from Peergos/opt/always-use-buffered-network", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 633, "deletions": 442}}, {"node": {"oid": "f2f1c56f7b7889f8d5450a90c33eb18327122568", "messageHeadline": "Make test less flaky with delay for usage recalcuation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "dc0985871f8286451fe16388619b729f3696a800", "messageHeadline": "Make sure commit watcher is also use in flusher of buffered network", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 9}}, {"node": {"oid": "fff4e42d72d5c5cc90310d06625851f2841f1cc8", "messageHeadline": "Use commit watcher in bulk upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 3}}, {"node": {"oid": "c7ce03436fdbbe9b0cbfb445eee12444460c1fb2", "messageHeadline": "Fix invalid usage of delaying storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 229, "deletions": 10}}, {"node": {"oid": "031c27f54ff2d38abdeffc20639f02c0b33e58c5", "messageHeadline": "Reflect improvements from buffered network in social and newsfeed req\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "9bbbb26845f82bf8766d5012406c23b9ef53fde0", "messageHeadline": "Use a buffered network in request count tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 6}}, {"node": {"oid": "5e1bcdc83953309f237ad8ee722f2f1882459dec", "messageHeadline": "Use isolated network in concurrent modification test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3dc9cdbde33e62e3f559eb2532313794298fbf82", "messageHeadline": "Add another delay to test to let pointers invalidate", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "a513929751e5e79cc9b4b8a49a53d6b406ec3a93", "messageHeadline": "clear block cache after failed CAS in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "95cc21a02e98d7d83c36a0843d7cc7a288e4e989", "messageHeadline": "Add wait in test for usage recalculation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "4959b9a03d8e3f6b79a9b41356b58bc421a36b0c", "messageHeadline": "Add wait in test to invalidate pointer cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "8e4b86f6eec32ba56c1ecff8bd24194a86bef343", "messageHeadline": "Allow identical pointer commits within a buffer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "7be6f2beb165bb34a64936ee3af2277fd61b9029", "messageHeadline": "Error on noop pointer updates", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "015c6fc487c36e0c9072ca3374010fd9280d344b", "messageHeadline": "Make BufferedPointers the source of truth for roots in BufferedNetwork", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 179, "deletions": 306}}, {"node": {"oid": "29b8bad20388f726f84f863da25cba554c23fd88", "messageHeadline": "Make sure WriterData commits happen via a committer in a WriteSynchro\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "8929bbfcd35c5e1d441e0184c986c93c45fde3be", "messageHeadline": "Don't share the BufferedStorge on BufferedNetwork.clear()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "e76b5b3637234bbf838d615fbf8c5d1a41276183", "messageHeadline": "Guard against nested buffered pointers or storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 29}}, {"node": {"oid": "7d2bac85b05c4ea1c1e5a8be83159eee756be939", "messageHeadline": "Don't call commit on BufferedNetwork outside of WriteSynchronizer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 29}}, {"node": {"oid": "b76e049183acac5a9cdeb99a12fa4edfc7f61ef4", "messageHeadline": "Use correct mutable reference", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2a762e0fa197acf2f785ee8420ee1322795c92e4", "messageHeadline": "Merge pull request #976 from Peergos/fix/constrain-ipfs-cpu", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "529b1a5362bfff59cc0d4df68317acadf013ab09", "messageHeadline": "Constrain ipfs cpu usage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "d14731f84f3333d598003303c90b1e3d9480be08", "messageHeadline": "Remove MutablePointers arge from BufferedNetworkAccess constructor", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "b88362890f4203862bf49255034ca783fdc14a1a", "messageHeadline": "Make WriteSynchronizer send commits correctly through BufferedNetwork,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 25}}, {"node": {"oid": "2971acf9e96b208a8ca30f5952c62c3b960642e9", "messageHeadline": "Always use a BufferedNetwork", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 98, "deletions": 97}}, {"node": {"oid": "70fa49b00c7a32aff4d42a083c3a19a91823b57b", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 1}}, {"node": {"oid": "957e047a27d0d2d707a74cd86a018c5b371a04d1", "messageHeadline": "Fix invalid test usernames", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "154e18776840095526f288bc65a7323a88f758a1", "messageHeadline": "Add option to not recalculate usage on start", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "76e3b75942e873011fce190c49d85afa4b3305bc", "messageHeadline": "Merge pull request #975 from Peergos/fix/usernames", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 4}}, {"node": {"oid": "2367079377cd4e0be6535e61d7aafd0fa9480d49", "messageHeadline": "Don't allow _ in new usernames", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 4}}, {"node": {"oid": "65259aac5524460064c28d8ce2758b38bcef6176", "messageHeadline": "Merge pull request #974 from Peergos/fix/transaction-expiry", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 126, "deletions": 4}}, {"node": {"oid": "a43407c95c8b8dac09a4429fc73d95047f88f48f", "messageHeadline": "Let all github CI complete regardless of results", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "6d3f161dcb760de305efc0e5c0ec60e1d87175ee", "messageHeadline": "Expand table change test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "f9817411769a2020869f6d264f4e81d0add19720", "messageHeadline": "Handle sqlite duplicate column error", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "ff84d2cf2ef09d432f7394de74f1a22ff2d8a7a3", "messageHeadline": "Add timestamp to transaction tags to allow GCing them", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 115, "deletions": 4}}, {"node": {"oid": "12870eca361f57eeeb8788d7bfde104815bf382f", "messageHeadline": "Merge pull request #973 from Peergos/fix/usage-calculation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 547, "deletions": 193}}, {"node": {"oid": "62bf0e01da93153d040ce65a9e4799c77b6e0585", "messageHeadline": "Make test less flaky", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "0a674092a21e94a92ed888a64f58b40a6bd47070", "messageHeadline": "Mutable pointer updates now include a monotonic sequence number", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 542, "deletions": 191}}, {"node": {"oid": "3cf2490501a88815332138dacab7036ef7962f85", "messageHeadline": "Make sure usage calculation ignores inline cids", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "cdb6320f4f7f7cd4c5a9449edc1258a7db44bef4", "messageHeadline": "Support dash encoded mp4", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "59ad0ee35a519893684266f9d58842baa825df79", "messageHeadline": "Support h264 mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "c60e0f5c72fce82c14df6303442a6c2a8d6d19fe", "messageHeadline": "Don't log all static requests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e8978e1cb2761e919d84f76fcfa071a66ca027d4", "messageHeadline": "Support FLAC mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "e11d4642dfdf01a3b38d4c184e2f9f78ca13ea78", "messageHeadline": "Merge pull request #972 from Peergos/fix/svg-mime-type", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7cf0b54bbeb1ad1ee9981c604515cc85306e8186", "messageHeadline": "fix svg mimetype", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f8719a9e522aee2fbd200b9ae554572877929763", "messageHeadline": "Make sure browser doesn't cache app resources during local development.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "afd2bf20e620ec57bd90668109da0a64962cacde", "messageHeadline": "Don't cache assets when using a local app dev proxy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "182c5fc65bcf328ad863b2fb6eed9f343f1d6fcc", "messageHeadline": "Update ipfs-nucleus to fix config issue", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "920a0c1364d1c051773e7abe9d1969666efb4220", "messageHeadline": "Merge pull request #969 from Peergos/feat/app-dev-proxy", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 13}}, {"node": {"oid": "417859dc56547320fc2000a4b9dfb12091bcee2e", "messageHeadline": "retrieve appdev resources", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 4}}, {"node": {"oid": "78a89d8b6c4426f0c4e13b844216139357ac4fb6", "messageHeadline": "Support using a local proxy on subdomains for app assets during devel\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 12}}, {"node": {"oid": "02647524f6fdc84f31f138aa3b604ee72becf904", "messageHeadline": "Update to ipfs-nucleus v0.2.2", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "3c821d64be598aeb1fbe76793ff48deb04b6432f", "messageHeadline": "Merge pull request #964 from Peergos/opt/usage-updater", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 34}}, {"node": {"oid": "07328c70835ae9c6d039d848d0c64e48ee74a7f9", "messageHeadline": "Merge pull request #965 from Peergos/feat/chat-api", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "d566be7babcc532a55dac3511517d8f84b3472a9", "messageHeadline": "Handle concurrent usage calculation in mediumFileWrite test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "cb91a663583d60e0cdc2c0571ecb01bae16700e3", "messageHeadline": "Make test more resilient to concurrent usage calculation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "52911db1fcf28c18a442d699d19d5ee5b3801bf6", "messageHeadline": "support chat api", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "d0a084572f86b3da34433c004c6a6d24ecc0497b", "messageHeadline": "Guarantee more parallelism in space usage recalculation on small CPUs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 6}}, {"node": {"oid": "24aa287166eaea94e5c1104c8eca9c6a369fc50c", "messageHeadline": "More parallelism in space usage recalculation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 11}}, {"node": {"oid": "7a5288cb80e6240b591787fdc16df93a7d9af18b", "messageHeadline": "Parallelise space usage recalculation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 25}}, {"node": {"oid": "7f1f86f4c136a87cd9a659cd180342e8da3c2008", "messageHeadline": "Log time to recalculate space usage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "e36355a75cbcb0d3bbd85f8f58130ffc4089dab5", "messageHeadline": "Merge pull request #960 from Peergos/fix/retry-mutable-pointers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 130, "deletions": 19}}, {"node": {"oid": "cff54dd6c526f1f39fa40f672648af212991242e", "messageHeadline": "Increase allowed request count in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d7d83e811ebf4790345e42c15a850158ebaa4b08", "messageHeadline": "Add file count progress to CLI progress bar", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 12}}, {"node": {"oid": "6980adcbd253424614cb330cb04f0787e3eb77f2", "messageHeadline": "Correct progress bar progress in CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "f64d1bdacb6db3c338504161cfc1242c942fad79", "messageHeadline": "Make CLI upload progress bars show path and filename, 1 per line", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 8}}, {"node": {"oid": "32cd19ddf584540b2848efe68b9009c9a93d8872", "messageHeadline": "Use a retrying mutable pointers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 73, "deletions": 1}}, {"node": {"oid": "33f430b43757ed206b5346b8723422ce98f154b7", "messageHeadline": "Don't create huge arrays when attempting to create video thumbnails i\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "2d41c037135da59d2565c75a42ce16445126c1b4", "messageHeadline": "Merge pull request #959 from Peergos/opt/reduce-s3-auth-bandwidth", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 18}}, {"node": {"oid": "e3453a8309836e1125effce5ed6b0724e5736803", "messageHeadline": "Reduce S3 auth read bandwidth", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 18}}, {"node": {"oid": "0523741e12572c907ee67689e998b243cd1d9cf3", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "61f172d9900c3a95ce42b1c671b3469594da008a", "messageHeadline": "Bump version to v0.10.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "407c5a91cab7631b4874c6492352036121b68c91", "messageHeadline": "Merge pull request #946 from Peergos/feat/launcher", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 224, "deletions": 33}}, {"node": {"oid": "bc69422207c01c462ba3ac5aaed1aecd6e5ef8a1", "messageHeadline": "Use local rather than proxying pointers for signup oplog replay", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 12}}, {"node": {"oid": "c2098435859008e9ee5df62cc3f3dcefb4cdfa95", "messageHeadline": "fix regression in calculateAndUpdateThumbnail", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 29, "deletions": 3}}, {"node": {"oid": "1b7018f8303d0a4538a323c509c04b9b9645598b", "messageHeadline": "Add CSP to block webrtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "86bbe738cfeaecab1bdbc9db12b5e1eeb51eaac9", "messageHeadline": "method no longer required", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 17}}, {"node": {"oid": "b664ef3ce077cb07d3639965955226b5639ee452", "messageHeadline": "required for in-place app via 'Run app' action", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 29, "deletions": 1}}, {"node": {"oid": "d3e9dc86a2a8c186f8106ceafa5d03003e59d4f9", "messageHeadline": "update ascii detection", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5e74206046affbf9627f2fc9ed67ca29bcb26bc4", "messageHeadline": "Let an app isolate different invocations with an anonymity class", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "99b51eb9d2cb20952cb6e6eb26096c9bd4c8a0f1", "messageHeadline": "move sandbox check", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "d296b10d81c9a807e8a2ff9f626cfe9bf962b20d", "messageHeadline": "Fix main app paths", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ea79686c0ac02d2956500bfd7d83a17b0abbbb99", "messageHeadline": "Allow (and require) sandbox assets to be served from root for hash su\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "813b41147b5b890dcf716ba6006795079f213450", "messageHeadline": "make Version available to web-ui", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "0298ec0931e85290006ec8e7dba40b7159eefc00", "messageHeadline": "Fix sandbox subdomain encoding", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "22381d850b6f3e3171ed774cd870fe7f5019f73d", "messageHeadline": "Fix main page requests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "1acbfb3c1e5bb580f652cf1f56cfd450b714143b", "messageHeadline": "Support generate subdomains for sandboxed apps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 8}}, {"node": {"oid": "7388f2df7567b9bb89200006987327be27ac5761", "messageHeadline": "more work on headers", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "3fc21b7a9398eab5993d4ac7e03314b1b602f6ac", "messageHeadline": "WIP COEP, CORP, COOP", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "9a3a2903bbcd6246120f622bb58b367271798e44", "messageHeadline": "add append method to App", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 72, "deletions": 5}}, {"node": {"oid": "9a5d00b37c298b73118859e2e8005a1acacbf95a", "messageHeadline": "new app methods", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 51, "deletions": 2}}, {"node": {"oid": "afa24e9d573ffacc6efb547072f0ed85c1ee5146", "messageHeadline": "Merge pull request #958 from Peergos/fix/replace-file-monitor-update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 1}}, {"node": {"oid": "ffce7d54cb117a6cfa3ad0672b1da8f961ce9ad8", "messageHeadline": "update upload monitor", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "fd1bc2f92e8a4e2a4cd6d422260f303284c4b3eb", "messageHeadline": "failing test for replace file. monitor is not updated crrectly", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 49, "deletions": 0}}, {"node": {"oid": "c1e74e040fb4dcb628a4725abfc2be5893fffc6a", "messageHeadline": "Merge pull request #957 from Peergos/fix/subsequent-follow-requests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 2}}, {"node": {"oid": "abacd41a153113599910f358116f60df922e28b3", "messageHeadline": "Fix bug in processing follow requests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 2}}, {"node": {"oid": "b0e35683d4884cae1d3062c25dbde2724d8eeea7", "messageHeadline": "Revert \"Make http headers case insensitive for S3 block store\"", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 5}}, {"node": {"oid": "9a5d8e1f6482e998f7ca3bc7ffd168c917cc25c7", "messageHeadline": "Make http headers case insensitive for S3 block store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "62d505e82f585a6dac96dce090169154af442fb8", "messageHeadline": "Add FUSE instructions to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 0}}, {"node": {"oid": "29bff9a1199926dbd644761ec86146e0a9573322", "messageHeadline": "Merge pull request #956 from Peergos/fix/macos-fuse", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 3}}, {"node": {"oid": "1e3dcc81e412408818b03561c8ae08c14dd27fcf", "messageHeadline": "Implement statfs in fuse binding (needed by MacOS to upload files)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 3}}, {"node": {"oid": "43598c91d8d09b4213457044e3763849dca71779", "messageHeadline": "Merge pull request #955 from Peergos/fix/post-buffered-write", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 3}}, {"node": {"oid": "3d14d8f3dc9779fcb0cea2159e6cc751c6b6cd7d", "messageHeadline": "Bump request count in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "455e594f81618983c8c51aa1339e8a058bd2f4b9", "messageHeadline": "Clear source write synchronizer pointers after buffered network commit.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "c95e9c8d12235b4e081617e576f12046b40dd149", "messageHeadline": "Correct duration in GC log", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "24da74b2f821c99ddc4b7922f1983c7d1bb463c2", "messageHeadline": "Merge pull request #954 from Peergos/fix/atomic-feed-update-commit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 20}}, {"node": {"oid": "3544d14de9c6ab60a9dcce83cc409b0ce05184d8", "messageHeadline": "Increased req count in test by 1", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ed1805d3521c7d75c7185b117cf25284ca744c1c", "messageHeadline": "Make BufferedNetwork share the cryptree cache of its base", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "bd860eb03ba133d87465c78c3642caaab32152f7", "messageHeadline": "Update feed atomically", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 16}}, {"node": {"oid": "2c68883e9ab8a9027d94cc00a5e0d9e0be79057b", "messageHeadline": "Merge pull request #953 from Peergos/opt/buffered-incoming-cap-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 160, "deletions": 115}}, {"node": {"oid": "87ea15d92e37e7f8489da0877eede139b9bf2b3a", "messageHeadline": "Use correct network in group sharing test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e2908c19859016cd0ece97bc86eb3517749e68f0", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d2852d207335207f7efdd102d1fc40acdb071c71", "messageHeadline": "Use correct network in multi user tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 10}}, {"node": {"oid": "9bccc77eaaecb709a8a0b4a97a6eec34003f1825", "messageHeadline": "Correct version in friend sourced trie node", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "607c2e2f3d69356d37e1bac2ce975fdb62030165", "messageHeadline": "Make incoming cap cache transaction aware.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 102}}, {"node": {"oid": "2016bbba901ec8010bb75d030e105e110a36f0cb", "messageHeadline": "Make updating social feed MUCH faster using a BufferedNetwork.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "ff3ab907b2f24434c7db309cfa34a3f6d1839cd8", "messageHeadline": "Merge pull request #952 from Peergos/fix/follow-after-block", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 106, "deletions": 39}}, {"node": {"oid": "d137d4606ebaee2dd01ac64a65aec73f64deacd2", "messageHeadline": "Add blocked to SocialState", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 9}}, {"node": {"oid": "204e3d527a7291d55e5d33a1dcbb941ad2f9e502", "messageHeadline": "Implement context.unblock(username)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 33}}, {"node": {"oid": "f89b94823c57aee33626d90b17f48859464f9282", "messageHeadline": "Merge pull request #950 from Peergos/opt/faster-delete", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 122, "deletions": 23}}, {"node": {"oid": "1c958007b5d4d720004c39e91b6e2232da395b95", "messageHeadline": "Override get calls in CommitableStorage which was breaking the Conten\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 21}}, {"node": {"oid": "7dab5b14d3d61d6bd7919afeb782f15d2e434bb7", "messageHeadline": "Fix truncate which doesn't start deleting at first chunk", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "e35e2cd0a2c5571c56e95440f0d7d206c0787d80", "messageHeadline": "Parallelise delete", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 5}}, {"node": {"oid": "7e6e5dac7b9c7ee893558280a5f7d86a219c0436", "messageHeadline": "Make file deletion 2.5x faster", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 80, "deletions": 22}}, {"node": {"oid": "03645a3b8bf48ab82fd77ba490cfae2e58340a90", "messageHeadline": "Add option to only show server messages after a supplied date", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 5}}, {"node": {"oid": "2eee1b73185a109406e9579fe797c97b725e5128", "messageHeadline": "Merge pull request #949 from Peergos/feat/shell-folder-delete", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 9}}, {"node": {"oid": "a8e67d811b5bf480ec9f72749af7414c6bcb2fdd", "messageHeadline": "Implement folder delete in shell rm command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 9}}, {"node": {"oid": "2c990f89405ba38e4f62587201388850b54aed85", "messageHeadline": "Merge pull request #948 from Peergos/fix/thumbnail-aware-monitor", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 7}}, {"node": {"oid": "c8cf9e9bb8479c5620e954301aa805593bcef588", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5bd40648120b5188135de84b3f771424e4285cee", "messageHeadline": "Add a fixed offset to progress when thumbnail calculation is done.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 6}}, {"node": {"oid": "11c317f0b38d86543d1f8257051b522a4ce6fc5d", "messageHeadline": "Release v0.9.2", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ec929eb21845c4f4803c93339ee14c8fc83e12d6", "messageHeadline": "Merge pull request #947 from Peergos/feat/resume-uploads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 482, "deletions": 198}}, {"node": {"oid": "8d68ce24df7f120429466d33d34d680cee9c512a", "messageHeadline": "Reenable upload resume test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 7}}, {"node": {"oid": "8cb064cbd8e58ed35945c50fe5a5c71a0271f9db", "messageHeadline": "Guard against parent writer rotation before upload resumption", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "0b5447c022f206f7487d0234dd89016f2214b8e0", "messageHeadline": "Calculate thumbnails when resuming an upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 11}}, {"node": {"oid": "82129143178300cf05789d3cbdb6e41e74b8adce", "messageHeadline": "Correct progress when resuming upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "9d47e80b70ea7ce1350a6791237d9f1859ff1ab1", "messageHeadline": "Remove unused parameter", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 13}}, {"node": {"oid": "8fec998746f13b9f43bbaca4f2281721dfce4ea5", "messageHeadline": "Disable test to check everything else is fine.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "f4df7c48135c9e52c3794fa1f45441d3db975357", "messageHeadline": "Implement failed upload resumption", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 63}}, {"node": {"oid": "590d1eda43c166bf5f085b5ccb25a22f9c56687a", "messageHeadline": "Don't store upload transaction names in two places", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "060c8b53a79607fe287bc1e6bfb3ebdbb4e72fdb", "messageHeadline": "Add method to get target filename for upload transaction", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "bb9b86874a9c0c9b6c58e7e860797e40cd311c6f", "messageHeadline": "Use a cryptographic hash for upload transaction names", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "704e965d52ff7a97280dde28ab91de5d41f40892", "messageHeadline": "JsMethod visibility", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "ecd0e035c2d4372c9358aca382590bc85f7b26d4", "messageHeadline": "ignore test until resuming failed upload is implemented", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "f6cadabb19796823d3c1da2d25a66351c5e600a0", "messageHeadline": "fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8d04ce25895557925560481efbe2c894acaa4829", "messageHeadline": "Rework folder upload to ensure the following properties:", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 256, "deletions": 132}}, {"node": {"oid": "17270d553abfa26d3276210407e5ca1b052bfbce", "messageHeadline": "Fix content type for implicit index.html from website subdirs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "058359ea7e01ebbebecd8317cfe2929917b5696f", "messageHeadline": "Fix serving website index.html from subdirs implicitly", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f01554ebe00621b5162f72fbeb837e2dec31363f", "messageHeadline": "Add prometheus counters for number and size of S3 block puts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "9cbc464ab4ccad09fabd49d55b4006743a1307e7", "messageHeadline": "Merge pull request #945 from jonaswre/patch-1", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 0}}, {"node": {"oid": "f2e822da93134e43694e89ed923ccfb349b2bfe4", "messageHeadline": "Update README.md", "author": {"name": "Jonas Wrede", "email": "3731681+jonaswre@users.noreply.github.com", "user": {"login": "jonaswre"}}, "additions": 31, "deletions": 0}}, {"node": {"oid": "af8606700f33f91fda500b76c10a39cf0cbaf344", "messageHeadline": "Merge pull request #944 from Peergos/fix/fuse", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "612dbbe0a4dc64e133a3179c0516217cbdd2b524", "messageHeadline": "Fixed test (now it fails)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 5}}, {"node": {"oid": "3cbc4547817aaee28c73cebf8bd2fb720722a4af", "messageHeadline": "Added a test for reuploading a file after a failed upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 14}}, {"node": {"oid": "2cc269ab0a67869b9e4d1406ec0cbf999b19a7b0", "messageHeadline": "Change fuse command to take peregos-url arg", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "c6837dc937bac377feda690264e8a5384aae0855", "messageHeadline": "Add a counter for pki rate limits", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "33ee93c87f4a50b4715a91ac22f05934389fb91c", "messageHeadline": "Add histogram for duration of champ.get calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 4}}, {"node": {"oid": "58c8e756dfc6cb061f693d5fc691915982325bb8", "messageHeadline": "Remove unused counters", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 13}}, {"node": {"oid": "20d4e305906827c040d70ba29e0a8b90ba76f0fd", "messageHeadline": "Add monitoring counters for S3 rate limits", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "c31d7659738ad978f321399ba4ab35f42151f1cf", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "cab28bbd3ddb719fd637d8e6b8c7a23f20030733", "messageHeadline": "Merge pull request #943 from Peergos/opt/gc-delete-phase", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 24}}, {"node": {"oid": "9de1e84ffb175646bed32ddcbf9e5635869e2cdd", "messageHeadline": "Optimised GC delete phase.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 24}}, {"node": {"oid": "7d6c2892d604793242bfde7e18244de8ad04c97d", "messageHeadline": "Expand logging during GC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 9}}, {"node": {"oid": "f0ab554483c3edca0f509c665f0344a4f676fa1e", "messageHeadline": "If S3 times out, treat it as a rate limit and slow down", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "75ba064d1226d98193e03278adf45214c0ec991b", "messageHeadline": "Fix null pointer in GC from absent block", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "d1a2cc0c473a8248440fd71c3f057ad846380ae7", "messageHeadline": "Bump version to v0.9.1", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1778864ca49ba177f180e87143eaa8417a40d7bb", "messageHeadline": "Merge pull request #942 from Peergos/feat/shell-folder-upload", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 132, "deletions": 30}}, {"node": {"oid": "af2d5698e503fa0182b6a9d4e58ccca5c0e13310", "messageHeadline": "Implement folder upload in shell command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 132, "deletions": 30}}, {"node": {"oid": "d393e185552079e9fb5d98092da50f1941105c5c", "messageHeadline": "Fix rename in writable secret links", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "127214a10b5a08290075c8505941f4c5f3cf9ecc", "messageHeadline": "Fix deletion in writable secret links", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "521f3f03c6fbc524977733b19372bb72b4b9e73c", "messageHeadline": "Fix uploading to writable secret links", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "350485c1307e8898e22ca91f26e739dee82587a1", "messageHeadline": "Fix using a public server in shell command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "12fbabb4918f16458ea2a02368c45dae058b0ddc", "messageHeadline": "Fix base path in CLI shell", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "980dc99b675ca77bcd654c037b13d6fbe166caa7", "messageHeadline": "Bump version", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a7c8239adfa22f86dc31e8de773bca7ef8c2cd00", "messageHeadline": "Fix uploadSubtree to use correct first chunk location for file.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 5}}, {"node": {"oid": "3541fc781d0f15d353b556d5bb50e55147efeba1", "messageHeadline": "Merge pull request #940 from Peergos/fix/macos-arm64-install", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "61b67b9d161c77e70b544b36810eba4f93e07bd7", "messageHeadline": "Merge pull request #939 from Peergos/fix/cleanup-failed-uploads-corre\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 177, "deletions": 180}}, {"node": {"oid": "0cfd956bd3cb22a511de78afa687c7a7a4365c18", "messageHeadline": "Allow time in test to recalculate space usage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 9}}, {"node": {"oid": "ba1eec50c0149e9883352fe8797d69e33e4bd2e8", "messageHeadline": "Only log native lib load error on linux", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "155754142961d04afdcd1894b18edfff178805b0", "messageHeadline": "Print daemon version at start of run to assist debugging", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "e6e15b61c1fda4a8fe2a788f4317f7033d59eb0d", "messageHeadline": "Fix installer for macos arm64", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "188d1767facf43b2df3f30049029b722c31bd96d", "messageHeadline": "Fix cleanup of failed uploads", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 132, "deletions": 173}}, {"node": {"oid": "faf61c1e1273154d95d5037cb36e8d42d4caa620", "messageHeadline": "Add failing test for cleaning up failed uploads", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 1}}, {"node": {"oid": "60a6fea4549c677f0b1b35ef6542fbdaac1e4e47", "messageHeadline": "Improve logging on auth error", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "d290762803a5ea86ed5d5cb9ea7a97bfe49e30f7", "messageHeadline": "Handle IOExceptions in S3 head reqs with null message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "f016e8ce399595aba7c54720845f10dfa3d9a458", "messageHeadline": "Merge pull request #935 from Peergos/fix/timezone-bat-auth-issue", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 7}}, {"node": {"oid": "ba20cd57d6e4fec090b382f78d6a43c0d15349ba", "messageHeadline": "Fix constructor visibility for gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "8881eec9cd532c2fd5e6803e44f3fc848a81ee5f", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "d553735d5227dc924e274c719cbddf020dace82f", "messageHeadline": "Add BlockAuth.timestamp() => LocalDateTime", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 17}}, {"node": {"oid": "d80cac460e364c326d3f5e5f6de59a16f45a502f", "messageHeadline": "Fix timezone issue which was causing bat auth to fail", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 4}}, {"node": {"oid": "4fffb18eae095cf4550ebc03922cb459cb1513e6", "messageHeadline": "Make sure creationTime handles legacy data", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "116417058b8736bf3c50f748c3ab86841e72606c", "messageHeadline": "Merge pull request #909 from Peergos/feat/file-creation-date", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 28}}, {"node": {"oid": "06d8adb5716bc7b30093f03b77633342400ffa05", "messageHeadline": "Merge pull request #934 from Peergos/fix/s3-delete-folder-with-writab\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 93, "deletions": 17}}, {"node": {"oid": "736b31a2b00a1735f611fb862cd263da2ad5e85d", "messageHeadline": "filter empty block batches when committing buffered storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "ed2704586370a2d3d77ac13b81475c989450960c", "messageHeadline": "Also batch block writes in BufferedStorage by writer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 16}}, {"node": {"oid": "650e82854fd30f6e2517d8b8c4e858f5d9513ccc", "messageHeadline": "add nano to creationdatetime as well", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "663370381a5dc0eecdf05c3ecb0da439180b8b02", "messageHeadline": "move code around", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "66de644185fac3875da215b6c4dff2cf756ea213", "messageHeadline": "fix imports", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "dcc7cc86cab6394fa933c1c6d455022eb8a31baa", "messageHeadline": "fix imports", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 22, "deletions": 20}}, {"node": {"oid": "244cf10fd6c3566555673e25b344e96afa3ca075", "messageHeadline": "remove further debug changes", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 16, "deletions": 17}}, {"node": {"oid": "c0989ab13608e831c91a7db03f297acbddbe3820", "messageHeadline": "undo debugging code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 30}}, {"node": {"oid": "0eea11cd617cad054ea75e9f6d4bc3ab3a8df06b", "messageHeadline": "debugging", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "a761ab08eee5a9411a756f01b6344f842005631c", "messageHeadline": "initial commit", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 72, "deletions": 32}}, {"node": {"oid": "4d53ee61143fd44bfe5321621f1baf5f8b1e9271", "messageHeadline": "Add a test for deleting a folder with a file we've granted write acce\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 62, "deletions": 0}}, {"node": {"oid": "f1982e6be4fc3e575c39b997cfb9b39a17128a9c", "messageHeadline": "Merge pull request #933 from Peergos/fix/update-fuse", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "7a0c14c49f729f2096bf9d81a6300bf3080435d3", "messageHeadline": "fix migrate test race", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2bf302096460f63a0835450eabfa38e539a33935", "messageHeadline": "Fix build script", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e0f2e43101a19dcea0d643de5885cf1ba133943b", "messageHeadline": "Support storing nanoseconds in file modification time", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 5}}, {"node": {"oid": "ac1b19dbf5e274753e16e855c9fc54ef29fcd9b1", "messageHeadline": "More s3 head error handling", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "b2325f5effa878e587f0c6dd4c71c21dafc23ea1", "messageHeadline": "Return 404s correctly", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "861dafe4981e5595e8aaf23c673b831d6fb2d3f7", "messageHeadline": "Fix extracting source version from Jar", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 10}}, {"node": {"oid": "08582f61e1962e6d9bf1e480127695f411a797f6", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "ccd7d1d26823f780cf7340ad20b3990e0d4a95fc", "messageHeadline": "Remove unused class", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 10}}, {"node": {"oid": "8884fb5b960851137e06cd93fcbff309956fd425", "messageHeadline": "Merge pull request #929 from Peergos/fix/start-init", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "b7cc8a692dcc8f4e86837f602481f20194f71b97", "messageHeadline": "remove client init code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "f57e72ede42ca5a097d8dba7cbb463835bca6983", "messageHeadline": "Bump version to v0.8.2", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8a16402de700e21cf935d31c27c896bdd78185bb", "messageHeadline": "newline before sub commands in CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6d411f44c4b42f2374add8a843aa8b3710d50ce5", "messageHeadline": "bump minor version", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1add47fcc8de17db8caf07a8157f8d5c634d7af1", "messageHeadline": "Fix parsing config file path with custom PEERGOS_PATH", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1d73d08e796eec32bf8f4420c9e016e3a30691f6", "messageHeadline": "Add S3 CORS instructions to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "407b909713950446eae0e03fa59cd99683614b1f", "messageHeadline": "Add a CLI version command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 5}}, {"node": {"oid": "44da58a6c20577ca476baf5feb0d028b93ea2850", "messageHeadline": "Merge pull request #927 from Peergos/feat/single-server-direct-s3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 12}}, {"node": {"oid": "315d8ee35d48be2bd14ef477a06d1dc20ad7111a", "messageHeadline": "Support single server direct S3 mode of operation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 12}}, {"node": {"oid": "b68d906950cdfb1d4b163277cf89825107cc8ad3", "messageHeadline": "Merge pull request #926 from Peergos/fix/public-self-hosting", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "9e6ce3e6fb337a14b7b3ed4d071f2688e31a2d75", "messageHeadline": "Make sure IPFS uses S3 if running on a single server!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "d087c1c5c3f509f54ce7ef491a56a7e2aa1e7c65", "messageHeadline": "Don't run gateway on a public server", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "c85572ff353736aa2d33ab1c2af4275aa468e1a1", "messageHeadline": "Bump version to v0.8.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "25915255fff917eb6f202e0c428f98fbecdd4778", "messageHeadline": "Merge pull request #921 from Peergos/feat/locally-homed-users", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 5}}, {"node": {"oid": "48b8d948594073b629c16f31d5c846f807790320", "messageHeadline": "add markdown viewer domain to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "49ffb066b729b06a606a91c9892b672b7da76885", "messageHeadline": "Add S3 blockstore and postgres sections to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 0}}, {"node": {"oid": "ef25d2cd16421de47d74117f452b8c1cbf7927ba", "messageHeadline": "Add a CLI command to list all the users whose home server is the curr\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 5}}, {"node": {"oid": "d93273653b4c53bb7ddc25afa52a85bbb10e93ac", "messageHeadline": "fix arg typo in readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "afeb60dffca70a5e7e850a2fab26c317ddfe9346", "messageHeadline": "Add mirror and migrate instructions to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 0}}, {"node": {"oid": "436323bdd942a9bd93d768101bacd0d058aff4e9", "messageHeadline": "Use better method to create parent dirs in tests using FileContentAdd\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "c4a32c66fcf0458c275a5edea2d60090bc91d228", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "1395b28ae936a2df6f6a138c475dc4f0b9a9f730", "messageHeadline": "Merge pull request #920 from Peergos/fix/migrate-without-timeout", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 13}}, {"node": {"oid": "4f84be3e3cf6d32463ab719d7fe82bcdb9739a7f", "messageHeadline": "Add a CLI command to extract the correct parameters for a full user m\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 0}}, {"node": {"oid": "447ad338c41ad95e3e7ddb2ac54acc93928017cd", "messageHeadline": "Allow HttpPoster timeout to be configured for each call.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 13}}, {"node": {"oid": "904442ecd5508590d766b240dc529649e91a75fc", "messageHeadline": "Merge pull request #919 from Peergos/feat/cleanup-failed-uploads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "293d9fe99963ba149ecd1e624a81b01131d5d7ef", "messageHeadline": "Expose cleanPartialUploads to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "1d54768b68493022e52604270a204b599bb87ac6", "messageHeadline": "Merge pull request #918 from myishay/patch-1", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "faeb55e80b104924bc5592e674783ec99115ed8b", "messageHeadline": "Fix typo in README.md", "author": {"name": "Yishay Mendelsohn", "email": "myishay@gmail.com", "user": {"login": "myishay"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7ef5e0f31301a6b65c9138294777338dfdd42f64", "messageHeadline": "Merge pull request #912 from Peergos/feat/markdown-viewer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "92a4af50217ccdca5419bdc1d5fe08e66bc18386", "messageHeadline": "Merge pull request #917 from byZeroOfficial/master", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3b11760f3e93b966e1320cb1edd4e72207cb64ef", "messageHeadline": "Change Matrix URL", "author": {"name": "byZeroOfficial", "email": "mail@byzero.dev", "user": {"login": "EinfachRuwen"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c3d25ee6dfbd94f653e72da482a57906d60e47a2", "messageHeadline": "add markdown-viewer sub domain", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7a428cc63c753c03124ebdba59d2d5ba0860fb95", "messageHeadline": "bump version", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7bf5d2f75529c0b13029c52cd507ef7e91a86b63", "messageHeadline": "Fix Jar handler paths", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9aff4c8ae21446a7b0816724d1cfa3126028281e", "messageHeadline": "Meke test less flakey", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "df0fdde1590752e4fada9b2607f49dcf51c2fa29", "messageHeadline": "Merge pull request #908 from Peergos/test/run-tests-on-windows-and-mac", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 574, "deletions": 492}}, {"node": {"oid": "86b959ae028d191910a322773f7809c08beb513e", "messageHeadline": "Don't do JNI tests on MacOS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "7215a1312215b88bb380c86183e4d406cfb497bf", "messageHeadline": "Correct Ant isLinux condition", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 1}}, {"node": {"oid": "b5efb87da185992fdccda75f61e904f721f3e6ff", "messageHeadline": "Reenable MacOS CI tests now that S3 tests are Linux only", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9663fe302f2e05ff51f2e57d78f059b70faaa223", "messageHeadline": "Only run S3 tests on linux", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 2}}, {"node": {"oid": "6266b431386886b0162e5ec89dde1e01746262f4", "messageHeadline": "Fix race in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "dd1ecb69992e5465c7f0822378633f646613bf80", "messageHeadline": "Increase CI test timeout to 2 hours", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ad8c50e78eb707fc833f70d8705f7cc887302f20", "messageHeadline": "Disable MacOS CI again (all are passing except S3USerTests)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "751036ed002af68942b6f4ae89d56dd63b239798", "messageHeadline": "Disable public web hosting test on MacOS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "e26c52806e8929a10994c593f0cc1b9adc8e5360", "messageHeadline": "Disable FUSE tests on MacOS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "d278f55d60e48d8167cbbd50e41b99301e400ec7", "messageHeadline": "Disable FUSE tests on MacOS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "d5112c79b4bc6f321a194062a66a264c79be102f", "messageHeadline": "Increase memory for unit tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "dcfed08f77cbe9c4ccbd86a8e888a862e72e1209", "messageHeadline": "Fix bootstrap configure on windows which needs extra quote escaping", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "0a352a2b309a76fe50258abe00c699f0b7af40cd", "messageHeadline": "Upgrade ipfs-nucleus for windows support", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 74}}, {"node": {"oid": "571444442f68b6b12f8c77b37737fdaf1292a1e2", "messageHeadline": "Reenable macos tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8a40ef2392d44f5bcc0fcf602419db53426ca0a8", "messageHeadline": "Fix UserContext.getByPath on windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "eef5cbb0d65ab12693699c4feaa754d94ecd46fb", "messageHeadline": "Fix ipfs installer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "042605cd7045f470760f53de145b56fb896ab095", "messageHeadline": "Allow absolute Paths for Peergos dir", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "ee1dcf0dd5e19c58d2f61ff2603c0f73121ffed3", "messageHeadline": "Increase gwtc memory", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e5e2fce3e818c791e39a5c3965fff844f14fd650", "messageHeadline": "Disable public webhosting test on windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "e72f59d3897df78c8b09ac6ff8beec1880e0d851", "messageHeadline": "Fix path extractions in SharedWithCache on windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "eda3614d042a57be0eccee62886c918bc943ef8e", "messageHeadline": "Fix social feed test on windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2ec76480f387a25e1da9845ccabdbd289156982b", "messageHeadline": "Fix social feed owner extraction on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "98f1445e6e3863e6d97ff501366009ec061f1da9", "messageHeadline": "Fix FileWrapper.getDescendentByPath on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "364f61866130e6dae0ad6eed9250312f57ff8a19", "messageHeadline": "Fix FileWrapper.getDescendentByPath on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 7}}, {"node": {"oid": "6b67858d18b6b08853c004216d46db99f11d572f", "messageHeadline": "Don't use : in chat names! (Windows)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "bf7355a55ed4fb79abe9075f7bcf7353f19191dd", "messageHeadline": "ReplaceAll Paths.get PathUtil.get", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 344, "deletions": 339}}, {"node": {"oid": "38e4950b860a483a652ed7995a09a5dce2309f93", "messageHeadline": "Fix TrieNode.canonicalise on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "c9e2ed6af318b63a7c701b83ae4aea47b7ac78b3", "messageHeadline": "Implement Path.of for gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "de8a361b1159635c3ba8db8fe68eaa6b7f715550", "messageHeadline": "Fix App.writeFileContents on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "942d49298a216553d557079493d87aaedf6d88fc", "messageHeadline": "Fix WriterTest on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "edc52ae1b2d8793dac75842e4591d64728cec567", "messageHeadline": "Don't attempt JNI tweetnacl tests on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "bb59dd2520b59eb8ea8d38fbb91fb44c197d1c2a", "messageHeadline": "Allow S3 usage on Windows or Mac", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "da43fa343d0019014b4b5865586351710efa3d20", "messageHeadline": "Fix GatewayHandler on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "1da57c359d5402a353ff09449368b939b4ffe51a", "messageHeadline": "Fix PublicFileHandler on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "050340a2f6405af12814629674688a9ddbfbc64a", "messageHeadline": "Fix writablePublicDirLink test on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4c1f57340f5dcffacafbc4dd5505723096b6c916", "messageHeadline": "Fix profileTest on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 10}}, {"node": {"oid": "bd476a40ff182f828ae505cd10b0acb153746425", "messageHeadline": "Disable FUSE tests on Windows", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 0}}, {"node": {"oid": "9b6d18c0f8ba8fca5f417f86c3c7a6441bde83b2", "messageHeadline": "Disable mac os CI for now", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "342dc32799016985b93943a5537217ba4ceea8d4", "messageHeadline": "Handle windows paths in path canonicalisation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "74279777daae914e144285886f82a6189ad05ee4", "messageHeadline": "Remove explicit use of / in Paths.get() (for Windows)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d07b2608595094a8bbc08da1fe040981fdf59cd2", "messageHeadline": "Further simplify FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 14}}, {"node": {"oid": "04d5f1681e480c7eab6ace069b6ff02310f0b72d", "messageHeadline": "correct Files.write options", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d4c2b3899c189319a68ce0c4647bc06b28f390e0", "messageHeadline": "Don't use tmp files in FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 11}}, {"node": {"oid": "c82028c944df7f51cc534e9fa5eb78bd627c9ec5", "messageHeadline": "Set file read-only after move from tmp file in FileContentAddressedSt\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "ed704f2b62ddb04ef88c45654abdb7ab2c6126aa", "messageHeadline": "Don't try to delete non-existent file in FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "d15e6d705687b558220febf22c42678b1d26305d", "messageHeadline": "Handle attempts to publish to an existing path in InodeFilesystem", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 1}}, {"node": {"oid": "33a19570a4239b8612ea06e90f7280ae15df7f53", "messageHeadline": "Release FileLock in FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "a40f281b9d6e06ed39a606418682c44efe8fc394", "messageHeadline": "Also use File.deleteIfExists in FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "1582a92336d6e27f6d3f5cdb4c4e8020417c26e0", "messageHeadline": "Use Files.delete() in FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "f0bff33acb914b69d889b14303b0783c9844b110", "messageHeadline": "Use Files.move() in FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 4}}, {"node": {"oid": "bce85f037b151123eedd0eb1a9b3d46864392499", "messageHeadline": "Flush block writes in FileContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "83f044eb0fed533ceb34e59fb09cd5a10868cd65", "messageHeadline": "Fix printing test errors", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "7b21967d8be3548a73b91aa67f8f04ea88183223", "messageHeadline": "Switch to Java script for printing test errors", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 11}}, {"node": {"oid": "7f8738167471f93b9d1875fca18f8ae903cfa583", "messageHeadline": "Run unit tests on windows and mac as well", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "599cc933f583a534e76f8a5fda3c6cdbdba24f9b", "messageHeadline": "Fix DirectS3BlockStore fallback for non-local fragment gets", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 23}}, {"node": {"oid": "25fd66a47b8448360526456f730536562839dbc5", "messageHeadline": "Cache nodeId in DirectS3BlockStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "6e06f0a6fd63fd9b52db0f998b9fa9242ba6715d", "messageHeadline": "Merge pull request #906 from Peergos/feat/bootstrap-list", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 1}}, {"node": {"oid": "00e2a8d121473002fa9bdc1ca3f90ecf7f9d33e8", "messageHeadline": "Merge pull request #905 from Peergos/opt/p2p-gets-on-direct-s3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 66}}, {"node": {"oid": "7c31625b2b2b08edfc42d09fce0d42029fbb470c", "messageHeadline": "Explicitly list bootstrap nodes in Java", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 1}}, {"node": {"oid": "45d835e83330a02ec4fae45306db71849b526d5a", "messageHeadline": "Speed up non local fragment gets when using DirectS3Storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 66}}, {"node": {"oid": "9760035423079239f1d5dc0eaa4923a087c4939f", "messageHeadline": "Merge pull request #904 from Peergos/opt/large-file-upload", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 221, "deletions": 125}}, {"node": {"oid": "fee6ad3c4444ba142b09b15e03cb741818cc4150", "messageHeadline": "Revert serializing friend updates when updating social feed and fix t\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "44f7cd6e71b7efae498616839878e643b5bcbe5f", "messageHeadline": "Serialize friend updates when updating socila feed.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "fff6f5149cda866d2eea410a7367660fd975826c", "messageHeadline": "Fix several tests that were assuming synchronous calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 24}}, {"node": {"oid": "9269d4b92d1d411bae71c1b82fb2915417d624aa", "messageHeadline": "Fix error handling in file upload encryption queue", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 6}}, {"node": {"oid": "601e6be5d76a59a3f9eed690fe963993ad34de89", "messageHeadline": "Optimise large file upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 74}}, {"node": {"oid": "f10ee15696fcff4ce41d440792b713212e63fedd", "messageHeadline": "Upload chunk concurrently with encrypting the next chunk", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 16}}, {"node": {"oid": "fff26231aa7555927a698ff7965dfafc4f37e309", "messageHeadline": "Refactor file upload in preparation for overlaying encryption and upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 50}}, {"node": {"oid": "0ee89c5a6112595718740a1e9b82f8b3ade374f7", "messageHeadline": "Put in extra guards against too large blocks", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "a1d3dfa70a838a4f1f1bbf9c7f5c4687fe2525bb", "messageHeadline": "Merge pull request #903 from Peergos/opt/buffered-network-signatures", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 86, "deletions": 21}}, {"node": {"oid": "c94f7f4b50e8f874db390d7bb17f4b186fcb708d", "messageHeadline": "BufferedPointer watcher is no longer necessary", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 9}}, {"node": {"oid": "dcc9b9c74a7546e180b92fbacb034135d4640258", "messageHeadline": "Al;so clear pointer buffer in buffered network commit", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "0f05692f4dfb25aef67c9a4cebd4e51e4b7ac308", "messageHeadline": "Merge pull request #902 from Peergos/opt/buffered-delete", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 186, "deletions": 37}}, {"node": {"oid": "657491312f338fa6f889851c0e471e85828c0039", "messageHeadline": "Further optimise BufferedNetworkAccess to remove superfluous signatures", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 15}}, {"node": {"oid": "b5edc1dfab073abdb9c624ae456a816c6774c724", "messageHeadline": "Make sure we include parent writer when deleting a file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "d9131cfa9d9b04cecd956ec3c679119d9e520082", "messageHeadline": "Make sure when removing a shareWith value we use correct writer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "32d78502be83d8396cf9e4d8e7edb81bd5201017", "messageHeadline": "Don't create dirs and file in SharedWithCache unnecessarily when dele\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 9}}, {"node": {"oid": "8145a67fc137793c3982d5f0100ca30bd8161a3c", "messageHeadline": "Use BufferedNetwork in delete to make it 7.5X faster!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 32}}, {"node": {"oid": "49cb9ce074c0d641486eee2d9e636f4e9a18fe77", "messageHeadline": "Add a benchmark for deleting a large folder", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 87, "deletions": 0}}, {"node": {"oid": "a388fe5ea9d6f0442c34141554c400e3a0187211", "messageHeadline": "Merge pull request #901 from Peergos/opt/bulk-upload", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 719, "deletions": 92}}, {"node": {"oid": "9a49fabb8fe55d039e20ecb0c1629ebdf8bbe5b5", "messageHeadline": "Revert back to 1 block per bloc.putRaw call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "0f7d57672d83d3266d3a564753f80f7feb396ff4", "messageHeadline": "Make bulk upload only update dir after all children", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 52}}, {"node": {"oid": "09ea11674939a05033c6810ff1904b2ef6eddc36", "messageHeadline": "Allow bulk block.putRaw calls (up to 10)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "931fe07005bf5b688a67557022c248b8b90efa4e", "messageHeadline": "Make sure buffered network notifies after each commit, not just final\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 8}}, {"node": {"oid": "24199e43e57525ffb5fafc454329d99c93be6243", "messageHeadline": "Add notifier of buffered network commits", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "6b79922388769b23cf267314cdcdcb3d060e82e2", "messageHeadline": "Cache node id in CachingVerifyingStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 4}}, {"node": {"oid": "5fe2016901ffc2595e4c1c07c07b365cbe63e40d", "messageHeadline": "Fix bulk upload for subdirs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "3da7ad689f4c5c0d2c8930cc4806c20772a134c7", "messageHeadline": "Extend bulk upload test to sub dirs (which fails)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "39c83fe727a13a4bddca7302aca4968173fe002e", "messageHeadline": "Allow empty string Paths.get()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "98b08f3d50cf0f1bca7f3d3a260491263c9cd7ce", "messageHeadline": "Remove JsMethod from FileWrapper.mirrorBatId()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "8c5a9db2cff993054457a117335f71d7df49272d", "messageHeadline": "Test correct progress count in bulk upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "391d61cb327c7ccae86d02638e1b32c990baba42", "messageHeadline": "Make buffered Storage update progress (before commit)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "9153ac3cc917d2dffaf3133b505679bdae2c5df8", "messageHeadline": "add failing test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "a7f51abf91e800905611b3565b0719957456ba66", "messageHeadline": "Add test for bulk upload", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 26}}, {"node": {"oid": "e968c9b5a0a87db9307e020faed5147423c679d6", "messageHeadline": "Update legacy references to beta url", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "146302cbb99f077cf97f628e4448f389f8f3fa8d", "messageHeadline": "Make connection to max block auths explicit", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "72b830dd0e436ad3ca07f53488454a03d3d96220", "messageHeadline": "Correct condense pointer case when there is more than 1 writer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "056f46ac3fc3520977438c753f10dabe95824c3d", "messageHeadline": "Add a pointer condense and GC before commit on BufferedNetworkAccess", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 102, "deletions": 17}}, {"node": {"oid": "da5ecbf6455c8ad9a3158b4129b1136b78244e75", "messageHeadline": "Add a new FileWrapper.uplaodSubtree call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 472, "deletions": 9}}, {"node": {"oid": "f34f66551bedc30b6a6977cb269e67ed5870e1a4", "messageHeadline": "Add example nginx config", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 0}}, {"node": {"oid": "ca625ffdb9d498249ae8a6ce21a02d589bf5bdaf", "messageHeadline": "Add -public-domain arg to self hosting instructions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "255c2a9a588afc8d098ff1e7c08094e23eb746c6", "messageHeadline": "add advice for hosting a public server", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "60fd797937c83a540a7f03f1be015d8c79d0afbc", "messageHeadline": "Merge pull request #900 from Peergos/fix/s3-back-off", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "baeab77675ebbdb7ef67aee505b737171f09c131", "messageHeadline": "Make all S3 block gets use back off if rate limited", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "e330a2285e36a8218e359e6930f6b54d6207b52c", "messageHeadline": "set encoding for javac in ant (needed for windows build)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "040a2fd277607c8ac6fc7c09f6bd85b7c8d8562b", "messageHeadline": "Merge pull request #898 from Peergos/upgrade/sqlite-for-graalvm", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "2a6facb45b1730316b1df05dd375cd58b89f482c", "messageHeadline": "Upgrade prometheus to support graalvm", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "a39759ded76b49a42beb70e35ffd657baea4ba83", "messageHeadline": "Upgrade sqlite to support graalvm", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "a908cde436dbecc75f49db2e1479f22a1a1906b3", "messageHeadline": "Merge pull request #897 from Peergos/feat/local-s3-tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 231, "deletions": 43}}, {"node": {"oid": "39c5166e2584cdc5bf92f439cd07481cdf4e0beb", "messageHeadline": "Improve localhost S3 logic", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 39}}, {"node": {"oid": "be599fec620144021649835f77fcd490319a2e8e", "messageHeadline": "Change gateway test port", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "b833fd673b64c45018b7bb9da3da1ad345c5c596", "messageHeadline": "Randomise ports in S3 tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "f833bdfecbb40fb27ea10c2e47269cb8edfe5568", "messageHeadline": "Also test DirectS3BlockStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "86fbd49c257e1e29c060b73e4bd4a927051b9b44", "messageHeadline": "Implement local S3 user tests to exercise S3BlockStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 126, "deletions": 2}}, {"node": {"oid": "0efd51d05a5bcd6dc002ea8e27f55cedf3f39c90", "messageHeadline": "Attempt to run minio for local S3 tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "81580ae7470407dbd2e33be36a7df270ac6c4b92", "messageHeadline": "Attempt to run minio for local S3 tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 0}}, {"node": {"oid": "c90ee1e44d7bb208f7524185ec5b7ff490322287", "messageHeadline": "Add screenshot", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "3d88ece04e1fefc7c9859827b75e649af3d5a5a2", "messageHeadline": "Remove beta references!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "af4ba906fcb0cc85a047e2724cb233e1c3c21291", "messageHeadline": "Merge pull request #894 from Peergos/fix/handle-existing-thumbnail", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 38}}, {"node": {"oid": "2f1df3cf18e87982aeee67d6704743c6f0731edd", "messageHeadline": "remove redundant code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "3dae70684ec3457d509b2b26c4482fbaef3de7d1", "messageHeadline": "re-order thumbnail parameter in copyTo method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "4cf84ace81b72d82e0eae6a2d489e8df10dbaae8", "messageHeadline": "Updated - Do not recalculate thumbnail as part of copy/move", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 72, "deletions": 38}}, {"node": {"oid": "6d6ae8d9b8d0218e59b0a325c624e742766e0711", "messageHeadline": "Merge pull request #893 from Peergos/fix/block-p2p-http-get", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 15}}, {"node": {"oid": "ac1c722d8982879c624d2f6eae534d9fa3e0b6b1", "messageHeadline": "Fix multi node tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "6a827c2c9a4f9bd86bcf22936da305268c40c58f", "messageHeadline": "Block p2p http gets, which should be using bitswap", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 14}}, {"node": {"oid": "b2765664d954b3468a34d09e0c0974fe1305c9ce", "messageHeadline": "Make sure we wait for tasks in ForkJoinPool to finish!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "cabd8bc102857c587248963dc1f02d8fbe53c4e4", "messageHeadline": "Handle nothing to delete case in S3DeleteOld", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "a8678ebfe5a0174271e075ee6336ee34f7a1721c", "messageHeadline": "Make S3DeleteOld use bulk delete in actual bulk", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 11}}, {"node": {"oid": "fb8893e9e29608b649a2f8dc8f754e1d31f336fd", "messageHeadline": "Make S3DeleteOld use bulk delete", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 6}}, {"node": {"oid": "d276eb64d139bd18030321d968dd7cecb22195cd", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "05f4bb41d900f708f9c334f36424d6478dc153ad", "messageHeadline": "Merge pull request #892 from Peergos/opt/include-pki-snapshot", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "63894272e147fc03e54d415cedf5890e0f13d5db", "messageHeadline": "Load pki snapshot from jar at first start", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "390544060b9c33e7feacf500ca0c2a325098e4af", "messageHeadline": "Make admin-usernames parameter optional", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "8fb8fbfcefd36d52148c9f00d3db9c6b78c6fdaa", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "294b618b379d0c9b5a3a500c9bfea727d4f80198", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 6}}, {"node": {"oid": "ef94778e73adfc2d13eb6770154303449f1ad732", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "6da3adb7ac415313d9fca1fbc8cb6ff92533c01e", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "5b7562d4c43c9d560b5770524b1b011bd814d6b7", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b3e3db3b30d406ead0eb219259b744f02f535914", "messageHeadline": "Make sure S3's p2p fallback uses correct node id!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "9410f3cd0c52cf79bc25eb811d5cdd2fa2bd715d", "messageHeadline": "Merge pull request #891 from Peergos/fix/p2p-get-through-different-ip\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 7}}, {"node": {"oid": "84443a995872cb42d481f6c560f748867e9ad54b", "messageHeadline": "Use correct node id to auth when p2p-get ipfs instance in S3BlockStor\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 7}}, {"node": {"oid": "65b6da7fce2970dc053dc4fad2207ec4fed2831c", "messageHeadline": "Log failed deletes in S3DeleteOld", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "53744e2f43acb52185e5f585b8e0f00ff5ed09ae", "messageHeadline": "Update self hosting instructions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 21}}, {"node": {"oid": "57cf4964a4d93c0e2d1da98195aea0ad21330c20", "messageHeadline": "Halve number of S3 queries to get change is size of merkle dag", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "de70fcc5213aac42b0731b03cb55bc900acba483", "messageHeadline": "Merge pull request #890 from Peergos/fix/size-calculation-on-s3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 4}}, {"node": {"oid": "76fe62b5725b70f74b9841e2e987b7b4328df82d", "messageHeadline": "Fix size usage calculation for S3 by allowing internal getLinks calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 4}}, {"node": {"oid": "17489fd7a293feeb8cc7529d9e7abef84804c4c7", "messageHeadline": "Add log statement to S3DeleteOld", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "3d52e0e99f7ca9f9aaa9dd514d2afb3460048ddd", "messageHeadline": "Merge pull request #889 from Peergos/fix/p2p-call-space-dos", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 21}}, {"node": {"oid": "0b50055bffeff96ace9449c7dd420271bef7542c", "messageHeadline": "Make sure a malicious champ.get call via a p2p http request,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 21}}, {"node": {"oid": "ff9e89230663e047e2abbd6ee35e8e8324a24457", "messageHeadline": "Merge pull request #888 from Peergos/feat/better-raw-block-bats", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 208, "deletions": 271}}, {"node": {"oid": "1ed8351ea3de5db1109902c24c074a7872fb267b", "messageHeadline": "Fix block size limit", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3864571ba154d9df5098eb0dae566b12e0420050", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 2}}, {"node": {"oid": "15081f24d96b5f82fd92b2965cf0e577aa9b27cc", "messageHeadline": "Switch to superior raw block BAT scheme", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 196, "deletions": 270}}, {"node": {"oid": "50bc2d5222482e3847ee243e676f9a14aa4df41f", "messageHeadline": "Add util for deleting old S3 objects", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 0}}, {"node": {"oid": "e455dd19083ad111eea3e8eaa3dc6594a7543fcf", "messageHeadline": "Remove logspam from bitswap", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "fee7db2914e9185857597305e85c58d846a9340a", "messageHeadline": "Correct error message when committing mutable pointer fails", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "628085858ac4005048e370e7bb0f9eb1b1363d4c", "messageHeadline": "Merge pull request #887 from Peergos/fix/legacy-raw-blocks-without-gc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "1ada6e08e805229a75ac1589ca8b214982f093ab", "messageHeadline": "Make sure legacy raw blocks are handled correctly when GC is disabled\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "c1497feb14401e3697980f79cf5562f8ae462c9e", "messageHeadline": "Merge pull request #886 from Peergos/fix/legacy-raw-blocks", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 129, "deletions": 61}}, {"node": {"oid": "03dcdeba275433d897a49f7e6b869dfe4777f447", "messageHeadline": "Make sure the AuthedCache is consistent with new legacy raw blocks ad\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "00ae085ab2bea63e3d5ebd2d9ddc6548d26bf1c9", "messageHeadline": "Update to ipfs-nucleus version with block.has call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 40}}, {"node": {"oid": "1506f4f9918946013254f678bf67161f32f4617d", "messageHeadline": "Make garbage collector also clean legacy raw block list.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 59}}, {"node": {"oid": "80b5c2bc0fe3c19f24710cac172b37fd70b2a60a", "messageHeadline": "Fix another test arg", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c5ae40eded77f2bd6b4a8d4a8233230f5bba9515", "messageHeadline": "Fix test parameters", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "d5ab1b62858f1d4c715dbad46ad8b5fca1f50940", "messageHeadline": "Fix ipfs-nucleus arg", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "a63b4eb3e52c8dbe42d343e02ad6bb7ab380c358", "messageHeadline": "Fix handling legacy raw blocks in DirectS3BlockStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "867021fc8748d8c50956b621be1c609a2d9a1702", "messageHeadline": "Switch allow target to multiaddr arg", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "6ac16f3b191213a60873f0b6f90339a38cbc1b70", "messageHeadline": "Merge pull request #884 from Peergos/feat/bat-block-level-access-control", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4521, "deletions": 3648}}, {"node": {"oid": "a7aac87d08ac62bfce4daf958607b555a2496972", "messageHeadline": "Make flaky test slightly less flaky", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "d5a30996f3d4b1df750efcbe957273585088feda", "messageHeadline": "Fix race in flaky test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "f062e4202c1af590d18ada22cb0ff78650481895", "messageHeadline": "Add CAS.clearBlockCache()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 1}}, {"node": {"oid": "ad71a3a1b1a40a9be3fca2cb39a2bf672312fbc9", "messageHeadline": "Test that different chunks of a file have different BATs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "3f630a0ee00b3e8d91a8266ae64f74345ae429f4", "messageHeadline": "Fix legacy file modification test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 7}}, {"node": {"oid": "17af579e2f8fcc99fa08156c1e287ca5a50d55ba", "messageHeadline": "Improve legacy file modification test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 11}}, {"node": {"oid": "27b5160d67cc054f44e9b2a345c156ae5a915050", "messageHeadline": "Add test to check that if a legacy BATless file is modified,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 0}}, {"node": {"oid": "dcdf16364bddbfb47e76a1e0b15b0bd27aecfc3b", "messageHeadline": "Test that file BAT is rotated during key rotation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "944ea2a0ec070c95dbdf0d57b1becf9e1eeea8c2", "messageHeadline": "Add allow target parameter to pki commands", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "61cf46704c64c287476ce67b6de97003f769df4b", "messageHeadline": "Handle retrieving legacy raw fragments which don't have a BAT!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "d397928241a25e17aa1b2b4a8efb0b8fd90dd62d", "messageHeadline": "Bump version to v0.5.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 660}}, {"node": {"oid": "603a25a90243aca883f572be46f7b1e018295a07", "messageHeadline": "Expose Optional.empty() to Javascript", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "b1ed13009e8f62a412e6e6f3f30f34bdb514c5d6", "messageHeadline": "Switch raw block BAT derivation to HKDF", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 16}}, {"node": {"oid": "b18d331e5647758aaf98a5d05fa8ce5a11a2ff26", "messageHeadline": "Ensure there is a mirror bat in migrate CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 11}}, {"node": {"oid": "10580833d9b41e7bbecaa85a67cfe03ad2d9767f", "messageHeadline": "Make sure adding a child to a directory can't use a different mirror \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 9}}, {"node": {"oid": "897bd3002b25672b44482f0b5414d51feea99527", "messageHeadline": "Fix mirroring/migrating raw fragments", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 24}}, {"node": {"oid": "18bbfe7576a3e312b1e3185a93d411059d3b9efd", "messageHeadline": "Don't return null after error in getRaw", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "d0b716d3b0c871f5d66cff9400f39d3de1681da9", "messageHeadline": "Add check against authless internode retrieval to migrate test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 3}}, {"node": {"oid": "7d1768330a991985387a5adde68d688ad93f17c2", "messageHeadline": "Extend the migrate test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "ba47cba6856ed71b6ceb3afbbd4b74f90a774258", "messageHeadline": "Don't use CachingStorage server side (it violates auth)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "12d95635f06c72a0de087d0ecbb66a8805f3a9e4", "messageHeadline": "Reenable FUSE tests in CI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c3cf44c15d374a5f6a966d1e51fc9327baee87f7", "messageHeadline": "Fix FUSE rename", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "728d20583cd9cbe01962fc9a29d1a2ef197851c9", "messageHeadline": "Fix mirror bat id comparison", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "bc19c648e334aa2c4b5f291531ec9103dfb0d966", "messageHeadline": "Add doc for mirror bat arg", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "8d39895c447a37a6e178b5fe2d49466378612b24", "messageHeadline": "Guard against overwriting other BATs during migration call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "87a46e13075b95647f487c361c9527105850dc7b", "messageHeadline": "Fix migration by mirroring mirror BAT locally first", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "f012ba55e52482703c451769358c320093fbc2b5", "messageHeadline": "Error earlier when required auth is absent", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "fa7b873aa3d35f9c595b1b98f2bd186ba1767f48", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "0842d492a32b656abf9b663713c2d91ad520bde5", "messageHeadline": "Make sure ipfs without GC applies auth!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 95, "deletions": 1}}, {"node": {"oid": "9a46dc8c31de09bc14def72834aefc2934b163ac", "messageHeadline": "Make sure TransactionalIpfs applies auth!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 17}}, {"node": {"oid": "96cf75bfb85b25f4cab26225e88e51c7632eddba", "messageHeadline": "Include ipfs-nucleus release for all platforms", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 11}}, {"node": {"oid": "c09c8829a01351e42e14750dd636b3a6097385e3", "messageHeadline": "Extend test to check cryptree node or data retrieval fails without BAT", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 1}}, {"node": {"oid": "075aa784d61d5cff0f7c479370bca76cd06f2bd2", "messageHeadline": "Fix postgres table exists command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "96e11141dbc41cefcf3ac56bc8c573ca1db9802d", "messageHeadline": "Fix sqlite table exists command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "62f4c6f1712bf9e78135ef04ccb233f75ffdcf90", "messageHeadline": "Only add raw blocks to legacy raw block store!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "8c8ff9d74f72bfed57f66f9b8ab8465a99f3cb88", "messageHeadline": "Implement legacy raw block store for upgrading legacy peergos nodes t\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 8}}, {"node": {"oid": "01c0f2948ce39ec5237022e1e263284dec857a80", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "92dce345070e0a7f87ad80e7efdacf5cc58fbb2b", "messageHeadline": "Switch to Authed serverside block cache now we have BATs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 163, "deletions": 1}}, {"node": {"oid": "2d51720693230e62fb395253c79d46d4dd2c402c", "messageHeadline": "Implement p2p proxying BatCave", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 145, "deletions": 34}}, {"node": {"oid": "57bb33323f789b1f3dc33a245262ac998dc0c1d7", "messageHeadline": "Implement JdbcBatCave", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 119, "deletions": 3}}, {"node": {"oid": "d8d623d819b0ee86f3ec07dea6d905e863c0eb83", "messageHeadline": "Fix BAT rotation for files", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 9}}, {"node": {"oid": "b02b1a9623901cb439d78b68c1d5ee604f0855aa", "messageHeadline": "Switch to byte[] auth instead of String", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "087679916f061462268b33fac2d795bfc2bdefd1", "messageHeadline": "Fix talking directly to an ipfs-nucleus instance", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 4}}, {"node": {"oid": "bd7a9336d33b9fb97ee60f622463802659b06725", "messageHeadline": "Include and enforce auth in authReads call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 73, "deletions": 32}}, {"node": {"oid": "bd09721f77ec2fb254cc394e0b2c95939e4fc318", "messageHeadline": "Use correct BAT in root dir", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 34}}, {"node": {"oid": "857a9609ecf03161f486f844a6011e742b0eb654", "messageHeadline": "Remove legacy GC method on ContentAddressedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 88}}, {"node": {"oid": "d23dd1ca5a92f0b76e1196074f476f3cf18fc821", "messageHeadline": "Add and enforce BAT auth in champ.get calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 56}}, {"node": {"oid": "37e0c1e3b21ed2e8ba453380a7ddc66a39ebd5d1", "messageHeadline": "Major rewrite of ContentAddressedStorage and DeletableContentAddresse\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 845, "deletions": 818}}, {"node": {"oid": "a2aee5ddaa3f4b648419f275643d5774d88c5cbd", "messageHeadline": "Fix test that relied on PinningMutablePointers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 7}}, {"node": {"oid": "04c81c263e40e9fd157be442fb6657c5f56a1e9d", "messageHeadline": "Migration test passing!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "60b15e18483cece89064223a3457673957a7adce", "messageHeadline": "Add equals + hashCode to Bat classes => migrate works now!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 1}}, {"node": {"oid": "5ab94e0179c593c4d21a392690229cba377c1699", "messageHeadline": "Remove legacy pin methods which aren't needed any more. (WOW!!)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 538}}, {"node": {"oid": "b6c8c573b001d04403e8b782d2a0e209a5f4c0e7", "messageHeadline": "Fix migrate tests (proxyingBatCave isn't implemented yet)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "ed006ee3463706550c9c861eabf94720999da511", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "991eaceea62252cc0c4cb1e6b0f50370bcab0293", "messageHeadline": "Use mirror bat in cryptree nodes for new accounts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 531, "deletions": 456}}, {"node": {"oid": "bcf47b017d11023b16228021eea06ade11b1f2ff", "messageHeadline": "Return support for mirroring entire instance (migrate tests will stil\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "23ebb795950ecd5f4fd536163ca0d750939b27a6", "messageHeadline": "Fix http bat cave paths (migrate test will still fail)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "13bb8e9e2cdc70b93a9bba48d8a3c9593c881f96", "messageHeadline": "Move class to fix gwtc (migrate test will still fail)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 10}}, {"node": {"oid": "9220cecba8c525b124e05b1eaba9842014950e77", "messageHeadline": "Implement supporting structures for mirror BATs (migrate test will st\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 320, "deletions": 58}}, {"node": {"oid": "9fc254ffd6957dd706d9b35572b555f2b7c11c7d", "messageHeadline": "Merge pull request #882 from Peergos/fix/thumbnail-creation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "e3446f65bd6aa3455ef088af4d6461b1efdf836b", "messageHeadline": "change method name", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "abb4fea8844a44854c3d401c5913f51f65b20749", "messageHeadline": "inline lambda", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 16}}, {"node": {"oid": "f9ec26071e3f89f54a8eeadbaa9bc3b1164799ed", "messageHeadline": "Add JsMethod for calculateThumbnail", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "f164d32e4867908ec1477e72e3cadafe5f083cc3", "messageHeadline": "Add BATs to cryptree nodes.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 618, "deletions": 462}}, {"node": {"oid": "dfd9014fd67ab16562a18ee368be1308a3ba1003", "messageHeadline": "Merge pull request #881 from Peergos/fix/legacy-account-password-error", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "81b34496c8bfcac3d7dd7b117fd1c10e49e40d9e", "messageHeadline": "Fix error message for incorrect password for legacy accounts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "3d2794ee645acaa3b8413a90317930ffdecb119e", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "0e1134dfe56696507a24912dcfb25241f5138c8e", "messageHeadline": "Fix tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "7571be9264ac412fafe72d2bb18913e38a52c501", "messageHeadline": "Refactor to fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 753, "deletions": 666}}, {"node": {"oid": "129d07c18004cbf267e710f3ceb14d2dee8c788a", "messageHeadline": "Implement allow listener for ipfs-nucleus block auth allow calls.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 719, "deletions": 256}}, {"node": {"oid": "44f9692e8770ad515607a4e3964d5d76f28dcfd5", "messageHeadline": "Merge pull request #879 from Peergos/fix/update-documentation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "59aeb7d8875eb3e5a29407aacf964ecfa3844421", "messageHeadline": "add link to web-ui screenshots", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "635d8b89730a5e0562ea93164af3a07593396ed7", "messageHeadline": "Merge pull request #878 from Peergos/sec/dns-prefetch", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "5677ac6cfc39608de1581003d6c3b07463a4eaef", "messageHeadline": "Disable DNS prefetch explicitly and via proposed CSP", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "d9924127bd09c92091c6247f5c73791f0a51a7b1", "messageHeadline": "Merge pull request #876 from Peergos/feat/1mb-blocks", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "3c4dd409aa7c542e966360d0e73e98ff66fe6e7c", "messageHeadline": "Increase block size to 1 MiB", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "6629c95858e51b03cd329458bffa3f5674262a57", "messageHeadline": "Remove log spam from DHT getSize calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "18dfc20f9fcb4ee93c3cc02ac5d8e677e726982e", "messageHeadline": "Remove http getLinks call which violates trust barrier", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 19}}, {"node": {"oid": "cbebea7a057dbd9f94fd9f52be905d1b6c527b41", "messageHeadline": "More ipfs block type restrictions", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "2ad6425429c8851ff5519448dbb31859e1ee36e9", "messageHeadline": "Remove unimplemented call during ipfs upgrade", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 7}}, {"node": {"oid": "fc7eeb5dc489e7a7f2e7364fe6c3d6e88434814f", "messageHeadline": "Include type limited ipfs blockstore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "1e720b1676063d47e0509482672d956a621484a1", "messageHeadline": "Merge pull request #875 from Peergos/feat/ipfs-nucleus", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 48}}, {"node": {"oid": "bca08fb67925ff45792140c57502b1f5a6c2b908", "messageHeadline": "Terminate S3 backoff!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "60b7f55d286a384ecc92845d3653c0f4260537df", "messageHeadline": "Update ipfs-nucleus binaries", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "32011936251840110785e97e4b151b40f66e1741", "messageHeadline": "Merge pull request #869 from Peergos/feat/identity-and-boxer-independ\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1025, "deletions": 197}}, {"node": {"oid": "df5f988cf0c3528785a9a04ac829fa3ee4c9a02b", "messageHeadline": "Merge pull request #874 from Peergos/fix/rate-limit-ipfs-s3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "2decded0dc1bc4184d9beff71108f26a8cecb637", "messageHeadline": "Make number of ipfs s3 workers configurable", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "a24489a30638eb88df4fefd3f191f2476e497489", "messageHeadline": "Remove use of swarm connect command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "0bcd2ba7daa9f4042ec2387bc26805dda51bc4b7", "messageHeadline": "Update ipfs-nucleus to include incoming p2p proxy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 18}}, {"node": {"oid": "778330dfcc5b33fec438c5bc141f74b23be8378f", "messageHeadline": "Merge pull request #871 from Peergos/fix/simplify-ipfs-config", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 10}}, {"node": {"oid": "ac6899652ad8d07cd96021a8428f353b9314130e", "messageHeadline": "Switch to simpler, smaller, more secure ipfs replacement, ipfs-nucleus.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 25}}, {"node": {"oid": "0414a24d144806cabc8554e795c9fe5f1c79b723", "messageHeadline": "Simplify ipfs config", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 10}}, {"node": {"oid": "6a00b013b52df5d4a573ca69c31c3241e7ba79fa", "messageHeadline": "Make warning conditional in mirror without login keypair", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "5084c1189dbde1baa371c082009d6ffdf7ac88ad", "messageHeadline": "Restore test methods", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "ec15d5c4f4ebd940325bd8a046afe9ae4520f5e7", "messageHeadline": "Restore test parameters", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4b1575333d692183ecfbee7d1eb8b519e24d19c5", "messageHeadline": "Merge pull request #870 from Peergos/fix/expose-mkdir-to-js", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "b75531190b6e4d2a3f46950e824c5ee1c949d0d0", "messageHeadline": "expose getOrMkdirs to JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "cfc2370a412e31bf1bf06771a391f8e0fd2d9536", "messageHeadline": "Add warning and docs for login-keypair arg for mirroring", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "674ad78947fdaf705ab27cd9660436962e57f331", "messageHeadline": "Allow mirror to optionally include mirroring the loging data when mir\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 7}}, {"node": {"oid": "874238010c77801b76026f75f59f77fe3808ceaf", "messageHeadline": "Implement p2p proxying Account which reinstate login through any node.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 120, "deletions": 13}}, {"node": {"oid": "772123bace23da3933817a73b0cbc9cb3912fb7d", "messageHeadline": "Fix text", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0f2d102c97cec136bf5864f6816d1d791785ef4f", "messageHeadline": "Make OpLog support legacy signups (for testing)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 5}}, {"node": {"oid": "a4a6c658291c43aa93dae71ee04102fe346e7e69", "messageHeadline": "Fix error message for failed login", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "2a1dbca20640396e0d4dd70f4e9734d844451f49", "messageHeadline": "Make sure to use AccountWithStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 12}}, {"node": {"oid": "7096c0ce40f7f0913e2abb53ca67b598f890ce48", "messageHeadline": "Fix migration to include new login data if present", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 11}}, {"node": {"oid": "6d9c37060e91962837c9879a306b94f0c9f9ce1d", "messageHeadline": "Remove no longer valid test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 18}}, {"node": {"oid": "bdc4ce26bd936b70f12c1d6d9785b2c22bb57d5e", "messageHeadline": "Fix text", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "f49f78ca85bdecca062656c5688ad2ab7b01a84e", "messageHeadline": "Fix text", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "0993cd0b43d4673de052242838aa11bdbacee15c", "messageHeadline": "Fix text", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1a15685f18168481ab151506414880f35e5580dc", "messageHeadline": "Fix change password to not use cache pointer which isn't updated by s\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 3}}, {"node": {"oid": "2f6a22b0a9d128a8c911c6492d9df5db5c9ff4a1", "messageHeadline": "Fix build after rebase", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "966ff8d8c353db0322be56d6c7c21242971d08a9", "messageHeadline": "First attempt at separating identity from login.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 765, "deletions": 176}}, {"node": {"oid": "93dbe37493aca5f237d165929115fd09b741ab96", "messageHeadline": "Extend legacy login test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "138b4c7595abee8149e53f98d0d3fd5b84ffad1a", "messageHeadline": "Make password changes upgrade legacy accounts to boxerless login", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 5}}, {"node": {"oid": "534657139f2e8f79af151432509a144741c05577", "messageHeadline": "Make sure password changes preserve the boxing key if necessary", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "39e9859e3dd168e5da3ac1253b1bfa6ef508d0e8", "messageHeadline": "Store the boxing keypair in the user's static data.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 27}}, {"node": {"oid": "03c0d66edfb6f0aebe47832f120d5c736ccaf910", "messageHeadline": "Merge pull request #868 from Peergos/opt/small-file-uploads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "acf3d97f555febecd567ec4cfe2c1cce67d7af3f", "messageHeadline": "Don't bother with file upload transactions for single chunk files.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "29502cf0d71b0ff62c76004e3d4c15070c20ff2b", "messageHeadline": "Relax time constraint when retrieving quota", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "600af62fb9ff1acf613738636145b140eea9221e", "messageHeadline": "Merge pull request #867 from Peergos/fix/local-payment-dev", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 8}}, {"node": {"oid": "8a388857305e3a3610a9258fd2213bc342812631", "messageHeadline": "fix local payment dev", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 8}}, {"node": {"oid": "d1dd2ead703e22b11eca3d7c5d1eb96053106980", "messageHeadline": "Merge pull request #866 from Peergos/fix/remove-subdomain-header", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "8ee3a3dda6ce02b6ecb4e74f4435571032440058", "messageHeadline": "Remove legacy header from subdomain apps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "ff976a9b5e996937187f551d9f0691fb783b7dac", "messageHeadline": "Merge pull request #865 from Peergos/feat/support-wasm", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "7202789213583cd29446023535fbbbfed462c54a", "messageHeadline": "Support WASM mimetype on files and in gateway", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "278076e44d1d8cc4a6bc222f259ff5ee8ec513d1", "messageHeadline": "Tweak Matrix username regex", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b129e40a69e22dd961062957b9ab435156513ada", "messageHeadline": "Support Matrix in identity proofs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "d23d91f511270bf1a2a98afe050206693f204a90", "messageHeadline": "Merge pull request #864 from Peergos/feat/identity-service-username-r\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 14}}, {"node": {"oid": "4ac5e29cfc25f96fdad971d5ec092813a083b949", "messageHeadline": "Fix gwtc (remove method name overload)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "b246c0b71653d5ddd3ca05308dea7b606e0a676a", "messageHeadline": "Make Identity service name lookup case insensitive", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 1}}, {"node": {"oid": "508d88ace78c37e815002a481e28ce466ab06a48", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 25}}, {"node": {"oid": "b209ebae74f8c67f5833e51ce35d8fb38cd2d70b", "messageHeadline": "Ad username regexes for external identity services", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 11}}, {"node": {"oid": "2eed5562cfe643e8bf76e76cdc9deaadbf4b1de2", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "dd6c5f7444949717d3f24af6b8a8ade69d7950ab", "messageHeadline": "Fix publicly published folders", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "381c439360d56b9fef07439bee0232f847643621", "messageHeadline": "Merge pull request #863 from Peergos/feat/identity-proofs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 525, "deletions": 1}}, {"node": {"oid": "84059a06b2372fc3e257b79f55cdc9625e589cb7", "messageHeadline": "Factor out beta url for identity link proofs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "9d83d89fa8175d044ba9f8166642a1faf0b3b34b", "messageHeadline": "Fix CLI arg descriptions", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "874732f60f1a497070f72ce99dea838fb01d3fb6", "messageHeadline": "Rename identity link sub command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3665387bd2fbb3648a3974b184d3cb47310f9236", "messageHeadline": "Implement CLI for verifying identity link proofs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 2}}, {"node": {"oid": "4b5f98f75f144fa7c6d90205aac0d98ffe7e7bcf", "messageHeadline": "Implement CLI for linking 3rd party identities", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 116, "deletions": 18}}, {"node": {"oid": "216406c0403b6338adb002bba9c6ba825d2a73d7", "messageHeadline": "Expose method to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "fbf219f7f8d1896038e4ba3697fb27fe8dcb5894", "messageHeadline": "Generalize AlternateIdentityClaim to IdentityLink which is not Peergo\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 203, "deletions": 108}}, {"node": {"oid": "d8dc0c2892885496deaecba1ac86c5fd5783e2d7", "messageHeadline": "Fix public file handler to propagate open=true to resulting secret link", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "5f63f5e14898958209ddefc0b3d85aa5f93d7d63", "messageHeadline": "Fix mime type encoding for identity proofs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "f911d53ddfa5094ce2e9411c590ba48be7108e19", "messageHeadline": "Expose more fields and methods on alternate identity proofs to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 4}}, {"node": {"oid": "2ad853db662507e136f0a4943af613cb897b459a", "messageHeadline": "Implement 3rd party identity proofs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 246, "deletions": 0}}, {"node": {"oid": "3995f584a76de10d292b76927ea4e14216f0021a", "messageHeadline": "Add xml content type to gateway", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "5b99e3b8713e5f8e70a486606e6bebbc70e7a586", "messageHeadline": "Merge pull request #860 from Peergos/fix/propagate-s3-rate-limit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 13}}, {"node": {"oid": "949de3b7577eae118fe76b0c75ee0c4111fa2ec2", "messageHeadline": "Make DirectS3BlockStore rate limit fallback actually work", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 5}}, {"node": {"oid": "166b03502817a20102f18d2f30c717edaf224e13", "messageHeadline": "Make DirectS3BlockStore fallback to local lookup when champ.get is ra\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 5}}, {"node": {"oid": "5c78342241274238e1d928ab87826ab9cfdb140b", "messageHeadline": "Propagate S3 Rate limit exceptions back to client", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 2}}, {"node": {"oid": "0184a244263df443a710d34c6d782162614ed7bf", "messageHeadline": "Support missing M4V mimetype of MP4 video", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "a34685059f7ffb309edc8b7d97ddbb02d0f3c485", "messageHeadline": "Merge pull request #858 from Peergos/feat/email", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 769, "deletions": 4}}, {"node": {"oid": "1e90f7c03e4bc85d30141de13da264339cf0b2f4", "messageHeadline": "Make moving email attachments idempotent", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 12}}, {"node": {"oid": "3485c4fb66ccbb07c5fb07bf36a4a661e141b633", "messageHeadline": "remove attachment file extension", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "7a4768699d950ee8c6c7ad8566b33a32218a95bd", "messageHeadline": "Fix email test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7c44b2e4303b1c64a4e73caa4ebb8ad02fd2c361", "messageHeadline": "Add method for email bridge to get outgoing attachment", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 1}}, {"node": {"oid": "95f5f10621dcd4ff569a0871f37079f421a642f9", "messageHeadline": "Rework email client to separate privileged UserContext from normal op\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 46}}, {"node": {"oid": "727181f84efb769014fbe37a5ff23399d2a33a80", "messageHeadline": "refactor out UserContext from EmailClient", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 24, "deletions": 29}}, {"node": {"oid": "24f7fd97db3a95d2b771acae0d00df68394c4d3f", "messageHeadline": "add send attachment handling", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 44, "deletions": 22}}, {"node": {"oid": "e64349afcb369c663b6b58d057563d827ef86ec5", "messageHeadline": "fix filename regression", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d45e36aa4fc1006ecf09a298282ac4e87551dc45", "messageHeadline": "re-write encryptAndMoveEmailToSent (to be improved again)", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 10}}, {"node": {"oid": "cfc8b2cff25dd95973b568b830093d0c456bcb3f", "messageHeadline": "fixes while testing - WIP", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "7fa098b56ddb3b441d425c26b0599a85d2bc175a", "messageHeadline": "Merge pull request #859 from Peergos/feat/webp-jpeg-thumbnails", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 66, "deletions": 39}}, {"node": {"oid": "5e1c7ee1ad672fb129bf70aa14934e3bad036242", "messageHeadline": "Fix thumbnail mimetypes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "3b6f410194566c1db4a0314fd9ff0afe78b6010d", "messageHeadline": "Increase thumbnail size to 400x400 when created in Java", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f1af5db74b647eeb08443febac67cafd2fc0c649", "messageHeadline": "Support webp and jpeg thumbnails", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 38}}, {"node": {"oid": "cc19d457b37ad9ff404449bc678412a87ac9d50e", "messageHeadline": "WIP - updating email clients with attachment handling", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 195, "deletions": 97}}, {"node": {"oid": "26dbbdf6f366851845a424d64185f37ed8091cc0", "messageHeadline": "Fix email test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 11}}, {"node": {"oid": "ac23688bb454281f47aefea45699c33642fb19c2", "messageHeadline": "Implement moving new email to private folder", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "80c29de7564bf0b94df65e0231fb705f85618d18", "messageHeadline": "Implement moving sent email to private folder", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 8}}, {"node": {"oid": "a212b92d83ca0b5d458d9eb643a85f8bf706a0fb", "messageHeadline": "Implement receiving email in bridge and client", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 4}}, {"node": {"oid": "b9d3332b3a9a60b4501bed0ab76f94ea854729b6", "messageHeadline": "Fill out and test email bridge getting outbound emails", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 46}}, {"node": {"oid": "8a864582059d7615d60f7d7a7057842fb0a3e117", "messageHeadline": "Add bridge client to test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "2619d637070ca61e862e363c4ddccec0cc394007", "messageHeadline": "Remove email client config file.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 19}}, {"node": {"oid": "feab2c9530295d7546782e0aa1c87608bf81746b", "messageHeadline": "Store email client public key during init", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "9a4eb4ea2844ad202626767126b31a11207e2c28", "messageHeadline": "Fill out email client initialization, including generating and saving\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 36}}, {"node": {"oid": "f79cab7dbddda59c1073a0743cb21139f5c6aedc", "messageHeadline": "Remove UserContext from EmailClient now we have an app instance", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 28}}, {"node": {"oid": "24ae85991dfbfa08beac1702f762dc399f9dd836", "messageHeadline": "started work on Java client", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 84, "deletions": 8}}, {"node": {"oid": "1dc3711d741eaeae768fadaf2289a5258c7e609a", "messageHeadline": "support multiple attachments directories", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 40, "deletions": 35}}, {"node": {"oid": "fdcb2964e8318260676e8eaf6a21feba659dd1cd", "messageHeadline": "Add skeleton EmailBridgeClient class", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 1}}, {"node": {"oid": "4ba40c5400251954310a8185bb90b76077a29244", "messageHeadline": "Implement SourcedAsymmetricCipherText for email client", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 1}}, {"node": {"oid": "616a9a806a73651a2fa4cb3ee2d0f04b73e3de0e", "messageHeadline": "Add skeleton EmailClient class with Javadoc overview", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "1b41aeea3d6a0e883d73e56480a622f9106aeae2", "messageHeadline": "Add skeleton EmailClient class with Javadoc overview", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 0}}, {"node": {"oid": "00938ddb5b42eb63d786732b5182b380853f0a17", "messageHeadline": "refactor", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 27, "deletions": 10}}, {"node": {"oid": "5a6f9770f8e41e7fdc1869c140da34d52de24da7", "messageHeadline": "fix attachment upload helper method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "c911b46f18fd1ddbbce57057a5181d7597cdcd2e", "messageHeadline": "changes required by email-bridge", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "4655e2a3ebc33ae367992d0ee5ae12de467cc690", "messageHeadline": "separate email attachments", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 55, "deletions": 8}}, {"node": {"oid": "4162046b1bc49a0965137c5b05c8eae17d4daa32", "messageHeadline": "initial", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 204, "deletions": 3}}, {"node": {"oid": "debcb9b7171da654d7ecdab657a38ede09bb1591", "messageHeadline": "Merge pull request #856 from Peergos/fix/shared-subdir-copy", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 2}}, {"node": {"oid": "2bee30d7ab95b90595cae85e5615c7274d2de015", "messageHeadline": "Fix bug resolving shared sub dirs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 2}}, {"node": {"oid": "24ab75d40e10802772d2f43b15a3a287edcf1335", "messageHeadline": "Merge pull request #855 from Peergos/fix/copy-dir-from-friend", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 10}}, {"node": {"oid": "b41973fa36ef98b485d7d9cb021d872e42839717", "messageHeadline": "Sanitise paths and use empty path instead of / for getting children", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 8}}, {"node": {"oid": "5aa7f68d642882bc2f0a74c09763cca63cd1aa1b", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "d23efdb5705ebfbe8ebb4a7368319fcf27ac4512", "messageHeadline": "Fix copying a dir from a friend that has a subdir", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "4740a52f3ff68ac528bed450a62b469e6c3c5378", "messageHeadline": "Extend test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "29bc2860b7a9c6c5aa1b26de2309d46386ed8407", "messageHeadline": "Merge pull request #854 from Peergos/fix/folder-copy-from-friend", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 22}}, {"node": {"oid": "53ba7dcb2d5719ccd29c13dfadb1c721977d9b76", "messageHeadline": "Fix 2 more tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 14}}, {"node": {"oid": "7cc5c350e849232fe9b363510ca39798eafcd3e5", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 7}}, {"node": {"oid": "f4b923cd7bce98d06c7b34cd9fc70364cc1e0587", "messageHeadline": "Fix nested transaction in IncomingCapCache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "a5d76a6daace14cac4119be3fe37da38161d39c0", "messageHeadline": "failing unit test copying friend folder to base dir", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 42, "deletions": 0}}, {"node": {"oid": "d616b2f716ed8d1a3d50d855015236878a9ba536", "messageHeadline": "Merge pull request #853 from Peergos/fix/chat-reply-with-attachment", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 0}}, {"node": {"oid": "acc3c947803409b186446e43c265f983abf8b2d8", "messageHeadline": "Fix replying with media in chat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "445ff8316e6cd310092017d84157cb5a39d68b7d", "messageHeadline": "failing unit test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 37, "deletions": 0}}, {"node": {"oid": "8553f33d22f96721e38befc11631be8b06333b5a", "messageHeadline": "Merge pull request #852 from Peergos/fix/writer-bug", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 126, "deletions": 8}}, {"node": {"oid": "c91c28198bfc74e0b64c6aee9837215b223e33d8", "messageHeadline": "Fix missing writer in mkdir", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 9}}, {"node": {"oid": "3f1fd0ac1752ea2f1ab3d251850f051d288325a8", "messageHeadline": "add failing call to delete", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 35, "deletions": 5}}, {"node": {"oid": "d247cbab2d0dc3f9cf7fe2123c34d17d41e2b44e", "messageHeadline": "Don't use ipfs in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ce6c4d7cf81fc71846c435da82ccf8b8760dd60e", "messageHeadline": "Fix missing writer in mkdirs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "48683eb795b42a0df22109dc390bde8e67230061", "messageHeadline": "demonstrate bug in unit test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 85, "deletions": 0}}, {"node": {"oid": "4e5aaf6a5034e0b6d110e7625aa161960fade6fd", "messageHeadline": "equals + hashcode for Invite and Join chat messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 0}}, {"node": {"oid": "e06bc88ab7ce4827b94797e0e1138c1c94d550ae", "messageHeadline": "Merge pull request #851 from Peergos/opt/unnecessary-chat-commits", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 0}}, {"node": {"oid": "62ab4dc3e0a60c9e87d50f511c6f40e2652f672e", "messageHeadline": "new lines", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "71e1aa11ca216f4a1aee4242cb6bc024fbdbe72c", "messageHeadline": "Avoid unnecessary chat commits when nothing has changed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 0}}, {"node": {"oid": "b2b7ea045a9bbdde543112fdfe8aaf7a85f242f4", "messageHeadline": "Merge pull request #850 from Peergos/fix/chat-protocol-fix", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 196, "deletions": 89}}, {"node": {"oid": "357c58c994904b054cded66d08181927f93fd0c1", "messageHeadline": "Only try to pull from deleted chat members if all other members have \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "4931055196134e1bc7f6f1cace4619446d17800a", "messageHeadline": "Update chat protocol:", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 190, "deletions": 89}}, {"node": {"oid": "8131a4ff165dc1bebbe758b827fb6bea0b62eeae", "messageHeadline": "Merge pull request #848 from Peergos/fix/chat-cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 166, "deletions": 139}}, {"node": {"oid": "9fe91378559c549d33d7b973e6c1b126c9be225e", "messageHeadline": "Fix revoking read access to things under a different writing subspace", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "201cb46e042f6361178020cc5e4c3ab3b215ed30", "messageHeadline": "Make chat commit steps atomic compare-and-swaps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 103, "deletions": 80}}, {"node": {"oid": "4070cd62cd5d4f366cf9eb82105a60da3df93e40", "messageHeadline": "Refactor ChatController in preparation for atomic updates", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 65}}, {"node": {"oid": "cb29850a83f328e753276ac9c1d6e06b523e38af", "messageHeadline": "Merge pull request #847 from Peergos/fix/chat-rewrite", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1056, "deletions": 769}}, {"node": {"oid": "9458c3375ab820b870428cf7ef5c7f93c3c81795", "messageHeadline": "Make sure media is chat replies are mirrored", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "0bd6186835dd2c5a965cae55bd31cb160ace21a8", "messageHeadline": "Replace a lot of Future.get() calls with Future.join()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 107}}, {"node": {"oid": "691aa46c2773f1ce693a96a1c538709efcd24455", "messageHeadline": "A few renames and cleanup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "13e7ac9a84c45fe086364e8daba826c5704666ac", "messageHeadline": "Fix stale shared-with cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "06b219ab37e43c3afc1a93cee621531cfafd17b4", "messageHeadline": "Increase signup request count", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e515f9da56eb02cd944c2d27197d4f7065039960", "messageHeadline": "Fix issue with freshness of sharedWithCache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 27}}, {"node": {"oid": "d1828b35cb2308023cc9f39b2c34f82a714e4d99", "messageHeadline": "Update sharing access to make it transactionisable.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 174, "deletions": 166}}, {"node": {"oid": "d14e7648cb67d0ef01dc72c4bd4938ad02bb5488", "messageHeadline": "Fix nested transaction hang regression in granting write access", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "9bf633cb510757d8447352876219c002993ac201", "messageHeadline": "Update last Chat unit test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 104, "deletions": 74}}, {"node": {"oid": "da0d24b616161e90a667499aaeeb46297e289721", "messageHeadline": "Update 2 of remaining 3 Chat unit tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 64}}, {"node": {"oid": "fd106c4002d991740cce2845be6ac8b38e3edbe5", "messageHeadline": "This is a huge rewrite of Chat implementation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 787, "deletions": 560}}, {"node": {"oid": "f8767db1549b15bd27156e487d4639916abd1d51", "messageHeadline": "Merge pull request #846 from Peergos/fix/workaround-copyofrange", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 2}}, {"node": {"oid": "8c0e523a80303df50ca72b7ea45e5b5e79f69c35", "messageHeadline": "add comment", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "0cc8766360ceb0cdd19f57303fb3d0f9b037da0b", "messageHeadline": "Replaced copyOfRange(int[]) as GWT version was throwing exception", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 15, "deletions": 2}}, {"node": {"oid": "0cfce0bad24c5203314ea970552fadaaac51271f", "messageHeadline": "Merge pull request #845 from Peergos/feat/chat", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2962, "deletions": 187}}, {"node": {"oid": "03fa8700958a6e37b04f429d0d35577cea39050f", "messageHeadline": "Fix chat removal test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 10}}, {"node": {"oid": "e9623f55bd68fe84fc4129995a834883eb272d64", "messageHeadline": "make deleteChat method available to JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "ab1b9b29879e0c442d75992dd0675f427770fe43", "messageHeadline": "Fix chat removal test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "e44e4567b805607a9671b1bff90869cc8e74f76c", "messageHeadline": "Make chat admins auto remove members who deleted themselves.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "e80aa06414fefca7e45f49448d04d98b1097ea78", "messageHeadline": "Handle a chat member deleting their mirror.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 11}}, {"node": {"oid": "bdd5bbf7e37dad767670043362c4ce9179205eef", "messageHeadline": "Add method for deleting a chat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 0}}, {"node": {"oid": "bee55c9d08941f923ff6f58e63c4a0c66695a588", "messageHeadline": "hashes for emoji-button css no longer required", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "a8309043bcff161ecb8159b2583154396b8f8f73", "messageHeadline": "add extension to media upload so the mime type can be deduced", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "f99ba5bef68e5ad91203113821cdd7fbbc8bf4c5", "messageHeadline": "Serialize recent chat messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "31919235cc4591c185e66c8039f2c3f0323760b9", "messageHeadline": "Test recent chat messages are present", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "eea682f3d4e3e09572e6a8d4bf312ee441e19a58", "messageHeadline": "Make sure recent message list in Chat is mutable", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1c8d6504f31903259f75374106524af9f41af461", "messageHeadline": "Add a list of recent messages to the Chat state", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 8}}, {"node": {"oid": "9f654d3bbc73801ab9335657a30a683e9df8bd02", "messageHeadline": "make title accessible by JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "dd19743c10b44425b5f4154ad45519b42cdfc2f6", "messageHeadline": "toString() is required, getMessage() not available in JS Exception", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "836c3d3685bdf3ded2d1dcf989425f3e8aa170ac", "messageHeadline": "Fix chat member names", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "e83ef2ea6196afee3866489f216e5aee04b8e8e2", "messageHeadline": "Make sure merging message logs in chat handles pending member joins", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 3}}, {"node": {"oid": "c11b8d3c3440603f77039614b3f69718c0a79037", "messageHeadline": "make removing member from chat GWT compatible", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "066caa3d7b95abbffa3be394b081199e71b8ee49", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "c5331127792291d666b8b02166b8708038dd4cc6", "messageHeadline": "Fix for gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d16a7ff81558b7e69fd83255031f850230e860d2", "messageHeadline": "Make chat throw when you have been removed from a chat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 4}}, {"node": {"oid": "4be0a9432c65decb1654fc7c039e4c74fb4b5752", "messageHeadline": "Change member removal to not remove info for member,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 8}}, {"node": {"oid": "0bcc17c8fd35fd987377d69ce27f713e67c6b917", "messageHeadline": "make add/remove admin methods accessible to JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "d9bc7a2eb8bf5f9e17742980a674b99df5d312c5", "messageHeadline": "Fix setting admin on chat creation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 121, "deletions": 97}}, {"node": {"oid": "d06e32af9bfe0fca7a984d699366856c5adf5610", "messageHeadline": "small refactor to 2 methods called by JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "3ec93de2afd0d0b6cfb79744c57ca32b8c253e08", "messageHeadline": "Update test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 13}}, {"node": {"oid": "0d347966571962e920c2631405776178e99a3748", "messageHeadline": "Implement removal from chat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 249, "deletions": 63}}, {"node": {"oid": "c9717b6c8969450418ab0b68ea6d5a01335e7a20", "messageHeadline": "multiple attachments for a chat message", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "f2c9e658f22ee5eb37be12544628ba5bcd3cc214", "messageHeadline": "Extend messaging test to send media.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 2}}, {"node": {"oid": "fa94d925444ef692f7480435a6a12d2ca533311b", "messageHeadline": "duplicated method. Change necessary due to clash with exception.getMe\u2026", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 14}}, {"node": {"oid": "5865ac86d04af2f1b6839d8058945adae43558ae", "messageHeadline": "add hashes for emoji-picker style-src CSP directive", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "0cd8fb282886d05139c2219b5b3d815033774329", "messageHeadline": "changes arising from testing latest web-ui code - recent rebase smash\u2026", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 86, "deletions": 3}}, {"node": {"oid": "03b6c2173778dc02c6199e78f07c75f42a1b160b", "messageHeadline": "Mirror media to all members of a chat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 26}}, {"node": {"oid": "9b3a12e78e0e7b7e52e82e75ea851158377e6037", "messageHeadline": "Support adding media to chats", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 125, "deletions": 114}}, {"node": {"oid": "7fd209f7b8e9666b7ce9e397b20eb5434a128500", "messageHeadline": "Fix bulk chat add.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 17}}, {"node": {"oid": "a154df6abddc28c4cdde3f5e8ef3a6e50e2cb55c", "messageHeadline": "add JSType to MessageRef", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "e45777e4a7f3e0bd4cb8055d933e0d85bd0ec206", "messageHeadline": "Add LRU cache for chat messages by hash", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 5}}, {"node": {"oid": "b22893c54c98259f2148cfd0b9c5094e78303acb", "messageHeadline": "Add a bulk chat invite call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 4}}, {"node": {"oid": "3c61ecabe74912f2613367b35b5b0a9b9e9194a2", "messageHeadline": "Implement a (naive) chat message lookup from hash.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 12}}, {"node": {"oid": "f001915118d54cc3461581614351f3a0d512944f", "messageHeadline": "Implement a message log index for chats.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 162, "deletions": 57}}, {"node": {"oid": "28b7147e2a2514483cfa1d3724d7ff29c35c95f2", "messageHeadline": "Add a EditMessage type", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 69, "deletions": 1}}, {"node": {"oid": "e10577342d34b0b7baaaffa6d6432c7a6d527a6b", "messageHeadline": "Add a DeleteMessage type", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 3}}, {"node": {"oid": "1b59062bc2931ff342d5000d7e900c96ef4b106c", "messageHeadline": "Add a ReplyTo Message type", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 19}}, {"node": {"oid": "ff13190d737c0702cae5dfac366fb37fe4374adb", "messageHeadline": "Introduce MessageRef (a multihash) and make messages form merkle-dag.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 134, "deletions": 54}}, {"node": {"oid": "fbfa185f2c9cf33c7e4fad188bacf998fc608670", "messageHeadline": "make GWT compatible", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 1}}, {"node": {"oid": "7b8f8f5045cf8866d672ea9a6b57bee522088530", "messageHeadline": "Remove creation time check.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "795b3978f230dfc248a4ef75dc1464b0bcd81bf3", "messageHeadline": "Add creation time to chat message envelope", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 11}}, {"node": {"oid": "966e55f921cb2152ba4649acead9d841159abc3a", "messageHeadline": "A util method to get message author name", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "c8e639d4761009caf8811390fb3552027b913702", "messageHeadline": "required by JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 9, "deletions": 3}}, {"node": {"oid": "71f45a485c11f2f5b7c77c4c3107a57e5a15ab5f", "messageHeadline": "Add util method to set group state for JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "d33ca903fa5364d70eb2f8889c02db8f85d1817d", "messageHeadline": "Reinstate Join message signature verification", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "ab46f43081041b344729cda28485acd1012a618e", "messageHeadline": "Implement group state in chats as a CRDT", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 152, "deletions": 8}}, {"node": {"oid": "a8bcbf716957ebd5f0f71f76fb7db49556633179", "messageHeadline": "remove .join()", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3b428a0fa495547bdbb30a510123a1135570394a", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "cfcfdb9be4be4a3948c6fa0de29e4d3aa663779b", "messageHeadline": "Fix message serialization", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 9}}, {"node": {"oid": "2df5fd8178dce0327b545b1a53a646905f67704d", "messageHeadline": "Move social post and message content types to new display package.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 452, "deletions": 422}}, {"node": {"oid": "9ca612bc39b7c3f43dd8a9a70494b8ee7782ed13", "messageHeadline": "Test message tree clock time increment", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 1}}, {"node": {"oid": "47db1ca786ebfd45a69e93a62e86167bdaca012b", "messageHeadline": "Remove test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 46}}, {"node": {"oid": "b7cfd0644ad6b3b3be63c1b99d37037679c4b990", "messageHeadline": "Rename to Messenger", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "92d318602e687379832465c4824d731d23f22d51", "messageHeadline": "Make sure position in message streams are updated", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 11}}, {"node": {"oid": "a04c8df1ddb793b4513b94cfef01f08a35b91081", "messageHeadline": "add failing test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 46, "deletions": 0}}, {"node": {"oid": "0e2571db06d77ddf1777b6a03e1f10f16863c7c1", "messageHeadline": "changes while testing from UI", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 146, "deletions": 1}}, {"node": {"oid": "9c6b52c9f7a12332bda4e13d8d3271b82d4a0ebc", "messageHeadline": "Validate message ordering in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "791549fa740c171f62cdb1d1ef8270b4b08d907c", "messageHeadline": "Add util method to merge all message updates in a chat", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "a4e47c49ad337725ca4b917ab58f15a76a78fb15", "messageHeadline": "Change chat ids to be chat:$username-of-creator:uuid", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 38}}, {"node": {"oid": "dd4bf304dc0c5003ef3331219fe865f4a57ca665", "messageHeadline": "Remove unnecessary arg in test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f7d401aef65322d530a7d7d794164b29410ca79c", "messageHeadline": "Expose messaging api to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 5}}, {"node": {"oid": "f38dce3377eac73a396bb7edca5aab0cd74d6e1c", "messageHeadline": "Keymail foundation of causal authenticated message delivery working!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 40}}, {"node": {"oid": "ff06ca0b59c4e409d7ac1c8e4ecb57c734a64706", "messageHeadline": "First keymail test passing!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 30}}, {"node": {"oid": "fe32dfd8af2d03300d778a3d579756b5c01de5f3", "messageHeadline": "First keymail message sent successfully through peergos!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 193, "deletions": 41}}, {"node": {"oid": "bfe9366ee6a021beb81c477a4dbab41b5b222db7", "messageHeadline": "Make Messager.listChats return ChatControllers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 6}}, {"node": {"oid": "8fd4987300d7f149cfeed66e0235a12dad64cbe3", "messageHeadline": "First blush of integrating keymail chat into Peergos.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 268, "deletions": 49}}, {"node": {"oid": "54fa116a7e19d3f3283fdd4bcaf592a44627e0f6", "messageHeadline": "Extract out message log into an async interface", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 204, "deletions": 89}}, {"node": {"oid": "46c6c38a352bc1ec0fea8fc432175a0286626c2d", "messageHeadline": "Support removing a member from a TreeClock", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "96701a2c8a0136afbfd3da9c3c2c9b71f7f62b80", "messageHeadline": "Start moving keymail to async to ease integration with Peergos", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 75}}, {"node": {"oid": "0af50f8f4339254d55d6f79d23466a2b732f8642", "messageHeadline": "Add test for tree clock size with 100 members", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "ef2fe4979540f0610c5db53889712d276674c858", "messageHeadline": "Improve bulk chat member addition UX", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 14}}, {"node": {"oid": "1dc44000b63b882cc1c5d937be28415d6dca3f66", "messageHeadline": "Fix a chat member inviting multiple members", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 1}}, {"node": {"oid": "5c4b5c8800b02ef7e72eb68e6c09de5adfd3f62b", "messageHeadline": "Chat messages are now signed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 167, "deletions": 47}}, {"node": {"oid": "25f21f17a7b09334c09aebdfe0b44ef18d25f9db", "messageHeadline": "Fix gwtc (Arrays.compare(a, b))", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 1}}, {"node": {"oid": "bb4736e6a84929a39f003a66e94604e4b4778c2e", "messageHeadline": "Add author to keymail messages in preparation for signing messages.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 207, "deletions": 58}}, {"node": {"oid": "474444ac30737334c988a0b8a0835b2c7e7c401e", "messageHeadline": "Implement the foundation of Keymail (messaging in Peergos)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 380, "deletions": 0}}, {"node": {"oid": "fc7ced6d2d157a241f459090984e412c6c663e90", "messageHeadline": "Merge pull request #844 from Peergos/fix/s3-gc-head-req-503", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "bbbd9eb49944cc47df035c94a12a348f8b9db34a", "messageHeadline": "Fix rate limited head requests during GC of S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "877680c8eb6201e3ed6e655c9c17e2b539c36bdc", "messageHeadline": "Fix rate limit propagation in S3 bulk delete.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 17}}, {"node": {"oid": "841e79454bd16dccb93333d0bd47813c985a8307", "messageHeadline": "Merge pull request #842 from Peergos/opt/s3-gc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 72, "deletions": 29}}, {"node": {"oid": "a107d35b9f3c9f5a569a4e8fe199d1cd138326f3", "messageHeadline": "Add bulk delete to DeletableContentAddressedStorage and use it during GC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 2}}, {"node": {"oid": "9a66379d5e567e6e748ed1013bb86f824c8b5dda", "messageHeadline": "Reduce log spam from rate limited S3 getSize calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 28}}, {"node": {"oid": "1feaa65adc562da7a331c72bad86f012b2ab7bb7", "messageHeadline": "Reduce log spam in S3 bucket copy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "e09f2723bfebccfc358f4ff55fa22d085601311d", "messageHeadline": "Merge pull request #841 from Peergos/fix/s3-rate-limiting-gc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 5}}, {"node": {"oid": "bafec80a9c8495a17376d1f2667d99edc7777243", "messageHeadline": "Handle S3 rate limiting GC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 5}}, {"node": {"oid": "9dc0421be21651f621ae394410d4bb0ad46e721e", "messageHeadline": "Fix S3 GC hang", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "40ce8661e297b14cdb059117f0b2ddbba6082757", "messageHeadline": "Merge pull request #840 from Peergos/upgrade/ipfs-v0.9.0", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 40}}, {"node": {"oid": "905b50b69b67c4c580c97d125dda86663e6ef966", "messageHeadline": "Merge pull request #839 from Peergos/opt/gc-benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 136, "deletions": 17}}, {"node": {"oid": "eec57355f5c1159bdc4e5bbb71de25f130cf77a2", "messageHeadline": "Parallelise mark and delete phases of GC", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 22}}, {"node": {"oid": "99e771328aab8327028f13a25782a3cf57ec2029", "messageHeadline": "Fix building ipfs S3 plugin", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 7}}, {"node": {"oid": "726cef078d9238811ac48aad0a05b800b05daa8d", "messageHeadline": "Upgrade to ipfs v0.9.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 33}}, {"node": {"oid": "4d0e50ec77bc63229b62ff951334d784ccfcf6c3", "messageHeadline": "Add a GC benchmark", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 0}}, {"node": {"oid": "c50c719089210de1a43a1889118fc4bdca1b18f4", "messageHeadline": "Merge pull request #838 from Peergos/opt/gc-marking", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 8}}, {"node": {"oid": "fa3fe8b6e809bf0d68f11f63e2297c697706bb2a", "messageHeadline": "More GC logging", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "f5ada06b96dd4529a59c55719bcb529f2975c138", "messageHeadline": "Remove another quadratic term in GC pending mark phase", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "169afd273961a0103661f49b8927393b73f2cda7", "messageHeadline": "Remove quadratic term in GC mark phase", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "750b4c0a078397ec389413ba9fdba908682828a2", "messageHeadline": "Expand logging during bucket copy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "4d9040491b55b9a0748bf060bace88f58496eb0e", "messageHeadline": "Check S3 response when copying an object", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "a49079f943b1079e8e301e0fccd924848ed51491", "messageHeadline": "Merge pull request #837 from Peergos/feat/parallel-s3-copy", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 106, "deletions": 0}}, {"node": {"oid": "75be3fa6e082ce89dabd03a1583b9ca80f142f4f", "messageHeadline": "Add a tool to do a parallelised copy of an S3 bucket to another", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 106, "deletions": 0}}, {"node": {"oid": "f4edc1cc83e3573c15ed12d138186e91fd80e75e", "messageHeadline": "Merge pull request #834 from Peergos/feat/support-ui-dev-mode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 25}}, {"node": {"oid": "01a9de991b1f4b76aa4eddc28624e83573c81e05", "messageHeadline": "Support ui dev mode where CSP is disabled.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 25}}, {"node": {"oid": "f2e77a1ab619a7ce7fbf940856c9c64d022586f4", "messageHeadline": "Merge pull request #833 from Peergos/fix/non-admin-error", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "bb1ffd73516323fdbc066d54620724ed9ff01d30", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "604b6370cbf5bba985a4473414e598ddaeda0458", "messageHeadline": "Return empty list for non admins in space requests rather than http e\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cfc2d69aa72915f7986ac3b4845a62e782f5ce55", "messageHeadline": "Explain allowed hosts handler", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "863ec507de95e26b49367b19123257faa3b5925a", "messageHeadline": "Fix 127.0.0.1 api access", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 10}}, {"node": {"oid": "f6094e53beda60e4ab983bcd98a192681453636f", "messageHeadline": "Merge pull request #832 from Peergos/fix/subdomain-api-access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 76, "deletions": 29}}, {"node": {"oid": "5be03bc9360d7d57f4a335baf7c94f0771982abf", "messageHeadline": "Fix p2p http requests, which use the node id as the Host header", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 17}}, {"node": {"oid": "41aee6cc5ab11ee85b67dc463ecfa75cecf53190", "messageHeadline": "Block apps on sub domains from accessing api", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 28}}, {"node": {"oid": "958059a51db5c206753c3bb21bfbc8323a32fea7", "messageHeadline": "Merge pull request #830 from Peergos/fix/social-feed-update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 17}}, {"node": {"oid": "539ab30e92c4c0735b455887ae15b8c43d323182", "messageHeadline": "Fix cas exceptions in feed commits", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 14}}, {"node": {"oid": "fa1a9af270ddbb6b0aa29a05fcd453ffe2cf94a5", "messageHeadline": "Make feed commit async", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 18}}, {"node": {"oid": "6d3e0e8ccf328ad3bc1058084373604072f1e5fc", "messageHeadline": "Make social feed updates happen in a single update", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 17}}, {"node": {"oid": "da18ca42be485a75f0182d467b8185669512f550", "messageHeadline": "Fix arg name in error message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5cd18bdb42824957e36fe5618f2b046787376b4b", "messageHeadline": "More bazel tweaks", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "fae5ba5239348fb6caf417dfd31f8236c4cc1e7a", "messageHeadline": "Make intent clearer, and bazel happy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "007891f7cf0b3ad8e61a2fa8f8b555b68ddc673f", "messageHeadline": "Fix method in cryptree fuzzer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0d9d83e0d3fc3938badef6a6477664cb19034701", "messageHeadline": "MAke intention clearer in varargs call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4116ea42ebaa561a9acf3f068511ea76a954fd89", "messageHeadline": "Fix another minor issue found by bazel", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 6}}, {"node": {"oid": "898700c664211bb018050bbe9304343e90abe46e", "messageHeadline": "Fix minor issues found by bazel", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 18}}, {"node": {"oid": "018b0a2b15da7bb5f79f708b8997b93e37a34df5", "messageHeadline": "Remove cross dependency from shared package to client", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "bce4c0a977abab3ca43232df7619c4e65422dd4f", "messageHeadline": "Remove cross dependency from shared package to server (thank's bazel!)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "9b1cb40698f2558b9605af4a7eaa75c28848c218", "messageHeadline": "Set a strong CSP on the gateway", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 7}}, {"node": {"oid": "5fe4490c2a49229211019c3ca909f56b7242ff20", "messageHeadline": "Allow gateway to serve pretty urls for html like github pages does", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 17}}, {"node": {"oid": "d8961c40136a563b9ba97b0a8fdfac567b227ea3", "messageHeadline": "Improve gateway headers, block flac", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "87ab65da08824a7b8bd4bf1ff9583ddd61f1a4c8", "messageHeadline": "Warn if you try to migrate a user to their existing server.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "3d7eed61c87e39394c433f9f0443c5c6f11e7ef8", "messageHeadline": "Improve migration CLI UX", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "e18a7428e4be24ca4d998a1c5cef83eea4dc5618", "messageHeadline": "Merge pull request #826 from Peergos/feat/calendar-sandbox", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 88, "deletions": 25}}, {"node": {"oid": "1ebe22baa77e227ce0c66358854a36854e5ea354", "messageHeadline": "Make all apps sandboxed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 14}}, {"node": {"oid": "bde9f817b49d67fce7b8842b8b75343c3183efc9", "messageHeadline": "Add csp sandbox to app subdomains", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "8d8d1bb7ca61f9c6858a71dfa9fa2249370180ee", "messageHeadline": "whitespace cleanup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "9c0d878150ce92f900b341404f71e5324ee1dff5", "messageHeadline": "Allow existing apps to be served from a sub domain.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 18}}, {"node": {"oid": "a5c8408ce63295f0864e21dba569da1c0ec34ee6", "messageHeadline": "Merge pull request #824 from Peergos/fix/headers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 15}}, {"node": {"oid": "d3879d71555857e243291301fd016f990ef59382", "messageHeadline": "remove unrecognised permission header type", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ed9c2946c45931001d624dfe457e30926563d137", "messageHeadline": "Fix csp for blockstore domains", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 13}}, {"node": {"oid": "7939c8e9bd41f7e061be968213caef8f975be125", "messageHeadline": "Include domain in csp header because safari breaks iframes otherwise", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 20}}, {"node": {"oid": "aeb47a7585ae58a7330b96b266e7bc530717e33c", "messageHeadline": "Add more permissions policies in header", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8ab444b54a5f5b0395a7707e8558653f8e38aee2", "messageHeadline": "Only allow 'self' in most csp headers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "1d2443046fd9ce9b8909917b6c78d6886d911cbd", "messageHeadline": "Restore csp unsafe-eval because safari :`-(", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "c8023a73e65064252f4869143931321e8f36873d", "messageHeadline": "Remove csp unsafe-eval now that we can precompile vuejs templates", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "8c7cf0f0a6c58ce6c36b56f8a2e63607c27fa9c6", "messageHeadline": "Update csp headers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "f16dc9986682193727149aeee5725adfc1fc54a3", "messageHeadline": "Add csp and permissions policy headers to static assets", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "914044bf7363355e6d13d0ff0b4892d5e0042a1d", "messageHeadline": "Log required difficulty of rejected signups", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "874e1195620cfe3a54796e766671169820ffefbc", "messageHeadline": "restore signup warning message when server is under load", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b771a5329ec8b57d85771106aaab461a741c8ec9", "messageHeadline": "Merge pull request #823 from Peergos/fix/champ-get-fallback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 14}}, {"node": {"oid": "526d430c6b76db0d044fec8bb78429f245cc9291", "messageHeadline": "Remove race during signup for setting and getting initial usage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "57ee4e95b98b182b457ec2f8df431cb4fc715210", "messageHeadline": "Fallback from specialized champ get to local version", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 14}}, {"node": {"oid": "5380e47082c4d295622b41698aa5a4890ea54459", "messageHeadline": "Merge pull request #822 from Peergos/fix/retry-failed-champ-gets", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "cefd798cc620d8eb049b77f1ac0813c9cf4b5f87", "messageHeadline": "don't statically initialise Random (native-image complains)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "2810188a94df047e61231c4f50bf68976845fbae", "messageHeadline": "Retry failed champ.get calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e61bb88ecec3dd43e43519515e71d5b30e642d61", "messageHeadline": "Add CLI to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 16}}, {"node": {"oid": "966aab5948d4b17e99074ff9dada5a25ec265be7", "messageHeadline": "Merge pull request #818 from Peergos/opt/social-feed-update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 97, "deletions": 42}}, {"node": {"oid": "0fc10837c1358e78cbb6327ce64cdef0dc534331", "messageHeadline": "Fix async error handling retrieving caps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "033b3bc1831fdaf5e5a14af0dae6321f3a9bbeaf", "messageHeadline": "Move JavaPoster to server module to fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 5}}, {"node": {"oid": "8eadd38737a64d9a5ac4268d782edb54368c8cb3", "messageHeadline": "Make JavaPoster.publicGet async", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 27}}, {"node": {"oid": "199700b4e98ad042b4b12032c5742435f9d9fa55", "messageHeadline": "Parallelise retrieving new caps from groups within a followee", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 7}}, {"node": {"oid": "1ae3936219f53116023812641043de72fabde636", "messageHeadline": "Optimise SocialFeed.update()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 2}}, {"node": {"oid": "201355ef28f8d95f0bdf98b39ee2f9d146963ffe", "messageHeadline": "Don't unnecessarily update tofu keystore when nothing has changed.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 1}}, {"node": {"oid": "f6609c0fc5e2b901c70241122273967abc555335", "messageHeadline": "Merge pull request #816 from Peergos/opt/server-side-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "cf126348379e3df2827ac9e0f1b99c044df6b805", "messageHeadline": "Add a < 10MiB block cache on the server.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "73674e67f92b267f0f51f658db48795e6b94fa95", "messageHeadline": "Merge pull request #814 from Peergos/opt/superfluous-filesize-updates", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 17}}, {"node": {"oid": "09b2e5b5440dccffabbc3262fd9a5ffb02a81ad7", "messageHeadline": "Remove more unnecessary file size updates", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 17}}, {"node": {"oid": "2e49cf3b5ab3138f00b34dce0eb3ba5cb24622e3", "messageHeadline": "Merge pull request #813 from Peergos/opt/superfluous-filesize-update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 6}}, {"node": {"oid": "1f44194a0dbf0ba12762427ee2df317a3ed91bd9", "messageHeadline": "Remove unnecessary file size updates", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 6}}, {"node": {"oid": "99516395dcf849a1501e6a6224c7cd81b283fcca", "messageHeadline": "Merge pull request #812 from Peergos/opt/superfluous-thumbnail-update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "a7a84e35a3c1aa505855f521dfae99c1f248de8a", "messageHeadline": "Remove unnecessary props update when there is no thumbnail", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "e48d33ad0b9d0583fa9247b3bc03d48262b60e91", "messageHeadline": "Fix request count test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "0757d309a7f52128af6871eefa2c403fe47bf8ab", "messageHeadline": "Increase request count test limit", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "10be99839384eddfb8fb96ab660d0cb851561672", "messageHeadline": "Expand request count test to measure creating a new post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 0}}, {"node": {"oid": "614fefee82a2a92dc184813b1dee5c2a235a7641", "messageHeadline": "Merge pull request #811 from Peergos/fix/feed-media-upload-progress", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 4}}, {"node": {"oid": "8bc6555d0f27c77ee407cdbb5749b399fdd6c892", "messageHeadline": "Make media upload for social feed report progress", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 4}}, {"node": {"oid": "eb9d37b47b9d58ebc1190af24cf34c1cc77217bf", "messageHeadline": "Merge pull request #810 from Peergos/fix/js-retry-exception", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "5cd997cefb0d67c601f804504d8fee4d5a7f4047", "messageHeadline": "better handle storage quota exceeded exception", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "947406a6e2cdee6ad27164a91f16667fd08f28cf", "messageHeadline": "catch js exception", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "640809fe3c857d50bcd858a32fd48a63069510ea", "messageHeadline": "Merge pull request #809 from Peergos/opt/local-hash-feed-media", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "3905ccf6e938905c96ac59914e3c5838b3498342", "messageHeadline": "Remove dead code", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "2c53e2cc112e5e19cf45f8cbfa76e0fd44d2b929", "messageHeadline": "Hash media locally that are uploaded to the social feed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d875a83c71de092082f54b4dc8938bed48e07b17", "messageHeadline": "Merge pull request #799 from Peergos/feat/social-posts", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1027, "deletions": 69}}, {"node": {"oid": "d741dde33316dead7ff6a8695d272e34d65d9515", "messageHeadline": "Update request count test number", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "15178d5532ba8c18a4ad164504985171fe180c44", "messageHeadline": "Update request count test number", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "950cb69fe93a2115cd4096cd1749cba0fa4f755f", "messageHeadline": "Update request count test number", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1bca82e64f2182f7c677875689b5939bab43f502", "messageHeadline": "Update request count test number", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "262dad3dcc7588e3cddcbcf625da3ee686b748b2", "messageHeadline": "Update tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "6fdef323fb0549d97916f0113f9d607422992e4f", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "13cfb5f3b142db1f37f165c52ba3d46f25a35d3c", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "3d302ca176b6f1b4b79ebbfe8230ff4cbb1c2cc1", "messageHeadline": "Fix incorrect Snapshot building initial sharedWith cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 80, "deletions": 15}}, {"node": {"oid": "181356a0539998ad6eb24a0b2c7b3d326753e767", "messageHeadline": "Remove Type kind field from SocialPost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 37}}, {"node": {"oid": "c9be44b75330ec28bcf39c5a1777edab78ba5c49", "messageHeadline": "add JS type for Reference", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "e9ef66d64d39639214a7f26561f676c8814f5b7f", "messageHeadline": "Simplify and generalise SocialPost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 118, "deletions": 51}}, {"node": {"oid": "c341a7746a5538a0987a71b626cddca843360579", "messageHeadline": "Add a unit test for propagation of social post comments", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 0}}, {"node": {"oid": "41fdd94acd7b1108442bdbebde34106dfae55d86", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 7}}, {"node": {"oid": "7c50167bad5d53e5e37f5f43c10a233c1704fec6", "messageHeadline": "add failing test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 71, "deletions": 0}}, {"node": {"oid": "fa1e4fa99ac27927c1975938c4ffb5f2d5f94ba1", "messageHeadline": "Make all but one of concurrent modifications of the social feed file \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 11}}, {"node": {"oid": "6476396b1404a2f707442d7c703f075df342301f", "messageHeadline": "Add method to get the feed size", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "a7653c93f105906799e919863c67fb4ab80b5d20", "messageHeadline": "Add extra recursion guard in AsyncReader.parseLimitedStream", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "be34aff55ac4fcaa1f534acbf98dd126be8cce37", "messageHeadline": "add progress to media upload method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "ba141c0bbe5ae7bba4d1b007e49525223b618988", "messageHeadline": "improve updatePost", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 17, "deletions": 6}}, {"node": {"oid": "ce61fe262c971afdc84f8ff9be0463571659d21e", "messageHeadline": "make method visible to JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "8f7543ca41e6a8004cd8ca54b37c94b80c85cbab", "messageHeadline": "better handle media type in social post", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 11}}, {"node": {"oid": "f1937148a9ee483af32aaaa0749b4949e785481a", "messageHeadline": "When someone comments on a file don't try and parse that file as a so\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 25}}, {"node": {"oid": "f5365ec550151bcec9bf227be6252ead2d06117b", "messageHeadline": "add failing unit test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 63, "deletions": 0}}, {"node": {"oid": "0c7b3ecf6f8ec13cf8255c9cf90bb43d38f884b1", "messageHeadline": "Fix repopulating groups from friends at login", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "feee8789d0f8c61493b780cc6f4f29b2413f40c6", "messageHeadline": "actually fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "06a7a93c115ed132f3e20d606783c9c19afb0683", "messageHeadline": "Make sure social posts have .cbor extension", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "efdfcbd157587ad2c0658f02abf981c02675871b", "messageHeadline": "update (still failing) test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "0890e828fab180ddb5a7989aebc8a6eb4dddeb73", "messageHeadline": "Error on attempt to share with unknown recipient", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8fd0f19ab656febe8e2e64c73f2225b0ccc4420e", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 23}}, {"node": {"oid": "e184799128e1ed41e9005d5455c292b55e2e2057", "messageHeadline": "added failing test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 29, "deletions": 1}}, {"node": {"oid": "63229a0ef6df9dcdaf66c6e339a9c6ebbf3d7c3b", "messageHeadline": "Incorporate comments into parent social posts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 104, "deletions": 28}}, {"node": {"oid": "a44b5734c3c8ca4b49ce3b57eb024079f7d50c0e", "messageHeadline": "make media paths in social feed absolute", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "192d0b85f3dde9063929019995619d2a134fc32d", "messageHeadline": "Use new method for read only cap in social feed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "636f70b8be329473364778cd9b22721d6c428845", "messageHeadline": "Fix social feed update mechanism", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "1236c1711ea5084ab3ca140388f85b202a65b5ae", "messageHeadline": "change to sharing with group", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b212fd6f1e30c09461ea16d4c6ef14e3433f10dc", "messageHeadline": "Make sure post media are shared read only", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 10}}, {"node": {"oid": "b850cd3d13cf4b6e44dfdece3d56d852e82adef7", "messageHeadline": "also group sharing", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "c9275c1f86c4acfb41e5c56388b33ebe976b8b4b", "messageHeadline": "add failing test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 57, "deletions": 3}}, {"node": {"oid": "2aec49268e5bf3697ac9263e7f9dc29d3d9fcf76", "messageHeadline": "add update social post method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "7b76b43ede1600bb314b8f5d89a665b6f1dce13a", "messageHeadline": "Include our own posts in our own social feed.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 3}}, {"node": {"oid": "e6ee6387cdf460d0ce146c248ecf04481a8e9ab2", "messageHeadline": "initial social post should set audience.", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "162df1c5eb34b041ffeaa686e8ec82bec72cb541", "messageHeadline": "Minor test cleanup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "cee5e1d06d7cb85176ef0cf25d23c0ccc3c8c4b0", "messageHeadline": "another JS annotation", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "312dc7d8b935b444a59c39eca3e44a0f21aacbd7", "messageHeadline": "JS visibility", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "d5cff481351e8ea1b7c73409451119355bfdea75", "messageHeadline": "Flesh out the re-sharing permissions of a social post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 21}}, {"node": {"oid": "f08304d5eca2b12983dbc128bbb1cf1e17059744", "messageHeadline": "Revert to immutable references for content referenced in a social post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "2921c9f777231a705fa2ecafdc9bd5360ddf7100", "messageHeadline": "Add convenience method for creating a comment on a social post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "146422fdd2e572db32c1705aeda13b1d1c2aceaf", "messageHeadline": "Add a type field to SocialPost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 13}}, {"node": {"oid": "f6579928e554565d16adf1a37879036a419fb062", "messageHeadline": "add 2 util methods for use by Javascript", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "31fbc0b8426ea32596506256264d4c5ddae60e77", "messageHeadline": "No need for comment references to be mutable", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "b74d9894f250d2d02a3eeb100660f361a86ce58a", "messageHeadline": "Add a util method for adding comment references to a post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 0}}, {"node": {"oid": "665c597b1d068fe4aaa6c73bb7d9dfb216a9fc3e", "messageHeadline": "Add a util method for creating an initial post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "0481bba951006a34264225ce6b104c13ee9fc400", "messageHeadline": "Give SocialPost a list of MutableRefs that aren't included in referen\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 5}}, {"node": {"oid": "c525a9e2f009c8a145ec4c94f7b3998bbe882e19", "messageHeadline": "Add contentHAsh method to SocialPost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "ea812616dc166d93bf16f03bd2d7b8eadbfb6109", "messageHeadline": "Add edit method to SocialPost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "92cd0392466eb96c2e05831cade0a5bdf05ece48", "messageHeadline": "make parse method available to JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "f20cacca536a1cbf5c65b664a0d836fab6ab2f86", "messageHeadline": "Make more generic sync parse method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "a87556ba0e7ac6f32843e6ce8afae47409845b72", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "8a085414935138ee15f74f25f5550f790de2d8b3", "messageHeadline": "Add failing test for SocialPost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 3}}, {"node": {"oid": "e653be364b14597ce96abf65e9c2345f36d8b80a", "messageHeadline": "add convenient method for deserialising", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "31af4a5925fac2c224d556244e25561fb5c0b70f", "messageHeadline": "Give social post a deducible mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 7}}, {"node": {"oid": "0ea0c56d48e98dc5840c41faef7c12b1b23b16c0", "messageHeadline": "Add tags to social post", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "1aa66c1bd5d44b34f89c8c70201531d2b29a4579", "messageHeadline": "make SocialPost usable", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 77, "deletions": 1}}, {"node": {"oid": "79a0718b25673d3d345f4dadd3ee6d9944e689f9", "messageHeadline": "expose SocialFeed.createNewPost to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "928e08ccade66786d9f2dbfaa640f929ab6e10ed", "messageHeadline": "Fix gwtc (can only hash file plaintext up to 4 GiB)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b22271d84788c940e1800f69a25ff9953978d853", "messageHeadline": "Add methods to get sha256 of file plaintext", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 0}}, {"node": {"oid": "a8a2de250548e81c4b2a08aadd310502d9e56f29", "messageHeadline": "Make SocialPost accessible from javascript", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "4c26ce6b0affeb372216341573061c2bc81b7d49", "messageHeadline": "Initial data structure for social posts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 0}}, {"node": {"oid": "285379f0644ef5b82369afc1367bb3477c0a5625", "messageHeadline": "Initial data structure for social posts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 110, "deletions": 1}}, {"node": {"oid": "09d6f6f3d9581375769ed5ad130c7255754d6ae9", "messageHeadline": "Expand request count test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 3}}, {"node": {"oid": "c6f1825889e87fb852bd68f0b7b59bcaac345446", "messageHeadline": "Add a quota CLI call to list all local users", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 2}}, {"node": {"oid": "848d9eeaa4d96871425db1b9c24e23b6806e57da", "messageHeadline": "Merge pull request #808 from Peergos/fix/champ-get-to-ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 13}}, {"node": {"oid": "b2ca61239c12773cd02bcd648bfe0c79073b2457", "messageHeadline": "Fix proxied champ get calls to an ipfs backed instance", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 13}}, {"node": {"oid": "f8ce2871c9c954710872fe5ebfce2ecbb4815789", "messageHeadline": "Merge pull request #807 from Peergos/opt/cryptree-node-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 41}}, {"node": {"oid": "7106e27c2ad7aa5ee4a37d1431cef6652e864ec7", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b9eba44ace51b92c141f030b582024a38a87117a", "messageHeadline": "Include request count in test error messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "4488ebed2bda200f8c7c960c14b4c1c3cdc5d188", "messageHeadline": "Extract cryptree cache into separate class.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 13}}, {"node": {"oid": "29fa5c7ba6db5e92e92d9dc61e9e2b37a7628cb6", "messageHeadline": "Make request counting test more realistic", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 8}}, {"node": {"oid": "f91ff995df0b56db72aa70b7d16a53ab0f055af7", "messageHeadline": "Update request count test numbers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ddfb092d37743fae2dfbe8d6e836413c5b0e31c2", "messageHeadline": "Update request count test numbers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "a77f04f16543ee2ececa5b561fba2ff29d24bbae", "messageHeadline": "Increase signup request count", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1311308bb2dd0f45f4d3fff23e6f00fbe8381f80", "messageHeadline": "MAke sure directory listings use cryptree node cache!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 24}}, {"node": {"oid": "150279ad12038883cbcc859108b20d30f2645d5a", "messageHeadline": "Increase cryptree node cache size from 100 to 1000", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "527f778de931039827a1e301471a39f391aaaed1", "messageHeadline": "Merge pull request #806 from Peergos/opt/cache-champ-get", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a4ef15f8f6daf464e256f9cafed1e0d8d7b1d6df", "messageHeadline": "Allow browsers to cache champ.get calls forever", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "14679685a6eb498b871c0dde48f21a014a4f2afa", "messageHeadline": "Merge pull request #805 from Peergos/opt/champ-get-selector", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 639, "deletions": 46}}, {"node": {"oid": "cde72b0a081e21851aebf8cd64878cd36cb1a0ea", "messageHeadline": "Update request count test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3f2085f0af0a1c4b459a55a43ffce90a30671c11", "messageHeadline": "Revert cache addition to ram user tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3fddff6310c167bd751906bc32697d90ab15042a", "messageHeadline": "Extend social feed request count test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 1}}, {"node": {"oid": "5d598729197d0f6fd15e423b733ecb80d11aba4e", "messageHeadline": "Enable caching in RamUserTests and MultiUserTests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "71d80038d86b1344b8daa6d29f45e3ff0ab1769b", "messageHeadline": "Add unit test to measure storage request count", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 7}}, {"node": {"oid": "91bf6fc7415fada4711ac29e76003b17c50b548e", "messageHeadline": "Add unit test to measure storage request count", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 212, "deletions": 1}}, {"node": {"oid": "a4944eb7da2f0eeab06401f6ca57bc50415560c1", "messageHeadline": "Fix size args to caching storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0007e69c0775f75e9638d6f3a453e55672a8edc7", "messageHeadline": "Remove fixed content addressed storage which is no longer needed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 111}}, {"node": {"oid": "3cc00c950876823d8ed18b708e39fff139789db8", "messageHeadline": "Fix caching cryptree node writes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "4f6ba0b2f439cd9b0556bb99f6c761f47b3e06eb", "messageHeadline": "Cache cryptree nodes after writes as well", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "6c44c8637255b8e60fe95285703e32c6f5678a54", "messageHeadline": "Make champ gets add the return blocks to the cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 186, "deletions": 2}}, {"node": {"oid": "b9276553475a81409980f67fcbdde26bbdb1ace5", "messageHeadline": "Add high level cache for cryptree nodes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "4f26450c8178dc34461fd4ef14f407ddb7f015ae", "messageHeadline": "Fix JS usage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6fa72307bf9db3e49504a0a96760c2e5d3c7bb6a", "messageHeadline": "Make sure we don't send champ get calls to actual ipfs, which will 404", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "5eb9e621999f0dac06dc3569fa42558777ffa0ac", "messageHeadline": "Implement a single http call which returns all th blocks needed for a\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 297, "deletions": 39}}, {"node": {"oid": "6c9b1e65f0f60744eea53bd3a57ea76455f6e415", "messageHeadline": "Merge pull request #801 from Peergos/fix/download-small-files-progress", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 2}}, {"node": {"oid": "88a5224894916a5b0e22734db36332d7db123b7b", "messageHeadline": "use length of secret in progress calculation", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 6}}, {"node": {"oid": "467395a7da3d0838870e4e8b88484d8978126a08", "messageHeadline": "Merge pull request #803 from Peergos/fix/atomic-signup-to-mirrorcorenode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "34fb33e44f5fd9eb01964642f5550339be54f1cd", "messageHeadline": "Make sure atomic signup through a mirror core node works", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "414d8e3eb9efc058d6663bf6e0a7f45b57fd3d89", "messageHeadline": "beginner error", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "833b98e91a917a0e87a2387aef0ca9653859ddf6", "messageHeadline": "typo", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3b5e9c4d350959709b901a43b0531fc1acb7b8ad", "messageHeadline": "better solution is a new method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 5}}, {"node": {"oid": "165414609db678c1b9416c33012c14bc97d5a1a3", "messageHeadline": "push progress into decrypt method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 15, "deletions": 14}}, {"node": {"oid": "5abc43790a1ee73966a7edb651ecbf9d8e84fc0a", "messageHeadline": "Merge pull request #802 from Peergos/feat/atomic-signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 571, "deletions": 187}}, {"node": {"oid": "af8111a7455293d67205da37b48823065bddfe36", "messageHeadline": "Close transactions during signup oplog replay", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "f13dbeb5abf41ac07806f2bac28981d91aa4e4fa", "messageHeadline": "oops", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c41d9ce1472b45a595c4c90e57e7a8b9357fd29d", "messageHeadline": "Don't allow signup via updateChain call anymore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 16}}, {"node": {"oid": "de8e423ce5c01595bf0bf594154fdc509b27c40f", "messageHeadline": "Remove register method which is superseded by signup now", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 18}}, {"node": {"oid": "c92030c1fbde31827d0f9373f60d77e78f73adb8", "messageHeadline": "Use better error message for preexisting user", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "b0f0fe2b19cbabe01774ec57556c7578a044acf5", "messageHeadline": "Dedupe proxying http calls via pki lookup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 90}}, {"node": {"oid": "bdcd84388b3823cae8dcdf2ad60d150060611666", "messageHeadline": "Remove last proxy fall through case", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "bd0fee245f6c626fced43f2fb0aa0245b01a3b0a", "messageHeadline": "Actually wait for the concurrent processing in new signup call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8fb0a190ceff9374b557791ffe1c4e8d5d5a3710", "messageHeadline": "Remove proxy fall thorough for signup that is no longer needed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "1a4c3e94546b463194d9f3aff6be94a56aa170fe", "messageHeadline": "Implement an atomic signup call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 488, "deletions": 71}}, {"node": {"oid": "507bc1516a893df90b9a90f0ae584c52a369ae2f", "messageHeadline": "Merge pull request #800 from Peergos/fix/cleanup-proxying", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 7}}, {"node": {"oid": "283f4da711e9dc4d3ab9064cc844abe993f5356c", "messageHeadline": "update progress when decrypting inline data", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 30, "deletions": 3}}, {"node": {"oid": "de4f611bfe2646b9b8c3ca1c17dac9b8a6f323db", "messageHeadline": "Clean up ProxyingX for empty chain case", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 7}}, {"node": {"oid": "3d53eb70121d0291dc1f9e01bb0ca9ea0e29eb32", "messageHeadline": "Merge pull request #765 from Peergos/feat/server-migration", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 749, "deletions": 130}}, {"node": {"oid": "c597478c58b312d0bf7b32223c5d89cefcc30752", "messageHeadline": "Clean up CLI for migrate user command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 27}}, {"node": {"oid": "6e33fbb7392582d4b75d3b811c76e796467c8cd3", "messageHeadline": "Explicitly test pending follow requests are transferred during a migr\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "beba2b0c471e8a54d24532b0e335efc331534af9", "messageHeadline": "Make migration failure test more specific", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "d7115e3091a7fb6eccd5e4a2eae0bb5108c22d46", "messageHeadline": "Make sure we send pending follow requests during server migration!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 9}}, {"node": {"oid": "5f8447f1df40000524b50839ae3013f0cd94c904", "messageHeadline": "Call a more direct getOwnedKeysRecursive", "author": {"name": "s@localhost", "email": "s@localhost", "user": null}, "additions": 3, "deletions": 3}}, {"node": {"oid": "c9b88981273d054e99fc8c0ded30223c5db8facc", "messageHeadline": "Add command line args for Main::migrate", "author": {"name": "s@localhost", "email": "s@localhost", "user": null}, "additions": 20, "deletions": 8}}, {"node": {"oid": "a622f6a7850185aead141df4337c885203851f93", "messageHeadline": "Make waitlist work properly", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "0537d108d2bcf06dc2f5a1b372b305c1d7b86dbc", "messageHeadline": "Merge pull request #797 from Peergos/feat/payment-page", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "7ef32d5ed577edfcca0c3dccfeea33bb01e76a4a", "messageHeadline": "Expose freeMB and desiredMb to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "f7b8cdfcb67948eb2ab544c8244eaf6c60de0eee", "messageHeadline": "Merge pull request #794 from Peergos/fix/gateway-dos", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 12}}, {"node": {"oid": "cd5f3158fa10d0029c7d840ba08ab06a18832216", "messageHeadline": "Implement streaming responses in gateway", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 12}}, {"node": {"oid": "56086039901a3d01794b609fbd9d2810571f9a6d", "messageHeadline": "Merge pull request #792 from Peergos/opt/fast-login-with-groups", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 160, "deletions": 51}}, {"node": {"oid": "b5ccd30c36313cda6dc7055e56f50eb61f4fecc6", "messageHeadline": "Reject invalid ownership claims in shared capabilities", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "59d0a9bb3354d8338ea95f0b516540ea631245c3", "messageHeadline": "Implement recursive key ownership resolution", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 18}}, {"node": {"oid": "6bd1008066f6c117b9b1769f2ffb3c36d7e0c437", "messageHeadline": "Make sure group caps file is hidden", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "311c518696feb0558510e59a8bad6747b22cbd64", "messageHeadline": "Clean up trie construction by removing our entry points", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "34477e2cb58d2245d5943fab10abf81e46f0418f", "messageHeadline": "Make sure loggin in is O(1) again,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 114, "deletions": 30}}, {"node": {"oid": "b3ec051fac1b5688200231bc3639c13698076709", "messageHeadline": "Restrict a few more usernames in light of groups et al", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "8fbe401ebf5db6e76c36359be99777fc33daca3c", "messageHeadline": "Merge pull request #791 from Peergos/fix/group-cbor-legacy", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "f51b38100018e4a9ab80c1100345474de020fab1", "messageHeadline": "Make ProcessedCaps::fromCbor backwards compatible with legacy data", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "d9ee0f635028d7c9ef81ae7e7a23fc920e7bf778", "messageHeadline": "Merge pull request #783 from Peergos/feat/groups", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1359, "deletions": 345}}, {"node": {"oid": "02c01600e228c6b9b43eb8440846610463bc35b8", "messageHeadline": "Fix deciding whether a follow request is a reply or not", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "68b8bc594fdcb261eecca1b6758693ff046f65f6", "messageHeadline": "unit test for accept, unfollow, re-send friend request", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 26, "deletions": 1}}, {"node": {"oid": "62c5338bdf0f223d9cf0f324b25642db9b1fbb18", "messageHeadline": "Make sure incoming rejected follow requests are removed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 8}}, {"node": {"oid": "04e1230e129850561da4cb1d387b3a51e7702c4d", "messageHeadline": "add deny test case", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "a0974d4ee57daa54ed314c500184ccb75ef735dd", "messageHeadline": "Remove from pending outgoing when a follow request is not reciprocated", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "0a8c2eee09b82d3eec839eec7b878fdcb76ed510", "messageHeadline": "Remove unused member on SocialSate", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 5}}, {"node": {"oid": "47211b8be8ce1d8ed60841209ee6b53df2d92a70", "messageHeadline": "Add pending outgoing follow requests to SocialState", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 10}}, {"node": {"oid": "2bb40a0d4ed1353307ca8681b98f929b9b396701", "messageHeadline": "Allow concurrent mutual follow requests to succeed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 2}}, {"node": {"oid": "b144d1cff27e20c6d2a744fac990a9f74b6fd6a2", "messageHeadline": "Make sure social state file is hidden", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "96187e9e18aac683dd7117609ac629e843446d43", "messageHeadline": "Fix social feed tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "572e93228c7bb6b6128ae12a22373328b6a9a492", "messageHeadline": "Ensure pending outgoing follow requests don't show up as followers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 153, "deletions": 36}}, {"node": {"oid": "fadb56d715df54c552d76e4b9d85f7e01072eafe", "messageHeadline": "Prepare for handling caps from users we don't follow", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 125, "deletions": 5}}, {"node": {"oid": "5663fe9846fabe7f7133987f5f4013da9835d45a", "messageHeadline": "Further simplify group unsharing logic", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 11}}, {"node": {"oid": "2c62e72cad84eec8221d963d6817110ece407e0f", "messageHeadline": "apply similar changes to share/unshare write methods as read methods", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 100, "deletions": 144}}, {"node": {"oid": "8a4fa64c050cc1329ee194bc42cf291f3da53e3b", "messageHeadline": "oops", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "38d33128100cafb5f7679ad3eba60ed5babc7d79", "messageHeadline": "Push read revocation logic into single method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 40}}, {"node": {"oid": "0544044c09a9a0f690e289208f8db8c0a59b0890", "messageHeadline": "clean up", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 20}}, {"node": {"oid": "4729be2cbd833ea8786396fec325222452f3e62a", "messageHeadline": "Make main unshare methods private", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "3c3143946bc82045134bf7c653865d428a931486", "messageHeadline": "merge unshare methods and add API docs", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 49, "deletions": 32}}, {"node": {"oid": "c0008acd420d36620cf5d97050c8fe4f7fdf042a", "messageHeadline": "Move methods", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 74, "deletions": 74}}, {"node": {"oid": "5f7a19eaf007a062d4ff7c1e56662e5ff3730bb7", "messageHeadline": "add group aware unshare methods", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 124, "deletions": 0}}, {"node": {"oid": "9542b362a8ea6c7208525c51fa27092d774e29bf", "messageHeadline": "Merge pull request #790 from Peergos/feat/cli-signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 7}}, {"node": {"oid": "45e2a053be81d5675e762683a69f80a171a0d2b1", "messageHeadline": "Password advice", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "45aaae800031029c49313260a876e50d6b3712ad", "messageHeadline": "Allow signing up via the CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 7}}, {"node": {"oid": "1497382bf571b217ee159f3ca375edb6294901a0", "messageHeadline": "Fix error handling for unshared descendant caps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "f2f970d5b78e5f831acbc7702d9280580db84338", "messageHeadline": "Handle case where a file is shared read only via a group,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 1}}, {"node": {"oid": "f9ec8435a8b573c02e0f7521f47ca6883b358526", "messageHeadline": "Clean up follower code.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 37}}, {"node": {"oid": "603a283da93181cff20018b1853e8b41d23338af", "messageHeadline": "Use correct method for getting follower names", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6c3feb2d6f6fd04502931392a6f822b721d9d20c", "messageHeadline": "Filter groups from follower roots", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "dc398d01a5ecff66a760d1b1320bb4aed4312f2a", "messageHeadline": "Fix cache behaviour with group sharing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 11}}, {"node": {"oid": "b5f741e493706db94b0dabb3965eae907ac73244", "messageHeadline": "Make tests more robust", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "f7ecba662aaa38b22c5796340bc7d062284c2468", "messageHeadline": "Fix another test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c97b6b7a392203764fe5e57f19dedfcdda64c4a0", "messageHeadline": "Fix some timeline tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 8}}, {"node": {"oid": "78a6f411eca7c4db54dc91e1d640c8342edc0179", "messageHeadline": "Implement group sharing.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 662, "deletions": 114}}, {"node": {"oid": "c53cf7cd362563c542c3dacb51d53b6c59b6c6b9", "messageHeadline": "Merge pull request #789 from Peergos/fix/return-for-groups", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 21}}, {"node": {"oid": "b17fde306310fee7ad06df94e58fe941502f82b1", "messageHeadline": "Restore the return value that is needed for group sharing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 21}}, {"node": {"oid": "4eabbd7d306d0fb68344b4e4baf7da15013f1d52", "messageHeadline": "Update talk link in readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1ec019a6ef7bd84641e167dc6730e6463a49c024", "messageHeadline": "Merge pull request #788 from Peergos/opt/friend-space-traversal", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 11}}, {"node": {"oid": "473667c39a845923dcc02f60929a0603aac91f94", "messageHeadline": "Optimise reading friend's files", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 11}}, {"node": {"oid": "ad60a48ad66e5f21d5f43ffa94169437fe1d943f", "messageHeadline": "Merge pull request #787 from Peergos/feat/app-and-sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 31}}, {"node": {"oid": "90efdfc2487ef747589d87b4382be0e9f33c7376", "messageHeadline": "and again", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "67ac7a0dc324fd3f2b6d0e04df5eeaadc9c75c60", "messageHeadline": "oops", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8f116fe3b06309423e5dbf627b004db476bc8c50", "messageHeadline": "use split to break up path", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 7}}, {"node": {"oid": "c66ba5de8e4373a080664912a5f29bb0b50e9a93", "messageHeadline": "review feedback", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 30, "deletions": 25}}, {"node": {"oid": "54b5ff828c82382947723029faad9a7b2531cacf", "messageHeadline": "remove debugging code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "319df4208e7a906f68aecbfca6cf15432f45193e", "messageHeadline": "API change to App to support sharing", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 28, "deletions": 18}}, {"node": {"oid": "647aeeacc328e05115ea2fe3b3d7874a89900035", "messageHeadline": "Add new talk to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "cdb15a112b09f5f4cd8465c301af6d638bc89720", "messageHeadline": "Increase gwtc memory", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d6199199b2961e4ecbe4b1c3787febc4edc73535", "messageHeadline": "Support avif images", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "ca2da58b70d6a183f54ba5b04e5ebfd9ee89f079", "messageHeadline": "typo", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "47dabfa6938ca27e339725314f3af59d3aef49eb", "messageHeadline": "Merge pull request #782 from Peergos/fix/following", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "e0f16d188ac97881368a86efc6c404fd5ba40f06", "messageHeadline": "Fix case where follower name starts or ends with our name", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "9bc2353edecf8b2c54ac4f72bd57fe5c28d9c26c", "messageHeadline": "Don't do redundant mirrors", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "c147bae0dc9990653618b9f03bbc691b278111d3", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 12}}, {"node": {"oid": "9558e1511b29e1842d015a53ded7827e56be530f", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 8}}, {"node": {"oid": "b13bca793f3ca182d63de789e5293deb33af74ac", "messageHeadline": "A migration chain could have been reused by anyone to reverse the mig\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 6}}, {"node": {"oid": "cdfb68620d25182c73a5b18919828a4298a63aa8", "messageHeadline": "Make sure local usage has been updated before migrateUser returns", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 16}}, {"node": {"oid": "c34407dd80c2007f4f4799dde2b743fb9b169177", "messageHeadline": "Check the user has enough local quota before starting a migration", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 33}}, {"node": {"oid": "225946ce6618a2c07d2a93f356c4c55b1c1cbd9d", "messageHeadline": "Better error message when writer is not in usage store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "38cffa928f49efdae50b11ead0028e6167a74222", "messageHeadline": "Fix test race condition because mirror pki node is eventually consistent", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "66ef75c22fdb8148918399b42f1f73e4fdabd378", "messageHeadline": "Clean up CLI for migration", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 40}}, {"node": {"oid": "bbc41bf495f482fd080ba9b5f53b3dde2324c12b", "messageHeadline": "Test server migration with longer chains", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 1}}, {"node": {"oid": "e21dfb2b69e271400d46bafc1c1808a935f6020f", "messageHeadline": "Server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 0}}, {"node": {"oid": "15f2d0f989fa00fad2dd31ef8161befc877fa3a5", "messageHeadline": "Server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 8}}, {"node": {"oid": "1e8ea0aeac08642d4a8cfc064c29a1f9e9c75ac9", "messageHeadline": "Server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 7}}, {"node": {"oid": "36a0dfaf681060ff182609d0b1660f7d7c4825ce", "messageHeadline": "server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 59}}, {"node": {"oid": "db60b1c0ebf03709da9d35f4433735c55742a14c", "messageHeadline": "server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 4}}, {"node": {"oid": "9a9df6eb09ec9266ae2c3a94c427d7c2ba1bd8f2", "messageHeadline": "server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 20}}, {"node": {"oid": "541a54f9abc7b01f439c22548c417d49b8afb385", "messageHeadline": "server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 25}}, {"node": {"oid": "8332077bd10977abe630022df29ba14297173d5c", "messageHeadline": "server migration (WIP)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b4bc5b06d0949f7008b9dec7aafeaa98a5f36082", "messageHeadline": "Initial WIP of server migration.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 249, "deletions": 33}}, {"node": {"oid": "55eaa585e413d0087e0dfedd2128f7b822d94b48", "messageHeadline": "Initial WIP of server migration.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 33}}, {"node": {"oid": "396ea095cd74faab42aee437a419536707f8f2b5", "messageHeadline": "Initial WIP of server migration.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 207, "deletions": 16}}, {"node": {"oid": "886c9c65cef9ea4e212f392b3cd450133f5aa69c", "messageHeadline": "Don't double token generation count", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "55abd6019c7ba679877b30f9dfb82597f3a2a4ce", "messageHeadline": "Merge pull request #781 from Peergos/feat/signup-tokens", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 387, "deletions": 100}}, {"node": {"oid": "dc8cf357ace9ee3dc52b2cd92a954a7647c3970c", "messageHeadline": "Better error message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "6e8d3c22b79c7fcb33ec8cf4835952889dacafcf", "messageHeadline": "Allow to generate signup token even on paid instances", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "69a2cc913eee97a44ceea8ef86cf165b3a6672fe", "messageHeadline": "Rename method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "168d4f9a86527b3f1907dde85fc476abbdcf1ecb", "messageHeadline": "Pass username to signup token consumption to allow setting quota", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 10}}, {"node": {"oid": "9a740f13fa7c84ecec6ba65d07b00980c278d2dc", "messageHeadline": "Extend signup token generation and consumption to paid instances", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 29}}, {"node": {"oid": "dc4a450f1e2080ea0b2c0a0cb34789f3e98b270b", "messageHeadline": "Only consume signup token if signup was successful.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 10}}, {"node": {"oid": "13af995e8c28dd52280787f77af339c76487f780", "messageHeadline": "Improve error logging in stats", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "3e455678fb24d0186d99e38f93c3fd61b21b7b3b", "messageHeadline": "Allow bulk signup token creation in CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "1f17e0d23af1109a3795ad2470399f250e72c454", "messageHeadline": "Remove println", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "099d3f7155e2db08754035fd7d104f552bc2751f", "messageHeadline": "Test token based signup", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 98, "deletions": 2}}, {"node": {"oid": "f688f03c20cee925d2ae53d509cb166da972c727", "messageHeadline": "Fix change password regression", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3588955c03d536ed7dfaa59a3573649624e3f8db", "messageHeadline": "Implement signup tokens for authorising signups", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 200, "deletions": 75}}, {"node": {"oid": "8874f13194c64983a8515ab6697400850d0ae176", "messageHeadline": "Remove references to alpha and demo servers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 12}}, {"node": {"oid": "5ea4a0e7d70820eda2f2cbed53a24e2a9c13bdc3", "messageHeadline": "Merge pull request #780 from Peergos/feat/ascii-art-logo", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "09bc4a0588ae3b49123c6ec49fd1cc8d61272feb", "messageHeadline": "Ascii art logo in CLI welcome message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "59e3b72297aa1b939317a39800fc61fc543c9161", "messageHeadline": "Merge pull request #779 from Peergos/feat/soource-version-include", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 7}}, {"node": {"oid": "af236d544d669400efadb0350a86501c34fc4a54", "messageHeadline": "Extract source git commit from jar and return in server version, and \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 7}}, {"node": {"oid": "86e9b4ecbd83953aed612c1a109a44a2c223f6a1", "messageHeadline": "Merge pull request #778 from Peergos/feat/cli-welcome", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "75d404281cdd3b05d0bd28424ddd6e2318819356", "messageHeadline": "?Welcome cLi message and version", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "773eb591f6847e51657ab09c962733667f737600", "messageHeadline": "Fix CLI help", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "fc9bcc6b655821c858a7127709c2268d235086c5", "messageHeadline": "Fix CLI help printing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7a8bae581638179145b9765a338a9563c9c27518", "messageHeadline": "Fix time printing in quota CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "bff90c7c55784daa6d242d28f677242def84357a", "messageHeadline": "Merge pull request #777 from Peergos/feat/run-gateway-with-daemon", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "6c03b39a697bd5c58d3d5e1c2400eefeb9d29f9e", "messageHeadline": "Run gateway by default with daemon", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "7a98ec565f87d91aeda04d13ffc04c151696b900", "messageHeadline": "Merge pull request #775 from Peergos/fix/unpublish-public-folder", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 147, "deletions": 19}}, {"node": {"oid": "5d5c2024cfb5c868f08b8ee181fce594bb8f72d3", "messageHeadline": "Remove log message", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "57624372a2778bdac018485f0ceeac2469aaa095", "messageHeadline": "Fix path in other InodeFileSystem test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "e6b885bc53141fa9bb511511f66e18f3c51df656", "messageHeadline": "Fix more stringent InodeFileSystem test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e5ee521247eaebfc5c9c78e27d565f9bae1f56e5", "messageHeadline": "Handle publishing nested caps in InodeFileSystem", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 4}}, {"node": {"oid": "538206edeb0c2984cc80afa3403cd4b395f7360d", "messageHeadline": "We are in beta.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "e4bd06ffc8e4f3f18f2b7ecb0505c29ce671cf79", "messageHeadline": "cleanup", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "0b009e1d6505b29727b794c45fb959646f1f5715", "messageHeadline": "Improve InodeFileSystem tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 16}}, {"node": {"oid": "d4b16455d5b37a7926817a89a0a02e4585a619bf", "messageHeadline": "failing test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "bba7953e28fc02966842c895c1a01db3820c6239", "messageHeadline": "updated - but not right", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 28, "deletions": 7}}, {"node": {"oid": "3259defa562a5a0751f76e6e17e18f5b0ada2799", "messageHeadline": "Merge pull request #774 from Peergos/fix/gateway-cache-after-webroot-\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 26}}, {"node": {"oid": "ab3e7b1e304e2b2cda8a68260aa6e1da5059aae7", "messageHeadline": "Don't let users publish their home directory (e.g. as a web root)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "5dad265f10fcd7e514777eb869cede487c91e73b", "messageHeadline": "Invalidate gateway cache if a user's configured webroot has changed", "author": {"name": "s@localhost", "email": "s@localhost", "user": null}, "additions": 45, "deletions": 26}}, {"node": {"oid": "5c20a31a7a4ab7ad7cc38c90fd29b4ec60e0fc1a", "messageHeadline": "unpublish", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 34, "deletions": 1}}, {"node": {"oid": "8e621811de363b4789af2a5ac024ec2a7915e4bc", "messageHeadline": "Print request time as well in quota requests CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 4}}, {"node": {"oid": "edfa9cc886e9568a86b501df65312036f65b3210", "messageHeadline": "Merge pull request #773 from Peergos/fix/single-db-connection-pool", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 23}}, {"node": {"oid": "36902449842fa76d188489084b276c4e8a4e82b3", "messageHeadline": "Make sure to only use a single db connection pool instance when using\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 23}}, {"node": {"oid": "f8451cd23ddb4467f10bd6a228acd026bb59da53", "messageHeadline": "Merge pull request #771 from Peergos/feat/quota-request-cli", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 25}}, {"node": {"oid": "9a2be811208eedfa49488ac679cb5705737cd584", "messageHeadline": "Remove unused CLI parameters", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "e1e81351678e8d0381cbd9d7d446a1dd984929e2", "messageHeadline": "Merge pull request #772 from Peergos/fix/gateway-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "917d123b3c4dc881e8945bc86d2f002cdb9b6620", "messageHeadline": "Fix gateway cache vulnerability (Thanks Steffan!)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "2305bdfd7005a9fa8e0c7ee303bed1be7c260492", "messageHeadline": "Include CLI for showing pending quota requests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2e2c3d4f5fe39d2450c6b1d83f067c877d6cc95b", "messageHeadline": "Add a CLI for showing pending quota requests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 24}}, {"node": {"oid": "edd936f1c28ffb9e9c44c68338a1278c342e8e78", "messageHeadline": "Merge pull request #770 from Peergos/fix/profile-jsmethod-publish", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "1061c545f39a45c8f36b7ca0ff6232af239d1133", "messageHeadline": "expose publishWebroot() as a JsMethod", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "72479b67b9813d7d9d25c772baacb762c86c1783", "messageHeadline": "Merge pull request #766 from Peergos/feat/profile", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 167, "deletions": 9}}, {"node": {"oid": "61ee5ca3f21d507d7eebc28e42e927d0c494c8d0", "messageHeadline": "Merge pull request #769 from Peergos/feat/basic-auth", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 91, "deletions": 15}}, {"node": {"oid": "09fdcf48f00689b24b02b34938974b218b158a2b", "messageHeadline": "debugging memory issue", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 9}}, {"node": {"oid": "895b284f2d97ce69e9bc72811375d5b79155d000", "messageHeadline": "Implement an optional basic auth handler covering all http calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 91, "deletions": 15}}, {"node": {"oid": "ad7746e726274b65e34bf4eae82fa1d27cf2732b", "messageHeadline": "Fix printing quota", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0b8291978816c5d2d7754f38399605a4132f16aa", "messageHeadline": "Merge pull request #768 from Peergos/feat/sql-quotas", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 317, "deletions": 68}}, {"node": {"oid": "545211bf46cc738ed6407b964700cd483e6879c1", "messageHeadline": "Add CLI for showing ans setting free quotas.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 103, "deletions": 4}}, {"node": {"oid": "96d88b764788febdf3fd4be05209d8e09755d418", "messageHeadline": "implement getProfile", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 83, "deletions": 4}}, {"node": {"oid": "3d114e713b88abf660a43472740a72e289eab378", "messageHeadline": "Use sql COUNT in quota store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "1ad052715d5194a80a036fa76a18162044e1098f", "messageHeadline": "change profile thumbnail back to binary", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "fc5c96956299a8d2424dcb80cf6a0f9348823b72", "messageHeadline": "Merge pull request #767 from Peergos/fix/handle-invalid-space-requests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 5}}, {"node": {"oid": "5fad77aeec06658102ba54990fc52cb43dea2925", "messageHeadline": "Use new sql quota store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 71}}, {"node": {"oid": "6ea5204126e94fe99ad8b5c7cc363e146367c7c9", "messageHeadline": "Implement a sql quota store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 164, "deletions": 0}}, {"node": {"oid": "efd1932e9d322dc2e4ea79bcd195e5e5274458f5", "messageHeadline": "Handle invalid space requests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 5}}, {"node": {"oid": "40774b8fe353336dc6e8dc88862c5cabe4e9b5e5", "messageHeadline": "Add link to public matrix chat room in readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "4ccb164d1dc789bbb2ffba8f767fe05d3130713f", "messageHeadline": "remove comment", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "16faf6e6d11443efc3fb71c274eb0e504754fdf4", "messageHeadline": "add hires variant of profile image", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "0c7af5c18a60a17747c0737e613073ecf80ac809", "messageHeadline": "incorrect path", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "74ed260f7815b38344cf3840ae3f8f16f06e9657", "messageHeadline": "initial cut", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 72, "deletions": 6}}, {"node": {"oid": "f51c647be195ae3666ec9a33dd2dcaea0e5ff38c", "messageHeadline": "Add type for vcard", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "b3c00f84c78fd6eda32b44a5cebfc33342a88262", "messageHeadline": "Merge pull request #752 from Peergos/feat/calendar", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 163, "deletions": 7}}, {"node": {"oid": "20b307213b6ca5fe3c21039373e26a0572cacc64", "messageHeadline": "Let getChildren handle case where parent doesn't exist", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "41af87d4e99a88c4fd0d1188dcf9e1b395beb29a", "messageHeadline": "remove JsMethod annotation on Future.of()", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "7b4b42ab18070e44ec49e3521a32e4535223fe51", "messageHeadline": "Support vcard mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "69e71d7d97e41af43ab9998126e9851e483f1ff7", "messageHeadline": "Add interfaces representing what each permission allows an app to do", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 15}}, {"node": {"oid": "7d07b16a21ac13768eace7bca11f4b24c8f90e2d", "messageHeadline": "required", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "1ce88493fff7f3fd4ed733ee933f6abb0f2331a7", "messageHeadline": "bye bye cache", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 145}}, {"node": {"oid": "fd6aa45c41afff9f3dc3743bcc90721b360527b8", "messageHeadline": "re-work filter method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 23, "deletions": 3}}, {"node": {"oid": "80b4e7bde980ee3d4b15edcb0a34882c34bcd9ab", "messageHeadline": "add dirInternal method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "1d679d25545257e9151f72b6476576cbf9af6e7d", "messageHeadline": "Expand app comment to describe paths", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "9cc98180cee5b422b31afcf120e7412da45c5aad", "messageHeadline": "Add comment describing app permissions", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "a2c0f607222538e1c1f3ade09746341bfbc879d4", "messageHeadline": "various improvements", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 36, "deletions": 28}}, {"node": {"oid": "6b88d5467b95d9a44ecef9cc6ea36eef7e2985b2", "messageHeadline": "Merge pull request #764 from Peergos/fix/pre-incoming-cap-cache-user-\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "05a7be04507fb314140603a6a327d292d7c41f14", "messageHeadline": "Fix login for users who signed up pre the incoming cap cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "0677c1bdcb2ffe99885a12d963813023d07299cc", "messageHeadline": "reorder", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7583a6e13ce5abd2b9ce882342cd02692e8ba530", "messageHeadline": "handle difference arising from using new getOrMkDir implementation.", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 17, "deletions": 75}}, {"node": {"oid": "cb4573159fdef810b4d762c5e9416bbb7eed6610", "messageHeadline": "add unit test to demonstrate issue with getOrMkdirs", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 71, "deletions": 1}}, {"node": {"oid": "bc010eaae75fd719d49d3af1b8a49fdf54eb6ef6", "messageHeadline": "Merge pull request #762 from Peergos/fix/addtional-mime-type-handling", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "6019cdf700c52d9f9e1e152ee3982f4c4ac84814", "messageHeadline": "put back all ascii test for ics", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "a5925cea313592ef8b1d14d02315d64aafb7b5c5", "messageHeadline": "Merge pull request #763 from Peergos/fix/password-change-owner-update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 0}}, {"node": {"oid": "004f220ff360821871c36ae1dc1700c5d9195fa6", "messageHeadline": "Make sure we update our owner key for our filesystem after a password\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 0}}, {"node": {"oid": "2c939e70de46862a7f89bbbaaa07bc96926dc206", "messageHeadline": "Merge pull request #761 from Peergos/fix/username-lookup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "233bf620a9666cb1368fe7e530983a82fc868791", "messageHeadline": "add cal + todo", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "015676a0ba7375b20c0d87ad20d99c7c7a4ec2a9", "messageHeadline": "formatting", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "5ce89de69e4f9b0b4829cd4536e7d364a1274dd4", "messageHeadline": "Error when a username lookup fails", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "e19e539f15f29ca048825194a56e803e8567709b", "messageHeadline": "Ensure we can still lookup usernames from their old keys", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "82a1bbcdd6d2c4046c6dc36a50161ea05af98913", "messageHeadline": "Add useful error message for empty chain in direct s3 blockstore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 8}}, {"node": {"oid": "ba41bf5df3e75d59644f096c0662c3aae4f47b68", "messageHeadline": "remove redundant changes", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "99395b7c31ce08b6b4decd75863ca972c86bc7f0", "messageHeadline": "remove FileUtil", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 44, "deletions": 66}}, {"node": {"oid": "5965abc906586420c9d0c13ea2693b1ed7f21eea", "messageHeadline": "clean up", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "d9786ab07d987ff52773352d665e9e5b14d63544", "messageHeadline": "move java code to JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 156, "deletions": 356}}, {"node": {"oid": "7117654533dbf958ff0a21d0f90ebc6d2fca545a", "messageHeadline": "Updates. to be superseded very soon", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 198, "deletions": 48}}, {"node": {"oid": "535af42c987d2816b43b071d2f6afaa8f56ba1ec", "messageHeadline": "add read only sharing", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 86, "deletions": 15}}, {"node": {"oid": "eea0829f40246ccc1a144c845d8360d7f0287880", "messageHeadline": "Get calendar event file method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 25, "deletions": 0}}, {"node": {"oid": "21c400eee3a12cc14e76aa7adf13974f321ebc71", "messageHeadline": "embarrassing bugfix", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 31, "deletions": 36}}, {"node": {"oid": "439c0b5365c8b1a441aafd4520d85104e29e9337", "messageHeadline": "change to using ics format", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 46, "deletions": 137}}, {"node": {"oid": "926709c6c71d1bb3470e1dd867f0ba9a7638b01c", "messageHeadline": "load calendar events in 3 month window", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 129, "deletions": 82}}, {"node": {"oid": "13706338b05dc41bb91455092a0b96c96f21bb7e", "messageHeadline": "initial commit", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 278, "deletions": 45}}, {"node": {"oid": "594ebb7e01be7cc77f4e816b18b00ef20ec05f86", "messageHeadline": "Merge pull request #760 from Peergos/fix/s3-domain-warning", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 17}}, {"node": {"oid": "8b711884e629b3d720ef4d1d7f1f702a8bd6634a", "messageHeadline": "Merge pull request #759 from Peergos/opt/gateway-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 103, "deletions": 47}}, {"node": {"oid": "41ec70c56b87edc65b4ea51b340b6d66678f2095", "messageHeadline": "Allow the web ui to easily test and warn if the S3 blockstore domain \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 17}}, {"node": {"oid": "36ebaf0f8977ed38f1abba97ac1d1ea8b4cec691", "messageHeadline": "Put a 2 layer cache in the gateway.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 103, "deletions": 47}}, {"node": {"oid": "83a7f4dae1b33fb253d47c449ab66644c3f62cc5", "messageHeadline": "Merge pull request #758 from Peergos/clean/cbor-cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 124, "deletions": 126}}, {"node": {"oid": "c4f5a5a4540602e7827bb4343a4724bd86fe6a13", "messageHeadline": "Fix null pointer in public file handler", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "4e14ab709995d201c0816adc5f798ec4304b5f35", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "840853f9bb38cf280c3450f429583b34bc548079", "messageHeadline": "Clean up CborMap", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 108}}, {"node": {"oid": "fc684c91ce430de1de02e34201b9d668b4be8567", "messageHeadline": "Enforce that we only ever use Strings as keys in cbor maps.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 22}}, {"node": {"oid": "490ddab87c53a882b366440dcf9e0ba21f302081", "messageHeadline": "Merge pull request #756 from Peergos/feat/web-hosting", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 264, "deletions": 0}}, {"node": {"oid": "4bebb6c545a8559fb1f59f89b5aa23066541a043", "messageHeadline": "Merge pull request #757 from Peergos/fix/single-domain-signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 110, "deletions": 6}}, {"node": {"oid": "6a1288f4b42ca29f704d02dbdf77d871caf81db0", "messageHeadline": "In the case of a blocked s3 datastore during sign up tell the user we\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "4b88286f2850f47fa7c92fb530155339bf78d4b1", "messageHeadline": "Make sure we replace the other references to the dht in network acces\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "94bd5055b0a9c9576d4af5916e6c4f686f0d28fa", "messageHeadline": "Javadoc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "805d4a76db6f1ab507290d1ff1503da6af847727", "messageHeadline": "Don't use the direct S3 blockstore during signup.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 98, "deletions": 3}}, {"node": {"oid": "5c6e85c264a9352684db2a8b766c5d4971f0796b", "messageHeadline": "Change default local gateway suffix to .peergos.localhost", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "b69055ba5856bfbc0dd872b8ebaf44a17b314161", "messageHeadline": "If a directory is requested and it has an index.html, serve it.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "bc81213a79aca78a897d5fe9b2f7d398342f4a22", "messageHeadline": "Allow browsers to sniff mimetype for gateway pages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "281ee2d260b13694965fb4339ccf9e614e59da9b", "messageHeadline": "support custom 404 pages on gateway", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 2}}, {"node": {"oid": "d87c08405930b88841db5380715ce9f0cb3a2fee", "messageHeadline": "fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "46a128acf7ad869058f14c5217580b80fa640050", "messageHeadline": "fix typo", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "298ac31e30072ef3ba481f96cbf9c5d62cf8ec76", "messageHeadline": "Make public gateway 404 on a directory request", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "01bd8cc0c47916074781540df68cd89e081ca97e", "messageHeadline": "Merge pull request #755 from Peergos/feat/profile", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 129, "deletions": 0}}, {"node": {"oid": "5531332626bc8377d4bede7cb76af71672f43646", "messageHeadline": "Add test for public web hosting", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 2}}, {"node": {"oid": "94255ec2e6ae83123ba7808f85c48d3493f7597a", "messageHeadline": "Implement a gateway for hosting personal websites directly from peergos", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 193, "deletions": 0}}, {"node": {"oid": "5bf771a65dbe81bdfaea42f80f10eeb9b2659a0f", "messageHeadline": "Add profile helper method for publishing a web root", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 0}}, {"node": {"oid": "599ab55c336a0407cce25effccf6324de4ce7217", "messageHeadline": "Add remain profile helper methods", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 0}}, {"node": {"oid": "620b6814a068f884a59e40e05a134fbbb5fba3a7", "messageHeadline": "Implement first few methods for managing profile data", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 0}}, {"node": {"oid": "ecf3a42514376e18576d2aadbfd0bcc53574ec1c", "messageHeadline": "Set out structure for private profile", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "f1af4de541c0bb97251cb12c1bfd5deb6fcb381b", "messageHeadline": "Merge pull request #751 from Peergos/feat/todo-list", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 342, "deletions": 6}}, {"node": {"oid": "77a47c5beba2ce1a92eec4e6836919931571b6c0", "messageHeadline": "remove some unneeded code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 113}}, {"node": {"oid": "73eb5275efa4fbf57625730fe7462d92968b3ed1", "messageHeadline": "re-write as per comments", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 27, "deletions": 511}}, {"node": {"oid": "366ef3d76d7440fd6b93853a4f38bfee674ad443", "messageHeadline": "Remove UserContext method for todo constructor", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 12}}, {"node": {"oid": "973c7f9dc174b8fd87968309db8b415fa8ca31bd", "messageHeadline": "Move App class to its own file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 293, "deletions": 277}}, {"node": {"oid": "cfc91fbdf5a1b81f4b468682cbe4712608918ebd", "messageHeadline": "Make mimetypes self contained again", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 41}}, {"node": {"oid": "ded53f163175a67231d1c5956c067cdcec65f51a", "messageHeadline": "add app properties file", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 119, "deletions": 23}}, {"node": {"oid": "001352b7af6e8073a3ffaa0e564ae9cf103969b2", "messageHeadline": "More scaleable sharing", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 213, "deletions": 40}}, {"node": {"oid": "45215213191da63dd511d0cb5067c0ad8e2769c6", "messageHeadline": "Merge pull request #754 from Peergos/fix/timeline-bug-unsharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "f66ac557dcee00d95dcd32241bf7e68c0ec526b3", "messageHeadline": "handle unsharing of items", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "41f9c76be0b87ed7ba1b07cbfa647f3aa78faf9a", "messageHeadline": "fix clash in test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "26f7f5b8bc6298e19b6bd2e28304d545cb0bd9e0", "messageHeadline": "mimeType rework", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 50, "deletions": 15}}, {"node": {"oid": "6b97227e2751eef1968825652f0e778c5a65a04f", "messageHeadline": "cleanup following rebase", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 52}}, {"node": {"oid": "74dc2a25f22f05f7175545d8463d283b7088a32a", "messageHeadline": "Merge branch 'feat/todo-list' of https://github.com/Peergos/Peergos i\u2026", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "3e28ffba3507e9cd3ed4f89f8f0b8f3021f0bcc0", "messageHeadline": "remove unused method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 5}}, {"node": {"oid": "709bd31208c9988fa4bd3b7d0f601f8cd17a43eb", "messageHeadline": "make sure correct props are updated when file contents replaced", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 34, "deletions": 6}}, {"node": {"oid": "07e7e926a731c12a281bf941e99d7de6ca6248c5", "messageHeadline": "optimistic locking - incomplete", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 135, "deletions": 22}}, {"node": {"oid": "b6c5edd23410b414b368851a0a67e94990d3e3b3", "messageHeadline": "version cbor", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "32606b9651743a924c977945006aaffda5d8d45e", "messageHeadline": "add mimeType for todo", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 45, "deletions": 11}}, {"node": {"oid": "aa532e620d3ced6ab5a609dbf9f6b735a14ae3e9", "messageHeadline": "Testing shared todoBoard", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 16, "deletions": 8}}, {"node": {"oid": "0f8417561b6c592e417826aab14a0fd5a9d3f522", "messageHeadline": "remove isWritable from TodoBoard serialization", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 21}}, {"node": {"oid": "4bade5e69c0ed8cbd293dcedc2e41ba1251504a8", "messageHeadline": "serialization changes", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 49, "deletions": 23}}, {"node": {"oid": "736188e6f899457e99b5448d142d26c869596f69", "messageHeadline": "initial drop", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 483, "deletions": 1}}, {"node": {"oid": "8f1545f3c1c3814d96bc3b68e9b685fde0691f53", "messageHeadline": "remove unused method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 5}}, {"node": {"oid": "40c088644ac06f9071307fd6aa1c096a0ca7969d", "messageHeadline": "make sure correct props are updated when file contents replaced", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 34, "deletions": 6}}, {"node": {"oid": "29c7e310e815d6615d8fc21a64fb06627d132f18", "messageHeadline": "Merge pull request #750 from Peergos/opt/cryptree-dirs-with-names", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 535, "deletions": 204}}, {"node": {"oid": "a693d9b183c52a5816ec55a81fbda0f4996835e4", "messageHeadline": "Add test for large directory raw cryptree size", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 0}}, {"node": {"oid": "915c67e32a1a2efcf660b6e9a358639eb07bc994", "messageHeadline": "Fix last test failing from new invariant enforcement", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9af7fb5ea3307133777da8c1bf4372cfc89cefd7", "messageHeadline": "optimistic locking - incomplete", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 135, "deletions": 22}}, {"node": {"oid": "a85d92020d90605f9ad4effded0202b554c1be33", "messageHeadline": "Fix last test failing from new invariant enforcement", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "5cb2c7015e890ead7931505527b8c6ffb7ae1699", "messageHeadline": "Global root doesn't have a pointer", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cb948c990456db33c419b9b724ad545a76103ce9", "messageHeadline": "Oops", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "001a0e92c3c8157cc87401a38887ed05b023c30f", "messageHeadline": "Fix a similar issue with a missing writer in a snapshot", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "9a2f48b0799c1aa05906aeee634893b49b8b1818", "messageHeadline": "fix retrieving a parent with a different writer (snapshot was missing\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "b253bd2a4654ea03f8aea91b6aa9235330abdd87", "messageHeadline": "Merge pull request #735 from Peergos/feat/social-feed", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1798, "deletions": 263}}, {"node": {"oid": "02b2714e6bd5c364b01f4c069d100c0bca984c1d", "messageHeadline": "Remove more unnecessary expensive calls to getChildren", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 30}}, {"node": {"oid": "81de134240ba4f1e3b04dcb008f09930e837d8d1", "messageHeadline": "Add benchmark with simulated IO latency.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 134, "deletions": 1}}, {"node": {"oid": "1676ae52275600266418e60a95347f84f57cbbdc", "messageHeadline": "Use optimal getChild call during login", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 51}}, {"node": {"oid": "a70fda234000d81176e49ce61bd8df837dccb35c", "messageHeadline": "Fix getting child of directory we don't have read access to", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "3db6b2ebc529789f0f7719cf7420028111e4b04d", "messageHeadline": "Use correct entry writer when retrieving a child", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "bbbfc340bf577f41674e16fba361e5d737e55ab2", "messageHeadline": "Return correct version of parent in rename", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "470524678d435b93dffa209d5978477a00b7e680", "messageHeadline": "Fix rename", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 10}}, {"node": {"oid": "d478a4e8c0dab402d327d1d0ed316e52bd908abc", "messageHeadline": "Make sure rename corrects name on parent dir link too", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "ea0801b4da81ee7b4fb083b40e2d84515e690550", "messageHeadline": "Use O(1) dir.getchild() implementation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 8}}, {"node": {"oid": "12773e1c0947cacfea42dd4dd84f8d8950e0ed03", "messageHeadline": "First pass at changing cryptree dirs to include child names inline (e\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 232, "deletions": 101}}, {"node": {"oid": "57cc1f75f367ae4391ebb5b8b3d89526af900790", "messageHeadline": "Fix case where we have a read cap to a dir,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 8}}, {"node": {"oid": "1fc5b37191591e5d25ef2bdd8e13556af758976a", "messageHeadline": "Synchronize a few methods", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "76282a6e550f12a35331ecdc921dfa573c2cae4b", "messageHeadline": "Fix another bug in incoming cap cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 6}}, {"node": {"oid": "e3ea0f7138b33a0b95f66e1c05413c667238f7b3", "messageHeadline": "Fix another bug in incoming cap cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "5ae2b64ca37432ea79482e528767b6b83e1c63e0", "messageHeadline": "Make fuzzer default to verifying after every op and improve default l\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 16}}, {"node": {"oid": "eb0cef7f9841d4f1172f5b877651cbfeb2865551", "messageHeadline": "Fix another IncomingCapCache regression", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 5}}, {"node": {"oid": "fb8ed11a383fff7d6ce85862bb1a364474042992", "messageHeadline": "Fix IncomingCapCache behaviour when a parent cap has been revoked", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "221df7ac238dbfbbe9b3e2457731863956dd0ce1", "messageHeadline": "version cbor", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "0fe60cebe0ab3fe0162773d9c91738f49d2d95f6", "messageHeadline": "Fix bug triggered by fuzzer (missing value in snapshot)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 19}}, {"node": {"oid": "122fadab306f8924c77bdeb7ac8f6cb5411099c6", "messageHeadline": "Remove unused methods in CapabilityStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 51}}, {"node": {"oid": "391bcb738f9b60392e9dbe19a0fcb9b9b5b31f14", "messageHeadline": "Genericise util method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 21}}, {"node": {"oid": "d4efb60906803fd883ac046584696ede8eea285b", "messageHeadline": "make static", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "947b2124057fa7d089c7daa7f2cf31b5e0c5dc20", "messageHeadline": "Start new JSUtil class for conversion methods used by JS only", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 2}}, {"node": {"oid": "95e3b77f564ac58bdb7d21fd9b67f13448e3133c", "messageHeadline": "change list to array", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "4f5a75209d6e711ea8fa648cd6e973e6eb38b158", "messageHeadline": "Add midi mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "14e0ee1ae4ed939b47f356b1e7588317009f51ab", "messageHeadline": "Add epub mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "83b4d683f3db6b666f121f5ee37dd59410c5ca89", "messageHeadline": "Add ico mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "73dd4ed0dd7c922a72286fcdcbaa32670be88d6b", "messageHeadline": "Support a few more mimetypes for hosting websites", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "aaede5f1647a093ff5c4c42697d18d746cb7f943", "messageHeadline": "Support mimetypes for hosting websites", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "42c9a788e904747f5bfeb0f987f202d83c80a79e", "messageHeadline": "Support webp mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "c2ea00240675d839f3e480cdb8d93c2669b86133", "messageHeadline": "Add util method for UI to quickly retrieve all shared items for feed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 0}}, {"node": {"oid": "6042501684cde96d1b859f0fb6156b590bb496fd", "messageHeadline": "Merge pull request #749 from Peergos/fix/unnecessary-mime-recalc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 61}}, {"node": {"oid": "4305423bc27f7245636434a31d89513ea74fb6a2", "messageHeadline": "get rid of unnecessary recalculation of mime type during upload", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 55, "deletions": 61}}, {"node": {"oid": "3d558a96f208299a7544a16758d57b2a4b10ee76", "messageHeadline": "Reimplement social feed to not rely on incoming cap cache at all.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 56}}, {"node": {"oid": "69af9a499a9bd0440d050401c913eab55ad59a3c", "messageHeadline": "Extend social feed test to cover interleaved incoming cap cache updates", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 0}}, {"node": {"oid": "2a740ef0d434eaa069ff8380e496d088d4209705", "messageHeadline": "Fix last social feed test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "377fca84fdf34986948e33caab3e5c129d7df518", "messageHeadline": "Handle empty social feed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "2b7b2201da8890c90ce347d843352adbdde97a46", "messageHeadline": "Fix social feed test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "945ba26ccaf1686b3987f6ff3ed7a9554ec270c2", "messageHeadline": "added some failing unit tests", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 137, "deletions": 0}}, {"node": {"oid": "e23aee7947339665ec20dec6211cb673fd489b19", "messageHeadline": "Fix versioned IncomingCapCache.getByPath call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "63c0afca5db6bb3bb9313e8ba97eaf704a868b40", "messageHeadline": "Implement versioned IncomingCapCache.getByPath call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 18}}, {"node": {"oid": "5c972ddbaa7bc8f549a624f0791f3b3f135d6a0d", "messageHeadline": "Fix IncomingCapCache.getChildren usage of version", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "07b69a78fd75e26eea25f6f94262104538cf7ed2", "messageHeadline": "Fix versioned getChildren call on IncomingCapCache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 49}}, {"node": {"oid": "57aba997c01b4926b8e7a5ab9331ffd3f2e264a6", "messageHeadline": "add mimeType for todo", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 45, "deletions": 11}}, {"node": {"oid": "e60c9aad434e8ca7a1122d25eb03fd7da2737b22", "messageHeadline": "Fix friend.getChildren to cover descendants of higher caps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 76, "deletions": 47}}, {"node": {"oid": "3e79ba5171ecbe20a4a9a3da47156056baeb73d5", "messageHeadline": "Fix friend.getByPath to cover descendants of higher caps", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 8}}, {"node": {"oid": "8b1aa5b3f7dd0909c8e570fc95d641e93f5913d4", "messageHeadline": "Testing shared todoBoard", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 16, "deletions": 8}}, {"node": {"oid": "aaf6da16228062fb55fda3a57549afda3bba7278", "messageHeadline": "fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "a6b52a7f14834b83a2aebb170939a0f4a8676484", "messageHeadline": "Fix MultiUserTests.unfollow", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "a4df41d31cc40a852b69ebb61341fba9d95412ea", "messageHeadline": "Use IncomingCapCache in FriendSourcedTrieNode", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 255, "deletions": 146}}, {"node": {"oid": "3a23943d72fad7102183e1453b49a31b0db5ceb6", "messageHeadline": "remove isWritable from TodoBoard serialization", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 21}}, {"node": {"oid": "51a34f8f54e773b0bfddc5732888ec5b0ff6845a", "messageHeadline": "serialization changes", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 49, "deletions": 23}}, {"node": {"oid": "6c32c08a67d9d6ef2fab61188a4577d1fa8d1391", "messageHeadline": "Implement IncominCapCache (not used yet)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 399, "deletions": 119}}, {"node": {"oid": "1fa5223282dd6e67acef502a69d8ab50d2475c89", "messageHeadline": "initial drop", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 483, "deletions": 1}}, {"node": {"oid": "1b63c8361df2b5031551c1ed5b60f38867c22712", "messageHeadline": "Use new mkdirs call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 9}}, {"node": {"oid": "dc285702f39df60689bea3552c4ee8e234910952", "messageHeadline": "Add javadoc for social feed", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "bff1c7fab4bd494985e11d561c3171d3a227f3db", "messageHeadline": "For now don't save retrieved caps until we have a more scalable solution", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "66d39f19b057c6950518641b88fa7d4f5654a37e", "messageHeadline": "expose some social feed methods to JS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "7a5a90a2e9b2624a3af5d0701a3a03e7e2855925", "messageHeadline": "Extend social feed test (it fails now)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "a314425658342292b72fb95184d482f1f3b09701", "messageHeadline": "Fix reading cache of caps shared with us by a friend!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "fe701f898903ec657b8e8a3a4df2589d9dd378aa", "messageHeadline": "More social feed testing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 8}}, {"node": {"oid": "ff85efe4b5153589d587f32c518936b3f044e9e4", "messageHeadline": "Use correct directory for social feed state", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 6}}, {"node": {"oid": "da470922430b5c9cb31ed78b08878e68f066ab56", "messageHeadline": "Social feed implemented and passing first test!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 548, "deletions": 28}}, {"node": {"oid": "a8dc031bd785c54f155317619034b34af4939828", "messageHeadline": "Add comment describing SharedWithCache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "72ce77212b37b6faa0168d9c077cec71d0978964", "messageHeadline": "Implement PeergosBackedStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 280, "deletions": 11}}, {"node": {"oid": "371f4914153b9871000198d9e3cbb4197fc01561", "messageHeadline": "Merge pull request #747 from Peergos/opt/reduce-js-size", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 238, "deletions": 280}}, {"node": {"oid": "3debcc8b50a537c2c9535471a8902ec4f375b13c", "messageHeadline": "Add comment for reducing JS cross compilation size by 3X", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "174474fd7b17b97cf2b12e68f70b9ea011f19e2d", "messageHeadline": "Add missing default args for self hosting", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "a84cf35bf7668b4397d21a9c70a1d0d218d3e73d", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e079cfb44dd5ee61a7fa6be94ac3c0f045f72a95", "messageHeadline": "Improve naming of moved methods", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 45}}, {"node": {"oid": "0a46d1c27052e9eb98998b8827a141c842feb9b2", "messageHeadline": "Merge pull request #746 from Peergos/upgrade/ipfs-v0.7.0", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 45}}, {"node": {"oid": "4b71270680eb12acace981c05cbc7a3e844b2af1", "messageHeadline": "Fix tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "cb93afe9829277e2c13ad45ea9d61bcfe654f60b", "messageHeadline": "Move Java impl of crypto to server package", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 123, "deletions": 148}}, {"node": {"oid": "8bd067ba76917cdb1ded156175beffff5f672dd3", "messageHeadline": "Remove Java impl of Scrypt from cross compilation to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 121, "deletions": 137}}, {"node": {"oid": "e4e5b9963f8163ad91d4f52011fede4bff381ccd", "messageHeadline": "Fix another peer id decode", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e22e4b999017a0a7d96c4183fffd2ec907e1ce2f", "messageHeadline": "Fix peer id parsing in 2 more places.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "f715b84341a26cc4e737856554809417543805c8", "messageHeadline": "Commit to using cidv1 for peer ids everywhere", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 25}}, {"node": {"oid": "2365083aa224e5c992958924b00dc9b902ca36a1", "messageHeadline": "Fix other ipfs id call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "ef062cc6e2fcf73e3ddc4e697400b41a3efe6241", "messageHeadline": "Fix breaking change in node IDs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 1}}, {"node": {"oid": "c949d1447df8114430a7aab622e762592e5d58bd", "messageHeadline": "Fix S3 plugin", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "797d64dabc6e25e75144870e7a44e8901c09d1fb", "messageHeadline": "Update to ipfs v0.7.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 26}}, {"node": {"oid": "5e3c0decab5cabe8880b87c97ee6077b0100853f", "messageHeadline": "Fix logic in server messages command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ea0249e30f02cea22e02dc3451a34e95b708e645", "messageHeadline": "Change uptodate to active", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "aa766db1c7ec6e89e50e272121258a8e5f344b4a", "messageHeadline": "Merge pull request #745 from Peergos/feat/server-message-util", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 440, "deletions": 340}}, {"node": {"oid": "cbe651e86e4e9ae7f0930a9594ef37f351898c31", "messageHeadline": "Typo", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "72d4dadcbace212becdb5c0e352187461446f12d", "messageHeadline": "improve logic in uptodate users command", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c86682b715a8825a6b9a2f929df3084703110f73", "messageHeadline": "Add two util commands to list all the new/uptodate users re messages \u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 14}}, {"node": {"oid": "71bab689f5f413351f00827f9f9d89298d443315", "messageHeadline": "Refactor Main into Builder and ServerMessages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 396, "deletions": 340}}, {"node": {"oid": "9ca52cbf595f3005f96f8f708df93f899d07bad4", "messageHeadline": "Merge pull request #744 from jandom/documentation/installation-on-macos", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "1b79b07fa0016c151dadc37960873e4cede5cc28", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e43e5ed25afba9bd876df0f133acee6f4a923aae", "messageHeadline": "Document installation on macOS", "author": {"name": "Jan Domanski", "email": "jandom@gmail.com", "user": {"login": "jandom"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "01f17d94c6f1bb3756cb650edc4c3b6d3a04a7fb", "messageHeadline": "Merge pull request #743 from Peergos/feat/ical-mimetype", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "2659fbac8d1168bfff9a8a613b28d3acebfc468d", "messageHeadline": "Add calendar mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "3c3c1cb88c21cd049c538c4be5058cfff7adf4bf", "messageHeadline": "Merge pull request #741 from Peergos/feat/inode-filesystem", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 946, "deletions": 94}}, {"node": {"oid": "062a1548cd0b5ca94f17163af76eb8618a3d3a1b", "messageHeadline": "Update WriterData docs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "019dd790c50abc3d835a09b946b231c69f2b63e6", "messageHeadline": "Change inode filesystem to use a universal root", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 10}}, {"node": {"oid": "d0cba7ea2e03ca31bb68a52755998acd99454965", "messageHeadline": "Expand inode filesystem test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "cb8affff44064ad3ea16bb16461f5c33ec7dd2d0", "messageHeadline": "Recognise mp4 audio mimetype", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "5ab04f39cfa324ba07b1f3880b155d1961bb81e0", "messageHeadline": "Use the new Inode filesystem instead of the old public cap champ", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 31}}, {"node": {"oid": "6429285712b8c1346ac10784b43e191ec0d569c1", "messageHeadline": "Implement InodeFilesystem.remove", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 154, "deletions": 17}}, {"node": {"oid": "3efde997e466aef3e149010f89ab3b237a796390", "messageHeadline": "Improve inode filesystem test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "a2b9344c3d7ffe781b56d8d659823a8a18839432", "messageHeadline": "fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4dd8bbe3198c9d1eeb5f145fa0dd288ec74e1617", "messageHeadline": "Implement an inode based filesystem.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 754, "deletions": 67}}, {"node": {"oid": "f7ec5a48489a1249f358844221ece03408dc50c9", "messageHeadline": "Merge pull request #739 from Peergos/feat/champ-generalization", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 347, "deletions": 329}}, {"node": {"oid": "ceb7903b05348177f1f3f6315a3dcd655f6fff2f", "messageHeadline": "Merge pull request #740 from Peergos/fix/following-state-machine", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 92, "deletions": 35}}, {"node": {"oid": "046c667fd2c80f0642e2bbb1dca5da83be78064e", "messageHeadline": "Test more transitions in following state machine", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 1}}, {"node": {"oid": "47e0ecdd40e57024712aae079c75b840c5d7bd3a", "messageHeadline": "Fix more transitions in following state machine", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 18}}, {"node": {"oid": "b243d4f18c797b10bd0f3a5d80ccd36bf72708e6", "messageHeadline": "Fix following state machine to allow going from unidirectional", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 17}}, {"node": {"oid": "0be378a4870c7589319aab35c63b069613a02de3", "messageHeadline": "Generalize CHAMP to allow any cborable value", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 347, "deletions": 329}}, {"node": {"oid": "13b95a299e212c20905c0dc516811a6c26f73ce0", "messageHeadline": "Restrict a few more usernames for potential future interoperability", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "b383d88c2b94fb8693f9e8bcf92d2629453f0e74", "messageHeadline": "Merge pull request #738 from Peergos/log/reduce-log-spam", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 26}}, {"node": {"oid": "f771d38f54c8fe5df300e207bfe93b6b1bacaca5", "messageHeadline": "Further reduce log spam for CLI commands", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 26}}, {"node": {"oid": "da7dcf7590c3207f9fe64206fd8f7a1e28a08bb7", "messageHeadline": "Reduce log spam for CLI commands", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "0f4e2438217c43dbb500352f4b403323ed630136", "messageHeadline": "Merge pull request #737 from Peergos/feat/refactor-service-construction", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 98}}, {"node": {"oid": "c94d6d265b4e2f800ca6e3d8d8f64ba86328de9a", "messageHeadline": "Refactor service construction.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 98}}, {"node": {"oid": "cf007a849e9bce47e7a531a18a2a1feef02d3717", "messageHeadline": "don't show start of body in message CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "53857c845e6af5fcc3ef205326405144b18a1782", "messageHeadline": "Reduce log spam", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "94127d1ac3f593e620973a91d44aa412cb0dd38e", "messageHeadline": "Merge pull request #736 from Peergos/feat/threaded-cli-messages", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "79746c9aa08420d4fc8148e3e48d0eb7564a5eba", "messageHeadline": "Thread the messages to/from a user on the CLI", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "d877243b590a6171d2362a18b29b9d95bd19f88a", "messageHeadline": "Merge pull request #734 from Peergos/feat/create-new-file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "2e534ba04204ec7d8d68883c99bfa7a590340e47", "messageHeadline": "in support of create new file feature", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "19ae6550fb9fae7c4a4efdc5be793c951d5d67df", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "d0f802b343ca0c6e23efbe498a6206c36101a44c", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "e8c12b06704118671b9ade34a5131c9a3beff4d7", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 16}}, {"node": {"oid": "371125bad315c2095310bbb975d870a99600f189", "messageHeadline": "Allow a small number of password changes to not be rate limited", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 12}}, {"node": {"oid": "ed3143681f2d4ac2f29b7857a0719f08af8d429a", "messageHeadline": "Fix counter", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "abec3a0726bc08dd3cd3f8fe8f4439286e74d4e3", "messageHeadline": "Add counter for non-local block gets", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "748eac33395b2337683e031f30632b2f22cae193", "messageHeadline": "Merge pull request #733 from Peergos/fix/proof-of-work", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 461, "deletions": 66}}, {"node": {"oid": "807b7479e69ca70dc691dfdcbb5c2870a9faa7af", "messageHeadline": "Increase test signup limit", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8f3435b753026da183152cb99bbc996a4d4a03da", "messageHeadline": "Use difficulty derivation based on analytic derivation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "2aad3df437fee812b16fd949e64c706c8763cf91", "messageHeadline": "Add new (failing test) simulating different hardware strengths", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 1}}, {"node": {"oid": "054fc593864b0daa13950f7cebfbc169ca916359", "messageHeadline": "Don't unnecessarily call update in mirror core node when more proof o\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "1ee7862527b39e376b0779d78cc9e043260d97f8", "messageHeadline": "Remove incorrect commit in tofu core node", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "5abbbddd88b7e23714345f75d62684a71a938c4d", "messageHeadline": "Javadoc proof of work verification method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "dada2f914338b2f1151bd0cfca63b82031acd310", "messageHeadline": "Describe DifficultyGenerator", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "514296cf6b6e1180a32726ac0038bf445a0524a8", "messageHeadline": "Choose a better difficulty calculation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 7}}, {"node": {"oid": "6b7969e21c7b5cbec811ce0204d11c621c855c54", "messageHeadline": "Make sure calculate difficulty is a pure function", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 9}}, {"node": {"oid": "4dc3d9f968a4a1449b5cb6262271404241bca2b4", "messageHeadline": "Log rejected requests with insufficient proof of work", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "15c415a979f3debb40de7d29f8f13fbbe618ae15", "messageHeadline": "First attempt at difficulty calculation using rate monitor", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 99, "deletions": 17}}, {"node": {"oid": "f27e50d965b4162209284199367e563b71e2c134", "messageHeadline": "Implement a *glorious* rate monitor for pki updates.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 3}}, {"node": {"oid": "47e98a7906ddfd7fbf961736c16c869e7198e263", "messageHeadline": "Change Corenode.updateChain signature to optionally return required d\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 79, "deletions": 41}}, {"node": {"oid": "83798547760cf7a82bca3c5c2d791d7ed64ca767", "messageHeadline": "Enforce proof of work during signup and password change.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 47}}, {"node": {"oid": "5b519330281111d877ce884b63b3a4e594202355", "messageHeadline": "Initial Java implementation of proof of work", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 99, "deletions": 2}}, {"node": {"oid": "7987d878657ff167709822ba3c33a7d554624b78", "messageHeadline": "Merge pull request #732 from Peergos/opt/chunk-fragment-numerology", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 116, "deletions": 24}}, {"node": {"oid": "c83a81a0590566366f01e8d4e40cb52e68fb238b", "messageHeadline": "Add stricter test for dir and small file indistinguishability", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 0}}, {"node": {"oid": "a07efb8d37d415cbbcc26b016b430901150280df", "messageHeadline": "Fix progress monitor", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "d2e15e20d9810de4dc2e56ea1df0ecef2c667911", "messageHeadline": "correct comment", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f0983939c29f948a244afb02c059de6ad594a75d", "messageHeadline": "Clean up fragment count and alignment", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 23}}, {"node": {"oid": "9e0050fe1888e4061af79c172950539b19f1aadd", "messageHeadline": "Fix case where we were ignoring headers in direct S3 gets", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ed0d4b1962d0918e2d608473d9fafafd75fdd16a", "messageHeadline": "Merge pull request #731 from Peergos/fix/s3-get-use-headers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 6}}, {"node": {"oid": "2ea3c844212c715b56507685e4fe2719405214ae", "messageHeadline": "dedupe code", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "d5cc3542bb3d1058416ed25c10f92cf655cdc75c", "messageHeadline": "dedupe code", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 8}}, {"node": {"oid": "71fb9856214f9b851a475cad28eb586600c10693", "messageHeadline": "Make S3 GETs and HEADs use headers for auth.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 4}}, {"node": {"oid": "9e031c308abd3942bf0642288f01817d7380cd7a", "messageHeadline": "Merge pull request #730 from Peergos/msg/deleted-user-error", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 13}}, {"node": {"oid": "9ad4888c87b31e99c25c280311e51a5145a038cd", "messageHeadline": "Fix usage test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "87ae2518ada6f6b273057504c3422e7c076ad8d6", "messageHeadline": "improve test fialure error message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "93f10f463bc7296600a4cf15e70ba24a9f1cc6a9", "messageHeadline": "reduce log spam", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "b5b37b0d93fc82a8cc8fa2e70321fa508d3ad90c", "messageHeadline": "Improve error message when logging in as an unknown username", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "fd9ec99e33f0d9b4c0f9472c3630f1ed68a42b1e", "messageHeadline": "Give a useful error message if someone attempts to login as a deleted\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 10}}, {"node": {"oid": "d3cd9fa93df42a247bee132bb70740c387240655", "messageHeadline": "Add util to validate a user", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 0}}, {"node": {"oid": "46060d91f6b03541a163738e19b8aef2880f47b3", "messageHeadline": "Log S3 errors that aren't key not found errors", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 3}}, {"node": {"oid": "a7fce6c7ce473176e4d9f87c40bf6ceaeedc3a61", "messageHeadline": "Remove default s3 folder arg value", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6dfba1423745a8a28ff6545031cae9e950c0dcf5", "messageHeadline": "Reduce log spam when space usage hasn't changed for a user", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "8a9780c2cad41847796ecc9d8bd89cec9aa13f88", "messageHeadline": "Merge pull request #729 from Peergos/fix/login-without-renewal", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 8}}, {"node": {"oid": "e3f7c21d551a35dfb816abebc0d8b0b2c44be446", "messageHeadline": "Fix tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "5fb195f0d59afa64dfcc7076c6e85b77779bfeca", "messageHeadline": "Merge pull request #728 from Peergos/feat/get-message-replies", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 5}}, {"node": {"oid": "b2019b87d75b992b93f1aa084e8e5a93e13e1bdd", "messageHeadline": "Expose method to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "4086760e8499f9f6b63bc43df9d04c597799fc72", "messageHeadline": "Don't try and renew username claims during login.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "9722c29181e4a5092add39ba7aa5e63e2e0c0a42", "messageHeadline": "Add command to log replies to messages from users", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 5}}, {"node": {"oid": "afb6c0d4cf76a7129f3f444ef526df272154fbe5", "messageHeadline": "Fix sub command parsing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 11}}, {"node": {"oid": "1a355fdda2088e39e7c89262a7d4d387ff339cc9", "messageHeadline": "Merge pull request #727 from Peergos/fix/secret-link-svr-msg-bug", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "8da8838c19e73a2b61617f8ad68e8aed98bfb8fc", "messageHeadline": "handle case where a user navigates to a secret link. There are no ser\u2026", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "62d39608d738a646b6632b1bf17f45e03d7336bd", "messageHeadline": "Log progress during usage recalculation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "981e718ed9816b52a9fe512d9ac958934cb0c3c8", "messageHeadline": "Merge pull request #725 from Peergos/fix/use-config-file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 130, "deletions": 54}}, {"node": {"oid": "1157cc9dda06c2b188a816f559533560149456c2", "messageHeadline": "Only init TLS if we will use it", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "2bda99a83df2975d62f6e576fa7d23ab1bbe6315", "messageHeadline": "Don't overwrite config file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "b247b1bd075a6605b4facff43eb47bc40a5d2f9e", "messageHeadline": "Merge pull request #726 from Peergos/update/multiaddr", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 170, "deletions": 27}}, {"node": {"oid": "f9937e6e7351791b7899cdf2b3112e8864a92311", "messageHeadline": "fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b1102dd540c3dab4193fe3ee167156386a5c3e03", "messageHeadline": "Update multiaddress to support onionv3 and i2p garlic addresses", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 170, "deletions": 27}}, {"node": {"oid": "f0e966e3e3f9b5d97d8abbf7e2079df6160c0e0f", "messageHeadline": "Fix multinode tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "d4933e5058fe6661651cbc982020e63903629427", "messageHeadline": "Remove last auto-added s3 arg", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "05248b9429eb9ed6b771458b7809d637008b074c", "messageHeadline": "Fix bits that relied on mutating Args", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 17}}, {"node": {"oid": "795d7a78edc9c7330ff83fe034922fe1e43df76e", "messageHeadline": "Fix parsing of commands", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 7}}, {"node": {"oid": "1218494795a6f6e074a67dbcdb715ea01207eff6", "messageHeadline": "Clean up Args", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 29}}, {"node": {"oid": "23181ee3757594608832b9ff3b867cee4793d7c6", "messageHeadline": "Only save args to file when running daemon/pki commands", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "3de977fe3e0fbf0ef4bcf9ce082b2198771a0029", "messageHeadline": "Add default config name", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7207367304dd23391a40952b19bf8801dc80beb8", "messageHeadline": "Handle absent config", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "0dabeb14bfbf3279af7e92890b4951a20b67769b", "messageHeadline": "Use config file by default, and save any args to it.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 6}}, {"node": {"oid": "557951e03c694ec3e1b81f6e7674d5d304f5de95", "messageHeadline": "Add helpful summary() method to ServerMessage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "28eee2779478e42e22c60b72a10bc9fc67c9b085", "messageHeadline": "better log message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "ea884da0ef14d7f26cdaca3dd1b184ff055c7beb", "messageHeadline": "Add option for sending a message from a file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "3e4b9eb97d8e50e052b069001d96b6ace45a8d84", "messageHeadline": "Fix stat sorting", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "a59c888280c87856bac2d75a0b8aedbbde6bb1eb", "messageHeadline": "Merge pull request #724 from Peergos/fix/minimal-varint", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 3}}, {"node": {"oid": "d4016657cc61880cf8b9c1697d329102833018a1", "messageHeadline": "Shutdown pool", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "8a1a6d27b0432f92e9a9df85bf33f983fcad1903", "messageHeadline": "Speed up stats", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "caa6d999042f28be6a89256176d617aea1c5ca83", "messageHeadline": "Enforce minimal varint encoding", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 1}}, {"node": {"oid": "0d119932b14682886f69005f69dd4f3c4fb461ce", "messageHeadline": "Merge pull request #723 from Peergos/opt/max-fragment-size", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "3e8dc744d389b51d9177b131b88fc8cae06819b8", "messageHeadline": "Increase max fragment size from 128 KiB to 512 KiB.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "42baf0278f30a315dde1ffbf6e5036c225fccbc7", "messageHeadline": "Unit test for sharing state in secret links", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "d8ceaadbaf9d7e21fc627cb5935e469d3b2b4a10", "messageHeadline": "Merge pull request #722 from Peergos/fix/secret-link-fix", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "1f3de79a47824ce81cfe1b85ea3df45def1b846a", "messageHeadline": "handle case where we are a user who has received a link.", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "db25ed0bbff2de4836dcdbd97b8b7775bc9bffe6", "messageHeadline": "Remove incorrect test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 9}}, {"node": {"oid": "5c62c5749365615ef71ea0e1444741f3df2be04a", "messageHeadline": "Merge pull request #710 from Peergos/feat/upgrade-feedback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 769, "deletions": 118}}, {"node": {"oid": "0de44cec46cbe5722136e26d1bc41f30ca35d24d", "messageHeadline": "Merge pull request #720 from Peergos/fix/outbound-sharing-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1025, "deletions": 519}}, {"node": {"oid": "d421ed4002f231557843ace25be405203ef7b370", "messageHeadline": "Fix sharing from home dir", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "332b36744ef66f0e62879122e5e2be3c067a9a2f", "messageHeadline": "short circuit empty write access grant", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "86a8460325961fa49a9108b59d7f295d452d8017", "messageHeadline": "Fix writable secret link construction", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "40ed8cefe6538f75c697e20346b704c89ff5a561", "messageHeadline": "Handle getting sharing state for global root and home dirs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "1eeb2074e63e0772f2a6aa4dce83692d615bdff0", "messageHeadline": "test renaming a shared folder", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 0}}, {"node": {"oid": "c3cfef734dd32e1dac5a541a20bd79f407d36b81", "messageHeadline": "Improve shared-with-cache.remove", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 1}}, {"node": {"oid": "a33b1c0fc9a48a7efef977aee82d7083872299cc", "messageHeadline": "Move Path utility methods", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 41, "deletions": 13}}, {"node": {"oid": "4de22ba9d791b8a6f4981a080d5c335bc218abed", "messageHeadline": "Handle no readers/writers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "54a4507adad995e4c4c201dfdb6b1b7794052269", "messageHeadline": "more Path methods", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 20, "deletions": 1}}, {"node": {"oid": "47bf1e26b55a76aa669b8766f2f9eb48366696ef", "messageHeadline": "implement getFilename", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "e4d76249b364fe468579eade13c1ebaac6e90088", "messageHeadline": "fix nameCount bug", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "cc018e60c474cd20d33a3b065d137cf097b41e73", "messageHeadline": "updates to support UI", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 30, "deletions": 5}}, {"node": {"oid": "12371e85f4da81e87f98770f1100515941a265f0", "messageHeadline": "Fix path split in shared with cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "aa48b61182d325fc3d795ef92b5f86d516f504de", "messageHeadline": "Ban empty file/dir names", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "dde34e9dbc3a79b880fa1c02adc9aef0febeff82", "messageHeadline": "Make sure keystore is a hidden file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "bac8578c38251369ff27074ba2bc3ec30c8754e5", "messageHeadline": "Make sure we don't nest tofu core nodes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "00d4fa2658a6c83d0e92fbedb2d932ebb1526ef4", "messageHeadline": "Constant time log in", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 84}}, {"node": {"oid": "1c6830bf33ada21d7089d009ec6f1fc209cc1cdd", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4d6a88101c59987844aa2b633e8dcdcdfec790dc", "messageHeadline": "Speed up cap cache store accesses, and navigation to friend's files.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 93, "deletions": 97}}, {"node": {"oid": "b120c52f3c7a20dd4088c81a9a60877743f63ea3", "messageHeadline": "Remove Path.toFile usage in client", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "e89115e22208df4f7001b4f03cc3fb4b6aaafc77", "messageHeadline": "Add helper method for UIs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "c69850784d775c6522900fb19e5f0dd976ec0fc2", "messageHeadline": "Add helper method for JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "5ad12bb52ceda417a0aa9155fb8314e07e7c0988", "messageHeadline": "Expose Paths.get to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "77d3684da798fab821fbc70bc599953719086b3d", "messageHeadline": "Simplify method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 16}}, {"node": {"oid": "069be2311d60fefe31e6ec1a9eea390e0a76e369", "messageHeadline": "Fix bug in truncate which was causing error in shared-with cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "81865dd4a3ebc438343fa3cbecb48220c9ed3ba1", "messageHeadline": "Simplify test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 39}}, {"node": {"oid": "bfb8e6508ffc341057e67c87a994234798edd0e2", "messageHeadline": "remove dead code", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "ef9eabdd936804c4d238966dd768e78e47930edd", "messageHeadline": "Fix recursive retrieval of shared-with", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "4fbcfb0b98c0677fea51a827f343d57caa1f8119", "messageHeadline": "Fix renaming's interactions with sharedwith cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 10}}, {"node": {"oid": "9c82821da63fb4fa3087558ed303554fd92d222a", "messageHeadline": "Add initializer to build shared-with cache from outbound shares", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 1}}, {"node": {"oid": "a9a1380dd47b2c68773ff3544894b5df1a9e0427", "messageHeadline": "Fix path resolve issue with absolute paths", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "b15c41418138a4e6b1e711fde2c3adfa0569892c", "messageHeadline": "Fix path npe", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2fce5c2d2b1681809c0721a05c1fc39528432248", "messageHeadline": "Refactor and fix sharedwith cache root", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 179, "deletions": 162}}, {"node": {"oid": "7a9b3dc73bfd49088f7b054043372b00b19049ed", "messageHeadline": "Total rewrite of sharedwith cache", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 450, "deletions": 268}}, {"node": {"oid": "87c361a85440289d4bc0c8134f0647cf3eeb8249", "messageHeadline": "Extend login benchmark to illustrate problem with sharedWith cache ca\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 6}}, {"node": {"oid": "b8c6cca7de21111131924352b272ed9553f19b6a", "messageHeadline": "Start caching caps that we have shared for sharedWith cache.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 43}}, {"node": {"oid": "ec971039ea0ced81c8b969e2cc74307672b1405d", "messageHeadline": "Merge pull request #721 from Peergos/feat/print_junit_failures", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "06c023b559c6c44aed5dd6911c9bc5ce8ad262ce", "messageHeadline": "also print failures when parsing junit  logs", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "14c6f5c17a0a0ba4cfa2d9fefac73ef50da17875", "messageHeadline": "Merge pull request #719 from Peergos/fix/overwrite-file-fix", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 8}}, {"node": {"oid": "9cfc75c40d0a5cc0373485d04ba769c776b03f16", "messageHeadline": "changed then flow", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "787bafaa39dedab4969897c29ce917c2ee778ed7", "messageHeadline": "review fixes", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 7}}, {"node": {"oid": "9cb7695439f485d2fdb1b635aeae53e84c9790ca", "messageHeadline": "make sure to call clean inside overwriteFileJS", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 35, "deletions": 4}}, {"node": {"oid": "173d9f9454f05ce63936a2a1575ff026b38a4a56", "messageHeadline": "Fix rename", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c01bbc6c8c28da4f65540ffe854aba9f94074ab7", "messageHeadline": "rename var", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "2bb5de47f8c31158ef016778421cf2b6a7900b12", "messageHeadline": "Add rate lmiting for server messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 1}}, {"node": {"oid": "e1f5f32a361ae8a6014b72faef1a50a1ecec947d", "messageHeadline": "Fix test for server messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 19}}, {"node": {"oid": "c4d868c19f1a305209d273faa4edfa820357c9cd", "messageHeadline": "Limit message size", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "f0ae5deaa38bf53bf50a4c09baa662f7eefdce68", "messageHeadline": "Improve server message dismissal", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 19}}, {"node": {"oid": "3eee3c160abeb467ff0965813c5f642a277a5935", "messageHeadline": "Improve server message dismissal", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 20}}, {"node": {"oid": "b38917a8a27507a1cfa0c5b81c561bbf963e1b10", "messageHeadline": "Fix dismissing server messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "adac50a7f8a069a8a58a14ec56c8327b4dee91c9", "messageHeadline": "add getter method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "9df00b0b6d9dc5d7e95bfed52f113eed839b746f", "messageHeadline": "Don't auto follow \"peergos\" user.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 22}}, {"node": {"oid": "9992fab02d451d7821d4d7fb2eac51f1b99d18b9", "messageHeadline": "Fix printing server messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4d13f67b8259c1107821705e66e44a221f7cec0c", "messageHeadline": "Add CLI for server operators to message users of their server", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 0}}, {"node": {"oid": "769f3005dadd6e0298e1c2dc5119b1aaabf6ee76", "messageHeadline": "add getter", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "2d320813b9c0d2bbace79e45c990ea04c313a58b", "messageHeadline": "add getContents method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "e77862e529de095208a3e849fa6884adb4b4d0ed", "messageHeadline": "Add concept of ServerConversation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 0}}, {"node": {"oid": "ba66724f91c962925ba928e24e2fcf8e68c7ac42", "messageHeadline": "Add prior id to server message.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 11}}, {"node": {"oid": "b4c37cd9145f07ca4e5d0a246e675b0ea937f2ff", "messageHeadline": "Test replying to server message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "5b34c55a38d02a1cf904f5e158898ae048a39311", "messageHeadline": "Fix http path verification for server messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "4285adecd3163df943bce498d5d06bb5ef7374a9", "messageHeadline": "Test dismissing a server message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "5da257c0b66c4bed0b877354fe89d6d4eed9dd8c", "messageHeadline": "Fixes for server messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 19}}, {"node": {"oid": "72198273937f0825da4e96d8e34b9de258d10850", "messageHeadline": "Initial implementation of server messages", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 514, "deletions": 79}}, {"node": {"oid": "079a7bc8cb2a2995b792da038b765a50f15b20d4", "messageHeadline": "WIP", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 70, "deletions": 60}}, {"node": {"oid": "744df39d8d515e28ff3650060915d126981b606e", "messageHeadline": "Merge pull request #717 from Peergos/test/benchmark-and-testable-gc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 466, "deletions": 260}}, {"node": {"oid": "34fc28f9af18f66101c5abf805212c7f7ec95cbc", "messageHeadline": "Make sure pki mirror champ is also 'pinned' via the pki key", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 16}}, {"node": {"oid": "45a46b626065ae0a8c7a2aa5e7890ca2fbf7801c", "messageHeadline": "Rename method, add javadoc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 8}}, {"node": {"oid": "7c949b97d09ef03ac5269d6e4cd2fa492fec43bf", "messageHeadline": "Force a GC before every multinode test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "f08c0943efb1b222bd4378c843e5fcf66a9de79b", "messageHeadline": "Improve logging", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "67c2a8d871705b7e29794bab76c3dbf7c377e982", "messageHeadline": "Make sure ant fails on test error", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "90362f1c200dd337450b52e02ac40dbaccb0d675", "messageHeadline": "Whoops", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b058c912aadb9d567eaee511fb0b176bef0cae5a", "messageHeadline": "Only enable gc, even in tests, if it is requested", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "5f07e222ceafd7da237b036a21146b24e06f9d53", "messageHeadline": "Fix test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "aa4ed3acb1a64fecb606931778cef13884a9a269", "messageHeadline": "Make transactions in ramstorage threadsafe", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "94763aff680a206c78bf2acce9ff0a0e361d931a", "messageHeadline": "Allow GC for the non ipfs file blockstore used in tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "12bd8bb0325bf7e611b8820bba48b0f86662c653", "messageHeadline": "Actually implement transactions for ipfs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 5}}, {"node": {"oid": "81f40ef2ab6b2249aa23952bc49ba522b4abf455", "messageHeadline": "Run a GC every minute in tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 188}}, {"node": {"oid": "303341d1f602ace8f8c92abcc0edd090886830b9", "messageHeadline": "Add ipfs operations block.rm and refs.local", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 16}}, {"node": {"oid": "6f9b146519c0b1b8e000d02f8907872230da999b", "messageHeadline": "Make RamStorage also able to GC, and support transactions.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 6}}, {"node": {"oid": "ae0148d7ad12f83c914bac82d4390b7fdae72275", "messageHeadline": "Simplify garbage collect signature", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 3}}, {"node": {"oid": "2f3d956b2a801d0e92f82411a37e558c03edb96f", "messageHeadline": "Make GC storage agnostic", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 280, "deletions": 213}}, {"node": {"oid": "550dfeb7dcacf95eacbeb5fe0fb42f6bec5324d7", "messageHeadline": "Implement benchmark testing login time with many friend and shares", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 69, "deletions": 4}}, {"node": {"oid": "9058f8c57c19b53332442ff8a419442c6c0d51d2", "messageHeadline": "Merge pull request #718 from Peergos/feat/print_errors_with_exit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "97a54d062772b61b2cb08bd29a59bf2f96ac37c9", "messageHeadline": "[print_errors_with_exit] force exit status, add docs", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "18ce39e0a392d8d987d02a043a487138070534a8", "messageHeadline": "Merge pull request #716 from Peergos/fix/catch-failed-decryption-error", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 8}}, {"node": {"oid": "dd56898c5a36071a69c7d8c138c7eda65d6496bc", "messageHeadline": "Added error handling to retrieveEntryPoint method to catch possible I\u2026", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 13, "deletions": 8}}, {"node": {"oid": "93bb17ff8e05ac3f2ec4d048dd33da0c66b611bc", "messageHeadline": "Merge pull request #714 from Peergos/opt/login-filetree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 7}}, {"node": {"oid": "f2848fee33a045531f486f387578f681960eff5e", "messageHeadline": "Merge pull request #705 from Peergos/fix/simulator-shared-file-rw", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 196, "deletions": 81}}, {"node": {"oid": "2690bea3d784ac9cf958315030f01ceee491cbbf", "messageHeadline": "Ensure we build our friend sourced entrie nodes in parallel during login", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 7}}, {"node": {"oid": "af1a47cb405de709617d8a06286bac52f050f154", "messageHeadline": "Add extra logging to time login", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "771cc49d9606457f51bb3b76855907f06a641947", "messageHeadline": "Expand log statement", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d58907754ebbb8bb8a2a877fc991ab7807e246a6", "messageHeadline": "Merge pull request #713 from Peergos/fix/s3-error-fallback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 21}}, {"node": {"oid": "55cf70ef36d2a1ee06b857f479cb48fae1521714", "messageHeadline": "Handle 404s correctly with DirectS3Storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 3}}, {"node": {"oid": "f2bdc4f337736b19d0fd3f2f20208951719f7cc8", "messageHeadline": "Don't retry gets that returned 404", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 1}}, {"node": {"oid": "123ecfa68f382a772b707511709a6b83e5759978", "messageHeadline": "rework read shared file/dir", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "3cdaa1ffea9b3596ff5abc1de36febab062ae773", "messageHeadline": "Simplify RetryStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 17}}, {"node": {"oid": "a8f63068f7468324a47e641b60705fcd3828d42a", "messageHeadline": "Fix conversion of legacy identity hash to directly inlined data", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8ce7b295ced95b6e6aec16f9ada5318d7c678aba", "messageHeadline": "Merge pull request #711 from Peergos/feat/remove-identity-multihash-i\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 22}}, {"node": {"oid": "8dd7a0d69401b10469e65de4d35256cc999c16d8", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "4a999b57065bd62fa738c4501e5f2ddc5d36cf2d", "messageHeadline": "Use a better scheme for removing identity hash inlining.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 22}}, {"node": {"oid": "4550c077cf29e8184156024dfc5f3d9ead844db6", "messageHeadline": "typos", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4127ac1deb59928a1c36a26e4b425e91de085de9", "messageHeadline": "Clean up API to prevent accidental invalid usage of identity multihashes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "6af4f59e02d292be592b0f410fe0b74a1bf8be4e", "messageHeadline": "Make sure we use identity multihashes for public boxing keys!", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "83ba460c191370f4790c45e412e1d7d86725022f", "messageHeadline": "Stop using identity multihashes to inline blocks.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 6}}, {"node": {"oid": "f9e3940b7de70b904caa37ea7cf275895f27ba8e", "messageHeadline": "better log message", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ab876c811845be945255bad9e78bead0b70e3034", "messageHeadline": "tidy up equals call", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e3370fbe08e6bd0b1a0d9f6669e3316194225a96", "messageHeadline": "list -> set", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 12}}, {"node": {"oid": "f1b529559fb5f6a3c1ea4ebc0a861d66ce6c079d", "messageHeadline": "Merge pull request #709 from Peergos/feat/multibase-36-and-64", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 1}}, {"node": {"oid": "4b952014606cbae48afbbe6a7bbac4f9b65fd151", "messageHeadline": "Include base 36 and base 64 in multibase", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 1}}, {"node": {"oid": "984b22bfc15ac2f1f23d6ad47b5842efb7c294c9", "messageHeadline": "Merge pull request #708 from Peergos/fix/mp3-thumbnail-null-check", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 11}}, {"node": {"oid": "5cdecf9e158e482729c1428898b846b8fd48e56b", "messageHeadline": "another exception handler", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "b5e236540d81ca731e57b5e233ffa66144203e3a", "messageHeadline": "Make more robust", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "1d5fbc10cddc2dbde73452e3534e1e35f1bd344e", "messageHeadline": "handle case where mp3 thumbnail cannot be extracted", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 8}}, {"node": {"oid": "dce2c1658f7c2cb838327d9053467cf6d2a889a5", "messageHeadline": "Merge pull request #707 from Peergos/feat/print-test-errors", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "d384beea79a0ca64e881625fcf133918c8265f79", "messageHeadline": "Fix ant error logging", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "4e201254c12b9d68c7dcbe3e56d331ef1ba0d028", "messageHeadline": "Test logging failed tests on github", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "98d6a7815afe0fecb98c79e8264198adeb880cdc", "messageHeadline": "[print-test-errors]", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "a5640b60b8948d8e8461ccd877508d678e07bc02", "messageHeadline": "Merge pull request #706 from Peergos/fix/truncate-bug", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 176, "deletions": 111}}, {"node": {"oid": "5e1969f05428beea9cc2a14916cffe1bd3ba99e6", "messageHeadline": "I give up trying to only print failed test cases.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "d490bbc7c8eaa99d6f2fc1d4836e8f231fad98a2", "messageHeadline": "Don't create massive test logs on github", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "faad7ff783fa83e5724b767aeaee0f999dc6085a", "messageHeadline": "whoops", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "a8be6a614e5df652f3e2083aa74ca99c1a9c0d6a", "messageHeadline": "Log more info for failed testcases for github", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "10cc32d0d2aec58e6d7a636f4c5478b509825f77", "messageHeadline": "Don't duplicate usernames in tests.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 9}}, {"node": {"oid": "b79447f4c7e5fe4c0f81e4a7495f51a313a7120b", "messageHeadline": "Fix truncating a file with a different signing key to parent", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fa6e24c983d6ee55be6dfd52684dbe1b264e5c47", "messageHeadline": "Fix truncate(existing size)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3e34485eda151a14c27af35f051fb9fe93368ade", "messageHeadline": "Fix return value of uploadOrReplace", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "4769ea1dfbad28e6d2c0d4c6bd2e96f8d7f24985", "messageHeadline": "Clarify uploadOrOverwrite to uploadOrReplace", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 74, "deletions": 74}}, {"node": {"oid": "d405de160e2970ba29e3d91eacd3dc0531fab0f0", "messageHeadline": "Fix truncating a file via a write cap.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 33}}, {"node": {"oid": "6d9de8c8cab21393250cfa2f6bf728c4b48b03d1", "messageHeadline": "truncate unit test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 55, "deletions": 1}}, {"node": {"oid": "3dfab34d473ad5ce51e626627dfa236a179b2560", "messageHeadline": "bugfix", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "17b11a31c4c1dea531c46f25027c1c4e70b37a58", "messageHeadline": "make order insensitive", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "c4dbe0d6b296624baf3625b25986cceb325aca92", "messageHeadline": "move back to global verify()", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "5d817eac1dbaa11c430f865879c9a1113e5b042a", "messageHeadline": "remove redundant code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 11}}, {"node": {"oid": "21ed024840c81b266c450b419ac9643b8f3db989", "messageHeadline": "remove redundant code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "9361fd67793d293274b1ba18a83a5031a78318fb", "messageHeadline": "separate file and directory", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 154, "deletions": 61}}, {"node": {"oid": "4dd75e144237b3a8d5feab670e53116f122e759f", "messageHeadline": "make sure sharing is done in the correct order", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 25, "deletions": 42}}, {"node": {"oid": "fefc40774fba164a876f012bfe10c48efc9aab0d", "messageHeadline": "uncomment shared file read and write", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 75, "deletions": 24}}, {"node": {"oid": "9281f0fb20369a7433e2ea98083c1ba128d3c6ab", "messageHeadline": "Expose method to JS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "a0558afc84f5483b99641cd68844e78b133f02aa", "messageHeadline": "Merge pull request #704 from Peergos/feat/delete-account", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 7}}, {"node": {"oid": "224835150a08f7acc1eea904356089816fb73da6", "messageHeadline": "Merge pull request #702 from Peergos/feat/java-direct-s3-access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 48}}, {"node": {"oid": "93dde0b9966161041f8969c1cd340015a58f24fc", "messageHeadline": "Add method to delete account and all your data", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 7}}, {"node": {"oid": "10426296cffb43d9821c5073c858d1b342dbab38", "messageHeadline": "All ipfs gateway usage should not use http GET over p2p proxy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cf38c9cd807c7db8198fbc6b62c0d87c162d168e", "messageHeadline": "Handle null pki server node id in network access construction", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "eb42878e457802f6f01b8038786364b9d9446a70", "messageHeadline": "Fix direct ipfs access", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e00a1a72dd6b8b2d8992e64794c81ccdb18a92c6", "messageHeadline": "Fix tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 6}}, {"node": {"oid": "405914e0ee99e8e9ade11784cfb2c530b51b21f0", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "0a083a0645496718b8a9180a9eea1009097ca799", "messageHeadline": "Enable Java clients to use direct S3 access", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 47}}, {"node": {"oid": "7c39f8493edcb289c768b2c048652bb5e8772862", "messageHeadline": "Add backoff to S3 getSize (HEAD) call if we get HTTP 503 (rate limited)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "e0d6d2189a39c8b7a79392ba99f111af0bd4795d", "messageHeadline": "Merge pull request #697 from Peergos/fix/simulator-share-write-2", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 23}}, {"node": {"oid": "89fc7b87fa8b0f9dee9afdc74c9f780e7dc33d80", "messageHeadline": "remove debugging code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 50}}, {"node": {"oid": "e6a33086a89f47f108bcc40520f77a776f886f3c", "messageHeadline": "clean method fix", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 10}}, {"node": {"oid": "42560613b8335f25deba41d83fb294c7cfeb915f", "messageHeadline": "Merge pull request #696 from Peergos/feat/ipfs-v0.6.0", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 26}}, {"node": {"oid": "08393fa33c5b32ee5718badb431a8ed78d9c0f73", "messageHeadline": "bug research", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 78, "deletions": 16}}, {"node": {"oid": "03b802d2920186c29988a9cfe3b124af86474e2c", "messageHeadline": "Fix s3 plugin for ipfs v0.6.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "348ebb8dc97f00008a24a4f7d9ba7baa28bf725c", "messageHeadline": "Upgrade to ipfs v0.6.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 26}}, {"node": {"oid": "17a3eecd13f63e41c951dbbf8e7c3bee810e5461", "messageHeadline": "Fix tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "8f68f7f59dd13a2a00ddb9a3779b4bbb3aaac2e0", "messageHeadline": "Add P2P multiaddr", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "c0a41c64ad1a8ea3729beae6935fa337399f4a3f", "messageHeadline": "Merge pull request #695 from Peergos/feat/add-tokenfield", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 11}}, {"node": {"oid": "5a3894a8153e8b102b15f7c01bede465b40b91df", "messageHeadline": "changes o support the web-ui branch feat/add-tokenfield", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 24, "deletions": 11}}, {"node": {"oid": "66c8887e00f8d535ac4d789377cd3b40be300cbc", "messageHeadline": "Merge pull request #694 from Peergos/feat/merge-sharing-overlays", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 14}}, {"node": {"oid": "3a98e9f12889de6961466767162cff568c246414", "messageHeadline": "review fixes", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 10}}, {"node": {"oid": "aafdc9877b97f214f1f9d377b8a74884e45cb6f7", "messageHeadline": "fix resharing bug", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 98, "deletions": 3}}, {"node": {"oid": "07eaa06bc002ee01d8ec0f1ce7427ef02e651d3e", "messageHeadline": "WIP", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 9, "deletions": 9}}, {"node": {"oid": "4a2d3cb887e87cb46424efdcccc96e361c031bac", "messageHeadline": "Merge pull request #690 from Peergos/fix/overwrite-file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 92, "deletions": 12}}, {"node": {"oid": "cc67800e2fdecec9f6f0cd7fae73622035047b97", "messageHeadline": "improve unit test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "5cc876a9c898c5bb5b4780e232e007e7881c40a5", "messageHeadline": "improve test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "d186019681240c3a1b37ac62f79a0777ceea378a", "messageHeadline": "fix up", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 16, "deletions": 2}}, {"node": {"oid": "f83f1095370f1839585abd3e6232b9d9a044f0fd", "messageHeadline": "add unit tests", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 52, "deletions": 16}}, {"node": {"oid": "bca13ae2a6753301ccb123ebe90846ca2ac65bed", "messageHeadline": "improve overwrite file method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "c8e006bb1dd6367fb885cd51bc97b4a1da4ac3e5", "messageHeadline": "remove requirement for parent arg to file.truncate", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 12}}, {"node": {"oid": "e6746da2e4f9e44b18799afb488015373eaea215", "messageHeadline": "Merge pull request #689 from Peergos/fix/remove-async-encryption", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 89}}, {"node": {"oid": "ccbf64c84815acaeedec6577ce3e7bc2dc5fe36b", "messageHeadline": "Merge pull request #680 from Peergos/fix/retry-content-address-storage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 401, "deletions": 1}}, {"node": {"oid": "2f5dad563a302e64a6e41c57c120b609021af36d", "messageHeadline": "Merge pull request #685 from Peergos/fix/retry-network-errors", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 36}}, {"node": {"oid": "32cd2503104f5b5105823b2f7017b6ce8bdbc08c", "messageHeadline": "Fix error propagation through retries", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "89ed21a0a75d54e6e784cef220002ca24b871a7b", "messageHeadline": "Fix compilation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "59b3605fd6acb4fc1ec4943b9fe3df17b3d3c65c", "messageHeadline": "Simplify generics", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 32}}, {"node": {"oid": "1a059b75382284928585d8f6a057813f82c74172", "messageHeadline": "make work in js", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "af4a95643b9a43c91f1946ee40e579ebbd5bfb89", "messageHeadline": "Improve log message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "15fff1f63e797c1cdd33807cb25a0bcc7ac1e0fe", "messageHeadline": "Merge pull request #673 from Peergos/fix/editor-concurrent-changes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "85763dbd26b36d31d86733242699f1eb1e110559", "messageHeadline": "simplify hashcode method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "27be99832ff52eec45cc9e05a901898f1d772c5d", "messageHeadline": "var rename", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5cba33d626ae9daf974208d692094b7f1b2300a6", "messageHeadline": "Improve test", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "3858afdf7ef8eb05ec4b8169d639c4096d79ff4f", "messageHeadline": "Change return of overwriteSectionJS", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 9}}, {"node": {"oid": "b17c940db2b9d469a98e69364a0ec5f7297ef288", "messageHeadline": "Merge pull request #681 from Peergos/feat/direct-file-modification", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 212, "deletions": 126}}, {"node": {"oid": "901be310002bc49e9886d3c11064045b3244b98e", "messageHeadline": "Add method for JS modification of a file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 1}}, {"node": {"oid": "9af23ace09db650aaa24df3dc49a5577ef385c80", "messageHeadline": "Renames for clarity", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 33}}, {"node": {"oid": "c23880a5ee4e7c40bb2cfa526d94c4225c66362e", "messageHeadline": "Remove unnecessary arg from FileWrapper.overwriteSection", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "8dfcfcc1b8c0a86c8c5b76102b5c33f889da7823", "messageHeadline": "Add test for concurrent file modification failure", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 0}}, {"node": {"oid": "5c82bf7f9bc68426b602e0cbea1e5bd7d28b653e", "messageHeadline": "Extract out FileWrapper.overwriteSection method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 125}}, {"node": {"oid": "0bf6459b0a555f43579f55f4398ce3ac75d8fb19", "messageHeadline": "remove unused methods", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 89}}, {"node": {"oid": "9e25bba200729b0a6e10353c3a1edb63d78ad920", "messageHeadline": "remove unnecessary declarations in code", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "c923f9bea58ba77160efe4722db22cfca85b975b", "messageHeadline": "add GWT emulation of ScheduledThreadPoolExecutor", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 51, "deletions": 27}}, {"node": {"oid": "211f2a2739ae0335bf1865d2b2a60c83971658fd", "messageHeadline": "Speed up gc and log more", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 11}}, {"node": {"oid": "570b44fc5acced94c8f014ff0e68975889410f64", "messageHeadline": "Make GC tolerate missing blocks", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 5}}, {"node": {"oid": "9a21d10a0a72686e8dbd20f6c2141fa494b1c5ed", "messageHeadline": "Merge pull request #672 from Peergos/feat/remove-s3-sdk", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 198, "deletions": 164}}, {"node": {"oid": "0c848913776b8620281f9d8b016493311acf3845", "messageHeadline": "cleanup", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "894dd2f03e15a3480fc521276fe7b64e14844fa2", "messageHeadline": "updates", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 18, "deletions": 28}}, {"node": {"oid": "6983b22c9b3972f7364d5a017d3de5ce5778ce78", "messageHeadline": "add more tests", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 77, "deletions": 47}}, {"node": {"oid": "fcf1d4b58672a5fc4a47c3a4f7eebfef3d9f240f", "messageHeadline": "oops", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 15}}, {"node": {"oid": "5deaec436794ea7bdfd875a9df758457ba601357", "messageHeadline": "WIP", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 356, "deletions": 0}}, {"node": {"oid": "72b85d182ff4fbea7c299d8ab11288727327f913", "messageHeadline": "Merge pull request #678 from Peergos/opt/committable-storage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 118, "deletions": 30}}, {"node": {"oid": "646a7341aa48a74672d0adcecd68f669d891b565", "messageHeadline": "reduce synchronization block in CommittableStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "0b084aa9faceda1ffb98c4c571e71dab353dd3e8", "messageHeadline": "Implement CommittableStorage which removes the linear sequential chain", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 115, "deletions": 30}}, {"node": {"oid": "663bcf11e6c1dbdb4fbde277c0c34395fc8bdf89", "messageHeadline": "Only bulk auth 6 writes at a time so the actual upload can get starte\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 24}}, {"node": {"oid": "202a321ecc140cb10368be0fb9c9413b49939c8e", "messageHeadline": "Fix bulk auth writes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 11}}, {"node": {"oid": "19b93defe35bba8eeb5ff67a8e6c7fa85a55b902", "messageHeadline": "Merge pull request #676 from Peergos/opt/bulk-auth-direct-s3-writes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 129, "deletions": 185}}, {"node": {"oid": "5cdbdb7550104904ccc059b71aad2a9a81baecbe", "messageHeadline": "Experiment to see if bulk puts affect tests on github action", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cbed03a23c0534fec1a5a0039457b1a925a52ddc", "messageHeadline": "Remove unnecessary file", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 109}}, {"node": {"oid": "50e237dac099f9afe8c221f49c31be8133e24a45", "messageHeadline": "Reduce log spam", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "5130944f85e25dd327f2fe42cedcea5dca81f94b", "messageHeadline": "Disable ipfs based GC by default", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "58bca0640891c1c6dd0f6766cfe9a6918a6460c3", "messageHeadline": "Put an extra guard in against calling block.put on ipfs with multiple\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "87de72d7966ef91c3c7364dae2959e02934066c4", "messageHeadline": "Bulk auth all writes in a chunk (up to 40)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 125, "deletions": 75}}, {"node": {"oid": "d0486dd657bfd755bf4b73451ddd0717c45e0c46", "messageHeadline": "Increase gwtc ram to 1g", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "154a017e54f3b9ee94f1d2c6ce5c9f73f72615b0", "messageHeadline": "Update ant.yml", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "ca71c60966180c5a5e481ee2992eed2a61aa1c66", "messageHeadline": "Fix authed S3 bulk fragment reads", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "de13b167256eb4e6e4d52141c6138f6fd6398d5a", "messageHeadline": "Merge pull request #675 from Peergos/opt/bulk-auth-direct-s3-reads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 171, "deletions": 196}}, {"node": {"oid": "cba77da44ab0a278a838283b8b7fa6432b44e133", "messageHeadline": "Clean up ContentAddressedStorage wrappers with DelegatingStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 116, "deletions": 214}}, {"node": {"oid": "1650d9667bd72bb9369df11da2829b5116a9ae25", "messageHeadline": "Use bulk read auth for direct S3 retrieval of all fragments in a chunk", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 80, "deletions": 7}}, {"node": {"oid": "3fca3f74fdeea079bee16c8dc58405a24d162041", "messageHeadline": "Use Serialize.readFully()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 42}}, {"node": {"oid": "ac1510d1ead50ad42e483a253896500328bf2e9c", "messageHeadline": "remove unnecessary method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 6}}, {"node": {"oid": "dce4a99e55a5aa295a211ef6a12ec00e92ff4004", "messageHeadline": "Handle 404s correctly", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "d93589ef001d563eb45ee847f7eaf12d436569de", "messageHeadline": "Add connect and read timeout to S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "937557da14a2ae0b54dfa5c79e28670f2167fd0d", "messageHeadline": "Remove James Bond", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "c5ef3d50cae25efc669e3fc2c4768b9b0c3ae10e", "messageHeadline": "Add bulk delete method to S3BlockStorage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 4}}, {"node": {"oid": "84964acc9f502755771c86d454f640434ab7dfac", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0b9bd194a2f781428bbf46a4c1ea1c290b434b8c", "messageHeadline": "Remove Amazon S3 SDK entirely.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 198, "deletions": 163}}, {"node": {"oid": "43f2f1028c109c6935d8f212bb50d57a3cdfc44d", "messageHeadline": "Test for bulk S3 deletion including non existent keys", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "0e50a15b8d0b220129e66171f465609b8066b1e2", "messageHeadline": "Add bulk delete to S3 implementation", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 114, "deletions": 14}}, {"node": {"oid": "e99bf1cf12001b08395171a08f0db301c0334a06", "messageHeadline": "clean up S3 exploration", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 67}}, {"node": {"oid": "7ea247feea807e51a24d1402fe9fc030fb1fda00", "messageHeadline": "Add parser for s3 response to list objects", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 124, "deletions": 21}}, {"node": {"oid": "2ebb456e69b0ec1c832289286ad94ca5c29f4d9e", "messageHeadline": "Add presigning copy requests to S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 0}}, {"node": {"oid": "8b0e88db57ef69a915e3e08fae37ca1d141c809f", "messageHeadline": "add isLatest and getLatest to FileWrapper", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 29, "deletions": 0}}, {"node": {"oid": "dd6f275828d7ff613a8446641569980fe2cdada6", "messageHeadline": "Merge pull request #670 from Peergos/fix/other-server-writes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 45}}, {"node": {"oid": "886293c0326b9f567aa18cf495cdb6c4e4fe1512", "messageHeadline": "Make sure writes from a server that isn't yours succeed.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 45}}, {"node": {"oid": "08eb20227f70e31507f6e270d17d3212534d7169", "messageHeadline": "If public and authed reads fail, fall back to proxied", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 5}}, {"node": {"oid": "a3d1c226922334c1b3ca3f8255f55cec922d858c", "messageHeadline": "Add expiry to S3 gets, heads. Also use camel case query parameters", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 21}}, {"node": {"oid": "0e284e15628777d16ca2cc3aa7177ea806ffd26d", "messageHeadline": "Implement S3 object DELETE", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 10}}, {"node": {"oid": "7edbe36b5e5b44b617905ede5afa2f3960482bfb", "messageHeadline": "Implement S3 object listing GET", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 72, "deletions": 28}}, {"node": {"oid": "0811241400b4a992fca3327108828a69dcf5fc86", "messageHeadline": "Clean up S3 request signing code", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 79, "deletions": 34}}, {"node": {"oid": "1d5c9151d7e25a5b6ff2ef21971c115864c7eaed", "messageHeadline": "Add expiration header to signed GETs to S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "4e98bf0d2cbc9a5b542f6561bf94b69331004a68", "messageHeadline": "Remove some legacy sqlite libs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "b15466d759de0817e1a76db92ebed99cada0d2bd", "messageHeadline": "Merge pull request #668 from Peergos/feat/pre-authed-s3-reads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 176, "deletions": 20}}, {"node": {"oid": "e8689a7268adc81ed954f0637734e4c3161b62cc", "messageHeadline": "Add missing method for pre-authed direct S3 GETs from browser", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "be8b66bf923c7b67be5d37ae6eafafe5cd690fc1", "messageHeadline": "Implement Pre-authed direct S3 GETs from browser", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 76, "deletions": 6}}, {"node": {"oid": "66f976c1291eaf2a55f1dcdd6243d239fff06a82", "messageHeadline": "Implement Pre-authed S3 GETs using query string only", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 13}}, {"node": {"oid": "8d258a93630712ddae139db57f2d68857a31ebca", "messageHeadline": "Pre-authed S3 GET working with headers", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 10}}, {"node": {"oid": "48e944861c5e391a0ff68ac9d9e7c1e7b722460e", "messageHeadline": "Merge pull request #667 from Peergos/feat/direct-s3-blockstore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 923, "deletions": 42}}, {"node": {"oid": "ac503790f0e806493a2c949ff19236deae2e03f5", "messageHeadline": "Fix hard coded endpoint", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "3a1d8a57c1cbbb4800ebc0cfc3c5fc159bf6af31", "messageHeadline": "Dedupe method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 11}}, {"node": {"oid": "95751228df2e4b9d7f3dc002fde883cee8f18744", "messageHeadline": "Clean up S3Request", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 77}}, {"node": {"oid": "b3d48108a1503340d1852d598ae2265ae559f033", "messageHeadline": "Direct writes from browser implemented.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 427, "deletions": 161}}, {"node": {"oid": "478ca4b1ea95067cbb2b1399f553259f9f137b7d", "messageHeadline": "Remove scract code from S3Request", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 97, "deletions": 87}}, {"node": {"oid": "42dd187899c14b0625130cc805a7833e1511097f", "messageHeadline": "More cleanup and rename", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 32}}, {"node": {"oid": "9cc9fa778ae4e2245eb67cece546670c56b7cfac", "messageHeadline": "Simplify S3 UploadPolicy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 25}}, {"node": {"oid": "787062e15dadf6d1416e58f544ffa8806c096d94", "messageHeadline": "Booyahhh! PUTs to S3 working with hand rolled signatures.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 28}}, {"node": {"oid": "a598d76e32ca528db140b8b1b2cdb7dcd475860e", "messageHeadline": "Add test proving we are calculating the same authorization as the jav\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 0}}, {"node": {"oid": "5e027fbb1e61b6d77c95994ce8bf73e5f3ff8a46", "messageHeadline": "Simplify S3 UploadPolicy", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 25}}, {"node": {"oid": "62d8614cdc0a111abdba650b2c84149d3e55cdad", "messageHeadline": "Make s3 signature test finer grained", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 2}}, {"node": {"oid": "10194937c38f2da2c42930e37c59c1606b9f85b0", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "24cf79430cf17ccf283f571f04d0b6eaeeb6a91e", "messageHeadline": "Allow unsigned payloads for testing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 12}}, {"node": {"oid": "f8c4719851d81f5e9f97094ddae3a4a50a32c176", "messageHeadline": "Still unable to upload a signed payload to S3", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 18}}, {"node": {"oid": "56e7b341b2ecfb1128e548e9c29ed008c739b247", "messageHeadline": "S3 V4 signature test passing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 165, "deletions": 97}}, {"node": {"oid": "3384071ebae1d8b5fa40cbdd4672b6d749df2330", "messageHeadline": "Post multipart presigned upload to S3 working,", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 324, "deletions": 1}}, {"node": {"oid": "067f27f5600c1c569b03e2129bbd560983215ff2", "messageHeadline": "Implement an optional direct S3 blockstore which allows browsers to r\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 204, "deletions": 17}}, {"node": {"oid": "ad4b0f999f48f20b2393384584f16950d4226990", "messageHeadline": "Mark encrypted S3 blocks public explicitly", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "a947be4218758354a8c2e45e288dc283ea7bc747", "messageHeadline": "Merge pull request #662 from Peergos/feat/buffered-async-reader", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 447, "deletions": 11}}, {"node": {"oid": "c3e3e7ebb34f332a942646f65ed86a2a6f2917df", "messageHeadline": "Don't hold a lock and an async-lock at the same time.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 32}}, {"node": {"oid": "9086e8f7333b8119405bcf7ebcdf2aa9c65af2b0", "messageHeadline": "Index fixes to BufferedAsyncReader", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "27b15295f6b35909a7a13c643f3658b31b648e95", "messageHeadline": "Attempt to fix race in BufferedAsyncReader", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "fd438b5a382c2596fc183936a6ad19d720a34bef", "messageHeadline": "use random data in RAM unit tests for streaming", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "43cff90c3a2c3a38269996d1266975713d050870", "messageHeadline": "Improve BufferedAsynReader prefetch", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 6}}, {"node": {"oid": "6f1770b758bae893ab1362b257533d77fb5abe10", "messageHeadline": "Improve BufferedAsynReader prefetch", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 8}}, {"node": {"oid": "6c0b59b734d2068d81bc4cc0ffd8a946f11892e7", "messageHeadline": "return copy in seek call", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 79, "deletions": 17}}, {"node": {"oid": "5f600ea7e93a78b6aef78eea964a6da7d185de8f", "messageHeadline": "added unit test for reuse of async reader", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 66, "deletions": 2}}, {"node": {"oid": "a6e03bfaa6ffd7475d7599a61896607074d7c8b5", "messageHeadline": "Add small delay in cleanup after tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "742168daf6e2c26797bd9cfc836d00309c43bc52", "messageHeadline": "Add log line", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "40778fff0911420ca51018bf2a5f65c06c69bca5", "messageHeadline": "Reduce log spam", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2d71fb09b962c84ac610d3844ead53a9fac3c42d", "messageHeadline": "Improve prefetch algorithm in bufferedasyncreader", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 13}}, {"node": {"oid": "07707d16fb9c99abb8fcf1b389fa811981249825", "messageHeadline": "Return correct read size in bufferedasyncreader", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "a42d83f26bb9091f024b36f2f3b2996feec20381", "messageHeadline": "Fix negative array index in bufferedasyncreader", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "43d81a0ae37c55ca45d278a44336b4a8e2b2d584", "messageHeadline": "Remove async buffer fill in bufferedasyncreader constructor", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "e16721c7e708a09e33721dff6b2f2d912de017d1", "messageHeadline": "More fixes to BufferedAsyncReader, but still test failing", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 16}}, {"node": {"oid": "8c4f47122467acce65c808a30bebcd4ee43b5576", "messageHeadline": "Fix seek and reset in BufferedAsyncReader and use AsyncLock internally", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 110, "deletions": 21}}, {"node": {"oid": "00bb8f1306eede2e72d1ae19a4a83db9457f27f0", "messageHeadline": "Fix args in recursive BufferedReader call", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 7}}, {"node": {"oid": "4c83b3d26aa3e96de047e75d8607b1782e5cb3a9", "messageHeadline": "Implement a buffered async reader to allow smooth 4K video streaming", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 172, "deletions": 0}}, {"node": {"oid": "ee89106eb7227c60e090182c3d6e53fbc4f8f352", "messageHeadline": "Merge pull request #658 from Peergos/feat/ipfs-v0.5.0", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 299, "deletions": 290}}, {"node": {"oid": "f7acae9bdf074511a3f1a6d5641b37502f86b9ca", "messageHeadline": "Fix S3 plugin for ipfs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "13f35df249853d86362040ed21c37287aba900e7", "messageHeadline": "Fix S3 plugin for ipfs", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "54992cb1ebb1c53094fb88f00114e333f3d2aaf4", "messageHeadline": "Improve error message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "717621236c0c85119ffa43f7aee8b441e19150c8", "messageHeadline": "Merge pull request #663 from Peergos/fix/sqlite-without-hikari", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 16}}, {"node": {"oid": "5691db992b5be2f9159bc4bb41cf488819e5d1a0", "messageHeadline": "Make writer usage a bigint", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "29ad845475a7f619d273dbb716c077790ed0e1ee", "messageHeadline": "Make usage a bigint", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8b92c8b4389d9b46680df99429eb2210b2c06c84", "messageHeadline": "put more info in error message", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "306648fac5e29d1d4c7eb054fe6e03a80ace192f", "messageHeadline": "Don't use Hikari at all with sqlite. They don't play well under concu\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 13}}, {"node": {"oid": "5260730516e44c30af7db540d92cc8ef504c98eb", "messageHeadline": "Don't prefix s3 path with nodeId (ipfs ignores it anyway)", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "c65b5b743cec55513155a21a5eca450af1bc308f", "messageHeadline": "Reference IPFS justification for POST only API", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "4663236cce98d2e8d9c04f84751105790dff1b3f", "messageHeadline": "Upgrade to ipfs v0.5.0-rc2", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 27}}, {"node": {"oid": "2166b27e05aea3639cdeeb1f0cf3b8b18284a5a5", "messageHeadline": "Allow http GETs if we are a public server.", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 198, "deletions": 243}}, {"node": {"oid": "dcf08b8301be6e02dc48c61425d6eeb6ba11c459", "messageHeadline": "Still do http GET if served from an ipfs gateway", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "24e5053ac1bef2c7953efe5685ff05a999ab4d2c", "messageHeadline": "Merge pull request #656 from Peergos/fix/postgres-isolation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 161}}, {"node": {"oid": "91fa68e7ebc7bae48bde3c2c4e33e58cc2a9ea2b", "messageHeadline": "Remove unused methods on JdbcUsageStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 8}}, {"node": {"oid": "148e727bbc0ba000f27aaeb9a33ba51f2b268773", "messageHeadline": "Change WriterUsageStore to be more suitable to a sql store", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 124, "deletions": 128}}, {"node": {"oid": "d3d5178830179f123beef83ca4cb774457c8096e", "messageHeadline": "Serializability was Causing unnecessary issues in Postgres, so revert\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 33}}, {"node": {"oid": "4c3bbe31ce8f2a4edbe3872b1dfd82c3b5386210", "messageHeadline": "Merge pull request #655 from Peergos/feat/limit-path-size", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 7}}, {"node": {"oid": "c9d94d16bea2b28b82feb0e158ba0cf3cf94512d", "messageHeadline": "dedupe method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 19}}, {"node": {"oid": "53152ecdd31c9317e7fa16b995c25fd7c69de4a9", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "21461b7ba132b4e1131eeeee2aba66476f6d7aff", "messageHeadline": "Limit path size to 4096 bytes", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 6}}, {"node": {"oid": "cd62c9dd7cf0b17a361903c196642680c6c7bd53", "messageHeadline": "Enforce http PUT in our API calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 0}}, {"node": {"oid": "28f754f94a4dbb6e0452d71014acddd3d64efadb", "messageHeadline": "Update to support IPFS v0.5.0", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 32}}, {"node": {"oid": "4fc10505e13ca5f14c4c0cec9abc93974d4cfd2c", "messageHeadline": "Make sure pending usage is initialized during JdbcUsageStore.addWriter", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 18}}, {"node": {"oid": "9ded80f8742045f77ff16ef55c4ae8122d0b7eda", "messageHeadline": "Merge pull request #653 from Peergos/fix/updating-sql-usage-store", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "b8e15ebda9f84554803a1e2808ed15d1504cb7a1", "messageHeadline": "Make sure initializing usage store includes all local users completely", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "a1e525fc99ac24cd0599b978f6cee8fa5a0b155f", "messageHeadline": "Merge pull request #650 from Peergos/feat/sql-usage-store", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1025, "deletions": 157}}, {"node": {"oid": "1a522991e791dcbbc8cdae1648dd736977993418", "messageHeadline": "Inline last getWriterId call that is between statements", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "7b5225d5de029b7110ffcd0b632a7d80bf4adcd7", "messageHeadline": "Inline some getUserId and getWriterId calls", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 37}}, {"node": {"oid": "443b14fabde1836f64815a06566d0cb7d9ab49a6", "messageHeadline": "typo", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3bd37e3bda3adcb3db375b30613996b2dc7b163a", "messageHeadline": "Enforce serializable transactions", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "ef1926f2c7f7dd11a23e11d80d20a69f8f7e272c", "messageHeadline": "oops", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6f12fc88b5319e9d8c17a2f2a4491141df61a7c6", "messageHeadline": "Typo", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "79afebcd2ca33a326d059dbceac51f572f8edbbd", "messageHeadline": "Fix usage of sqlite :memory: by overriding close()", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 289, "deletions": 16}}, {"node": {"oid": "c57b8376c701cbf39dbdfb2ab85bbb8d9e16bfda", "messageHeadline": "Revert previous commit's revertion", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "849ed7e479e9d2e9c71f1f92f8bc82b3546f32fa", "messageHeadline": "Make tests delete temp peergos dir afterwards", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 35}}, {"node": {"oid": "c50dd279827c1061f38b2d8b63979547af97f333", "messageHeadline": "Don't use sqlite :memory: in tests", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "e5f0479843d6e441527462d6a2a227c5de25a705", "messageHeadline": "Fix old direct usages of sqlite", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 13}}, {"node": {"oid": "ca19ad440658a9980f1eb1c92ee8513b212fa090", "messageHeadline": "Add more transactions to JdbcUsageStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 33}}, {"node": {"oid": "522bcd1083cdb9cba23b0dba2b1c61ab37388d05", "messageHeadline": "Use transactions where needed in JdbcUsageStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 43}}, {"node": {"oid": "f13d3b323d0ac6072109f5746ce554a9aa139cf9", "messageHeadline": "Inline nested sql call in SqlUsageStore.getUsage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "197daad4a7c694fb5cec37eadf18da39701da9d1", "messageHeadline": "Limit sqlite connection pool size", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "005fe5ff32de2869ad494b7c152708668091d01a", "messageHeadline": "Add connection pool timeouts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 24}}, {"node": {"oid": "dc7f0bd9f79074055aa09895ddd96e0a815e2962", "messageHeadline": "Reenable auto commit on sqlite", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 15}}, {"node": {"oid": "a71fc73b528d522c9cfbdbff8271ce1369714317", "messageHeadline": "Convert to using a Connection per request, and use a db connection po\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 192, "deletions": 132}}, {"node": {"oid": "1e4e0db1c7ed271a66e8f9d1dc49fc4da2cd4140", "messageHeadline": "Simplify SqlUsageStore.getUsage => WriterUsage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 15}}, {"node": {"oid": "a0f78e8e677a39283e0a71fe072091e7cb7cc2a2", "messageHeadline": "Simplify WriterUsageStore by removing unnecessary method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 13}}, {"node": {"oid": "92eea4235975def619a027f3ce87746c70fc6f20", "messageHeadline": "Simplify UserUsageStore by removing two methods and expanding an exis\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 57}}, {"node": {"oid": "2013b668088f0dcc7bef1ec4d58e0694dce7b067", "messageHeadline": "remove unused method", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 12}}, {"node": {"oid": "f2aec5a2f38c693148cc55c5a8122a0e6c478023", "messageHeadline": "combine sql statements into one", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 17}}, {"node": {"oid": "bc666081560dea49ba20168a943643a5801b57e1", "messageHeadline": "combine sql statements into one", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 12}}, {"node": {"oid": "68ca56e5af3945dd703d5ba087fab6da68c5f56b", "messageHeadline": "combine sql statements into one", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 11}}, {"node": {"oid": "9d2a9e7698b22210d4b83902b49250c14ad60d32", "messageHeadline": "Remove changes that should not have been committed to sql transaction\u2026", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 155, "deletions": 29}}, {"node": {"oid": "d46132c1faf4f895e68b8be2f04bd280a0c2b1e1", "messageHeadline": "Make cas of pending bytes update into a transaction that always succeeds", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "daf438c9b77880ae83c4645880b0aaae9d8a3c9a", "messageHeadline": "First pass at sql implementation of UsageStore", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 413, "deletions": 4}}, {"node": {"oid": "7507476ff94dd4f949dae307e0e0daff689cb56b", "messageHeadline": "Log url on timeouts", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "da18037edcc3e6346f0a3d8e7874934db6f9a5b6", "messageHeadline": "Make connection backlog and # handler threads configurable", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 10}}, {"node": {"oid": "163a540dce8a364b7126645a5d305c54e8547c35", "messageHeadline": "Add error to payment properties", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 4}}, {"node": {"oid": "5532cd74ededd54b3cdc405cb7d8e169206ae1b1", "messageHeadline": "Merge pull request #645 from Peergos/feat/payments", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 480, "deletions": 175}}, {"node": {"oid": "71d5245a99e0c0635c1db0ad461c81af0555c6d9", "messageHeadline": "Add free quota to payment properties", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 13}}, {"node": {"oid": "21dc80231aa0107ba1fbda6901995045161dbbd9", "messageHeadline": "clean up PaymentProperties", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "63337dba14d2f19f70df9baf4e21a39aad4b960f", "messageHeadline": "Add desired quota to PaymentProperties", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "8f718d4cbd955046021e7af01ec6f16ff6eecd01", "messageHeadline": "Only generate new client secrets when about to add a card", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 19}}, {"node": {"oid": "55fe34888968cbeb2ccee105697871e2a6292e7e", "messageHeadline": "Add client secret to payment properties", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 4}}, {"node": {"oid": "37160788b7cfe39100b7ca4ca3e2ed42980a0d22", "messageHeadline": "Merge pull request #644 from Peergos/feat/video-capture", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 6}}, {"node": {"oid": "a3962b02b021dffab9838d19b5e592f826bd0a9e", "messageHeadline": "tiny fix", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "49fd3d6d17d671d65825c5f8ce2c9de9188743fa", "messageHeadline": "refactor re-calc thumbnail", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 9}}, {"node": {"oid": "9c44abb58087e9b5b312834cbcbca80cf994bc2d", "messageHeadline": "Connect up Peergos server to payment server", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 237, "deletions": 41}}, {"node": {"oid": "4faf2345d5d7e632781c8e7134cc264dc0aec595", "messageHeadline": "Fix gwtc", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "1bdeb4e77d8aeb640003df392fbed43922a83136", "messageHeadline": "Restructure the quota apis in preparation for paid for storage", "author": {"name": "ian", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 214, "deletions": 143}}, {"node": {"oid": "561ef46916c7b01b2687b6f5ac1468dc9f5e3fcd", "messageHeadline": "do not recalc thumbnail unless replacing start of file", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 8}}, {"node": {"oid": "6cc1fe0bd98a1973499c040545501c964a3e076b", "messageHeadline": "initial commit", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "66808f97660ae52818dbe3a8b934484799b2b86d", "messageHeadline": "Fix username claim renewal when user's claim chain length > 1", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 7}}, {"node": {"oid": "36f3b52280a6a54c05fc1fa33ff8cec701a6a6ae", "messageHeadline": "Add logging to mirror method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "5436d3aebeb9f28e8e517df9b2e77fcd197c0a34", "messageHeadline": "Merge pull request #641 from Peergos/fix/sharing-regression", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 2}}, {"node": {"oid": "f9b1add36a16f6a06cb4e423daed3a6a6db89b3f", "messageHeadline": "Extend tests to cover web ui's method of retrieving shared things", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 2}}, {"node": {"oid": "5945649719d08ca6eedc5700bbd68ada10d5ecec", "messageHeadline": "Fix sharing regression", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "b04c2c75cef73ca4b89c9005ec093e66add5fb10", "messageHeadline": "Merge pull request #640 from Peergos/fix/editor-save", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "72d76cacc4dfd9e611f6df7ecd22a0a0ba4bad55", "messageHeadline": "change param in call to getInputStream", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "6a7b1945b378d0a79a68767ddd21e8241b60dc3b", "messageHeadline": "Merge pull request #639 from Peergos/test/ipfs-s3-plugin", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 2}}, {"node": {"oid": "2ba9df943c115836d9e5473a59d9b4785606e03e", "messageHeadline": "Fix ipfs v0.4.23 and s3 plugin loading", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "d5222cc4194fc49d2243f7fcd500a0750860b082", "messageHeadline": "Speed up RamUserTests by bypassing http", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 28}}, {"node": {"oid": "f87f7f18fd0f7e98aba906286ed8091d924372af", "messageHeadline": "Fix compilation fail after merge", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "31b4ac47ba28f0fc68ae1c869e9afb4a92f6306e", "messageHeadline": "Merge pull request #623 from Peergos/feat/simulate-sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 457, "deletions": 178}}, {"node": {"oid": "092482b3a29979287e9b8d9082a28b3bedabc3f6", "messageHeadline": "Revert number of server handler threads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "424b356bf6d64bfdcd138091783400f76456f76f", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "6819928a7b58ee9023c3c5c64542ce30cd160825", "messageHeadline": "Speed up MultiUserTests from 28min to 7min by bypassing http", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "bbef0fe5c62cbc8d7a0eea4caf35f044c129dba6", "messageHeadline": "Fix a few issues found by the fuzzer.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 208, "deletions": 71}}, {"node": {"oid": "e932a3a8cba76f395a45af52e073c4a92d30432f", "messageHeadline": "Merge pull request #622 from Peergos/fix/file-upload-improvements", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 29}}, {"node": {"oid": "7e155da9ab3eedc40b9c7a039a16add3132d0b50", "messageHeadline": "fix call to recalculate thumbnail", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 15, "deletions": 16}}, {"node": {"oid": "ae40980954081d77fc4f6de5ebd20faf875aa58d", "messageHeadline": "fix to file size calculation", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "b274212b11dad2eda00515a669b5bf6afa901119", "messageHeadline": "handle truncate from js upload method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 11}}, {"node": {"oid": "b2c0bfb2dfa162b065e187a0489be24ffa3ec5b3", "messageHeadline": "another attempt at replace method", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 26, "deletions": 7}}, {"node": {"oid": "4551680c9ba14f34336d04510a29992585653c28", "messageHeadline": "handle null parent inside remove call", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "9e008e5b67d201480ffa5434281f310e78e96f5d", "messageHeadline": "[simulate-sharing]", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 72, "deletions": 45}}, {"node": {"oid": "3c521a024af1719f9ee15899bd36363328f97960", "messageHeadline": "Speed up simulator by 4X by bypassing http!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 11}}, {"node": {"oid": "93132d9eea50984859a4db11508cea6bf5f3dd27", "messageHeadline": "Add test for ipfs S3 plugin loading", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 0}}, {"node": {"oid": "047726e79f536c54afb6c4193de3d5a9a85c7ebe", "messageHeadline": "Merge pull request #636 from Peergos/fix/large-deployment", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 74, "deletions": 53}}, {"node": {"oid": "7a5557f2bc22f174259eca8d1117366bc615f8dd", "messageHeadline": "Fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "0fd3c8c7111b935a2513e51cf375765d43da4393", "messageHeadline": "Fix tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "752d3b808b45de81c4e1100abdb60c70c33f0546", "messageHeadline": "Add a top level command for installing and running ipfs.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 50}}, {"node": {"oid": "4b57a6761f14e2328d73b770aa8e69c4f89112a7", "messageHeadline": "Merge pull request #635 from Peergos/fix/s3-p2p-fallback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 9}}, {"node": {"oid": "3b06ea099cde533f36e2464dfda6bcaefcc59801", "messageHeadline": "Merge pull request #630 from Peergos/fix/handle-ipfs-deadlock", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "4d78e6b7c5effe7e43ff396a13ea2e2d8c34d1d3", "messageHeadline": "Add a p2p fallback for S3 reads (users who'se data is elsewhere)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 9}}, {"node": {"oid": "c5e29204abb3e32ed54939c32c92f13e9ab11954", "messageHeadline": "Patch ipfs bug in pin.update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "d481bb70faefaa1f4438c5e56df512f8903a1ffb", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 4}}, {"node": {"oid": "e2d85e6a2f64c990cb2802e86df0b6d6dc31285a", "messageHeadline": "Remove non determinism in simulator operation choice", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "9e9068deb26df596a0e7245b67ccc49050f2c4e6", "messageHeadline": "Merge pull request #633 from Peergos/opt/native-tweetnacl", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 320, "deletions": 59}}, {"node": {"oid": "a31d31bf77911c5f08d5f4a6414f31cea76fe139", "messageHeadline": "rename", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "073c19219e06f062d7190b8d5836278e0c7fef16", "messageHeadline": "[native-tweetnacl] Coverage for JniTweetNacl", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 113, "deletions": 5}}, {"node": {"oid": "aab4efd0c1412f392cc0013dd7c14137d09139ae", "messageHeadline": "[simulate-sharing] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 17, "deletions": 5}}, {"node": {"oid": "d61907182007a7333b8ec36b1fa2ca2d66168f9b", "messageHeadline": "Update benchmark results", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 10}}, {"node": {"oid": "7eacdb330e782652fc420ee1166322c8e15edf38", "messageHeadline": "Add native secretbox implementation and use from Java", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 5}}, {"node": {"oid": "14cd2167c1ba7d32563e0266c237a9d190d4f762", "messageHeadline": "Switch to using native TweetNaCl implementation (C) on JVM when possible", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 155, "deletions": 46}}, {"node": {"oid": "ebc37cdcc0741ab05f95d84ae33b05979580461d", "messageHeadline": "disable gc in tests until ipfs deadlock is fixed", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "81844022d4f352ad556c13e3bc005a6dbef04a60", "messageHeadline": "Add benchmark for replying to follow request", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 1}}, {"node": {"oid": "a5b65216c49a5ab135a4a8e98cd65df59ae89e0b", "messageHeadline": "Merge pull request #631 from Peergos/opt/block-put-sign-hash-only", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 337, "deletions": 216}}, {"node": {"oid": "46b589df01dc64acfb5ae5e07157cc78c7946fd8", "messageHeadline": "Update benchmark timings", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "76344bf46d3c78cd53945613e5df64ebd5bf0f07", "messageHeadline": "Rework Futures.combineAllInOrder to tolerate JS byte[]'s", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 8}}, {"node": {"oid": "23c193ce13a14f25b0d7c58ea8ecbd7bc0935378", "messageHeadline": "Only sign hash of metadata blobs as well", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "4d3f58b54630e4de53422ca90fec97518851381b", "messageHeadline": "First attempt at only signing block hashes on writes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 322, "deletions": 206}}, {"node": {"oid": "da41cb4b6097e9ec24ccd35ea3434a889fd4e820", "messageHeadline": "[simulate-sharing] revokee", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "765eb9935dae5c25f1b664e6dec436fd1f28d2d7", "messageHeadline": "[simulate-sharing] typo", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5c5439d85a09d6432c9d96e29226ba179cceff8d", "messageHeadline": "[simulate-sharing] add read and write shared-files to as ops to the s\u2026", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 135, "deletions": 49}}, {"node": {"oid": "a70949895d3acddafc4536fe8b1fb663031aad44", "messageHeadline": "Merge pull request #628 from Peergos/upgrade/go-ipfs-v0.4.23", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 28}}, {"node": {"oid": "b1d039c002f9716c366f0a939453ea64c70c65ce", "messageHeadline": "Add s3 plugin arg!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "219998ea24c4a55b51b527071590377a49088206", "messageHeadline": "Upgrade to IPFS v0.4.23", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 28}}, {"node": {"oid": "29d30b5a0134f69fcd98cb8783526bb3e6c25654", "messageHeadline": "Merge pull request #626 from Peergos/feat/cryptree-links", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 263, "deletions": 74}}, {"node": {"oid": "c1645a4bc3bcfae335f75e326a9dc776263a9377", "messageHeadline": "Improve error message", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c1c0ac16717b93aa16f30e83dd3ff142274afe68", "messageHeadline": "Fix renaming a file you've granted write access to", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 4}}, {"node": {"oid": "8b5551976b9e150e0ad68139ced71ddc5cd58243", "messageHeadline": "Fix move to directory shared with", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "99c92fe329481bacce107c955a8a4b2bf3f7d780", "messageHeadline": "Fix deleting a file which you've shared with write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "ffaeaf97ae3dbdf0311e6e44d1577400b7db7da2", "messageHeadline": "Make write access test check recipient can't rename", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "dd644df6af7707c5f9188e8c131889d9aa2a4d6b", "messageHeadline": "Fix renaming of link cryptree nodes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 9}}, {"node": {"oid": "5e186b6772e28cae6513dc84bce597fb9db1a5d6", "messageHeadline": "Fix FileWrapper.isLink()", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ae41fec451e3e24886220afc63f915d765e7ed73", "messageHeadline": "Use link cap when updating cap in parent of a link", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "7ac400882a8c934de2deca08074e3a1574e7b791", "messageHeadline": "Fix link to target in cryptree link nodes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "ab472b0fba5eaf0f885a01339bf179c43ce7a6ca", "messageHeadline": "Use cryptree link node when granting write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 76, "deletions": 16}}, {"node": {"oid": "5dcd2a5b935652d328c8bfb3e3f14d1229322ae3", "messageHeadline": "Initial implementation of cryptree links (not actually used anywhere)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 157, "deletions": 46}}, {"node": {"oid": "353be9ff7abc35edc100fb1dd86bf97520496874", "messageHeadline": "Only add to wait list if full!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "00aeff296c90084d2347fa1b55876c5e78a5cc39", "messageHeadline": "Merge pull request #625 from Peergos/feat/wait-list", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 81, "deletions": 2}}, {"node": {"oid": "6c01504cf08a4326690705d25c11b71a2cd329a9", "messageHeadline": "Limit email length", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "4f0826081f65885620f40f7232f12fe56e7c7033", "messageHeadline": "Add basic email validation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "b9d1914afa7cde43061d4daad76c9b17ae950747", "messageHeadline": "Expose waitlist methods to JS", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "d10141a70d012e64b630f4857e41feeefe0f61ef", "messageHeadline": "Add option for a waitlist for signups on server", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 2}}, {"node": {"oid": "220ebd88a8c25689c64d5cbea0e6c882a16ab3be", "messageHeadline": "Add number of owned keys to stats", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "8c075f88594bb777c31dcfd309e91e9aa2d5f664", "messageHeadline": "Expand test to cover writable file case that was throwing.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 6}}, {"node": {"oid": "87c8e128b4456112d6c88c0c84e7edbaa41523b7", "messageHeadline": "Merge pull request #619 from Peergos/fix/cbor-encode-opt", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "7a180b1a2543d85afce374928b7dd162a62e4746", "messageHeadline": "handle null case", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "cc91a7d501fa96deca4b330427eddd2a7e1782f1", "messageHeadline": "Merge pull request #618 from Peergos/feat/usage-store", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 746, "deletions": 598}}, {"node": {"oid": "5509e9e315544e4d7c2b5fdf21df85ac2145b883", "messageHeadline": "Split UsageStore into WriterUsageStore and UserUsageStore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 28}}, {"node": {"oid": "e84f5a72f2dba312624095344f1f4734e36794af", "messageHeadline": "Fix direct GC", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "80331ddcf22c9fb05855ca959bc7dc8293a49e3d", "messageHeadline": "Log results of GC", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "5028cfb8e799fe5ce7e99657891f77683b313341", "messageHeadline": "Update S3 GC to save pointers snapshot consistent with resulting S3 s\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 74, "deletions": 8}}, {"node": {"oid": "ed4db137e20722afe43031b5a3c4ac247c9b75fb", "messageHeadline": "Fix get size calls for large identity multihashes.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "157f5750e57b75e3209231e1f7719b289bccd9d1", "messageHeadline": "update s3 library", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "943b6be6c48f935ccd73705435be5449366967f0", "messageHeadline": "fix direct s3 unpin", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "45b8c8897c6c491385afdf3f027a44e7f3bc33fd", "messageHeadline": "Miscellaneous fixes to direct S3 access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 19}}, {"node": {"oid": "3db920c36e7006625700321dd9b297933876acf5", "messageHeadline": "this became a huge bottleneck when testing async upload", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "34a388d575f814af60fcd4e87332df44320c7098", "messageHeadline": "add missing lib for s3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "ff50debafcd486ace8afafadc532d6f014f764fc", "messageHeadline": "Make method private", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "4a173874de57a7b78794216c5ad942031cf7f79e", "messageHeadline": "Fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b3568d3ba3449feb4a0d2086f222e99cfe283f16", "messageHeadline": "Extract out UsageStore interface from SpaceCheckingKeyFilter", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 737, "deletions": 598}}, {"node": {"oid": "7ff4c5f70bb83055b68ea02fd33a37a31a246ced", "messageHeadline": "Merge pull request #615 from Peergos/feat/s3-blockstore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 800, "deletions": 118}}, {"node": {"oid": "87d054fa497e042a396b9f7f2aa2664dc8eda40c", "messageHeadline": "Add a transaction store test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 0}}, {"node": {"oid": "70ee8f09cf76a443aff199a904287855e1d11cf5", "messageHeadline": "Change log level in s3 block store error", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "0d677bfee2fe1e0c7a0c0d6498ff57a2fca3f5d2", "messageHeadline": "Improve docs and reduce prometheus label count", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 9}}, {"node": {"oid": "951617d3008d51206e1e7f6a49ea2a3efc4958d9", "messageHeadline": "Update build instructions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "7a9b2515056f83d67b2a2fadf225be981d2381f8", "messageHeadline": "Add very simple GC implementation (not called yet)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 0}}, {"node": {"oid": "6da4f215e8795d266160c4fddeade3b72a58c5ea", "messageHeadline": "Handle duplicate transaction blocks (do nothing)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 2}}, {"node": {"oid": "e62e514249c42792ae6517ea30d765faf8a9727f", "messageHeadline": "Fix tests with default parameter value", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "a3c7be3533fb573a73701bd3026987db907ac123", "messageHeadline": "Don't require id param for FileContentAddressedStorage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "02da4556e7d0142bd19cb9b0cc8a3eafc2d317cd", "messageHeadline": "Make FileContentAddressedStorage use a TransactionStore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 21}}, {"node": {"oid": "f03627f0464e21ce0cf9af3dfcdce3ce9d83cf17", "messageHeadline": "Add transaction store interface and sql implementation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 235, "deletions": 87}}, {"node": {"oid": "e32cb7e6cbd9e046f770b3d98b34dab772dedd4d", "messageHeadline": "Fix log label", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "30cf9060b780c549cb76570249df1b3a71440d60", "messageHeadline": "Add guard against combining GC with direct S3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "a027c28fb681b53dde7c77aaf0a834b0ee809058", "messageHeadline": "Integrate direct S3 blockstore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 29}}, {"node": {"oid": "65508582168776d878868b0d74f3eba176afb0e3", "messageHeadline": "Initial implementation of S3 block store", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 345, "deletions": 12}}, {"node": {"oid": "246fb7cc4ef12f4dcb7155ea9cc8ebf3404e5086", "messageHeadline": "Merge pull request #613 from Peergos/feat/simulate-sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 26}}, {"node": {"oid": "19e571127ee6a464696db0638ccd21638fbf86ab", "messageHeadline": "[simulate-sharing]", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 42, "deletions": 26}}, {"node": {"oid": "e69610e19d283bf7ff7cac5c687c626fb7eaf6c5", "messageHeadline": "Merge pull request #612 from Peergos/fix/cryptree-fuzz-case", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "e8a9004cfe4b65583535ce68c72f5a1d3f0344ce", "messageHeadline": "Fix issue found by fuzzer.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "3d7c139d5b48fbb60ffa7d5c2a273a3832f2b4c4", "messageHeadline": "Merge pull request #611 from Peergos/feat/simulate-sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "e270de25276cda9dfc76694a95c9392b125a9323", "messageHeadline": "[simulate-sharing] make deterministic", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "32c3bba10a26c3b9e4c6efee198020b65a5f2213", "messageHeadline": "Merge pull request #598 from Peergos/feat/simulate-sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 505, "deletions": 154}}, {"node": {"oid": "19a93d60dc92c67df6849f78103e63da050ffb5c", "messageHeadline": "[simulate-sharing] fixup simulation logging", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 27, "deletions": 13}}, {"node": {"oid": "5a02319cd55f61094bbedae8c9f1fbf555b9250b", "messageHeadline": "[simulate-sharing] add sharing read/write folders to simulator, handl\u2026", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 82, "deletions": 36}}, {"node": {"oid": "7894695bdebd6102f31c68e1b5325339d76163bb", "messageHeadline": "Merge pull request #608 from Peergos/api/async-sha256", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 530, "deletions": 578}}, {"node": {"oid": "6a59d5a67b06a705d24563bac17a6cc618ef480f", "messageHeadline": "Make sha256 an async api.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 530, "deletions": 578}}, {"node": {"oid": "bdb414957562f17331b57cb0c230556a88ec0809", "messageHeadline": "Merge pull request #607 from Peergos/fix/typed-arrays", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 2228}}, {"node": {"oid": "43e34ad36ff11acf7fa8ea1c3fb861d080050291", "messageHeadline": "Remove unnecessary array copying in Chunk", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "65855d5f817e55889aa21111764149ea2ef426ef", "messageHeadline": "Remove broken implementation of sprintf", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 291}}, {"node": {"oid": "8c45f612a49b59eb28fa2a9a54e11887d22252f7", "messageHeadline": "custom gwt with primitive arrays backed by TypedArrays", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 1936}}, {"node": {"oid": "74c0f8a2e50275b4df168435703816c3f3817935", "messageHeadline": "Fix self hosting command in readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "835a2793e81916b56f935d3025eefe6d0144710f", "messageHeadline": "Disable more weak TLS cipher suites", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 4}}, {"node": {"oid": "e2334df5dccebadb1f030d897e5feb2dc67d369d", "messageHeadline": "Remove two weaker TLS cipher suites", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "82b7157e5cfe4003ae431aaf84fca473c49889fb", "messageHeadline": "Merge pull request #601 from Peergos/feat/java11-gwt-2.8.3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 214, "deletions": 1778709}}, {"node": {"oid": "85606af1c16deb283e4ddaae1ad00f73de078a03", "messageHeadline": "Merge pull request #605 from Peergos/fix/cpu-maxing-on-java-11", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4eeb4bfff1917298c0be29766f1fb7a722b2371b", "messageHeadline": "Disable TLS1.3 for now because it seems to cause CPU thrashing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b7a8cbd4dd70fb9624f02c5aaa4b721e3f0b6a76", "messageHeadline": "[simulate-sharing] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 15, "deletions": 5}}, {"node": {"oid": "c41e30ca4dbcfaa31601579820e4415b0b18152b", "messageHeadline": "Maintain order of sub commands, and reorder top level commands", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "6f2dc3eac4a7b8bba6e68fee66b1e3485096de9d", "messageHeadline": "Put ipfs command name in sout and serr thread names", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "af22545342f9d038abfde0cb0acb1ad635541f4a", "messageHeadline": "Fix validity of jar after canonicalisation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "1d57c7e15ada94b9bbd33142346ddf8cc84c00e5", "messageHeadline": "close calls finish in ZipOutputStream", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "eeb8b1bb68865cb204aa994e16baa65a50d4b810", "messageHeadline": "Enable passing reproducibility test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "ae8dde1755e56174b9b43fb57b1e65ec05b6ae95", "messageHeadline": "Add a basic test for reproducible builds", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "ef3d35f4f02bf15afe76a7f56ecd6d0fad4b79a9", "messageHeadline": "Fix classpath for junit tests run via ant", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2a3ba9c2c52c7eaa54aebd7c7500d7ee51f6c1e2", "messageHeadline": "remove dead code in jar canonicaliser", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 11}}, {"node": {"oid": "840f084e4abf06517c41be97002477e4e8156b64", "messageHeadline": "Remove manifest addition from jar canonicalisation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 4}}, {"node": {"oid": "54656eda084075a45f705483141135807af31594", "messageHeadline": "Enable Java 11 in CI", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6ea618daf5e87b669f94b712bd3f9ab225136e85", "messageHeadline": "Restore reproducible builds", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 6}}, {"node": {"oid": "59a15545e5b25038beea0cc16c4754e504b5831d", "messageHeadline": "Merge pull request #603 from Peergos/feat/log-ipfs-gc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 1}}, {"node": {"oid": "8738ac7a9d770fd779c2c76d062b2f03fa2d53c0", "messageHeadline": "[log-ipfs-gc] Export IPFS GC times as a histogram", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 20, "deletions": 1}}, {"node": {"oid": "ef30ec60e13152263d8b6ee1ace4d2091d2f61c8", "messageHeadline": "[simulate-sharing] check reading shares", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 19, "deletions": 5}}, {"node": {"oid": "27e4eb47b89033f513bb62b360196f14875fbe51", "messageHeadline": "delete some redundant files", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "3cd0a9add160f26eb8d5d45e190535d0e1ec3eb1", "messageHeadline": "remove gwt 2.8.2", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 1778919}}, {"node": {"oid": "527294d2bd67e48badd64bdab790a8fe0f441aca", "messageHeadline": "add custom gwt build 2.8.3", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 953, "deletions": 0}}, {"node": {"oid": "02aad4b9b25c8a88961697dafd5409d0346359eb", "messageHeadline": "gwt emulation classes and build files", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 128, "deletions": 718}}, {"node": {"oid": "c4088331410d83b69058f00bd9ef5aa42f1b34cb", "messageHeadline": "Disable restart test until we can make it reliable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "25d397fc6b19251eb81125b1af12b07f88362cd3", "messageHeadline": "Add log statement for metrics initialization", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "322030f8414efe36d34534bf03568e1e2d3ed992", "messageHeadline": "Merge pull request #599 from Peergos/feat/aggregated-metrics", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 86, "deletions": 5}}, {"node": {"oid": "b6b9d9de89d3afa49070d6c85eaaee2d0108a390", "messageHeadline": "[simulate-sharing] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 28, "deletions": 17}}, {"node": {"oid": "05af1e8483bde187a87dd1a456b50b56ec274b98", "messageHeadline": "[simulate-sharing] muti-user simulator", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 404, "deletions": 148}}, {"node": {"oid": "58fd84964c05f0006980b5be1251c4bd954615b6", "messageHeadline": "fix test classpath in ant script", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "0ddc84d46f9364897fb93c353db05a9a668935eb", "messageHeadline": "[aggregated-metrics] Add config option for exporter-address with  loc\u2026", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "69568aa8af508def04388ab7ae9912202be4c958", "messageHeadline": "fix rename", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "66cf3f53ab5c529d33159bcdfc481de7f435dd5f", "messageHeadline": "listen on localhost only for metrics", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8eb44d9c2de7ad063bec2a831ed25109e33beb3f", "messageHeadline": "add remaining core node calls to metrics", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "f7dc03d7d93bfc5678ef000a039f63722ad1c4d1", "messageHeadline": "add remaining dht calls", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "83522030489b9a0278b25ed0deb4c7b5e5c4f5b5", "messageHeadline": "fix rename", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1d730239fc4f43d36f8b5b87383bf86d0f33fbf2", "messageHeadline": "rename metrics args", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b689db78f556bb67a174a3face69c7ca2a9b5412", "messageHeadline": "Rename public file counter", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "bc882c61fa069d83ab306905eb64ee38aec90752", "messageHeadline": "[aggregated-metrics]", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 64, "deletions": 1}}, {"node": {"oid": "10002520c2b24f1554a6deed6684f608cccae1eb", "messageHeadline": "Merge pull request #595 from Peergos/clean/postgres", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 48}}, {"node": {"oid": "ffd4815c96d32b183a02d4f546f822af92e241b5", "messageHeadline": "oops", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "981c0ac6f7ad6404156bea066d8960c8164c985b", "messageHeadline": "Cleaner idempotent table creation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 47}}, {"node": {"oid": "8491a8cb0f70676a798dea771198923aacf48199", "messageHeadline": "Better user stats", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 6}}, {"node": {"oid": "8afcd069eef96ec93e333704efc63b3e88aa4adb", "messageHeadline": "Merge pull request #592 from Peergos/feat/postgres", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 145, "deletions": 82}}, {"node": {"oid": "4b6944785c7a8fdc3b83aa6ab7180f937c4609a1", "messageHeadline": "Don't start if there is an issue initializing TLS", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "aa5b0fd939e20d261a7775c89e8d0e21cd6205c6", "messageHeadline": "Allow space requests to be in postgres as well", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 62}}, {"node": {"oid": "c01dce264f18271c245c07837f0e0ad8d340e941", "messageHeadline": "Implement postgres as an option for a database", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 135, "deletions": 49}}, {"node": {"oid": "19045e25820b229bee35bd3316ae6017503f6f9d", "messageHeadline": "Revert \"Print log in junit tests\"", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "105d7a1908860dcfcf5a3e16be9404c8cd2b1e9d", "messageHeadline": "Print log in junit tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "074c93944f7c27362ef70176e2bfa01cdc22febd", "messageHeadline": "Increase gwtc memory", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "75f55510509285f200bd4cbeefcd793a65febdd6", "messageHeadline": "Add gwtc build step to github action", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "6ef6dbb14a07cdb63edaf5bc90d1086daa1c78d7", "messageHeadline": "Try out github CI", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 0}}, {"node": {"oid": "70e880a4874d6c5f176e95bf2dc26244cf16a793", "messageHeadline": "Let browsers cache all non root static resources", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 3}}, {"node": {"oid": "1c47b35571e5d2648ec554a24166b96d5499124b", "messageHeadline": "Try to fix flaky test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "57e43b0fb39f668d34cdd420a1e82d273f197fb4", "messageHeadline": "Try to fix flaky test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "cc883cbea7a6dffce5ad855b08a05847412df6a6", "messageHeadline": "use new method in public file handler", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 46}}, {"node": {"oid": "bf54bd92e98c5e87c0834eaa6202643b44b6a2db", "messageHeadline": "Implement method on UserContext for retrieving public capabilities", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 8}}, {"node": {"oid": "41f264cf79ee073553a6e3f30266824d4a7be9de", "messageHeadline": "Make public link paths absolute", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "275311b49d7d3a2de15fab4daa74744d23f7626d", "messageHeadline": "Change public file handler to do a http redirect to a secret link", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 46}}, {"node": {"oid": "1defeba1c30893fbf208a9bb87c541fa0d2be1b8", "messageHeadline": "Merge pull request #590 from Peergos/fix/atomic-read-revocation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 373}}, {"node": {"oid": "bff0cce1fc63b8ecd5b50acb576307ac1c52796c", "messageHeadline": "Clean up tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 168}}, {"node": {"oid": "d5feef54ec722e6c6a55e723c08ae14e92a5e4ae", "messageHeadline": "Fix test now that read revocation is more powerful", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 16}}, {"node": {"oid": "5d4d2b9b984b48480e0b1c1e619fab2b6d11ec29", "messageHeadline": "Make read access revocation atomic", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 189}}, {"node": {"oid": "5b633629c80f136b1c8435e631ab1408518da5f5", "messageHeadline": "Merge pull request #588 from Peergos/fix/rotate-stream-secret-in-revo\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 3}}, {"node": {"oid": "3ace3bfb48d3a0dc061224378495f174f232bf0c", "messageHeadline": "Rotate stream secret on files when revoking write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 3}}, {"node": {"oid": "a674a091cb590ef52f334d6c87fdf550bcbb3bd3", "messageHeadline": "Merge pull request #584 from Peergos/fix/nested-writable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1262, "deletions": 473}}, {"node": {"oid": "82dac24ccf364b01948a19c8f0ff7be5cde21b5e", "messageHeadline": "Fix another case revoking read access to a child in a different signer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 8}}, {"node": {"oid": "c4bccba4675cdb5a8b7170bed5d7a5c71c830454", "messageHeadline": "add failing unit test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 60, "deletions": 1}}, {"node": {"oid": "1a5c8933ef2f3f9cd75317e8985d9c4b35fe853f", "messageHeadline": "Correctly handle case when a directory cap has been revoked, and", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 17}}, {"node": {"oid": "b03f65ed7d577f47cd2850020ffd793cf95515c5", "messageHeadline": "Fix case when a cap is unretrievable but a sibling cap is fine", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 10}}, {"node": {"oid": "e0591009162de1c6f3978712271fe2e3cac4bdb4", "messageHeadline": "Fix case when cap is unretrievable (has been unshared with us)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 5}}, {"node": {"oid": "3bcee3599435ec4409b172a8ef930a5ef03458d6", "messageHeadline": "add failing unit test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 58, "deletions": 0}}, {"node": {"oid": "6b47ffaa5ea32f62d34c8a0931275b3124726dc4", "messageHeadline": "extend test to mirror web ui's usage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "85219d4b6ddcc535ad13fd331ef0b8c88528e97f", "messageHeadline": "oops", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f3286cccd5c958392ee7b951ce7df01695eaf45e", "messageHeadline": "Dedupe friending code in tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 145}}, {"node": {"oid": "1db25baf28a81751c42259060e4160606669897c", "messageHeadline": "Add another test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 0}}, {"node": {"oid": "f731aa12f24402c557c94702134fb1d8fefdd809", "messageHeadline": "Fix unsharing in the web-ui", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "3c338e237288956cc40b142eb0ae8991772a68f4", "messageHeadline": "extend test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 3}}, {"node": {"oid": "11be71654cd2524fcb97d18d4953387ade6d811b", "messageHeadline": "Make sure we put the updated pointer into the sharedWithCache,", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 5}}, {"node": {"oid": "50c03c081f3dc8375ab4d55c2404271208054280", "messageHeadline": "Make sure we don't lose snapshot state when de-authing a signer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 5}}, {"node": {"oid": "5e0091606c107272d3086b77ca78fa1731124295", "messageHeadline": "Make granting write access also use the same rotate keys method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 111}}, {"node": {"oid": "2b6d70022a23d00f24a60e3085a3b7768655abf6", "messageHeadline": "Add simple new failing test for granting write access to parent after", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 0}}, {"node": {"oid": "95f2060ff59740624926425097b9a24de134fe8c", "messageHeadline": "fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "3ef8c9a064b8d9b3c3b08a0a7e032ada3d8d71cd", "messageHeadline": "Fix parent links for children of large directories,", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 15}}, {"node": {"oid": "5f5136ee9cd37b740bbe4f776a60a3b453e8e01c", "messageHeadline": "Canonicalise paths to absolute in sharedWithCache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 25}}, {"node": {"oid": "b7edaaa8120e9de17427b03d8e8f07c3cfd3fb05", "messageHeadline": "When we revoke access to a subtree, make sure we reshare any surviving", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 52}}, {"node": {"oid": "d72036fd10be10c6f18ab266965d32f5e04ae697", "messageHeadline": "Fix parent links when revoking write access to a file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 15}}, {"node": {"oid": "b4594c9f1a6a96a957f673ae28e4174fd1cad664", "messageHeadline": "When revoking write access, delete the old version, and reshare the", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 12}}, {"node": {"oid": "a6d4ea8564a435b4de4d428d2a9f9d87aad512d0", "messageHeadline": "Fix rotating all keys on a file (symmetric link to signer was missing)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 10}}, {"node": {"oid": "875d44b77539ae1b6ea83bc5f8f1b21617d8dc24", "messageHeadline": "Fix granting write access when signing keys don't need rotating", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 16}}, {"node": {"oid": "afdcdf51ce0594232f9d3546e9878cd9723d0506", "messageHeadline": "Write access revocation seems correct even when nested.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 269, "deletions": 37}}, {"node": {"oid": "df60b0b70037f5f7dcf8021e88c8fe8573aea13b", "messageHeadline": "Remove dead code and minor refactor", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 85}}, {"node": {"oid": "a15d637a4dbc982cd6cdaf069c0a4fc6f2fc3ca5", "messageHeadline": "Move rotateWriteKeys to CryptreeNode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 426, "deletions": 132}}, {"node": {"oid": "becb20e5c3497dafce2dcfd345761eebfa64af34", "messageHeadline": "Merge pull request #581 from Peergos/feat/cli-main", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 5}}, {"node": {"oid": "4e7bf6a6c0a9d0d3802628e0db0b36e5537fbe99", "messageHeadline": "[cli-main] Add CLI entry-point to main", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 16, "deletions": 5}}, {"node": {"oid": "febf3358f17d3c24b0a95c5417b8f5e7b9392c28", "messageHeadline": "Test against malicious pointer cloning", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 0}}, {"node": {"oid": "5c20d27aaf5b717ef2f9c651172b7689c4bedb2e", "messageHeadline": "Merge pull request #579 from Peergos/fix/pointer-validity", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 5}}, {"node": {"oid": "7d6db098538038b31202d07fa879c415dcf33a1b", "messageHeadline": "Increase entropy in test usernames (we were having collisions)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "caa7ac0cd19c9fe19c8ac980938db0ad46f3b610", "messageHeadline": "Check validity of target WriterData when setting a mutable pointer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 4}}, {"node": {"oid": "6746edbde8beb33c69b39493194f391594234ec3", "messageHeadline": "Merge pull request #578 from Peergos/fix/remove-pin-handlers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 34}}, {"node": {"oid": "289237ffb2f83e070d25e84a48a6a27970bc9ee6", "messageHeadline": "Merge pull request #577 from Peergos/fix/pin-mirror-of-pki-data", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "8685a78a836c02c0389f715f391c070a0d317d5a", "messageHeadline": "Remove server-side pin handlers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 34}}, {"node": {"oid": "5680125047b89462bc0385138388173009517a48", "messageHeadline": "Make sure mirror core node pins the current version of the pki data", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "6f938844eae9f29a9f8e2f9c033ee0672bb7ac20", "messageHeadline": "Add util writable sharing method to UserContext", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "865a7b4236ac7399fc7f405cfecb77468818b772", "messageHeadline": "Cleanup ipfs node dialling args", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a77af97951efab785b170632899aee0e396ecaf7", "messageHeadline": "Fix ipfs node dialling args", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "82b7b5e2390ed9e293cf789555082c7001565df4", "messageHeadline": "Merge pull request #572 from Peergos/fix/nested-write-access-grant", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 155, "deletions": 9}}, {"node": {"oid": "8a8e7be5f3e146e9c8577947109ea3a40dd65c80", "messageHeadline": "Fix granting nested write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 155, "deletions": 9}}, {"node": {"oid": "87ac7977e8fe06bf68a6478523cb1d9970ceea87", "messageHeadline": "Merge pull request #571 from Peergos/fix/change-password", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 94, "deletions": 39}}, {"node": {"oid": "e4df6cfabeeb84b1fe107dc5a67356f2fed71e61", "messageHeadline": "revert adding empty owned champ when granting write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 4}}, {"node": {"oid": "4cbcec97fb543670c87d79c10a1d4ddbb0478bcd", "messageHeadline": "Fix error message", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "43c1a2622f71fa2d4aee2eb87a5a0f4c5f7022e3", "messageHeadline": "Make sure when we grant write access, that the new WriterData has an", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "fc247d460f0ceb2bb34da3099f319b7bff3e96d9", "messageHeadline": "Tolerate new jey pairs without an owned key champ", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "eb54f828226a79c82c447195ec26822806d292d0", "messageHeadline": "Fix copying of named owned key proofs during password change", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "7adc76b9f7c9b190cc589a7753891e01a891f84e", "messageHeadline": "Fix copying of owned key proofs during password change", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 81, "deletions": 38}}, {"node": {"oid": "76d45cd7c06afc7f064f56842e797ab67bc00374", "messageHeadline": "Merge pull request #569 from Peergos/fix/swarm-pki-node", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 190, "deletions": 148}}, {"node": {"oid": "6e64d59b2e55dac0c3b9dbe2b176f7df5f1ecb4c", "messageHeadline": "Expand owned key checking", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "8cd52597a0780e5127f30b3eb45fba5195cd8b6c", "messageHeadline": "Expand owned key checking", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 5}}, {"node": {"oid": "5ed5a8eea04dddb61602966fba2d540ed01e3cb4", "messageHeadline": "Add extra WriterData verification to some tests to check # owned keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 1}}, {"node": {"oid": "018ef8905275c38cb83e8a5de156f7cbe661e6f3", "messageHeadline": "Make arg explicit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "e196ffb17561da48960325052dc0228e80938b81", "messageHeadline": "Call swarm connect to pki node on non pki nodes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 2}}, {"node": {"oid": "41d8e18ca9830cd35feaa2976210b7a7a162ca63", "messageHeadline": "Ensure Space checking key filter doesn't commit partial state", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "c2a0c664bb6e0485a2f523cdeb66524fcc909705", "messageHeadline": "Change Command to return a value, typically the service that is started", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 122, "deletions": 139}}, {"node": {"oid": "1485603edc365b72aae2ecf0c4d02413032bd4d5", "messageHeadline": "More logging", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "1e8cfda7650132b651bf1c594f7ab4b74b060352", "messageHeadline": "tolerate errors calculating space usage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "c06288d0b24b1a93cbe3091614dede6ae0cc5e66", "messageHeadline": "Remove potential for stack overflow calculating space usage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "1440d8c5a3a7ac9649481c8161f65bc01ff30185", "messageHeadline": "Fix deserialization issue for usage state", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "614fbf9861fcd2368cb61c99f1a16047ebdd9b85", "messageHeadline": "Merge pull request #564 from Peergos/fix/revoke-read-to-writable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 4}}, {"node": {"oid": "d1a3d8ab75cf3ca67c1bc23f3c6460f3e4fc72f6", "messageHeadline": "rename test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c31624bc73487888eef49922764944197d321624", "messageHeadline": "Fix revoking read access to something which we have also made writable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 4}}, {"node": {"oid": "edeeafec9d4b0cb4e2fcaad72bfa215f2f863a51", "messageHeadline": "Merge pull request #561 from Peergos/feat/ensure-users-follow-peergos", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 0}}, {"node": {"oid": "990670c1567c7b117c9f7c40b5f2a8478873006d", "messageHeadline": "Added ensureFollowingPeergos method to UserContext.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 16, "deletions": 0}}, {"node": {"oid": "8302027031a1231b5951e7357783ed1a429e5b8e", "messageHeadline": "Merge pull request #560 from Peergos/clean/rename-jar-and-daemon", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "85c25d8164637da20f9ecf47b58e369b8811b0f8", "messageHeadline": "Fix a few more references to PeergosServer.jar", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "81392b949d6705ea7253cdd5a6d3afeb5c8f3391", "messageHeadline": "Rename jar to Peergos.jar", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "63acabebf5cab60153cd1ab59ee98e5e69229303", "messageHeadline": "Merge pull request #558 from Peergos/feat/native-image-support", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 28}}, {"node": {"oid": "7a8e059f7eacec3d106381d8edfc21b836c600a9", "messageHeadline": "Merge pull request #559 from Peergos/feat/usability", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "0903cf06bffa4b6199b61276bafad585022898ea", "messageHeadline": "Remove duplication", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 21}}, {"node": {"oid": "36d4d234c18aab61c8142b09128808397ed24729", "messageHeadline": "Doc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ade7dde4548cbb61bd9b2fb24ffcd7e799bf2578", "messageHeadline": "Default to using the real alpha network", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "87ca3d05397b7104b171fe0dff92d51be5e4d8cc", "messageHeadline": "Remove some unnecessary reflection to make native image builds easier", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 16}}, {"node": {"oid": "fe7b50929dd96654386da5e464c85cde840ee9cd", "messageHeadline": "Enable gc by default", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "dc6c64ca9d57a874d4813724f5a8a04bf10affc2", "messageHeadline": "Merge pull request #555 from Peergos/fix/truncate_fixes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 69, "deletions": 27}}, {"node": {"oid": "ddf436faccdd94f48166697a179d2cc4637550e6", "messageHeadline": "refactor truncate", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 69, "deletions": 27}}, {"node": {"oid": "2906c92cb0c003e96b6ffaf34c2f794c44ec3a07", "messageHeadline": "Merge pull request #554 from Peergos/opt/storage-cache-and-hash-checker", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "d75b881ff565b7446e1548c45fb24a8084d966f4", "messageHeadline": "Ensure cache is outside of hash verifying storage!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "d80cb35f80c6d7fef0f5bf6617445041d35db05a", "messageHeadline": "Ensure we don't have 3 nested copies of HashVerifyingStorage!!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "94d02adde244096d0b32b7becd13c95e1dd94fb1", "messageHeadline": "Fix NPE in calculating usage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "1dda7a03d6f19484408bc7ed52350c9551ac906c", "messageHeadline": "Merge pull request #552 from Peergos/cli++", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 243, "deletions": 53}}, {"node": {"oid": "80768e388a397dceee5e1af8c321aa6c32424b3c", "messageHeadline": "[cli++] update cd and help", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 80, "deletions": 37}}, {"node": {"oid": "95f1267072dc581a5d1431bdfd147a1c0f7f3053", "messageHeadline": "[cli++] Added command to process a follow request", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 101, "deletions": 5}}, {"node": {"oid": "276ec1d489be75987f068b62c428d8374006ea08", "messageHeadline": "[cli++] Added completers for followers and share_read command", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "8fb38655747aab8e554ab24a3b30f10f20ae453b", "messageHeadline": "[cli++] Add completer for selecting who to follow", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 18, "deletions": 3}}, {"node": {"oid": "ed3621550425ee40082c158e89c1141d56bb412a", "messageHeadline": "[cli++] Add argument completer for local files", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 72, "deletions": 38}}, {"node": {"oid": "bafcd55ed6c68c89937bcd376ea04e88dc125b3e", "messageHeadline": "Merge pull request #551 from Peergos/fix/usage-quota-proxy", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "80975a9d555301ec5efbfa266b6aa63f32897184", "messageHeadline": "Proxy space usage and quota calls to the user's storage node", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "c03b387c208098d93834ef142724700bff387cf8", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "29602c0baee9630b7b817fe44598fef25e8ee649", "messageHeadline": "Create FUNDING.yml", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "7814424c0d6ab760c0244622f34f8a00522b047f", "messageHeadline": "Merge pull request #549 from Peergos/fix/owned-keys-stack-overflow", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 4}}, {"node": {"oid": "17e4294adf9c81f07af76483b13613a37a5655b3", "messageHeadline": "Merge pull request #544 from Peergos/cli", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 820, "deletions": 21}}, {"node": {"oid": "900e94ce6282e027f5093a6d43c53110cd857373", "messageHeadline": "[cli] move NativeFileSystemImpl and Simulator back to peergoes.tests.\u2026", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "24d1f4e550b4d8ae035fc7a2582a82fc0e407e88", "messageHeadline": "[cli] Move peergos.server.simulator.Simulator to  peergos.server.test\u2026", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "4be6b7b10fef64d514bce7e4c48eacdf8691713c", "messageHeadline": "[cli] progress bar done", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "6994c7b72ffbb8713d65852e9d26b17f25c08010", "messageHeadline": "[cli] Added progress-bar to put command. WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 21, "deletions": 8}}, {"node": {"oid": "68044a687065077bea3c9c65ed46e80ba597ebff", "messageHeadline": "[cli] Added animated progress-bar for download progress to get command", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 78, "deletions": 9}}, {"node": {"oid": "6961e2976f7fd0b8cd6481a63a69a619cafad86d", "messageHeadline": "[cli] don't show hidden files in CLI", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 13, "deletions": 5}}, {"node": {"oid": "80d58e2afd6ed09fec8849e372f026ca4fa0210a", "messageHeadline": "[cli] Print messages from server when building UserContext", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 13, "deletions": 6}}, {"node": {"oid": "b1198202d0d631dffbbc6b4d6553783f96fd6a8a", "messageHeadline": "[cli] Add cmd '?' as an alias for help.", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "6e63315edffbd6e50bccef6c49a9fbad77256773", "messageHeadline": "[cli] dont throw unchecked exception on unknown cmd", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "7fc1b2f3f4af3428f9f7f9d86135b8cdc20218df", "messageHeadline": "[cli] Add back the pre-commit  hook", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 11}}, {"node": {"oid": "220513afde3b5b52646b7775d6ddeeadb2e8a53e", "messageHeadline": "[cli] use star imports, here we go.", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 17}}, {"node": {"oid": "8cacfe7216f122e65a57f9f7c0d8bad0d521f39d", "messageHeadline": "[cli] move package peergos.server.tests.simulation -> peergos.server.\u2026", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 13}}, {"node": {"oid": "2a1c9dbfaec116c4453062b9c97df9b28860bff9", "messageHeadline": "[cli] auto-complete update", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 44, "deletions": 22}}, {"node": {"oid": "237b621250733de6949ca099fcfe03c1f590a7bd", "messageHeadline": "[cli] Added autocompleter for remote files/directories in Peergos.", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 90, "deletions": 8}}, {"node": {"oid": "d49827069008a79b07765a8d2a6e42843b8b5f15", "messageHeadline": "[cli] move CLIContext, Command and  ParsedCommand into their own clas\u2026", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 118, "deletions": 103}}, {"node": {"oid": "648a7208761b1c46c2b97810bf5cf4b0d3f45a80", "messageHeadline": "[cli] Add local pwd", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 23, "deletions": 22}}, {"node": {"oid": "e00b5b0253591c858a969f5847b58236884cf5f0", "messageHeadline": "[cli] Add pwd and cd", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 24, "deletions": 1}}, {"node": {"oid": "982fc5ea117d3f3bd7c856f52bed015ceeda37d1", "messageHeadline": "[cli] share read-access working", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 39, "deletions": 8}}, {"node": {"oid": "c2d9df34e91237e3ad032d20dbb4820caf087b0b", "messageHeadline": "[cli] update help format, now looks like", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 46, "deletions": 42}}, {"node": {"oid": "8f2f5a7c68f58dd110a9094ccb88732144915996", "messageHeadline": "[cli] follow user and get-follow-requests working", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 82, "deletions": 42}}, {"node": {"oid": "4527609e93dbc2c6845ede15f8d11ce051bfd7d2", "messageHeadline": "[cli] passwd working", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 20, "deletions": 4}}, {"node": {"oid": "39ba9513c3c216f6930f4470ddf831422ba20d7d", "messageHeadline": "[cli] (much) faster space usage", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "7cd0c2faa32f3926026fd49b8e087c21c7bb00ce", "messageHeadline": "[cli] space working", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "5d2963e620cea070217174b87d9f03f43ffec1a1", "messageHeadline": "[cli] WIP: space", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "1aa30b567f88a29be5d273c930fc08a5f0190666", "messageHeadline": "[cli] Add  help cmd", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "d8d62a688ee25d2fddad5dc701a581b5d277d5d0", "messageHeadline": "[cli] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 21, "deletions": 1}}, {"node": {"oid": "5935f10b0966c744910e7ac17dd337086d1a3b3d", "messageHeadline": "[cli] Add rm, exit cmds", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 40, "deletions": 3}}, {"node": {"oid": "05cfae32fe9ee8aaf0aa46c97925e469682cf537", "messageHeadline": "[cli] get, put and ls working", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 404, "deletions": 10}}, {"node": {"oid": "9065547d1a77d4e29930ddf9c55fbe53af814563", "messageHeadline": "Handle loops in owned keys and add a test for it", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 4}}, {"node": {"oid": "34ffb9361fcb4fb1fa081dbcce6ad1d31ba1596e", "messageHeadline": "Merge pull request #547 from Peergos/fix/get-owned-keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "0c77c94ca8e93f45dbe07d7cd0e710e37e94d5ae", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "eff1a1a252f7685e28c79fb3e4a657948a78a488", "messageHeadline": "Fix WriterData.getOwnedKeysRecursive, which it turns out was", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "1d1b3db65ff3adc315c96b1b02f4591fac452437", "messageHeadline": "Reduce logging", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2c9d47841019b52f0fd9601568581a94eeeaee75", "messageHeadline": "Merge pull request #546 from Peergos/fix/pin-the-pki", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 1}}, {"node": {"oid": "088123a41372171f40c3a35a8f18e54989cddbf4", "messageHeadline": "Add option to fix the missing pins in PinChecker", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "65dfa12c52ed57617f0168d233d71ed62340b1a5", "messageHeadline": "Make the pki node pin the pki in ipfs!!!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 1}}, {"node": {"oid": "ba0fe21ced1de42a4d815f952179ab452a23f010", "messageHeadline": "Merge pull request #545 from Peergos/feat/gc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 358, "deletions": 203}}, {"node": {"oid": "7fd97d758682294fb137f04bf28db2354db38bd9", "messageHeadline": "Improve readability", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "52eaf69499d9def9a1f688ed035e5727df7e1231", "messageHeadline": "Fix GC timeout calculation.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 7}}, {"node": {"oid": "46fec5f60598993b68ad4a554c525ba851426128", "messageHeadline": "Clean up more dead code.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 56}}, {"node": {"oid": "a1c631978e8cd0d55a71c8567ced1f6d5ba03cf7", "messageHeadline": "Remove dead code", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 61}}, {"node": {"oid": "94ef83a6fc4c641bde29b3ed2c2acd58d5d16778", "messageHeadline": "Use far fewer transactions during signup, and critically no nested ones.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 82}}, {"node": {"oid": "e981bf9fe7e57905ba19dd92d72be06c5d3acc90", "messageHeadline": "First attempt at a transaction aware GC for ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 213, "deletions": 3}}, {"node": {"oid": "ecdcb0229a698e06f6d653987bc90b464fc998a1", "messageHeadline": "Merge pull request #543 from Peergos/feat/mirror", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 143, "deletions": 17}}, {"node": {"oid": "9ac7099feae90bd2bfdd047e202448cde66d9b57", "messageHeadline": "Rename vars", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "c48a54f61867c5628f2a17c0d5790b5fb1a32c28", "messageHeadline": "More logging", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "85157d646fb758dfb7d453c0bbb70e7e52b0fc14", "messageHeadline": "Implement an option to mirror a user or a nodes data (excluding follo\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 137, "deletions": 14}}, {"node": {"oid": "05811d1d7cf08f7881e3a77e491a3716802fcb2a", "messageHeadline": "Merge pull request #542 from Peergos/update/ipfs-v0.4.22", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 308, "deletions": 73}}, {"node": {"oid": "bb954e4de074d0a6706896f076080d3e87a3e61f", "messageHeadline": "S3 plugin fully working now!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 17}}, {"node": {"oid": "5b6d5cb2a14b7fe746885572ed06ee4d5978adf9", "messageHeadline": "Fixes to s3 plugin installation and configuration", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 3}}, {"node": {"oid": "4ff73df809e684478a6c9c2eb32261fdf202d979", "messageHeadline": "First attempt at configuring s3 plugin", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 1}}, {"node": {"oid": "d2f145b8ae7043e8b9073563b1cf0d81b2e4de0b", "messageHeadline": "Add S3 plugin for IPFS, including automatic installer.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 144, "deletions": 43}}, {"node": {"oid": "bbe35ecd74c2668ab2e98d2010d66e5e8ab7fb75", "messageHeadline": "Add ipfs v0.4.22", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 24}}, {"node": {"oid": "bcfe2895987ad0670bb5ff2456f760994c72c0af", "messageHeadline": "Merge pull request #541 from Peergos/fix/copy-to-bug", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 110}}, {"node": {"oid": "891a1ac43436108e3b93b37b544c74a119a80330", "messageHeadline": "make method private, clean up", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 27}}, {"node": {"oid": "4a030cd171fbe18429156ac7016b8559d7f22f22", "messageHeadline": "Ensure source and target writer are included in snapshot in copyTo", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "f23f02b5821bfd86ac3be88f5857f1801804b8e6", "messageHeadline": "Remove unused method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 56}}, {"node": {"oid": "e0b0f2a3a6ccdebb193e1cfdd761dee189ceda1e", "messageHeadline": "Fix copyTo when source is a directory containing a file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 58}}, {"node": {"oid": "daf359349f0f62cfd3126f0d8cee9d71bbbe63fe", "messageHeadline": "Merge pull request #540 from Peergos/feat/human-sorting", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 134, "deletions": 1}}, {"node": {"oid": "0d454b9e4fe9b25c496f2a3cd2e9b8e90d033fd3", "messageHeadline": "Human sort files returned in directory listing of public folders", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 134, "deletions": 1}}, {"node": {"oid": "05836d8ae758515e3e6d096968310c21a67af211", "messageHeadline": "added failing test", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 26, "deletions": 0}}, {"node": {"oid": "79efb405ccd86224025b8234cebd761749da2395", "messageHeadline": "Merge pull request #539 from Peergos/fix/time_tostring", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 1}}, {"node": {"oid": "90987a073efefe907c003b240bff02b65b34d255", "messageHeadline": "fix emulated LocalTime.toString()", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 16, "deletions": 1}}, {"node": {"oid": "4a4cb58c574f77de54d4d4151ceeba3631fe39c7", "messageHeadline": "Merge pull request #537 from Peergos/feat/truncate-file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 93, "deletions": 13}}, {"node": {"oid": "478c5c81a6aa34228610ef2dd238919b45a953b2", "messageHeadline": "Fix fuse truncate (still in O(1) memory)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 2}}, {"node": {"oid": "90b2c84c83b50490c2d311372f929643af64261a", "messageHeadline": "Use new truncate function in fuse", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 12}}, {"node": {"oid": "9dea190fdc2e7bcf9bc4522c533f14836a8f2add", "messageHeadline": "Expose FileQWrapper.getChild() to JS", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "f7aab4a048273aee162480ed49fcba4accc824d2", "messageHeadline": "Handle truncating to first chunk", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "061dfcf4fe25c1d5e4f7c0e4977c1d4933423961", "messageHeadline": "Add a truncate method to FileWrapper", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 0}}, {"node": {"oid": "747e4b074d640eaba68270fa95347341d88b033d", "messageHeadline": "Merge pull request #535 from Peergos/feat/encrypt-url-util", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 0}}, {"node": {"oid": "11249ae80dd0ce701d970cf438c121afee205bec", "messageHeadline": "add unit test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "f518865f647d8ff2808fbcb88331345f9c1421e1", "messageHeadline": "Explain constant", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "9823ec9476f18cc71236f0aa68e968441b9da108", "messageHeadline": "Merge pull request #534 from Peergos/opt/super-streaming", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 549, "deletions": 412}}, {"node": {"oid": "3c0dba4bd78239a0f77d60b59d3f7364af15fdc3", "messageHeadline": "Explain constant", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "af45a3fbab99fae34af2091b84c45aa19012a7f9", "messageHeadline": "Add util methods to encrypt and decrypt urls in the web ui", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 0}}, {"node": {"oid": "3a5038d37b23eb47309efc19630aa3d4d0817ff8", "messageHeadline": "Disable byte[] cache in Java entirely.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 52}}, {"node": {"oid": "ae86e89e09339f2b66b6d1c2c2831bd8325114e5", "messageHeadline": "The problem was nothing to do with threads! The problem was caching the", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "88b1f959238d7c0cfb679fab09fa0007c66230af", "messageHeadline": "Thread local is incorrect in Java, for caching arrays because the actual", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 9}}, {"node": {"oid": "457d5ca02d636ef22d27516784cf24f62d93342b", "messageHeadline": "Create a thread local byte[] cache for cipher text of fragments.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "5e451cc2d5862228439467f9d0f688e397be79f5", "messageHeadline": "Make sure to delete orphaned chunks during file cleaning", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "a2b6ce06ef123ca4a54d1a57111ffc65e0fffce0", "messageHeadline": "Remove unused variable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 13}}, {"node": {"oid": "2f9220b27f46ed4e42eb5d191bced0968ae13cb3", "messageHeadline": "Several fixes to make read revocation correct", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 21}}, {"node": {"oid": "f47b955f9b2fbb25ebe38a964c5e5c8bea5e4f85", "messageHeadline": "Fix reading more than two chunks in", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "a376d7c27ea4e3cfcf4d906347936af866131c80", "messageHeadline": "Fix NPE in retrieving publicly shared files", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ca2cff0e724ec67a133db0b788332b74944979e5", "messageHeadline": "Use the new super fast streaming function", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 340, "deletions": 253}}, {"node": {"oid": "c959f606fd4e0f50d830fd4848bec58d37d13fe2", "messageHeadline": "Implement the (backwards compatible) data structures necessary for", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 142, "deletions": 134}}, {"node": {"oid": "10b99a07c99e30d78867dae6ee08283c8aee18e5", "messageHeadline": "Merge pull request #515 from Peergos/opt/blake2b-in-js", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 10}}, {"node": {"oid": "476bbcdda92740167fb02b8393785115dfce5e47", "messageHeadline": "Merge pull request #514 from Peergos/feat/private-friend-annotations", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 148, "deletions": 8}}, {"node": {"oid": "9a6214f39a6fa35ab5dfbb3e3f1f1c88e722d51a", "messageHeadline": "spelling", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d270f15aed4a0cba2963942964b3c4abe3864332", "messageHeadline": "Allow a native JS implementation of blake2b", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 10}}, {"node": {"oid": "38bb01613c42c18de379adfd5c690b9135a1004a", "messageHeadline": "make sure annotations file is hidden!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 8}}, {"node": {"oid": "73e0d6bd2ce6206c33e2cdad1975475253c09a5c", "messageHeadline": "Add test for persisting friend verification", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 2}}, {"node": {"oid": "8cdddc0ba77e7f202515a0236622cf2823c3bf9a", "messageHeadline": "Expose FriendAnnotation.isVerified() to JS", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "9c71d3b8870c2b706253b8b67bf237c369a67322", "messageHeadline": "Implement ability to annotate friends with private data.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 8}}, {"node": {"oid": "af7327ff2b907d33da8df3a05b5ad85aa4d5756b", "messageHeadline": "Force charset for qr code to UTF-8", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 11}}, {"node": {"oid": "9fc83d31fa50a0cb7229db3b024f525eeeb1ade0", "messageHeadline": "Merge pull request #513 from Peergos/feat/upload-folders", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "6cd32b1a13e056550049c782fb6f59f763ee3638", "messageHeadline": "rename method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "683f0d5e78d47f085887eac80fec3c9a6026cb67", "messageHeadline": "gwtc fix", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "a91afbcd8989e9b3a0e49bcdc2c7d2dc9c8eca75", "messageHeadline": "Add util method for scanning a fingerprint", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "0c634b73f7427f6fee7cf24c5812e944a8ea6602", "messageHeadline": "Merge pull request #512 from Peergos/feat/qr-code-verification", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14533, "deletions": 0}}, {"node": {"oid": "86bae4902a7ef5b09173ff50e2072a87fab920c7", "messageHeadline": "GWT doesn't implement CRC32 or Deflater, import the GNU implementations.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3026, "deletions": 11}}, {"node": {"oid": "e0c9137f8a3defd0a45536f651551a8578c093a0", "messageHeadline": "Add method for generating a fingerprint between two users", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 0}}, {"node": {"oid": "72d1896ac533d2b3f8fc399f34d3c9a53a95b152", "messageHeadline": "Support multiple identity keys in fingerprint", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 14}}, {"node": {"oid": "edf392d5120d8e1f0405d72457803ca82fa73f73", "messageHeadline": "GWT doesn't have ImageIO, so implement a PNG encoder..", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 179, "deletions": 23}}, {"node": {"oid": "2068a53e0fff277b113350747bb9572b62c0dbe1", "messageHeadline": "Implement Fingerprint for verifying a user's identity,", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 177, "deletions": 0}}, {"node": {"oid": "07fe93350caa18b63ac10b30eef01cae7e7be489", "messageHeadline": "new exists js function", "author": {"name": "kevin odwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "360a1d219ea5f630d75dec8e5bff1e508e2ea221", "messageHeadline": "Add test for transformed qr code decoding", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 11}}, {"node": {"oid": "dba58d3cb4d085bb563c8d2573d2f7fbae45e13e", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "40cee04abb34ce6a1bedef9982c51399b139cd61", "messageHeadline": "Initial import of zxing qr code library and test for round tripping", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11110, "deletions": 0}}, {"node": {"oid": "aa25fec4c5cbc120bfe05bdea28bc742a3472cee", "messageHeadline": "Rename public links to secret links", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "869b359718ac1f09114c722c83ab2c6985cbdedf", "messageHeadline": "Merge pull request #505 from Peergos/feat/add-feedback-folder", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 0}}, {"node": {"oid": "d54347df12c38fa8f93dae03a98dac56ed83ed77", "messageHeadline": "Added feedback folder and some user testing notes.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 84, "deletions": 0}}, {"node": {"oid": "1c164e828f1b5e52e4685be4744ebfeff16051fb", "messageHeadline": "Fix uploading to publicly writable links", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "e825b930c71bb44296c21ddc4f825fbe20a28f2d", "messageHeadline": "Add ability to make writable public links... be careful!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 8}}, {"node": {"oid": "9e44a9601923edbb3568a35809f3d9ac59b68610", "messageHeadline": "Add util methods for admins handling of space requests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 19}}, {"node": {"oid": "2cc3a1ee4f6e1bb6802313c3da27ea0e47f6d090", "messageHeadline": "Only admins can retrieve pending space requests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "a300f83eafd1b074155650b20dc2d0ab2e11bab6", "messageHeadline": "Ad convenience apis for admins approving space requests.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 12}}, {"node": {"oid": "40aac2766f40540c76c0e550f84ef474fe98d843", "messageHeadline": "Fix bug in Champ diff which was assuming identity hash", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 7}}, {"node": {"oid": "e27a9f5cfdaaded93c31350a19f998a3ea9babe3", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 5}}, {"node": {"oid": "5a0a3711a69cc983383d2d32deb5e84a8f6f2c89", "messageHeadline": "Fix JS issues with long in space api", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 24}}, {"node": {"oid": "f875bf32690204bb3b66502a6579ee619e25d977", "messageHeadline": "Merge pull request #504 from Peergos/feat/space-request-api", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 572, "deletions": 51}}, {"node": {"oid": "0c502d6a43cc0fcb4b86a7e9d944373053426678", "messageHeadline": "add audit report", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "62e50dfdb4772e536a44290fae2b57788527ba2b", "messageHeadline": "Add convenience methods on UserContext for use by clients", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 5}}, {"node": {"oid": "71b4b06c8b183dfd3cf8a3c1f216965afc429e3f", "messageHeadline": "Implement the remainder of the space usage and requesting api.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 542, "deletions": 48}}, {"node": {"oid": "9f48162c3a29d6027e37b3d143655587f8d4daf7", "messageHeadline": "attempt to make test more reliable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0030a671bbb6cfdcb18347969b596209607f6a7c", "messageHeadline": "attempt to make test more reliable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "f531623c16b2952f46b29820bdbe39ff54654b94", "messageHeadline": "Merge pull request #502 from Peergos/feat/space-usage-api", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 418, "deletions": 108}}, {"node": {"oid": "8cbd8793026d251508399ee0b390b60e368fe9d8", "messageHeadline": "Fix error messages", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "39aef0701d7d4e7645b13f466858e2688e9adcaa", "messageHeadline": "Remove external uses of NetworkAccess constructor and make it protected", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 57}}, {"node": {"oid": "ef838ab2ba2244a087f8caa163b65ec85cb600b3", "messageHeadline": "reduce to 1 constructor on NetworkAccess", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 13}}, {"node": {"oid": "b7d9f989dadc26861bb1964213ba76a57734cf28", "messageHeadline": "Review feedback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 17}}, {"node": {"oid": "8212098f06eade417511fa7aa7a23b9cbd3001a7", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 12}}, {"node": {"oid": "f82c30d310b12bf533495fb8155bfa878afb7dd6", "messageHeadline": "Implement the first two calls of the space usage api", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 339, "deletions": 37}}, {"node": {"oid": "aad6d9e571d8cd5bdfd15cceb03831cdc2bc8b83", "messageHeadline": "Remove pki champ conversion code", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 74}}, {"node": {"oid": "bb24067d03162dbabc6e1ae01305b10a2406cf80", "messageHeadline": "use correct hash after pki update", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "9d2e57969caf1bf0e16323650e741b24019e0f9c", "messageHeadline": "enable committing champ conversion", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "98233e8836785d37e6ac73df56c55a0193e04788", "messageHeadline": "Fix pki champ conversion", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "7fa56481112ae12abb9223039a51ba3e4a57700f", "messageHeadline": "Merge pull request #501 from Peergos/feat/blake2b", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2175, "deletions": 96}}, {"node": {"oid": "e586b74b2e8a62c99cddb9e0a5a385a815cf0206", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 69}}, {"node": {"oid": "1c969918e2595138c134a49652d9ae643de0370c", "messageHeadline": "Log pre conversion root, which we could restore in case of some error", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "6d32e7f0ac0a2b19a77c8acf3bba2b7e678bcfe4", "messageHeadline": "Add conversion of existing pki champ to blake2b", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 3}}, {"node": {"oid": "58f36276f7f0b1c92db995cd57136e87556f8f9d", "messageHeadline": "Remove unused legacy option to run a core node without ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 54}}, {"node": {"oid": "161d13ceda8164a3065b45c82462715d148d2b3b", "messageHeadline": "Merge pull request #500 from Peergos/fix/unfollow-asymmetry", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 2}}, {"node": {"oid": "47af0ee35e31ae93d1a923f6bdc15981709090fc", "messageHeadline": "Added another check for unfollowing.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "c76aea0d1cf5f48fa905e2c8bac02bf49e126fbd", "messageHeadline": "Added check to see that root folders are not accessible after a removal.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "0ca4f7e019e5dc81a1eafd0cfa9aad36f94a03a0", "messageHeadline": "Check following/follower asymmetry in test.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "2085589032b228526cf027d93ab0cd2a55fe7130", "messageHeadline": "Fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "b569ebc5968e4cd96a39a2806712da14479cb638", "messageHeadline": "Merge pull request #498 from Peergos/fix/correct-progress-meter", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 2}}, {"node": {"oid": "e570c2d543a7fb8ce8f02d9315e148d2c51a274a", "messageHeadline": "class rename", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "0f483f5246e7cbf7e024c595725c716bbad32ea0", "messageHeadline": "handle 1st and last chunk padding", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 24, "deletions": 2}}, {"node": {"oid": "740ba966ca043b342d54f20d416fdfcf5398da09", "messageHeadline": "Parameterise champ tests over hash function and include blake2b", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 36}}, {"node": {"oid": "c27413b5d6fd5112323843e20cc1583490aed19a", "messageHeadline": "We store the key not the key hash in the champ", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 4}}, {"node": {"oid": "f5c84020185adab408ae3e475e68e79488e17181", "messageHeadline": "Fix the fact that we don't 0 extend usernames in pki champ keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "001a082af730556c891eb54683033220aa3047cd", "messageHeadline": "Switch to Blake2b instead of identity for username hash in pki CHAMP", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2103, "deletions": 4}}, {"node": {"oid": "e9bce3f04bd8fe92a435e623f5b9ae1e2cf0d741", "messageHeadline": "Move class", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "e66a8bfd7c239feccedee9e6ace89d3eac9939ae", "messageHeadline": "Escape html in public file handler", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 638, "deletions": 3}}, {"node": {"oid": "0ef859d243ca79f2ebe2fdbbe74ba52666cf0689", "messageHeadline": "Merge pull request #496 from Peergos/fix/extra-salt", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 73, "deletions": 27}}, {"node": {"oid": "f36d7922aca9a0c4b5e80db8a75ae997b7b2f293", "messageHeadline": "Make sure users get a new salt when changing password", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 3}}, {"node": {"oid": "0153391cedc0568493fe509611418fd4ed600b66", "messageHeadline": "Fix poststrap of new network", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "43b56142a65c2314b4570be441952a4cc8d074fc", "messageHeadline": "Add extra salt to username when generating a user", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 24}}, {"node": {"oid": "dc6faaa1307e63df94e8910b8a629ba2f0279fae", "messageHeadline": "Fix a few more tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "550f14cd293fb8d307e5dfff062a553a0995e568", "messageHeadline": "Fix more tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 85, "deletions": 33}}, {"node": {"oid": "595b7b3b68de498c156ff8d50d5633800a1f2f1e", "messageHeadline": "Fix tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "41d2232b1be474bc68900da52adeed01d979c0e5", "messageHeadline": "Fix test, and ban passwords the same as the username", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "927d1ae267889dd894aefb1bace24ea14d6e6983", "messageHeadline": "Unify error handling http responses, and make them static.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 104}}, {"node": {"oid": "1807df93369f93b914938941191d6bb31ff48496", "messageHeadline": "Hopefully fix restart test on teamcity agent", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "d9a83010344e8e037851124614abdccec369b6ff", "messageHeadline": "Fix updating username expiry", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "e54b51180bf6e8cf26f6904734e10b2200771587", "messageHeadline": "Remove previous version of ipfs when installing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 12}}, {"node": {"oid": "1d042fa24e41f256d66428ed0072b4e1c377f0de", "messageHeadline": "Merge pull request #494 from Peergos/dep/ipfs-v0.4.21", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2825, "deletions": 179}}, {"node": {"oid": "99a29470eff177a2f0abc4f3458e872e31580ba6", "messageHeadline": "Randomise IPFS ports", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "25c74fabbfdc38414d0ca740aa6bc8865fac9b63", "messageHeadline": "Enable TLS1.3 instead of SECIO", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "f84bd1e96a7e064b4e832e1f2dab5f03b9ad5d5b", "messageHeadline": "Remove superfluous classes and add source links", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1166}}, {"node": {"oid": "ab88bd76b4d46d27d1e2a29c964a5632c5871ab7", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 651}}, {"node": {"oid": "bc6fb18c9c1cfa2623e67869971f5eb4b4c77f38", "messageHeadline": "Fix compilation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 300, "deletions": 276}}, {"node": {"oid": "81175c8073b88b1d01b5e2375bd579be006cc31a", "messageHeadline": "fix test broken by url encoding header", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "7432308a3ffe8cb2f1a4553050a4834e764341ef", "messageHeadline": "Fix base 32 encoding", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4507, "deletions": 92}}, {"node": {"oid": "f322861b83129298446605d5a1f2aa8be1d6cb15", "messageHeadline": "Upgrade to ipfs v0.4.21", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 24}}, {"node": {"oid": "01b1a4af0ae3bcd2aca9023bc47bbf164396fae8", "messageHeadline": "Merge pull request #490 from Peergos/feat/restart-tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 382, "deletions": 82}}, {"node": {"oid": "cd5397e2001c3f93df6cbd7bdf9e15f4209e9e3b", "messageHeadline": "Add util method to get a child of the peergos dir", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "4a4369cb34c9f26f847d5fc04b1b24fa27496dc1", "messageHeadline": "URL encode error response headers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 9}}, {"node": {"oid": "cd786737ee656593758b4ec1ab8e813ed9a52e9a", "messageHeadline": "Add benchmark for multipart puts", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 0}}, {"node": {"oid": "e5f0be74be001a558dd6f2b19c894128cc414321", "messageHeadline": "Handle un-friending", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "d467f2e412baeecaa64225874e9946ce90193435", "messageHeadline": "Make login no longer retrieve a mutable pointer per friend.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 119, "deletions": 50}}, {"node": {"oid": "bca9d92be81a53205954cd9ae8e3e7f2aa9d3310", "messageHeadline": "Move entry point retrieval methods to network access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 32}}, {"node": {"oid": "9acdbfb6015a11350b5445338304942276f760fc", "messageHeadline": "Clean up process after test properly", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "ea91e6d02a26a24f4a70f4dec727f4522af331ab", "messageHeadline": "Create a test suite which can restart the server", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 3}}, {"node": {"oid": "8491275c995ce2218a045ea9f1c12db77625d55d", "messageHeadline": "Caches immutable writes as well.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "9f6e416cafa0b3d36c4aa5d49865997c025102af", "messageHeadline": "Fix bug in champ diff algorithm", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 154, "deletions": 34}}, {"node": {"oid": "cb10277cc6d47297dd054c58238469b37b62879c", "messageHeadline": "Exit early when no change in pki mapping", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "80a8a9d4189f61eacaef1bb4c7ebbb4caefca54b", "messageHeadline": "Don't repeat proxy start on success", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "406c7a642c1830ca333afdf45a67afefb5801da7", "messageHeadline": "Make starting ipfs p2p listener wait and retry on failure", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "e39756dd75ff2d16789e5ea8d8dcd2148cfde000", "messageHeadline": "Ensure symmetric provider is initialized when we're not a pki node.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "748ea3cf654022725838d22a1fcedb3948b4ef32", "messageHeadline": "Fix downloading files between 2 and 4 GiB", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f1e0506e8fc75e18b79d3570c22a35a62a7a77e6", "messageHeadline": "Merge pull request #479 from Peergos/fix/misc-regression-fixes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "93442c25eb357ee5ed2a31331d31ed5c1cb5b5c3", "messageHeadline": "misc regression fixes (incomplete)", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "131202500359f9b7ee67f2d6690fb245e1c34bff", "messageHeadline": "Pass filename into mimetype calculation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 9}}, {"node": {"oid": "1e8246bcc60e9115494f731af755e332fc8c3e25", "messageHeadline": "Make thumbnail absent rather than empty for images/video we can't dis\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "4b0d87e2e05b497d0b121974ff39e295fe2ba166", "messageHeadline": "Detect pdf in mimetype", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "b2707d659e66be38d15a6b5318c7a3bd3d24d69e", "messageHeadline": "Merge pull request #478 from Peergos/fix/revoking-write-access-to-tree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 13}}, {"node": {"oid": "c2965b1d75e008c4b51e911caf5ed9a059dec9b3", "messageHeadline": "Fix revoking write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 16}}, {"node": {"oid": "502fc06b0e339fda831ce27f0b4e161432a931dd", "messageHeadline": "Test reproducing account corruption by revoking write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 4}}, {"node": {"oid": "2388590d5cd6a70ddfa03f6c09192bd63bb8c3ee", "messageHeadline": "Add a cleaner util to clear failed partial uploads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 2}}, {"node": {"oid": "63e45ef00c8be6c52b51fea0cc105cf5810f1c6c", "messageHeadline": "Fix mkdir in a directory you've granted write access to", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "06758efa975bca6c22b39afcbc16f87826f6a12f", "messageHeadline": "Expose FileWrapper.getName() to javascript", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "72c3192d5674f79e2360526f6069a2a77a971690", "messageHeadline": "Ensure that trying to reuse a previous password fails, and gives useful", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 62, "deletions": 11}}, {"node": {"oid": "ef0b9741cb1b30024b97f8be2beafc2fd56720a3", "messageHeadline": "Fix IpfsWrapper to restart IPFS when it crashes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 24}}, {"node": {"oid": "bc16b237127c88b5b775c75a0939e1a7a6cf8ec7", "messageHeadline": "Merge pull request #472 from Peergos/fix/auto-clean-failed-uploads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 54}}, {"node": {"oid": "d33007979b158ba1110a62bc9933f382a4fde59e", "messageHeadline": "File JS file uploads to other user's space", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 50}}, {"node": {"oid": "2c3cb66a631524408cdf5a6fbc5f9a18d9e7886e", "messageHeadline": "Don't auto retry transactions upon failure.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 4}}, {"node": {"oid": "25198b19d6f4148ea9c3cdd3be717289bbafe839", "messageHeadline": "Extend test for granting dir write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "62afdd4578c4bb3956371ea7f4048ef6bf3d5afe", "messageHeadline": "Fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "adf498dba8cda18470487b0a8efc4e1b9746adcb", "messageHeadline": "Update read times inb mkdir benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e8dc40838859206ee3c4eea7045b19ec00ee1cf7", "messageHeadline": "Change mkdir to return the updated parent dir", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 13}}, {"node": {"oid": "32b45f10b0657c32c01dff55394550259c5e5013", "messageHeadline": "Improve file upload transaction names", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "80192e3dc9bcecc614cc180f42847b7bdb7c19e7", "messageHeadline": "Merge pull request #471 from Peergos/fix/concurrent-file-uploads", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 251, "deletions": 194}}, {"node": {"oid": "5a2ca03df4d2db74934d59e39b2a0a2be30c17c1", "messageHeadline": "Rework signup to not create a partially formed UserContext", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 93, "deletions": 74}}, {"node": {"oid": "d03e140f7810390db4ae9213ae1b4e0ba3d5f972", "messageHeadline": "rename vars", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "03a99993a11b056d40426ed60188cfe9b492c431", "messageHeadline": "Remove nested transactions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 43}}, {"node": {"oid": "420662052a01c6ed174c9bb00e2cde529c0a309b", "messageHeadline": "First attempt at fixing concurrent file uploads queuing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 107}}, {"node": {"oid": "6291e78c49b6477a6957a2863e23a03347fa0727", "messageHeadline": "Merge pull request #470 from Peergos/fix/follow-req-error-handling", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 14}}, {"node": {"oid": "76830a41f8760e6fbae3f306c67d3a2297e80d4a", "messageHeadline": "review fixes", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 16}}, {"node": {"oid": "35cdc27998fac469ec5dcc2b0bc1d20fc5ee83c7", "messageHeadline": "Make Java code return reason for follow request failure", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 27, "deletions": 11}}, {"node": {"oid": "903891ee53b7634e81339c41dace828d5a642fb8", "messageHeadline": "Merge pull request #469 from Peergos/simulation-ops", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 100, "deletions": 37}}, {"node": {"oid": "085ed681210364dc824aa513a665382b1ec5c36a", "messageHeadline": "[simulation-ops] simulate  rm -r", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 31, "deletions": 13}}, {"node": {"oid": "a459e522d9d3aa0275c4411f5cc0a63e23d4e4fc", "messageHeadline": "[simulation-ops] extend  getNextSimulation", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 21, "deletions": 14}}, {"node": {"oid": "c869e37b33b18dec5e9c4b3e5e7b8c1fecefdabf", "messageHeadline": "[simulation-ops] Add  simulation for delete", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 68, "deletions": 30}}, {"node": {"oid": "56f5612506034a85c8dd0f71db831c22983fa673", "messageHeadline": "Merge pull request #400 from Peergos/test/filesystem_simulator", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 800, "deletions": 1}}, {"node": {"oid": "336f518eee21509a98f50357456a6f2136f6095b", "messageHeadline": "[filesystem_simulator] rebasae fixes", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "1e45a9c4e6756bf8d9a37540c8f362abe9a0973d", "messageHeadline": "[filesystem_simulator] more logging", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "976dee4c9d3d59dfb03d9e3d6f8672b34e71d030", "messageHeadline": "[filesystem_simulator] simulator 1.0  working", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 61, "deletions": 20}}, {"node": {"oid": "5e4e9fd058b9a21d63848ad3c3ee63af617973df", "messageHeadline": "[filesystem_simulator] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "a7e4e4254b8aa17a5b7a4022e27ad173e56550ec", "messageHeadline": "[filesystem_simulator] WIP simulator", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 100, "deletions": 28}}, {"node": {"oid": "065823a0c184a1fafe13725a3540c76705ac3ea8", "messageHeadline": "[filesystem_simulator] add I/O simulator", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 247, "deletions": 7}}, {"node": {"oid": "5cbf8a06c61b220cd5ff7066f0f972fcc01c3ead", "messageHeadline": "[filesystem_simulator] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 27, "deletions": 1}}, {"node": {"oid": "4c521c0828af6302c027ee9bcc96efd580d9d688", "messageHeadline": "[filesystem_simulator] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "0ca9fd0210565f4472127b7c17cf8f6d33377593", "messageHeadline": "[issue-392] WIP: compiling", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 176, "deletions": 32}}, {"node": {"oid": "3ff83f7d95eee2e3b481415b89150493b9a0ce9d", "messageHeadline": "[issue-392] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 269, "deletions": 5}}, {"node": {"oid": "e85eabf023c8c4c54dfe7d569e5c04407f09a19a", "messageHeadline": "Merge pull request #467 from Peergos/fix/upload-to-writable-dir", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 9}}, {"node": {"oid": "c92b934c0efa39a5d388b15574f885c3faa4a71a", "messageHeadline": "Fix a few incorrect usages of entry writer when the current dir has", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 9}}, {"node": {"oid": "e96f6b57a94ba4608853132543b9b8dae19f1de6", "messageHeadline": "Merge pull request #466 from Peergos/fix/localdatetime-sort-js", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 6}}, {"node": {"oid": "3655019abfc77a5c7c8d6a62ba806671788865b0", "messageHeadline": "expose LocalDateTime.compareTo to JavaScript", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 6}}, {"node": {"oid": "5c95c56f5e1b3b52d5f851e30caa8d07466509d4", "messageHeadline": "Merge pull request #465 from Peergos/clean/api-cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 295, "deletions": 356}}, {"node": {"oid": "dbdbfaaed98f6489a6104cc9bd777b9494775d70", "messageHeadline": "Add method to quickly get the latest version of a file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "c1dc54cbc3e7d4d9365be294c64a4bfacc777b18", "messageHeadline": "Clean up the api to remove duplicate methods and reduce number of args", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 289, "deletions": 355}}, {"node": {"oid": "6eb5227881a4713a9f12d98104c212ded21e9cdf", "messageHeadline": "Merge pull request #463 from Peergos/opt/memoization", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 443, "deletions": 497}}, {"node": {"oid": "fc424c143da453065bc2937f5325f82fe3362729", "messageHeadline": "Fix more snapshot edge cases in rotate write keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "4c9feb2a4eecc3b1efeaae58fc86b6d2bbca08a2", "messageHeadline": "Correct WriteSynchronizer behaviour when a complex transaction commits", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 3}}, {"node": {"oid": "a35848e7b4d2649271f57de88e16fabfb3076b13", "messageHeadline": "Fix incorrect version of snapshot usage in rotating read keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "ce7101a93c6fff286e049239942b3ce0bd16bdbe", "messageHeadline": "refactor", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 20}}, {"node": {"oid": "a967babb51f911697b5b60736127387f55703c00", "messageHeadline": "Make sure snapshots have correct writers when getting descendants", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 58}}, {"node": {"oid": "d495924dfd1ef6b5d8922338da5c67170a4013f4", "messageHeadline": "Fix regression in rotateReadKeys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "7e7dbc6d5690a88f700542e0c370367de1082ecb", "messageHeadline": "Remove another nested transaction", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 11}}, {"node": {"oid": "2160e2ff0a82b8bf29b9c150d283c34b42f6b80d", "messageHeadline": "Fix copyAllChunks", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 28}}, {"node": {"oid": "e090da5324b7da5b6048c378087e2816cd6a01fd", "messageHeadline": "Remove some nested transactions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 38}}, {"node": {"oid": "9056dd9682d4f75792ba9a9b1e637fc8218d79cd", "messageHeadline": "Fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 5}}, {"node": {"oid": "709079dded0f13536f37df7b4d7fe7fa8023a406", "messageHeadline": "Memoize more things, especially getByPath", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 326, "deletions": 381}}, {"node": {"oid": "3b56cd0c59e1dd41e60f50b44bd9043db66bf227", "messageHeadline": "Make FileWrapper store the Snapshot it came from.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 43}}, {"node": {"oid": "600c9aff58fdbc8734a46ccf4ea941429f23d5c2", "messageHeadline": "Merge pull request #462 from Peergos/opt/java-caching-pointers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 14}}, {"node": {"oid": "5a4c2200f9ac2db9f4fb886e94c73932c0f5bb92", "messageHeadline": "Improve caching pointers to also cache after writes.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 4}}, {"node": {"oid": "6f97a14c114b82afe8fb79578e3a80d6ff2234f5", "messageHeadline": "Fix tests - use non caching pointers in multinode tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "3f4ff312add765d27e703dc0fafb5d5aa2af1c06", "messageHeadline": "Make also use caching mutable pointers, this speeds up reads by 6X!!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 12}}, {"node": {"oid": "38608079907c6a02ce10b77772362542da681639", "messageHeadline": "Add social benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 0}}, {"node": {"oid": "ed1463e8d78e4f96339479007e2762e5c9376a2d", "messageHeadline": "Add sign up benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 0}}, {"node": {"oid": "62ab41b4a05ed8641a1b4ef85c9f3d2a79ccd0b4", "messageHeadline": "Add medium file benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 104, "deletions": 0}}, {"node": {"oid": "516683bc3a857de53de7495fcfd54458776a223b", "messageHeadline": "Add small file benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 104, "deletions": 0}}, {"node": {"oid": "9ad9adc4745108696bb55122e12490eb941d9f84", "messageHeadline": "rename mkdir benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "893f71c63b157992642ab9e95a1f158399ef26e9", "messageHeadline": "Add login benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 0}}, {"node": {"oid": "34885b1d206c798fd97d9b203948ddc7050522e1", "messageHeadline": "Add test for recursive deletes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "f974e02076c5f0b78a984f39e631c3a0ad0135f7", "messageHeadline": "More timings", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "29d581b74493e85c3e98616c9dc77a1f3b51d318", "messageHeadline": "Add getByPath benchmark to mkdir benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 2}}, {"node": {"oid": "8990823c86af37f8ed3f8c83f8e09eff18783993", "messageHeadline": "Fix mkdir benchmark", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 14}}, {"node": {"oid": "f857f3125618942f68ffe295a0fdb6a894f5ad95", "messageHeadline": "Fix login for users who've changed their password before a restart", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "402421c37a44f7ad19c4f1e1d9a39a29901723cb", "messageHeadline": "Merge pull request #453 from Peergos/cesarosum-407-fix-fuse-test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 47}}, {"node": {"oid": "95d9e7b886fe488bc2e8615b1f6f5df9267cb702", "messageHeadline": "Fuse tests run fine locally. Disable them by moving to slow package.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 18}}, {"node": {"oid": "b56fe43bd4824d3d745f350474c4c49590aac9d6", "messageHeadline": "Make fuse tests use a tmp directory", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "7b54ea9414df331236f8f1410f0b4bd7539ffad1", "messageHeadline": "Fix fuse rename", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "e1059aa585988d26d0f657c11a52529e3f5596a9", "messageHeadline": "Revert create file test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 7}}, {"node": {"oid": "aeaf2eff947252d7aaf4fbc2825ec5393257661f", "messageHeadline": "Added a check in mkdirTests to see if directory exists.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "3ca32a4eef0d722038f3084c2b23799e11899738", "messageHeadline": "All error codes in PeergosFS are now ENOENT().", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "62902a03c9a0b4e29a1ca6ce009996549e5f1491", "messageHeadline": "Changed another error code on mkdir in PeergosFS.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b5bc3470775736a5f24337074b72ee2a53e9d99e", "messageHeadline": "Changed error code on mkdir in PeergosFS.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2e0b725942ae5d4f836feeade1f2af965524f105", "messageHeadline": "Changed default return codes to ENOENT().", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "20b20e802722c5575a6792e34c298802b151eb49", "messageHeadline": "Remove getCause from createFileTest in FuseTests.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ffa3a823396ddb4b6ee5bd4072ced27992fdacdf", "messageHeadline": "Merge pull request #452 from Peergos/fix/caching-mirror-pki-node", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 176, "deletions": 27}}, {"node": {"oid": "aef1fda00a8bd7c74ef81b21c33b298dd4ae48a2", "messageHeadline": "Changed error return code to -ErrorCodes.ENOENT() in all methods in P\u2026", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 15, "deletions": 15}}, {"node": {"oid": "7d374dfde8d2a808879778702d3e472794f92c53", "messageHeadline": "Changed error return code to -1 in all methods in PeergosFS.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "9ba6dee01e6bc75a6a0143b6ce264d702e21ae5c", "messageHeadline": "Changed error return code in write method to -1.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ca46f8ef2325e673e0261fc3990b37358046088e", "messageHeadline": "Changed error return code in truncate method to -1.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9f072dcfcecc44769cad8b505b7f290aeb092ed1", "messageHeadline": "Returned error codes to have negative values.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "19ae6e59c02f7de06f375406ba51d1d0dabd752e", "messageHeadline": "Merge pull request #451 from Peergos/fix/compile-cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 71}}, {"node": {"oid": "7b61cda8a2863883303604594ded00c5f1bcb992", "messageHeadline": "Changed return error code to positive int in PeergosFS.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "bba9fa45a2fc071e3b1c56757cf8f49122b65a1c", "messageHeadline": "Added getCause to error logging.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "636c25b9ddb690a08cdd5ab32f28d5d3f8dad86e", "messageHeadline": "Adding some error catch statements.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "a41247ac3237dc54769472fba7322b0e1cb9b4da", "messageHeadline": "Change to createFileTest.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "e7070b4aa0b7aaee5f1c5ae25e22396ec947b53a", "messageHeadline": "Fixed file creation error.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "d215682310c3f88656928cc5a7728c91b16ce8a3", "messageHeadline": "Trying new file creation.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 7, "deletions": 9}}, {"node": {"oid": "956a2c3c2dfb985cfbae01a14746c077bca65262", "messageHeadline": "Added new fuse jar.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "eaa91acaf6a482b8f0c51ecbc45b4163b2b00fe8", "messageHeadline": "Update jnr-fuse from 0.3 to 0.5.3.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "84eddc608ad9455817a7cdd5eb8ba1cde15f56cf", "messageHeadline": "Renaming random file variable.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "3e446cbf0bf631156cf052b25e98a52d73391c53", "messageHeadline": "Checking file properties before attempting to change file length.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "15a96fe6a8af9904249fbed47b878d705033a0f0", "messageHeadline": "Changed access level to rws.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "7031c5512525e42e3cf6f8f808c048cccbf0ddae", "messageHeadline": "Getting length after closing file.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "265f9d97adda27e3a315fff592b3a20f0e99ff6c", "messageHeadline": "Testing with initial file size 0.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "1e8abb4798a6b8cc6d9cff24bcd08fe240226b14", "messageHeadline": "Testing with length calculation out of test assertion.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "19e97989142917f3ba02dfead76b3da5d49043f2", "messageHeadline": "Create the random file with the path cast as string.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ceb936daa1abdf01793fb6e0b0571657c960c162", "messageHeadline": "Setting the file pointer to 0.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 4, "deletions": 30}}, {"node": {"oid": "2e1ba6bdad331da0c85716261410b586b93413bb", "messageHeadline": "Remove truncation and test file increase first.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "722feac81fb60969c1f1b77079b3bcb69e3c5cec", "messageHeadline": "Changed build.xml to only run FuseTests, modded test to log IOException.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 24, "deletions": 13}}, {"node": {"oid": "91c4a676991a89a2d4862519c52cd991dbb92bb9", "messageHeadline": "Testing rewrite of truncateTest.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 48, "deletions": 1}}, {"node": {"oid": "c39f4469fccd32347f3bab6e40a23728ed6196e9", "messageHeadline": "Changed newsize from int to long in truncateTest.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "afdb6abb0fd2092754948d6b76cdb268e66cd37f", "messageHeadline": "Enable mirror pki nodes to cache the pki state.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 176, "deletions": 27}}, {"node": {"oid": "fc9e223fbe3af3c226867f11c1bb0fc69d89a6cb", "messageHeadline": "cleanup gwt compile warnings", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 17, "deletions": 71}}, {"node": {"oid": "8fb1722e83830723424e2eed1198dd2fda0ff721", "messageHeadline": "Fix upgrading ipfs when a prior version is present", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "db95836f679b9c8211d522aeaffc5934c81ea1d9", "messageHeadline": "Merge pull request #450 from Peergos/upgrade/ipfs-v.0.4.20", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 25}}, {"node": {"oid": "9b629bcc02fc621965b18cb9ce6b4bdfe2fa0573", "messageHeadline": "Merge pull request #449 from Peergos/fix/ipfs-proxy-restart", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "3bbd53e0c9794415a3b57f478a1a5fa729eaa681", "messageHeadline": "Upgrade to ipfs v0.4.20", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 25}}, {"node": {"oid": "4570e5c8d057642eacd281a0072657325980e92a", "messageHeadline": "Restart the http proxy in ipfs after ipfs crashes and we restart it", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "ded63b5577ecd4453ff55186c549bdcedce72b51", "messageHeadline": "Sort public directory listings", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "9047f28acdbc409d47cf10269ff1ff8d65edb96b", "messageHeadline": "Comment out java video thumbnailer because javafx is no longer in java8", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 60}}, {"node": {"oid": "5bcc71552e6add78ff0eeb0dc1b6b475d75989a7", "messageHeadline": "Merge pull request #444 from Peergos/fix/composable-mutations", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1182, "deletions": 710}}, {"node": {"oid": "d0f1a8d7aff3b9c11f017975041069a4b710a206", "messageHeadline": "Review feedback. Including restore previous js method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 12}}, {"node": {"oid": "b9cf2dad7413267a9229e0e894dc476c8f74186e", "messageHeadline": "Ensure uploading a chunk returns all the snapshot, not just the", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "5b8c01924a34997703ddc8aea87d1be54461b496", "messageHeadline": "Fix last test!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 10}}, {"node": {"oid": "2dbc48731191b868fe27c2894e40129960e706e1", "messageHeadline": "Fix getting next chunk of cryptree node", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "a3a3ec3f47b410b6521f38a2919c0a269df89b39", "messageHeadline": "Fix copyTo snapshot for file sources", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "83f48c9f97dcf3897818cdd165be88cb658cdd20", "messageHeadline": "Generalise MutableVersion to Snapshot", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 359, "deletions": 317}}, {"node": {"oid": "07ac76fbf575a08e0ef87debe78f9061fa1ddece", "messageHeadline": "Further restructure of WriteSynchronizer to use MutableVersion", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 367, "deletions": 332}}, {"node": {"oid": "fb803a192e9a24f4a58fa50954c5ac47eb2c12a2", "messageHeadline": "Handle complex mutations which modify a different signing space", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 9}}, {"node": {"oid": "4ce7198a6fae0d48187b7a9e2cd52f2f6b3987bc", "messageHeadline": "Make sure we are using the WriterData for the correct key when", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 4}}, {"node": {"oid": "1fc699bf0a63270bc1ba22325f6f1b4082086b78", "messageHeadline": "Fix a few issues with multi-chunk directories", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 16}}, {"node": {"oid": "6439ffa5ac65d26e497e37a2ca9e8a4bc527d858", "messageHeadline": "Force WriteSynchronizer gets to use the latest mutable pointer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "ca798e64a9b1c7f405e2a95ff13ce67ade8cff62", "messageHeadline": "Migrate a little more and fix internalCopy test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 15}}, {"node": {"oid": "9a658dcf39b87d01f732672c7cfc85c1951d4e79", "messageHeadline": "WIP convert more to functional style", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 261, "deletions": 207}}, {"node": {"oid": "eb83c18e6b7fdbeef4a0efb14062ec95d3429232", "messageHeadline": "Merge pull request #443 from Peergos/fix/mp3thumbnail", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 18}}, {"node": {"oid": "008f4cc333503b2e4ed7adb495e4fad2790a88ca", "messageHeadline": "better error handling when thumbnail can't be generated", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 24, "deletions": 18}}, {"node": {"oid": "c5ccc3e06107e9ffbcbdaafc140d0dfd03092e6e", "messageHeadline": "Make file reads also transactional (read a particular version of the", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 25}}, {"node": {"oid": "18f07582949b7af2446e860901310f71b595953a", "messageHeadline": "Implement complex transactions which can have partial commits.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 534, "deletions": 325}}, {"node": {"oid": "5c02eef70148277494df1fe561f27de2d7ead26a", "messageHeadline": "Change write synchronizer to enforce single commit per mutation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 192, "deletions": 224}}, {"node": {"oid": "0af0a269e3606e1b74c4e52c38b4f342986c5472", "messageHeadline": "WIP", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 81, "deletions": 2}}, {"node": {"oid": "95d65114a2a4f3489502de07ddc55dc36167a37d", "messageHeadline": "Merge pull request #441 from Peergos/fix/space-usage-monitor", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 17}}, {"node": {"oid": "21a515f6854772bd8223ac5283e31b952e321229", "messageHeadline": "Fix SpaceCheckingKeyFilter so that restarting the server is < 1s.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 17}}, {"node": {"oid": "e05627723e3c580e06d249c67b084d5ab21d23b7", "messageHeadline": "Merge pull request #436 from Peergos/fix/more-identity-change-handlers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 94, "deletions": 57}}, {"node": {"oid": "20fd89cf8affcf1b94c075505014e4048cb78390", "messageHeadline": "Merge pull request #437 from Peergos/fix/shared_with", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 577, "deletions": 95}}, {"node": {"oid": "8e85eb66d873a9e940af4679339bc0343f378278", "messageHeadline": "Fix handling of root entrypoint", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "bc8cb0ffcae5746ff2207145679210b12285473a", "messageHeadline": "Fix all remaining cases of a friend changing their identity key?", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 67}}, {"node": {"oid": "7d98b8f84b620545d7ab19dd87fe7aee32856091", "messageHeadline": "review fixes", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 85, "deletions": 95}}, {"node": {"oid": "d742499d46405fbc9882a80a340c41cd53658a8f", "messageHeadline": "cleanup", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "a5be4c6833b8e74a9a9838c43806a571e35a5c32", "messageHeadline": "copy and move actions should not *copy* sharedWith entries.", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 19, "deletions": 43}}, {"node": {"oid": "fc30428e84dd8fc80db0e4bda1d98ef27305ec57", "messageHeadline": "Fix another case where a friend's identity has changed.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 13}}, {"node": {"oid": "2f513b09ed95c942cd07ab3d137585b5c8903f2f", "messageHeadline": "implement isShared", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 9, "deletions": 13}}, {"node": {"oid": "18dfb1c49da747cb2429925a04390c30512eb9bc", "messageHeadline": "rework sharedWithCache", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 562, "deletions": 41}}, {"node": {"oid": "02d6ab9e5eb4e7143a006b2c24f9d5d1856e9754", "messageHeadline": "Fix jar static file handler on Windows", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "69a633b9719f29fe8ed48285d2adea323339e932", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 16}}, {"node": {"oid": "3ee71913eff09572f4b7de5b648ca535209e3d2d", "messageHeadline": "Merge pull request #434 from Peergos/fix/repair-broken-entry-points", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 29}}, {"node": {"oid": "afaf4359f1e89b2c2094a84c997c10865e6afa24", "messageHeadline": "Correctly parse extra mp3 type", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "b7044b72006678f656e1ba685aa423a6e01c3e3c", "messageHeadline": "Repair entrypoints that have been broken by a friend changing their", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 29}}, {"node": {"oid": "9d2d78d04b0d9197e01f5d754686f4bfe5e51bf6", "messageHeadline": "Merge pull request #432 from Peergos/fix/handle-friend-identity-changes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 20}}, {"node": {"oid": "adfd7ae64556d5048e713e37fe70c1544bace60f", "messageHeadline": "Add comment", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "67570459a3ee4434f57fa6691be192a1937edfaa", "messageHeadline": "Handle when a friend changes their identity key.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 20}}, {"node": {"oid": "6f03dcb4bcfc3973d4a920b82e67ba163ea45c2f", "messageHeadline": "Make sure AsyncLock doesn't hang if the initial supplier errors", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "71c39f528cd25694d0638a19b85a36c889231014", "messageHeadline": "Handle error during Space usage startup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "b1a9b4029be13397f1fd7a55ed9769704ef70b5a", "messageHeadline": "update readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "30cc3b2822e7780e23bd2e8241a48be08997925a", "messageHeadline": "Make ipfs swarm listen on all interfaces", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "79c3c7120f0eb533f558c5a7f768428800f74a08", "messageHeadline": "Add testing of multiple seeks on a reader", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "34441de4e503fa5266092b9956b6877043ff813b", "messageHeadline": "Correct command logging in ipfs wrapper", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "9e72d6ab51df24076f9b46437fd5801bafead9f3", "messageHeadline": "Merge pull request #429 from Peergos/opt/skip-without-data", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 27}}, {"node": {"oid": "de21beeafc66983d95fd15d839f037b5a5f2b988", "messageHeadline": "Don't reset stream on forward seeks", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "42db61220f2e125edd9b06a6992b1c1f02bd8409", "messageHeadline": "Optimise AsyncReader.seek to not unnecessarily download file data", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 26}}, {"node": {"oid": "44438455a0232598f880e9238678ea590cbbd193", "messageHeadline": "Ensure mirror corenode updater keeps running", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "dfe8df9ffdfd257aac94f100fce064c5e7998fd1", "messageHeadline": "correct demo server node-id in readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "68ed83b2f8cef39c00cdfbced1571afa3be6d8dc", "messageHeadline": "Merge pull request #428 from Peergos/fix/windows-ipfs-installer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 10}}, {"node": {"oid": "160541d796a4f793f921922ae1ad52ef5c9f4f2e", "messageHeadline": "Merge pull request #426 from Peergos/fix/delete-at-quota", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 8}}, {"node": {"oid": "7c56deb7649d69156a6ae06b6d7e3e26233b7493", "messageHeadline": "Fix ipfs installer and manager on windows", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 10}}, {"node": {"oid": "405e5bca5fc14fd4fd8dfd7c6b433c57bf559d8b", "messageHeadline": "Improve quota exceeding error message", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "0d3c48da48d5e33cb38832973ef78ac60485d2b8", "messageHeadline": "Allow some space tolerance when a user exceeds their quota", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 6}}, {"node": {"oid": "366b993a805ea042419ed0f77a94fe12ae8c785b", "messageHeadline": "Merge pull request #422 from Peergos/test/champ-delete", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 21}}, {"node": {"oid": "fbc81550681b8762090a0bcf16c9c502bf99d2d5", "messageHeadline": "Improve UX around the time check in getFollowRequests()", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "f01061633e2033604ec6e6e5c239eac35fd3fcee", "messageHeadline": "Merge pull request #416 from Peergos/cesarosum-381-feedback-mechanism", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 0}}, {"node": {"oid": "e1fffd142050a418b4630329020056799e322de3", "messageHeadline": "Fixed sendFeedbackToPeergos test method.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "b3a6386925271a53f5a036407c987d9c2501a640", "messageHeadline": "Fix champ delete edge case", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 21}}, {"node": {"oid": "9180135470d91a7d30d0af2660212a959b57a5ce", "messageHeadline": "Merge pull request #420 from Peergos/clean/remove-legacy-corenode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 280, "deletions": 832}}, {"node": {"oid": "28be937b09e76b32b7e932c69bfa9ff099c4ea7f", "messageHeadline": "rename var", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "722b41fe9894736aae22fb8736f124e8a5904b4c", "messageHeadline": "Put all sql in one place", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 29}}, {"node": {"oid": "ec1b81a5c3e9d8a2832bae2421097d460bb24d59", "messageHeadline": "Extend champ test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "134e519ae4fff6ea041b1ef0509b2ade783e5c0c", "messageHeadline": "Fix champ test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "c35e4935f44234b0a4644c8dd619dc8e3afd7d2b", "messageHeadline": "Extra champ test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 0}}, {"node": {"oid": "11112a9c2410fe71a1b445f2bcdc7667dce01e48", "messageHeadline": "Clean up follow request sql", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 12}}, {"node": {"oid": "270d2511c8dd15c1fd6091451026514c4adc96ba", "messageHeadline": "Make mutable pointer sql use actual sql CAS", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 13}}, {"node": {"oid": "bb17577d7e1660ca6524bcf46140a984c067dac9", "messageHeadline": "Remove dead code", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 21}}, {"node": {"oid": "e2357ade9629f089b20da0de2e845e12b90d27e1", "messageHeadline": "More sql cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 88}}, {"node": {"oid": "524fb92693a9ee4c035ee26af3e0e0a6baedd5dc", "messageHeadline": "More clean up of 5 year old jdbc code", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 191}}, {"node": {"oid": "5b4c57ae9e7940c8183b36c5407fe2eb2cf7740e", "messageHeadline": "Remove the legacy implementation of Corenode.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 376}}, {"node": {"oid": "dd2bac7a7ef39b0c757c3e1b2a516dc2844bee54", "messageHeadline": "Changed the username of the new user to be randomly generated.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "887f863ad947a55314c491cb84c426f43ab3e67c", "messageHeadline": "Changed user names in feedback test. Reverted to original test for fo\u2026", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 8, "deletions": 10}}, {"node": {"oid": "502a15b0b23c4026c0f674da5e2176b32f308249", "messageHeadline": "Test method sendFeedbackToPeergos now runs correctly.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "dd66179f4e03c9a8204c2acd95040eca05d86bf0", "messageHeadline": "Split out tests for following and sending feedback.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 25, "deletions": 9}}, {"node": {"oid": "85d350918c1b928395248365fd573226ad147a5f", "messageHeadline": "Added a test to ensure feedback can be submitted and read.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 18, "deletions": 0}}, {"node": {"oid": "927f1b76b2c45641836b996335841542e6a5db6a", "messageHeadline": "Changed feedback submission to create a regular folder in the user's \u2026", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 6, "deletions": 7}}, {"node": {"oid": "fb885ee1314280863daffd5df0edae13e4442fe8", "messageHeadline": "Added submitFeedback method to UserContext.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 36, "deletions": 0}}, {"node": {"oid": "2e79d3a71f32f8cc599f1a1a842b36ff0b7a64a9", "messageHeadline": "Fix upload progress for files smaller than 4 KiB which are inlined", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "55457c2a0fdf37637af292dab9118c4ff7c336a2", "messageHeadline": "Fix absent thumbnails", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 11}}, {"node": {"oid": "5e762ac94ffe3cda5773d11439dd620da3e36aff", "messageHeadline": "Merge pull request #419 from Peergos/fix/write_sync_additional_calls", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 49}}, {"node": {"oid": "1a7eb94b39e62fea17c7d46298c04c2170af2bdb", "messageHeadline": "Merge pull request #418 from Peergos/fix/speed-up-mutable-writes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 7}}, {"node": {"oid": "d239075d82a9a35b97f74445720faddcba8b90eb", "messageHeadline": "test cleanup", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "f411dba30361c1ab2094e2e221a813c3b7feb854", "messageHeadline": "write sync some further commit calls", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 29, "deletions": 36}}, {"node": {"oid": "17446710420127a881734bf553b029cf37d40d07", "messageHeadline": "Speed up mutable writes by > 100x", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 7}}, {"node": {"oid": "0dc0d8214b8a301bd32dc29a70a076676c142563", "messageHeadline": "Merge pull request #417 from Peergos/fix/duplicate-write-synchronizers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 19}}, {"node": {"oid": "4f14d14b922599b23d1d5a0a429d7561702c0869", "messageHeadline": "Make sure we don't have two duplicate write synchronizers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 19}}, {"node": {"oid": "7b7a6a4ba1120366473e9c4d8f2d6f07d2f83c63", "messageHeadline": "Merge pull request #415 from Peergos/fix/write_sync", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 141, "deletions": 91}}, {"node": {"oid": "7b0ca71559a60a51cb45106c65adc49d4c614557", "messageHeadline": "review fix", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0e94b23abb3126ca7fd8b5bd5f15586d4d79a944", "messageHeadline": "remove useless proxy method", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 9}}, {"node": {"oid": "be534276513130ff74575a6d58239adc9d48de89", "messageHeadline": "introduce WriteSynchronizer", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 140, "deletions": 84}}, {"node": {"oid": "57eebec892b9ac8415fb139030752c15c29e469c", "messageHeadline": "Fix UserContext.getFollowers()", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 16}}, {"node": {"oid": "d3e3ef9a92908e544026f0ce668674608aad7449", "messageHeadline": "Merge pull request #412 from Peergos/feat/cap-object-size", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 461, "deletions": 335}}, {"node": {"oid": "310dbd7069a1c0b5fba0ccbc44b466ebc4764ed7", "messageHeadline": "Fix gwtc type inference", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 8}}, {"node": {"oid": "7bd038bdfbd03738348f9a86107709172781a0cb", "messageHeadline": "Fix quota test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f608af1beb4744eafb929e6c91dcf6c9c5453ced", "messageHeadline": "Fix owned key champ - don't reverse the key bytes more than once!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "500b86b692caec8bb695d9510b45bc8a870c9447", "messageHeadline": "Make multi-user tests runnable individually", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 13}}, {"node": {"oid": "d88be89744742dbc40bf96f451df378130d7c45b", "messageHeadline": "Fix removing an owned key", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "ea74e64b34adfcf0c7ad6728293d15287128a732", "messageHeadline": "Fix granting write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 12}}, {"node": {"oid": "abf1174315eee98e1ecea93b0089b69fd722b2fe", "messageHeadline": "fix comment", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "33f2cb43cbd21cceb391d37303d2d72f1861ec66", "messageHeadline": "Move owned keys on WriterData to a champ.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 331, "deletions": 255}}, {"node": {"oid": "7dcf6c4d327890ec7fcc95b94e6295b536fbfa64", "messageHeadline": "Error if trying to write a block larger than 2MiB", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "640e2b4335389c6a85dfe575a9deb1b5764e4315", "messageHeadline": "Implement blocking friends using new file base entry point store", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 23}}, {"node": {"oid": "d664c93843c731e63eda920001e8dc457a357a3b", "messageHeadline": "Move entry points from friends into a file in our space.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 33}}, {"node": {"oid": "05e6cd4b1b307f37729df2b212815a8572bd69e8", "messageHeadline": "Fix tests to use new pki-init command", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 9}}, {"node": {"oid": "14d53dde0cd2227f81feff9e3a211a148a64a491", "messageHeadline": "Make pki-init also create and publish the /peergos/releases directory", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "74314a6b8a25a50a0c206da635ffe0a02082fb4c", "messageHeadline": "Split pki command into pki and pki-init", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 1}}, {"node": {"oid": "7064ee8092a00eb4aaaf49a43819d9c8895e0855", "messageHeadline": "Merge pull request #411 from Peergos/feat/signup-filter", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 117, "deletions": 23}}, {"node": {"oid": "34dac8cab0fd4d58e63b484c67327cd04cba82fc", "messageHeadline": "Merge pull request #409 from Peergos/feat/unify-dir-file-cryptree-cbor", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2224, "deletions": 2231}}, {"node": {"oid": "c73275da7bb06eb3388ba622d10a7e46a1f44ef5", "messageHeadline": "Merge pull request #410 from Peergos/feat/key-owner-proofs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 454, "deletions": 465}}, {"node": {"oid": "13700afdea960ab1968943e35ef8b95985d93e69", "messageHeadline": "better comment", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a552f23b6e713276178cea71240e1d415cf947f5", "messageHeadline": "Use better method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "da53c70097d03aa36978920c74dbf6362bb148a1", "messageHeadline": "Fix public links to files", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "b7458dfcaf15dfd96b4df67f15b88a7c24cf7611", "messageHeadline": "Fix gwtc :-(", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 85}}, {"node": {"oid": "753fb491a594cb7c8427e83cb507d63327a26c95", "messageHeadline": "Only allow 1 storage provider per user for now until we implement it.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "2d81936fc62e36dcfc6cb60147ea85aac43684c9", "messageHeadline": "Explicitly store all local usernames and their quotas.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 115, "deletions": 23}}, {"node": {"oid": "ced9a6858a8754607a26290fd0d04b4ea5efafb8", "messageHeadline": "rename var", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "94bfbbc0cc3893367bc8fc1ac225ce045fe3f8d9", "messageHeadline": "Review feedback - fix names", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 27}}, {"node": {"oid": "c674a0d88dbf818a57e726488b2f931e54bacdec", "messageHeadline": "Try reducing test heap size to 2g", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 36}}, {"node": {"oid": "00dee2a3ee5e11a02e457531f838236ea7491faa", "messageHeadline": "Ensure we update file size if we append past the end.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 181, "deletions": 228}}, {"node": {"oid": "0fe328ffbda22567785d0b5841c6c659eea78d9c", "messageHeadline": "Inline public keys using identity multihashes. This removes many network", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 5}}, {"node": {"oid": "db27156289a83ec07377d03fe34e247ac774e72a", "messageHeadline": "Move to having owned keys in WriterData require a proof from the ownee", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 180, "deletions": 119}}, {"node": {"oid": "4e077488f13bd3d0ced3fc2e044f9f9754f8504d", "messageHeadline": "fix delete at quota test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9e65d3ccdfc3833a596477e62585e81cad7109a2", "messageHeadline": "Fix another reused key during cleaning of dirty files", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 11}}, {"node": {"oid": "12b07b83839ac45e293109962880acfb72dbb852", "messageHeadline": "Fix another reused key", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e379571567ad242d5ddd3258283958c6534a289b", "messageHeadline": "Add tests and invariants to ensure correct (different) keys are used for", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 7}}, {"node": {"oid": "73e5240da2d894c7b7d2e539226e919f1d5d9211", "messageHeadline": "Fix multihash serialization for large identity hashes, and use it to", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 86, "deletions": 65}}, {"node": {"oid": "3e7b73ca24e0674459f22a47c4f4f30382483ad5", "messageHeadline": "and a few more usernames..", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "796dad2bf3e832a31d740a1603df6d14acfcbe08", "messageHeadline": "ban admin and a few other usernames", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "5b4dab5772c1f80246dbb32a9950a6e5c6279fd6", "messageHeadline": "Fix gwtc issue with Cid", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 23}}, {"node": {"oid": "221c2f1603ad98265615bd4bed1fb6f2c19a6941", "messageHeadline": "Fix quota test broken by padding of files and dirs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "776362f0a379e544335ec4cfc5ae36fa9efc6215", "messageHeadline": "Fix revoking file write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 28}}, {"node": {"oid": "ba7a49cd6a417d8e3d0f04b53042870409988d55", "messageHeadline": "Remove superfluous argument from erasure coding days", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "a41e18984bb901cd7010c194f9a3f51e1d9f9eac", "messageHeadline": "Fix compilation after rebase", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 59}}, {"node": {"oid": "16fe91967c777913f3df57e29697d8faabf09e5c", "messageHeadline": "Fix rotating symmetric write keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 35}}, {"node": {"oid": "b8438c1075c59371a07c1558922ac785fc2f20c7", "messageHeadline": "Fix multi chunk directories", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 22}}, {"node": {"oid": "cf92d585d73452e2adf8c2a1129c36e9e061947e", "messageHeadline": "Fix signing pair rotation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1ae506e6b6587a2e50ab7955f718610628d222d3", "messageHeadline": "Fix cleanRenamedFilesReadAccess test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "bc67c5b7ebfce430e835b84341611987777aaee7", "messageHeadline": "Explicitly disable identity mulithashes until they are fixed.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 7}}, {"node": {"oid": "a4e68d330539b081a3a229ffd59ebb9efdece511", "messageHeadline": "Fixed multi chunk files!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 45}}, {"node": {"oid": "31ec651f218244be0352f5ea56653deb524de6c7", "messageHeadline": "Remove usage of Fragmenter", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 120, "deletions": 173}}, {"node": {"oid": "930d0eb69abb5f526926795d07d97e876912a380", "messageHeadline": "Correct test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a46068bcac7b2ecb3ae4cc5347f24030c50530b2", "messageHeadline": "Fix getting parent key on dir when we don't have the base key", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "0048c3bbcd92262bbca9cdac25a97c31ea551a2f", "messageHeadline": "First test passing again!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 49}}, {"node": {"oid": "19ed12a08583ff6516ecdda5da42df892a32665f", "messageHeadline": "Compiling! But not working yet.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 129, "deletions": 234}}, {"node": {"oid": "cf9148d7940765d9e140d63f3c2a6f4bf5b9001b", "messageHeadline": "Closer to compiling, mainly file upload and download left", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 244, "deletions": 200}}, {"node": {"oid": "8b5c37848bee6052271c7eb7e84a8848356eb827", "messageHeadline": "Merged DirAccess and FileAccess into CryptreeNode.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1016, "deletions": 1021}}, {"node": {"oid": "28bba9d5c39a4186d55b851457853fe14e54fa9a", "messageHeadline": "Change CryptreeNode from interface to abstract class", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 26}}, {"node": {"oid": "8429d24a08a6c01b22a205ff45ed634851b0b2c8", "messageHeadline": "Fix file chunk chaining broken by 3e27a49af44", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8bd2ce94aae203384c7971413fbb892b16698b8f", "messageHeadline": "Fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "e3afe8503b8abda4aaa07cba3929c597dc230c5c", "messageHeadline": "Make NetworkAccess.getMetadata() take a capability rather than just", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 79}}, {"node": {"oid": "0cfdb4d2e6aa4e4fe3df920675d80ce95efc518e", "messageHeadline": "Change FileAccess and DirAccess serialization to be more easily", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 65}}, {"node": {"oid": "bd2e0be8f54ab38d6c57e5caee9bbf1a9b800804", "messageHeadline": "Change FileProperties serialization to be more easily extendable (map)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 18}}, {"node": {"oid": "875d21cd8a220e5d58c9635cbfc110ff14afd1b5", "messageHeadline": "Merge pull request #406 from Peergos/cesarosum-fix-thumbnail-generati\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 76, "deletions": 27}}, {"node": {"oid": "9a26e7d7cbd7333fc0ae0bc110ab3b3132a29438", "messageHeadline": "Changed arg name in generateThumbnailAndUpdate method from hashPointe\u2026", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "55cf3778795b28cf1ffe67de38b084cd3f650fcd", "messageHeadline": "Fixed changes to fileSize.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "a69447b844e28fb6315a1fb6f354e914ffda6150", "messageHeadline": "Made sure to reset the fileData before passing to generateThumbnailAn\u2026", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "b4e6bc7af694d20d2edaa9cad78659cce11c2830", "messageHeadline": "Refactored thumbnail generation and upload.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 6, "deletions": 18}}, {"node": {"oid": "f65c04af3d5bc758802bddeacdead97963ec37fc", "messageHeadline": "Refactoring of generateThumbNailAndUpload.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 16, "deletions": 10}}, {"node": {"oid": "3faa25f570be95e97d43e42099af77c1637800ed", "messageHeadline": "Patches to PeergosFS.java and UserContext.java.", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "f4e0fa87d6f8759057eab8ad983be588b51ee94f", "messageHeadline": "Changed order of thumbnail generation and upload in FileWrapper.java.\u2026", "author": {"name": "Jonathan Budd", "email": "jonathan.budd@protonmail.com", "user": {"login": "cesarosum"}}, "additions": 89, "deletions": 36}}, {"node": {"oid": "e8cdc79b7809affffc1a6eed5917aec1311abed4", "messageHeadline": "Merge pull request #405 from Peergos/fix/non-crashing-usage-cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 73, "deletions": 61}}, {"node": {"oid": "8786df082abec4323f9738651f47cbad51c8382d", "messageHeadline": "Fix usage state cache", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 73, "deletions": 61}}, {"node": {"oid": "ea84f4205a5658c0af183739f4411a38e3c7530b", "messageHeadline": "Merge pull request #404 from Peergos/uncaught-exceptions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "b17eff162b07faba40a1a31036b93fb3889e232e", "messageHeadline": "[uncaught-exceptions] Add logging handler for uncaught exceptions", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "5056827151da1938a79878cdc8a0fd1b32a54430", "messageHeadline": "Fix Windows ipfs binary extension", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "20b1a089902c0a8d3ddc54d9bcbebdd214012205", "messageHeadline": "Fix Windows ipfs downloader", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "22e42fb29b717c27504989dd96f503d518c1d93e", "messageHeadline": "Fix Mac OS ipfs installation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 1}}, {"node": {"oid": "e81d0a8b2333a7437107d259e66b9955c980ae2c", "messageHeadline": "canonicalise architecture for non amd64", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 9}}, {"node": {"oid": "c561f060eac14160a020f8d3bfe158e465f3e09a", "messageHeadline": "Expose FileWrapper.isUserRoot() to JS", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "ad94a3845cd8963a2a5d59bd57b484ccd13afb2a", "messageHeadline": "Merge pull request #402 from Peergos/fix/owner-only-chmod", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 12}}, {"node": {"oid": "f22ec2024006f7cc8d10ac0fad0d1ca24ad4920e", "messageHeadline": "Merge pull request #401 from Peergos/feat/ipfs-v0.4.19", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 8}}, {"node": {"oid": "473f5f42ebeb4242e20083f4bc6118d05c5ed871", "messageHeadline": "Push owner check for sharing down a method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 12}}, {"node": {"oid": "6159c17b34254607511f7e67d6c4af964c2906c9", "messageHeadline": "Ensure that only the owner of a file can grant write access to a file,", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "fba5cb41795da5acfd0ac655a0c69ffbfb165266", "messageHeadline": "Upgrade to ipfs v0.4.19 for all platforms", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 8}}, {"node": {"oid": "1a1ef8613e1b4c1e850148b1cabfede739d9eee6", "messageHeadline": "Fix EOF in public file handler", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "398e5ea42ddf92dadf6da53646e063ab8fc623fa", "messageHeadline": "remove legacy email handler for signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 140}}, {"node": {"oid": "59ab5b7dc8a291a8d973ddae7a3174565ddd6d36", "messageHeadline": "Fix size calculation in FileProperties for files between 2 and 4 GB", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "805901a16927ea767199b161c9a9c7cf4167e3a1", "messageHeadline": "Fix size calculation in JS for files between 2 and 4 GB", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "539b5b19a6855bb1f4a0462cd67cb9bb23b8ea19", "messageHeadline": "Replace Hash.sha256 with a native JS version when in the browser", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 4}}, {"node": {"oid": "9ef1030e814820befdc7caa4eda5cd2452c0b005", "messageHeadline": "Replace System.arraycopy and Arrays.copyOfRange with simple JS loops", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1931, "deletions": 0}}, {"node": {"oid": "6b14597e26ed89e449c1bc9f0eb62440ed1fe144", "messageHeadline": "Implement ForkJoinPool in the browser", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 123, "deletions": 83}}, {"node": {"oid": "777aeae0994df983417bcf945963efd44c8eb5a4", "messageHeadline": "Further reduce array copying when reading a chunk.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 9}}, {"node": {"oid": "a8c26f44b7bec99ae2862b4c29886e35248b62f8", "messageHeadline": "Reduce array copying when reading a chunk.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 16}}, {"node": {"oid": "73a822516f1af125eaf8785b38b7e6aae20f373d", "messageHeadline": "Merge pull request #394 from Peergos/fix/upload_transactions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 9}}, {"node": {"oid": "a4433d2c583eab876e4a4ec03be24e1b600b693c", "messageHeadline": "Merge pull request #306 from Peergos/issue_304", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 395, "deletions": 67}}, {"node": {"oid": "9639d3cd0a4a5e331170481a6b438ad761bc0cb0", "messageHeadline": "Don't calculate and store a file's hash in upload transactions.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 9}}, {"node": {"oid": "021259ae8991efcdb07117746626658f34baacd1", "messageHeadline": "switch from ram to file based ipfs mock in champ test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "c19f4860289c9f07fc96c15db43082fd152f917d", "messageHeadline": "Add another test for champ insertion order independence", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 0}}, {"node": {"oid": "d5f75d7d65a36b2198f2a380dabe12207be6dd19", "messageHeadline": "remove debug main method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 29}}, {"node": {"oid": "7845b09dbecaa593e31422d5f445508f0f5ba589", "messageHeadline": "remove superfluous imports", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "f7245d5b04e78b98ff0c1f961adab61f588a3e49", "messageHeadline": "remove superfluous import", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "cbd6a4038d9544db374dd457abc294421b385f03", "messageHeadline": "Remove duplicate starting of space checking key filter", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 9}}, {"node": {"oid": "c311f6ea97d384e54aba89913490bd3bfb59b6fb", "messageHeadline": "fix comparator", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5f7d4aa11c72a4139bf364e9a5bae58629a7a1ab", "messageHeadline": "remove unused interface", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "54f25591b708a8fe234eb475589277c9735ec916", "messageHeadline": "remove unnecessary constructors to fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 8}}, {"node": {"oid": "7cdf5b1a6b69169eba93f4495af3fc57a9a4524b", "messageHeadline": "[issue_304] rebase pergatory", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 22, "deletions": 30}}, {"node": {"oid": "f4e9578908b181aba9cb43adbf9948508f14ae87", "messageHeadline": "[issue_304] usage-state caching", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 451, "deletions": 65}}, {"node": {"oid": "8f9d217f7f3155fc44db2426a8ff33ff1bd7191e", "messageHeadline": "Remove invalid test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 103}}, {"node": {"oid": "ba90771dd79d46af740473bb27a9bf09264cc3d4", "messageHeadline": "Merge pull request #393 from Peergos/feat/versions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 264, "deletions": 56}}, {"node": {"oid": "a16fcca1a0321280beb26f95468cd24214d4acf3", "messageHeadline": "Fix http mutable pointers and social network to use versioned url", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "56e73981c018c29d8feeee5ac0b1a84437883377", "messageHeadline": "Fix http core node to use versioned url", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "57c0d76f04343e0a275d31b4f0323b3a48829a71", "messageHeadline": "remove code smell", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "13abe14edd117f3fb7d46a5b03e949259bc4d52f", "messageHeadline": "whitespace", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "583e41d238109ae1b6bdcf3ef3e4b4a57ec394d4", "messageHeadline": "javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "653605d836ede543ea29b86ffd819c2a39c461ce", "messageHeadline": "Explicitly version all api urls", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 17}}, {"node": {"oid": "7fee1ce6c2cc7debd6b0167f2e8b215f6278ded4", "messageHeadline": "Implement the server side handler of the version call", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 28}}, {"node": {"oid": "8125b584b48557abb44163a0a34b2e2164f84c69", "messageHeadline": "Implement a version api call for Peergos servers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 111, "deletions": 19}}, {"node": {"oid": "5affc4cf5379a939be95639c6e2d682445d8654a", "messageHeadline": "Implement proper version class and correct min ipfs version", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 7}}, {"node": {"oid": "be94e1d404e70aedcdf99bd93c09eadb76ab55b6", "messageHeadline": "Add tour video", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "756a88169d27e964eb093beb8125e704a9c89a4e", "messageHeadline": "Ban a small list of usernames for future compatibility with file system", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 5}}, {"node": {"oid": "d7705d3956761d311761ee840cebba8b6349ab69", "messageHeadline": "Add publisher util, and guards against someone publishing their home dir", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 19}}, {"node": {"oid": "37615985ee7aed2a3b441d257dd85a96668930e8", "messageHeadline": "Implement Paths.get() in gwt", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "2c2d62cc8e6d0441f6e9fd5bcea8a37af6555a1b", "messageHeadline": "Make JS uploads use transactions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 21}}, {"node": {"oid": "832a95e7c917087c6703b8fbaf3cdc13cd346caa", "messageHeadline": "Fix signing up in web ui", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 11}}, {"node": {"oid": "cd3d7349dfd0bb325f14aaabbff7917ba06c951d", "messageHeadline": "Merge pull request #390 from Peergos/feat/write_revocation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 589, "deletions": 108}}, {"node": {"oid": "3ab0001bf7155ab9ea7ab251183a1df50fa039bf", "messageHeadline": "remove unused method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 13}}, {"node": {"oid": "40698d7cf46c94b559c671e4e4df901e3fdaf40e", "messageHeadline": "Booyah!!! Revoking write access to directories is working!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 33}}, {"node": {"oid": "3e80d4fc60af16fa9e8c1a267a0bc1dacd2f1a09", "messageHeadline": "Use different random", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "968b22c64108aa5007ef2ec6912ee96c4ae17061", "messageHeadline": "Fix a test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "60ec6a4c882f4866569202dade98feed3833fd2b", "messageHeadline": "Add a failing test for revoking write access to a dir", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 133, "deletions": 5}}, {"node": {"oid": "5ce99ad7a71e16115adb89178120bdb94f94b8c4", "messageHeadline": "Merge pull request #389 from Peergos/fix/multi-chunk-unshare", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 245, "deletions": 109}}, {"node": {"oid": "204dbcde0ee7a1ff01d6c192b4c07a2b636291d0", "messageHeadline": "BOOYAH! revoking write access working for files!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "6d0eedb24d8984d110335ed09eef661559ea0c30", "messageHeadline": "So close...", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 22}}, {"node": {"oid": "3952425313e749739eb0db7cc26ed40f1645fe47", "messageHeadline": "Closer yet, but still not passing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "8e7b05d73a6ccdd99cd3cb27e932b59d9a21c8a4", "messageHeadline": "Closer, but still not passing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "069e6d1e47333179f1996775f5427fad481cfef5", "messageHeadline": "Keep last committed version around in fileaccess modifier", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d4c0434b721f2ef08531053e8dedeae5d54b39eb", "messageHeadline": "Implement rest of revoking write access, and add test (failing)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 233, "deletions": 16}}, {"node": {"oid": "0014a543f05daf2a60681225b28f28bfc96702ac", "messageHeadline": "Implement revoking write access, except for symmetric write key rotation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 10}}, {"node": {"oid": "a99e99b69c8d120201988531f3dd25b76c6cc042", "messageHeadline": "Compile again", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "829f27d5bcd6aae8570c56cec645f3a081f1affd", "messageHeadline": "Clean up granting write access in preparation for revoking it.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 53}}, {"node": {"oid": "85f3163112dd1428cae6d2a5b76395cc78d351d5", "messageHeadline": "rename method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "194681845cacdb9334dda3f5f67488d58a89ec01", "messageHeadline": "Allow tests to override max children per DirAccess and thus easily test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "dedf862c3041afc4d53c547b5dd0baccf9499bcf", "messageHeadline": "deadcode removal", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 26}}, {"node": {"oid": "5392b1532abba2a3358fe832937740c73a8efb56", "messageHeadline": "Fix read revocation for multi chunk directories.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 16}}, {"node": {"oid": "1fa6ddaeaba4cb905b958c50909644ebb4001c32", "messageHeadline": "Fix read revocation for single chunk directories with more than one", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 76, "deletions": 33}}, {"node": {"oid": "84da9453a841e313c85ef3533323f484418c40ee", "messageHeadline": "Fixed multi chunk read access revocation!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 27}}, {"node": {"oid": "0e9909c34c7b33a042ab890271ca30281ebd16c2", "messageHeadline": "Refactor to prepare for multi chunk read revocation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 16}}, {"node": {"oid": "9c7db8c83088ac56b9b7908ff994a8a79e641588", "messageHeadline": "Change unshare file read access test to use a multi chunk file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "24e17aeb57eb741edbd45a878062ab843b75f7df", "messageHeadline": "feedback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "d21e7852d9864e438747599924775a0b0cf935c2", "messageHeadline": "Merge pull request #388 from Peergos/feat/upload-txn", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 810, "deletions": 390}}, {"node": {"oid": "9228328349236404d79c5539f0c322a28b91a11b", "messageHeadline": "fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4faf6370b45620924db231484fc45702e7878618", "messageHeadline": "Add a test that actually uses a transaction, and fix all the issue to", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 108, "deletions": 32}}, {"node": {"oid": "1608d60366c51e0e52b2bd77bdc9062c37c1ab1c", "messageHeadline": "feedback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 15}}, {"node": {"oid": "0c577d9f1c69e8e16b87e977a21243b39fa12631", "messageHeadline": "Put the file hash in upload transactions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 6}}, {"node": {"oid": "ede9867fb7ce0539dad7477f2cb81164a86eaa41", "messageHeadline": "Fix gwtc (move package to shared)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 11}}, {"node": {"oid": "ab91f43e44374cdb7fbfb1fce172adbd03df769d", "messageHeadline": "make tofu keystore hidden again", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "3d3ba74d297430571f5a91c6155ff808fdb16368", "messageHeadline": "Fix delete test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "5864199e7b53bddfb539f3f714a1b8e64f16944d", "messageHeadline": "Don't rename file when a concurrent upload has same name", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 64}}, {"node": {"oid": "752ae8655a869e9ba3a10343759b6b62688df974", "messageHeadline": "Fix zero length files", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 5}}, {"node": {"oid": "6e3c6b40a3c06cae0d787e7756c688f973d8b01b", "messageHeadline": "Remove incorrect method, and fix tofu corenode's initial write", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 22}}, {"node": {"oid": "00333ebf86a89402ec41a382ce16fc2817412a65", "messageHeadline": "compiling again", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 153, "deletions": 133}}, {"node": {"oid": "d30c3dbabc5a07d139a1127fa4849d0f0d151814", "messageHeadline": "Remove most of the upload file methods", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 105}}, {"node": {"oid": "36466cd052387891a11db7bc55c24894d947e464", "messageHeadline": "TofuCoreNode compiling", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "30353682152afbe9d02592e246afc30f7da7cfa7", "messageHeadline": "WIP FileWrapper and FileUploader compiling", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 46}}, {"node": {"oid": "0207dcd64f251c5dd7398a4dd23de8099bb61528", "messageHeadline": "[upload-txion] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 80, "deletions": 69}}, {"node": {"oid": "3aff053316abd2b07fffe7b4f0bb42f2eccd2214", "messageHeadline": "[upload-txion] add TransactionService to UserContext", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 90, "deletions": 53}}, {"node": {"oid": "47245429033281222b274a49bc5eaa4d75fc7198", "messageHeadline": "[upload-txion] use ipfs-txion for cleanup of txions", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 19, "deletions": 16}}, {"node": {"oid": "079f42f3bcfb86e74c5e21c2b900826e86d40229", "messageHeadline": "[upload-txion] Implement a service for adding transactions", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 376, "deletions": 31}}, {"node": {"oid": "abe0fbf2de87bcce9050d0ee2dbb05b8124f0be2", "messageHeadline": "Merge pull request #386 from Peergos/opt/mutable-tree", "author": {"name": "kevodwyer", "email": "kevodwyer@protonmail.ch", "user": {"login": "kevodwyer"}}, "additions": 36, "deletions": 18}}, {"node": {"oid": "04cff244a7623537a74b0fba0874457f913d67f1", "messageHeadline": "Fix large directories, which were being truncated at 500 children!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "6f9cf06bb5a29f5bf2558149395fb0334148da31", "messageHeadline": "Make sure mutabletree.get() always updates the value", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "f2a82a2eac37dd9bc424d6407cdd2cc091e506be", "messageHeadline": "Optimise mutable tree (10X faster) by optimistically trying operation,", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 9}}, {"node": {"oid": "c92c6f7569fb09d75457c6a3c96c26172941d3f5", "messageHeadline": "Fix NPE", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "1b6e6f993b60a97171b58076f11e6d3a580f75d0", "messageHeadline": "Use better cbor methods in UserPublicKeyLink", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "74abd20c0b4c0082f1025fed129e581542de7894", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "337b77b6a4dce6faa1fdaf8ed25a84214d92905b", "messageHeadline": "Improve social network javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 8}}, {"node": {"oid": "ee8629ec80fc7a66d16e4fdbbcdb2fcfd0a9b827", "messageHeadline": "Improve corenode javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "7175bde315fe595c049dc7de13cab9888fc7e0d9", "messageHeadline": "javadoc improvements", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "11aa6f331dd44740da80b81d2d824ffa133213e5", "messageHeadline": "Javadoc ContentAddressedStorage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 75, "deletions": 4}}, {"node": {"oid": "52740cb94011913bb55771ff9330305a5746ac0d", "messageHeadline": "Update RoadMap.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "97ba8bc7bf83bb534cc4fa2a08289bcbada4baf5", "messageHeadline": "Add 2nd video to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "003090f4d272a394b49b14dd493dde627992b751", "messageHeadline": "Merge pull request #383 from Peergos/feat/async-lock", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 189, "deletions": 188}}, {"node": {"oid": "03129a7a0b898c4077fbb02dcc696e47216de80f", "messageHeadline": "javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "cda54790beef7bbeb0c12de66c9a582f472b554b", "messageHeadline": "Remove now-superfluous arguments", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 27}}, {"node": {"oid": "3d79277848772015b81b80bc8b3f587b5b48f998", "messageHeadline": "Convert MutableTreeImpl to also use AsyncLock", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 59}}, {"node": {"oid": "8f5512e8373b03144444141b8a256f3636c7a86c", "messageHeadline": "Abstract out logic for async lock and use it in UserContext", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 127, "deletions": 114}}, {"node": {"oid": "d87b24f4145478c135da7ce6a356cc04526fcf0b", "messageHeadline": "Improve test for granting write access to check parent link is read only", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "74fc709e068ea709ac1f363be8c8eebb7fd4330c", "messageHeadline": "Merge pull request #380 from Peergos/fix/deep-delete-with-write-access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 68}}, {"node": {"oid": "a924ed8cc357d357eb029be79b1300089933d11a", "messageHeadline": "Fix recursive delete when a descendant changes signing key", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 15}}, {"node": {"oid": "2317c914f1cdfcd3be37ef628eaf527209c1ae83", "messageHeadline": "create better test for delete with write access (currently failing)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 56}}, {"node": {"oid": "901322e03f5139eeea4a55202375462bbf09aa8b", "messageHeadline": "Merge pull request #379 from Peergos/fix/delete-file", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 158, "deletions": 36}}, {"node": {"oid": "7b409a00af45c59455c88a0386eb41e5f84ad04d", "messageHeadline": "put back remove/rename jsmethods onto FileWrapper", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 18}}, {"node": {"oid": "fccb3ce196d17c93c0803cb17d018f208d561934", "messageHeadline": "Fix deleting files or directories", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 68}}, {"node": {"oid": "674af587f32ce2dcebfd98e1388f6c9d311b6a5e", "messageHeadline": "WIP", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 52, "deletions": 8}}, {"node": {"oid": "8cae5a03dd75a29ff98e1d7ef8466f4578ed7d24", "messageHeadline": "update remove to also remove signing key", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 122, "deletions": 7}}, {"node": {"oid": "7b8b4db4335c2d88cebaab931f0ec197412218f1", "messageHeadline": "Merge pull request #378 from Peergos/feat/simplfy-cryptree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 44}}, {"node": {"oid": "2e6097331c6e49a7099e15cf4ae480dbb0aa5d62", "messageHeadline": "Use correct key when marking a file dirty", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "70faa85b30c81497a21e24c3143276c64223789f", "messageHeadline": "File cryptree nodes (FileAccess) don't need a distinct metadata key.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 39}}, {"node": {"oid": "ed808266cc99b3fd4315c5181e294be3cfe8b8f4", "messageHeadline": "Implement streaming sha256 calculation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 8}}, {"node": {"oid": "286554551657574e31fac651e799c21cb7522fc6", "messageHeadline": "Merge pull request #376 from Peergos/fix/cleanup_stale_chunk_on_write\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 0}}, {"node": {"oid": "b5d8908557a3b91870d6f80f0ef423b57b6134b9", "messageHeadline": "Use original signing key in call to delete chunks", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "cf5f4c3db8e2ba790550cbe67b38ddcb05923e29", "messageHeadline": "Fix delete all chunks method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "afca406cf4401d69c2508b08cc63ee77e818bc17", "messageHeadline": "Delete the old chunks when granting write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 0}}, {"node": {"oid": "718b0463fac4447429fc6011ac29cace85fccca7", "messageHeadline": "Merge pull request #374 from Peergos/feat/grant_directory_write_access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 137, "deletions": 42}}, {"node": {"oid": "359953b2a1bf8727eb3826213550b67a33d45a03", "messageHeadline": "Don't upload cryptree nodes we don't need to when granting write access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 1}}, {"node": {"oid": "50f01452b8b20c7957e4e486f9c647fae140c43b", "messageHeadline": "fix test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c81466e6e5e5c3629329aae5c2fe74d08cae28aa", "messageHeadline": "Add test for granting write access to directory", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 3}}, {"node": {"oid": "3415e6f2c1c541c77e1be14c0648fd229b332675", "messageHeadline": "Implement granting write access to directories!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 41}}, {"node": {"oid": "466b711724d5442bd7435a90a4a3a09389f51aab", "messageHeadline": "Merge pull request #372 from Peergos/feat/wiring_up_write_access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 164, "deletions": 30}}, {"node": {"oid": "0ac41c82214937368b9d09614df9fa0c8a92c774", "messageHeadline": "Enforce sharing read only caps in granting read access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "eb8642528aa8f7a8d7a7f3d2bda47402876f52b9", "messageHeadline": "Create CryptreeNode.getNextChunkLocation()", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 4}}, {"node": {"oid": "820c490e36472bdbedcb7b0deaf51fbccbe63aeb", "messageHeadline": "handle granting writable file access to files with > 1 chunk", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 33, "deletions": 3}}, {"node": {"oid": "ed1d404e4da4f156c67da009064dbaa3005ab673", "messageHeadline": "make GWT happy", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 30, "deletions": 26}}, {"node": {"oid": "a48890ea549556258840f4c0fd2b8f0a524d7a59", "messageHeadline": "handle Writable access to single chunk file", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 111, "deletions": 28}}, {"node": {"oid": "b21acdfef352e1d4796240445729ff5aa3b79e77", "messageHeadline": "Update readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 17}}, {"node": {"oid": "60f66488d99b5a4042815ff805131851b0b1cb60", "messageHeadline": "Merge pull request #371 from Peergos/fix/relativise_next_chunk_locations", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 18}}, {"node": {"oid": "646d07e93bd5c20b9ad08341f536257a14a70f5d", "messageHeadline": "Fix child links in publicly shared directories", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "0f16a82e965d848aa5eb46d4d39e81a47b6088e2", "messageHeadline": "Update readme: running tests and self hosting", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 3}}, {"node": {"oid": "8b3100ad57ee492005fe7e4ea2fb5fb9ed464de8", "messageHeadline": "Relativise links to subsequent chunks of files, which shouldn't include", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 18}}, {"node": {"oid": "1403e9e7e919d995460fe799d3fc33826e4ac4a1", "messageHeadline": "Merge pull request #369 from Peergos/feat/simplify_write_capabilities", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 159, "deletions": 156}}, {"node": {"oid": "bb32fe49dc85faee3c80f23db6e3300e06d9c72f", "messageHeadline": "Merge pull request #370 from Peergos/feat/write_access", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "62234cbb3b9fb457904ef93a3a26e4a65cddfdbb", "messageHeadline": "Fix retrieval of writable entry points", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "94399411d4a99d4583f071c5fb21c82da06831a0", "messageHeadline": "Fix read only public links to directories", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "3410083d59d4445c6114f7c55414fa394699e66d", "messageHeadline": "Remove the spurious optional private signing key from capabilities", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 157, "deletions": 156}}, {"node": {"oid": "3a2c9a5dd16f18cbe3668c3b104c8c0a0fc85283", "messageHeadline": "bugfixes", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "d925e8ffdc84a0f6dd710cc43610693450c89162", "messageHeadline": "Merge pull request #368 from Peergos/feat/granting_write_access_3", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 567, "deletions": 234}}, {"node": {"oid": "70e2dac97a25cf434115f26261433663b78b9e00", "messageHeadline": "remove redundant test", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 30}}, {"node": {"oid": "16a0ffcff60f6636ec52b739620edd28bcd4af60", "messageHeadline": "extract out SharedWithCache", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 76, "deletions": 23}}, {"node": {"oid": "f4e479a28367efe88f33e329b195043a066a3634", "messageHeadline": "separate out some tests", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 17, "deletions": 10}}, {"node": {"oid": "c11fff6e8c69fd0636a8b285ac52e858eff2f079", "messageHeadline": "review feedback", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 83, "deletions": 257}}, {"node": {"oid": "751490e65e263ce3ff5ffc3beac5b41a6ea2e9b1", "messageHeadline": "move capability method from FileWrapper to CapabilityStore", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 59, "deletions": 57}}, {"node": {"oid": "41f0665d1ddce8695dcd5b82cf2fd47f655c800f", "messageHeadline": "bring up-to-date", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 691, "deletions": 218}}, {"node": {"oid": "7e8bd06b865a649cf54d26165545dd6b1277fb7b", "messageHeadline": "Add a lot of javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 4}}, {"node": {"oid": "b7f5a8a8837da0e306f1027b51c8ba119d905ee6", "messageHeadline": "Limit maximum file or directory name size to 255 characters", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "cbb5aad113564e84751179af8f36d0a8d21285e4", "messageHeadline": "Merge pull request #365 from Peergos/feat/public_sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 222, "deletions": 12}}, {"node": {"oid": "a81a091701a41153e06fc24b47a180def551f847", "messageHeadline": "Give a directory listing for a publicly shared folder", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 10}}, {"node": {"oid": "7e1584aa772664d9ea33cb4da35c56cc610edb51", "messageHeadline": "Handle making entire subtrees public", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 3}}, {"node": {"oid": "f52533ad54480605bac9f7ba4560a18f7f502909", "messageHeadline": "Implement the ability for a user to publicly post capabilities to files.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 166, "deletions": 1}}, {"node": {"oid": "87f46e5c1904aaaf1731a792c2d7e60ed0f66963", "messageHeadline": "Change WriterData field for public data to the root of a champ", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 11}}, {"node": {"oid": "cedbe029e879437d5ef704f4ca8c987038097cc4", "messageHeadline": "Merge pull request #364 from Peergos/feat/write_cryptree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 371, "deletions": 267}}, {"node": {"oid": "f34b7a9cb8e91c8eb0f0d21449d196c2f951449e", "messageHeadline": "Add test to ensure parent links on dirs don't include write capabilities", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "85f0ab3e8ff232f55962d71cd01d5262fc7ecb8f", "messageHeadline": "Add test to ensure parent links on files don't include write capabili\u2026", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "6a40e57184bef70cef55af13d54e32acfa188420", "messageHeadline": "Make sure cryptree child links don't include secret signer keys!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 4}}, {"node": {"oid": "2806a4607ce868c10c68e2e03f0833bd4ed8e391", "messageHeadline": "Test to ensure follow requests are read only capabilities!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "0dd53baed2ccc040108534330732e85d7c4f7b05", "messageHeadline": "First pass at implementing the write cryptree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 277, "deletions": 256}}, {"node": {"oid": "15ffd56eaed079bc9fe056473a84ca17b490c9e5", "messageHeadline": "Create symmetric link to signer for write cryptree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 3}}, {"node": {"oid": "8b79293de002a87baeafb000b7997384f31ff97d", "messageHeadline": "Add method for JS to get entrypoint", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "ed6a69847d957b29c38ddb98a465deba03c86bf8", "messageHeadline": "Merge pull request #362 from Peergos/feat/cleanup_following", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 307, "deletions": 496}}, {"node": {"oid": "0a3218c1cfc1dd382df37d505a8fd0ff40caa857", "messageHeadline": "Better names", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 10}}, {"node": {"oid": "ad2f3b3bfb0a7e931b3cdefae3c51032733958ff", "messageHeadline": "A bit more cleanup of follow requests and correct padding block size", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 16}}, {"node": {"oid": "7d500d2743726a9913dee5f35048688761537936", "messageHeadline": "Clean up the follow request code,", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 294, "deletions": 490}}, {"node": {"oid": "7e0fd52ec1538dd1bc5bcebaf42cdd1c50df5207", "messageHeadline": "Merge pull request #354 from Peergos/feat/improve_cryptree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2595, "deletions": 3438}}, {"node": {"oid": "033b45b0954334c335aee7cf9956438e998193fb", "messageHeadline": "Merge pull request #357 from Peergos/feat/transactions", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1730, "deletions": 2394}}, {"node": {"oid": "4ce47fa3c728dc7e3cac2d2bef205a62c2229dc3", "messageHeadline": "Merge pull request #359 from Peergos/feat/quantum_following", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 959, "deletions": 1003}}, {"node": {"oid": "ad61d8ec58b27eb786903bac6dc5c7c5a6620129", "messageHeadline": "Merge branch 'feat/transactions' into feat/quantum_following", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 22}}, {"node": {"oid": "b35947e1c1ca9cfca3f0d322ca5c516cbb4e52c0", "messageHeadline": "Merge pull request #361 from Peergos/feat/location_relativisation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 704, "deletions": 606}}, {"node": {"oid": "dfc1d6938acbb826ea363b06b366e7fd567d6f15", "messageHeadline": "typo", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 4}}, {"node": {"oid": "461611c94148cf73bffc8ec11300d63ce02d7432", "messageHeadline": "Remove redundant close and flush on byte array output stream", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "7e6d966bc92832bb2c2881e8a363d090d328bc36", "messageHeadline": "javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "a0495bd53aebe5e560351c7e50436950052315a3", "messageHeadline": "javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "9bf87c9a2584ae6212bbec66707b770db93cd79b", "messageHeadline": "rename Transaction.run => Transaction.call", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 33}}, {"node": {"oid": "8ee064ba2c62d81d82b1565b5e6d4574adae0d02", "messageHeadline": "Simply EntryPoint by removing the readers and writers sets.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 35}}, {"node": {"oid": "2827588f132d1043a70c5e3bb31b3d58c601fdf6", "messageHeadline": "rename var", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "8a248b5d62e2237ec02fa402e8ea94027e7585f3", "messageHeadline": "Javadoc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "5467be9639cba3dc26fc76d06f41e22f60ea01c6", "messageHeadline": "Remove 3 constructors for RelativeCapability", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 13}}, {"node": {"oid": "96da6880ad2e0b886d41723cc04f5e1040a1f36b", "messageHeadline": "Merge pull request #350 from Peergos/feat/enable_mirroring_corenode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 10}}, {"node": {"oid": "afb82db1b478b22d75780d9677bcca5009e37217", "messageHeadline": "Fix parent pointer from directory broken in previous commit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c11a3f1f640cb0bd531a7c880d97e2f58158db62", "messageHeadline": "Reinstate absolute capabilities where appropriate.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 434, "deletions": 408}}, {"node": {"oid": "fc753014f886094c55dcd839b95a0e4cf01ecb72", "messageHeadline": "Fix equals method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 13}}, {"node": {"oid": "4f26099169d173f7483cb85107ea46549eb0adcf", "messageHeadline": "Huge rewrite to make locations relative", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 436, "deletions": 318}}, {"node": {"oid": "12c11ec3a262d190f2395c2f6e742b7c33ccd8b6", "messageHeadline": "Make instance var static (NativeJSThumbnail)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "15fe62a7403196148f121d430b9c25cd5b1d9b35", "messageHeadline": "Remove unused readers and writers from FileWrapper", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 37}}, {"node": {"oid": "f6814c91b5967b096eeac72e463840394028faa3", "messageHeadline": "Factor out valid http paths in content addressed storage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 22}}, {"node": {"oid": "4ed8f1aaa78fc1a544c5a99bcbd6f353da222dcc", "messageHeadline": "Fix comment", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "362274b260c3dca56748f2772ea4a75462ecaa72", "messageHeadline": "Remove unused social server", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 102}}, {"node": {"oid": "a3c0e2b8dddcd9631e9b6e86feb572f56dec9ceb", "messageHeadline": "Clean up mutable pointer http api", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 151}}, {"node": {"oid": "7269f33dd0d7b23251d16cdcf515ec0a0a875513", "messageHeadline": "Clean up social network http api", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 93}}, {"node": {"oid": "08ef07ae9827afca7ea539371106285737f785ec", "messageHeadline": "Implement an auth mechanism for retrieving the encrypted follow requests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 75}}, {"node": {"oid": "b92dace2533db005995a022f533a0e723085f4f4", "messageHeadline": "Make sure only read capabilities are shared", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ad146ef878f7f3c492dd2dac0f6038bf16a2d5ac", "messageHeadline": "Emulate unimplemented transaction calls in ipfs until they are present", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 9}}, {"node": {"oid": "1e05f1a9a99e5be849021c96cedacfa8d5392a77", "messageHeadline": "Make sure a transaction completes exceptionally if it fails to start", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c783f050a4ded39a88164d6be3c54d5c8c3f5ea0", "messageHeadline": "Simplify Transaction.run signature", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 31}}, {"node": {"oid": "42416685e7cf83637fb460241818c9889b9fe56c", "messageHeadline": "Implement transactions around blocks assuming an ipfs api signature", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 796, "deletions": 1436}}, {"node": {"oid": "dc8f35638ce3b92455dbd8cd69c3158c759b40a0", "messageHeadline": "remove debug and unnecessary catch clause", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 14}}, {"node": {"oid": "9e84ffd1bce7589d2d880933b7e078efdcd2f5d4", "messageHeadline": "improve test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "cff9e979daa4fa3b779d224dba48dcedaf251509", "messageHeadline": "Guard against invalid padding block sizes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "31a098acf044e27947b5983331386e185b6248b9", "messageHeadline": "Improve error message", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d7a7193f6d91d0b0e03a5cd53155975624cb00ab", "messageHeadline": "Fix quota test now that signing up uses more space", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "bf51e9d00258be7a31a1ff545d695b805ed49c8d", "messageHeadline": "Fix null pointer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "61436aa0769d9fb46ca863bf96592f2853a19787", "messageHeadline": "Bulk pad, encrypt and version user static data.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 134, "deletions": 110}}, {"node": {"oid": "46e97fa971b6bd4810f5bc7cced854cfde1df902", "messageHeadline": "Fix test broken by new cryptree padding", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "558e9618b6e879dda306d2d7d93db54d53437d94", "messageHeadline": "rename FileTreeNode -> FileWrapper", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 392, "deletions": 392}}, {"node": {"oid": "6c38210b3eaadb46d1e86abe59395527344e8eb3", "messageHeadline": "Rename RetrievedFilePointer -> RetrievedCapability", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 58}}, {"node": {"oid": "72ec4cb1cba6454db50fb9d1fe05c94e8e6ba57d", "messageHeadline": "Rename RetrievedCapability -> CapabilityWithPath", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 31}}, {"node": {"oid": "56e012441780de2d9440bbd30d0675aa83b29931", "messageHeadline": "Remove legacy merkle btree support", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 79}}, {"node": {"oid": "2b077bce5e18d819d42efaef26de745fd77ce15c", "messageHeadline": "Rename SymmetricLocationLink -> EncryptedCapability", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 30}}, {"node": {"oid": "20ce491fbef109f0e3555a82f8b5a4b3e3ae48da", "messageHeadline": "Remove sleep which I think was only needed because I was likely running", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "c83bbee8c7d49715e766a06a47fa629fd59c8b35", "messageHeadline": "Pad the encrypted child links on directories to obscure the exact number", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 81, "deletions": 84}}, {"node": {"oid": "addd752fc89ffd528043799510f0a819630afd44", "messageHeadline": "Simplify SymmetricLocationLink to use CipherText", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 34}}, {"node": {"oid": "dd41228e0a21b3d21332d7f2433ab7a1d846708f", "messageHeadline": "Remove most hard coded references to TweetNaCl.SECRETBOX_NONCE_BYTES", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 17}}, {"node": {"oid": "b3b0a2a73e8396ed3a2abc07ab530bec8e208315", "messageHeadline": "Use padded ciphertext for cryptree metadata", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 24}}, {"node": {"oid": "3b7f7cf8d1b8424dba6f19fad36807734d6eda77", "messageHeadline": "Use CipherText in Symmetric links to simplify code and improve", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 32}}, {"node": {"oid": "204da3727ca38aaa4ce971208c55880e3b794e35", "messageHeadline": "Remove the distinct files key from a cryptree directory element", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 126, "deletions": 265}}, {"node": {"oid": "5c925576d67a7dcaa3ce8b19c94ef434910c1325", "messageHeadline": "Add the cpu architecture to the ipfs installer", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 14}}, {"node": {"oid": "24a11fd228137d145bc3026df953b3dcbc951c90", "messageHeadline": "Get multi node tests to run again with a sleep before swarm connect.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "69e6aa42cfd8864560dde4691d083cea3bb66279", "messageHeadline": "Improve Mirroring corenode semantics", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "8f9a556c74ffa3cea59f712c3d301c2e41e238ab", "messageHeadline": "Make sure mirror corenodes proxy all mutable pointer calls", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 3}}, {"node": {"oid": "3f76dd697abf7260ddc8df4aa658ee71f94090ad", "messageHeadline": "Enable the mirroring corenode which protects the social graph", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 5}}, {"node": {"oid": "5e78ab9ed73b34694f83cbc3b6d275ea6bdda267", "messageHeadline": "Add some default parameters for peergos command", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "1200c07ac7340306bc4fb19038c243b1ccd873ab", "messageHeadline": "Mostly fix Uploader, though it is still very slow", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 39}}, {"node": {"oid": "da40cf8f05284a5783102f6573c6b64fab4b23c1", "messageHeadline": "Correct TLS port", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "632f9470650d9deb1dc9bd3431e2078e0b9497ca", "messageHeadline": "Fix local address for a public peergos server", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "3dff6ea3e556b812f47e4f186c017fa72ea1e6d1", "messageHeadline": "Clean up Main", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 192}}, {"node": {"oid": "a31b59b93a07ed1945d2afcbb1172469d5faf5ea", "messageHeadline": "Make a Peergos server always have a non tls localhost listener for ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 57}}, {"node": {"oid": "7c21fbd2e73a2327a6cbf2d80629d54a5337ffae", "messageHeadline": "Fixes for access via ipfs (p2p stream or static site)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 25}}, {"node": {"oid": "72f0718aba67d07f7ac39ccb811cae9a1ab7326d", "messageHeadline": "Extend tests to ensure a user can browse to a friend's root and fix it!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 1}}, {"node": {"oid": "bd0546bfea37d49db05c3d40b04d9acb05b7241d", "messageHeadline": "Merge pull request #349 from Peergos/feat/scalable_sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1066, "deletions": 486}}, {"node": {"oid": "dbdd85bea7678e0a869650105a1b42dc17b4577e", "messageHeadline": "rename fp -> cap", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "91f90d3db75c929f9027b93e2e3d56568dd3dd59", "messageHeadline": "Sort cap files correctly", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 6}}, {"node": {"oid": "9aea9f4861fd969ed602ace5ca6bd888f35b600a", "messageHeadline": "Javadoc for CapabilityStore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "abe583cf79f3069970d5996ae467c11c38cb6173", "messageHeadline": "Remove another TrieNode method that is no longer used or needed", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 23}}, {"node": {"oid": "08982919463e4fd3b62f2709cd3562342e97bbb9", "messageHeadline": "Remove TrieNode method that is no longer needed with new sharing scheme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 33}}, {"node": {"oid": "d37d358c0f8c8dafc7062d0e1ec254d819d26e9b", "messageHeadline": "Factor out TrieNode path canonicalisation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 10}}, {"node": {"oid": "c35a0b6d10486b16bddeedf19e7fdaf78dc703f2", "messageHeadline": "Improve cbor for CapabilitiesFromUser", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 39}}, {"node": {"oid": "5b3a646350c00ffcd6fc43a6966abd829802409d", "messageHeadline": "Rename FastSharing -> CapabilityStore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 25}}, {"node": {"oid": "24fca2836a6cbe8b1e45a3e1a9b5830c96d6f14a", "messageHeadline": "Move capability cache files into a hidden system dir", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 31}}, {"node": {"oid": "86a594710d3d27cec1a972242d97bfd207af87cb", "messageHeadline": "Fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 16}}, {"node": {"oid": "7b985deee870cc2b463e9addf8fb709a4aba6bea", "messageHeadline": "Fix tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "77d2107c9a88994aa40b709932a15b2cc66e8de4", "messageHeadline": "Rename FilePointer -> Capability", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 193, "deletions": 195}}, {"node": {"oid": "e5ff92d4a46b5d9fea1ad56597dfa8c334dea9de", "messageHeadline": "Fix last test broken by scalable sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "5155fe05fdf908041ee771fd170034d301c8237e", "messageHeadline": "[scaleable_sharing] fix test", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "a1b6c2674e6bd869d357c9e436bf550ddac87d3e", "messageHeadline": "Fix creation of friend sources trie nodes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 71}}, {"node": {"oid": "b9fe929a85f66d43fd26f93912953337dba34f22", "messageHeadline": "Read all new caps when cache is present", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 33}}, {"node": {"oid": "01f1b04978d65ec8ecddfef7b0c49cbc8fd593a1", "messageHeadline": "Don't use stale cache dir when saving received capabilities", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 26}}, {"node": {"oid": "ac7cdc7107560042eeff95b04137a1debdc21865", "messageHeadline": "Handle being unfriended", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "d888718c6d9933851582500a3181eee6f0b0fe6c", "messageHeadline": "Handle requests for a friend's root", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 0}}, {"node": {"oid": "92ad5319d0a65932678b64d7835e082508579062", "messageHeadline": "Ensure FriendSourcedTrieNodes are up-to-date", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 46}}, {"node": {"oid": "083ba155d828dd55281b6b09a0bfb51aa42fb7bb", "messageHeadline": "Create FriendSourcedTrieNode to handle a friend's sharing directory", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 185, "deletions": 83}}, {"node": {"oid": "4f7fd53428e6daf64972a4120594c89c81d3e0f4", "messageHeadline": "Make capability retrieval thread safe, and cleaner", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 88, "deletions": 73}}, {"node": {"oid": "7cff4d5736ce135294db13ec591740742f753cf4", "messageHeadline": "Handle being unfriended. It's okay.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 14}}, {"node": {"oid": "d51eb67dcf680f6868368e53c5894c018774a2d8", "messageHeadline": "Simplify capability appending during sharing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 26}}, {"node": {"oid": "0f183bd5f3d6b40f8762f578003a097c3467c6f5", "messageHeadline": "Order capability sharing files by index, not modified time", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "3c5f294aeb3eadf78e0365a13825d9152827748d", "messageHeadline": "Restore FileTreeNode.addLinkTo() which fixes UserTests.internalCopy", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 1}}, {"node": {"oid": "98f17e5aff8ccb6239ffcef00ef69e2938c06532", "messageHeadline": "useless code", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "d3c82ab7232f9e483fccf9ddc2ca1df463d175e3", "messageHeadline": "grrr", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "98b10655030b9ca98653e1b580cbe2b55aeb3530", "messageHeadline": "removed redundant comment", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "c18008da23b092c1a0910ed2afa3d354ce83036d", "messageHeadline": "put back shareWith after performing unshare", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "33c7e2e70dd5576af4265523360287a6cab42634", "messageHeadline": "must not return completable future from isShared", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "1c72f465d30243d88994a0afe10aa34b144c3193", "messageHeadline": "fix missing GWT methods", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 37, "deletions": 25}}, {"node": {"oid": "a352f12cbbd6d4fdc0e70a634a7f78327b24119a", "messageHeadline": "revert test change", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "227ee91f94e8a61181366343aa4a31847f8e8cd1", "messageHeadline": "integrate fast cache", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 101, "deletions": 92}}, {"node": {"oid": "5f149b92815c8b374b2b113666175751e4832e35", "messageHeadline": "progress towards using sharing cache", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 52, "deletions": 46}}, {"node": {"oid": "1101037f3dd39cec3dae3c6cd95c709f1b395780", "messageHeadline": "sharedWith() and unShare()", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 124, "deletions": 136}}, {"node": {"oid": "ff01dcab0aea8410d9dca2d040eb4ffebd705b3d", "messageHeadline": "refactor", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 431, "deletions": 338}}, {"node": {"oid": "38c1df57599ccdee70fea9b6e5341e0a1a70c247", "messageHeadline": "file IO", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 280, "deletions": 1}}, {"node": {"oid": "c0bc2972c060730b31007d649e96f275bc5aa082", "messageHeadline": "Merge pull request #345 from Peergos/feat/decentralized", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2955, "deletions": 1094}}, {"node": {"oid": "a72e1adadc7fc95eaa22a1dbb03b01200b43098e", "messageHeadline": "[decentralized] added multi-node public-link test", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 28, "deletions": 17}}, {"node": {"oid": "94074b11de8a1e29bf91f162563a2137ff364117", "messageHeadline": "[decentralized] fix test", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "218517f75bc051030ab9c986627564277d9d20fb", "messageHeadline": "[decentralized] fix new errors", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 36, "deletions": 23}}, {"node": {"oid": "aa1e536d9e901c108376453790c81d03cd188f6b", "messageHeadline": "[decentralized] test folder sharing across nodes", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 124, "deletions": 129}}, {"node": {"oid": "931d253c6ec955ad176305fe4ebe28abc7f4a009", "messageHeadline": "[decentralized] test file-sharing with 3-node network", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 265, "deletions": 208}}, {"node": {"oid": "5c5a2250714f4db1d848e91fed12ebded38edd37", "messageHeadline": "[decentralized] add tests for 3-node network", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 56, "deletions": 31}}, {"node": {"oid": "d9f60b813bc470be8dca043c700cd8757bd9ac23", "messageHeadline": "[decentralized] remove un-necessary wait in test init", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "e121b8a3dd8723d41aa47e05879e6bda7e0781b1", "messageHeadline": "More cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "f40940b882c53da33280cd3a7c8e68fa7856b428", "messageHeadline": "Make user service args explicit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 20}}, {"node": {"oid": "0af437ad571fe2fff0010840e566b67dad21b487", "messageHeadline": "Move service initialization out of constructors", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "8c3710007495e1c05bf6484d0a2ec94cc61e8cd5", "messageHeadline": "Revert quota tests to not use ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8a996d69bb22c01473e3f3913d6ae94102ae8f30", "messageHeadline": "Fix network access construction on Peergos server", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 7}}, {"node": {"oid": "e8e5c817bd94d91ecb099db9a4cbe67e9876cc75", "messageHeadline": "Make FUSE tests not use ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "bb34138714ef8101e5e00946e7fa30146f7f8456", "messageHeadline": "Make start ipfs error if it is already running (maintaining idempotency)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "93ef3ed2fd078d6175085b1ce771be9f8ffa7752", "messageHeadline": "Added explicit call to ipfs swarm to multi node tests (which still fail)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "3eee71c67801108f8af76852133d3ec9cd7f5338", "messageHeadline": "Simplify network access construction, and fix bootstrap ports in tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 34}}, {"node": {"oid": "baf3fbf5fada5cd22fa366e1ade4f4a1827277a8", "messageHeadline": "[decentralized] update tests not to ipfs-bootstrap", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 35, "deletions": 5}}, {"node": {"oid": "4ca9b07027c726a6863ba483c8ff8b7edd92f87f", "messageHeadline": "[decentralized] make sym link to cached-ipfs rather than copy", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "62b3922ad9ffbbb9dfc59e5db4397c6026cc11f4", "messageHeadline": "Users can now write through ANY Peergos server, and writes end up on", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 15}}, {"node": {"oid": "d99f23696a5711f813fce76765a657aac10079e0", "messageHeadline": "Make blocking and pinning mutable pointers only wrap local pointers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "a8158bb367b09a0f0999fcc6c73e6db9c426e14b", "messageHeadline": "Fix multipart over p2p streams", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 145, "deletions": 6}}, {"node": {"oid": "c9a093e5f8ac49e4f997de948047ca128d710c19", "messageHeadline": "More dht handler cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 7}}, {"node": {"oid": "414b18b8a8097304b799f3bf2511e16477d4baeb", "messageHeadline": "Make sure DHT handler doesn't close streams early", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "591f7f78d1b735f1204842d77242fced54b90570", "messageHeadline": "[decentralized] handle ipfs api file.", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 25, "deletions": 0}}, {"node": {"oid": "839c76ee32cf995a86c5d4e275c0e9d7228a8245", "messageHeadline": "Move class to fix gwtc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "8474d198583184dfd0c015a2d908149c1b06c916", "messageHeadline": "Make ipfs wrapper more functional and reliable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 43}}, {"node": {"oid": "7820c17bf73b7927ab7f4a1f9996973137047c3e", "messageHeadline": "reignore test", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7d6944cef87c5f5fa49cc55ded2c7833d06151c9", "messageHeadline": "Various fixes to the Peergos command", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 64}}, {"node": {"oid": "d78d37db03597499c6eae880d120a1fdd60aeeaf", "messageHeadline": "ignore test that seems to be failing because of ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "eebcfb9d5984fa938e04467d97f5a46f40e7debe", "messageHeadline": "Fix ant test classpath", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "a8caeb78e25ab544eeec6f32b3cb850ca83ab7ec", "messageHeadline": "Push the space checking key filter out of the UserService so that it", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 92, "deletions": 15}}, {"node": {"oid": "09860244c29f9f5dbab544d8a6e2589a61a2abf6", "messageHeadline": "Implement proxying content addressed storage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 217, "deletions": 9}}, {"node": {"oid": "9a01480d691d3b22113dd442327e5484aef04676", "messageHeadline": "Add the owner as an argument to pin calls in ipfs.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 46}}, {"node": {"oid": "a0e064b1cfe0a3eb89ba194b9cf52e2974e6b5e6", "messageHeadline": "Add the owner as an argument to put calls in ipfs.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 175, "deletions": 143}}, {"node": {"oid": "5478cf20bf7b881818ec6fff2e3914ebf595ce42", "messageHeadline": "[decentralized] more ipfs process  baby-sitting", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 31, "deletions": 5}}, {"node": {"oid": "43eaa236028c9ba47634e458a9c0ea731d89dd19", "messageHeadline": "Users signed up on different peergos servers can friend each other!!!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 0}}, {"node": {"oid": "326eeb0a78c34f53cf5e503f6e3b411c41500f46", "messageHeadline": "First multi node peergos network!!!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "3cda44b7c2c99f655a57777bc787a4ec3a15a6d5", "messageHeadline": "Make ipfs installer cache download locally to allow working offline", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 7}}, {"node": {"oid": "b5c1cf586d05392d9e7af541133186377ee314ac", "messageHeadline": "First attempt at a multi node peergos network", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 2}}, {"node": {"oid": "58b640cb5e43cc87d58e86249f92492b1b636a4a", "messageHeadline": "Ram user tests all passing again", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "c4af2129aa42b2d2b1633fedc7423d6fd008bc15", "messageHeadline": "Fix quota tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 16}}, {"node": {"oid": "9a1d6f99779a1fb5854d18c3e026035d59f8e16f", "messageHeadline": "Fix remaining multi user tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "7d7c73312c101e9ebcbf95444ebe8f85d6a975de", "messageHeadline": "Fix most multi user tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 20}}, {"node": {"oid": "6c591db117cf90fd502e5af26d4ae0738a4842d8", "messageHeadline": "Fix fuse tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 16}}, {"node": {"oid": "ca7a9e1b081135816973a8b6585a0eee50c6d73f", "messageHeadline": "Fix corenode tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 16}}, {"node": {"oid": "fa72b6fe7d4f4ad5f2ed57c3af70d7236df051bc", "messageHeadline": "Clean up UserTests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 55}}, {"node": {"oid": "eae1677a4ffcccbcdaa0c0dbbcb5f3887de3d1e0", "messageHeadline": "Fix tests involving identity key change", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a94abd9470b27cd505dfb8be350dbf41e7bb1a0d", "messageHeadline": "[decentralized] WIP to fix tests", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 149, "deletions": 49}}, {"node": {"oid": "28b5e1250a99b10ce39079e7221341cc592a5822", "messageHeadline": "[decentralized] fix Logging.init", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "405c5c9eb3c0ecde7ba3e19eab0db956d513f8dc", "messageHeadline": "[decentralized] refactor installer", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 70, "deletions": 16}}, {"node": {"oid": "b694bc116d9fd5322fddb6296a5b24306f078bf8", "messageHeadline": "remove debug", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 5}}, {"node": {"oid": "e4ecdeda12833f838220ec269240811e6d5d8aa5", "messageHeadline": "Fix propagation of owner key during entry directory commit.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 20}}, {"node": {"oid": "826544b8d00da4bc7847758e5c3d23557801fb4c", "messageHeadline": "Very close to getting -local working", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "77154845a315a4012b6065d175507367e805744a", "messageHeadline": "Large simplification of Main, no need for all those servers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 96, "deletions": 97}}, {"node": {"oid": "85d75493d1291ed8549624862441964c1a414379", "messageHeadline": "[decentralized] improved ipfs-logging", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 55, "deletions": 15}}, {"node": {"oid": "efb1445f21fb674ede71144d5d32b7fb1011d679", "messageHeadline": "[decentralized] added pre-commit script", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 18, "deletions": 0}}, {"node": {"oid": "ac1fa477a7915d714a5593f4b6283d4f75cc3c1c", "messageHeadline": "use correct args. Now up to poststrap of corenode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0a39c07fac4070c31d9d917fb3e2e134ad5ac8d2", "messageHeadline": "ipfs correctly installing, starting and listening for p2p streams", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "e4c48d530327deb0d5395ffc1e6c5b4fdc61b705", "messageHeadline": "Install IPFS if it isn't already installed", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 2}}, {"node": {"oid": "eef8a9549e2bebc886d1fb8c91ebc07be0a41a52", "messageHeadline": "move class", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "39919142aafd493597614dae708e5efef15401a9", "messageHeadline": "Small cleanup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "05947c0832616ad837afed421958ba471b194d6b", "messageHeadline": "Progress on getting ephemeral local mode working (WIP)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 30}}, {"node": {"oid": "8602749f4dded546afca66a7f177ab1ce683aec7", "messageHeadline": "Merge pull request #347 from Peergos/fix/p2p_mutable_owner_keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 198, "deletions": 202}}, {"node": {"oid": "03bb005d557dd9e647ff5dde72c68483c4064f0e", "messageHeadline": "Update p2p http proxy to new ipfs spec", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "f854e7bc2e5042842f4641bcf9728da5c478d96a", "messageHeadline": "Add support for identity multihash", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "efebce57d192a7b5092b0b9a1416b3db126ba1bf", "messageHeadline": "Move http util method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 22}}, {"node": {"oid": "eaae40a223f4e1e91ed6d4fcb8b5cc686f98016f", "messageHeadline": "Simplify http core node (either it always proxies, or never does)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 111}}, {"node": {"oid": "7179bc3b1581358da05874483216f51b65ffbbf4", "messageHeadline": "Add p2p version of core node (which will be used in the mirroring one)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 123, "deletions": 19}}, {"node": {"oid": "a0859a92e6e9eaeabd5d21541db5ee13dc671b8c", "messageHeadline": "Remove todo for unnecessary proof", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "19fdb5b6be565d4dcc0e9f31bdae4abe66ec5ff3", "messageHeadline": "Add owner key to mutabe pointer lookups.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 113, "deletions": 157}}, {"node": {"oid": "2caf2d2074223691d16aa321e0f9d0c89a67e73a", "messageHeadline": "local ephemeral mode partially converted to p2p mode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 25}}, {"node": {"oid": "7654c8b1f62e70fb995e0d045596ca6b8a1adbf3", "messageHeadline": "[decentralized] fix build", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 4}}, {"node": {"oid": "9745bc2eebb82ecc79fba634dbb6a805f24b510a", "messageHeadline": "[decentralized] [ipfs-management] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 43, "deletions": 16}}, {"node": {"oid": "aac4e22da5c3514837f3f1cc719ca1fed271e5e5", "messageHeadline": "[decentralized] [ipfs-management] add IpfsWrapper testing util", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 73, "deletions": 21}}, {"node": {"oid": "8e9e9b494b9652952057db6a4a07289cbd9ece3e", "messageHeadline": "[decentralized] [ipfs-management] ipfs config", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 110, "deletions": 68}}, {"node": {"oid": "4849bcae38cf25ddca91ce24962f9f1cffa8fd5c", "messageHeadline": "[decentralized] [ipfs-management] make IpfsWrapper AutoCloseable", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 12, "deletions": 9}}, {"node": {"oid": "0f7e5232a91526159e369b35506dd68ad5c1bd4f", "messageHeadline": "[decentralized] [ipfs-management] add shutdown-hook for IpfsWrapper", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "dfdf6570b68aa154d786804175ff61b82651d3f0", "messageHeadline": "[decentralized] [ipfs-management] add wait-for-ipfs util", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 57, "deletions": 16}}, {"node": {"oid": "af61456f7ba0e06bf5dea04cd1055c7e7391d876", "messageHeadline": "[decentralized] [ipfs-management] update  peergos.server.Start", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 65, "deletions": 25}}, {"node": {"oid": "4ff52361702d8b00dc9a67531c9b9dd8aadd24e6", "messageHeadline": "[decentralized] [ipfs-management] ipfs runtime management", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 207, "deletions": 11}}, {"node": {"oid": "a3366c462a69f3384423574a5cbca7ba338718fe", "messageHeadline": "[decentralized] [ipfs-management] update default PEERGOS_DIR", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "409b6c33dac77acc18821e6328ef3d3735432b66", "messageHeadline": "Merge pull request #346 from Peergos/feat/mp3_cover_art_thumbnails", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 760, "deletions": 44}}, {"node": {"oid": "d59cc16f5db691989a962ccf480286ef7a396eee", "messageHeadline": "revert test heap size reduction", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "290168e48912cff69ac936af95b8e7fddb92180f", "messageHeadline": "Use any mp3 cover art for the thumbnail", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 759, "deletions": 43}}, {"node": {"oid": "a95e11538fd8730ec45381623386b3adc93e13ac", "messageHeadline": "Don't run tests for deprecated class: merkle-btree", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2b99bae9f62ecf4bcb512fbcd0dde417221683e9", "messageHeadline": "Fix ipfs url", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1b00fa990a329b40c0f182d930d442bca0018f18", "messageHeadline": "Make sure proxied mutable requests are sent to ipfs (where the proxy is)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 11}}, {"node": {"oid": "bbbaccc58a097386f6dfd0c8b36260a98ab306db", "messageHeadline": "Make sure proxied social requests are sent to ipfs (where the proxy is)", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 16}}, {"node": {"oid": "2af4e34164f82d2cf4828481e9d3ddf4f1ec2502", "messageHeadline": "Remove superfluous method", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 5}}, {"node": {"oid": "ccd707263a16771ed9d7a73c312adf1763c15ea7", "messageHeadline": "Use proxying social network server side.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 141, "deletions": 14}}, {"node": {"oid": "19135c6177ffde885c3b6ca95fde149efe6abcaf", "messageHeadline": "Use proxying mutable pointers server side", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "1fe55ec03ffec8fe83e81e3c4194d4234497742c", "messageHeadline": "First attempt at a mutable pointers implementation over p2p streams", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 120, "deletions": 7}}, {"node": {"oid": "9891c97f2100b89125666cef69314a2c71e8ff12", "messageHeadline": "Give all users a list of storage nodes in their PKI data.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "c92c4d5c58d64908b6fff0c18952b495e6298674", "messageHeadline": "[storage_id_in_pki] feedback", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 11, "deletions": 10}}, {"node": {"oid": "3c864ecf3c62c4fb257be6b03962dd557552e751", "messageHeadline": "correct case", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "0b41f8005325bd87ff7c8168f2917a0b45211913", "messageHeadline": "handle max local date values", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e261af9a7f779a42526f720926444e16007a76ae", "messageHeadline": "Don't serialise ipfs node ids as merkle links.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "88495c43ab778e0819bb76c72fba4f0cb5b86f54", "messageHeadline": "don't unsign pki claims twice!", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "51250c69813d8855aa632b642a91e26cf5982748", "messageHeadline": "make sure claims in pki always have their signatures checked", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 25}}, {"node": {"oid": "0d7f1684209554548482c7a7d6addb09f11e0fbd", "messageHeadline": "Give all users a list of storage nodes in their PKI data.", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 46}}, {"node": {"oid": "7ac00c77b6c1465f7f9711e421ee1443980f2242", "messageHeadline": "Merge pull request #344 from Peergos/feat/disk_content_addressed_storage", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1139, "deletions": 111}}, {"node": {"oid": "d69d338fde1583fab8ab77c2b2a73a58dc172d8b", "messageHeadline": "Clean up FileCAS", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 34}}, {"node": {"oid": "9a835be146a2ec82e42fe292e4754b28e3ec399f", "messageHeadline": "[disk_content_addressed_storage] blockstore in PEERGOS_DIR", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 65, "deletions": 18}}, {"node": {"oid": "5d4735ee83f811e6eb0c57f2a67661c2d573c740", "messageHeadline": "Handle Cids when iterating over blockstore", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "d85ba6a9be9aba77e457b5afaf073ba47d79c8f9", "messageHeadline": "Add missing file: new ram efficient hash map", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 817, "deletions": 0}}, {"node": {"oid": "a1d1c75be203f0374378546008a776feb9fb0758", "messageHeadline": "Implement a file based content addressed storage for testing", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 296, "deletions": 111}}, {"node": {"oid": "a5312621b5926c1e7853c3cd0aaa55db5be7fbc0", "messageHeadline": "Merge pull request #343 from Peergos/feat/peergos_dir", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 417, "deletions": 228}}, {"node": {"oid": "5a60ea16a169878ff7679d6cfe0fefa84b56a8ea", "messageHeadline": "[peergos_dir] PEERGOS_DIR", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 203, "deletions": 89}}, {"node": {"oid": "ec300c5ceab3cf4719293343ba211b7f267ede7e", "messageHeadline": "[peergos_dir] WIP", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 17, "deletions": 13}}, {"node": {"oid": "912e6dbf71eac99282a31bf0fa843ff540749eff", "messageHeadline": "[peergos_dir] update Args to handle config from host env or file.", "author": {"name": "Chris Boddy", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 130, "deletions": 59}}, {"node": {"oid": "40e84453b7fda3bee7af5b610024dcbcb8bde1ec", "messageHeadline": "Add dependency for running tests", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "7315bee2e74b6d157ea76647c37310e49653e573", "messageHeadline": "Add talk video to readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "99569f9b447652c9e42c7aaca6e9b778e9fc7e21", "messageHeadline": "add 2 more mime types needed for webui over a libp2p stream", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "813083621838e02e8860c7c9c4284a6eaf53518e", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "555cfc914cd47d12c4e1f93c34230f24ae32ce55", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "9376b7430eb341b23b25468b6d3313ed3cc1447d", "messageHeadline": "Update README.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "8715dad74eea0d59bf27a4f7fcb69c08aaa15de5", "messageHeadline": "Merge pull request #299 from Peergos/donation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "83d63d16163a11927427f4fc64093534c25c572b", "messageHeadline": "Merge branch 'master' into donation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1735154, "deletions": 1106717}}, {"node": {"oid": "2f6dcc197d2000095cffbb1623c1fdb2d9a58910", "messageHeadline": "Add magic multipart header which fixes issues with go-ipfs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "00fcdede71be6b6b53261edb4473e37ec363ce01", "messageHeadline": "Merge pull request #336 from Peergos/gwt-compiler-warnings", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 32}}, {"node": {"oid": "0873d4389d1b1aa0b3a3d94924c818df170973a0", "messageHeadline": "review comments", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "9b392706e2a5db397b866c4f91a58802d744d907", "messageHeadline": "Merge pull request #338 from Peergos/feat/id", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 3}}, {"node": {"oid": "10f764debd8ce938d6e61cd8fee33f38a006cc89", "messageHeadline": "Expose the id() call of IPFS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 3}}, {"node": {"oid": "c3e9d671c3b9c3d966a1e1ac7ae658f409a53a74", "messageHeadline": "Merge pull request #335 from Peergos/feat/mirroring_corenode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 44}}, {"node": {"oid": "292fa947fa8cb29fa1ccfbe35c742fb5331ffb3e", "messageHeadline": "Changes to remove GWT warnings when building", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 68, "deletions": 33}}, {"node": {"oid": "0812c6eb34df8f754d8817ccd8831bf5bbdc4765", "messageHeadline": "Implement a mirroring corenode which handle reads locally and proxies", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 44}}, {"node": {"oid": "58a876faeba7f90833eb6f3645b901ccb71b61b9", "messageHeadline": "Remove unnecessary write of public pki key when we only need its hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 7}}, {"node": {"oid": "24aaee9e55f7e9ae146fdaa5e6584c1751909a66", "messageHeadline": "Make sure named keys are counted in usage/quota", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "645aa0c257ded20346069e90c00bdfc74e899206", "messageHeadline": "move method to fix gwt", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 13}}, {"node": {"oid": "9a0026cae8d9d9c8e3b7feeab46dd91d6bc573f6", "messageHeadline": "Merge pull request #332 from Peergos/assets", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "0302694e9ea76d3f067178d23f74a9176a131f5f", "messageHeadline": "Utility method to make a non write-through network access.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "c112b582d65a67930510531166454389bf7c8c23", "messageHeadline": "Merge pull request #331 from Peergos/feat/regularise_writer_data", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 34}}, {"node": {"oid": "49705132e8ca0ac5b8890b6ec205e04455a00321", "messageHeadline": "forgot to update root in ipfs corenode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "1d7e47f90db065c9ef61742daa2f0282e70523f0", "messageHeadline": "Change IpfsCoreNode to use a WriterData rather than a raw CHAMP for PKI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 32}}, {"node": {"oid": "479bad8db630c69aa4e6a7d20e850b3b7450fadd", "messageHeadline": "Optimise WriterData cbor to exclude absent elements.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "427db6219a162ae998d9f096826fb9bc45bbe0e6", "messageHeadline": "Merge pull request #330 from Peergos/feat/encrypt_pki_keyfile", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 2}}, {"node": {"oid": "3541fc6bcbbf44422aef0a88d79649de7d49b64e", "messageHeadline": "make new argument explicit", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "6e1b6159dad3e903032acaed84e6402726d1a7af", "messageHeadline": "Merge pull request #329 from Peergos/feat/keyfiles", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 165, "deletions": 63}}, {"node": {"oid": "10242e583dc61fed890f9489d4e72b4c49de47ce", "messageHeadline": "Merge pull request #325 from Peergos/logging", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 289, "deletions": 210}}, {"node": {"oid": "57a2836cacf938b1dcc4963eee4e49d1d0ec87df", "messageHeadline": "[logging] removed proper logging from cmd-line apps", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 25, "deletions": 37}}, {"node": {"oid": "d62b27d78bcd968b0d5a1d9845595ca6fea36e73", "messageHeadline": "[logging] removed almost all  System.out references and replaces with\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 325, "deletions": 234}}, {"node": {"oid": "98baf930c6f5c85bd532bd5890eef392031e80fe", "messageHeadline": "Encrypt the private pki keyfile", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 2}}, {"node": {"oid": "953e53fb0b0410aeaa3d9ff45eed6298caceef8a", "messageHeadline": "Improve names in PasswordProtected", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 9}}, {"node": {"oid": "22a08f8b518b2ba58e40f6bc2b798c8f58a0e63e", "messageHeadline": "Implement a password protection utility, which will be used to protect", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 165, "deletions": 63}}, {"node": {"oid": "9c9edba04d0e6608c2a99ec79756b3dd832f6de4", "messageHeadline": "Merge pull request #328 from Peergos/feat/ipfs_corenode_integration", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 221, "deletions": 161}}, {"node": {"oid": "a158ce5e03d94a84586c7a0c55a39e2386454371", "messageHeadline": "Make type more specific", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "92bebeeca66d412824ed23adebb639498cf2ffb9", "messageHeadline": "Make pki password configurable for tests and remove unneeded access to", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 12}}, {"node": {"oid": "8e9610392ae23d82f74df22dcbba422a561eb693", "messageHeadline": "seems like test agent can't handle xms requirement", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "45ea3656cc8e1d110683c161cf6d140c3b687cf4", "messageHeadline": "fix ant arg passing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "762ad9905ef1df9917f9887bf3a6edc6d2676b9e", "messageHeadline": "Reduce test heap size", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c7cf174f8ada8c438a7593c9db9015ea68f0f937", "messageHeadline": "Clear Ram storage between tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "c82576232cd496a15f4b9ad68e1de28d57438f6b", "messageHeadline": "Improve docs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "8385b704281e539be6efe1b3fa182eafd00486fc", "messageHeadline": "change test heap size", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "10a5ab6af38017b3ec91ca98fef3f7351b94cc08", "messageHeadline": "Refactor bootstrap and poststrap to make parameters configurable", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 25}}, {"node": {"oid": "8da6edc6ac5520e6a4876f32aa2767417ec93b3e", "messageHeadline": "Update RoadMap.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 16}}, {"node": {"oid": "c08818edee3c023beec92cd78cc5043f0ddb60fd", "messageHeadline": "increase heapsize in tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "255c31eea18c4069218ad35b49c4ee948b5e1425", "messageHeadline": "Fix quota test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "fb9dbec9c21b526bf12f1aa52f4f1a800acf02d1", "messageHeadline": "Tests seem to be fast now without using an insecure random, so remove", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 112}}, {"node": {"oid": "3ebaf249d05c034e81a5cf6e38cf2994482e2e94", "messageHeadline": "Update slides in readme", "author": {"name": "Dr Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3998c2df81e541266ded6f60237fa136266f69db", "messageHeadline": "Clean up multi user tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 17}}, {"node": {"oid": "56a4862d3cf64e1160aa5fb3f01b4e18593502d6", "messageHeadline": "Make test bootstrap use same pki key each time.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "1e7c1177fda988c245fd7aafe85cf3d0cdd6a517", "messageHeadline": "poststrap bugfix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "12098d7dd4b8ad1e1f58828afc449dc059868454", "messageHeadline": "fix test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ce2314fc9900c79d707d7244449b0f782e9ffb52", "messageHeadline": "Ensure the pki public key is written to the dht during network bootstrap", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "888028fef4ed5dda865a2596e26a5d7cf35b5e92", "messageHeadline": "Make LOCAL command always bootstrap correctly", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 36}}, {"node": {"oid": "86c69ae8c45a25caf161830f7b4e4284eda0a5bd", "messageHeadline": "Merge pull request #327 from Peergos/signup-signin-generate-keys", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 28}}, {"node": {"oid": "a9a147f6ae276721469ba125046aa7c8200159b4", "messageHeadline": "Merge pull request #326 from Peergos/update-gwt-2.8.2", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1730305, "deletions": 1105227}}, {"node": {"oid": "945caf7b3c9097753851be0024efb84d090976a2", "messageHeadline": "refactor signIn() to reuse UserWithRoot generated during signUp()", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 40, "deletions": 28}}, {"node": {"oid": "65621396ab796c02e298454011d35beb41c96c55", "messageHeadline": "upgrade to gwt 2.8.2", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1730305, "deletions": 1105227}}, {"node": {"oid": "e97eaa7dcffe76f61715f31fdf0f6428a38e029a", "messageHeadline": "Integrate the ipfs based corenode.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 76, "deletions": 14}}, {"node": {"oid": "410d349376fbe274e884f702973453d93b55551d", "messageHeadline": "Merge pull request #324 from Peergos/spinner-text", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 7}}, {"node": {"oid": "4352cc51706ecd62b0e3e8100cf143c5530d98c9", "messageHeadline": "add message for loading friend entry points", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "40ff68028acc84ec1940eb490f95a186790e06b2", "messageHeadline": "add progress callback", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 23, "deletions": 5}}, {"node": {"oid": "a6146c5fcad70186883efc3f0065ddae0425d146", "messageHeadline": "Merge pull request #323 from Peergos/feat/ipfs_corenode", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 446, "deletions": 14}}, {"node": {"oid": "452e7af273c7bc426c0aa54733273f50d01404ac", "messageHeadline": "javadoc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "aa9340cbbe51c48001e472ea65f412ba07157526", "messageHeadline": "Allow the peergos identity key to be a parameter in IpfsCoreNode for", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "c1204a7c0022269d11befa310fc967a70b15e5fb", "messageHeadline": "Correct check for existing pki signing key", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fc1e57857972aec21180682874f23b05cc2a257f", "messageHeadline": "Fix a few bugs in the ipfs based core node", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 7}}, {"node": {"oid": "7791c988ef56ceb04a77c240a83e7179eb938788", "messageHeadline": "Fix null pointer", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "834f9c1c420338a1216f55e25c5da1b3c7198f89", "messageHeadline": "Implement method for loading the existing pki in ipfs, and storing it", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 88, "deletions": 6}}, {"node": {"oid": "484cdb6ac1febe325c4d5a2635648ddac7fe2b53", "messageHeadline": "Use mutable pointers in ipfs corenode to store PKI root hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 5}}, {"node": {"oid": "293c96a454d68d8c859dbf87d7c50a70db9692e1", "messageHeadline": "ipfs corenode WIP. just need persistent storage of root hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 153, "deletions": 53}}, {"node": {"oid": "806166e7e6989067e21548729b52d23496c1cc91", "messageHeadline": "Merge pull request #321 from Peergos/videothumbnail", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 333, "deletions": 14}}, {"node": {"oid": "16fc5af436d2849d1a85db11c15f90e99331bf26", "messageHeadline": "try to kill javafx", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 5}}, {"node": {"oid": "19fd31dd72349241db571adb124aee5980e97afb", "messageHeadline": "try to kill javafx", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a60d14e2e176a9c9cdd5c79ec5edbb571068d33b", "messageHeadline": "try to kill javafx", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "bd46877596237a7719be2be24724336b7d0b568b", "messageHeadline": "cleanup", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 15}}, {"node": {"oid": "edd852adc0f594ae6dd1c136ac94b2562a84d712", "messageHeadline": "fix build.xml", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "da081e9b8eaceb8856b7b7cc40cfeec53e0e3f5c", "messageHeadline": "update ipfs version", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8f63ef906f017005df2b1893ee89aad7d3a28d38", "messageHeadline": "Beginnings of an ipfs based core node.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 194, "deletions": 0}}, {"node": {"oid": "5e1c562565075e07d509bb1d4c692500b0673fbc", "messageHeadline": "Merge pull request #320 from Peergos/feat/corenode_in_ipfs", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 502, "deletions": 283}}, {"node": {"oid": "49dec5fc31432f92b8846c097868052820705306", "messageHeadline": "enforce case in localhost test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "439ad34c90315cc119f9533c09b9c9cef703c683", "messageHeadline": "remove corenode references", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 7}}, {"node": {"oid": "4c1ff39a446274c5d91c616c82286d3088b677da", "messageHeadline": "Merge pull request #318 from Peergos/feat/safe_network", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 409, "deletions": 14}}, {"node": {"oid": "d0b063ead58b2d3be0d715446807178c6198dceb", "messageHeadline": "need to isolate tests from each other. This is a stop gap.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fa7bba1c7ba51dd572ccffe444329dd0721992f7", "messageHeadline": "make single user tests use different SocialNetwork instances", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "d3ff2d896c0bfdb2e671b2e28b67bb1c93612c8c", "messageHeadline": "Fix multi-user tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "3615913922441a9e6dcd23a0ae50393b791aec16", "messageHeadline": "Separate SocialNetwork from CoreNode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 444, "deletions": 242}}, {"node": {"oid": "fa9aa63abb26f880aa826ad205cb012034514222", "messageHeadline": "beginnings of splitting corenode into PKI and SocialNetwork", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 49}}, {"node": {"oid": "722f1ddd2e4ce28f3edbeb17d7027af988e7b98e", "messageHeadline": "Make playground clearer", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 10}}, {"node": {"oid": "ab82a8e4ab9245ce3deb3b12b782c5395e60d481", "messageHeadline": "make non write through storage foolproof", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "fc8e83cb13f8cd25cce38ba716984b4101f34743", "messageHeadline": "Implement non write through versions of everything.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 401, "deletions": 14}}, {"node": {"oid": "53cb860279ad8a6a1f5f844d028a70eec7da9f94", "messageHeadline": "missed in previous commit", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 77, "deletions": 11}}, {"node": {"oid": "058b23e8ca400caef50ad413ea61dce3da573486", "messageHeadline": "video thumbnail initial code drop. requires web-ui changes also", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 258, "deletions": 0}}, {"node": {"oid": "194c5b2f764e433eba2440403587d15f6c9f9329", "messageHeadline": "Merge pull request #317 from Peergos/feat/btree_to_champ_migration", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 72, "deletions": 6}}, {"node": {"oid": "12b2099d217993ea49e7fa36206b26a2f10a6c88", "messageHeadline": "Fix backwards compatibility", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "a39210f974031f5dab28bc9dcbe6d34b2585d5f2", "messageHeadline": "fix check in champ", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "958d7edd37b2fdf2480b6dc6a7d2486141e876d3", "messageHeadline": "Merge pull request #315 from Peergos/feat/champ", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1053, "deletions": 64}}, {"node": {"oid": "f02186115a6fc1a4045279868616f3f5e872027b", "messageHeadline": "javadoc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "bc7e7c79757b0a06be5fa53e812b5cf3c1523d3e", "messageHeadline": "simplify arraycopy", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "a803a0841a3f2c958c5966684abcd63dedacde36", "messageHeadline": "remove asserts", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "4325f8bb6e83606f71e4ee25620d9d975e29f080", "messageHeadline": "simplification", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "10f298d7ed13c553646ebf545a028b0c9c1085b7", "messageHeadline": "javadoc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 0}}, {"node": {"oid": "a2ac74c248feebb715c8a95b0b86b7fcd51f4cb4", "messageHeadline": "rename method", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "ccd922353adb9bf46ebbc160409bb169b22d0fda", "messageHeadline": "simplify up champ node", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 10}}, {"node": {"oid": "aa0b0e3831babfd6c6445bcd0248d31f3145d840", "messageHeadline": "Implement a method to migrate a writer from a btree to a champ", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 72, "deletions": 6}}, {"node": {"oid": "d00b7abdffc02a41e0344673e4a1f9f1fca01392", "messageHeadline": "Fix two hardcoded params", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "afd33ff772637ada8ecc3df0e685731d6f3db27c", "messageHeadline": "Change champ defaults", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "1c4f18b869510664124e7fde403f63f86f5b2b26", "messageHeadline": "Fix for backwards compat", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "029b82cd70ff2b47a90ef32b175eeb254110b5cb", "messageHeadline": "Allow champ to use a custom hash function", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 72, "deletions": 49}}, {"node": {"oid": "5ffe1762291752225a67d07b655527f0be8a811f", "messageHeadline": "Use tombstone in champ for removal, same as in btree", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 18}}, {"node": {"oid": "d8cd2d04ce29d07e93b30c1896d64d50225fa590", "messageHeadline": "Fix test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b575b9d7556d759ca8d399bc6a82b322a395110a", "messageHeadline": "Make this branch backwards compatible.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 53}}, {"node": {"oid": "d810c8d4aec6a8f7d36bf7d0405a83b42b6f8915", "messageHeadline": "clarify operator precendence", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "75d3311d5d820bcce275fdde7150d03a4ac6aaff", "messageHeadline": "Move champ efficiency calculation to separate class", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 79, "deletions": 61}}, {"node": {"oid": "5ea214cbcf850089be6a2c2951d8d9d95969cf37", "messageHeadline": "Paramterise the number of maximum hash collisions per level in champ", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 44}}, {"node": {"oid": "56c12fdb432dac9a1a5d5374cf1f803e7b1f4d64", "messageHeadline": "Move to a more general champ that tolerates a certain number of hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 277, "deletions": 193}}, {"node": {"oid": "c7e1f43441c2b805a490c77a80dc988c64c9aa9f", "messageHeadline": "small champ simplification", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "6753282795e14397017041c298e72cf3ba194ca9", "messageHeadline": "Use correct exception for CAS failure", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "1c807a822cd14aaa440a49365f1900285245dd6d", "messageHeadline": "Switch to using champ from btree", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 49}}, {"node": {"oid": "b952712f020f6dc011957cddc9edefd54a1e616b", "messageHeadline": "Add wrapper for champ, make champ.remove CAS based. Add champ.size()", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 128, "deletions": 5}}, {"node": {"oid": "837adc622ddaefb69f068b59d993cb6e297708b2", "messageHeadline": "Let champ use arbitrary bit-width, for now 6.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "0ea48f3a78585daa316f41785db7364ee32c6412", "messageHeadline": "Move to 4-bit champ instead of 8-bit.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "ede38e5edb6dfdab25b5835e1b15c301f77ca345", "messageHeadline": "Decrease serialization size of champ (by ~ 2%)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 26}}, {"node": {"oid": "24e2d8dad59f9be11059c0f4369d8dc49479d833", "messageHeadline": "Measure champ space usage.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 0}}, {"node": {"oid": "17b492a4097b993c9f4073d3e1fdff3e30719d0d", "messageHeadline": "Optimise Champ to avoid unnecessary serialization", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 56}}, {"node": {"oid": "ebaa6ee6af9f79e16e2148cfaad554c0bf78cf7b", "messageHeadline": "Fixed champ so all tests pass now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "fa4cd788538e1b3435647a83f7eeaa18ff3ac1b7", "messageHeadline": "There are bugs in champ's delete. This partially fixes them.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 180, "deletions": 97}}, {"node": {"oid": "0eb914f5d235d30c0ec61a3a43252dee79fda618", "messageHeadline": "Canonicalisation of champ fails with deletes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "3d53f3318935b4799006ae07d64a10a34fb5c9c7", "messageHeadline": "remove unneeded keys from champ", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "cdc4b04478341a27ee712041426a1bd2ba445199", "messageHeadline": "Implement delete as well in Champ", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 132, "deletions": 0}}, {"node": {"oid": "c6b0411ec62d5d0f38aef6fd210ad863f27b1129", "messageHeadline": "Add test for overwriting values (and fix a bug)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "c089530abd714b424f714337bc5cc806903b3509", "messageHeadline": "Implement a Champ (no delete operation needed for our planned uses)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 339, "deletions": 0}}, {"node": {"oid": "4643258ca728376ce62c63783c336c5a608ad2c9", "messageHeadline": "Actually fix gwt", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "f0c59ee19439839ed371dd86b37ca6cd24eb1a26", "messageHeadline": "fix gwt", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "57ab0868875ae89260ece8def6a991679d4bcf9c", "messageHeadline": "add test to analyse insertion order invariance in the merkle btree (t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 0}}, {"node": {"oid": "96ddce4889ee9b495b058085f421ed0c18a2d62e", "messageHeadline": "fix gwtc and remove Orchid", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "a34ad49a5e9812d5e317d05729c47f802aa6a49a", "messageHeadline": "Set response sizes in server.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 37}}, {"node": {"oid": "12739cf6c3d4657d586fcaa3d0183e5cb2e20acb", "messageHeadline": "Merge pull request #309 from Peergos/cborable_cborobject", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 71, "deletions": 66}}, {"node": {"oid": "cf6125e001c2b1a50b381d9f500513a7ef7ac0f0", "messageHeadline": "[cborable_cborobject]", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 71, "deletions": 66}}, {"node": {"oid": "5a9d39a767236bab23fef471708eb5bfbae2b843", "messageHeadline": "Improve error message if you try to sign up twice with the same", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 1}}, {"node": {"oid": "a8025f9677aac78f6a6e141ccf4e2a01fe3be191", "messageHeadline": "Merge pull request #307 from Peergos/fix/parallel_space_calc", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 12}}, {"node": {"oid": "8158a6f43d447657a4cb674668a18901b1360996", "messageHeadline": "Add test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 0}}, {"node": {"oid": "76ed5be370cfee5aaa2a22bc00689a6e8d56c23e", "messageHeadline": "whoops", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b3e4b55f7622f09dfd118b2e2726e08a5659960c", "messageHeadline": "remove irrelevant stack traces", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 2}}, {"node": {"oid": "d8f8983c7bbf06b901f643b1b88923823b2dd4a0", "messageHeadline": "improve error on connection termination", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "9fcfb7c7310c3c56b860b18c0b135294b8ff5bf4", "messageHeadline": "propagate error in future", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "0f2464a14c43c55028af479ecfb855b76576339d", "messageHeadline": "avoid null pointers when data is missing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "765ab358a9d7560143fcc94f8f09c6ffb4bb6775", "messageHeadline": "Fix case where there are no usernames yet", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "e8b71351cd5b62f8c7822990fc2effb9fd096348", "messageHeadline": "fix index out of bounds", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c400fd0efe32ee1ed05652ceef237d6a6edc3728", "messageHeadline": "Parallelise space calculation to speed up server restart", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 5}}, {"node": {"oid": "588e779e562e8389707caaffa511a8ad0bdfe6ff", "messageHeadline": "fix gwtc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "51900573dff504eebaeeab5e4260b8b67fa59115", "messageHeadline": "add logging to space usage loading", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "a10a9dd4057b74e1dfb58ada4ba71e557a7c7759", "messageHeadline": "Don't let IPFS hanging make us hang!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "5ba128ff0c25fcdf72383a1f996836f5dd6e13f1", "messageHeadline": "Correctly propagate errors from IPFS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 21}}, {"node": {"oid": "ab318db5f6f97c7c13b2eb3aedd8e759d6d973e6", "messageHeadline": "Merge pull request #305 from Peergos/badpubliclink", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "c89cb4d4bdd59400b8e890eb0f1686295b480506", "messageHeadline": "handle bad public link", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "4b8677c567cc5d20d1777008b79c60ef75e2eb2c", "messageHeadline": "add a renew username utility", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "9be9ee57af067326522018413c61ae37752937eb", "messageHeadline": "add a login utility for checking login from java", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 0}}, {"node": {"oid": "225da93bb10be9c9d72ae2ab554b5f672447f351", "messageHeadline": "When logging in, retrieve all friend's entry points in parallel.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 1}}, {"node": {"oid": "b28ca3078b2e8f2525deea58ad9ef30319939069", "messageHeadline": "Indentation and don't error if the whitelisted username file is absent", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 46}}, {"node": {"oid": "c2f30f154099f76a16b6a22986d4a44eb2d04e83", "messageHeadline": "Fix mimetype for files smaller than 28 bytes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 6}}, {"node": {"oid": "003f2ce72ef4ae73951320ff59e26551917367e8", "messageHeadline": "Add donation and book links", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "bf87d2275618ccb6372cc1d72011722c42f0e1bf", "messageHeadline": "fix classpath (manifest needs newline at end of classpath)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "738abf4fde898605e67f823495d54e061983ead6", "messageHeadline": "Fix timestamps in jar so we strictly have reproducible builds now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 6}}, {"node": {"oid": "236e6b593f396d8d7f0ea4226572388c22bf2a62", "messageHeadline": "Add disabled test for sharing two files with the same name with a user.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 1}}, {"node": {"oid": "a081b7afba60626397768f7e3935ec6dd4cdfad9", "messageHeadline": "Merge pull request #296 from Peergos/fix/file_overwriting", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 20}}, {"node": {"oid": "7432d2ecb897ae36a38efce9337272fe0020932b", "messageHeadline": "Make an explicit option to overwrite any existing file during upload", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 20}}, {"node": {"oid": "4cf72900590b019ffce6bcf84b2159dfa483cba9", "messageHeadline": "Add user specific quotas for a given server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 22}}, {"node": {"oid": "a70cf32e4a9406b20ed6327f4b72cc6d2ba2b3f9", "messageHeadline": "clearer log statement", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9f8cc787bfcb3fa1b39cdcae84f9853539601ced", "messageHeadline": "speed up server restart", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "7c16e0d7f62d830e47562d83ff92c7cbe9e52043", "messageHeadline": "haha. Fix quota test where user is already over the quota", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2604f683ae3c159f8eb81286efa5d569ba0f8681", "messageHeadline": "Add util for calculating global public stats", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 0}}, {"node": {"oid": "6588d74df11b2afe043c41f1c07faa3403ed4d9d", "messageHeadline": "fix test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4d54af23505fe11ca70e0e480c8b461e1e8ac7e2", "messageHeadline": "add test for deletion after exceeding quota", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "c91459cdb5621f7785422df311bc7faa20deb44f", "messageHeadline": "Make sure writes are authorised for their actual size. This makes it", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 15}}, {"node": {"oid": "2e6d05f65f5eb6d3a27cbc6e7d4ac979c1130568", "messageHeadline": "Update RoadMap.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "022abc16104f49ba82ef9997886f3e5fe043fcca", "messageHeadline": "Make corenode more resilient to errors calculating storage", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "3aac007f8410a44bd126798eac5c7361ebbfac10", "messageHeadline": "Propagate quota errors correctly over http", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 10}}, {"node": {"oid": "319e7a871165cd4700886c7a3f6e478b4af47910", "messageHeadline": "More helpful error message when trying to sign up a", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 1}}, {"node": {"oid": "b60ddee255e68801a9c6251ae50b0b6f99fc0876", "messageHeadline": "Fix test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "1fa6522ac1e3f0e9099f6d7cf94a29c3cf36dfd0", "messageHeadline": "Propagate exception messages over http using the Trailer header", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 3}}, {"node": {"oid": "3743dd855a7d8d1c68fedd0647e041cc71c7c636", "messageHeadline": "Merge pull request #284 from Peergos/multipleupload", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "53c40cfeaec71352a2fa3c7701e733067cb6a276", "messageHeadline": "Merge pull request #283 from Peergos/hasWritableAccess", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "3009b50c05a069984b72a5b132753791b621e80a", "messageHeadline": "multiple upload", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "898889b70d140ca809a325d21632fd81fa14526c", "messageHeadline": "add hasWritable access check to Copy context menu item", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "6fac5e2e0e383abf56e9c8c19c9138a95b7c7a48", "messageHeadline": "Change to a simpler username regex", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "ef3fb7508529c27a911ddbd6b99848b423b621ca", "messageHeadline": "fix ascii determination", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a14933512522810ce6b3346fdc13db81ebcfbae9", "messageHeadline": "Make mimetype default to application/octet-stream", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1aaf1da980dba25f03c7b9247d76d4a336d3cef8", "messageHeadline": "Add test for following peergos super user", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "5f710691484cc72aed28cd84705892e6a4232b12", "messageHeadline": "Merge pull request #278 from Peergos/feat/follow_peergos_on_signup", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "547c2d36380148b994daec187a8d25361650ee4a", "messageHeadline": "Unless we are peergos and we just signed up...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0894bf876cb7efe7a9cbb0c16d284eb1ab9413ef", "messageHeadline": "Make users follow peergos user upon signup if it exists.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "e425a58942266d9ae194bd2d8e3006ace65fe249", "messageHeadline": "fix for calculating existing user's usage", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "b27a1eed18e24450332d798974cefb163cf3ab24", "messageHeadline": "Merge pull request #275 from Peergos/feat/user_file_pinner", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 85, "deletions": 3}}, {"node": {"oid": "9e4cc812011c96302ba5a42b31bfc26197bfef3a", "messageHeadline": "Merge pull request #277 from Peergos/feat/user_storage_limit", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 601, "deletions": 41}}, {"node": {"oid": "6105287ac5b9bad7348218db1bd0f62487654e29", "messageHeadline": "Add test for deletion when just under quota", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "2d9d4da061cf258b0d7ea65c056f7cff6f2a6ff4", "messageHeadline": "Fix typo and add test for usage reduction after deletion", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 3}}, {"node": {"oid": "d2e398ed45990b1f6c07ffb78e3d469c79e59535", "messageHeadline": "Make quota checking O(log(N)) rather than O(N) in most cases, where N", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 3}}, {"node": {"oid": "95ab8e60b67856d37e086ca6817cd99c741a3299", "messageHeadline": "rename method", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "ca112ac0a64bbb216be7fa86241825797e4e6a55", "messageHeadline": "javadoc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "588b35e564fda2fa2514d5baa2007cfc1e3ea6d2", "messageHeadline": "make propagators more flexible", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "3fd9d8920fd8638d7f775cd8d86fd2515ba5df90", "messageHeadline": "make usage comparison to quota threadsafe", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 29}}, {"node": {"oid": "a4506fe535d89a0738b1245958ffa35dc84782bb", "messageHeadline": "javadoc and guarding of returned set", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "a5130f8c3576011d0a62d13132948765be4fa35d", "messageHeadline": "Merge pull request #276 from Peergos/follow_then_unfollow", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 1}}, {"node": {"oid": "fc9da1ced10496cd45468be94ea1f640a4c6834b", "messageHeadline": "get rid of commented out code", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "166eb09d8bebf31a89fae2cc0f1cbb7416771b88", "messageHeadline": "handle the storage update for removed writing keys (which we currently", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "35d4b8e32a1d7c9a607ca68824fed166d5102cf9", "messageHeadline": "prepare for optimising only unscalable part of quota checking", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "a25aa837598fbf416dcf4c9b984254c7cf9419d3", "messageHeadline": "fix quota test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "dc3fc42ab7a6637b7b264972d0e349a963dc903b", "messageHeadline": "To avoid race condition, mutable events have to be handled inline", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 10}}, {"node": {"oid": "1cc5499b8ddf63b9aa864c67394cb54c73bfc6c7", "messageHeadline": "Almost got new space checker working. It subscribes to CorenodeEvents", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 406, "deletions": 55}}, {"node": {"oid": "55309be8afed0affa5136369678e9c4dc2c5cc3f", "messageHeadline": "fix bug with follow followed by unfollow :)", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 40, "deletions": 1}}, {"node": {"oid": "61acd98fbb35087bcd1e1611dd5f58be95083f22", "messageHeadline": "feat/user_file_pinner: Periodically  pin all user files for users in a", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 85, "deletions": 3}}, {"node": {"oid": "efcaa45c3ec527b414ba88ffd2f7f135d0268c46", "messageHeadline": "First step of limiting storage by user", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 99, "deletions": 13}}, {"node": {"oid": "cb06bfd0e9dc7ec14349618719c225f96506d7be", "messageHeadline": "Merge pull request #274 from Peergos/feat/pin_all_user_files", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 1}}, {"node": {"oid": "bd2066cb11608aaf7f13dfd4a7989396347ab3ec", "messageHeadline": "feat/pin_all_user_files: Added utility method on NetworkAccess to pin", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 44, "deletions": 1}}, {"node": {"oid": "828b27a8fca2796a7d84ac125b534d41172391af", "messageHeadline": "Merge pull request #273 from Peergos/feat/authenticated_writes", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 496, "deletions": 255}}, {"node": {"oid": "a9d4fa3f73c8fdb92042399dbf28aafba4252b05", "messageHeadline": "fix creating an entry directory", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "9f9f09dff2e50011a7620f1c276bbe62bc30797e", "messageHeadline": "assert.fail", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4ec3f6b0bb19e4411c45a868b2bf8f4855d4a215", "messageHeadline": "extract constant", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "d085cc30cc4724d1da0f373d881945f364d9a869", "messageHeadline": "Fix change in btree semantics for absent trees", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7205a2896efc5dd68d294178f9a4454d4b7f8112", "messageHeadline": "Reload key filter every 10 minutes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "33045408a6111bc93a56d7fb00d2f6e9a77bc9ba", "messageHeadline": "Invalidate changed keys in the key filter", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 11}}, {"node": {"oid": "2fae57d526b7e0166bfa164131927cd696470fbb", "messageHeadline": "Add test for DOS cbor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "3e1953464b6ac035c53f40f410d90fcf1c4e8973", "messageHeadline": "factor out method", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 24}}, {"node": {"oid": "0cd75f2121795803546a6e8828db5372277b8558", "messageHeadline": "simpler method call", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fbf60d8fecc78e729639fdb2821ba3c926737c0e", "messageHeadline": "better name", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 27}}, {"node": {"oid": "602774bfa1fc6a3afafe84b0af000d3d6f46372c", "messageHeadline": "Make all cbor decoding safe.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 93}}, {"node": {"oid": "18822a0c40e24789790526d008e200c9116cd0f7", "messageHeadline": "Guard all cbor decodes to memory allocation DOS.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "e8e2f048057554483220e55abcf252cc7b7a479d", "messageHeadline": "Remove interface in preference of Predicate", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 32}}, {"node": {"oid": "2624c886b72ce0f9ec95db85ffc7bed3f138047e", "messageHeadline": "comments", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "0c2ad5ce5df6abe2b6a3a0b2780331c015fce01d", "messageHeadline": "Don't try and deserialize random bytes, as it might cause OOM error.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 74, "deletions": 7}}, {"node": {"oid": "ef0f3a37e46ce070f15088e87e83a901e6b82817", "messageHeadline": "Fix Change login algorithm.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 16}}, {"node": {"oid": "3b9adc6f4e7048a63adbc4b27554acd545d3996b", "messageHeadline": "Fix fuse test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "2f3deb86d76016ae3df59f72881c752c400948b6", "messageHeadline": "Add a KeyFilter interface, an implementation that allows all", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 134, "deletions": 61}}, {"node": {"oid": "813d35af99264258943264318e21b5a65c1575d6", "messageHeadline": "check the hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "2e1d2cc3aaa8c7bfd74cf746a17b8161b12ca115", "messageHeadline": "No need to use mutable pointers. Just test for self-signality.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 13}}, {"node": {"oid": "c21878e9e60860beaee221c4ed2e3b94a847fb25", "messageHeadline": "Use presence of MutablePointer for a signing key to decide whether to", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 17}}, {"node": {"oid": "eef3c953f0452aea924fc1aa93d2db3a6c221162", "messageHeadline": "Remove username from put call", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 54}}, {"node": {"oid": "0c4d61e0a3adee1698c79d43e9cd42fb7ff4870d", "messageHeadline": "Move registration before the initial store of the signing key.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 45}}, {"node": {"oid": "457ff556775271a8278b5cb0eab9560cd7b8d784", "messageHeadline": "reduce test duration", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f81e7bb97271c12c2ce0b2c18825bb8ed6ee01c1", "messageHeadline": "fix test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e7c1b066dfd072f8ce2c5f675cd2f4d8eea7a7b8", "messageHeadline": "verify signatures", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 4}}, {"node": {"oid": "9e5f8ae23c9af2def1e76b988f91d24547b311f4", "messageHeadline": "first stab at authenticated writes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 222, "deletions": 156}}, {"node": {"oid": "4d4c7c1525376519d1ff86e1738c787ce55ea805", "messageHeadline": "fix demo mode port", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "58e3f236b10cb91c3e8108dfeade65d9b2f26b71", "messageHeadline": "fix demo server mode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "f8334a221aeb49ef8a7988e5f1c96fdc1caa354b", "messageHeadline": "Merge pull request #272 from Peergos/webworker", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 41}}, {"node": {"oid": "870b6c8e1ef6b0b53b1e534fa4ddc9f01b5a187c", "messageHeadline": "cleanup", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 7}}, {"node": {"oid": "64c0fcfef76b69c231eef8983d2ef423ceba2545", "messageHeadline": "don't log unnecessary exception when blacklist file absent", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "8f0bff082085557a99740db7d50f4fbc8f7a4cc4", "messageHeadline": "Merge pull request #271 from Peergos/corenode_max_users", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 118, "deletions": 15}}, {"node": {"oid": "e8888ae4a6a05e56243e879980b96606ce6677e0", "messageHeadline": "corenode_max_users: Added max-user count to JDBCCoreNode implementation.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 118, "deletions": 15}}, {"node": {"oid": "f165e05c46d007a3a7d0e7969c3bc1c2e7c356af", "messageHeadline": "Merge pull request #269 from Peergos/usernames", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 14}}, {"node": {"oid": "90d930733be6ba8adba9edf41895f87dbd782afa", "messageHeadline": "make upload/download cypto async", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 106, "deletions": 39}}, {"node": {"oid": "3becc06c673f6b55ec902d6bf7eb21b3c2fd7351", "messageHeadline": "move regex to a JS visible package", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 4}}, {"node": {"oid": "2c8c4524238a3ce3f864eeb48b51474e096f2f14", "messageHeadline": "Merge pull request #268 from Peergos/blacklist", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 179, "deletions": 3}}, {"node": {"oid": "78793b9cb7f6e89cba621b0c7117c47d941ed73b", "messageHeadline": "clean up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "e04246671e70f0902f46390161b4a4420acb7cf0", "messageHeadline": "better var name", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "f19caf2e735b154f5964ebfbb7d2c8f5ccd63b2f", "messageHeadline": "typos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "0d111b3f6951304cafa0b4bc7cbc0a8eec642d91", "messageHeadline": "Allow -'s in usernames", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "c4bd1f0324360abee1ca8818f1a04aaacdee22b3", "messageHeadline": "expose username validation to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "82e95047c459205ba144da02c90a88c06301e3f7", "messageHeadline": "restrict usernames further to lowercase and no .'s", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 13}}, {"node": {"oid": "231d04135dc4a0ccf3c2a11a041f1fc75de3ed6e", "messageHeadline": "Update RoadMap.md", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "c92d72dbd394499ccb95e5b9cb233d5ddf2e3104", "messageHeadline": "fix compilation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "301a36e26a00ceaf961f3680cb48db957d0b55b3", "messageHeadline": "Merge pull request #267 from Peergos/command_line", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 300, "deletions": 135}}, {"node": {"oid": "0b34fb9d37727d99b66d4598ee0c2e6748046700", "messageHeadline": "make blacklist reload every hour, otherwise a user changing their pas\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "9eb18a2d16acd37e06f0829148d9c5cb50fcd089", "messageHeadline": "gwt fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "84ae516954d5e37a050e23e242c4e8d575f54a58", "messageHeadline": "Enable blacklisting users on a particular server (reads + writes)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 171, "deletions": 2}}, {"node": {"oid": "e34df368994072e09b1be279aaac46bef540f45c", "messageHeadline": "Enforce command name being its invocation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "4338f2baaf65d08d0f15c66c4a67345165b76f8a", "messageHeadline": "Finish command line rewrite.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 135, "deletions": 157}}, {"node": {"oid": "42dbfe3f185fde710b800e68a6ba8f106fff875f", "messageHeadline": "Merge pull request #266 from Peergos/sharedcache2", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 27}}, {"node": {"oid": "8c33a08743cb972909b96c939ef1c03e762f43d7", "messageHeadline": "removed test classes", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 64}}, {"node": {"oid": "96a898688a296bcc9e8a7f9f74552a09354f4984", "messageHeadline": "no actual shared cache.", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 153, "deletions": 27}}, {"node": {"oid": "78fac9d54d1eae6d43cc538443969ac0b6a997f2", "messageHeadline": "More logging", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "4220714b5df417109bf896ba6a363e3465126e82", "messageHeadline": "Add toString to HashCasPair", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "dea00c066c74026d6e364df3051d955bafdc8456", "messageHeadline": "command_line: WIP, not  compiling", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 224, "deletions": 37}}, {"node": {"oid": "f4d7c8b475f94c7101806100fb49fd5703b9a3e5", "messageHeadline": "Add ipfs stress class for profiling ipfs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 163, "deletions": 0}}, {"node": {"oid": "4d09fddcb74cd17ff8723aa6b727497cc8a3bb5c", "messageHeadline": "Add ipfs only test target for direct integration with ipfs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 0}}, {"node": {"oid": "8b39a0f7af71e440dcbba757f42fdcfc6b745989", "messageHeadline": "Merge pull request #262 from Peergos/rename_fix", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 3}}, {"node": {"oid": "0d5285be6368725b6a180473c6534ed9f0e06aac", "messageHeadline": "fix bug in dir rename", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "978af3a7a32608dc2a886c8b30202cdfd2f3e4e9", "messageHeadline": "Add rename test that should pass (it doesn't)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 2}}, {"node": {"oid": "3dc5dff6ef862f21c73d5555debdefcdd464ad67", "messageHeadline": "Merge pull request #258 from Peergos/roadmap", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 62, "deletions": 0}}, {"node": {"oid": "a4cab89d4800d756a5220e4b617f96a60eb69e6d", "messageHeadline": "add comment to roadmap", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "e9fc67c2a40b046af5454e98af67afc948ffe5f8", "messageHeadline": "update roadmap with feedback", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "ee4ebdd61a9eb3703471e7f46b6420f8d47e1ad7", "messageHeadline": "Add a public road map", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 0}}, {"node": {"oid": "69ce95ebbfabfed6ea3ecada894500f652f7e2f5", "messageHeadline": "increase port range in tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1c39b33626c97512d93ecd961f1f0f774f93766e", "messageHeadline": "Make utilities read password from standard in, and mask it.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 7}}, {"node": {"oid": "c2d185d4875af2727acafc8a8081c80b95cffb94", "messageHeadline": "propagate errors in caching storage correctly", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "7c74b70dbd58d5c7dcb5c1de12ba5ab030ee6296", "messageHeadline": "correctly parse more mp4 subtypes, and more matroska variations", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 4}}, {"node": {"oid": "cc7500b45a3f0b56ab857684b82778aac4fd6652", "messageHeadline": "matroska", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1764842f2cbeb627d03c105e4fdd9c9220722b4a", "messageHeadline": "add wav and ogg audio mime types", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 22}}, {"node": {"oid": "26cf0d201845a39a5e4b669ca98798b89b963932", "messageHeadline": "fix small files again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "306a0ba943362373d5c0e68cac299ca249d8071b", "messageHeadline": "move mime types to separate class", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 84}}, {"node": {"oid": "34c4d616adfbddd47ee7d0740c3ae2b965df6a2a", "messageHeadline": "we can now play webm, divx, ogg and avi movies in the browser", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 73}}, {"node": {"oid": "36bfeb495de4e712edf76ee0fc7d4c44b10ec344", "messageHeadline": "Merge pull request #256 from Peergos/mime_type", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 117, "deletions": 63}}, {"node": {"oid": "25f90a78f4c791e3294156c24e66573933ba394a", "messageHeadline": "handle 1-7 byte files (don't bother with a mime type)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0a7b68b4038016254b65e3117082b0812bee0858", "messageHeadline": "handle empty files", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "2dd01b26f7fb9d8d6cd79ebce6a30415448fe51c", "messageHeadline": "Implement mime-type in FileProperties (and change the properties to c\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 116, "deletions": 63}}, {"node": {"oid": "88f36541a63ccc756e560e7639cc037d72648c7f", "messageHeadline": "fix header blocking our own service worker", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "bfc40a0e329fbede220fb6a47e339a44af42969a", "messageHeadline": "add all http headers except one that broke the service worker", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3d3ef5b94d3ba804249ae2aad8009bebd12466c8", "messageHeadline": "Revert \"Revert \"Merge pull request #253 from Peergos/http_headers\"\"", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "60e29e053e1b2687daf591dd33cbc29581aecb09", "messageHeadline": "Revert \"Merge pull request #253 from Peergos/http_headers\"", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 12}}, {"node": {"oid": "ed3bd36fe0a2ca8a16b4ae6ebd819f0dec5bf8c5", "messageHeadline": "fix imports", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "d1e8c433954495440fac1a3933bc2ae530fa2e47", "messageHeadline": "Merge pull request #252 from Peergos/immutable", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 751, "deletions": 346}}, {"node": {"oid": "a0b83da1299062a60af33a3a533b7ba79a019460", "messageHeadline": "Merge pull request #253 from Peergos/http_headers", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "edcefef8ce095532af3949c24d4aa22133ad4b19", "messageHeadline": "update http headers for more safety", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "4246398c46c57087a7227673a22e970178d540a0", "messageHeadline": "make btree.delete put in a tombstone rather than removing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "15ad6ad7b9a3d0a168b76c2091bb4f808e44d8f8", "messageHeadline": "allow 2 retries on concurrent modifications to a folder", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "2a7ae8e9c9e8b22438f6750ab759fcf22bd5a162", "messageHeadline": "Make delete do a CAS on existing value as well in merkle-btree", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 16}}, {"node": {"oid": "833bb75e4d214e260995ff257ff1537760b4f409", "messageHeadline": "Refactor. This magically makes gwtc take 50s again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 46}}, {"node": {"oid": "1f73a6e790eab2928a982104cfc086b274585f61", "messageHeadline": "typo", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c47b4a810378aeff361a28a3baf7f59033944561", "messageHeadline": "increase heap size for gwtc, which is now taking 15 minutes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "042069ffed253b97278a33138496b14c527fed4f", "messageHeadline": "Merge pull request #249 from Peergos/thumbnail_java", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 182, "deletions": 6}}, {"node": {"oid": "2d812550cf600f329a2e889051dfae6d49965add", "messageHeadline": "added test for concurrent mkdirs in the same parent dir", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 0}}, {"node": {"oid": "f7925a1fddfe913b0ae1fd5831248518dccd0349", "messageHeadline": "add assets to git", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "3d842a5c8a7699e24d07182d8798d9d7775f5449", "messageHeadline": "added test for java thumbnail and fixed signed byte compare to int", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 1}}, {"node": {"oid": "f9a59a78935d70ae659e58c01fc34e711bccf6d3", "messageHeadline": "handle case where concurrent writes to a directory add a child with t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 7}}, {"node": {"oid": "fae9100073a54b9314d1d9bd210fa493e4be09a5", "messageHeadline": "fix gwt compilation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "5fb06954406018a987dc9fd5b4d0303f09a85b37", "messageHeadline": "added test for concurrent writes to different chunks of the same file\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 1}}, {"node": {"oid": "5255e41b296f39a9bc4959cd3444ea7f46bf645c", "messageHeadline": "fix another fuse test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4aadfbb2e549b801622487b641eafd50f9b6beeb", "messageHeadline": "fix fuse test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "b292fb84fbb566dee55a22c72d3d7a71c4af3705", "messageHeadline": "fixed last multiuser test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "85022a6c7af6a01137db7eb61e68972d0f9d9bff", "messageHeadline": "Revert \"unit test\"", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 32}}, {"node": {"oid": "5157b0bd5a980455937d1cca5813a8b7a340377f", "messageHeadline": "fixed a few more illegal reuses of objects", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "5b1a13d66c36306fd295e4bd3d6c96ebe5d7c6c0", "messageHeadline": "fixed a few more illegal reuses of objects", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 20}}, {"node": {"oid": "9eee77c7dcb4310765eb99c74f452c6485e9c286", "messageHeadline": "fixed a few incorrectly reused objects", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 14}}, {"node": {"oid": "9475bdc56061aa03a40b10e735b057dceece6da4", "messageHeadline": "fixed recovery from cas failure", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "ae8d769d228b30b7ef5a83696bf635a29d888669", "messageHeadline": "stop tests hanging by releasing lock upon cas failure", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 15}}, {"node": {"oid": "3b18e8d772354d6b8d8559315baa301bd03efed9", "messageHeadline": "another CAS fix to uploading a file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 8}}, {"node": {"oid": "4bc43518898b6e012c29fd005007f36860d764bf", "messageHeadline": "another CAS fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f97a06ba5e86e1bea4b5bfeae00aa56fa6dae3ae", "messageHeadline": "fixed a bunch of CASes in chunk uploads", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 42}}, {"node": {"oid": "58f80514bd9bc66f507184135e237fdd1e7f7db5", "messageHeadline": "Merge pull request #244 from Peergos/rename", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 515, "deletions": 202}}, {"node": {"oid": "6177fec782773fcba2a57b3a5758ed1d23f3e96d", "messageHeadline": "fixed a bunch of CASes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 62, "deletions": 47}}, {"node": {"oid": "d647a3ca0a31fd525fb5ef36d0ed822058cb0a70", "messageHeadline": "correctly propagate CAS exceptions", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 17}}, {"node": {"oid": "3979a0861ba2ed072b1578b46cd804e4c37e74bf", "messageHeadline": "Changed btree to do a CAS on previous value for a given mapkey", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 118, "deletions": 91}}, {"node": {"oid": "1ea55c5c21b00b8144d1caf40b13b921d8fe878e", "messageHeadline": "unit test", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 32, "deletions": 0}}, {"node": {"oid": "986ce921c64715ee8333f010b66b4eeca88fe1fb", "messageHeadline": "Made cryptree nodes immutable, and FileTreeNodes. Now am", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 200, "deletions": 116}}, {"node": {"oid": "524949405fadc76a6baa4ffba1988114de42c3c9", "messageHeadline": "add javadoc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 3}}, {"node": {"oid": "2952194757634c0c7a5c517446de3603fcbdd0a6", "messageHeadline": "fix cbor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 11}}, {"node": {"oid": "06b80a0834965cde3d205e498477e8292a1d4ac0", "messageHeadline": "correct cbor calls", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "eeec450309f04f2a21b0e312f9be8a47bb03ebce", "messageHeadline": "Big rewrite of cryptree to make it clearer, make DirAccess and fileAc\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 283, "deletions": 147}}, {"node": {"oid": "292bd05ecb893eb34937ff4fca8645adff3ac7a3", "messageHeadline": "implement thumbnails in java", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 164, "deletions": 5}}, {"node": {"oid": "5a8f45cf848ff2021123026b71094dde88e043f3", "messageHeadline": "Merge branch 'master' into rename", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 8}}, {"node": {"oid": "3ffc7cee5cddf680b295998c72f9755ee6b29b3d", "messageHeadline": "Make copying a file re-encypt the file if the source has a different \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 93, "deletions": 33}}, {"node": {"oid": "2a140a41b122e359d7c4a1cef7e687482e5147ba", "messageHeadline": "added test for internal copying of file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 5}}, {"node": {"oid": "53e852583eaae7496c6fb7206a1d62adb5687e85", "messageHeadline": "Merge pull request #246 from Peergos/username_validiation", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 6}}, {"node": {"oid": "db2d296812041e823dfa6075ba1bd0306f1518f1", "messageHeadline": "username_validation: moved username logic out of shared package to ap\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 31, "deletions": 19}}, {"node": {"oid": "072a418efee73770d3ea441fae1dd136b56accb5", "messageHeadline": "username_validation: fix failing tests.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "fbbb1cbc9d277927be555389d57dd8799efb939d", "messageHeadline": "username_validation: Added rule-set for valid usernames as enforced b\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 40, "deletions": 3}}, {"node": {"oid": "b4d0767c8947c32af1f29e9a9934e57c82fe2816", "messageHeadline": "Add version number to cryptree nodes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 18}}, {"node": {"oid": "3a86d38bca59c00d9de573db3a9563d3389dcfbf", "messageHeadline": "Updated server-start to redirect from 80 to 443 on all network-interf\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6aeeeda0fde2a25caade56ac3d85de5f5b7fd03a", "messageHeadline": "Review feedback", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "b4306a0e4c32c8761aa24c69eb3049459cd18653", "messageHeadline": "Fixed file rename for dirty file.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 10}}, {"node": {"oid": "6779d29eb6562402651cdd650957045653b66b88", "messageHeadline": "use correct key for data", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8067fd0b3ebb795c3b05c20b3df0ef1bafb19a23", "messageHeadline": "clean metaKey during rename", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "23c3ee9897232a5b4b72407a0f32696082e2bec7", "messageHeadline": "Add extra key in files cryptree specifically for data", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 21}}, {"node": {"oid": "9e6b59f88e7acb4589a3d0a217dde1ed05e05909", "messageHeadline": "Improve rename test such that it fails - need to add a new key to", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "d777fbe66bb7c003977c84070fcd7cae2ca1057f", "messageHeadline": "Merge pull request #242 from Peergos/safe_rename", "author": {"name": "Dr Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 278, "deletions": 220}}, {"node": {"oid": "08a10a3d5a22f98e7e0d79a675e0b1bd22544a58", "messageHeadline": "Fixed LazyInputStream regression", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 9}}, {"node": {"oid": "9de91d8112182fa93c5c1f824e3bda465916b0e1", "messageHeadline": "Removed test usage of SHARED folder", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 8}}, {"node": {"oid": "5b599d2196bc6dbbdfb8b932b9c0f10fa588b10b", "messageHeadline": "Fix file sharing test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "c3748a296702fbc7dd5b058ebfa1d8dd176bf291", "messageHeadline": "Corrected and simplified shareAndUnshareFolder test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 69}}, {"node": {"oid": "4f8e523170c4a7a97c45cafc01c924fdd64ff5ca", "messageHeadline": "Clean renamed files passing correctly.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 104, "deletions": 99}}, {"node": {"oid": "b108422abdd52114dcf736843fab1aaed0eba7ed", "messageHeadline": "cleaned rename test is correctly failing now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 50}}, {"node": {"oid": "ec8eb4ca56e07fbaba1b7c7255e32bec1bbe8c8c", "messageHeadline": "Add test to ensure renaming a file cleans its basekey.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 106, "deletions": 0}}, {"node": {"oid": "a04b3100222eac289bd3ce3ef778f77a61df7743", "messageHeadline": "Merge pull request #239 from Peergos/algo_change", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 1}}, {"node": {"oid": "79dd9f0a97ce5ad059de7bb98ecc6e17bb828608", "messageHeadline": "fix change password to allow for different algorithms", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "93df5eae5aefad160aa8c426065112c9c20f702a", "messageHeadline": "add test for changing a user's key generation algorithm for login", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 0}}, {"node": {"oid": "713bbead4083634e0367eb61171fa053a797b691", "messageHeadline": "fix tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "f6aa7d7477e821c634e019360db883eec839ad6e", "messageHeadline": "Fix gwt implementation of LocalDate (so it can value MAX_VALUE)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 7}}, {"node": {"oid": "241a6e636703a5413062eac595fbc2d2e7907f61", "messageHeadline": "Merge pull request #229 from Peergos/remove_trust_root", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 44}}, {"node": {"oid": "f3ca25fe788b269a7233a03c4cd998daf12d80f6", "messageHeadline": "Fix setPointer", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "8e9917b5c91ecafd415d25132ae2ef2947e9a562", "messageHeadline": "This stores the signatures of MutablePointer writes,", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 43}}, {"node": {"oid": "16fa6f86c4ea42275b2519d148d9d1fef1bde135", "messageHeadline": "Merge pull request #234 from Peergos/pubkey_hash", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 997, "deletions": 712}}, {"node": {"oid": "4ddada70dd61c4131da6a3ce389905e60057f6d8", "messageHeadline": "Satisfy gwtc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "b0582a23170cff94c45f7b1d8bce44cd11b8c51b", "messageHeadline": "Fix tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "dc4e5966ae0e894e6cf2fe49f110ddca80450c21", "messageHeadline": "rename corenode method (getPublicKey => getPublicKeyHash)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "3bfaaefe8b9b4fe634a564aaf66a6b5d9645d58d", "messageHeadline": "Merge branch 'master' into pubkey_hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 73, "deletions": 35}}, {"node": {"oid": "0269ff0140c1288c1922ffff2db12747be1f5655", "messageHeadline": "Extract non sql specific logic from JDBCCoreNode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 269, "deletions": 218}}, {"node": {"oid": "b5dae8a95eda40aacf368839f8c4ede71ea89247", "messageHeadline": "Update min ipfs version", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "91dca8452433349183d154236b755de114877196", "messageHeadline": "update ipfs version", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d2b3e94d7a0a945c8b5b6611991faf5afc33a3ea", "messageHeadline": "Fixed the last failing test (MultiUser.reciprocateButNotAccept)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e08203843e07c7faf8bc104ed4e601511dc3d33f", "messageHeadline": "Fix IPFS tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "007729206d283b36ddde1dad488647a1ff0a6e69", "messageHeadline": "Fixed last two failing tests.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3615280285a5d7448636d5c3ce83a4199a6f042f", "messageHeadline": "Fixed error creating entry directoriesFixed wire protocol", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "a7f92151a10cad1af971ba543c7ea4782d28557a", "messageHeadline": "Fixed error creating entry directories", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "a0e9226176ba30d2c52bc6f2186044163d7bc386", "messageHeadline": "Fixed the problem in MutablePointers.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "95ac80a0c05d9b9de93fcd778a69eeed73edee39", "messageHeadline": "Fix user public key link equals", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 1}}, {"node": {"oid": "d8b5c3398d88d4c68bf081c749ea35be92605741", "messageHeadline": "MAke sure local ram tests don't try and use ipfs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "48c460ad8ff8915dcfe23061930aab83b60fc72e", "messageHeadline": "Compiling, now to fix tests.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 158, "deletions": 150}}, {"node": {"oid": "39361d2212e1c31dc5de32143240c05e86b971dc", "messageHeadline": "Almost there, just need to sort JDBCCoreNode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 701, "deletions": 517}}, {"node": {"oid": "a02273e4152777a63e6309e368f96aa09570878d", "messageHeadline": "Merge pull request #233 from Peergos/lazy_input_stream_combiner_fix", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 33}}, {"node": {"oid": "032566b301ffbf4b9049b3fc2c25594750f61373", "messageHeadline": "lazy_input_stream_combiner_fix: Updated LazyInputStreamCombiner to be\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 71, "deletions": 33}}, {"node": {"oid": "50f3e9f1d56cef29aa63102618ab146b945e906a", "messageHeadline": "Added the controller public signing key to the WriterData, in", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 18}}, {"node": {"oid": "4f84bcb8186f33391e6b4b08cfaed19fbea9afe3", "messageHeadline": "Equals wasn't working in javascript, switched to array comparison. Lo\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "b682f8d69bf61093e777bee354197ca0edce7f1f", "messageHeadline": "More fixes to keychain validation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "c4c3e504b481c5d6f974af3dc4bec01d3559bc68", "messageHeadline": "Merge pull request #231 from Peergos/username_renewal", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 127, "deletions": 25}}, {"node": {"oid": "6d565638cdf84991f894db29568848434fdf9f0e", "messageHeadline": "Update tofu keystore to allow expired username claims to be returned.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 6}}, {"node": {"oid": "554bff4c3d838beea1cfdad50beea84eb506de26", "messageHeadline": "Renew username claim on login if expiry is less than one month away.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "75ebdaf56eeb5c73c989a098966bb4481ccbad4e", "messageHeadline": "Merge pull request #230 from Peergos/lazy_input_stream_combiner_fix", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 0}}, {"node": {"oid": "dc00e42bfbe3ce7b1a980bf967369969863a5db4", "messageHeadline": "Keep track of expired username claims in tofu keystore.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 111, "deletions": 19}}, {"node": {"oid": "4371fcc62508a1628467637744da4e58d48e882d", "messageHeadline": "lazy_input_stream_combiner_fix: LazyInputStreamCombiner was not updat\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 25, "deletions": 0}}, {"node": {"oid": "f270504f8a1217f47b213a61fed3722ab56f34de", "messageHeadline": "Fix sha256 in hash verifying storage in browser", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 10}}, {"node": {"oid": "d68ef38d57c8ddfec70f29fc658cd0ed7bfd7ccc", "messageHeadline": "better error message for non matching hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "41926d1294e34a7093c52aae12e3a52abb1ab7ed", "messageHeadline": "Add hashes to error message", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fe3ceac5c3cba2b5850a26127a77af01ff5fc076", "messageHeadline": "Fixed some errors from having raw leaf nodes.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 13}}, {"node": {"oid": "b0bf469c9de973875ffe6b3f6e73d36df0744eea", "messageHeadline": "Fix compile error after double merge", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "264ca378fe485ddc9a46d63e329955e272a82d9f", "messageHeadline": "Merge pull request #226 from Peergos/raw_leaf_nodes", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 108, "deletions": 9}}, {"node": {"oid": "49bb75c5bf80c91d8514b8ac6cd356e33a8bff25", "messageHeadline": "Merge pull request #228 from Peergos/verify_hashes", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 80, "deletions": 1}}, {"node": {"oid": "5416564834752c188bc633b05fea9774f9d211b3", "messageHeadline": "Verify hashes on both gets and puts.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 80, "deletions": 1}}, {"node": {"oid": "1b150593ad8d79cef61a08ac5ab98eb47c208f90", "messageHeadline": "fix logo in readme", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d2ef77b5d00f913c73be344b90993219dfe9a4a0", "messageHeadline": "MAde it backwards compatible :-)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "6cbfdf948f7f5db45eb0085cd000249a7d1c19b0", "messageHeadline": "Make sure dht put format is propagated", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 2}}, {"node": {"oid": "e86e065f6bd9fc8671fc89c2d0d62c99fa80fdfb", "messageHeadline": "Make leaf nodes (file fragments) use raw format rather than cbor.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 88, "deletions": 7}}, {"node": {"oid": "4b833fb990e25046021a17e225c491bb64141a37", "messageHeadline": "Update ipfs version (might still not be enough - need HEAD)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d7a25f1664f9f9937a308832ab32fcce7d8794c8", "messageHeadline": "Merge pull request #224 from Peergos/pin_update", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 2}}, {"node": {"oid": "7a3fec5e4db39234ffc854a142c93152bb6f3925", "messageHeadline": "Fix pinning mutable pointers use of pin update", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 1}}, {"node": {"oid": "0ac668993ee99384df84d3f066413c96a2d9288f", "messageHeadline": "Cid fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "630fdcdd950f04ba337581fc25d8e900c678a677", "messageHeadline": "This updates ContentAddressedStorage to use the new ipfs pin update API.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 1}}, {"node": {"oid": "46d10eafac8a5da3f5d1f09c43b0c184edd242aa", "messageHeadline": "Merge pull request #222 from Peergos/fast_uploader", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 183, "deletions": 25}}, {"node": {"oid": "f3cb4fb9e097b827449babd7b836a9b1621c90be", "messageHeadline": "fix GWT", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "2457ad9f0ce68412aa4dd4ae72c579392d3b114a", "messageHeadline": "Implemented fast uploader", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 171, "deletions": 25}}, {"node": {"oid": "26ec00c1ca753d8a9b5e25aa46d15b560ca0809b", "messageHeadline": "Merge pull request #219 from Peergos/fast_downloader", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 26}}, {"node": {"oid": "59025b68dbb232d61cfd72c2414a11c2927ca3c3", "messageHeadline": "Optimised downloader to get sustained 20 MB/s download. Downloads", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 26}}, {"node": {"oid": "74210dcfd0757a670244aa242ad4e5a94c2dd7ec", "messageHeadline": "Create downloader util to optimally download entire subtrees", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 0}}, {"node": {"oid": "46723537150f1b575bd29cad69c20d1776f56507", "messageHeadline": "Hotfix to fix login when friend's entry points are present", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 14}}, {"node": {"oid": "44789252de68af2ee377b3738557f19aafa42aee", "messageHeadline": "Expose context.crypto.random to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "9361c972be0b8a130250d26ac2468264e4306869", "messageHeadline": "Removed a few more usages of TrieNode that weren't needed", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 16}}, {"node": {"oid": "f8e1d8b3ef8d8d0a7f400b3d7c314b7b7130abac", "messageHeadline": "Merge pull request #211 from Peergos/tofu_keystore", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1038, "deletions": 559}}, {"node": {"oid": "1c08093857ddf84f49e5fbf1919a03996e3425a7", "messageHeadline": "clean up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "3b3484b6f24e39738f0edc9a27b3294c607fc48c", "messageHeadline": "Fixed public links to dirs.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "baf3e21f50fc0dddcc2473ee2488ad9c48d8465c", "messageHeadline": "Removed the need to pass around the root TrieNode.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 141, "deletions": 120}}, {"node": {"oid": "f37f04c43de3421eb094553ff8f44b9a6bf1fd90", "messageHeadline": "We can't validate our own entry point before signing in/up.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "81ebdb426ac513ab975488056e43f352d008e3ff", "messageHeadline": "Validate an entry point's claimed owner when we add it (which include\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 10}}, {"node": {"oid": "64820b26a5a2f4996299a1bb9083fdfaed65c4da", "messageHeadline": "now we can only create 1 user context during sign in and only do one \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 16}}, {"node": {"oid": "c28ffdc5d4780c8bd6055406872871746ca8b07c", "messageHeadline": "make tofu corenode not require a full user context to create", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "1ba83bd4ab818d0be47c9bb822e9b62d6112432e", "messageHeadline": "Renamed js method to make accidental calls impossible", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "920432333b9a3a7546c400603b7e78801c51944d", "messageHeadline": "Fix method overloading confusing ints and longs (thanks JS)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "722e7d0b1b61f728ab8a06514f7cd99c2894327c", "messageHeadline": "Large refactor to stop passing around the UserContext.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 634, "deletions": 524}}, {"node": {"oid": "c0cd05fa6a8718837bdcc6f6be88622091c7cfde", "messageHeadline": "add helper method", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "025797acfc6fdef17c97236cb8be4188b4b22791", "messageHeadline": "Add a helper method to update a user's chain from the source core node", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 0}}, {"node": {"oid": "8fdbbea720f89ee35e02a37fd3788732eacb5323", "messageHeadline": "Deprecate remaining byte array methods", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "232cba6fb01ea071cbd860c719bce8af180e31bd", "messageHeadline": "Fix UserPublicKeyLink cbor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "bce1cd0bb62f267fb30c92064416f7f4cfe1a849", "messageHeadline": "make keystore a \"hidden\" file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 4}}, {"node": {"oid": "985dfc366534f4c0c713f64746ff3f07eed8b675", "messageHeadline": "Fix sign in", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "24f6c2a19e6f87eda69d7f6842a60042015f7c7c", "messageHeadline": "Tofu corenode is now used.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 4}}, {"node": {"oid": "f7998536b0cec316ead4d8e3ef8e05284073ba74", "messageHeadline": "Tofu CoreNode ready to use", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 124, "deletions": 0}}, {"node": {"oid": "e5c2eb9448f180ed83f02c7efe6c3f7b80734d69", "messageHeadline": "add helper methods and reverse lookup to tofu keystore", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 4}}, {"node": {"oid": "96b7ec7311598c0a6ad313ebc9893075a16ca8a1", "messageHeadline": "Initial tofu keystore implementation (not used yet)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 113, "deletions": 2}}, {"node": {"oid": "8eefbea24c9d884bedd708dbd74340966310a16a", "messageHeadline": "server side check for sending follow request to oneself", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "0305a708de9319915cd50759bea918b23573f684", "messageHeadline": "Fix etag header to have double quotes as in RFC", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "062258c224440bef2092d56855ee1a0dd2297c0b", "messageHeadline": "move two mutable pointer classes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 12}}, {"node": {"oid": "9a2d86f3650fb615f6b8fcae22553dd3cf080e6d", "messageHeadline": "Merge pull request #208 from Peergos/mutable_pointers", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 407, "deletions": 416}}, {"node": {"oid": "35cd547fe4e6e965d6c9fb9ec06c4fe89bcf59a7", "messageHeadline": "return error messages in http", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "588511dacba25fb761504ed98a4526602b2d4fb6", "messageHeadline": "another error", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "afbe210c972261360a8d91ef6bcefa0756ce90b9", "messageHeadline": "correct error condition", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "2c6579b041ff6fa8377b91c0dd9a6b48f836d916", "messageHeadline": "Merge pull request #207 from Peergos/fragmenter_align", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 7}}, {"node": {"oid": "5943b2c05c04a4bf4c8c26280d109fecd0bd352b", "messageHeadline": "fragmenter_align: don't add page of padding if input length is alread\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "0017220853bd67db2a8bbffcd4b32475499eda0a", "messageHeadline": "Separated out MutablePointers interface from Corenode interface.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 399, "deletions": 416}}, {"node": {"oid": "b29e5cba69be4a33ad1f99ec08fa95217662dc87", "messageHeadline": "Align the length of a split file to 256 bytes.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "58d20591786bbfc81b1f3c2745c5c025809d3c08", "messageHeadline": "Log which pin is taking so long to repro locally", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "323aff21b87b4bea384142324f4fe4e7f2a8c7f0", "messageHeadline": "Add timing logging to critical calls", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 5}}, {"node": {"oid": "c84bf4daf38116141e24293dc1699ce2e78634b4", "messageHeadline": "Add index to IPNS table", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "8ec172794ede78ecf35f3eba6e109ca779303356", "messageHeadline": "Added Multipart profiling class. Seems like multipart is perfectly fast.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 85, "deletions": 0}}, {"node": {"oid": "a407d4dd60f0ea3ca5295068165fb12895515253", "messageHeadline": "Added different mkdir profiling configurations which suggest that", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 8}}, {"node": {"oid": "81343fc8c7e7058d26b181d3822ac50a3c59ef07", "messageHeadline": "Directories with > 500 children work now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "d75e575a28ddbe98dc34cceffc6a4a0bdd09f0d4", "messageHeadline": "Revert \"Align the length of a split file to 256 bytes.\"", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 7}}, {"node": {"oid": "0875bbdf873c8f1fd57983e4c11145a639c7083e", "messageHeadline": "Align the length of a split file to 256 bytes.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "df6657807b3b7010a13b82989ba78d4ad6d04a11", "messageHeadline": "Added class for profiling btree + pinning speed with IPFS.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 103, "deletions": 13}}, {"node": {"oid": "7b8f3db07e5a568ee8e8d3ea2994461e19a874bd", "messageHeadline": "Another huge speedup. Now the DHT cache has a pending requests lookup.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "e195991f8fdb1b70a4745e49d1f3c85debbaf964", "messageHeadline": "Enable HSTS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 5}}, {"node": {"oid": "f941c764f028f2905aafe0d255ed7e8982983fe1", "messageHeadline": "Disable stronger TLS ciphers that don't provide forward secrecy", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "9e1d9ebe614fd0555f9e939b0bdfba56349030db", "messageHeadline": "Disable more TLS algorithms that don't provide forward secrecy", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 11}}, {"node": {"oid": "497c49808c1d6df0e98fbf2f2e159ac7d357e855", "messageHeadline": "Merge pull request #205 from Peergos/context_cut_copy_paste", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "18b4c50363bbed6dd410cd675c25c8038407f405", "messageHeadline": "make equals method visible to js", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "716f5c66c7ccc6b42ca1a8cb0a7ffa907fa73322", "messageHeadline": "Deleted legacy web ui implementation.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 47839}}, {"node": {"oid": "ba33320b24cd81946571a4d4b9ce3b29d176f9a2", "messageHeadline": "Simplify caching corenode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 7}}, {"node": {"oid": "41d8447b1ec039d0bc6205c353838b582c865b56", "messageHeadline": "Re-enable caching core node, which seems to not cause any issues now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "3b6338280edec8e9de02b4ffd5a5c9edf1fe59df", "messageHeadline": "update ipfs version", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "747f6c0e21b20575536bad0cf86b6248f3314e44", "messageHeadline": "Fixed super subtle bug with GWT CompletableFuture implementation.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 9}}, {"node": {"oid": "06bba5eb22e4979db40ed3bbcb0b3f709140baaa", "messageHeadline": "update clean to  include war", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "aad2f0e22fa240303c4b3f330c8e137e655de180", "messageHeadline": "switch from http 302 to 301", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "731e524c1dda0e798fc2079c51ea0b182a7c83db", "messageHeadline": "delete pointless test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 46}}, {"node": {"oid": "7b594ece477a3e876b55e3a78151cc7ff7d2b204", "messageHeadline": "Merge pull request #197 from Peergos/clean_up_util", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 141, "deletions": 2}}, {"node": {"oid": "56fafb0e08b1eef38c68629d5dd56d195040c56f", "messageHeadline": "cleanup root", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 149}}, {"node": {"oid": "2f1e4b5b3cc731297f468c0b9bd7c4f488afa153", "messageHeadline": "smaller jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 4}}, {"node": {"oid": "81a0dcbe0705ee38fef933baa4fa1a9b4adcc643", "messageHeadline": "Merge branch 'fatjar'", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "428a15ed6361dfcf43490b52a1fa0a29847fc78f", "messageHeadline": "Move build only jars to separate dir", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "19682c476947718675c5baf2e8e4d88d9a77ced4", "messageHeadline": "Merge pull request #199 from Peergos/fatjar", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 127, "deletions": 120}}, {"node": {"oid": "ff1bdc1475607ca36d6d3f2712845b76c101874c", "messageHeadline": "cleanup", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "634fdfceb596713c490ab5fdd0de6f6e914474fb", "messageHeadline": "Fix static handlers, return 404s on failure, use gzip", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 22}}, {"node": {"oid": "391befb22db71a15ebf02ff156c7a9f0578578c8", "messageHeadline": "Added support for  serving static web-files from  jar or filesystem", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 131, "deletions": 115}}, {"node": {"oid": "1cc8cf44c80c06156cf99d844ab2dd07e28a0a3c", "messageHeadline": "Revert to single threaded test running.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "59d7d6cf99138da06b77d0b2cb52ab156522d1b4", "messageHeadline": "Move IPFS and RAM tests to different classes to allow garbage collect\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 16}}, {"node": {"oid": "014591b35f8407b74d83cdc351272b159bac5169", "messageHeadline": "Fix regression in path mapping", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "10bd5d11bb2d61cf4c640e16d976f927b672285c", "messageHeadline": "Improved randomness for test port selection", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "8764f6e350e60d9c5b50d5d5d0b48459b10b2896", "messageHeadline": "increase ram for tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "38deae39a871d95abbc96983cd02e2748cc4cfe4", "messageHeadline": "disable long running, exhaustive tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "d44070c250aa5fdbd85fecb5a7fba79d4c32d15d", "messageHeadline": "Fix NASTY bug in merkle-btree which causes random loss of data during\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1ccabc7cf6d7e4468824e12f0dc3946274ac3de5", "messageHeadline": "enable tests using IPFS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "d1d26b9bb9b0f224a0c5237e1b6ebd99ff3af141", "messageHeadline": "disable tor test which needs unlimited key strength", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e87ebc10ec52ba7bf6623ecc94e40f58519b7151", "messageHeadline": "Fix to legacy support in Cid", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a14ac9b1a735e545144cc211ca77704126676fff", "messageHeadline": "parallel ant test works after installing ant-optional.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "06c881951a17bbbc4d2016b72d22b1fe7e6e877d", "messageHeadline": "attempt at getting parallel tests working (doesn't work)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 60}}, {"node": {"oid": "4cc4a8317214f2ccd22a259dfb14586e605d547b", "messageHeadline": "Fix sharing a folder", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f0d6d7d970e2ab397a6cbaf95b7ebab0416b0f5e", "messageHeadline": "Added test for removing a follower", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 0}}, {"node": {"oid": "497983dc5f1221a184aefe81b079b701bd328c14", "messageHeadline": "Fix unfollow (it's been broken for ages) and add test for it", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 2}}, {"node": {"oid": "b69da1755754d0bb1226791566de6eac4e302dfa", "messageHeadline": "Add example to clean a broken directory", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "e7bf71b70de1888ce577a79cdb02f247370ec2fb", "messageHeadline": "Fix gwtc", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "b8bd8705e44ffd95b34136fc95e4cf385f119a95", "messageHeadline": "Added a test class to use to log into a remote peergos server.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 137, "deletions": 2}}, {"node": {"oid": "95782dd974fe2d930b7450f7e4f0f6a6505fa940", "messageHeadline": "Update README.md", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "282d73deddb4e045bed1b91025547247d76a7bb8", "messageHeadline": "Merge pull request #191 from Peergos/space_usage", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 178, "deletions": 49}}, {"node": {"oid": "8b3eead61c480eaad55570d7f4eb48bb23f61fcd", "messageHeadline": "better return type", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "f05aeb6940ce51d5a9702aa1b8734835815dfdb1", "messageHeadline": "Fix for bug in gwt compiler's handling of generic type inference.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "43222dd1f1e3f6c55c281abd14b276634be12a4a", "messageHeadline": "Add method for JS to get the size (split the long in two)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "a17c79d14de30427644bbd811d212970060901fb", "messageHeadline": "Add UserContext method for getting total owned size used. Include thi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 4}}, {"node": {"oid": "a8e6a20349fd7fc4e2023165a390bb89c439257f", "messageHeadline": "Add http handlers for new dht calls", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 0}}, {"node": {"oid": "5d984a15f5dc27d32cbb4e2aceb1dd4678c5346b", "messageHeadline": "Fix gwtc by moving CachingStorage", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "0c22b28a7c188232ffe8911b1f97dee9dc2806ff", "messageHeadline": "Remove deprecated fuse option", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "310e7e0c895898c8ffb7a88144fdf7f7f609d6ec", "messageHeadline": "Added two method to ContentAddressedStorage to allow determination of\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 116, "deletions": 43}}, {"node": {"oid": "f86af8a8eebae5737a1ee887e0c81f9b13a019b0", "messageHeadline": "Updated readme.", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 15}}, {"node": {"oid": "baaf01275a14a5d8161c6fcc1dbb2bad8a3a24e9", "messageHeadline": "Added CorenodeTests which test latency of updating an IPNS mapping", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 123, "deletions": 3}}, {"node": {"oid": "4ec35c85d8b182fb8f8a6f069f73ca5496114917", "messageHeadline": "Fix test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "db18a390e78a25eff8e5d2e9af83cc130ab0205e", "messageHeadline": "Improve incorrect password message", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "77e0768ebb67cdfb0c8678873e418b51deb589f1", "messageHeadline": "login fix", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 28, "deletions": 7}}, {"node": {"oid": "2790e3b22487719656d4895c3abdcd9b7d15e706", "messageHeadline": "Merge pull request #186 from Peergos/async_reader_cleanup", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 81, "deletions": 69}}, {"node": {"oid": "b808ea4edb29bf5417057fdde21ae87788abd46a", "messageHeadline": "Merge pull request #185 from Peergos/up_down_load_progress", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 15}}, {"node": {"oid": "46d7dbf65eb52b8b8bbe904e64fe50a979fbd4c3", "messageHeadline": "Add a util method so JS can get the annotations GWT does to a byte[] \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "a239a000d05be993507cada82c3f94ed66e8a7fc", "messageHeadline": "Fix null.m_major issue when dht.get returns nothing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "952500623bc89fad1877612821bfd5eafea061f4", "messageHeadline": "Fix Fuse reads", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "eefa66976c4a139254abbbf90ffcb6831280a71b", "messageHeadline": "compile", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ed14f5bd48687e3356a6c5742ee6db4159701835", "messageHeadline": "Make LazyInputStreamCombiner closer to immutable. This will enable co\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 71, "deletions": 65}}, {"node": {"oid": "3c44944b7c5ade759131d16e3c2d28abdbf14f80", "messageHeadline": "Upload progress fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "83527c5c498a36bc4d6e72c3b8d6373e4ff5697a", "messageHeadline": "Upload/download progress is accurate now by adding a 'replication' fa\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 12}}, {"node": {"oid": "cee7012024de1453d755a758b88d21452fd903a0", "messageHeadline": "Merge pull request #182 from Peergos/changepwd", "author": {"name": "kevodwyer", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "0d9f1321226c77841cb19450e9681226f86993f7", "messageHeadline": "remove logging", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "92c3c5273c53d14dea90a38fc614e26e1262b2fc", "messageHeadline": "Fixed non erasure code uploads. Works in UI, though now the progress \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 20}}, {"node": {"oid": "ba049bd2fe15c41bbaefbca613bc27269a0c872e", "messageHeadline": "handle empty query string", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "528e436547f92e662a3616c114243df616328036", "messageHeadline": "disable bulk upload because of a bug in IPFS/ our multipart sender", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "8625fa7987376745f01b240fb103a60703e8fdfb", "messageHeadline": "Works again with IPFS now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 4}}, {"node": {"oid": "b36f13dd43f759427fba1568e05c2a595c26c132", "messageHeadline": "pass algo into change password", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "056df58d29067886d0b3f29f79d27ce0b0870c6c", "messageHeadline": "Merge pull request #155 from Peergos/simpler_http", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1630, "deletions": 1065}}, {"node": {"oid": "6009b7e72587143369fcbba9f88a48d09facee42", "messageHeadline": "BOOYAH! Fixed the btree woes.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "6f7a5fd5cb6618b91766e8bba316af09c75e8364", "messageHeadline": "Fixed one multi user test, but I still don't understand why it works...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 10}}, {"node": {"oid": "1b3663c93e37b30266367f4f036b47a5bf73515a", "messageHeadline": "Fixed remaining two user tests, but I don't understand why it works...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "7e20b9aca86b3c685db71ffc30a6a4d92ef17c56", "messageHeadline": "Fix public link tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "56d3d7765036308bd9c55bebe151663f2225c237", "messageHeadline": "Incorporate feedback", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 103, "deletions": 32}}, {"node": {"oid": "f15c5b85c7db7aa5998707b988e55cd80987c4d1", "messageHeadline": "extract constant", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "c3dcb2554d4fcca59200cc5b6cb75547fa903e3f", "messageHeadline": "Remove a repeated upload of the parent dir when uploading a file.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 18}}, {"node": {"oid": "e78ddce5c31554e27bc5b6def98bc92c22d0f51c", "messageHeadline": "Add synchronization to RamStorage, and remove a potential race in Use\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 14}}, {"node": {"oid": "bbfbf61727156d8e9d6ffb6258b206da818e2883", "messageHeadline": "Added a CipherText class which makes keeping track of the nonce easier.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 24}}, {"node": {"oid": "10ea1cc28b887d93ba5b10d730a12fced1c22d6f", "messageHeadline": "Booyah!! Fixed it. The edge case was where the last byte of the file \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 3}}, {"node": {"oid": "e647d70fe791c6ec1ec9c01de7ae969724371def", "messageHeadline": "Got a self contained test for Multipart which fails now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 98, "deletions": 0}}, {"node": {"oid": "cbcebe064d16087a43935310306d50773a168115", "messageHeadline": "Disabled bulk upload which seems to be the problem. Somehow the hashe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "10087ee547bcdd2411b04a340ea6d63c3b07fbad", "messageHeadline": "Fix part of a multiuser test that wasn't waiting for a future to comp\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6c6f798e64cc026145565e7b6c900a70f64d659e", "messageHeadline": "Removed last two non determinist Randoms", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "9b77ea04652b67b07233b641830c04140177c2ac", "messageHeadline": "Ensure tests are isolated and more deterministic.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 19}}, {"node": {"oid": "784f27d0b9226ee359b7cfca1700d0873db2305d", "messageHeadline": "Improved serialization, most things seem to be working now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 16}}, {"node": {"oid": "285e765ed8b6f0256d57fde649ee00fcfc01e058", "messageHeadline": "Fixed hard coded deserialization (removed it)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 13}}, {"node": {"oid": "210bbfd6a6571ec6603afedbce19cc3b8ac7b4a5", "messageHeadline": "More cbor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 23}}, {"node": {"oid": "3cc5de86533394f4be3a8353d3f599bfe1ef4651", "messageHeadline": "Moved most the remaining serialization to cbor. This makes it much si\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 265, "deletions": 339}}, {"node": {"oid": "8b99ce867efefd5270196f4b204f620816f95b90", "messageHeadline": "Merge branch 'concurrent_writes' into simpler_http", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 234, "deletions": 95}}, {"node": {"oid": "4c7600af59199663faa5dba7cfed85ec9fc0a9ef", "messageHeadline": "Implement bulk upload of fragments in a chunk.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 4}}, {"node": {"oid": "cca2272f9aa2cae4e5c365061d2374b1115662f9", "messageHeadline": "Looks like upload is working after all.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "b26fb9d84cd164b587c6c60da291f710390fd8bd", "messageHeadline": "Updated IPFS (involved moving a bunch of packages, and adding multi-b\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 565, "deletions": 154}}, {"node": {"oid": "2079b95d0508d9cf640aee0bfef84c9b36c92021", "messageHeadline": "Merge branch 'master' into simpler_http", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 741, "deletions": 97067}}, {"node": {"oid": "e6bfc3cb21771edf58813dd6890e8067eaeecdea", "messageHeadline": "Merge branch 'master' into concurrent_writes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 79, "deletions": 65}}, {"node": {"oid": "888c125c971f0a886565f67c96e0593d060d06fa", "messageHeadline": "move test into server package for gwt", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 79, "deletions": 65}}, {"node": {"oid": "6fca5d8b84e926a96472839b33dcfd1edc8f163a", "messageHeadline": "Merge branch 'master' into concurrent_writes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 16}}, {"node": {"oid": "1584a1ed5e199a907c7eda6f61ba9447d887b6bd", "messageHeadline": "Merge pull request #161 from Peergos/remove_erasure_coding", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 16}}, {"node": {"oid": "3848a30aa4004de5bd5740fcd2ae540d72ad7185", "messageHeadline": "UPload to  optionallly do erasure coding.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "5e86fb6c0d2bd39df03efc3cb54d6675dd0c9f01", "messageHeadline": "Fixed bug in removeFromStaticData that wasn't completing transaction \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 10}}, {"node": {"oid": "5c2d78150457432f1045f8c2cc52825891c244d3", "messageHeadline": "Use same asynchronous lock pattern in UserContext's UserData. This fi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 25}}, {"node": {"oid": "c427037ece47fa90d62ddf983a3ebe36d07fe2db", "messageHeadline": "First attempt at concurrent writes to same writer key. Java test pass\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 204, "deletions": 82}}, {"node": {"oid": "d999983d3e5acc6728be3ee243e83945b70cb5b8", "messageHeadline": "build status image fix", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ee442654cdaec1fa9481f1779659cd465858ae6b", "messageHeadline": "Merge pull request #162 from Peergos/remove_doppio", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 126, "deletions": 96946}}, {"node": {"oid": "98c3a65fc82ac98a863c7d6e9edc13503a67bfc2", "messageHeadline": "Add TeamCity build badge", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "c5ef19cb3ea639162a0f51e697258938dc9d27a9", "messageHeadline": "Update data.service.sh", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "a0df2bd3d5917bfb6a820148aa97d93beb637c10", "messageHeadline": "fix restart ipfs ant target", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 38}}, {"node": {"oid": "5c1b86f6afa56fc89da3bcebd737ca16605b7788", "messageHeadline": "fully functional ipfs script with install, start, stop, and uninstall", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 118, "deletions": 3}}, {"node": {"oid": "cf2e959849891333d01d388a38c66c9c4cc54880", "messageHeadline": "Add run ipfs ant target (does nothing right now)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "9f25a19e46f7282040f518885c6d386ea7ad1214", "messageHeadline": "Add target to install a local test ipfs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 10}}, {"node": {"oid": "1bb09bd6d66d4ca41a059f15a119c4d8eb780763", "messageHeadline": "Remove doppio and javapoly files", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 96936}}, {"node": {"oid": "af06465520573a071467412fd6152766b977dc08", "messageHeadline": "Merge pull request #160 from Peergos/cbor_merkle_link", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 14, "deletions": 33}}, {"node": {"oid": "4609924ca73fffc3b2fabbfd3409868307beb028", "messageHeadline": "Fixed  SplitFragmenter::recombine logic removing incorrect invariant.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 5}}, {"node": {"oid": "c010593f13cb718d360b64c354f64caf4e744809", "messageHeadline": "Catch edge  case with for  Fragmenter::combine  when input is  empty.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "def6a45f0c3f59c31ebecb8191365783583f0e54", "messageHeadline": "fixed merkel node cbor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "cd6cd08ffef90ce32dada4a0970ea47230a4731c", "messageHeadline": "Updated all chunker  instances to the non-erasure  coding version.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 17, "deletions": 15}}, {"node": {"oid": "adbbcc1b4b88c543eca3b27723eaf5a7e45a9f49", "messageHeadline": "fixed", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "b7fdcb225064bad0701ae9029059d99a80a8c80e", "messageHeadline": "fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "66d9d33923c9c268b1f5173907bb59ae8c7e6e7a", "messageHeadline": "Change merkle links to use a multihash (will become cid)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 20}}, {"node": {"oid": "eefe0774f73ca2d02a1a3398b21eb2520e99aab1", "messageHeadline": "Merge pull request #159 from Peergos/optimise_cbor", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 10}}, {"node": {"oid": "9dbe601c9308dbbcf545d5b38c1ca1293c545787", "messageHeadline": "Optimise SymmetricKey cbor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 10}}, {"node": {"oid": "927259df3b8c278d49fe71e0ed1cd49db8ae2bdf", "messageHeadline": "Merge pull request #158 from Peergos/js_exception", "author": {"name": "Ian Preston", "email": "ianopolous@protonmail.com", "user": {"login": "ianopolous"}}, "additions": 497, "deletions": 3}}, {"node": {"oid": "750435cfdd7c13ed932538bc65a7aebdd0f032e7", "messageHeadline": "Added GWT emulation of Throwable et al. to expose the getMessage meth\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 497, "deletions": 3}}, {"node": {"oid": "396b9f4b1173df935314c9eb216fa29ec6d9459a", "messageHeadline": "Merge branch 'master' into simpler_http", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 987, "deletions": 1080}}, {"node": {"oid": "8011fbb3c35b732882e98ea44629dda76010ad90", "messageHeadline": "Merge pull request #156 from Peergos/split_userpublickey", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 1006, "deletions": 1094}}, {"node": {"oid": "edb1179e40ce30b172e30ee303fe511bf73d5f99", "messageHeadline": "Reduced wastage in crypto serialization", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 38}}, {"node": {"oid": "3ad5ed7479c2d1e8a6ed700cda538d9123d7d932", "messageHeadline": "Bugfix.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c8e0361ef58bab2a4f377a6bbd5be59d6d3f2672", "messageHeadline": "UserPublicKey is no more. Huge refactor to move most remaining things\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 748, "deletions": 879}}, {"node": {"oid": "bc8f70879990b7951f70738b30452f8c850234ac", "messageHeadline": "Rename User to SigningKeyPair", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 94, "deletions": 103}}, {"node": {"oid": "d7d5feb856759720c1a65e753c18d26a54e80e09", "messageHeadline": "All fixed. (data structure in static data was in sufficient after rem\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 16}}, {"node": {"oid": "2b3c8e68a9ebddd7a3e63e8be220a2bea166a301", "messageHeadline": "Serialization fixes. Still 3 tests failing.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "95b8b33d2a6e3a0632c9e06da9f250889ca42d5b", "messageHeadline": "Removed boxing key from UserPublicKey and User, and put a public boxi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 213, "deletions": 166}}, {"node": {"oid": "e137d73a5ae356a6cdab2f0cb64b8bb4744b0b83", "messageHeadline": "Updated  gwt emulation  of  CompletableFuture to expose exceptionally\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "a99cf8156df7faf95d144cd3bdd28f666e20e768", "messageHeadline": "update ipfs init", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "5c55227f137a567569adf4002dc91dfab402b878", "messageHeadline": "Now just down to two dht methods, put and get.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 212, "deletions": 271}}, {"node": {"oid": "25b38f53bf0b11816727b4298cd14f47557b4989", "messageHeadline": "Multipart bugfix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d129a23a34dd558962e54c4d3314c32fc2ad5b9d", "messageHeadline": "critical performance improvement to multipart receiver (buffering)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "ad3828336752c7f197a1bd0524afe55db720f6d5", "messageHeadline": "increase tests' heap size", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "6ac08f052e1bb471dfe6ba09362390b214d441bf", "messageHeadline": "First stab at http api simplification. Still need to switch to CID an\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 172}}, {"node": {"oid": "1eb83e316f63e825c71b5a61fa609bcf0f4e6a5b", "messageHeadline": "Merge pull request #153 from Peergos/future_proof", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 637, "deletions": 552}}, {"node": {"oid": "8ac98e4ed9c0ef5631eb62c985d71ca66f2cad75", "messageHeadline": "spaces", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 25}}, {"node": {"oid": "6646317d41a49c64a7bc5b7705721d650fab4907", "messageHeadline": "Merge pull request #154 from Peergos/intuitive_followers", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 48, "deletions": 19}}, {"node": {"oid": "d924c5045f26829ada32edd6adbc50fa3dd0019c", "messageHeadline": "rename for clarity", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "6dbed3c71a7299354bb1fcdc20ab5db8cc6dfae0", "messageHeadline": "Made followers behave more intuitively. Someone doesn't show up as a \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 17}}, {"node": {"oid": "41a4d78b70381280183af88a68b322de2ba10fca", "messageHeadline": "Enabled a dht ram cache to get around stupid Chrome cache behaviour, \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 15}}, {"node": {"oid": "475b52417bb42567a5f0ea9840e3db1019e6774e", "messageHeadline": "Fix owned keys serialization (Make sure no private keys are stored)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "46505e684b02cbd3d2013b6f11e8b18b666cc2e9", "messageHeadline": "Add owned keys to the user's root key. This will finally allow us to \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "21d6b3c1dd4abf963bcd0f61d7c1dcf282e41b1d", "messageHeadline": "Fix password change fail test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "0e8889676986718f112a128e7620d7f5e6d8dcb9", "messageHeadline": "During sign in, retrieve the writer data to determine the key gen alg\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 18}}, {"node": {"oid": "3f0ab5b6eefb90396883609a23d0822c389191e9", "messageHeadline": "Fixed caching corenode again. Moved to Stirng keys to avoid what appe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "8423343b4cb56086ee7e17c2d060c1f455141e6d", "messageHeadline": "Implemented parameterised Scrypt parameters for login (allowing for g\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 172, "deletions": 53}}, {"node": {"oid": "a9e8d0baba6beb9fcb4f98cb1dfd8fd9ae09807c", "messageHeadline": "Re-enabled the caching core node. The problem was the distinction bet\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 10}}, {"node": {"oid": "fb1ef3f3d409c4d8694d4d5d531c8889d6bff8d6", "messageHeadline": "Surprise surprise, the bug was because of the caching core node.. (di\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 15}}, {"node": {"oid": "76e109447113380cd9dc24b7e1b875a18527e4fe", "messageHeadline": "Convert writing keys to use WriterData also.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 325}}, {"node": {"oid": "3a6c98f0cbabc690271a04f2c3340e7b859e9d30", "messageHeadline": "Future proofing framework appears to be working!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 246, "deletions": 107}}, {"node": {"oid": "8d359227e55c6b76443fcc935e6ce4c3ca2d652c", "messageHeadline": "Change merkle links to be encoded using cbor tags, as I now believe I\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 21}}, {"node": {"oid": "41d5ffe58a865837c4d0a03088836620d46af0ed", "messageHeadline": "Merge pull request #152 from Peergos/general_cbor", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 539, "deletions": 31}}, {"node": {"oid": "d4179b24312a0483b28b9c23953287d07f045f57", "messageHeadline": "Gotcha! Fixed subtle bug with path mappings. Need to terminate the pa\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fd9da75cdc8184236cc398f9f3f45e052247d4fb", "messageHeadline": "make merkle node use cbor merkle links", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 16}}, {"node": {"oid": "8d714861cc5ba2b4f28e507856783d60fdea8e56", "messageHeadline": "Add special merkle link cbor object", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 1}}, {"node": {"oid": "a0dac7ce521a9163f2cb39f895d082c504cfba99", "messageHeadline": "Fix null and boolean deserialization", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 2}}, {"node": {"oid": "b821965d84d772983721ba26634f4afc68b678ed", "messageHeadline": "Added cbor lists", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 0}}, {"node": {"oid": "ff56bfc0d3f3ee937cba3e6b236a18d3dffe2287", "messageHeadline": "Add Cborable interface which objects will implement.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 28}}, {"node": {"oid": "55b456e585588a3d3b7eb97dda97d81088e1eadc", "messageHeadline": "Implement a general CBOR encoding to generalise object <=> cbor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 313, "deletions": 0}}, {"node": {"oid": "00fb48b75a76f8dd041797d85d2113d59218ccd1", "messageHeadline": "Merge pull request #151 from Peergos/dht_cas_merge", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 2917, "deletions": 527}}, {"node": {"oid": "c5ac678c5d9562bcc5dc3e01a53dbddd043f3223", "messageHeadline": "Hopefully fix random test failures due to concurrency", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "0220196d46fea9aea587d4cee88e1abc7b46a9f7", "messageHeadline": "rename _new to emptyObject", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 10}}, {"node": {"oid": "67b4eaca63d6fbcf1f538593b88443c560f42932", "messageHeadline": "Optional logging in btree to help debugging", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 4}}, {"node": {"oid": "4799749020c0b818775fb88cfee71eafe9095667", "messageHeadline": "send 500s on server error, and url encode public key strings", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 5}}, {"node": {"oid": "c9aeba4f9d12ac5a2ad79cb6fb0bf558b847bedd", "messageHeadline": "Merge branch 'master' into dht_cas_merge", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 168, "deletions": 93}}, {"node": {"oid": "7849685de2983b2d36bc6f4469869ab1cef50acd", "messageHeadline": "limit max line size read", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 8}}, {"node": {"oid": "c60a05a701256a59ad3b048e82065057212f29b2", "messageHeadline": "added test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 1}}, {"node": {"oid": "a54de9359cb7a5205fb8ee5815a3da5934ae5e08", "messageHeadline": "Now that the btree is client side there is lots of cool optimisation \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 94, "deletions": 1}}, {"node": {"oid": "7343e4309fb208bd39b8847b21aa7fdc8bd6456e", "messageHeadline": "Client side merkle btree working!!! BOOYAH!!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 12}}, {"node": {"oid": "cd850c26d7c6eae8a0791f3a657c50d7d40ae59d", "messageHeadline": "Merge pull request #150 from Peergos/jscrypto", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 146, "deletions": 88}}, {"node": {"oid": "46a8545c8b814bd341e9b3e40cea3a9c6555f150", "messageHeadline": "Fixed Multipart receiver", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 9}}, {"node": {"oid": "a7cf590b05d83c812b51f30f866f4120f820b1f0", "messageHeadline": "JsNaCl methods", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 19, "deletions": 16}}, {"node": {"oid": "8591c8a51498f261a161b20c496df87e4feb49cc", "messageHeadline": "Merge branch 'master' of https://github.com/Peergos/Peergos into jscr\u2026", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 104, "deletions": 92}}, {"node": {"oid": "6ff04c87ce5828805c805350c253b7fd38fc88be", "messageHeadline": "Add post multipart to JS Poster", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "ac0129863f636775784e2047147175fc717c1b62", "messageHeadline": "Change CBOR format to match what I think IPFS's is", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "8d0448129df0e35017fa67429419ee4cfbe2b351", "messageHeadline": "Fixed merkle node data structure to allow identical link targets (sam\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 21}}, {"node": {"oid": "53688ee7696eaa45120ebf6a401187b0040a0b3e", "messageHeadline": "Disabled writing Double and Float in CBOR to get gwtc compiling.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 340, "deletions": 21}}, {"node": {"oid": "84f1778ac2ad086ea2952614db73bc78d45bb58d", "messageHeadline": "More tests should pass now. Implemented a CBOR serialization for Merk\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1324, "deletions": 47}}, {"node": {"oid": "0a2cf5932c6b87dd01c86564b5a5b9db25e848f4", "messageHeadline": "Serialization fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "3722ed6f0676ebcee2f08cad8102e1b81023016c", "messageHeadline": "Fix pinning in RamStorage, but still no cigar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "780be34d902aab1a5132949ec0d9c2cfebded65c", "messageHeadline": "Fixed server side DHT handler urls and Multipart url. Still much fail\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "919b4ff515f969d62439c6ea78be153ef3d21c51", "messageHeadline": "Implemented DHT http api (matching IPFS)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 300, "deletions": 141}}, {"node": {"oid": "f1baf9c57a1a3bbdafd9cffbebec0f9d9f62dc63", "messageHeadline": "most of http content addressed storage implemented", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 208, "deletions": 75}}, {"node": {"oid": "7e8db5039bba966b9870e8f4205d0849686e6c80", "messageHeadline": "tests mostly passing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 8}}, {"node": {"oid": "50dbd6f7eafed569aeee844a213a9b30b2378ae6", "messageHeadline": "WIP", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 722, "deletions": 419}}, {"node": {"oid": "d47947a7388ad6e8371abde9c270d9a22f1cc1ae", "messageHeadline": "Merge branch 'master' of https://github.com/Peergos/Peergos", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 82, "deletions": 87}}, {"node": {"oid": "918e5ff75a616af311df3d166adcbb0601164461", "messageHeadline": "gwt sso linker", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 22, "deletions": 5}}, {"node": {"oid": "c4ad551db5c6e8c7b6854de0496593b8b58c2933", "messageHeadline": "wip", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 143, "deletions": 88}}, {"node": {"oid": "5080497ee7d264efcf3835a3e2354a8fe008f010", "messageHeadline": "Increase thread count in core node server, and user service", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "2e103d94b375359c7e22c1dafcc3deac44ff8dd0", "messageHeadline": "Simplify ContentAddressed storage by removing redundant remove method\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 55}}, {"node": {"oid": "e9cb735aad23fe2ffca03cfafa9431ccd1b00990", "messageHeadline": "Add UserGenerationAlgorithm to WriterData (not used anywhere yet)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 11}}, {"node": {"oid": "472751e11c3c4d33d9bd2f8f74a4491b1ff454fb", "messageHeadline": "Now we see new files shared with us in real time. If A has  a friend \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 16}}, {"node": {"oid": "f459db92f66591d067d5c078d8443f133f0e2ce0", "messageHeadline": "Fix bug in getting list of usernames, which fixes the ui's suggestion\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "346964c6156ca84cab0fe3eb211ae9c06261c654", "messageHeadline": "fix random errors with modification time (don't need to resort to dou\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "b1681911d5bd15b33c2e1b71e6fbbd13bbc288f6", "messageHeadline": "Fixes to GetLinkPath + associated test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "282e8e5fc4e56f77e0f8f2b0eb097782075c5a9f", "messageHeadline": "Add test for a public link to a folder", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 0}}, {"node": {"oid": "c76472068bf12f2d605cfd2eef58761f9b6f4276", "messageHeadline": "Pass correct size to download progress monitor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0b001e5cff74c0413b9b4ccccd3cfb637c77cbdc", "messageHeadline": "Fixed propagation of upload progress monitor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "93b2b0f8ae332afd2796fb5616793edf54f5e57d", "messageHeadline": "Remove possibility for user to overwrite their space by accidentally \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 7}}, {"node": {"oid": "593884460777217e34e3d2a276052efbdc257b69", "messageHeadline": "change signature of change password method exposed to JS to require t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 19}}, {"node": {"oid": "5f66aeb6c7a74d17452f0ba0b42c8d7baa498062", "messageHeadline": "working thumbnails", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 44, "deletions": 23}}, {"node": {"oid": "2e7dff8e11478fbcac1490d785a66405e10fdcd7", "messageHeadline": "Remove unnecessary throws", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "b40b7737c6e79950ecc9dec998b8aeb737bce939", "messageHeadline": "Added method for JS to get entry path in case of a UserContext create\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "16a245509827692dec1eba65065f5cf2d4d14f65", "messageHeadline": "Fixed bug in accepting follow request", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "f1d6467fcf8cc76b21c3b919e0ab9e7b9a1e2f4e", "messageHeadline": "Treat shared folder entry points different - get their direct childre\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 2}}, {"node": {"oid": "d01224c01b40095c2937af3821fd8d40fc2e099b", "messageHeadline": "Expose share and getFollowerNames to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 38}}, {"node": {"oid": "85714132af0057536628a0341c23617a5359c1f8", "messageHeadline": "Expose unfollow and remove follower to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "33cc43b67ad067eb356f73fb64c2c653520fc729", "messageHeadline": "Expose replying to follow requests to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "59421aa665e0318444dcb3a02e895a3221a3dbd7", "messageHeadline": "Sorted things in social state", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "518127c88aaf06a028fa5ab654029a0fd201281f", "messageHeadline": "Expose social state to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 4}}, {"node": {"oid": "a69115eaead3bf026121ac4e387b9aefedab3052", "messageHeadline": "Implemented creating a UserContext from a public link, with a test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 4}}, {"node": {"oid": "895c7426a68aa104840d60ded307ece550ab3d3a", "messageHeadline": "Merge remote-tracking branch 'origin/js_interop' into js_interop", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 106, "deletions": 213}}, {"node": {"oid": "bae03b10807cac4f8730408505acad4ac1edbe67", "messageHeadline": "Bugfix in FileTreeNode::remove that lead to a race-condition due to c\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "9eebc5965d1f8d04174e6a038b50028673368a01", "messageHeadline": "Added UserTests::deleteDirectoryTest to test removing a  directory", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 48, "deletions": 0}}, {"node": {"oid": "2061382ab6808d4bf6788746b3ae50d2d93bc4d9", "messageHeadline": "Updated  UserTests::deleteTest to check content of non-deleted  files\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 20, "deletions": 0}}, {"node": {"oid": "037515b36dbd71f85dd610b897b80aad5fd2f0a7", "messageHeadline": "Expose sharedWith to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "811d65777bad2159ab53afe1f81d41038502d75d", "messageHeadline": "bugfix in UserTest::deleteTest", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3f3ab16fbf15f0ba90067a808f9210e40a3b0ef5", "messageHeadline": "Merge branch 'thumbnail3' into js_interop", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 105, "deletions": 213}}, {"node": {"oid": "793e94a5e765d1e8acf88cafd1716fe92bf07df1", "messageHeadline": "Moved CoreNode::getDefault to UserPublicKeyLinkTests  st/  gwt  doesn\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "eb80f4ae8189297f3c8284228862ddc44bb53202", "messageHeadline": "Added UserTest::deleteTest that tests after FileTreeNode::remove is  \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 64, "deletions": 0}}, {"node": {"oid": "e2a8a28b52c5a62df039a10aaaf84a2421a1a792", "messageHeadline": "Merge branch 'js_interop' into thumbnail3", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 175, "deletions": 44}}, {"node": {"oid": "9490fae81b6265d214932c11f139ed57c8eb1d8e", "messageHeadline": "Hopefully last test that needs to be fixed...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "fd8870fead8ee6c075b3d617e24779432b1a7e12", "messageHeadline": "Fixed LISC.skip() Bring on the GREEN light!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "204a87eb4f28deb80b699e2a9a7258051f1ed363", "messageHeadline": "Fixed PeergosFS. Hopefully all tests pass now..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "599ace5327292d52988262cadb4f7bddfbee37e5", "messageHeadline": "Fix LISC.skip()", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1bb75e72ef95e19d9b94442375924225a4e8fa8d", "messageHeadline": "Exposed public link to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "4c2cad021c508bd5e6fe6ed7d3ab38b65f344c49", "messageHeadline": "WIP LazyInputStreamCombiner::seek.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "a87a107c0a73144232f7ec976d44175912680976", "messageHeadline": "WIP LazyInputStreamCombiner::seek.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 12, "deletions": 6}}, {"node": {"oid": "136dcf4aabad0064bdfbd502ceb389258bddc449", "messageHeadline": "Implementetd LazyInputStreamCombiner::seek fixing some of the FuseTests.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 17, "deletions": 2}}, {"node": {"oid": "d7a48a05bf4612e6368734fa96a6c141ce58189e", "messageHeadline": "Finished UserContext::share/unshare impl, MultiUserTests now passing!", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 14, "deletions": 21}}, {"node": {"oid": "4a50193f3f461bfd2926466b656452b1371fc40a", "messageHeadline": "WIP UserContext::unshare", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 16, "deletions": 8}}, {"node": {"oid": "ebe6c6c641e30a3381d34a41374b8de990a46621", "messageHeadline": "Merge remote-tracking branch 'origin/js_interop' into js_interop", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "cd468e476b9a0bee5bcac7c9fa9264fe02c27356", "messageHeadline": "thumbnails", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 61, "deletions": 66}}, {"node": {"oid": "756f9427f11920a60d850aa6dc4bc64db750c54c", "messageHeadline": "WIP share and unshare  impl", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 126, "deletions": 27}}, {"node": {"oid": "60e9010c3ea99384882e4e5114305c799a7fcb1d", "messageHeadline": "Exposed rename method to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "d27a477dafe9964362b76fd501150b4b230098ed", "messageHeadline": "Merge branch 'js_interop' into thumbnail3", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "59a1e6d347acf99eff38b1b64bc0ab93f8c5e37d", "messageHeadline": "Merge branch 'js_interop' into thumbnail3", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1152933, "deletions": 79}}, {"node": {"oid": "596fefd6a8314191d0cac557346fc03fb2ab86e6", "messageHeadline": "File download working! (Added getInputStream for JS)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "846ae965a8a8a06f3df850007ed9ead292e89ee9", "messageHeadline": "thumbnail WIP", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 94, "deletions": 203}}, {"node": {"oid": "6ad1f98d053210309468d3a43c2f47fef064dacf", "messageHeadline": "File upload working!!! (Fixed bug in ByteArrayOutputStream emulation)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 3}}, {"node": {"oid": "2626d96fdc4648900b74be33c7db1db17079575f", "messageHeadline": "File fragments uploading in browser now, but IndexOutOfBounds seriali\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 99, "deletions": 9}}, {"node": {"oid": "d844e6e9a99983c28147e989e06a2b819891bb07", "messageHeadline": "Upgraded to gwt rc3, but it doesn't fix upload", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1152711, "deletions": 5}}, {"node": {"oid": "08b7b4c4d29aafb8a91f1b705430dd7a1d040437", "messageHeadline": "Fixed some more async bugs, but upload still not working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 17}}, {"node": {"oid": "3a852cbdb46cd9eac7f042e0c59bbdfa3549ca74", "messageHeadline": "Fixed some async bugs, but upload still not working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 37}}, {"node": {"oid": "0d1138f909138a98f96fd8a97f98b0530d4b9e1f", "messageHeadline": "Moved Consumer to ProgressConsumer, because of clash with internal gw\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 24}}, {"node": {"oid": "abc217628cc2514d044896821e7b6dc50d20603c", "messageHeadline": "add package to BrowserFileReader", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "aef34e41ecb87e9bef0db537c90a913196404ee2", "messageHeadline": "Changed AsyncReader.seek to take two ints rather than long", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 8}}, {"node": {"oid": "8798367a2460431e9393fafdeb1cbe720e52a884", "messageHeadline": "Exposed a few more methods to the UI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 55, "deletions": 1}}, {"node": {"oid": "9f34837e3bbac50e1918fb00da33c95f3a9f9f3a", "messageHeadline": "Added WriterData which will eventually replace the root object a publ\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 0}}, {"node": {"oid": "dfcada4c2299e657e6b4bf2e20d71a8324f98171", "messageHeadline": "Rename to AsyncReader", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 54}}, {"node": {"oid": "38a548d90f07de21e71ade4a2bdae8f70503a0ca", "messageHeadline": "Fixed isUsernameRegistered", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "b3494a39ae39f319f8ae53a3fb2c7866a2fcf508", "messageHeadline": "Added `AtomicLong` impl. to  gwt/emu targets, only implementing metho\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 53, "deletions": 60}}, {"node": {"oid": "73df6847b0b96a780e8b2e818b57307f8a20ee7d", "messageHeadline": "Updated  UserContext::processFollowRequests  to not  use CompletableF\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "e088c66931e45c3849579e5f62f9281e6702990e", "messageHeadline": "Updated FileTreeNode::updateExistingChild st/ when existing child is \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "c6fd4fe925a9546f07836231a44ec594b321dc8f", "messageHeadline": "Fix build script to point to new tests location", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "84e91f372043e51d60ac6598b803bdaa3dc6f28a", "messageHeadline": "Fixed case where multiple fragments in a chunk are identical", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "a7b2e9c412ae0628772eeef3adba88599f5007c1", "messageHeadline": "Moved from InputStream to LazyArrayReader", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 251, "deletions": 225}}, {"node": {"oid": "61683ff5fe4ac614b75be8caecda5b14d14823fe", "messageHeadline": "Merge branch 'js_interop' into file_upload", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 232, "deletions": 119}}, {"node": {"oid": "2b4e91933a4330401d7dad73568e9bff7ab724d8", "messageHeadline": "Refactored UserContext.staticData into UserStaticData to abstract som\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 100, "deletions": 31}}, {"node": {"oid": "933cd94a0aa577fed6555813697e72735e9ca546", "messageHeadline": "Fixed reordering of hashes on upload fragments function", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 2}}, {"node": {"oid": "980630635062e220015ec84d38856292026cade9", "messageHeadline": "Fixed reorder fragments function", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "e60364f8a08e203814af42a719dfa08dca969401", "messageHeadline": "Got last follow test passing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 12}}, {"node": {"oid": "0265ef101e39fbcf895065710adb23c53f39c6c7", "messageHeadline": "WIP implementing FileTreeNode::updateExistingChild  with CompletableF\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 113, "deletions": 77}}, {"node": {"oid": "246b6ea59409f02327cb9a15a5023e4a44d137c8", "messageHeadline": "3/4 follow tests passing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "76571d7686d95f7e9b7f6c1d2f08ff4ebe9397a1", "messageHeadline": "Following is almost working.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 111, "deletions": 80}}, {"node": {"oid": "1fe3c856a3ac0baa058aa5106f892eea2030a8a2", "messageHeadline": "Implemented sending initial and response follow requests. Social test\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 134, "deletions": 123}}, {"node": {"oid": "99c79c5c054dc20547cbb76b0fc615a557524c21", "messageHeadline": "Implemented asynchronous unfollow and remove follower.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 17}}, {"node": {"oid": "619e4b7ab741245371a3ba86da9c47cc910a387e", "messageHeadline": "login no longer signs you up. signIn and signUp do as they say.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 9}}, {"node": {"oid": "3a5100327b80363c88e9b6c4e871c0c7b97d431a", "messageHeadline": "Create Crypto wrapper for hashing, random, symmetric, boxing, signing\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 111, "deletions": 104}}, {"node": {"oid": "9d1c30f7cb09cc032820f4bf4b3f422523d7b5b4", "messageHeadline": "Made NetworkAccess initialise with the username list.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 22}}, {"node": {"oid": "189ed2430ea2d31669190bb33861abbc35e21c37", "messageHeadline": "Move dht, corenode and btree to NetworkAccess in preparation for simp\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 147, "deletions": 103}}, {"node": {"oid": "396506042826840612e6abe47aee8ae5a26c904f", "messageHeadline": "Moved TrieNode to top level and made it immutable.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 182, "deletions": 145}}, {"node": {"oid": "1040f168208c1500953037114188d4604631eb4b", "messageHeadline": "Change core getUsernames call to take a prefix (for scalability) and \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 56}}, {"node": {"oid": "137b0b18e5f4ba19b565e099094a17f51b6b3c08", "messageHeadline": "Merge branch 'scrypt' into js_interop", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 813, "deletions": 91}}, {"node": {"oid": "9d24bbe8d0c9858926d5d91541a4836f76ca3c45", "messageHeadline": "bugfix", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "06cad595c3cadccb5916db84a5361e9b64d87f5d", "messageHeadline": "added toString to meulated classes for LocalTime and LocalDateTime", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "4b15b568826089c2d52834d765c8cc462d8ea02e", "messageHeadline": "gwt scrypt", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 813, "deletions": 91}}, {"node": {"oid": "4a65015af1b92a74525a6a78fee1f9b137fe6603", "messageHeadline": "added GWT. see version inside about.txt for git hash. will be replace\u2026", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1141, "deletions": 1}}, {"node": {"oid": "b78133e9840471bb86841c35bac3d4e6f1f591f9", "messageHeadline": "Drag and drop cut and paste appears to be working, except that the ta\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "83cdbc556c55bf8f8d49f3013dd83c959058b676", "messageHeadline": "Exposed FileTreeNode.remove to JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "af69ee04dec9b4386407486b7eef363857c67aee", "messageHeadline": "fixed username access from JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "ce1ff65c342593430128488cd3e732ab26a2298a", "messageHeadline": "Now logging in after signing up works correctly.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "0f4eda876a88eaf213209ce03f0af36b498bc822", "messageHeadline": "Mkdir working in UI!!! BOOYAH!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "fcdbd09d07cc195605b3b65d7b24b6c19cf2b771", "messageHeadline": "FileSystem view working!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "0f5b9ec59cfb1724d8cdd9f91d07c7835de5239a", "messageHeadline": "Added some JsMethod annotations required by UI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "b6000e6b6c7f34d4f874af9a9d30e06415d368d6", "messageHeadline": "Login page working correctly now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "6ded6b8b12a8257f1431d378d8d191a197b80a74", "messageHeadline": "Improve error propagation in CompletableFuture emulation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 10}}, {"node": {"oid": "b83feee6b9efd32a985c71a78efd2c5c22c11bb4", "messageHeadline": "Fixed some bugs. JS emulation of CompletableFuture<Void> may need som\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 18}}, {"node": {"oid": "84f226a765b3ef785130e7a9afd1b8465852c77d", "messageHeadline": "Fixed UserContext init", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 8}}, {"node": {"oid": "55a3eb16cce7411d48307a909c8fce40e060f24e", "messageHeadline": "Fixed bug in MerkleBTree if we store the same value to a key twice.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "915876fe939e5652611c61341e8ac99d5774450a", "messageHeadline": "Fixed signature on CF.exceptionally(err)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a7867e1edf5320a32b68d41b44f6bdf303041c51", "messageHeadline": "Added instrumentation in case BTreeHandler.GetHander::handle throws a\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "d93e4a6d68f58b883a6a12125e58696e8f1844bd", "messageHeadline": "bugfix in FileAccess::getParent, no longer  returning null  if parent\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 3}}, {"node": {"oid": "663e82f5be469cad2789420004d8bf4e30e34ab7", "messageHeadline": "Reverted to external JS for NativeJSHttp for now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "e7a855c4a4a15c80cb28fa47009ef7ddcb2cf7cc", "messageHeadline": "Fixed ant file to compile server side classes correctly (without usin\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "50a69a4b5429b9b2423e0f8f8bc29af1a6f2daad", "messageHeadline": "Fixed ant file to exclude gwt emulation classes from jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "edb8ffbc4205ef96a799c3ac9b05f6b3ea725129", "messageHeadline": "Merged old ant file with gwt ant file.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 203, "deletions": 212}}, {"node": {"oid": "8ffbe6ab17965a79764d8c16363e36dae24a54c2", "messageHeadline": "BOOYAHH! Successfully signed up and created valid user context, with \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "19c58662ee51b4dcaedf754f755d7f69a54dbffe", "messageHeadline": "cleanup of emu classes - part 2", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 26, "deletions": 10269}}, {"node": {"oid": "b8e9dc6662a5f348de544b70a2b4836eaad61d5e", "messageHeadline": "cleanup of emu classes - part 1", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 2102}}, {"node": {"oid": "8e3f0f8b9499d1b624abfde01918bdf40d2e5dff", "messageHeadline": "completing dht put of entry directory metablob, but not the subsequen\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "950b88649a315ef35f25a1a1a1b52a398bf9ebaf", "messageHeadline": "successfully registering username, but not creating entry directory d\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "79323c067f56c98bbbfd780b90844b8300b3971e", "messageHeadline": "Fixed some correctness bugs from switch to CF, but still not quite fi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 9}}, {"node": {"oid": "1163d0e18da39ef39fb283a1b490cc6e98409426", "messageHeadline": "Fixed LocalDate toString", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 1}}, {"node": {"oid": "b2254cfd67c81acfeaea7d081cd05d6c37808d90", "messageHeadline": "Future part seems to be working but the post body to corenode.getUser\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "2916b894c1e349cc5968263779ba12596c4887d2", "messageHeadline": "Imported my implementation of CompletableFuture (it compiles)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 731, "deletions": 19}}, {"node": {"oid": "64d91fb11e236e0dd956c74f56611332a934d11f", "messageHeadline": "Fixed some gwt issues, but still can't find the CompletableFuture source", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 6}}, {"node": {"oid": "4743e4bce1037e9cf28bc1770fea870c5d2d4d74", "messageHeadline": "Should work, but somehow can't find the CompletableFuture source", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "726ed749c583f6f59be30b3f2f1ce0d0f045e714", "messageHeadline": "Commented out file upload for now. Trying to get it actually working \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 25}}, {"node": {"oid": "dd6f4867cece5487e641458c2c909037e48c45b7", "messageHeadline": "Commented out social part for now, just leaves file upload method", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 29}}, {"node": {"oid": "333026f22d66b316e8ef3835f9634d3f700d6447", "messageHeadline": "UserContext done except for social stuff", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 94}}, {"node": {"oid": "aecb6ff86821966498c7e5941d24ef4127acc1d6", "messageHeadline": "WIP", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 60}}, {"node": {"oid": "9ee3eb23e49217ab1e3f3ee82664c3bee2908782", "messageHeadline": "Added util class Futures to wait for a collection of futures and coll\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 35}}, {"node": {"oid": "5741fcc0fd047c647747ab0e1370f6f3a9009609", "messageHeadline": "More signature cleanups", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 120, "deletions": 110}}, {"node": {"oid": "09422ca2e4c9301e3738ef5c91d9775b6db11257", "messageHeadline": "Fixed TrieNode in UserContext", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 25}}, {"node": {"oid": "c1675c44b3375e1ec684db3d9cd3fce7f8e18964", "messageHeadline": "added bulk calls to DirAccess add subdirs and add files. Now only upl\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 115, "deletions": 87}}, {"node": {"oid": "29d22e7801fd39b51652cd5a2f28a91f7bf25d7d", "messageHeadline": "Back to just UserContext and FileTreeNode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "fe610b07e583ddc3d49b0000b3a7e217e2ca3b6d", "messageHeadline": "WIP simplified readable file pointer", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 149, "deletions": 137}}, {"node": {"oid": "73d75a338d44f0c2dc617eb4534cefcc906d5ffe", "messageHeadline": "WIP", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "5de8d8ead3e105dd8f9eccc4237de91de6d09ab9", "messageHeadline": "fileretriever done. Only FileTreeNode and UserContext remain", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 69}}, {"node": {"oid": "72184b00c5a037e2a948574eaf3d462d99d21dcd", "messageHeadline": "WIP closer to", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 303, "deletions": 252}}, {"node": {"oid": "89d02e1d4095735fa5b4b0d080ba17006667c297", "messageHeadline": "Converted entire client api to use CompletableFuture for method with \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1099, "deletions": 841}}, {"node": {"oid": "467df8d04841aafa74502c3d16373ffba1f20368", "messageHeadline": "Much progress. Now successfully wrapping a JS object in Java.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 11}}, {"node": {"oid": "feabd4cdae2b64c923e6f8d8e352eade48abb962", "messageHeadline": "trying to get poster working. Still got annoying iframe overwriting p\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 114, "deletions": 98}}, {"node": {"oid": "6944b19fee0d10d2e9e76848b211e62a2fc7891a", "messageHeadline": "Need be careful of global namespace... Reinstated old JS classes, whi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 28}}, {"node": {"oid": "7b20cabe761dcfdeed3fd0bfb421feefd442c81d", "messageHeadline": "Fixed long issues", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 2}}, {"node": {"oid": "d5af5248e46ab06f29da0ad33b0191f8f1a136bd", "messageHeadline": "seem to have fixed Optional and localdatetime issues", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 119, "deletions": 1}}, {"node": {"oid": "3e07ac96cda12f718853b381005dabfa93365b9d", "messageHeadline": "got jsinterop 'working'. Some issues around Optional, long and LocalD\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "195b0f1ff1fca22aaca5fa9b5a3e20cc0ca14e2c", "messageHeadline": "added some jsinterop annotations, compiles fine with gwt (with -gener\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 269, "deletions": 107}}, {"node": {"oid": "38e18e362f3d9428d83b85627e3e6c3c3eef80b5", "messageHeadline": "initial gwt import", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 18992, "deletions": 1034}}, {"node": {"oid": "d9c9f78dba43887e25e9c3caa91e7f8b2815f7ac", "messageHeadline": "added another method for web ui", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "2c7228df1d932379621feeef3ee4c608e78b629c", "messageHeadline": "added method for web ui", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "6732460d9e9c2ae38780523c5b781cd3016b8dc1", "messageHeadline": "Updated MultiUserTests to test (un)-sharing and udating a file and a \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 118, "deletions": 46}}, {"node": {"oid": "6b216b5f77d162ae022372e03bd53cdcefb705ef", "messageHeadline": "import", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9af91f1ae2c15f48282444191ae53a21edf4343e", "messageHeadline": "convenience methods", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "b64e0dd32b59f871512da4ff78b951e09a4cdc4f", "messageHeadline": "better error logging for missing files in web requests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 31}}, {"node": {"oid": "77e4976e3a0dd5eb8c292abb02c491d77b43b402", "messageHeadline": "clean up startup configurations, better error feedback, modifiable Args", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 11}}, {"node": {"oid": "9761660e5c50dcce5d4c7131447a30e067dfc8db", "messageHeadline": "typo in help", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "05e32885a85d9fe9c2cc4e75c71eefcd15c60ed6", "messageHeadline": "Added more cmd parameters to help", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "ec72735f5509023b4663abeed3ab54b1aa399f3e", "messageHeadline": "make web root dir configurable with -webroot", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "ac9422d17c0e302993f003ad6e50d5495cb57630", "messageHeadline": "Merge pull request #145 from Peergos/multiuser_test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 140}}, {"node": {"oid": "0134f32837fdc8ee7e782e6097d3f5c36f2f05b8", "messageHeadline": "MultiUser tests working for 3 users", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 3}}, {"node": {"oid": "5c0e44a3328e059ed6ca241d4b105755dc1ee5a6", "messageHeadline": "MultiUser tests working again for 2 users (not 3)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 149}}, {"node": {"oid": "4374f915dfc7519e3c155048aedafdaefc615357", "messageHeadline": "attempt erasureJS code again", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 79, "deletions": 17}}, {"node": {"oid": "454b47a5ccd119d1480a2251ec652031a683de81", "messageHeadline": "WIP parameterize TwoUserTests by n_users", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 84, "deletions": 28}}, {"node": {"oid": "c003a25f6a0337574a4662fe372a5faf77dc2b1d", "messageHeadline": "Revert \"erasure coding via doppio native js\"", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 51}}, {"node": {"oid": "ec971a244288e50b5fe74470d8ccfc765ff8688b", "messageHeadline": "erasure coding via doppio native js", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 51, "deletions": 6}}, {"node": {"oid": "b9555d831006b6f954e387855e3fb3da8f09df94", "messageHeadline": "full revert of doppio java optimisation. will try again down the line", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "f4bc1c0b53158add4f15b73405f8ced624e12163", "messageHeadline": "Bug fix in old UI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "32455c0dc449a43123cca23da42353e0f6830209", "messageHeadline": "Limit usernames to 64 characters", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "a12f88bc54b5d8eb5794b3a2320349543b8fd1a3", "messageHeadline": "Update readme", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "fd2b7a339f90f9415415b69c6a874e0509cf272e", "messageHeadline": "fix for missing logout button on subsequent login. better, but still \u2026", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "005b0e1573d11d1b66c7fbe277dd37bd27ac7824", "messageHeadline": "Merge pull request #142 from Peergos/chaining_dir_accesses", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 341, "deletions": 121}}, {"node": {"oid": "a09200d2517a7b1a3896e3a7416debd2ec6e3a6c", "messageHeadline": "File upload working in doppio, though still need to figure out how to\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 7}}, {"node": {"oid": "34003d377cb61132e90ea21e7098acc1fe65cfb6", "messageHeadline": "Fixed username claim expiry during registration", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "3c67f3423fc4c92dd09b544997954baca98199f3", "messageHeadline": "Update doppio example to upload a file. (doesn't work yet)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 5}}, {"node": {"oid": "0aafb826d91644ecbf9ddfd0a0321dac85ac3878", "messageHeadline": "revert rt.jar used by doppio", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "2df5e91ebfe64715c0ed51933f5d6c5396ed4399", "messageHeadline": "revert rt.jar as used by doppio, add reduce tool", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 247, "deletions": 0}}, {"node": {"oid": "7170d83729f199fefbc27104b7fa31d45d1431b0", "messageHeadline": "Fixed subtle bug in JS fragment reordering, caused by multiple identi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "5fc855aa1648d4438c8499ace66f40ea6d38c599", "messageHeadline": "Update doppio test to include uploading a file to test erasure codes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 1}}, {"node": {"oid": "b6af28fcd88245ab2c0ac85fb1191304bdb4c74e", "messageHeadline": "Fixed SplitFragmenter. A file is split into Chunks and each Chunk is \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 22}}, {"node": {"oid": "b05b5ee08af94092d623f34bfc4d962c9a85ae4e", "messageHeadline": "Update JS BTree serialization", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "5e82e4060453ce11701672f3b950181ea66e7579", "messageHeadline": "Fixed (and improved) BTree http format", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 26}}, {"node": {"oid": "057df7bd638439ffd070ae3f8f85b1cf1440f9f0", "messageHeadline": "Disable the long test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9fac937e1dccb8502ce73d614e22f5426ca9b35a", "messageHeadline": "Fixed DirAccess chaining.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "3c6ccff4149d0f7534cb72c46e61eec85e4e32a4", "messageHeadline": "User Generic DHT interface where possible, and have an LRU version of\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 266, "deletions": 62}}, {"node": {"oid": "603ff113527745302f03ee27eb5ca99ae453acbd", "messageHeadline": "Unsharing of folders working!!! Booyah!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 112, "deletions": 9}}, {"node": {"oid": "22c5f89653faf7ca32eab95f6a61051ee2e50694", "messageHeadline": "added  backwards compatibility with Fragmenter API to  legacy javacsr\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 8, "deletions": 0}}, {"node": {"oid": "856fd136649293ae3421c64d67cdd7e8d92b3e98", "messageHeadline": "Removed potential for losing access to your own file, if there was a \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "75235d4ebc867d2d9f05aac11b6c37f6e5d45c49", "messageHeadline": "Added unShare API to user context", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 6}}, {"node": {"oid": "52c687cdf1fd1f0467db2a61755e40d9b6438996", "messageHeadline": "Merge branch 'read_revocation'", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 343, "deletions": 193}}, {"node": {"oid": "e29363ed2c7d16973b4d7b740190b3c07254a759", "messageHeadline": "Hooray, forgot I needed to reset stream after thumbnail generation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "89835ca3611b85fb17fc582315e609c900815c99", "messageHeadline": "Clean up code and actually (de)serialize the fragmenter", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 30}}, {"node": {"oid": "a5f3f3db3c02f1eb0c039912246e32208f81c1c5", "messageHeadline": "turn tests back on, and turn off debug!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "5dabe9486fbe2dc673b231678d20f6bf30eb84e4", "messageHeadline": "touch to trigger travis", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d13f06759d9334d3115e2c144a1ce8b3940beb63", "messageHeadline": "cleanup", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 22}}, {"node": {"oid": "562f665f9840743ecb15443bc77554de8acc472f", "messageHeadline": "touch", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "5865de8001af5e4d2907d537042c8ace610908cb", "messageHeadline": "MERGE", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "bd16d36008b39c5c373f3c969ee9195ef4dbb1be", "messageHeadline": "Web download consistent with back end again.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 9}}, {"node": {"oid": "ecc919f135c662cc357fb97d16370f819dfefc0d", "messageHeadline": "Web download consistent with back end again.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "a5dc7ead5afe3a7ebcf6c9b391f4aabc620b5144", "messageHeadline": "Upload chunks in order now, not reverse order.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 26}}, {"node": {"oid": "df10c5f2911100a2e792dd739095c009d038e266", "messageHeadline": "Implemented dirty file cleaning, but now need to rework the upload to\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 140, "deletions": 71}}, {"node": {"oid": "f01a52aaf0fbeaef54a75fda85155bddd408c263", "messageHeadline": "Hooray, got read revocation working for individual files. All the key\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 17}}, {"node": {"oid": "0946921fadcb775178c6517bd22e46a280c8d648", "messageHeadline": "Simplify NaCl Symmetric key, remove confusing constructor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 10}}, {"node": {"oid": "55fb69187fefe109a400ca916dab9050a2ef17e6", "messageHeadline": "Added dirty property to symmetric key in preparation for read revocat\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 62, "deletions": 29}}, {"node": {"oid": "81431c7609100a89a52016eacfae2bb9788ec4be", "messageHeadline": "generate thumbnail java", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 61, "deletions": 16}}, {"node": {"oid": "057832be429404c87a4d95028a817def3de79269", "messageHeadline": "finished intergrating Fragmenter API.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 56, "deletions": 30}}, {"node": {"oid": "30ebe1bd9c64dd92d9455dc1f1e309e4c172bf22", "messageHeadline": "implemented Fragmenter  (de)  serialization  test.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 45, "deletions": 6}}, {"node": {"oid": "e39d48dc07ed416aba1b17a9192785e979523cfe", "messageHeadline": "implemented Fragmenter  (de)  serialization", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 32, "deletions": 12}}, {"node": {"oid": "36ca80c01dab9de503b6890c1d012df2bc183c4c", "messageHeadline": "Added ErasureFragmenter that splits  and recombines input data with a\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 52, "deletions": 21}}, {"node": {"oid": "9aea43fe0272f773eef2ac02b3869d8a255a6611", "messageHeadline": "Added Fragmenter  interface to  abstract the way which data  is fragm\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 156, "deletions": 0}}, {"node": {"oid": "26ca499818a1345eecf6017b68a84421d53dacc7", "messageHeadline": "Merge remote-tracking branch 'origin/master'", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 15, "deletions": 27}}, {"node": {"oid": "a0cffaa3e2eac0b16b1eb2f1af409869cdb68e2e", "messageHeadline": "Merge branch 'master' of /home/chrirs/software/Peergos with conflicts.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "caf0bb318071b1215d9059a410fbbb99f1313cc0", "messageHeadline": "Close file handle", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "194d952e717a3bf79c9bba497b2e3747b349424b", "messageHeadline": "Compose SymmetricLink into SymmetricLocationLink", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 9}}, {"node": {"oid": "b7c668e5d015e54b8df2a32aa3369e04af9f8f97", "messageHeadline": "Defensively code against reusing a nonce in SymmetricLink (shouldn't \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 19}}, {"node": {"oid": "7072c8949155c1f53a0d2eb9c2b244f47095501e", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 361, "deletions": 149}}, {"node": {"oid": "81789ea2fbcc4ce16ce7a4c7eb71ee10b9f51b57", "messageHeadline": "Remove \"owner\" from public links, It's unnecessary, and now they are \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "63bbd58aadbb978c6dc744ec6b8d6cd78826f2c2", "messageHeadline": "Privatise UserContext functions that don't need to be public", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 23}}, {"node": {"oid": "32bd17c1b3d32593e44c0cf55adbd3f75ae95026", "messageHeadline": "Update old UI to still be compatible with Java front end. (breaking d\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "2d6b081817a4cfff10dddc8c7284334140a692c6", "messageHeadline": "Fixed case where a follow request is reciprocated, but not accepted", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 12}}, {"node": {"oid": "90c5dc3eb13b63e1a45ef7904bcb782b656c02ed", "messageHeadline": "Fixed bug in rejecting a follow request", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 1}}, {"node": {"oid": "0286f64cd834d49fb65cfa029e73d6d2dd85c54c", "messageHeadline": "Fixed some security holes.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 14}}, {"node": {"oid": "5805490f17079ecdbe8899a243253e83af1b3109", "messageHeadline": "Removed possibility of creating a half signed up user (and thus remov\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 16}}, {"node": {"oid": "624548d11bb1fbcc4f7bb1eb9806b849642540e3", "messageHeadline": "Updated IPFS.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 62}}, {"node": {"oid": "a72e1300405cb7dea416145b82dab626f2cf62e8", "messageHeadline": "Added test for sharing a file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 2}}, {"node": {"oid": "13a761b4bca29ed6851814e0229bb88f1081fa8a", "messageHeadline": "More vendoring for linguist", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "a8220aa62e888b4908594b3be4306e0d7db236be", "messageHeadline": "Self host wuala paper", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "55444f74a267ebad873f969b9397a192c3a6403d", "messageHeadline": "Try to fix language allocation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "3e48cad358c2b31ae2d95d7534dd0e5949a8f4e9", "messageHeadline": "Try to fix language allocation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "0c88a4e82df1b5450b811416929ccf55d3e18de2", "messageHeadline": "Created two user tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 15}}, {"node": {"oid": "ebe60739b5a6e9d6a28166a6c7658420f39cbe40", "messageHeadline": "removed backwards  compatibility.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 6}}, {"node": {"oid": "7fb4ef8afcb4d8b45161263561c9a5495a52b0e0", "messageHeadline": "Fixed sharing in old UI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "e5643291e53eb50011e8139d7f6811b61478fa96", "messageHeadline": "Updated IPFS jar to 0.4.2", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "1d5e0bb97d74d8b2697039d3c91e083104422e4d", "messageHeadline": "remove not required jar entries", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 18, "deletions": 1}}, {"node": {"oid": "a8db6b37527ace2de7e516bdfb96f9ff19247e16", "messageHeadline": "get rid of some unnecessary classes in doppio java jdk", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 6}}, {"node": {"oid": "576d5a7ba9c71bd43e595894dded5069d5b35ee5", "messageHeadline": "gzip fix for getUsernameGZIP. fixes browser freeze on sign in.", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 19, "deletions": 14}}, {"node": {"oid": "ed8ecc0e8a56d5d7aa2725dd8bbe95e522765be5", "messageHeadline": "Made DHT gets use HTTP GET, and also set appropriate HTTP headers for\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 93, "deletions": 39}}, {"node": {"oid": "02f69b6162f5b90133553003c65b421549ebe6f1", "messageHeadline": "Wrap fuse ops with try blocks to log any  Throwables swallowed by ups\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 34, "deletions": 14}}, {"node": {"oid": "c63d5f4c13b8d597989a36561edd3897bcfea91d", "messageHeadline": "Removed unnecessary synchronization", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "3177209de799332d1c1e3a6c7de14010ebbd490b", "messageHeadline": "Now it is clear..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "2a1e8e76856a8320890d73976e14750a3d0254f5", "messageHeadline": "If someone can explain to me how the fuck this makes all the tests pa\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "7fb961c758eb4460b76035e9e8a9c3b4c3d2a324", "messageHeadline": "Apparently test machines are slow...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ed9177a0e5314d6e0c98d8a1b6f32f9c8b44975e", "messageHeadline": "SyncAndClear is necessary during lock it turns out (truncate test fai\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "7b219114677bb0b475f57ea1980977766f1768d9", "messageHeadline": "Added write chunk timing test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 0}}, {"node": {"oid": "f079caa6344d6521ff9d72f5e715d413538e5e23", "messageHeadline": "Removed excess sync and removes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 19}}, {"node": {"oid": "8e31aa5d3385be50135d488fac5484029be66a1f", "messageHeadline": "Finally fixed test! Hate that java lambdas swallow exceptions.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 13}}, {"node": {"oid": "c0d4a3dbd1d0d8c925e97ed6ba28162374531ade", "messageHeadline": "Clearer debugging, but still don't understand the problem.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "ec28b839eff8fabe3f4e91c6f58ce340f8b8868d", "messageHeadline": "Even nicer code, though still failing that test.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "0e3b5066511fb7656da268f22ab19f3586f7d8e0", "messageHeadline": "Fixed null dereference in lambda. Now all tests except copyFileTest p\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "5f7157c4ad59464175fddecabbe9a07740a02b37", "messageHeadline": "Added lock() to caching fuse", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "43a2577e043a971167868ed1b52d5453889266c0", "messageHeadline": "First stab at full concurrent fuse implementation, at teh sacrifice o\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 67}}, {"node": {"oid": "2589453e9c6cc3faa9eb8027eac70d2e00b260e2", "messageHeadline": "added missing class files for java poly", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "1217fa245dada94a211e8ddf2638e32ac3f3f8ac", "messageHeadline": "Added random read test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 0}}, {"node": {"oid": "1ff581fa6fe7d0e26e5e24c97a66c2b05fd94aa9", "messageHeadline": "Added small copy from host test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 0}}, {"node": {"oid": "0db9a0e7ca69bec4f9bd8e33153d9b81e5952fcf", "messageHeadline": "Fixed CachingPeergosFS to show updated file size in getattr when file\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 68, "deletions": 29}}, {"node": {"oid": "2f31ca8bf6b30c51cfd37d13f3575b90eae6f7fd", "messageHeadline": "Make web server static content cache disabled by default (enable with\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "ac60f8df832c2e4d1b4fa4f26e1933159f4554c6", "messageHeadline": "Merge pull request #139 from ianopolous/doppio", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 98065, "deletions": 531}}, {"node": {"oid": "983c7b8df39e6879ce146ccfe5e4742ea2e88ae6", "messageHeadline": "Added ETag header which fixes caching of files in browser", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 17}}, {"node": {"oid": "8024a1ec34ebda5e6bcc168c5c2c60d159667903", "messageHeadline": "Created a slimmed down PeergosClient jar. Now sign up is down from 33\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 36}}, {"node": {"oid": "530c8c8082d4e28ab90ed950679e67fc761bdac4", "messageHeadline": "Fixed init for UserPublicKeyLinkTests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "f3d3ae12f2cb074a92b1781b6c8f4970f85786dd", "messageHeadline": "Reduce logging, now it is all fast.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 25}}, {"node": {"oid": "08f06308f9277096442778a4632563c399495094", "messageHeadline": "Implemented native boxing key algos for doppio. Now sign up is down f\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 145, "deletions": 46}}, {"node": {"oid": "59cb76901b97e4f25dd47db37614efa40ed1c8f0", "messageHeadline": "Implemented native signing key creation for doppio. Now sign up is do\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 9}}, {"node": {"oid": "32135064c0992e62708d0c08eed77aa44bb567b7", "messageHeadline": "Implemented native signer for doppio. Now sign up is down form 45s to\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 131, "deletions": 55}}, {"node": {"oid": "83cd391ad8886216e1b485e80c8e46e6b506eae1", "messageHeadline": "Put line numbers back in jar, fixed caching mode of static content se\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 21}}, {"node": {"oid": "fd0722bed456e115c4840d40c64c18087f66644e", "messageHeadline": "I swear that compiled!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "ef9eeca8274b77b8df1a45b080d4746d9a8aa925", "messageHeadline": "Removed all direct calls to TweetNaCl.randomBytes with the SafeRandom\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 141, "deletions": 67}}, {"node": {"oid": "afc3c6e08188211a641a61bd3732c42342f893d1", "messageHeadline": "Made native hook to JS symmetric encryption. Now each en/decryption t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 111, "deletions": 28}}, {"node": {"oid": "eb0d918486f6db77f7a1ab6fca5510f9e8ba5fc3", "messageHeadline": "Succesfully created and initialized UserContext in JS!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 3}}, {"node": {"oid": "6c003869afa600e9bcabe92f2bb573706bef699f", "messageHeadline": "Don't use JS in normal JVM", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "adcc130269672f9bb51f3297b16b6e18e360c786", "messageHeadline": "Successfully created logged in UserContext in browser! (except for ha\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 4}}, {"node": {"oid": "35be2ec67f1f30e97a19d1b68f93f8958e1c9d93", "messageHeadline": "Created HttpPoster interface.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 260, "deletions": 287}}, {"node": {"oid": "2f1ed998ae78a7e46cdbc01cff1e11f12f253b0e", "messageHeadline": "don't copy uint8array unnecessarily", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "30dd7a5f6024129cfb87aca6a9b7ecd0f4d681be", "messageHeadline": "first native JS function returning correctly", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "9380f826837292b422343c42fdd7bd77959c4c3e", "messageHeadline": "got native JS workign through JNI. Also included doppio JIT.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17196, "deletions": 17797}}, {"node": {"oid": "c860cfcbcf2ac5b8b246048bd8611d234f255826", "messageHeadline": "Add sha256 JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "1b8d18ef6352f219d6ca917e2e9479ae0278cced", "messageHeadline": "Added native method for Scrypt to hook into pure JS implementation in\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 88, "deletions": 82}}, {"node": {"oid": "cbc8f174f1451040492f7b0efd07e5ad304d9c97", "messageHeadline": "Seems to be working successfully into scrypt in javapoly.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 12}}, {"node": {"oid": "5a29c013421d3079a1a822e3bd0355c065b6091d", "messageHeadline": "added doppio related stuff", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 97306, "deletions": 0}}, {"node": {"oid": "84f8eb58d28f4ac0a78a98de117cb1ebfd03571f", "messageHeadline": "ork around doppio limitation, don't include unneeded stuff in jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "4b6419002ca8fbc605a382874c9a7b201bf9cfaa", "messageHeadline": "Doppio half working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 453, "deletions": 1}}, {"node": {"oid": "641f577f4c2748d17dbf022ec86486ad0944312a", "messageHeadline": "get subdirectories to display in the title bar correctly", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "23bdd34f03aca05a984da8cbafead9f87bcf076d", "messageHeadline": "label fix", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "6f584f22b72a4f00df1a1f9b3d963c8258a7a7c7", "messageHeadline": "Updated  CachingPeergosFS to remove flushed entries  from the cache i\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5bf59effa61fa156a7c2fe66243de911bdf4b3d1", "messageHeadline": "Updated CachingPeergosFS to cache chunks after  reading: significant \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 11}}, {"node": {"oid": "ab463758017b8bee9cfbe714b6e42b378283efdb", "messageHeadline": "Merge pull request #138 from ianopolous/ipfs_in_travis", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 110, "deletions": 107}}, {"node": {"oid": "4a349b7580ae904f2f38c55f3f77fa111a9f2ead", "messageHeadline": "meh", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "1ce9ff349191e4dd3a68b65cf9610455b0eb818c", "messageHeadline": "init IPFS in travis", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "32f94ed5afee0db767298718ea7f4b05e4faec10", "messageHeadline": "IPFS in travis", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 107}}, {"node": {"oid": "e436eb9335c219d8cd4182e11afaaffba6e2c880", "messageHeadline": "Merge pull request #137 from ianopolous/changepwd", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 229, "deletions": 37}}, {"node": {"oid": "4bdffe1932ffc9fee2a364dc8145cfe140ca63cc", "messageHeadline": "Corenode fixes for getUsername()", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 19}}, {"node": {"oid": "8bea970b77c0a3a1c19816534dfdeac6fc768ef5", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos into c\u2026", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2212, "deletions": 999}}, {"node": {"oid": "b7fd89ad3e76f2f09facadac7a1b8c745b12c771", "messageHeadline": "bugs", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "c1d642cdb82a3f46059f1a322d0644a415a823ca", "messageHeadline": "Reduced download time in JS from 100s for a 40MiB file to 8s, by skip\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 3}}, {"node": {"oid": "7a96b0f698b93ccf77c59711e8b067c17ff8bb20", "messageHeadline": "Update README.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 8}}, {"node": {"oid": "cb318487e9f0ac6bbc2a58cbdbcaa49973278c84", "messageHeadline": "Merge pull request #136 from ianopolous/caching_fuse", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 297, "deletions": 41}}, {"node": {"oid": "9ab4f119d27cc3b28895aa61fa8c39a6b4ed1a4d", "messageHeadline": "Fixed rounding up of file size in caching fuse FS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "38a7097de0ba42b00036a784d69362c08e70a837", "messageHeadline": "Oops again.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a7da01d62abdd6b4206a4be29827df39e2e49ac3", "messageHeadline": "Almost doubled write speed, now it's almost 2 MiB/s!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "7b3e18a54274ebfedf0d51cc2322d5b46a737024", "messageHeadline": "Made erasure decoding 200X faster in the (normal) case of not losing \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 22}}, {"node": {"oid": "398d0317208d48212aba8d9f73b679029a01fbb4", "messageHeadline": "Updated CachingPeergosFS::containedInOneChunk  since read/write ops a\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 3}}, {"node": {"oid": "c946099272a26de78e421d46cbbd829f5345fb18", "messageHeadline": "Fixed two bugs in CachingPeergosFS, all FuseTests now pass with this \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "70dc600af53d7a9042d9d3b0b44573f713d47a0d", "messageHeadline": "Demo corenode doesn't listen on localhost...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d9c46628cd7e2249ac76b68b5f92108c1944c9ca", "messageHeadline": "More logging", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "122c881a87cd6c4ee3e25738243e059769bd110b", "messageHeadline": "Log corenode proxy structure", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "74d46c945143d007be1770cafd2bfbf9b0b3e021", "messageHeadline": "Added  CachingPeergosFS  that  caches read/write ops within a given  \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 258, "deletions": 19}}, {"node": {"oid": "b568818f5dd929aa32d6d5a3104cbfdb11befd0e", "messageHeadline": "Fixed corenode args", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a9c27fcb283fff88aae57dd0792e1dcc6e8462b2", "messageHeadline": "SSL.java utils removed (we don't need it anymore)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 653}}, {"node": {"oid": "9aa9ec22dff85f588c1eb30cc7a4231019ec62e2", "messageHeadline": "Merge pull request #132 from ianopolous/fuse", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1845, "deletions": 318}}, {"node": {"oid": "3880122b18624890ea9e0d43153622f8bc0d0b1c", "messageHeadline": "Whoops.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "47f6157428d8d98ed6580ccd02e5e286215703b8", "messageHeadline": "Can now write a file in fuse and read in JS and vice versa. Changed t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 23}}, {"node": {"oid": "80c598e018a23c5a9fa586e17d50642058adb847", "messageHeadline": "rough cut. not correct", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 189, "deletions": 22}}, {"node": {"oid": "3c0d499f15d607424de9f1867562d3a2122b77da", "messageHeadline": "Turn off btree logging by default", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 18}}, {"node": {"oid": "a376b2b3ef9badc7142b34231174b72033cf8b4d", "messageHeadline": "GetNanos in getAttr", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2b5a3ef62ee52696138043fa742d8e356d87301f", "messageHeadline": "Removed logging excesses", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 2}}, {"node": {"oid": "221c1bd395e1873466e714ac4087e5d37b3ffcca", "messageHeadline": "Implemented last-modified(access) time info in get-attr", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 46, "deletions": 44}}, {"node": {"oid": "0c43ea2ba423699ae0afbb3f56052ae833f6b2da", "messageHeadline": "Added copy test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 0}}, {"node": {"oid": "3752d5767f645f199eac7d16feb861cc75cd9267", "messageHeadline": "Removed caching of indirect children, so now file tree is fully state\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 45, "deletions": 27}}, {"node": {"oid": "f537cb31f33ff76174047f15da69bb538c92723f", "messageHeadline": "Hugely simplified UserContext to not cache FileTreeNodes now, only th\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 108, "deletions": 74}}, {"node": {"oid": "7f7d3e48e03882f24b7d1930300b3271e0fd79c7", "messageHeadline": "Simplified UserContext in preparation for total statelessness", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 52}}, {"node": {"oid": "4c15b6af3cff8b60c7bc87571ba30e4740fa5a34", "messageHeadline": "Don't cache shared directory.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "08e33c3eff5fa3f27831d86d8624adb143190baa", "messageHeadline": "Simplified user context init. Next step, remove entry point caching i\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 19}}, {"node": {"oid": "1551019a92df5066a459eee812949724ff99f16c", "messageHeadline": "Don't let the jvm keep a reference to the raf..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "0212d30696bf0c51865a01f49e84ccf42969caf6", "messageHeadline": "Implemented unusual case for file write (with test to prove it, which\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 4}}, {"node": {"oid": "3b29941e4ef007d1d2d47851098fd290cd40ef2e", "messageHeadline": "Fixed readWriteTest!! Turns out FUSE reads past the end of the file!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "aea3dd9004ed83d6200186a0f4d8a9a0e44a8c51", "messageHeadline": "better error feedback", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 2}}, {"node": {"oid": "e089adc19898d82ed7cc45031261359a6c5328e1", "messageHeadline": "Move test passing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "e2033eb2a153b8f908409cd0aed54e44d6c789e6", "messageHeadline": "Fixed some bugs using retrieveParent where we shouldn't (this travers\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 16}}, {"node": {"oid": "32abf230a7f7cb67bdafa0c8c48d5c784c76a5e8", "messageHeadline": "remove test working (just had to implement unlink)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 1}}, {"node": {"oid": "3d18db340291b3ef2261f9b5eded214b53f1efe1", "messageHeadline": "Updated TweetNacl secret_box_open", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "c985279c39bc96ee809c1c35e1b01f39e8a560c7", "messageHeadline": "Updated FuseTests with more verbose failure messages", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "bbb98d7e050c11fe8df5b4fa16e8c4f5e3d5a60a", "messageHeadline": "Updated TweetNacl to throw InvalidCiperTextException instead of Illeg\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 25, "deletions": 8}}, {"node": {"oid": "00da60471c6b3eb81524d6ff2828eb17d80540ec", "messageHeadline": "Updated rmdir test to such that target dir is not a child of home dir.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "a1d245e6a19f15e647065aff3a130d848c7a861e", "messageHeadline": "Removed FuseTest::lastModifiedTime test since it's borked in upstream\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 40, "deletions": 17}}, {"node": {"oid": "500639d2e65c81960348454eadd457decd52b5ab", "messageHeadline": "separated test targets in  ant script, 'ant test' behaviour invariant.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 32, "deletions": 6}}, {"node": {"oid": "85e471d3cf15c9ebd329af9ec8bc669bc4d270f4", "messageHeadline": "Truncate test is working!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 67}}, {"node": {"oid": "ab6138de6292c5fed0b17dd44fe34cafe658d4c5", "messageHeadline": "Updated moveTest st/ target is in another directory.  It fails.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "e35165ef4e512e52b4f8d74072fe33add0b141e5", "messageHeadline": "Added separate test cases to FuseTests for moving, copying, truncatin\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 152, "deletions": 6}}, {"node": {"oid": "ad05008cd5bc138ba6a07470ddf5c8af69c1a257", "messageHeadline": "Refactored FuseTests::variousTests to replace remaining  invocations \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 32, "deletions": 30}}, {"node": {"oid": "7d1f52db366b706c7ec7774f4ee6b596fbacf56b", "messageHeadline": "WIP: extended FuseTests::mediumFileTest to  writefiles of increasing \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 44, "deletions": 12}}, {"node": {"oid": "47f618289b8b007013addedf110436fffe79ae49", "messageHeadline": "Moved to pure Java FUSE tests, and more stateless FileTreeNode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 64}}, {"node": {"oid": "e64854334121c3a2a8896aead929e630ca4337c0", "messageHeadline": "Merge branch 'master' into fuse", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 11}}, {"node": {"oid": "ba578b305e57a864639204c4a012a5a4dca4a341", "messageHeadline": "Made all \"corenode\"'s in command line args lower case", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "520d2596e099551fbc8efea44c2b015cfa12bb63", "messageHeadline": "Fixed command line options. now run locally with just -local", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "00636da550677f4f70def406474a6f5701376aff", "messageHeadline": "Make redirect to https do the same thing as google.com", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9b6a5283522c63e6a7d058e4e1e9ca88d1274e09", "messageHeadline": "Make new tests use fast, insecure random", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "28c8d8a58a7932634fb49b89a6673f688779ccdd", "messageHeadline": "Merge branch 'master' into fuse", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 132, "deletions": 86}}, {"node": {"oid": "79789b474f7d94c52e87505610c513f975ea9127", "messageHeadline": "Added Change Password to Java code", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 132, "deletions": 86}}, {"node": {"oid": "fc70d9c9c0098fd1c3ecd567dfa3d2393a146eab", "messageHeadline": "Increase RAM for tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9c3b952ca3988ab9e3df2a1d41d4c9e9d88a1a80", "messageHeadline": "Decreased FUSE test runtime", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "066085ac9b370ded4bf412f1660f9bf00096bba9", "messageHeadline": "Fixed incorrectly updating original chunk pointer! All is good again.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 33}}, {"node": {"oid": "4b7076471879e842b3b1f6e1ca314586345b9244", "messageHeadline": "Finally cracked it. Writing to, and reading from, arbitrary chunks se\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 36}}, {"node": {"oid": "3e52d573d420d9655c03216aaa156c9dfbed2a9d", "messageHeadline": "Turns out wc adds one to the file size..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "e9067179417b60183002b9523ce2bbcfbdbf7234", "messageHeadline": "Updating file size works in user tests, so it is fuse specific. Maybe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "5adb76f82cb978bb0562d6f032953ea5fd6802a4", "messageHeadline": "In principle writing to any chunk is implemented, but updated file si\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 34}}, {"node": {"oid": "0594ee7cf9f8d73f00fc4c0297be790a06e0ad88", "messageHeadline": "Fixed file write for files < 5MiB. Now write is much faster.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 53}}, {"node": {"oid": "32f835796f283d708d927682ff3c8890ab09fde5", "messageHeadline": "Got rename working generally (it is a move to an arbitrary directory).", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 46, "deletions": 4}}, {"node": {"oid": "5ce1b92016c4fc03996370dc049f7607864b1a36", "messageHeadline": "Got rename working. You need to pass in the filename, not the full ab\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 6}}, {"node": {"oid": "422bfcf705523d2f064ee0579179fb58e3a38f34", "messageHeadline": "Added more parameters to fuse mount, although max_read and max_write \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "1a8143b1dbb12e5c9fc6b787451c160ac5662d55", "messageHeadline": "Got fuse to issue writes of 64KiB rather that 4KiB. This has reduced \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 6}}, {"node": {"oid": "6f5e821b454576d0bb929d1f9384ec2fff67450e", "messageHeadline": "Got first fuse file write and read test working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "ea8e195466c266843c92f12b2c05717961dd789c", "messageHeadline": "Make sure FuseTests use insecure random from beginning!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "f98352f697f65d200eab6952947ee633466f55aa", "messageHeadline": "Attempt to get fuse working in TravisCI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "8950c60755bc0dc3c4d21e34df082ef7744c6c95", "messageHeadline": "Fix port in fuse tests. Add another FUSE doc source", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "796222f51eb891d3af2742e93961c35cb321fd1b", "messageHeadline": "Add FuseTests to TravisCI tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "d2af3e4a98755e8cc7ea2b6a09e8578dc829d83d", "messageHeadline": "Fixed synchronization in FueProcess so it actually terminates. Made F\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 66, "deletions": 26}}, {"node": {"oid": "4bf82b316f4d4462390c86f6cd2376748e16bcd1", "messageHeadline": "Renamed API parameter accordingly", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "800a9144f077bf69c187daf8dfce25e05608d1e0", "messageHeadline": "Fixed FUSE read! You need to pass in the file size, not the size of t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "0d87f7fb1075370b57aa4ce5343d76deea7c77c4", "messageHeadline": "Added runForAWhile method on UserTests to allow logging in via web UI\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "4413c2ec502481314fac2c18c3a4e6b57dfb23b1", "messageHeadline": "More tests. If I log in using the web interface as test01 during a te\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "47cd070ef1f404d050880ed84552647944c77db4", "messageHeadline": "Bugfixes. Now can write into arbitrary position in arbitrary chunk.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 10}}, {"node": {"oid": "133b1d8bfd5c7f7d3dbc25eab6708e00ec5b4093", "messageHeadline": "Writing chunks beyond a file's final chunk is working. Sweet! Also ad\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 5}}, {"node": {"oid": "27e3353f27dcc25c2d432ec4dfe7e63ba6f41608", "messageHeadline": "bug fixes. Writing at a non-zero offset in existing chunk working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 2}}, {"node": {"oid": "2766879288acf1be0c28fa5d69c716d7f7b6660d", "messageHeadline": "better tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 8}}, {"node": {"oid": "b34fe3cb8d0df4853b0c23e30d0b79ae4c403383", "messageHeadline": "more testing writing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "c122cdc8b958531c9e7f8671a65c7548fa64650f", "messageHeadline": "Got rid of IOException in FileTreeNode.getFileProperties (it will hap\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 62}}, {"node": {"oid": "5cf619267dc460a140c8cac0e34df46b8b7d6cc3", "messageHeadline": "write and read working in FUSE!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "de8efb9dd74cd6b4dfdf499656ca032fa64c95e8", "messageHeadline": "Use correct location for File. But now there is a decryption error.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "1158b5ba100ead820fe24ac1b84fd56e5e70f61a", "messageHeadline": "Added setProperies method to FileTreeNode for updating a FileTreeNode\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 48, "deletions": 3}}, {"node": {"oid": "26908962fd18f42ec8423934e2f8469693ad2024", "messageHeadline": "Got the write working...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 4}}, {"node": {"oid": "9caab2c1dad1110041935cbd62ed55050008a6ef", "messageHeadline": "Implemented modifying arbitrary section of file, though not correct yet.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 18}}, {"node": {"oid": "85da03baade3a58755a9b45313b85d35684e30e9", "messageHeadline": "merge fail", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "6da35c298846f2ebbfac0a8827868d6acd6679e7", "messageHeadline": "FUSE WIP, read/write  now working correctly (at least for small files).", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 95, "deletions": 70}}, {"node": {"oid": "4d51c8124746198814c9c681bfcdb83a82582585", "messageHeadline": "Added LocatedChunk and LocatedEncryptedChunk, almost ready for modify\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 30}}, {"node": {"oid": "6241c024635c7d1e68c43a620d580eb003c4ba83", "messageHeadline": "Working towards updating sections of a file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 20}}, {"node": {"oid": "b08749eca7a8c4a6fa135dd4a48a8986702aef0a", "messageHeadline": "Merge branch 'master' into fuse", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 111}}, {"node": {"oid": "fc946ccd7fed08cb3691a72deb992101cd1c8656", "messageHeadline": "Handle retrieving empty chunks (don't try and decrypt anything)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "8ead86be51e9ee1918c96d55896f7eb07124c22d", "messageHeadline": "Fixed fileuploader to encrypt and upload one chunk at a time! Extende\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 12}}, {"node": {"oid": "6dac7f58668a86082ae1536b43c108b458857bc8", "messageHeadline": "Made it tolerate empty files, use insecure random in fuse test,", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 11}}, {"node": {"oid": "10036e71b3b17925ddcd9895fd5b25a500602770", "messageHeadline": "FUSE WIP,", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 87, "deletions": 65}}, {"node": {"oid": "21f38ca865a79746a02c5178e066bc7db36647dd", "messageHeadline": "Sped up UserTests from 14 mins to 4s by using insecure Random during \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 3}}, {"node": {"oid": "59acf6d19ec069567c238ccf0522864bb7fa64bd", "messageHeadline": "Fixed upload from file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 59, "deletions": 4}}, {"node": {"oid": "33da63d064799210fa85fc356e78798eb55c8386", "messageHeadline": "FUSE WIP, can  ls and navigate through mounted FS!", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 137, "deletions": 44}}, {"node": {"oid": "31e0e2029640f32e6719d48de33feba5ab4bb208", "messageHeadline": "FUSE WIP.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 533, "deletions": 2}}, {"node": {"oid": "a10aafc0cf00679f7706c2582b84040cc761837a", "messageHeadline": "Social test accepting friend request working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "77fe860fa798925f8f57c407b8b2cb9deba09a68", "messageHeadline": "Removed makefiles", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 98}}, {"node": {"oid": "331dd5f58af0f77ac0f8c0708993876ae7099c1e", "messageHeadline": "Fixed global root initialization", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "a5a2ca174d40db3cc7e2a284796982c591441513", "messageHeadline": "Removed static File tree root.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "d6ac52fa667498830b4cbc66af722210c7bffa31", "messageHeadline": "corenode parameter fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "1ae40c2f491603169c80e2116e39ea20773b9367", "messageHeadline": "Started on social tests, made corenode port a parameter", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 15}}, {"node": {"oid": "3f732947061f9d1a470c08e709d59920a5f494ba", "messageHeadline": "include ui directory in jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "46d0f6fbbd43d9e0d6ff78ee32c67601130fe2a9", "messageHeadline": "Hopefully travis works now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 5}}, {"node": {"oid": "4ab8e311b2d506ea28f42da3d235616f4fe0554b", "messageHeadline": "trying to get logs out of travis..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "3bdac9bcf28e0bc5f2ccdcb81f27a2d0ad165312", "messageHeadline": "Make travis cat test output logs upon failure", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "2ab6f023d4982c9624adb475b4e8cf9e259f286e", "messageHeadline": "Test now run in ant test, and thus also in Travis CI. SecureRandom ma\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "0e1526e4825414fce29a8643d5444d1edfe65f41", "messageHeadline": "Now UserTests uses a RAM core node, and RAM DHT, so no other processe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "5a3cc4a78fcaa7f776bb0088c837abb6214dda40", "messageHeadline": "added dummy ant test for now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "fb156eec50c5307ed57e483eb3c3269ed3f03ac3", "messageHeadline": "added ant build file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 0}}, {"node": {"oid": "f5172fa653e8741778d1e76463323eec7c48ca93", "messageHeadline": "added travis file", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "8a8388f12df40084d84e43e141ef593f2567c95c", "messageHeadline": "Java signup working! Next stop, FUSE.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 31}}, {"node": {"oid": "0cdbd4ca461edc740d3eab845635670aeffe01f1", "messageHeadline": "Upated LazyInputStreamCombiner to accurately reflect JVM contract in \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 42, "deletions": 6}}, {"node": {"oid": "665b652565630b1360a7ca58cf84fca4bea88512", "messageHeadline": "bugfix in  FileProperties deserialization", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3d242b8eb5bf76f89ec9ababdd962b6ce8551bac", "messageHeadline": "Added  remaining method  to DataSource (delegating to din).", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 17, "deletions": 4}}, {"node": {"oid": "01cf34a392118e5a906098f06845b295e017c09e", "messageHeadline": "Updated IPFS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 13}}, {"node": {"oid": "55e89f63f98910c3c5b99a885ea104007dcc11ca", "messageHeadline": "Updated IPFS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "40cbd18e87f60c20a3763e178d0527ea9ab92ec8", "messageHeadline": "Plugged potential mem. leak in FileUploader.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 12, "deletions": 7}}, {"node": {"oid": "936ef77aedf6dd084fde93b79971eddd7cd7c27c", "messageHeadline": "Progress on Java signup", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 27}}, {"node": {"oid": "605cd01859448e769df5b11ac80ee19b12eb7dcc", "messageHeadline": "Bugfixes in FileUploader.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 101, "deletions": 36}}, {"node": {"oid": "3d72e85e7552c78c7abcc0ea09fbaeb99eded196", "messageHeadline": "Made test initializer static", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "69067d6ade2c6c3083fde605e9fd20afd0802de2", "messageHeadline": "Successfully parsing filesystem created in JS in Java!!!!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 9}}, {"node": {"oid": "e2fc13250e2350e9c56551ca2017b18661993e12", "messageHeadline": "Successfully getting entry points in Java", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 7}}, {"node": {"oid": "cc29d8cfb19cd978fed795eee78d7afb48b20376", "messageHeadline": "Fixed deserialization for User", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 17}}, {"node": {"oid": "73ca9e05527977dce89c972665ffdc61da54b35f", "messageHeadline": "Fixed parameters for Scrypt. Now we can generate the same user keys i\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 3}}, {"node": {"oid": "5e5ec145eb3bd18874af3336a88e5cfb5b43fa77", "messageHeadline": "Test to ensure keys generated in Java using Scrypt are same as from JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 2}}, {"node": {"oid": "3bb9576a8706bae298e9f7ae3613cd6618f1478b", "messageHeadline": "Found it. web UI working again!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "9d47dcece23c882b262b32288ae8b9891b3e0c8c", "messageHeadline": "Better logging, but still not clear.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 20}}, {"node": {"oid": "00cd2f323764fff99930bbea5cc69d7fee44f197", "messageHeadline": "Almost working again through web ui. Somehow can't find \"shared\" folder", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 12}}, {"node": {"oid": "4d158328da80139408abbd5358635528182269cb", "messageHeadline": "Btree handlers correctly registered", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 6}}, {"node": {"oid": "b1ad419efb5c7562f3dfa416028dcc2bdd817989", "messageHeadline": "Need to get web ui working again!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 38}}, {"node": {"oid": "9be487813b7d3768809de2f8adcb0935c05098bf", "messageHeadline": "Time for tests.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 5}}, {"node": {"oid": "66586c6760645d9a8fbab0b0e3870eb928a51ffa", "messageHeadline": "Compiling!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 3}}, {"node": {"oid": "c4daeeb23ca0d0e3aac91177930b71e8eb0c16c4", "messageHeadline": "Just need to clarify DHTClient versus content addressed storage in Us\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "03df8daac2e0de420e9b543d40f26ae206f17207", "messageHeadline": "t minus 2 errors...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 185, "deletions": 53}}, {"node": {"oid": "9b0ef15350f8b8f67d3626264d8f1908cab6a72b", "messageHeadline": "t minus 6 errors...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 13}}, {"node": {"oid": "4f02c5bb640740d3e354b3717081b17197b241e9", "messageHeadline": "Just UserContext left...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 11}}, {"node": {"oid": "3cb795287b1d011f9176d4d5425c872fe08bfd5a", "messageHeadline": "Down to 15 errors", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 92, "deletions": 58}}, {"node": {"oid": "20933f2f82ac4a3c196f36f931cde9d707360786", "messageHeadline": "Btree, CoreNode, ContentAddressedStorage  et al are now type-safe.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 389, "deletions": 222}}, {"node": {"oid": "ca8cc8bf0b8c9deb2f25e12e3c3bcb248edd93ff", "messageHeadline": "more compiling", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 11}}, {"node": {"oid": "832af87659de87a663ad617aa5c072f5101968f2", "messageHeadline": "Updated return types of  the Btree  interface  to byte[]", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 10}}, {"node": {"oid": "2f0c04b6ed995a5172bb3e82da5f424e1c71ec00", "messageHeadline": "Updated BtreeHandler  (and Btree in JS-land) to no longer accept send\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 172, "deletions": 55}}, {"node": {"oid": "eea8b6b7f9ab95c4348915949c6d81c3e981cf12", "messageHeadline": "closer again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 40}}, {"node": {"oid": "7dad6e399fe35c14c76244904cd52baa36e65caf", "messageHeadline": "closer again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 53}}, {"node": {"oid": "1873cbc2b4f317912a10d5d7ec0c66bc9aa482eb", "messageHeadline": "more progress, need to create BTree interface", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 174, "deletions": 174}}, {"node": {"oid": "4b484c8e3a594b7f4b2c49ef58b8b2f34e30bdc2", "messageHeadline": "some more backporting, still not close to compiling", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 28}}, {"node": {"oid": "01b01a59f564200f6784a01cd0b316cc6f579400", "messageHeadline": "much closer to compiling", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 105, "deletions": 116}}, {"node": {"oid": "52fd8ae07c0ebb99d22ab4c84b0b0dffcda4b83b", "messageHeadline": "More rewriting.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 95, "deletions": 128}}, {"node": {"oid": "c44bfb38a927f3bf4a86af5c000ced823d87c65f", "messageHeadline": "Much more progress towards backport compilation. rewrote most of it.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 420, "deletions": 196}}, {"node": {"oid": "f54b28b2212ad9f5eac53c4d93a6ccbb52d5276c", "messageHeadline": "I think SocialState is the only class not yet created in the backport", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 328, "deletions": 34}}, {"node": {"oid": "20380122f08172e946c2dfb099e140b1b4df5b03", "messageHeadline": "Much further through JS backport to Java", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 324, "deletions": 50}}, {"node": {"oid": "5951697d7db23220e551a87b4fd830f61fafb27e", "messageHeadline": "Part way though Java backport. Chris, could you retranslate FilePrope\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 968, "deletions": 43}}, {"node": {"oid": "dccd4bc42c07ebfc449709b5f3b6a6d4b7736236", "messageHeadline": "WIP Added more of the implementation of RetrievedFilePointer and File\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 67, "deletions": 5}}, {"node": {"oid": "e53a7733a1a1df08f37324a06e571f9dd930c996", "messageHeadline": "Refactored ReadableFilePointer, RetrievedFilePointer and SymmetricLoc\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 154, "deletions": 128}}, {"node": {"oid": "09e49903ef099d1db28688319ba75e2b2cf0c888", "messageHeadline": "Added ReadabkeFilePointer impl. including (de) serialization.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 87, "deletions": 0}}, {"node": {"oid": "e2110d6a37b726a354a32c79c1a2e0304529f142", "messageHeadline": "Updated SymmetricLocationLink impl. including (de) serialization.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 63, "deletions": 4}}, {"node": {"oid": "35931115e5a71a6b8d2fdc404c7b009be4a470d4", "messageHeadline": "Updated Location impl. including (de) serialization.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 60, "deletions": 0}}, {"node": {"oid": "f19eabd87819ba8a161bb08b95321f3d667cde16", "messageHeadline": "Implemented key chain methods necessary to change password", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 3}}, {"node": {"oid": "36f0fcb2a42471e489c7e79b38ed2e7e2ab44858", "messageHeadline": "Fixed backwards compatibility.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 7}}, {"node": {"oid": "7517f0591c191e99949121059c477bb40eacacca", "messageHeadline": "Made erasure parameters variable on a chunk by chunk basis.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 18}}, {"node": {"oid": "589cfeda4969b178099ea746191102e1fa8a2728", "messageHeadline": "indentation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1378, "deletions": 1383}}, {"node": {"oid": "66562af8d9ed8368fdcb2d5886ab7c333bda4ff1", "messageHeadline": "Fixed hiding the sign-up form. Seems retarded that I have to do it th\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "42e9a48ccec96ee5829d34b415e779e436a6065c", "messageHeadline": "Made the signup give the user one attempt at creating a good password\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 12}}, {"node": {"oid": "9dbf6de3d33d14e8c356ab03dd9bd1c36ad635ed", "messageHeadline": "Warning on the demo server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "936d56877080a62126610a460b41ce2c9971adb9", "messageHeadline": "added extra warning msg for short passwords.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 12, "deletions": 12}}, {"node": {"oid": "f7e490f77e4d153fad5bcdfb63e56d583e67f0be", "messageHeadline": "Find required online % for successful erasure success rate", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 4}}, {"node": {"oid": "30cea9fb0ed03c9719aac891a5579be85735eb65", "messageHeadline": "Fun with binomials. (Erasure failure probability calculation)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 69, "deletions": 14}}, {"node": {"oid": "5f471398ed6b82cd940c39613defe42630fcb4c1", "messageHeadline": "Reinstated erasure code tests for Java code.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 0}}, {"node": {"oid": "836f2f5a4a630add3210d5a0b969b3caeaa3e9f6", "messageHeadline": "Added new pinning corenode proxy. Fixed MerkleBtree so that the entir\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 142, "deletions": 8}}, {"node": {"oid": "d1be8e381cb4662d092b0015e8949a51c920e436", "messageHeadline": "Added  uniqueness constraint on username -> publickey in chains table.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "885c92d75704b63937137ecc3dbad886d98c8381", "messageHeadline": "Simplified username claims. 1 less table in corenode.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 83, "deletions": 96}}, {"node": {"oid": "9ee7e1f3f175704c2363128f7dc8a15e50a84cca", "messageHeadline": "text now green if item is shared", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 33, "deletions": 16}}, {"node": {"oid": "f10f422c6699c8876e330d234909d0a2e8a29d96", "messageHeadline": "Removed unused JS functions", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 141}}, {"node": {"oid": "42a7dd9fcb88308d366032b5b882d574b8441633", "messageHeadline": "Extra test for updating username claim expiry", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "08cb39d0f574568aaccc7274725261333d8e4a41", "messageHeadline": "Hiding navbar buttons for public links", "author": {"name": "Paulo Dias", "email": "prbdias@gmail.com", "user": {"login": "prbdias"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "15a4c049552e0ed05909dafe9dc8933aa7076cc2", "messageHeadline": "New public key chain structure seems to be fully functional!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 26}}, {"node": {"oid": "f41ca8bd2802011e39d937861cd2160a90444fe7", "messageHeadline": "UserPublicKeyLink ported to JS, now to actually use it!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 66, "deletions": 0}}, {"node": {"oid": "014554a3ee5d373c6d2db9df2306e7fef9d03f1b", "messageHeadline": "Extra test for claiming an already taken username", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "bb0296c447a0d0f7acd63b78d671c4a7c3268272", "messageHeadline": "Chain extension working server side!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 1}}, {"node": {"oid": "0506fd6535644d0c9ff6766927b146c3ff1c8e88", "messageHeadline": "Part way through key chain implementation. Made tests use insecureRan\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 4}}, {"node": {"oid": "430919a8c517d7bdbf741908ba12ea729b627449", "messageHeadline": "Part way through key chain implementation. Changing key expiry works.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ce51d620e25b35272a141b2b537962f77ecd5e4d", "messageHeadline": "Part way through key chain implementation.Claiming of username works", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 4}}, {"node": {"oid": "dbd7e4b1fc67ac1d9d3e106df71bf5ca1027ef38", "messageHeadline": "Part way through key chain implementation. UserPublicKeyLink coreNode\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 244, "deletions": 260}}, {"node": {"oid": "8b629458b471925cc1385b973aad0934f6860571", "messageHeadline": "Just got the first successful request over TLS over Tor working!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "b90eed6cebacb8d3ff0ba6cee51a97a746349b84", "messageHeadline": "Better UserPublicKeyLink structure, switched Java TweetNaCl to Secure\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 38}}, {"node": {"oid": "562b8dfd76ad07ac1b43629fa7659bd992d2f2f5", "messageHeadline": "make path reddish if path is read-only", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "6e9bf3f727a3025e684b1ee949afe04cf3e74c78", "messageHeadline": "Drag and drop cursor change", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "4d18eae2869c60eb02b9b586c13d1796abd9b55c", "messageHeadline": "Notification icon shown if pending follow request is outstanding", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 20, "deletions": 2}}, {"node": {"oid": "5a87388a8ad533cec6966d3e90dc7211ab6958cf", "messageHeadline": "Implemented UserPublicKeyLink and cleaned up serialization of public \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 188, "deletions": 39}}, {"node": {"oid": "e5b04ed8de2c65da9612ec9e41540030ba98ff8d", "messageHeadline": "Remove already shared with names from share with... list.", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "decdeb13aae37c43fe669b6c3ba5daa955736ae2", "messageHeadline": "Tor test seems to run now, at least for http sites.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "080bd4403f0373a3e7a594f66472099e4fa80224", "messageHeadline": "We have CAS on metadata blob updates, which prevents replay attacks, \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 22}}, {"node": {"oid": "8e253abdff1133d1bcadb8f7b6d87da4d755c036", "messageHeadline": "Added tor test, though connection doesn't work yet", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 0}}, {"node": {"oid": "4da0c1eb405e46975e5796a533d671f32d2ff3f2", "messageHeadline": "Added logo to Readme", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "fbf94e5f4f05b9837a8ffc70d0a334bf5f955449", "messageHeadline": "Fixed user sign up process and error messages", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 7}}, {"node": {"oid": "45619222d0b3fa0c3bcb65a2fe4eebc2a28a9f3b", "messageHeadline": "Hide popup after selecting shared area", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "47e9b028632d7e8132ef3beb893774611338f557", "messageHeadline": "User registration validation bug fix", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "3d44bcfe030d0b80f3ff606dea3b26a8a98420d4", "messageHeadline": "Drag from shared folder to home now implemented", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "7eabfd532661c591f231af5f180983004fd6833d", "messageHeadline": "Compiling again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 17}}, {"node": {"oid": "d2b7304c3f2e8b4fc62d87864da0a7d863d45c64", "messageHeadline": "UI: react  duplicate-id fix.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "8bde21a51034aa74c13fa78c01bf808c74eb9599", "messageHeadline": "bugfix to stop spurious event  listeners from attaching to DOM nodes \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 28, "deletions": 0}}, {"node": {"oid": "0ad8afe0571e9d5ee18afdd5aebd22a012ee4838", "messageHeadline": "Update Java SymmetricKey to support MultiKey expansion (same as JS)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 46}}, {"node": {"oid": "9577eb752e2f4d2534d760c25cc1f00708ef7b33", "messageHeadline": "Updated path for SSL certificate src files", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "0d58bd04c6596dd75cfd388b5c6ecb4edfa33142", "messageHeadline": "public links working again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "887809934e813a55a8902a374abc7ce3b6f9e6ad", "messageHeadline": "Removed dependency on being able to predict an object hash client sid\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 8}}, {"node": {"oid": "0866b9327af4b70376827107194c47db1b2eeefd", "messageHeadline": "follow request reciprocation working again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 7}}, {"node": {"oid": "1edcfdf9d53526db1523bad35f8381b1c848cb0a", "messageHeadline": "WIP: filesystem API for Fragments, Chunks and Locations.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 66, "deletions": 0}}, {"node": {"oid": "2454a5a214a37df3b45f3fe22884a2e8214d6881", "messageHeadline": "Added FileProperties.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 53, "deletions": 0}}, {"node": {"oid": "db4dcb28793d367fecc0860376b05903104a4fa2", "messageHeadline": "more serialization fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "364116b029ab02c7bbdd6989742293dbe26a80ea", "messageHeadline": "receiving follow requests working again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 9}}, {"node": {"oid": "62393db28ef96feebdb0d804ac43c1d5144bcf98", "messageHeadline": "Updated User generation to use Scrypt and TWeetNacl to generate signi\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 28, "deletions": 24}}, {"node": {"oid": "89a5839bb270127d07ec1a58e31b1046dba4b981", "messageHeadline": "serialization fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 8}}, {"node": {"oid": "4593ddd7f5bb36f038fe22c2537f93d25df4316f", "messageHeadline": "Fixed UserUtil package declaration", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cf1c050e04243f9ecbec60e084a93f72e601a063", "messageHeadline": "Added UserContext (symmetric w/ JS).", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 96, "deletions": 0}}, {"node": {"oid": "78adbce39c22b80dc20854179c013167abb6bfa8", "messageHeadline": "Removed redundant user package classes.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 87, "deletions": 1364}}, {"node": {"oid": "a03b42d8586598799b1c883cbc8e15a4ff344f6c", "messageHeadline": "Multikey appears to be working, but much more testing to do.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 31}}, {"node": {"oid": "6770c81f86077a0656cc9a31445f2a837d1db723", "messageHeadline": "most of JS multikey implemented, but not bugfree yet", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 219, "deletions": 98}}, {"node": {"oid": "a3bc521ca75ff99e8f298dc5282a21cf7cb28a12", "messageHeadline": "Done server side of multikey, JS side pending", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 517, "deletions": 439}}, {"node": {"oid": "fae54b7ed74a710cb9d5123232228f46ebbdaf27", "messageHeadline": "bye bye webdav jars", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "07de8ca5e42618b39cdbe2d7c126e91a4f11a401", "messageHeadline": "more clean up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 132}}, {"node": {"oid": "63e15178dcb6a22025c9d33ae76f2923a01b715e", "messageHeadline": "move to more conventional directory structure", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 163, "deletions": 23}}, {"node": {"oid": "bd2f91857e16cfb0b9144797105c0415c9a20593", "messageHeadline": "more refactor and clean up to more sensible names", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 119}}, {"node": {"oid": "1255ad6102135b361189a5b213c3e31c8f278287", "messageHeadline": "More cleanup (fully committed to IPFS now)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 814}}, {"node": {"oid": "6c294df65585888692185ca65ce6aa95290c54f7", "messageHeadline": "Move hash out of UserPublicKey", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 34}}, {"node": {"oid": "b5292151775688032930d46e7b0eb1fd45657b76", "messageHeadline": "clean up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 197}}, {"node": {"oid": "b6da16c44cbd315cd8c2a6774bcd3ba18618ecbb", "messageHeadline": "similarly for User", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 6}}, {"node": {"oid": "ab6096e6fd20b5960c3ec5ca3f2a2adf422a7919", "messageHeadline": "start to encapsulate UserPublicKey in preparation for KeyPair abstrac\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 14}}, {"node": {"oid": "063eb12f8261c4f4992973bac36722d2391d0c19", "messageHeadline": "Simplify dht http api", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "ea9e3bb7cbdcf77e1b808e107dd9be0ea2d80ba6", "messageHeadline": "Now file metadata blobs have IPFS links to their fragments.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 6}}, {"node": {"oid": "33d333af546f65b50510e91c6807a08fd6999d66", "messageHeadline": "Don't use BouncyCastle for TLS server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "063cb9944a7e54f57508ce4f279b4cd907af5d97", "messageHeadline": "And the jars", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "6361bb086c0a247905547f5459b5d8f9ce891af2", "messageHeadline": "Updated bouncy castle, but still can't authenticate BC provider when \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "9e54d24a3d9b8d0a55c374d315100a9b1d2e8f51", "messageHeadline": "Fixed inks in btree - they have to have non-empty names.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "e8aefc8b1b1e038d1e5d90d7115f18d3eabf53bb", "messageHeadline": "Now using fully linked IPFS objects for btree and blobs. Requires IPF\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 11}}, {"node": {"oid": "c0804b4c8ff7ac75d43707336227162957ef5b8e", "messageHeadline": "switch to minified, optimised tweetnacl.js, though sadly only ~10% fa\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "95629ddf434a1b4e29f5d9fe7c59ca059eaf41af", "messageHeadline": "retain thumbnails after renaming", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4e5f85a47830bca17517723d343d754813f4e9b2", "messageHeadline": "handle GIF thumbnails", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "7e1aec57e9d5807777847f85d77c21211693ed6d", "messageHeadline": "add BMP thumbnails", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "a20ae9224971d683397dda7de5f3af7631743faf", "messageHeadline": "Don't rely on filenames for thumbnails, use actual file contents. :-)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 15}}, {"node": {"oid": "fef34f2b79f880c249ad414c56c2392aa79f301e", "messageHeadline": "Thumbnails appear to be working correctly!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 5}}, {"node": {"oid": "a178577a2ad10be4d60d44baf113eb85ddee1ef0", "messageHeadline": "Thumbnail display working, but now need to crop the thumbnails...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "d20c881eaacdede190326ed92ba20932ce25bc5a", "messageHeadline": "Storing thumbnails into FileProperties now when jpg or png are upload\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 6}}, {"node": {"oid": "161d6d0ebad23a09e5bdc7fb78642d8622fb3f75", "messageHeadline": "Add optional thumbnail to FileProperties", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 7}}, {"node": {"oid": "3e79d75ac9ddec6cd217e2730018d173342befbc", "messageHeadline": "warn if your password is in the 10,000 most common passwords.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 1}}, {"node": {"oid": "10a0934071e5370fbd4f34d5c5e29a823bd3f5ec", "messageHeadline": "Added jsonified common password list.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "1169792fa9c09b293407599395decc075d813844", "messageHeadline": "I love JS type safety. Rejecting friend requests to non existant user\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "30b4ad37cfbfca9a39314724fb2ca8487c7e5453", "messageHeadline": "Reject usernames with whitespace, and tell the user", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 10}}, {"node": {"oid": "a089127d7790b2b96c85cdf3e71e46100c583f3d", "messageHeadline": "Merkle-btree will automatically use merkle links once dht switches fr\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 105, "deletions": 35}}, {"node": {"oid": "b1d0974ac56ca056aaa76226e554e09dadc6d755", "messageHeadline": "Massive cleanup. Directory servers are no more. Localhost operation n\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 141, "deletions": 2369}}, {"node": {"oid": "ce18fee4aaa02a95d7f72dfa5547ce2865334e0e", "messageHeadline": "Gave SymmetricKey an explicit type, and corresponding serialize and d\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 25}}, {"node": {"oid": "b2ea48f12c4c824c78a66498a9f49245fa50f231", "messageHeadline": "Cleaned up server side code of corenode after static data removal.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 153}}, {"node": {"oid": "37d9309da95240fb2c1c4a04a5facf6f7648a5a3", "messageHeadline": "Moved each user's static data to the DHT as well.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 32}}, {"node": {"oid": "3e8ce7f3cca4f471ce759da99eaba328bc5cd893", "messageHeadline": "Implemented unfollow and remove follower. Also added super handy getD\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 6}}, {"node": {"oid": "25e01b05693ed4307fb38de52b6db937f60743ee", "messageHeadline": "Fixed sense of unfollow and removeFollower", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "f6fe7200d83c05ba10303854ba0074905068d978", "messageHeadline": "IPFS DHT ready for when they fix go-ipfs issue 2070", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 2}}, {"node": {"oid": "f4d7031a0faab096a32ce6b1e84758689fb69cc2", "messageHeadline": "Fix to follow request rejection", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "c9233239b334da025aadfccc82541960c7221e0d", "messageHeadline": "Follow request rejection is fully functional and working now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 9}}, {"node": {"oid": "1c4da6989ff189e859e512be9dad7eb645a38ad0", "messageHeadline": "Delete unused NAT stuff", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 51512}}, {"node": {"oid": "c3af9cdeede23663df9d7dd35b6f9d02caaee24d", "messageHeadline": "I love parse time type safety", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b5df20808db0893c0c8e7cea75f4f4747ebf0d64", "messageHeadline": "Fixed another instance of same bug", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7905cf326119244968330744f791459fafd29662", "messageHeadline": "Fixed subtle bug with BTree which cause random BTree corruption. Ever\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 15}}, {"node": {"oid": "d87e88ab8957cd1cf8c14cce56d52cc7a13a4d75", "messageHeadline": "more JS retardation fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 14}}, {"node": {"oid": "b0bad53f436a7cebceafe88f7d31034f573bb599", "messageHeadline": "Problem solved. Fucking hidden ghost variable in Javascript", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 11}}, {"node": {"oid": "67a8f36e1a907487076519ea9f929b42f48964c7", "messageHeadline": "internal drag and drop half working again, but still corrupts btree", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 19}}, {"node": {"oid": "9790d06da9ad5eb9cd3b9adba9ac79b476a57c03", "messageHeadline": "Updated tour", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ebdab5c943b623dd3c0d3844429f468cdcbd7d48", "messageHeadline": "Update README.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 24}}, {"node": {"oid": "c05f16ef9f70e13593fbe4b487bffda3854a2c09", "messageHeadline": "fixed downloading multichunk files.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 16}}, {"node": {"oid": "b9f63e9413d935cfd9129f621c9046a41118c57a", "messageHeadline": "UI: update grid/list view file/folder onClick-listeners to onDoubleCl\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "5c77644a0e4019b1480b1761f899341e4dd411a9", "messageHeadline": "UI: Added stubs for UserContext.unfollow and UserContext.removeFollow\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 31, "deletions": 10}}, {"node": {"oid": "a1e856edf405ec1a4dce20e4156e11c9ba1c5715", "messageHeadline": "UI: updated navbar to display publicly shared directories correctly", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 22, "deletions": 18}}, {"node": {"oid": "ba83d84cdb772e50ffb2fd8b6097aee16047d4e6", "messageHeadline": "UI: implemented public sharing of  directories.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 67, "deletions": 49}}, {"node": {"oid": "f528d80c1b7fb35bafed9cdd6806b48e4648d864", "messageHeadline": "UI: updated shared-with list to be human-sorted.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "89fe61717e50ba1a6fa5c11292d90b34df63da3f", "messageHeadline": "UI: updated  followers/following tables to be human-sorted.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "bd73170e4f1b083faeea6002d629063b4f8b1bf4", "messageHeadline": "UI: abstracted string sort method humanSort to sort ignoring case, fa\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "4a7fd948d7befea5bf649f0188b9e64295186573", "messageHeadline": "UI: updated share-with user-list to be displayed lexographically sorted.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "7c5f9642d73c48daf2748448123a281cba1320f8", "messageHeadline": "We are now using IPFS! Hooray!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 17}}, {"node": {"oid": "806e71f0c39b4d8de78a9833bb7520796d5b9c47", "messageHeadline": "Filename uniqueness sorted, and disallowing /'s", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 3}}, {"node": {"oid": "d64e2b63f92365b480bd60133a3c2997d3dd4993", "messageHeadline": "Delete working again.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 4}}, {"node": {"oid": "35fe8f88e4af79c51cc3c1e440d984b21854934a", "messageHeadline": "Fixed most of filename uniqueness", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 6}}, {"node": {"oid": "076a9a900ac928254f2db3887914e65241f14bda", "messageHeadline": "Fixed multiple user creation (DHT puts of repeated content would fail)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "fd13c81f307826917cae8ba95eb5b4a1560c660d", "messageHeadline": "Good times  moving from hash to  multihash. Christ.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 15, "deletions": 8}}, {"node": {"oid": "3675eb38ebdfac4f1408442215d67870a2ea9322", "messageHeadline": "Now using multihash... ready for IPFS!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "6ce574fdc0bf307d09449e86b4d49d37d1c584a8", "messageHeadline": "Fixed it! Fully functional again!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 10}}, {"node": {"oid": "13cd15dc8ac9af137b5bb9a3fb9d1715de80d8fe", "messageHeadline": "still no clue.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "59b38076465b99a5fadff450f70d1856fbf6a9b9", "messageHeadline": "More logging, still no shared folder..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "b0a143f4038e79eecbfb31b249f7bbca16c36849", "messageHeadline": "Fixed Btree unwrapping. Now sign up works, but sign in can't find sha\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 7}}, {"node": {"oid": "28101772ba0ca371503c72fdb45c7da68549b444", "messageHeadline": "Huge refactor, pulling in MerkleBTree, moving metadata blobs to the D\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 853, "deletions": 377}}, {"node": {"oid": "ac515d728eed8c9db241bf24ff4a922557a74a16", "messageHeadline": "copy to home. now takes into account owner (copy or cut to clipboard)", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 5}}, {"node": {"oid": "e8dec695ba9bc8cf64979373d93322dcd238063e", "messageHeadline": "Fix logging result of email registration", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ab13fc6aee1777acc2849b6612563d79022f1b4d", "messageHeadline": "try again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "239f9cf144ccd90c17f5f53d23615c3a7d68f313", "messageHeadline": "handle null header key", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "302780b019bd183baae96927d5196ce65bdff990", "messageHeadline": "debug", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "be75786410b80096fcedd311b2934bf90296a1c3", "messageHeadline": "proxy bug fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 7}}, {"node": {"oid": "bf7aebae2559b5cee4b72e5bde1330f8c07f60d6", "messageHeadline": "proxy bug fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "2c506633ac2c0313df43621dd7ff92982bfb7215", "messageHeadline": "proxy response code and headers as well (for activation redirect)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 4}}, {"node": {"oid": "48cf76314c27d671867c80ec7d49ee8242d8b90b", "messageHeadline": "activation email text", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "09bf7e0ef6ebaeecd6b7bdbc4b4ad06d7e75bffa", "messageHeadline": "inverse proxy returns response", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "5d9321f5df9c7e7c305483ceefd7e3673f36c807", "messageHeadline": "added redirect on signup activation.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0d9a33574d41231d8ecf8533dabf472e1458eb32", "messageHeadline": "Added activation url", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "98229a0c0569dcb270a3c8a9f83d74ac751743d3", "messageHeadline": "InverseProxy fixes.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 12}}, {"node": {"oid": "5b56a1fbcff990bbb2c24939ba5a4f5a421cc92a", "messageHeadline": "Fixed typo in email-registration handler", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "513654d7af0eda8b63a0859eb43dec3276aaeba4", "messageHeadline": "implemented email registration in UI.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "910ccda1c179fa056fee4731ec1472d6c04272d9", "messageHeadline": "Fix logout button", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "e63b833792882c3f24af7c71a53a4c724a9f4bcd", "messageHeadline": "inverse proxy for signup handling of email", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 0}}, {"node": {"oid": "ac24e3b1544754e1e4cc9388e9b4cda6e4aff1bc", "messageHeadline": "Added super simple Flask service to receive and validate user email a\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 139, "deletions": 0}}, {"node": {"oid": "9b34ea5b31938f26a9c6bb2cf9bb4b0d2905fcf5", "messageHeadline": "Drag and drop onto home button", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 20, "deletions": 2}}, {"node": {"oid": "7235a67b63954232238540cf1fb27ce90eccf205", "messageHeadline": "drag and drop onto directory path bar", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 18, "deletions": 1}}, {"node": {"oid": "4481afb5f9752e354d17a63e5f82e3d1b63b7f0f", "messageHeadline": "Bug fix for firefox drag and drop in app", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "495edf44c4ecf7b75b6467741a3ba6acdf6bff09", "messageHeadline": "add in web page drag and drop", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 48, "deletions": 9}}, {"node": {"oid": "bf092ac649f01d00dde366105409c324b5803a81", "messageHeadline": "add browser capability test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "1fdecf35ac0b6db4672e5b8f65f832984406bab8", "messageHeadline": "sort follower list", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "efc3b32603b4370f5f473e80cf7a4bbce172d5bc", "messageHeadline": "changed public links to base58 rather than hex, now 25% shorter. Will\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 80, "deletions": 5}}, {"node": {"oid": "93083db7d4d6f976c753322a1bcafea677516707", "messageHeadline": "fixed context menu cursor", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a33752defb739adf53b80ee76eabed3e478e6284", "messageHeadline": "made accepted follow requests appear immediately", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "2432074a278eb76821b09dac16f6e4898cd5504a", "messageHeadline": "fixed regression, and enabled copying from others space to ours", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 5}}, {"node": {"oid": "b1367e393220fd645205d132444818f9338fb7f2", "messageHeadline": "Made login and signup atomic in the UI. Fixed signup issue. Added spa\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 106, "deletions": 101}}, {"node": {"oid": "c78c5c76e382238fa0202ff58f924e64da94f06f", "messageHeadline": "fixed dht puts", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4f2e31beab0981bf5f8ad2ec275d55e612c27c7e", "messageHeadline": "UI: removed folder metadata-size sting in list-view.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "9100d8f393fe0fcaaef4f9dc134361a9ec0c484d", "messageHeadline": "UI: Added type-ahead JS dep. Implementation of \"suggest usernames\" wh\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1124, "deletions": 1008}}, {"node": {"oid": "15133fb71ec9e62d01a42479a0a2441dd8b86000", "messageHeadline": "updated userContext method name getAllUserNames -> fetchUsernames", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "8696ed043302b4fc8ac743531ebce3dcf698e333", "messageHeadline": "Removed preemptive calculation of hashes, now the values returned by \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 40}}, {"node": {"oid": "b0527e4c114a15018c2eea4581c09ac3358376c1", "messageHeadline": "Limit user set traversals to 1/minute", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 1}}, {"node": {"oid": "f6bdd10e2177cce357b035701c5648067b40a53f", "messageHeadline": "user context now populated with all usernames at login (shouldn't be \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 5}}, {"node": {"oid": "f59a737138e8603ec008f41a39cea49801714945", "messageHeadline": "Bugfix in serialization of usernames.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "4693ec4c435e16068f2c57dd8880c8ef4ba802c9", "messageHeadline": "bug fixes, and JS getAllUsernames", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 3}}, {"node": {"oid": "ffbaa4c0b349aa124303cffced1f76053c6bb9ee", "messageHeadline": "UI: wrap super long file-names onto multiple lines.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "883a965dc799da636d73a507ff93841ee1edd84a", "messageHeadline": "UI: added mouse-pointer to clickable  rows in sharing menus.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "5de46e0d37528e899de56d31ff07748e014a3630", "messageHeadline": "new corenode api for getting all usernames", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 81, "deletions": 0}}, {"node": {"oid": "b7c78e2f969a1205eb093f0fa6cd2cdd8130b227", "messageHeadline": "Updated IPFS jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "99b2b41393bfe92207906529d242110c8e375d62", "messageHeadline": "wording", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "efae40258fa5a1c37bdd6ff95b89a90986513e54", "messageHeadline": "fix duplicate appending to static data", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 1}}, {"node": {"oid": "73e2ea77595a6c2dc03c411d51b73f701ecf7d17", "messageHeadline": "fixed home race condition", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "7ffacf6069b73ba0af560167a7eacc4098062a26", "messageHeadline": "reinstate race fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "47b62ab3cc0fbf9ce52b7aa6435f622e08085a6b", "messageHeadline": "equals for file tree node", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 0}}, {"node": {"oid": "f9d216c52c402b1bef7e790fa7e77533577579e9", "messageHeadline": "Revert \"UI: added guard against race condition when  traversing direc\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "3a02b054792f48198f4ba0b9ce415abf16f1ec7b", "messageHeadline": "UI: added guard against race condition when  traversing directories.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "f40d6b572c62350a7c45bc804bbdce6ca51f83eb", "messageHeadline": "fix formatting", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 2}}, {"node": {"oid": "52972376922ce8d7f4ee30f6fbbb5ec0209423f2", "messageHeadline": "UI: added 'shared with you' message to empty shared  directories.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "4113d135f7424808793bcfb2918533831f86c803", "messageHeadline": "UI: added drag-and-drop here message for empty directories.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 23, "deletions": 0}}, {"node": {"oid": "925305b3c491bb87217207bae8675d1304380174", "messageHeadline": "UI: bugfix repeatable log  in/out", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "0fbd774990a3db031a4ec185e8e69d94b7bab757", "messageHeadline": "fix follow message", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "81035cb960c8a9f55488f77868f8bd262fa1f174", "messageHeadline": "UI: Added link to homepage in unidentified-user modal.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "b6d26ab47e3e31dace30a6fb1a159b1fba3bd4f8", "messageHeadline": "spelling fixes", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 27, "deletions": 31}}, {"node": {"oid": "8368b3901ee4009e3570bb4c28a1b18dabfc8b73", "messageHeadline": "added extra pointer in tour", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "2bb9583c1b94b2b04d123014fde19395e124994d", "messageHeadline": "Cool new upload glyph :-)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "f5974a9a160e7a39dc4043a6cf22edbbeb63ba74", "messageHeadline": "UI: stop  signup-form from showing on context  click.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "1a81a2f86c44c279b5cc4767278f377088a5c0b7", "messageHeadline": "public link download fixed. :-)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d23a9ebee2b2ce17bda55a782021a9b8a2bca9b5", "messageHeadline": "fix errant tour pointer after window resize", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "0d179642595f55031d20c9fb0551b7270d568829", "messageHeadline": "more tour steps", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "05bc51729be17153c964087364e588d21eea7056", "messageHeadline": "tour fully functional now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "0ec2d1771f82a8ef1a8ee71cbb669d5ad8475f43", "messageHeadline": "tour working except for switch view button, bizarrely", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 8}}, {"node": {"oid": "20e91a7bdc51b3fab4c5bbc0bff2cf646b8e5284", "messageHeadline": "simpler tour, but it still points at the wrong element", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 7}}, {"node": {"oid": "384fc925479f2dc284f7cd654be7c23b4f50c608", "messageHeadline": "relabelling", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "71db5618084436e82e97cf1bdae504c8bad6b680", "messageHeadline": "relabelling", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "753dd4e1920f7d086646ca3cc3773cc896b1820e", "messageHeadline": "more tour content", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "943620f6eb8c1ae83eae36d74a753f343949390a", "messageHeadline": "tour kinda working, modulo pointing to the wrong elements", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "c13282a4ebb900399712f23450732d7950765903", "messageHeadline": "tour buttons (that do nothing)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 3}}, {"node": {"oid": "79923df8182b1226288b7fb80580f1964a3efa19", "messageHeadline": "basic tour functionality now working. Try showTour(1)..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 458, "deletions": 14}}, {"node": {"oid": "b0318298ca5b55c8f56b3e9e5710f193e160429c", "messageHeadline": "missing tour files", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 0}}, {"node": {"oid": "849c808a971a3ffdf49b6b762f6c6040ae3d3bc1", "messageHeadline": "beginnings of tour", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "64f3496965541c66a46b6ddb965d1a5d40c446b6", "messageHeadline": "Fix demo", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "05aca2f8f7cf9de8a99e2a8ba76e8fe2998a066d", "messageHeadline": "progressbar style change", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 8, "deletions": 9}}, {"node": {"oid": "1d18d65ff1ec25c5191ca6953af7695c9e3c4ed3", "messageHeadline": "UI: added auto-focus to login and signup  forms  on username input.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "580395f3e6dc3961b929d076183bef99a4f6d43f", "messageHeadline": "removed  spurious log statement.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "6a2cdb1f3ec3f887354c24a18f81223f38e7bf52", "messageHeadline": "removed publiclink.html and folded  the public link functionality int\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 38, "deletions": 119}}, {"node": {"oid": "fe2d127b514408f3ed0aec9c0497400c0f6bf378", "messageHeadline": "download progress fixes", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "555c556e563e8fdc6b87c932e5d2616b49685195", "messageHeadline": "Add download progress bar of sorts", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3307324075494069d1b87e7cda4d19b0c3daeada", "messageHeadline": "download progressbar", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 55, "deletions": 31}}, {"node": {"oid": "1025a69c069839548d4ff326e4c1fed8d8d17d31", "messageHeadline": "progress bar - updates", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 14, "deletions": 10}}, {"node": {"oid": "3767a1a083567b04143078351bdb077cc2b6afe2", "messageHeadline": "UI: updated the way in which the progressbar is updated on file-upload.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 24, "deletions": 50}}, {"node": {"oid": "92099c564f502920af76eb1f3206c77e380435b6", "messageHeadline": "progressbar using react", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 99, "deletions": 12}}, {"node": {"oid": "994db30efaa97ee02194a6c11df61b9c4c8ec2d4", "messageHeadline": "UI: addede pointer-cursor to clickable links in browser view.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "c8ecc8c2f2e3ef7f3e9e30d2262ea0e5c78835c2", "messageHeadline": "attach browser-context-menu to content-wrapper rather thaen  content.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d0ac89a6e1ac704b7b6373aaaf9ab2ce07aab498", "messageHeadline": "We are now quantum computer proof for files that haven't been shared!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 3}}, {"node": {"oid": "32d50167adbfadfd58b40390f01c1d77093b244a", "messageHeadline": "Added root symmetric key in preparation for making our files encrypti\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 9}}, {"node": {"oid": "4331b5a2ea5f4ad8c6906f3222d208dece70e291", "messageHeadline": "Fixed copyTo for files and directories. All working now!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "621bcd8306e4d877d2fe59434be5c8a068e93618", "messageHeadline": "UI: implemented cut/copy/paste functionality.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 69, "deletions": 6}}, {"node": {"oid": "9f8ae3c4f0112e857f887bd7ca1b935fec2690ff", "messageHeadline": "Fixed FileTreeNode.copyTo and DirAccess.copyTo to do a recursive copy\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 22}}, {"node": {"oid": "0a7376195267ddc346550ab746b6bf7b9b4a8ce8", "messageHeadline": "implemented FileTreeNode.copyTo(targetFileTreeNode, context)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 15}}, {"node": {"oid": "229fcf7709a036cc7ab5c557d404d7724372fa9e", "messageHeadline": "Merge branch 'copypaste' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "a306e410a63d6304606894c5496577189009f3ed", "messageHeadline": "JS DHTClient has same api as server side one now, though the rest of \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "e90fa6bfa5a7b40ba63e741638b38f4c464e0ad1", "messageHeadline": "WIP : copy-paste.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 12, "deletions": 0}}, {"node": {"oid": "c9d6d8b0ab9180fd14e8c734a6940c20772cfaf9", "messageHeadline": "default demo to sqllite core node", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c41923835011489a777a80d75f205b4498dbf368", "messageHeadline": "fixed regression for removeMetadataBlob", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 88, "deletions": 6}}, {"node": {"oid": "16009a892a14e7c1a72bc6c284fbfd5768d3640f", "messageHeadline": "made server side of DHT return key for puts. UI reads it, but ignores\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 29}}, {"node": {"oid": "6a1ec65f7e9b6e430e11d29734c0b7a0875bf63b", "messageHeadline": "UI: signup form is now inline instead of ina modal.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 21, "deletions": 11}}, {"node": {"oid": "89fc86132d8f32a59c15f61e65f1698f5a6e7ac7", "messageHeadline": "Merge branch 'newsql'", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 330, "deletions": 1612}}, {"node": {"oid": "5587354a4aff1fa0d5e25c815dc0ccd07a726b68", "messageHeadline": "fixed error in accepting a friend request caused by delete operation \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "e3906f91d3f1464fad42478274501636b9e2bb4b", "messageHeadline": "fixed jdbc follow requests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 1}}, {"node": {"oid": "fccdee67dbf5037329ceaa936d2174d6e855b374", "messageHeadline": "fixed jdbc follow requests, static data appears not to be working (lo\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 14}}, {"node": {"oid": "36440ad62beb57477fa98b7e817c7fdd2ddbc1d7", "messageHeadline": "fixed metadatablob uniqueness in sql", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "b22a20e3b893c546656b2e6bc1637b7abb1e3b26", "messageHeadline": "Upload progress in title bar. Display in bar graph in future", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 27, "deletions": 11}}, {"node": {"oid": "c7b7e0d635b1045812145247b0b18197df98a418", "messageHeadline": "simplification of jdbc core node", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 10}}, {"node": {"oid": "1b4f35088585b9074c6283089fc0c46e79e5091f", "messageHeadline": "Warning not working. Need to debug JDBCCoreNode. Ensure no duplicate \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 280, "deletions": 1628}}, {"node": {"oid": "ae69d95e875f2f37276e746fd7a123ef0404dc91", "messageHeadline": "fixed error in accepting a friend request caused by delete operation \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "40f641789d6328c0d5f5051cc75fd09b8f0e28cb", "messageHeadline": "UI: added context menu option to see users withwhom a file or folder \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 16, "deletions": 1}}, {"node": {"oid": "6684fba35dd858be5b566811f27e0fbf2f45fa2e", "messageHeadline": "Drag and drop css style hack", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "87acf92a7da3cf14a2c640643aee1ac548850daf", "messageHeadline": "did moved into filesystem - in need of a cleanup", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 57, "deletions": 46}}, {"node": {"oid": "4e8e8c1851404032447d1f9d39ada7e28accba67", "messageHeadline": "fixed bug only affecting User.random() which resulted in invalid sign\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 350, "deletions": 1554}}, {"node": {"oid": "0dc41d62250968e06a4dd063906d776584405ed7", "messageHeadline": "Changed cornode.addMetadatablob signature to not duplicate payload. S\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 31}}, {"node": {"oid": "5bc71a696557b0dc0e61fe0236c71fd65c06b87a", "messageHeadline": "Mac build script file - not a makefile, which it should be", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 93, "deletions": 0}}, {"node": {"oid": "630629da1d789040613c6e22d0e98ebd4b2218bc", "messageHeadline": "add dnd", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 21, "deletions": 1}}, {"node": {"oid": "6c155d5871c1a4d3f041d91ddeeea813202d6fa3", "messageHeadline": "pulled upstream TweetNaCl fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "df14dcb1851b0e86690a621c4614cecf320a03bf", "messageHeadline": "pull upstream TweetNaCl", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "94e0a53a35dee1ea15a6d8f8f679ed6701344011", "messageHeadline": "Implemented SocialState.sharedWith(location) => List[username]", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 5}}, {"node": {"oid": "992e6e286019fcf9c35bdbbca5f82ec626cf2f3c", "messageHeadline": "UI: precache icon.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 22, "deletions": 20}}, {"node": {"oid": "f9082a5e0020568cbe72ff8f7080416d36fd922a", "messageHeadline": "UI: Added logo to login view.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "b1f621df2959c1e6eed21dc9d1b51e1da366645c", "messageHeadline": "UI: updated Browser such that mkdir and  upload  buttons are only sho\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 18, "deletions": 0}}, {"node": {"oid": "790216f0fb53c842b36cacd8623472cd2057e69f", "messageHeadline": "UI:reload social state on user-options context  show.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "231637c5aff4e27aea06857fa1177dfd821a5ff6", "messageHeadline": "further cleanup DHT interface", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 39}}, {"node": {"oid": "beb702fc23e4aab374c34df5924ea5a6debb5f70", "messageHeadline": "UI: display user as first element in navbar path whensharing", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fd1738c26869f7314c487ec4dc5ac48cff563fa2", "messageHeadline": "Update ThePLAN.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 16}}, {"node": {"oid": "217743a4bca1c94ae31dab9552224d17b1b59223", "messageHeadline": "Deleted a lot of crud from 2 years ago. dht package much simpler agai\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 288}}, {"node": {"oid": "c625869a55a71e2f8713a6e223df829712dbf76b", "messageHeadline": "Massive cleanup of DHT apis. Removed use of Future and replaced with \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 111, "deletions": 221}}, {"node": {"oid": "88efa607149cdb6ffbd7677b0ae6fb51edd00352", "messageHeadline": "cloud storage fixes", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 13, "deletions": 8}}, {"node": {"oid": "9c82d7a33592bd69a1aea95a3bdc185aaaaf1d9f", "messageHeadline": "right click sharing of folders and files working!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 14}}, {"node": {"oid": "bb71818d3d3b4cd200ebb0098b466fb52d2d8f0c", "messageHeadline": "fixed bugs making our subtree read only", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 7}}, {"node": {"oid": "c285e5b8b3e64ffbd4362f3cae5df9f05db73313", "messageHeadline": "UI:  file/folder context menu in browser view now has option to share\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 655, "deletions": 601}}, {"node": {"oid": "f2f045cebb75b711d8980e4ab1e2e9a406252ff3", "messageHeadline": "fixed publiclink.html", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "61bcef667ec18bb714754bcaed9bd4ce42092d24", "messageHeadline": "fixed public link generation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "e46d38340b69e5ebc2bc1245ac18c747d86ec41c", "messageHeadline": "Bug fixes, \"shared\" folder now hidden", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "e7274a8f5394e9453ca565b8e8898d64e01c7a8b", "messageHeadline": "added api to add a link to a directory or file.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 1}}, {"node": {"oid": "79184f13d50cb7e32eceacb7a0653de8e1c01fce", "messageHeadline": "switched to AGPL", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 80}}, {"node": {"oid": "385bdf5ae3dad6c5bab4b0445da541c030e7dd55", "messageHeadline": "UI: updated shared directory link icons from home  to folder-open.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3e7c9df0061283b3003acb7f047311bd94bb0e03", "messageHeadline": "UI: updated  following table rows header to be  more obviously a clic\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "05eca4766d5ee5f75f4be45f0cf7e4d44114c81f", "messageHeadline": "UI: clicking on followingtable row  now navigates  to shared  followi\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 38, "deletions": 34}}, {"node": {"oid": "825552d099643e07e45ee49b774cb0de18f1413f", "messageHeadline": "fixed isHidden on FileProperties", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c1155cac2f017026ad855c368f93c4f3655bccee", "messageHeadline": "make shared folder a system folder", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "c749f7d70e9c71dd7053ff080ed30b575f07e506", "messageHeadline": "Abstracted out router into DHT interface in preparation for IPFS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 132, "deletions": 119}}, {"node": {"oid": "94cca17e46a8ba316640880e40671261ac8a8b66", "messageHeadline": "UI: file-browser now starts  in user's directory rather  than global \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 23, "deletions": 4}}, {"node": {"oid": "418f57a50f2d8f53f6cd2c94722efc3aaedc550e", "messageHeadline": "added following roots to SocialState", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 7}}, {"node": {"oid": "228dcc9f7e4e7d49b7d181d160a5d96a9aff1e7c", "messageHeadline": "UI: added go-home button with simple implementation to nav-bar.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 11, "deletions": 0}}, {"node": {"oid": "773e6d8e02d7691117abc83c4a72aefaef7d49d9", "messageHeadline": "UI: updated UserOptions to  use updated SocialState API, also fixed v\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 28, "deletions": 28}}, {"node": {"oid": "693bb9e6e5dbf3f5be37415e251cad8f64d0902f", "messageHeadline": "move to unified social state object (UI not functioning until filesys\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 16}}, {"node": {"oid": "2037d25e91f33e452b31351670d6cc0dc60cac16", "messageHeadline": "add webdav storage option", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 494, "deletions": 0}}, {"node": {"oid": "01e5580a8e2323afd40d57585bd3fb4f690b4db7", "messageHeadline": "streaming file upload working. We now have O(1) memory usage during f\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 61}}, {"node": {"oid": "4a4ee9fb4253bc3b3be021b6ea3deffed527fee3", "messageHeadline": "turn on caching for the static handler and use gzip", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 5}}, {"node": {"oid": "e79c420de5d1f216868e0bf06aceaf6c562de6fa", "messageHeadline": "removed weaker algorithm. Bad luck if your browser doesn't support th\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "4ee4a5107b2e714f33e8ece3e33e3a997ca226ad", "messageHeadline": "add a few more cipher suites to whitelist", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 0}}, {"node": {"oid": "ce5e5aa0313a3ea3181c12b2586d6c91cb4d624b", "messageHeadline": "attempt to stop DDOS enabled by client initiated secure tls renogotia\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "e806306cb7d85767ee3b7a1c437e68c4046977de", "messageHeadline": "more https attempts", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 1}}, {"node": {"oid": "ab625a56e0486dbe1022c18cc1263e8718387926", "messageHeadline": "more https", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "b05b6978c9cf98f0bb15b54e565fc677703be673", "messageHeadline": "more hardening of https server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "13657572388465e3d0bb0912e93e8cede36c3d95", "messageHeadline": "attempt to remove insecure cipher suites from user api TLS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 0}}, {"node": {"oid": "2d3c6055dd3c49896a39c814e5f1d6bd7fae69aa", "messageHeadline": "reload root in place after accepting follow request", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "8140899ae6c2600c8d4c76bd3474d25a63965802", "messageHeadline": "large refactor, mutual following seems to work again, and conistently\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 47}}, {"node": {"oid": "e47de9ad3d4c98065a476bb8c1c523ef3fca50c1", "messageHeadline": "cleanup", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 245}}, {"node": {"oid": "fca2baac6e83ec45996e0207358ebec76bc111c4", "messageHeadline": "got mutual folloers working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "37c0574cb266384cfd37c9c1362df6ca1697e6f1", "messageHeadline": "made users unable to spam the same user with multiple follow requests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 19}}, {"node": {"oid": "6bab024c6a2b021d9d5bdeb31be41bc1d305b4cc", "messageHeadline": "Just successfuly shared first file between two users through the web UI!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 8}}, {"node": {"oid": "ea4f69467e9b424dcfcefddc70ec362b4a3ff2dd", "messageHeadline": "correctly add entry points in handling response to accepted follow re\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 10}}, {"node": {"oid": "dae114a487cef8c0d23914dd47fa1ba2a58b6137", "messageHeadline": "following almost working, need to fix getting external entry points i\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 10}}, {"node": {"oid": "107637f0797e0093b69aaa168fef277fc78e7db8", "messageHeadline": "UI: updated to destroy modal on modal hide; user-options now re-popul\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 8, "deletions": 2}}, {"node": {"oid": "1738ef8f373f105ab325f6c4579b24d3346582e2", "messageHeadline": "fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "35d7a10ac709edb7c4f3b51200e3f18a0492bd2b", "messageHeadline": "follow request filtering almost working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "632750a4c8bc7110067eaccdcc842fec3424dce8", "messageHeadline": "UI: added toast and console instrumentation to deny,  accept & recipr\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 35, "deletions": 25}}, {"node": {"oid": "cfc9f3bb8e730652b98a8117ccf989b27df59a34", "messageHeadline": "bug fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "df9a9885b11f2a7627f34237503f4c97df8a8580", "messageHeadline": "merge", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 35, "deletions": 2}}, {"node": {"oid": "37b1bd899824c862691aee28b4608509a382ae8d", "messageHeadline": "adUI: edd toast message towith outcome of  accepting a follow  request.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 23, "deletions": 5}}, {"node": {"oid": "3260f6f127f230f7e60f4d60b4bd4feb41cb1f21", "messageHeadline": "bug fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "83c7ce64b57ab37945e6f56d8dd62a9702d6bc12", "messageHeadline": "filter follow requests responses and handle them in user context", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 3}}, {"node": {"oid": "d77bd5e8d518ffab95f5c8cb4fc6e6abbc626497", "messageHeadline": "bug fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a6a117f954b0ae2d84e53602f01421ba1899417b", "messageHeadline": "bugfix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f02b229416d04eb1ace63aa63d1c1a8984ce5ee8", "messageHeadline": "added get following and followers functions", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 5}}, {"node": {"oid": "0ee462bdb0416cb65a8331534aa5d277fe6f5753", "messageHeadline": "Fixed bug  in  AbstractCoreNode st follow requests are now  removed  \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 41, "deletions": 18}}, {"node": {"oid": "deec1ec2c2e8aa05e1d45ff791ecba5376ca7009", "messageHeadline": "UI: updated user options heading text.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "44fe9c29a917530f46696c9c5757d76b9d0036d0", "messageHeadline": "UI:  added table rows with buttons  for accepting/denying follow requ\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 1}}, {"node": {"oid": "d57bce067e87bff824392a80fd75637d46a0d7dd", "messageHeadline": "UI: restructured  user options  with nicer  table for pending requests.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 33, "deletions": 18}}, {"node": {"oid": "b37ac45af0627825cd8bf5b87216b2d36225f363", "messageHeadline": "UI: added in-progress animation during user signup.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "1e7a1590527b09c3e6898756966ed4338e21e7d2", "messageHeadline": "friend -> follow", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "8be77c9a7ccdbbf7642812ce090826811e6b80eb", "messageHeadline": "clean up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "27ce5d0f761f784d1699643140dcfc8196e36a26", "messageHeadline": "implemented reply to follow request, fixed remove follow request, nee\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 25}}, {"node": {"oid": "a9fd183dd41d1c8feff3c382348967eeb7990cfe", "messageHeadline": "fixed more bugs downloading multi-chunk files", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 5}}, {"node": {"oid": "06076e66d14b77c3d8685cde672f0fb82b8e8549", "messageHeadline": "WIP UI: can now view pending friend requests in user-options view.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 26, "deletions": 1}}, {"node": {"oid": "386644e096aea7b8ffca6722e435eaa507931bf1", "messageHeadline": "entrypoint deserialize", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "c65e04077919e7d1a157d647dc6cdb9bf9bfa25b", "messageHeadline": "fixed multi chunk upload", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 8}}, {"node": {"oid": "b3072ec4a3a3f9f11c44e297986b79169e8337ee", "messageHeadline": "UI: bootstrap navbar now  no longer hides content.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 3}}, {"node": {"oid": "14d0fd9c8821c08a7804184c08a70507060a0572", "messageHeadline": "implemented getFriendRoots()", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 3}}, {"node": {"oid": "ec3a4b56089b056559b3afa3e66d58c33e05b695", "messageHeadline": "made user context decode follow requests in getFollowrequests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 3}}, {"node": {"oid": "7bd499418e01e04a1d067c4782770635af26dda6", "messageHeadline": "UI: removed close button from modal.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "f2ac2df062018aadb1352c3ff5c4d07383bb44a5", "messageHeadline": "UI: Added loading animation to login.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "3165c4153d2a83997650ba270b952d3fae345f1f", "messageHeadline": "UI: moved login/sign-up from the navbar to a central view.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 44, "deletions": 11}}, {"node": {"oid": "040af5110a63f49abd6b67a4203d42e5aa86692a", "messageHeadline": "fixed async erasure encoding to work on any host", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 10}}, {"node": {"oid": "6c5a81a86addc5174aa71f7c432d75372dba7b34", "messageHeadline": "erasure encode is now done in a web worker in the UI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 13}}, {"node": {"oid": "96c04dd6af45cf0744802c2f2834e6293ad63364", "messageHeadline": "got erasure codes in test running in Worker correctly", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 32}}, {"node": {"oid": "b00898383da2e4e36a7a7e3d4a7969499d51ff16", "messageHeadline": "fixed acceptance of fragments in disk storage, limit is 1 GiB", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 4}}, {"node": {"oid": "9abc610ce6ebfb572353b51f5948fa426341bfc4", "messageHeadline": "fixed issue with follow requests (the static data was being overwritten)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "f5a051b9957c4a1a0a02c84ddd1164f41ccdf72b", "messageHeadline": "fixed promise from send follow request", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 7}}, {"node": {"oid": "ea43dba13c4c928f6e9ce3060897f9461ec67964", "messageHeadline": "bug fixes, but follow req sender stilll can't log in.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "dc4b7aae256a90702fece58f15f32ec3ef9d35b2", "messageHeadline": "got sending a follow request through the UI working, however once don\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 27}}, {"node": {"oid": "f06c7cba510270fbb1c8a5735a3a4faf1aaa70ab", "messageHeadline": "added last modified and attributes to FileProperties", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 7}}, {"node": {"oid": "ade3d30ecfb4b5ce0c57e8097124097f52065aa5", "messageHeadline": "moved to model where UserContext holds the file tree, and to the new \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 20}}, {"node": {"oid": "6da18873216e1b472adc01671eaf4d361186858a", "messageHeadline": "Added pure-css  loading animation pong-loader for long-running tasks;\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 298, "deletions": 5}}, {"node": {"oid": "765ad20c6c03d5c385921692bc73ea8549a26791", "messageHeadline": "separated out Storage interface from authentication layer, which is n\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 146, "deletions": 110}}, {"node": {"oid": "64858f64b963ca3d6c5d3fe53bf606b3b4c78535", "messageHeadline": "Added modal with user options: currently submit follow request.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 36, "deletions": 4}}, {"node": {"oid": "d9528b17ff86c801c067af48bbf72895bcfb3877", "messageHeadline": "added type  signature  comment.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "b45b56488cc0bbfd5697752455b379376b44a940", "messageHeadline": "removed unneeded buttons", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 14}}, {"node": {"oid": "3aee04126fd55378e9e1b0dfd1fdf056ecdfef13", "messageHeadline": "fixed logout issue", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 0}}, {"node": {"oid": "729a87812e1e85c40c706248cc262f71c0aa35ef", "messageHeadline": "logout function to clear file tree node root", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "05e261fbf455dc62225fc71c1299efee71207988", "messageHeadline": "clean up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 17}}, {"node": {"oid": "59751cc75f78587443af46d272b042d9dc6696c6", "messageHeadline": "current dir in UI is now  displayed blue, rest are grey.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "12e59dfb86aeb3242a8b339e5b3e04c6d46236ba", "messageHeadline": "Updated navbar path from string to  list of clickable buttons.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 23, "deletions": 6}}, {"node": {"oid": "6adf9f4122246fe26f5a19a4353c06456911445a", "messageHeadline": "Fully functional after switch to FileTreeNode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 34}}, {"node": {"oid": "ee4397c1dad8f07291380754ddd8d1515c04a391", "messageHeadline": "implemented parentlinks for directories, but need to rethink the pare\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 20}}, {"node": {"oid": "20d973ec0cc61e3c6ef353b2b00cbadd30cdb362", "messageHeadline": "fixed upload in a non root directory, except mkdir doesn't seem to be\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "5e2cd14f4c0fb923e761298b1065ccf427378a31", "messageHeadline": "fixed mkdir", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 4}}, {"node": {"oid": "8c5499294694143a198261205389e0b553aab7d4", "messageHeadline": "FileTreeNode tested, UI seems to be fully functional. Still need to t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 39}}, {"node": {"oid": "a3c465b2e1f0d64287506556c010b89ac7d9c904", "messageHeadline": "FileTreeNode implemented and incorporated in UI, except for the initi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 85, "deletions": 30}}, {"node": {"oid": "21c19f01db41ff28ff3564317402ce287fd6fb5a", "messageHeadline": "Got rid of consts which chrome can't optimise for some reason", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "c69b77ddd7b3c1ad954bb1774e1d62ddd9f4f173", "messageHeadline": "fixed bug in JS erasure decode when errors are present!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "7f1d9e07485b25b1e0e4bd9a9b490c90ba434ce1", "messageHeadline": "rechecked Java erasure codes can handle errors (up to 10)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 9}}, {"node": {"oid": "6c266a82ad26dd561c0b9242cb2bbc0b6b8e7500", "messageHeadline": "added tests for >0 errors in erasure decoding, currently the tests do\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 14}}, {"node": {"oid": "05d7c5b0eaf97914cd65f4dc60fe5e35fb3efc00", "messageHeadline": "memoized out galois polynomial generation, and now the encode is 150X\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "7e4ed3539ae313f1e8c48a0ea0a3eb427194b3a8", "messageHeadline": "Updated UI to  add default folders onsignup insteadof login.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 17}}, {"node": {"oid": "6961b3408f7ce25b7e80769dc7a101f93157ea0f", "messageHeadline": "bugfix", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "f48acef38c7eae49832c9154db176d9d1cde0c93", "messageHeadline": "Added skeleton React class for user  options.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 22, "deletions": 0}}, {"node": {"oid": "1488b23807cf8804d7fd1724ea891fb6fd3d19fb", "messageHeadline": "fixed decoding for files less than 5MiB, also means we can store arbi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 8}}, {"node": {"oid": "658048913d608061662634bb4b66529f28cfbd0a", "messageHeadline": "added small file erasure test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 37}}, {"node": {"oid": "0f6fb530e265588ae96e31509827eb91ede4995b", "messageHeadline": "connected UI up to erasure codes, moved all Js to scripts. Download a\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 144}}, {"node": {"oid": "f4f18b5d36995ab58f4876288ab773e0ab5b15c6", "messageHeadline": "full erasure encode (40s) and decode (3s) working correctly. (not ena\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 460, "deletions": 0}}, {"node": {"oid": "79374a2a5f766f1bacc3566dfb08e5ac4ec2e48d", "messageHeadline": "implemented sendFriendRequest which grants read access to a directory\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 222}}, {"node": {"oid": "800ef68dd164765361ba832623176c4b3295643f", "messageHeadline": "Added user options button to navbar", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 0}}, {"node": {"oid": "9182d27fc39b1ff61749e92d9c3c847680314d30", "messageHeadline": "made test.html able to use erasure codes, whilst leaving it off by de\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 68}}, {"node": {"oid": "cac3a0e59c4f18b1238e6580704fc502df3ed97e", "messageHeadline": "accidentally enabled erasure codes, disable now, file upload works again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "70fd47389bf1088c7972b8756bd3b4a0d3bab570", "messageHeadline": "fix demo domain", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "03a36f38019819ac378618fb3ddc0b8f94c0c550", "messageHeadline": "changed the sign up file structure so that shared is a sub folder of \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "a8135b8aaf586c1f785a2590d279f8daee996e33", "messageHeadline": "title", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "c2eae49ec5544d3d644a1390f670985c4268aa69", "messageHeadline": "fixed login", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "a4d229e4966c14b63a6312a32b7b9d6345549146", "messageHeadline": "added demo link to readme", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "99a54dedd48c21573f46438f87617f7ef4b7b5b7", "messageHeadline": "wrapping public file links.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "da2358bf2f4c61fffcaff88754270f0df44de265", "messageHeadline": "create owner and friends directories on sign up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 6}}, {"node": {"oid": "cdb807f3d2414ac64573f5611130d85fd4e62ad3", "messageHeadline": "generate public link works, but the text needs to wrap", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "13b18501e1d56471e1968c23983c07d9103be522", "messageHeadline": "cleaned up The Plan", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 24}}, {"node": {"oid": "3c6f93afc4a7e0529d6ef6cda016f185bf043491", "messageHeadline": "signup now automatically logs in  the newly registered user on signup\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "e54fc88439f34c6da3e534b40e33401d12b429e6", "messageHeadline": "Added UI context menu item for create public link  (unimplemented).", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 10}}, {"node": {"oid": "02e8196a6efbabf83b133b0fbc152abfc25c8c3c", "messageHeadline": "fixes for demo", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "7e6e8def7de283b3daf0454a7521e9697c4911de", "messageHeadline": "added download toast to public link download", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "b37346dda4653450c3b44bfacada6ac121c4c7a5", "messageHeadline": "public file download link working. Sweet!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 195, "deletions": 2}}, {"node": {"oid": "c3db6078c86f393a3a87a8e9cfc156c58b49b460", "messageHeadline": "giving up on optimising erasure decode in JS for now. Erasure encode \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "7dde1b05c6f49a86e629024b0ad72696daeb12d7", "messageHeadline": "Updated UI ot not register unknown usernames on login.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 8}}, {"node": {"oid": "864507c9b6030a607e907881f98f4e84e37e80ae", "messageHeadline": "Updated UI to handle user signup.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 116, "deletions": 4}}, {"node": {"oid": "01336e285ba67e06b86a7c62fb8cbf83fc454021", "messageHeadline": "got rid of a bunch of object creation in erasure codes and made all m\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 58}}, {"node": {"oid": "8c25184e36d8b1b1cd4a1863320113418a448955", "messageHeadline": "small optimzation to erasure codes knocks about 20% off execution tim\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 10}}, {"node": {"oid": "cf375e59ad4bfba83c15a475f11610edac3a0311", "messageHeadline": "log out tool tip", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "26c0578a25a4ee8bf5d676ad34e8faa417176e78", "messageHeadline": "bugfix : oldPoly and  errPoly can't be assigned const and be reassign\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "9f2973fc2cece5c8426503184f08b1bd4875812d", "messageHeadline": "Added power-off icon to logout button.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "481a315029df12a556b5b763090cefb01ec27072", "messageHeadline": "Added toast message to  UI file  upload and download.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 14, "deletions": 11}}, {"node": {"oid": "18462b7d8ea7e6c00ff972bf7cc747d2718922a4", "messageHeadline": "and actually disable it", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "9ffc61197da47aca3cb441d3d8a69c379da7db13", "messageHeadline": "disable erasure coding until it is optimised.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 277, "deletions": 277}}, {"node": {"oid": "f9f6f01210ceadbb701f72a869cc4579964292e3", "messageHeadline": "erasure codes ported to JS, and appears to be working, but no compreh\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 331, "deletions": 6}}, {"node": {"oid": "39ae92ec5fb9ed247bc20587c9a71d6542f00532", "messageHeadline": "Added jquery-toaster plugin. Added toast messsage on file-upload comp\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 193, "deletions": 1}}, {"node": {"oid": "e4759ed2e9d1f695887322ed6674a9a413e6cf9a", "messageHeadline": "Added  user-logout  to  UI.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 25, "deletions": 4}}, {"node": {"oid": "d5e63c6998573a0334fb7e7054667035124eac06", "messageHeadline": "updated the plan", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "9520fa48fe6e7c038adc5dbb5ae703aeec042800", "messageHeadline": "Update ThePLAN.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "1780c2dbf1d3f82f119e604c1709fc94e838448b", "messageHeadline": "fixed login issue", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "55f3d0409ef68c43a77709e01b9354f4493a3c3a", "messageHeadline": "fixed bug in Java Galois field and reenabled the check", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 10}}, {"node": {"oid": "e9e5402aabf257df74d99b736ef68144bfd0b61c", "messageHeadline": "Update ThePLAN.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "c7da1bdc3b767113194eb1256ae702e37c192930", "messageHeadline": "made -localJS mode listen on all network interfaces", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "b32202a0b8bb269dabd744e13f3a2b943bcc281d", "messageHeadline": " Fixed a  bug in  the login function where failed usercontext-registe\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 39, "deletions": 58}}, {"node": {"oid": "a92d1f6e265361588886e80e2a2a6c37af8515b5", "messageHeadline": "more  clean-up of the populate-browser function.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 9}}, {"node": {"oid": "dd2458dbf8d627cc0837055ac8e8a9a7fc62ca38", "messageHeadline": "cleaned up the populate-browser function.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 29, "deletions": 71}}, {"node": {"oid": "8dca649d49a52c027b571ca0eb5431c3a9fe2ace", "messageHeadline": "Updated modal to be  re-usable.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 7}}, {"node": {"oid": "cab4a29f7552322954684939943b6414f365adc7", "messageHeadline": "Added  modal asking user  to sign-in whne navbar buttons clicked and \u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 88, "deletions": 59}}, {"node": {"oid": "0c7a1aade4013fefce7b74c9f9d04c896323658f", "messageHeadline": "Fixed file-rename.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 7, "deletions": 4}}, {"node": {"oid": "9c8c1b79bb39dcc240ccda1d476b49d92d3b67f4", "messageHeadline": "remove link to child from parent when deleting something", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 6}}, {"node": {"oid": "30df232ff3e748777bdd453085507ef7ad9cb500", "messageHeadline": "remove working on directories and files!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 7}}, {"node": {"oid": "2f359f367f77ca329b1f071afb91b341779c6f6b", "messageHeadline": "Update ThePLAN.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "5f6c8c09d8b6df5fdaea88112a26afb60fdd71f0", "messageHeadline": "delete close to working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 8}}, {"node": {"oid": "970ca5a51d09dace1c13e9c25b40c056bbfd301e", "messageHeadline": "UI will now display username in button after login.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 32, "deletions": 28}}, {"node": {"oid": "96710efb6c66127664d3cf8b437c3d5410349663", "messageHeadline": "http redirect is permanent", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "bc61f2dcf45575429b90b6425285f1dd33909ef4", "messageHeadline": "change listen target", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "252140073590c57f7924ce07a04f54908899387a", "messageHeadline": "logging", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "9b024b0fc0650ed14f1b7d9177baff242eeb7189", "messageHeadline": "Added bootstrap  tooltips on navbar icons.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "065777c9db77738a295c86bb9f92a0bc963eb2ae", "messageHeadline": "Added bootstrap  tooltips on navbar icons.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 14, "deletions": 7}}, {"node": {"oid": "afee1c251806bb4f31538dc050088f28d7256f84", "messageHeadline": "added http redirect to https to user service", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 13}}, {"node": {"oid": "8bd5d27102e5889691edacf6c945368691bc2bd7", "messageHeadline": "reverted demo mode to use standard http core node", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 16}}, {"node": {"oid": "940cfaa8ba946691a35944c6c52919cc5ac78309", "messageHeadline": "make sure there is only one memory instance of corenode in demo mode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "fa5d352ee5639c471c2091120fa3d1de6c64d644", "messageHeadline": "log demo mode ore node usage", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "19a5023c5574c04a075c046d9977a8bca0577ece", "messageHeadline": "Added some UI todos.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "b59d04cb54729e0759b86168578970bbb2f967e4", "messageHeadline": "file download working for non multiples of chunk size", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "4f93bffafc6bc838bb872a4c18c95f06f0e325b8", "messageHeadline": "replaced placeholder from email -> username to reflect peergos users.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 3}}, {"node": {"oid": "dabb0fc3b885c21fb8350a99d3bb06676aa533c0", "messageHeadline": "cleaning up old methods from Flask impl.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 23}}, {"node": {"oid": "d224688cd1e168765b6f4151329fc4f02e0ddd0e", "messageHeadline": "UI now shows the current path in the navbar.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 15, "deletions": 138}}, {"node": {"oid": "0187eef1e232a76f41fe7bf8d18bf00636daccf3", "messageHeadline": "fixed file upload with new parent links", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "dffbaea6e99b92261b06b655ff9904dbd6583bbc", "messageHeadline": "Implemented on-parent behaviour in UI (and aliased on-back to on-pare\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 15}}, {"node": {"oid": "373b8f9ae34ff97d086b1d2d52df94e79114c1ea", "messageHeadline": "test can do half or two chunks", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 10}}, {"node": {"oid": "2efb120bd2e2a2ff2f85f83e3e39f37cbbb090bf", "messageHeadline": "Implemented file-download in the UI. Only works with files aligned to\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 29, "deletions": 15}}, {"node": {"oid": "00604191681276bec909fb529c9b87b38fe47166", "messageHeadline": "parent link navigation working in JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 18}}, {"node": {"oid": "790df9f0535f3c2606a36e77aade7f25d42dc058", "messageHeadline": "fixed repeatable login (don't overwrite the static entry point data e\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "60dba79c820604298ad85a8feda4552ac28a8857", "messageHeadline": "Implemented  file-upload  to  a  sub directory!", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 21, "deletions": 19}}, {"node": {"oid": "a5dd0edb90d138f157e4c5ba2a28c64adaa635a6", "messageHeadline": "bugfixes in DirAccess.rename, folder/file rename now working in UI.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 52, "deletions": 17}}, {"node": {"oid": "53ca2b195ea7e37354321d47da35669846ef29f8", "messageHeadline": "ffs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "4a38807c18b960d707d873e1f10a540b0dbeefd0", "messageHeadline": "experiment", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 7}}, {"node": {"oid": "0615a5a093e6b01cc9879d3e45ec538d133dc9a2", "messageHeadline": "force core and dir node to localhost in demo mode", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 8}}, {"node": {"oid": "ee00d6691d37b3517ab525f3237c6aa430e72d8c", "messageHeadline": "Added browser.entryPointWriterKey() for calling mkdir with write-acce\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 43, "deletions": 22}}, {"node": {"oid": "e5bafa038254f172ca7a586cbc9233537341ca0b", "messageHeadline": "oops", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "2d9cc429e9a78de7035e5fc7aa0ae8f887e1d212", "messageHeadline": "force demo mode to use locahost corenode, to get around cloudflare no\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "f3ec91d84e9e18c1e8fe0de91be1d8d83d4e9462", "messageHeadline": "rename file implemented", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "9ab4cf5808787d12fb3a3f328b3d06eececefb29", "messageHeadline": "mft working again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 1}}, {"node": {"oid": "41b98576dcd5f73719f1768d5aac26133ef51a5b", "messageHeadline": "fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "494681b0d8951337837f650d4cc0f90244c45728", "messageHeadline": "updating dirAccess.getChildren to conform to the agreed type signature.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 23, "deletions": 5}}, {"node": {"oid": "75cc5f992858ec3c10ac3c9fad3a099eb8fa46be", "messageHeadline": "added guard on mkdir to ensure logged in.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 44, "deletions": 23}}, {"node": {"oid": "691e50808ef31d98a73a787f2a398381966801e3", "messageHeadline": "mkdir button in  nav-bar now  creates  entry-points (if appropriate).", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 8, "deletions": 9}}, {"node": {"oid": "9d2e4f35bd77465266a911440dce2dce1bebb373", "messageHeadline": "move demo mode to port 443", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "4ad9196e2ec2c8090475f52c4a4853fe0723e723", "messageHeadline": "hopefully demo mode works now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 7}}, {"node": {"oid": "e03f2f1a9f673cd39d6cdf6350280bf56ff20bf3", "messageHeadline": "added demo mode for UI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "aa351a0931c3c412c9a5a59168888fba645e1b47", "messageHeadline": "subfolder creation and navigation working in the UI!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 11}}, {"node": {"oid": "101f7aa60cbcc0dd37ed94aa8697b0f1324c5569", "messageHeadline": "progress on the subdir add, still not quite there", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "a425ece71f7c4799b0ca990af6787d73d3d3b8c1", "messageHeadline": "medium file test working again!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 7}}, {"node": {"oid": "e62bd51503ae17dd79760e6d9eec4be9b0f3d716", "messageHeadline": "fixed fileproperties serialization", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "275a1daf1349d9acdbdb0420eeb6a1aea0c63116", "messageHeadline": "bugfix:  stray reference to  ByteBuffer removed.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "81c81b7b6753b2d6c90541c5a8f2552821b85be3", "messageHeadline": "removed byte-buffer, created separate ByteArrayOutput and Input Strea\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 279, "deletions": 821}}, {"node": {"oid": "9dfa8c4b5d3e3ac94810f280ff6a6d02855d10d7", "messageHeadline": "WIP: displaying subdirectories on arbitrary point  on FS.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 42, "deletions": 49}}, {"node": {"oid": "289160bce5fa02add5756a624ee931548f7634cb", "messageHeadline": "Added  mkdir to  DirAccess for creating  a new sub-directory.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 71, "deletions": 16}}, {"node": {"oid": "6da02ca7f9eac6d6dad05ebc471bdfe287e04d52", "messageHeadline": "file upload/download - but non functional", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 46, "deletions": 7}}, {"node": {"oid": "b08d5485b15fe30b1f2b00342eef304818b3bf95", "messageHeadline": "moved  JSX File declarations back to  Browser render method.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 30, "deletions": 25}}, {"node": {"oid": "4859938d0ea6ca2d5cf4c03b127979bc6be31dd0", "messageHeadline": "Nwo displaying actual root directories from Peergos.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 200, "deletions": 79}}, {"node": {"oid": "b0d8920273492e1ec19036c114d10ae8004c74b2", "messageHeadline": "added RetrievedFilePointer to encapsulate ReadableFilePointer -> File\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 12, "deletions": 3}}, {"node": {"oid": "4b99912d9cc05e83743340edea7b88c8d6addd2f", "messageHeadline": "removed references to cryptree.js", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 3}}, {"node": {"oid": "15b2c126874bc6478dd1f85eae5c61a6ec3fa00f", "messageHeadline": "added getChildren, and made size a double rather than two ints", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 477, "deletions": 466}}, {"node": {"oid": "9a5e904f7eb9eed6c1e9373c6f320380b6ac6f55", "messageHeadline": "mainly indentation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 412, "deletions": 420}}, {"node": {"oid": "f968dfdcd837ccee579a6e84cb1093608c0695c2", "messageHeadline": "updated createEntryDirectory to use EntryPoint as well", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "fd5522bf14330f7241c4957fe93a65752a5ebf10", "messageHeadline": "ported EntryPoint to JS and mediumFileShare test is working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 101, "deletions": 37}}, {"node": {"oid": "caf4c342d498e86893b691cdb186d3d818ad52d7", "messageHeadline": "made file pointers readable or writable, localJS still working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 31, "deletions": 20}}, {"node": {"oid": "347b351c18fb49c25bf9b4b299b70b71f7b9b7fe", "messageHeadline": "Added parent link", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 95, "deletions": 25}}, {"node": {"oid": "5ebc06b5ed444e1cbb25330b05296231bfa94255", "messageHeadline": "Large refactor of Static data for a user, Now there are \"EntryPoint\"s\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 104, "deletions": 29}}, {"node": {"oid": "7cb0cee107da43a70447577ff2b25d53867ef52a", "messageHeadline": "Fixed DirAccess.deserialize st the first two  args have the correct t\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 28, "deletions": 10}}, {"node": {"oid": "a39d2b44ddc36e6ee0a62f481a92e94d7b8db789", "messageHeadline": "Booyah! Made higher level File object which takes care of chunking, e\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 43}}, {"node": {"oid": "f773ae7683f7a87d93fa498f96decf8b31c77347", "messageHeadline": "extracted our Storage interface", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 196, "deletions": 172}}, {"node": {"oid": "6c05f0a455469698ffcbfc0e0b012baa7d132f2e", "messageHeadline": "turns out it was a ByteBuffer issue. createEntryDirectory working now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 11}}, {"node": {"oid": "93462bc526e40e2474a530b88d440402fc018370", "messageHeadline": "hurf durf.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 1}}, {"node": {"oid": "9ffd41813bfc18bbe9a17069e2a24d7261fec32c", "messageHeadline": "half way through daignosing why  the  diraccess from getRoots  is null.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 349, "deletions": 329}}, {"node": {"oid": "f5b44ad0f208925bccf3984615850f7f495d4511", "messageHeadline": "still not working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 16}}, {"node": {"oid": "ced5e4fd38a854789909efba4eece961642377db", "messageHeadline": "small clean up, fixed css mimetype. createDirectory still not working.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 11}}, {"node": {"oid": "29dd7281fd8c29573c06e40ab3a7cd8663c29acb", "messageHeadline": "Update ThePLAN.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 9}}, {"node": {"oid": "d2a1a5176b74e9f65f16324ad5a5d464bd0efd4c", "messageHeadline": "Medium file test works to completion in JS!! Need to find a ByteBuffe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "e68f5815af7923689119819c409f36c3430d9235", "messageHeadline": "added awesome favicon. :-)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "f64f15d3acef85d6b3f0e98bedb5e0b16f75e01f", "messageHeadline": "filename is correct now. Apparently the decrypted contents aren't.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "ece2d37cd0c286b3b94ea06f54e8f99da007c3a0", "messageHeadline": "LazyInputStream working!!!! Now just need to fix the filename.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 14}}, {"node": {"oid": "bc591d5afcb90aa6a7ce8e6dbcd401f6ef943a98", "messageHeadline": "medium file test almost working, just need to promisify readByte on L\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 5}}, {"node": {"oid": "cb404779f660dbf3dfd6b57f23164494dad23fd4", "messageHeadline": "Chunk decryption in the browser working! Turns out Promise.all doesn'\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 11}}, {"node": {"oid": "03b22d3f7529d1a4b325dc3f8b1803cf0730097a", "messageHeadline": "cipher text appears to be correct, but decrypt still returns false", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 2}}, {"node": {"oid": "bc21ea5482ff6998e897ac00d7310e381810fec0", "messageHeadline": "fixed fragment header parsing in JS after download", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 4}}, {"node": {"oid": "5c1226ae0f28d004e667770bdca5f217486a8020", "messageHeadline": "Started updating loadFilesFromServer.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 17}}, {"node": {"oid": "13b13df705a4ab85ba6f274f00fbe215f39d7106", "messageHeadline": "Can now register  and  get roots in  UI.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 31, "deletions": 6}}, {"node": {"oid": "cf02d08b359ad2be10ab16f3262d600e09be4185", "messageHeadline": "User can  now log into the UI... w00t", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 30, "deletions": 16}}, {"node": {"oid": "09ddd4cc36a540cb391440f7152e2821a594336b", "messageHeadline": "dht gets working from JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "38524dcb4580b95506f57f3535da7fe44d13818b", "messageHeadline": "update test doc", "author": {"name": "kev", "email": "kevodwyer@gmail.com", "user": {"login": "kevodwyer"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6eab65396bfcc9835f4e9182c1da575894e03617", "messageHeadline": "DHT gets aren't returning, promisified lazy input stream combiner", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 57}}, {"node": {"oid": "f0840d3c86c2717d77f360a01ac149b451927cd1", "messageHeadline": "just need downloadFragments now for medium file test in JS..", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 21}}, {"node": {"oid": "fa5b425ffacd51269dd965adc53146563e4af50b", "messageHeadline": "up to getFileProperties on FileAccess", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 19}}, {"node": {"oid": "14d869ae1d2a83d684c0daacabba479f2c262f60", "messageHeadline": "retrieveAllMetadata working, including deserialising FileAccess, and \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "b15acc349bac358109f63481f59a47c71a81baff", "messageHeadline": "fixed removal of blake32 hash", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 7}}, {"node": {"oid": "81c7a61244ef4bf5b91265b6cb300ef3790e67b0", "messageHeadline": "import sha-256, so now java and js hashes should align. almost out of\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 26}}, {"node": {"oid": "31a5156c04b99bbbc831d5d38334a27548b9c6b0", "messageHeadline": "sub files in dir access correctly deserialized", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "298360940bf96316a06be0fafe65aa46d8237864", "messageHeadline": "up to bulk retrieve metadata call", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 28}}, {"node": {"oid": "a4e1fb3822b9d69c97935c2521fb9651825fb914", "messageHeadline": "getRoots working in JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 66, "deletions": 37}}, {"node": {"oid": "d217913e8c9960a3285ba7803978edcb232163bb", "messageHeadline": "simplified updateStaticData signature on core node, fixed bug stoppin\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 22}}, {"node": {"oid": "b40948adb8ab807a095892227e6a6de365add594", "messageHeadline": "part way through getRoots()", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 2}}, {"node": {"oid": "b26e3f64468e6b13405fb0395a52ab407044759f", "messageHeadline": "removed remaining usages of username in core node API", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 79, "deletions": 101}}, {"node": {"oid": "6915e56ddcb1711c69008c23fe191dcdb8c3423e", "messageHeadline": "first half of medium file test working in JS. The core nodes no longe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "82d4f8b60853e08184a4ca8b9b1623308fedc1a0", "messageHeadline": "fixed bugs in byte buffer related to auto expansion. DHT puts from JS\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 178, "deletions": 15}}, {"node": {"oid": "d7268208947718642a2f5cf601b128a5368bc7ac", "messageHeadline": "Imported user interface  from https://github.com/theBoddy/react-files\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 38285, "deletions": 0}}, {"node": {"oid": "59037b4c75d29ef503f7db155dbb79535e5e21ab", "messageHeadline": "begone stubbed out UI.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 56}}, {"node": {"oid": "9b05326540644c802e3e1f466fc4e2c26f827ac8", "messageHeadline": "scope  binding is a  good thing.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "e57afd04d3e94012e80746f62bf224e110f2f1bf", "messageHeadline": "Promisified rest of core node API in JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 23}}, {"node": {"oid": "7b42cc46719c51392784150459c345856afe9115", "messageHeadline": "add metadata blob call working from JS now!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "879443f574aa73b4d3a1ddcb8c1b6303b0ce78a4", "messageHeadline": "fixed crypto demo to use promises", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "02c068683ad35941ab42fb34a420b2b2d19fd3ab", "messageHeadline": "bug fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "2d1bd0c405ffe008441e0fb66428effc04faa963", "messageHeadline": "more promisification, upload chunk now works up until uploaf fragment\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 164, "deletions": 108}}, {"node": {"oid": "da5b26995e1fc37fc23e070dfefd0a27a1746085", "messageHeadline": "promisified user generation as well. Sweet!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 78}}, {"node": {"oid": "bfbf9a889304cb745436cc32cd6ede3c259cffdd", "messageHeadline": "converted context test and medium file test to use Promises. Oh my go\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 169, "deletions": 117}}, {"node": {"oid": "056b0fd9e2a479577924962735077be4b5acfd54", "messageHeadline": "finished creation of file and data access objects and fragments in JS\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 8}}, {"node": {"oid": "f1ae5310fbf7e5d1fbf57b85fd9ffd5f870fcde5", "messageHeadline": "up to generating fragments from encrypted chunk in JS!! Fixed nasty b\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 25, "deletions": 5}}, {"node": {"oid": "efaa370d01e2f5ba687588acdc0f87ad42fe34b8", "messageHeadline": "adding file location to DirAccess working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 2}}, {"node": {"oid": "70317875bd6e05f41803c676d652137df12d1627", "messageHeadline": "DirAccess creation working in JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 7}}, {"node": {"oid": "770bf3465634c802cf88a0772c27e5bcb0a46ad5", "messageHeadline": "retrieving quota from JS works, now into the medium file test in JS!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "0770005b231fe7378b8b26bfc9198c911d14c71e", "messageHeadline": "JS successfully generating quota.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 212, "deletions": 212}}, {"node": {"oid": "b70d41b2c53e68f32c2a49bb9f3cf7fa71d87307", "messageHeadline": "successfully decoded first follow request in JS!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19, "deletions": 8}}, {"node": {"oid": "373ce4e2be333c35e2080a87221abafa1676dee8", "messageHeadline": "correctly getting data for follow requests in JS now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "7921825eedd95244ecea6e40b133cea796a971bb", "messageHeadline": "almost decoding follow request in JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 2}}, {"node": {"oid": "15664cb45ea73b80e34486b82449e7518ba5ca83", "messageHeadline": "successfully sent first follow request from JS, and retreived it from JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 38, "deletions": 32}}, {"node": {"oid": "181b129ff3a02652c7db9f6c066cd94566d40728", "messageHeadline": "successfuly sent follow request from JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 4}}, {"node": {"oid": "8e9e8820d3daa072c8867a4a2202d71c2f49fe93", "messageHeadline": "several more core node calls along", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 82, "deletions": 38}}, {"node": {"oid": "af845d04db0c74755de736bef25b4dc30324a194", "messageHeadline": "core node register working from JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "ba783ff2c085c8db2ebb3b9b127b524b9924ff3a", "messageHeadline": "attempting core register call from JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 1}}, {"node": {"oid": "be17894838e122c0029f569eaf7a77d94cb9a39b", "messageHeadline": "fixed remaining core node call parameters", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 20}}, {"node": {"oid": "dd9878abb9e8318ef484b7f5dcfc64b1593be26e", "messageHeadline": "first core node call working!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 21}}, {"node": {"oid": "79f72e8a4d0b958560cfd651b933f67169135921", "messageHeadline": "successfully sending post, but server closes connection", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 21}}, {"node": {"oid": "8a6c2dd5dfd5d4ed6d52b4e4e9793b63b95e0e80", "messageHeadline": "JS attempting first core API post", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 99, "deletions": 59}}, {"node": {"oid": "9aae76ce1ef155cdf6016d15753f1875f6cf4012", "messageHeadline": "JS  UserContext now takes a usernarme, user, corenode  client and dht\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 37, "deletions": 2}}, {"node": {"oid": "e1436278ebda009e2e7f7b978f16bec84c066a87", "messageHeadline": "catch HttpCoreNodeServer method from url-stem.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "163d5d63d90b86b1dfd3f822bf90f5fc3c27bfc1", "messageHeadline": "medium test run automatically on tests.html", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 54}}, {"node": {"oid": "ba72904ce19b685ee58fac7e319e9e9e509529ec", "messageHeadline": "context tests parsing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 0}}, {"node": {"oid": "2833d9e59aa3b3fc720f4a7f2ffdca6b957febcf", "messageHeadline": "medium test parsing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 13}}, {"node": {"oid": "d2398ac5cc6a9f2bf50ab4340a7f762502463c63", "messageHeadline": "initial medium file test checkin", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 180, "deletions": 0}}, {"node": {"oid": "e873b83fa905f72b5e4a79d1f5bced02feed56b7", "messageHeadline": "just need user context before starting work on medium file test in JS!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 37, "deletions": 3}}, {"node": {"oid": "8fac09a9b370ceb72b5119b7c71e4a53a70dd6c5", "messageHeadline": "Up to LazyInputStreamCombiner and Erasure codes in JS", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 2}}, {"node": {"oid": "637ec29b2c2066beb3bb41a17063cf529cfc0958", "messageHeadline": "bugfix in Start, Filled out JS Location", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 10}}, {"node": {"oid": "fa55bc9d0eed7703a3474ab2cb6f38f16f1f479b", "messageHeadline": "FilePointer -> WritableFilePointer", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 63}}, {"node": {"oid": "8d95307bceaac1851861501c5d484e53cb22b89c", "messageHeadline": "Major refactor Core node data structures to remove use of usernames a\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 225, "deletions": 235}}, {"node": {"oid": "38bf61627679fee3dd980658d40fd3680fe9ea3a", "messageHeadline": "most of cryptree implemented", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 7}}, {"node": {"oid": "12f61ef7d9bc768c463cec5bc53640a76cd0abe7", "messageHeadline": "basic subclassing including overriding a super class function workign\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 12}}, {"node": {"oid": "3e71aa2382b6178bbf32776599c4b3b1031e23c1", "messageHeadline": "removed unecessary read access keypairs", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 14}}, {"node": {"oid": "f68692eb71a497d51451b7c464808ae6c783a2f0", "messageHeadline": "removed unnecessary shit", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 29}}, {"node": {"oid": "461ee9ec8e733a951c5d4838e45a0049399040f8", "messageHeadline": "Renamed  HttpsMessenger to HttpsUserService.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 8, "deletions": 9}}, {"node": {"oid": "76e3dc2d4f4f0f27dd0f7ae975f967bd52969a29", "messageHeadline": "Added CoreNodeHandliner to HTTPSMessenger (/core/), using the same HT\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 120, "deletions": 115}}, {"node": {"oid": "b02f44256bf8bbdd6e13556e5710f06a1f7ac91f", "messageHeadline": "deleted crap", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 268}}, {"node": {"oid": "b253832c6e1d06270e29c1b833fde0e4f0861945", "messageHeadline": "Updated  DHTClient to use ByteBuffer API to prepare POST data.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 10, "deletions": 4}}, {"node": {"oid": "5374de85487cde4d94f0d5de5d100485bd8354c5", "messageHeadline": "ui/api.js#CoreNodeClient now uses  ByteBuffer to prepare POST data on\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 109, "deletions": 83}}, {"node": {"oid": "bfce3a8baa7792e026070341a98c5c1d3da1b88f", "messageHeadline": "test advice", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "468fe189ecacfd47b46ac53fb40611b00dcf0172", "messageHeadline": "Storage nodes nows submit CSRs to localhost if the directory node is \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 117, "deletions": 115}}, {"node": {"oid": "e5f437c8bf9bbb80fb9ab61864314e8d5d92aeec", "messageHeadline": "Promoted ByteBuffer writeArray/readArray from crypttree to byte-buffer.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 11, "deletions": 11}}, {"node": {"oid": "59419db68825939f4e589d004b8e49a79af622c4", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/peergos", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 436, "deletions": 554}}, {"node": {"oid": "fd70c604d9662e7335c4dd100857b59a09986510", "messageHeadline": "small simplification", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 8}}, {"node": {"oid": "68fbf087fd3652cac44187e3213be11a92bfce5f", "messageHeadline": "local tests working again!!!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 13}}, {"node": {"oid": "4f398dcf38933d7d7f3f7a2fe92cddaa5db18bf8", "messageHeadline": "Cryptree refactor completed, including Chunked FileRetriever, though \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 48, "deletions": 74}}, {"node": {"oid": "164a1b4612847286adcb6b3deac18b52024f8fcb", "messageHeadline": "not quite there yet with the Cryptree refactor (not compiling) need t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 203, "deletions": 168}}, {"node": {"oid": "4ff44a695c97007a9d602bad7e878f8c292da2e0", "messageHeadline": "Major refactor of cryptree stuff, simplified the world. Abstracted aw\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 216, "deletions": 406}}, {"node": {"oid": "b83bff694458355f3f0fe9c40eaa3244026367d2", "messageHeadline": "Extracted abstract class JDBCCoreNode from SQLiteCoreNode so that  an\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 840, "deletions": 817}}, {"node": {"oid": "681bcda11847f1a08b9234c0fc71aa7d8382016a", "messageHeadline": "JS Metadata implemented", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 3}}, {"node": {"oid": "5730a9ffc55fe85aee25479563c91e6d3bd361ac", "messageHeadline": "cleaned up FileAccess", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 17}}, {"node": {"oid": "c4d45fe7933c2a69838b76ef9752ae9fa9b612c6", "messageHeadline": "cleaned up DirAccess", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 35}}, {"node": {"oid": "84030616fddc5a6d0aecd65811457d1c5a44ddb0", "messageHeadline": "JS Location implemented", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 1}}, {"node": {"oid": "fcd9055478c5970987b143d580501baa46c94ca4", "messageHeadline": "JS SymmetricLink done", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 6}}, {"node": {"oid": "7611eb807d7f4349e04914eb91e0d1bc681a7e7e", "messageHeadline": "and User deserialize in SharedRootdir is workingx", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 2}}, {"node": {"oid": "6f36523833153e7f283a79e4fd8a82bb8a2faa27", "messageHeadline": "SharedRootDir working with serialization and deserialization, except \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 681, "deletions": 9}}, {"node": {"oid": "7e14a9cee8a9e9801b5765dfbd3a184682bf36b9", "messageHeadline": "recontruct Users from encoded keys, crypto page is now stateless.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 20, "deletions": 6}}, {"node": {"oid": "03b82800087dbaf6c920e2840bdca2fcec09b0d7", "messageHeadline": "crypto.html working again, but using UserPublicKey and User", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 22, "deletions": 54}}, {"node": {"oid": "66475cc9f448300bdc1067bf337fce80b35bf456", "messageHeadline": "running with -localJS now starts a single node local cluster for UI t\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "34ce14c333a6a608bb40b7ac9efd97f8df9f19e6", "messageHeadline": "fixed 10s latency in static http server because of 2 thread pool", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "2570505ae5b91bf14aac8a1e7f3645e13b56998e", "messageHeadline": "correct mime types for static server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 99, "deletions": 92}}, {"node": {"oid": "ddf07e62c1f337b6de1c875d1ce8991d4b09da11", "messageHeadline": "Static UI server doesn't cche by default now, and tries the filesyste\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 10}}, {"node": {"oid": "fb09a27179f4b17f46877383ed7153083b53487d", "messageHeadline": "Made HTTPS UI server serve up static UI files from Jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 137, "deletions": 1}}, {"node": {"oid": "39ac30f76c3a8beeed3b2fe61ee46fdc8a6345a0", "messageHeadline": "Added method to close the HTTPServer started by ErasureHandler Test c\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 9, "deletions": 1}}, {"node": {"oid": "76cace621c74d61f1577d4d2ae54ab79996e6bd5", "messageHeadline": "ErasureHandler is now complete and both the split  & recombine method\u2026", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 119, "deletions": 100}}, {"node": {"oid": "9b1642d1b41c71871e6b575ea5ff6e188dbab5be", "messageHeadline": "Added ErasureHandler for wrapping Erasure in an Http-service.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 180, "deletions": 4}}, {"node": {"oid": "b8782d47658001a1566908a59393ef9f19175c6d", "messageHeadline": "Update ThePLAN.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "abe9e80ecd5487128952563d8d56ebdd9aa2ca26", "messageHeadline": "local tests working again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 2}}, {"node": {"oid": "ecbb7cf2c05a4d68da7dd7293133cf0221fbc31c", "messageHeadline": "further along", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 13}}, {"node": {"oid": "c25914ad14ecc276ec4f350e0bb896bebe939274", "messageHeadline": "fixed serialization, but still one bug remains", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "45620be20b1b29b4d34a9c515488d4ec40394eac", "messageHeadline": "made nonce uses per encryption", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 154, "deletions": 186}}, {"node": {"oid": "a620c9c4d0b163a839f07ab9eb2f664d46ef1ecf", "messageHeadline": "Fixed chunk upload in medium file test, need to use different nonces \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 7}}, {"node": {"oid": "abefe13a67636ae5db6da89f983202c9b92113b7", "messageHeadline": "two process test works until 755th fragment, issue countdown.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 24}}, {"node": {"oid": "f9d1be591eb8bfd772b4d5c6002bc0294faf2594", "messageHeadline": "Update Testing.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 22}}, {"node": {"oid": "cfe8df97dff69ec7964c9d72095dd74e4813fbe4", "messageHeadline": "CSR's deleted, log when SAN is added.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "aafb86b348c4014e7a8203eaefcc957860e3e8aa", "messageHeadline": "Updated several server start-ups such that they acept the \"domain\" cm\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 23, "deletions": 10}}, {"node": {"oid": "c4044c4d02b6e94576b587a3e773e80ad713fd3e", "messageHeadline": "Random port generation fix in UserContext test.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 31, "deletions": 30}}, {"node": {"oid": "ca6b8ab7058b549a19fbfceaa3e201983e1fa12b", "messageHeadline": "Fixed issue around assigning the domain name to listen on when testin\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 13, "deletions": 6}}, {"node": {"oid": "06c48f3aafd491d25a55d87e5fc722aa2a9de220", "messageHeadline": "Update Testing.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "da7bafd0c721d0278e097fd50d1231782f9d77aa", "messageHeadline": "Update Testing.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 1}}, {"node": {"oid": "496b0d9465d03e807f4a95fbfe9b8d25b15cfad5", "messageHeadline": "added testing guidelines", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 36, "deletions": 0}}, {"node": {"oid": "d9a16629056284a8cabd44f1f33ea7b07f3bf8c1", "messageHeadline": "fixed sql bug in core node, now local tests run without any exceptions", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "4048ac8e94fa4a3c93487c2d266322bf16e9e255", "messageHeadline": "Made local tests use in-memory sqlite db, made dht api use ByteArrayW\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 41}}, {"node": {"oid": "f67e07756d1c906032d47a1ac4de55bc8e5a6ad9", "messageHeadline": "got local medium test passing again, although erasure decoding someti\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 20}}, {"node": {"oid": "64f900e041ffe9d1c8b430df29cf6994f53c7611", "messageHeadline": "further unnecessary arguments removal, local tests now get to erasure\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 22}}, {"node": {"oid": "d026e6e7a72f5adda3a8e171ea1f59cc12d03c0a", "messageHeadline": "removed hash and sign from User as we will use the primitive sign ins\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 44}}, {"node": {"oid": "bd0892ce154da2a8779f9598c5469dd8aa414c5d", "messageHeadline": "updated symmetricKey and derived to use tweetnacl's secretbox", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 103}}, {"node": {"oid": "c87d2ec76c3b53f06e7feb1303065b1e60559c35", "messageHeadline": "updated tweetnacl to include symmetric encryption API", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 0}}, {"node": {"oid": "efe9a32db36c3700d8ba66dc26679988fd58d60f", "messageHeadline": "got rid of callbacks in api for now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "aa4635e0e035da0a7a8008154fdfda19bc7c8ec2", "messageHeadline": "updated our TweetNaCl.java", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 5}}, {"node": {"oid": "3544620d5047fddf7696f4eda3ba67f44dd2281a", "messageHeadline": "test now working for JSUserPublicKey", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 6}}, {"node": {"oid": "f99c2f2868058bf6a878959ece137394e06a2675", "messageHeadline": "added extra test on sign keygen", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "f16a852e5848ea28ce8b6f5fa28fbc6a2e61a513", "messageHeadline": "rename and attribution", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 9}}, {"node": {"oid": "87bb8209568e01bd49d40e416b6f2d9dad76f66b", "messageHeadline": "fixed sign keypair generation, and added tests to compair keygen to J\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 41, "deletions": 127}}, {"node": {"oid": "7f1e58267d09c3c60d4dceca21c29f8c1f1db459", "messageHeadline": "made higher level api to tweet nacl, fixed bugs. js unsign appears to\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 650, "deletions": 157}}, {"node": {"oid": "218954c84f74b7d5be7ae062e04a33df4a6a0950", "messageHeadline": "OurTweetNaCl port now tested and fully compatible with JS version", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 5221}}, {"node": {"oid": "728b9551581023046abfb198881c899c20819da3", "messageHeadline": "java decrypt inverse of JS encrypt", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 6}}, {"node": {"oid": "886bc7e0dbf8971a1b30a22adeff02bded0d27f3", "messageHeadline": "our new tweetnacl java port is correct on boxing compared to JS version", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1061, "deletions": 23}}, {"node": {"oid": "274827a96eb65e6e5107f569d1b61a9be92aaff1", "messageHeadline": "crypto wrapper fixes, now boxing and unboxing work correctly.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 7}}, {"node": {"oid": "e83017b01c4ec4f90c30c7f129a364b3edc35785", "messageHeadline": "new end to end (local) test started, user registration working. Bugs \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 4}}, {"node": {"oid": "c4124e2e053222f223f571c74ffcf58a3c7d0202", "messageHeadline": "Update ThePLAN.md", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "d8722de3ee27368d852e137eb44f12ac93a53363", "messageHeadline": "reworking crypto to exclusively use UserPublicKey and User, not the J\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 201, "deletions": 528}}, {"node": {"oid": "9341be5a58a8648acaa303747f9e3b2ed890e16b", "messageHeadline": "And now for the actual tests...", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 155, "deletions": 0}}, {"node": {"oid": "af3d0da85e5b74539cee8052e69d58ace508730c", "messageHeadline": "Started adding (jasmine) unit tests for javascript api.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 15, "deletions": 2}}, {"node": {"oid": "4c26c0fa7f06daf98370ca9818a77df48560b8d5", "messageHeadline": "improved key generation scheme, now as good as scrypt intra correlations", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 15}}, {"node": {"oid": "ca820e45362f891cdf5bbdcaedbc3a619b207639", "messageHeadline": "got all crypto primitives working in JS, including deterministic gene\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5258, "deletions": 74}}, {"node": {"oid": "508984b53c879746841e76c6fb9a98dccbd8244c", "messageHeadline": "finally got deterministic ecc key generation from password, and encry\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4164, "deletions": 84290}}, {"node": {"oid": "47882c3b4b36e4c5292bb18901e339284a64ea57", "messageHeadline": "more debug info", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "8eba23cd516984774a9d036a81c70529be31edc3", "messageHeadline": "Merge", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 203, "deletions": 2}}, {"node": {"oid": "a87eaa28a8b0485a42bced4e084f6c5d1dcf5052", "messageHeadline": "ECC signatures all working in Java, just leaves deserializing keys now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 62}}, {"node": {"oid": "75dd0d36693c4c28a7ac1bee02d050b31233d09a", "messageHeadline": "Fleshed out JS api for DHTClient and CoreNodeClient.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 203, "deletions": 2}}, {"node": {"oid": "f607ca8d8aeb27dbda2c005fbb5bbe3cff4e5b57", "messageHeadline": "started ECC on server side", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 26, "deletions": 196}}, {"node": {"oid": "42daf31109a90e8adca0168a6308a65af9b97fcd", "messageHeadline": "cleaned up example", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 33}}, {"node": {"oid": "74f045bdee03ddd939bd2c704207aa3639bdd388", "messageHeadline": "cleaned up example usage, but not exporting pure rsa encoding, and st\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 47}}, {"node": {"oid": "7f9172677c2e9bf52f6919736f63b96da3914e19", "messageHeadline": "all JS User and UserPublicKey api implemented, however unsign is not \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 14}}, {"node": {"oid": "3ec2d3ab03c2490e0102c230cd2070b3d39bcf3a", "messageHeadline": "decryption api working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 23, "deletions": 6}}, {"node": {"oid": "f51b83d0cba8bfa5e38138cc4b2890f2d83b3604", "messageHeadline": "encryption api working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 11}}, {"node": {"oid": "b9ec8bdb866dd94633bfb3399ead48a663812557", "messageHeadline": "initial js api", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 9, "deletions": 68}}, {"node": {"oid": "73f82232904280d6590b6e50e326873341d86686", "messageHeadline": "RSA and ECC generation, encryption, decryption, and key export workin\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 19060, "deletions": 13526}}, {"node": {"oid": "9304e9bd303a28391f3b81f0e3125c1855e73d6f", "messageHeadline": "rsa encryption too buffer working, but decryption from buffer failing\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 5}}, {"node": {"oid": "c4adc39a9a0093e9ba27dfc858b8c6dd840d65b6", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 237, "deletions": 93}}, {"node": {"oid": "ff54db502eb6c370f0eab1032bf0632837ffa2dd", "messageHeadline": "imported keybase and end-to-end", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 68616, "deletions": 4713}}, {"node": {"oid": "7c685942984ee102cd28a31444bd19ee11e17c3d", "messageHeadline": "Added simple resource handler for serving web-ui content.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 90, "deletions": 3}}, {"node": {"oid": "c83a60931d4ad6e043a1b3bd8c259eb4b49c7710", "messageHeadline": "Added main method to UserContextProxy for testing.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 149, "deletions": 92}}, {"node": {"oid": "1500f0920efc5bb68f9718d725d89ae745da8e10", "messageHeadline": "removed js prints", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 4}}, {"node": {"oid": "827098ccdc06e7199d1d0a4ad27215c8b0be4925", "messageHeadline": "got byte[] and Uint8array api for javascript rsa en/decryption working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 39, "deletions": 14}}, {"node": {"oid": "163d5f179c5b56e012fc9b69fb892ce463d7c346", "messageHeadline": "rsa crypto working from java using javascript in nashorn", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 17}}, {"node": {"oid": "e7750b04a0186e4de73ced434fcc2a30985a5606", "messageHeadline": "added some more utility methods around Uint8Array's and base64. decry\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 61, "deletions": 54}}, {"node": {"oid": "8aea23afab07f74920bf03806874ba15622911de", "messageHeadline": "got pkcsv1 / pkcsv8 conversion working and invertible (JS needs pkcs1\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 4}}, {"node": {"oid": "9596328878da07b56638d2d27ce1f59cbe0e0dfd", "messageHeadline": "Added boostrap navbar to UI, authenticate methods assuming a TypedArr\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 164, "deletions": 80}}, {"node": {"oid": "42a9ccfec86a323a1076015c27a55558e9efe1b7", "messageHeadline": "Updated dependency name change.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "bec33e76cd9d6742ab80718df89518d7258e5bb6", "messageHeadline": "Renamed helper.js -> lib/api.js. Also updated HTTPCoreNodeServer to t\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 3}}, {"node": {"oid": "144efc8d364e36c6014da956bac7817fbea0aa63", "messageHeadline": "separated out our js helper functions, got all JS libs parsing under \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 154, "deletions": 113}}, {"node": {"oid": "9e3744d4efaefd286c2b291e0896f97bc9598279", "messageHeadline": "update to java 8 so we can use nashorn goodness", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "83513cc9493a0cd10f15098bdf92742a4e3b1706", "messageHeadline": "Let the UI begin.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 0}}, {"node": {"oid": "5e9b0c036068e01564b24ed3691241a3924eaff8", "messageHeadline": "implemented UserContextProxy for Web UI.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 177, "deletions": 69}}, {"node": {"oid": "9512fae90baee360a2438be13a80e27726031c34", "messageHeadline": "sha and aes-256 examples added. Now everything is in place for the UI!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 158, "deletions": 0}}, {"node": {"oid": "b969d5be3a85ec6e30585ed9368c8e38a439e6e1", "messageHeadline": "added demos of indexeddb API, and RSA crypto, and keygen from scrypt", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15177, "deletions": 0}}, {"node": {"oid": "08740f94a7e6f9800bc7e791523de5b70e7cec13", "messageHeadline": "f", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 15, "deletions": 5}}, {"node": {"oid": "da50d4d50bb3a23c3db1d8e36f8587cb4483787a", "messageHeadline": "The Peergos Plan! set goals and timelines for releases.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 12}}, {"node": {"oid": "b48c8097bf43a1cd91279db8e321cc83706b8ab9", "messageHeadline": "fixed USERAPI puts and gets to work if the offered target node is in \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 32, "deletions": 11}}, {"node": {"oid": "d641681900039c44323ea19a8404d884c299c8cf", "messageHeadline": "Needs a real address so we randomise the port against localhost.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "5cf4beb61d86b5b0fac2f7df390cec8c9e1d40f7", "messageHeadline": "Need to make this InetAddress unique in the tests since it is used as\u2026", "author": {"name": "chris", "email": "ubuntu@boddy.im", "user": null}, "additions": 1, "deletions": 1}}, {"node": {"oid": "539757a81414dfada3cb37f86dea8b90814a3df4", "messageHeadline": "Fixed ambiguous class references.", "author": {"name": "Ubuntu", "email": "ubuntu@boddy.im", "user": null}, "additions": 5, "deletions": 5}}, {"node": {"oid": "d0577b859fe3fde0d05f983cfec84f72df9be046", "messageHeadline": "made test option to randomise usernames", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 7}}, {"node": {"oid": "3e26c4e1301f82e37c6bbaf3db9b0a81d0c7c1ea", "messageHeadline": "fixed core node accessibility?", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 2}}, {"node": {"oid": "233ca261c5f1d01df760853c77b0dc4072626e26", "messageHeadline": "new certs", "author": {"name": "Ubuntu", "email": "ubuntu@ip-172-31-39-71.us-west-2.compute.internal", "user": null}, "additions": 84, "deletions": 86}}, {"node": {"oid": "80cbbe714ff87d890b81bd1ea40e66a176505bf6", "messageHeadline": "core node address fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "35e53cede62c22747d3da8d52eb29e5409f3a43c", "messageHeadline": "hopefully dir server is working again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "39e71daf1858e161525ec7e515f66be60c236eda", "messageHeadline": "bugfix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "c2d28eb677c8b3fdaf9273277b96efd1d432b367", "messageHeadline": "UPNP kinda working. Needs more testing.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 153, "deletions": 114}}, {"node": {"oid": "3d7b07f1b3190b2578d1d39854c9246a03047cbf", "messageHeadline": "new certs", "author": {"name": "Ubuntu", "email": "ubuntu@ip-172-31-39-71.us-west-2.compute.internal", "user": null}, "additions": 81, "deletions": 79}}, {"node": {"oid": "6ffebf275c4d1ade9fd935125145a69fc4d43fc2", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 6}}, {"node": {"oid": "09ef8a80ebba140dd81324de92c43e1df928bdbd", "messageHeadline": "hopefully fixed getRootFiles()", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 6}}, {"node": {"oid": "5cf6ec5f11d1d388c28269508f0a3ca93fc38cc1", "messageHeadline": "StaticDataElement is now publicly visible.", "author": {"name": "Chris", "email": "chris@boddy.im", "user": {"login": "cboddy"}}, "additions": 3, "deletions": 1}}, {"node": {"oid": "6966d6c05f0d23efc62b0b2a8b23c1463b8afc08", "messageHeadline": "Fixed in-memory DHT implementation.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 5, "deletions": 3}}, {"node": {"oid": "f5771c7ed700274deaef6d01c51477006c8caab6", "messageHeadline": "Increased the max array size read off the wire for HTTPCoreNodeServer.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "7d0390933c77f5127a6570ae996c78af8ca1d142", "messageHeadline": "Merge remote-tracking branch 'origin/master'", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "d9ddec0feaba34c78e708cf29fe379fb021fbacd", "messageHeadline": "Fixed bug in key-caching.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "fa455c10cd760069a3eb9cc0f5885bf9864906bb", "messageHeadline": "bootstrap now is more helpful", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 3}}, {"node": {"oid": "e655752eab99a07a8bfa57327a41d5f2b1dc4a41", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 52, "deletions": 7}}, {"node": {"oid": "a80577851a4d5dc1d17138d1b2ceb317f38d2d1a", "messageHeadline": "added optional domain override to bootstrap, eg. ./bootstrap localhos\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 1}}, {"node": {"oid": "061e668d6a9b765377551e9bdbc7c8b2d17ee9c3", "messageHeadline": "Cached KeyPAir generation in UserContext.Tests... isnce this takes 10\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 52, "deletions": 7}}, {"node": {"oid": "8f962f00c91b3f75e340ed08fccd566be8e2dd86", "messageHeadline": "Added start parameters to bind to localhost when in \"test\" mode.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "a3c319821f050f8c47522a768f055b9d4718ea07", "messageHeadline": "local tests work again", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 84}}, {"node": {"oid": "172198dd3a9eb1c43ab98f55d9ecb02fbfc74d2a", "messageHeadline": "test scripts, and made upnp delete mapping afterwards", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "58c05241e0b2aa7c80c3beda83ca2c569fd78e6c", "messageHeadline": "The boys are back in town! UPNP is working, thanks to WeUPnP.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 56, "deletions": 5}}, {"node": {"oid": "bd2b3f46c985632184fb4cc62256c7a906910e2b", "messageHeadline": "removed stun/turn server that appears to be offline", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 9}}, {"node": {"oid": "e9b4f16cf3a788114830d0baa022b284ca58deb5", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 47, "deletions": 5}}, {"node": {"oid": "b6dc6aa911a13e5e5848a010c1af7bde147bb71c", "messageHeadline": "require message integrity", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "fac84f015a3a1301548bd2387a27c80d076d0a58", "messageHeadline": "Added static tility for (de)serializing KeyPAir objects, mainly for s\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 47, "deletions": 5}}, {"node": {"oid": "4dfea21e9f7d5ddfeff5345610ee44fe35ff51ee", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "97a50b8971815415083ccfb6955e90da8d22bfcb", "messageHeadline": "first packet sent successfuly through ice NAT traversal.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "f79ea5e627ef3d704508139c692be09f6bc93cb9", "messageHeadline": "initial commit of ice4j stuff, and initial test written (IceDistributed)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 51497, "deletions": 13}}, {"node": {"oid": "fd9da014ccbf4807a7fd64fc934302adab175044", "messageHeadline": "removed localhost listening, use myIP lookup", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 4}}, {"node": {"oid": "26bd6866cc153d066cf3356d52562811e43874ec", "messageHeadline": "storage servers now get their external IP from the directory server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 5}}, {"node": {"oid": "6626794d896836155ffbeb552c1756bc0b3322ab", "messageHeadline": "add MyIP service to directory server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 54, "deletions": 0}}, {"node": {"oid": "417d359ed89c5aa7bd77db4552d86a2e78b8eff2", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "8026fa25e9bac7452ebff598e749cf4ae93af7b2", "messageHeadline": "fixed directory server certificate identification", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 1}}, {"node": {"oid": "5f91530b0b6db39019251bd292acf99759f1e740", "messageHeadline": "logging signing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "2a4a01837dc05fb475c5b479acd0ab0864fa4d7d", "messageHeadline": "updated certs for peergos.org", "author": {"name": "Ubuntu", "email": "ubuntu@ip-172-31-39-71.us-west-2.compute.internal", "user": null}, "additions": 84, "deletions": 87}}, {"node": {"oid": "259e4b6dc3c009c20ebe50bc7c11bdfd89106a40", "messageHeadline": "bootstrap fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "4f6566db1c71b51f756eba319273d7a9d48bb60f", "messageHeadline": "Makefile fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "d505752c750e189133b22718aaaeee7c60ec6d64", "messageHeadline": "missing :'s in Makefile", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "21a3c54ae013b7bf2ec30c24c00e36fb64c2b2ef", "messageHeadline": "added make backupcerts and make restorecerts", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 1}}, {"node": {"oid": "876aabd2ebf2e91f47560328443b7c180483401d", "messageHeadline": "moved to peergos.org", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "ddf8389411360009acaa6cee40bd0ea296603a22", "messageHeadline": "made usercontext test idempotent (almost)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 7}}, {"node": {"oid": "d954c1479a92d5fa5ef5206cd92449f557047bf4", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 151, "deletions": 108}}, {"node": {"oid": "c57bc05647639cd71a450777fb12a2bab89ec697", "messageHeadline": "Ensure a NullPointerException is not thrown in this method if fragmen\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "08628ce2a2ae3945d10f4ff5d77ff721c0ce4b85", "messageHeadline": "make now overwrites certificates from .src", "author": {"name": "Ubuntu", "email": "ubuntu@ip-172-31-39-71.us-west-2.compute.internal", "user": null}, "additions": 3, "deletions": 0}}, {"node": {"oid": "52fc71789686fc00b7c7a40498fb9dafdc01affc", "messageHeadline": "cert updates", "author": {"name": "Ubuntu", "email": "ubuntu@ip-172-31-39-71.us-west-2.compute.internal", "user": null}, "additions": 99, "deletions": 80}}, {"node": {"oid": "495580d44fa1c93e24c87672cfaaa5d1a38831f9", "messageHeadline": "made cert generation handle domain name correctly, ready for permanen\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 49, "deletions": 28}}, {"node": {"oid": "6da8733565799f31b9aaca81c259597cc1b4092f", "messageHeadline": "fixed bug causing some fragment register verifications to fail (added\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 12}}, {"node": {"oid": "a340390b7cc58c4317b0439a65e4474b49105ce2", "messageHeadline": "updated readme", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 9}}, {"node": {"oid": "dd4776621ac0a7005c1c51d9c1eaa6c774c3f31a", "messageHeadline": "updated todo", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 1}}, {"node": {"oid": "118f84456a65d5619a7ba38a2c0f29435677b0c5", "messageHeadline": "bug fixes, minor refactoring. 2 chunk file test now WORKS!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 44}}, {"node": {"oid": "b9868a5340ddee962502a9e07498c3d9bee5dd85", "messageHeadline": "bug fix", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 10}}, {"node": {"oid": "5175e2910578a42970c2284e02707d0be69b37dc", "messageHeadline": "implemented 2 chunk file test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 156, "deletions": 14}}, {"node": {"oid": "aa095bafeade7b63b7bdad234c1a04a7f41a6e17", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 42, "deletions": 0}}, {"node": {"oid": "eb178ed8fd8ce69a380b0fe5f3e2e7f45f1c222a", "messageHeadline": "linking metadata blobs implemented (not tested)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 127, "deletions": 54}}, {"node": {"oid": "de611e2b2d189dbca2b46631188e1557c477c572", "messageHeadline": "Removed spurious declaration.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 1, "deletions": 4}}, {"node": {"oid": "06bc2c423266bf8012d9280bb87eb593fa3fb5ea", "messageHeadline": "Added a dummy local-memory DHTUserAPI implementation that does no aut\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 45, "deletions": 0}}, {"node": {"oid": "f8c3cdd209d4e4caecd907d3d704ba12f8d64251", "messageHeadline": "First successful run of UserContext test (uploading and sharing a fil\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 10}}, {"node": {"oid": "904bd5ab8eff788b3575e17773813f2ad94387e2", "messageHeadline": "fixed a bunch of bugs introduced during akka removal", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 374}}, {"node": {"oid": "4846b23c8547b47da5040cede78997cfd65b94d6", "messageHeadline": "further refined ssl cert test, and fixed signing of directory server \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 6}}, {"node": {"oid": "acefb43d0f5127a2f83dd5d17f52a314a7d737ac", "messageHeadline": "now passing new refinded ssl test!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "6edf268a6afd4424948840303c88c80488b70a22", "messageHeadline": "improved ssl cert test to fail on the same thing that https connectio\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 4}}, {"node": {"oid": "40d26a5e4f8e6df1e9afadb630dfa73dd055fec0", "messageHeadline": "fixed SSL certificate chain issue!!!!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 12, "deletions": 8}}, {"node": {"oid": "27eaa87cbc6ca7aa06c828550171f06f2aa355bc", "messageHeadline": "cert serial numbers need to be unique for a given CA", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "4d0dac7e8ae19d0ad58113bca5034a399f35baef", "messageHeadline": "SSL refactoring", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 28, "deletions": 96}}, {"node": {"oid": "ed11a282fa03f82b5b5f5a75dcb7b07c3dd1d83a", "messageHeadline": "added small test method in SSL which demonstrates the certificate iss\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 72, "deletions": 21}}, {"node": {"oid": "76e3150759eb5a23ce52720ffae4a2819e081d9f", "messageHeadline": "more checks in place, but still not working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 9}}, {"node": {"oid": "0a399dd91b1f30a96739fa7529f58b9a5b0095d9", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 13, "deletions": 10}}, {"node": {"oid": "d751ca34165a9ead9a76b23c8dcf0109c6252f41", "messageHeadline": "added PKCS12 example class", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 389, "deletions": 15}}, {"node": {"oid": "b292d1b842a0cc190653ea47e5e2e61582a3136f", "messageHeadline": "Added some debug statements and switched the trustStore.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 24, "deletions": 8}}, {"node": {"oid": "2e53ff5bbf586db8dd49fcfe3ba9ec2b289d2849", "messageHeadline": "ssl fixed??", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 5}}, {"node": {"oid": "e900eb6e2774ebf0d987ab78b31fa7fa8159e78f", "messageHeadline": "Added clusterAddress as parameter for UserContext.Test.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 20, "deletions": 5}}, {"node": {"oid": "b67ea9d9a3377cce1b1d045158c420c171298f01", "messageHeadline": "bug fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 24, "deletions": 9}}, {"node": {"oid": "e97c396e6d6a8caab8ab27b92af5315b2145343a", "messageHeadline": "removed akka and scala, now much faster!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 265, "deletions": 413}}, {"node": {"oid": "d8fc950b6e59f2f28e31868bce92daf66872a274", "messageHeadline": "bug fixes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 10, "deletions": 9}}, {"node": {"oid": "294b824dcf65305953ba1f1872f71c221f38bb1a", "messageHeadline": "more UI API", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 0}}, {"node": {"oid": "4fb5b3667eb9c9ea11cc7a79c427e7cd610122a4", "messageHeadline": "cleaning up API for UI", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 95, "deletions": 68}}, {"node": {"oid": "a4c87d368b3f6e2fcaaab9cbf7d0ff2e03ceb03b", "messageHeadline": "Directory and file sharing (file of a single chunk) is working. Booya\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 272, "deletions": 151}}, {"node": {"oid": "14a8417b1d94795b0b00da8511a5276bba5d593f", "messageHeadline": "getting close (still won't compile)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 106, "deletions": 70}}, {"node": {"oid": "abdc5472359472484fbdec65d57f0667d9df0042", "messageHeadline": "reworking folder operation", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 137, "deletions": 49}}, {"node": {"oid": "91f58ea87fbda0af9937a74917b0525f0bb93432", "messageHeadline": "on the way to file level API", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 99, "deletions": 23}}, {"node": {"oid": "655a1fb2ffe3c86046e3451fed96d96a621dc022", "messageHeadline": "small API clean up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "0d6e069ead34f53797fc946f3f61e951995816da", "messageHeadline": "made static data encryption use pgp format, fixed loads of bugs, now \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 148, "deletions": 17}}, {"node": {"oid": "0a2ca3890b2a22fbbc17a790f3ad697d7482e8ea", "messageHeadline": "was signing the wrong data", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "a748265f1eedeac01d4cb04e7f620e3f520053ef", "messageHeadline": "UserContext tests progressing, but coming up against RSA input data s\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 210, "deletions": 101}}, {"node": {"oid": "394768d220fa62dbdea4982725000066ddcb0e52", "messageHeadline": "moving cryptree tests to UserContext. WIP", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 12}}, {"node": {"oid": "88c65fb4eae74739c6757b8693ab435a7c4b0543", "messageHeadline": "added User clearance key data to [Abstract, HTTP, HTTPServer] CoreNod\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 191, "deletions": 72}}, {"node": {"oid": "c4c3662278a858b8c025d37c3f20470afa766ce2", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 583, "deletions": 69}}, {"node": {"oid": "fc1dc98d77a567b7bf29d914992ba3ebaff58538", "messageHeadline": "granting write access to a file but not to the enclosing folder doesn\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 9}}, {"node": {"oid": "aec5fd3ba5a6b1c3a90b8afc60e73db60940900d", "messageHeadline": "more cryptree implemented", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 103, "deletions": 58}}, {"node": {"oid": "7ced246af8c50f19dc20050fef83eade29597edf", "messageHeadline": "progress on write cryptree", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 130, "deletions": 46}}, {"node": {"oid": "3110d638084f8ce9584eb48696e41bd8fb383316", "messageHeadline": "small read cryptree test running", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 111, "deletions": 5}}, {"node": {"oid": "e21f2587aa0b266c2ebc8453fda07f545e355bb3", "messageHeadline": "first stab at cryptree primitives", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 355, "deletions": 69}}, {"node": {"oid": "d082a04938841c410612fbf9aa640535000a223a", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 263, "deletions": 132}}, {"node": {"oid": "fc1e7861892f7ea69feaf36c374a235e7aa2b911", "messageHeadline": "tweaked core node impl for SQLite core node.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 239, "deletions": 62}}, {"node": {"oid": "bb51f76486e890fc5f19ae55b3c6194ec6c1dfac", "messageHeadline": "updated ToDo", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 8}}, {"node": {"oid": "ba203f5fc2dfabddc8458cbf461178c6f88acfff", "messageHeadline": "storage nodes now call registerFragment after successful PUTs which c\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 24}}, {"node": {"oid": "f52c590ff859d14b5c6b9cd9f3947f1492712237", "messageHeadline": "now downloaded fragments are arranged in the correct order and erasur\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 2}}, {"node": {"oid": "f06948a5de9cb5f759fc7b9b73c87fd552b39ef4", "messageHeadline": "chunk download is working, just need to correct the order of fragment\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 108, "deletions": 42}}, {"node": {"oid": "838d68380a4ba1bb942615b31589be34b3c3559f", "messageHeadline": "full chunk upload working correctly!!!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 6}}, {"node": {"oid": "0d258dc9d3353325b3ee46b579d7be60e5a285b2", "messageHeadline": "chunk upload with full fragment authorisation by storage nodes is imp\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 75}}, {"node": {"oid": "c5e98e6be8b01fd853bc1bfde54cbe5694b32000", "messageHeadline": "directory server serves up list of core nodes now", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 84, "deletions": 0}}, {"node": {"oid": "5212317eaa623cda8337b2d6d405c926d94973ff", "messageHeadline": "made bootstrap generate and sign core certificates as well, also fixe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 142, "deletions": 15}}, {"node": {"oid": "f0f5c1d2a36b6cb34631ffa3420819dfe40764ec", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 196, "deletions": 95}}, {"node": {"oid": "05d47914ab871ea135ecb8539f940fde67e4e8d6", "messageHeadline": "actually start core node server in static method!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 10}}, {"node": {"oid": "35d655ff539eecc66b9b2688f378538d14669956", "messageHeadline": "Updated core node test to include the remainder of the core node API.\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 196, "deletions": 91}}, {"node": {"oid": "da69d431fe8af2ca1e25e5eeb22ce4b5d90c5755", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 21, "deletions": 15}}, {"node": {"oid": "16a01049002dca911f3fa52bd926cd3c49b9fe53", "messageHeadline": "test harness now starts a core node, user context tests now use this", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 21, "deletions": 15}}, {"node": {"oid": "caf772f2a344be8f1d0078400c4fcf855ee8892a", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 308, "deletions": 152}}, {"node": {"oid": "19d5d2579a99b478b8e0e5babfcb231a3904a4ee", "messageHeadline": "sql", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 0, "deletions": 4}}, {"node": {"oid": "76dbe5627bf49940ac12596c2c579eb4335c1ab4", "messageHeadline": "added isFragmentAllowed to core node API", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 67, "deletions": 1}}, {"node": {"oid": "dc36ff492107515bf22853eaef170534aec2fa50", "messageHeadline": "large core api refactor, now fragment hashes and their owner are visi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 213, "deletions": 116}}, {"node": {"oid": "6ccf6cdca4d621ed47e54ad652d1b5edb66817de", "messageHeadline": "renamed fragments to blobs in the core node api to make way for actua\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 51}}, {"node": {"oid": "8767f2de3fccde716ca5a7e7b0c382db3e207b86", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 349, "deletions": 160}}, {"node": {"oid": "d816383d83f6ae0dc3d43b23d753988d4ea27fe0", "messageHeadline": "added sqlite impl. not finished but mostly working.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 644, "deletions": 43}}, {"node": {"oid": "8fb8a8fa6211a80d4cc364f1bb7c0de735326cb7", "messageHeadline": "made starting 100 storage nodes during testing on a single machine po\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 3}}, {"node": {"oid": "c6c12c3a1307d8db431fdfefb5dd9d9166f6a88c", "messageHeadline": "now all inter storage node messages are over http, all up/down loads \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 59}}, {"node": {"oid": "1c09815b236c785b825ec966a5a89dee8e616e6a", "messageHeadline": "made the fragments in a chunk upload in parallel, now chunk upload ta\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 88, "deletions": 71}}, {"node": {"oid": "3349ba0ac5db7ce85c4f5e147fd0fb856e407879", "messageHeadline": "added http messenger for storage nodes and made it default, still tak\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 219, "deletions": 47}}, {"node": {"oid": "da7b7942c962e663a12dc6275b0d6f4767abe70f", "messageHeadline": "fudged SSL for single machine case, then the first chunk upload succe\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 43, "deletions": 24}}, {"node": {"oid": "a7f7c2e310da5c6be843cd67e98148fc9a47b277", "messageHeadline": "in theory chunk uploading should be working (minus storage node check\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 52}}, {"node": {"oid": "a8282715123ee7a383b7233388810ee0bc59901a", "messageHeadline": "got user dht api implemented using futures. ready for testing", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 143, "deletions": 24}}, {"node": {"oid": "23906a225c595c087e9dedf7218ea28b9dd08020", "messageHeadline": "ready for a proper dhtapi interface, refactored useful stuff in Seria\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 283, "deletions": 101}}, {"node": {"oid": "c469feaaf9cadea508514bc6536633591fdc15cf", "messageHeadline": "fixed port references for core node, added getUsername to corenode api", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 8}}, {"node": {"oid": "e430624a5b8736d875509f677fe2ff59b13d20e7", "messageHeadline": "massive refactor to separate out \"user\" stuff, made UserPublicKey and\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 300, "deletions": 160}}, {"node": {"oid": "fccd335592ab5739c9e343988eca315965dd7096", "messageHeadline": "HTTP core-node client & server now passing all tests that MockCoreNod\u2026", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 47, "deletions": 31}}, {"node": {"oid": "581721f4d31e945bd781f9d9c9947f09fba5a428", "messageHeadline": "started testing HTTPCoreNode. HTTPCoreNode is not ready just yet...", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 153, "deletions": 153}}, {"node": {"oid": "e6cffdb2e2f8ab6b05c8ad33c31e5efe42434015", "messageHeadline": "added HTTPCoreNode client and server.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 688, "deletions": 282}}, {"node": {"oid": "832d322403155045e540f95f9297365337b818fa", "messageHeadline": "HTTP core node api complete(ish).", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 49, "deletions": 29}}, {"node": {"oid": "be197ec1ca0c678b94b2862eb93d7255c9ce42b6", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 6, "deletions": 14}}, {"node": {"oid": "7c186e7d0a27e4bd7ed8314385e31f7029c4424d", "messageHeadline": "more HTTP core node methods.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 27, "deletions": 3}}, {"node": {"oid": "211eb95d64e5d9a3d23ba8af68801abddae269a4", "messageHeadline": "fixed remove fragment", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 14}}, {"node": {"oid": "5bfec457657f2224032b8b40650930609ea6b7a2", "messageHeadline": "more methods for HTTP core node.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 116, "deletions": 61}}, {"node": {"oid": "b71440c4bc524dddc82d2034bc7351a6cbde430e", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 27, "deletions": 13}}, {"node": {"oid": "28f6ced368ad7ef1adcb9f1c40219527bab4f217", "messageHeadline": "added start of HTTP core node.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 132, "deletions": 3}}, {"node": {"oid": "84936c1688188458212a50ab4ce86e02a0417568", "messageHeadline": "made metadata stored under a arbitrary key, and added test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 27, "deletions": 13}}, {"node": {"oid": "55540f83aca878df158d21ef660990b530a6e593", "messageHeadline": "register fragment added to corenode API, and tidied up", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 50, "deletions": 27}}, {"node": {"oid": "68359fd121b0e2d78852e8082aa0bb20fb0d2f4a", "messageHeadline": "git ignore working... I hope", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 3, "deletions": 70}}, {"node": {"oid": "3a9b851081a5214d675aaed548c818cea162f3a2", "messageHeadline": "extended core node api and tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 172, "deletions": 156}}, {"node": {"oid": "326750cfc84cb0253aa6b6f5ba99731b225745db", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Peergos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 504, "deletions": 154}}, {"node": {"oid": "23ef28fd3874576dc5fd976f3fd3711ee5fa7266", "messageHeadline": "made all API calls return futures, made scripter commands wait until \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 79, "deletions": 61}}, {"node": {"oid": "6e07b7701ad65fddcbe408b9ba06e0f4edb7e0db", "messageHeadline": "fixed bokred merge.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 2, "deletions": 68}}, {"node": {"oid": "78fd03196c662c9b2c33e0a3a6cb2b0998c88cb9", "messageHeadline": "finished core node api, updated some of the tests.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 1664, "deletions": 359}}, {"node": {"oid": "668c5dadbe34c19c0551cb89cd1a9256a9e6a005", "messageHeadline": "finished core node api, updated some of the tests.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 504, "deletions": 154}}, {"node": {"oid": "96fa7beb9c093c6262fd40c4dc51f83c00270fbd", "messageHeadline": "updated TODO", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 5}}, {"node": {"oid": "cf91e51ef465b7c473f6c6bf9c0e0e5d9ee995fb", "messageHeadline": "readme update", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 5}}, {"node": {"oid": "49e47ff311a846b22d2c3c866e62d7caf53ec745", "messageHeadline": "EncryptedChunks now use the erasure code API to make fragments or rec\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 126}}, {"node": {"oid": "f8b826c6a3411fc43b5ccf1369aba75d3b22247f", "messageHeadline": "erasure codes now working with arbitrary failure tolerance, ready to \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 29, "deletions": 23}}, {"node": {"oid": "2dc637d2623eac360f4de29596afe43214e42504", "messageHeadline": "implemented interleaving of encoded sections to transfer fragments. O\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 117, "deletions": 45}}, {"node": {"oid": "552e33e2c4a2ef6a960bd8e6c41555a3893d54b4", "messageHeadline": "transmission block encoding appears to be working, and strangely the \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 72, "deletions": 2}}, {"node": {"oid": "b42444b03d3a33e72044ddbd47ec97df041c4fb5", "messageHeadline": "refactored galois fields to make switching between them easy, at no c\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 126, "deletions": 150}}, {"node": {"oid": "ce1e7d3e36489b694eba1742d517dc582b90144c", "messageHeadline": "got erasure coding with GF(2^16) working. Time for the interleaving now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 133, "deletions": 50}}, {"node": {"oid": "b8f4fde4b337e315c4a4f5917e4a1bd26972fdf7", "messageHeadline": "got erasure codes over GF(2^10) working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 64, "deletions": 56}}, {"node": {"oid": "1f61c2ea0bcf7794a1fb982c14e27e06295d28a9", "messageHeadline": "got Galois encoding and decoding using GF(2^2) working.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 333, "deletions": 28}}, {"node": {"oid": "ea9f3ad4a74f35deed802b99edecf7567546ff76", "messageHeadline": "added public certificates to git ignore", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "3a5cc8c38b4c1cf41369d8f4a99d3dcc73503bb0", "messageHeadline": "changed to GPL 3, implemented AES encryption for chunks, implemented \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1103, "deletions": 397}}, {"node": {"oid": "d9cb539aaf6220d323c4683adc6f34a78c5050b0", "messageHeadline": "first pass at AES chunk encryption, also made all RSA stuff use BC pr\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 62, "deletions": 41}}, {"node": {"oid": "9cf078a63e0e4069ac4f917cfd53153209aec222", "messageHeadline": "missing library added", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 57, "deletions": 19}}, {"node": {"oid": "56e140ad439bd87cbe076d467e1f0158bec0d817", "messageHeadline": "Merge branch 'master' of https://github.com/ianopolous/Defiance", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "beb2aff2e18cf706302a3359ebb698d9129b23a9", "messageHeadline": "DHT reimplemented using akka actors. PUT, GET, CONTAINS working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 578, "deletions": 988}}, {"node": {"oid": "56519a83186b0ec747bdbdef2f7a21463bf1dd80", "messageHeadline": "merged with chris.", "author": {"name": "Chris Boddy", "email": "christoph.boddy@gmail.com", "user": {"login": "cboddy"}}, "additions": 368, "deletions": 2}}, {"node": {"oid": "3bb8945c9700aa53963e2f152c3f1eb4f1b2378a", "messageHeadline": "reimplemented DHT router using AKKA actors, still need to add put,get\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 617, "deletions": 150}}, {"node": {"oid": "cc371af5573a753c27c1f88c8934455bb6036438", "messageHeadline": "BOOYAH! First successful DHT creation over SSL - Why does reading the\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 4}}, {"node": {"oid": "a7170617b5220405612d43fcec07d87b23e163ba", "messageHeadline": "fixed typo", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 2}}, {"node": {"oid": "7a6edb21e90b7596eb04742628aa5c53d55e1889", "messageHeadline": "Explanation of Peergos name.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "9e9562df269407405d4e81b916eac5d80cea7844", "messageHeadline": "Rename to Peergos, after the Greek Pyrgos", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 116, "deletions": 136}}, {"node": {"oid": "6593cda8d925448b1fd8be4e4069709c369c9e4b", "messageHeadline": "updated README", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 40, "deletions": 21}}, {"node": {"oid": "0ef9204bde87adb881b9294e19095655b4a305f5", "messageHeadline": "fixed timeout on failing to join network", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 7, "deletions": 3}}, {"node": {"oid": "d2d9cda6087e83e52a34d325e6c931dab73cfe2a", "messageHeadline": "I appear to have gotten ssl web of trust working...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "0ceafac8763e409f89bb0586c71e33b9747fd02d", "messageHeadline": "signed certificates now have working SANs, but path building still do\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 142, "deletions": 142}}, {"node": {"oid": "3b4c57031b8d7c28dd3571326c331cd0f23201df", "messageHeadline": "dir csr has SAN, but somehow storage csr doesn't. Go figure...", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 57}}, {"node": {"oid": "318890f1a5e897764bd04b3451ba9d387ee31e47", "messageHeadline": "storage signing working, now need to add SAN for ssl handshake to wor\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 121, "deletions": 160}}, {"node": {"oid": "6bd6f98595d06c2373fd3b5941f26643aac601b6", "messageHeadline": "fixed the dir sign request handler! (MORON) Seems to be working now.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 8, "deletions": 5}}, {"node": {"oid": "9f2ee70e787f2bbfc0f925a899ca77087d28c089", "messageHeadline": "Added bootstrapped test key files", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 68, "deletions": 0}}, {"node": {"oid": "8cc86f051ae1321b590697d573e4e327b2510bae", "messageHeadline": "updated bootstrap commands", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 53}}, {"node": {"oid": "58ba37d154413c7d83908cacfd374664e7f7cad4", "messageHeadline": "implemented storage registry with directory server (but it DOESN'T work)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 78, "deletions": 31}}, {"node": {"oid": "be34b38b2b880b062911241f5ff0c07e123e8805", "messageHeadline": "implemented sign request handler for dir server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 2}}, {"node": {"oid": "d75c6ad84b55302e484a5e7877cd667f679c3c03", "messageHeadline": "got storage certificate generation, signing with dir key, and verifyi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 15}}, {"node": {"oid": "8447705db2c4f112146645d1feb4bd09f5a28c63", "messageHeadline": "basic directory server functioning (except for signing new storage se\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 198, "deletions": 14}}, {"node": {"oid": "8dfa9de637084f5554702ced0493a9db4974a2b7", "messageHeadline": "corrected dir cert common name", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 70, "deletions": 11}}, {"node": {"oid": "824a50b66afb397d66714fb9aa10b2043479b53c", "messageHeadline": "directory signing and verification working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 30, "deletions": 21}}, {"node": {"oid": "76fbc2752a4dc99a90bcc395b6d7cf483194a1ce", "messageHeadline": "finally got the stupid key format parsing correctly! Bring on the SSL!", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 93, "deletions": 35}}, {"node": {"oid": "7b8e33bb85e0b968f5bf75a62152c0ab252e8523", "messageHeadline": "first SSL tests working, CA self signed certificate generation and sa\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 320, "deletions": 59}}, {"node": {"oid": "e4f455898d1cbbccfc740f80c4080e66a15417fb", "messageHeadline": "i struggle to believe that adding a newline at the end of md file wil\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cfc9fa9c6937c8f810ec676d99caf745a34dbf26", "messageHeadline": "added To Do", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 14, "deletions": 0}}, {"node": {"oid": "b06362a7cd5110ebe3281cc9599539537e79399e", "messageHeadline": "skeleton for directory server bootstrap", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 63, "deletions": 35}}, {"node": {"oid": "3170f7dba2711d22cb440a013eec1b6fb9e3916c", "messageHeadline": "SSL needs a directory server concept. About to start this.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 28}}, {"node": {"oid": "0fccc878b3a40fb298d698f72f4817ca0b2803fd", "messageHeadline": "nereus removed, now get ssl handshake exception, using BC to generate\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 53, "deletions": 19}}, {"node": {"oid": "8e2aa49784ea6dd6cf75d860dbf0398af693b312", "messageHeadline": "more refactoring, ssl not quite working yet.", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 110, "deletions": 71}}, {"node": {"oid": "8d515a2773c59f27e1270503f0724a53f2c9f6a1", "messageHeadline": "almost removed nereus completely and almost got all storage puts and \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 138, "deletions": 189}}, {"node": {"oid": "b522be0e13c83d7ceb897f6622d41e6062375c25", "messageHeadline": "made storage get requests over https work, and removed their use of N\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 65, "deletions": 31}}, {"node": {"oid": "36558ca5be24f49f2eadb260d8fe5d7ef80a5500", "messageHeadline": "got first messages over https working. Only need to sign the certific\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 124, "deletions": 58}}, {"node": {"oid": "6ec7af2ec7317f65fe78d3ebb7de639563c5a241", "messageHeadline": "toy ssl certificate generation and self signing working... I think?", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 188, "deletions": 0}}, {"node": {"oid": "322f7eaa592b0a0e6028b5a6a8e74e8bed52fa88", "messageHeadline": "comments", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 22}}, {"node": {"oid": "5b497af4df690583f8fd8237a33a47c87befe5da", "messageHeadline": "separated out Message sending and receiving in preparation for https \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 77, "deletions": 22}}, {"node": {"oid": "5aa4ea3c1f8693d3e874676baea919cb43da6a22", "messageHeadline": "skeleton user public key addition to network implemented, just need s\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 573, "deletions": 36}}, {"node": {"oid": "1578273687543985aeb890bdbf7fde1c8eaf9a0c", "messageHeadline": "added todo the upgrade to sha-256 for keygen", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "06768e6946598596c3b8c002a94ca604d1b0474b", "messageHeadline": "Implemented RSA keypair generation deterministically from username+pa\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 91, "deletions": 9}}, {"node": {"oid": "8b0ceb59c0ac1f9e29c980c15386c8d840bdf670", "messageHeadline": "added missing jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 0, "deletions": 0}}, {"node": {"oid": "2bd2e0faa5d32166b7cf19a300972b9d0a35b696", "messageHeadline": "basic RSA crypto working, signing, unsigning, encrypting, decrpyting \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 330, "deletions": 6}}, {"node": {"oid": "8486078a9f068d4860070ca04ae182538888d411", "messageHeadline": "added arbitrary request error handling, added GET timeout test", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 60, "deletions": 23}}, {"node": {"oid": "67fcf8bceef80128a2b055a7ba5db832e8eb5b37", "messageHeadline": "simplified request handler, rewrote handlers to be reactive, and take\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 130, "deletions": 55}}, {"node": {"oid": "50f9cccb4325aaabac82280493630f968e9e89f0", "messageHeadline": "more tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 6, "deletions": 0}}, {"node": {"oid": "4481ba18a8b1f26a7edd3494bdac4acae79558a9", "messageHeadline": "added more tests", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "3a81096e981bf975cdc9ff46da5aa903e55b495f", "messageHeadline": "added tests for GET and CONTAINS, bug fixes, clarified help, added Ju\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 114, "deletions": 19}}, {"node": {"oid": "287ed2019bc52336c5d51a39593e0c5610f52db6", "messageHeadline": "explain testing in help", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 2}}, {"node": {"oid": "5915ef5659e0d4620f215e08d2d31c4251f58f9c", "messageHeadline": "Goal changes", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 6}}, {"node": {"oid": "ea6f098e37168d37640d65db0d2dd88c32dc7f63", "messageHeadline": "reverted localhost testing hack", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "cd0d9f20373d588e1a8010e5f97362fa57f7862d", "messageHeadline": "made friend discovery for new nodes faster", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 1}}, {"node": {"oid": "9e06bfefc85022a8534cf3ca255f7debc1e7e0f8", "messageHeadline": "made build make a single jar", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 1}}, {"node": {"oid": "913440c4a45d2b70fd5b52f3f33355919525078b", "messageHeadline": "README update", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 5, "deletions": 0}}, {"node": {"oid": "4b9c2b9949de5165523905bb30b5796d8c968394", "messageHeadline": "Layer 2: Distributed Hash Table works! (passes first PUT test)", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 105, "deletions": 31}}, {"node": {"oid": "0941fad0f392c9d582d63516a70b0ea5c059a761", "messageHeadline": "almost fully implemented DHT, just need a HTTP POST and GET", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 447, "deletions": 58}}, {"node": {"oid": "0937831f4f5964d0d4d2e209572bad0f375cc4e8", "messageHeadline": "Put and put accept messages working, ready for actual file transmissi\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 252, "deletions": 15}}, {"node": {"oid": "825a4051b9d35da27c2e4463e733e7cf7f127c24", "messageHeadline": "added logging, and local tester to start n nodes locally, started PUT\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 201, "deletions": 30}}, {"node": {"oid": "631fbcdcf559f371ad648c8dd226218b9f32d532", "messageHeadline": "formatting", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 4}}, {"node": {"oid": "2e65f960e366cce871933b8c7f6ad896710bd471", "messageHeadline": "improved neighbour recovery in massive failure by taking nodes from r\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 33, "deletions": 13}}, {"node": {"oid": "d47aa662ecb39c38b632b57ee62d04b1e38aa724", "messageHeadline": "updated readme", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 17, "deletions": 9}}, {"node": {"oid": "ca899d465d3a80dfed36344d0471ace7944b0004", "messageHeadline": "bug fixes, made Node keep track of lastSeen and lastSentTo times. Muc\u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 34, "deletions": 60}}, {"node": {"oid": "33058ba5abe1c1f71c3e5f1a109988d2d6a8b859", "messageHeadline": "loads of bug fixes, ;ayer 1 appears to be working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 58, "deletions": 70}}, {"node": {"oid": "5f1719d20628252c1720dbe6427d1b201dd68f89", "messageHeadline": "more logging", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 51, "deletions": 5}}, {"node": {"oid": "01063d23ac585a20f5fc412715d76ba6a55452ce", "messageHeadline": "ECHO appears to be working for joins", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 11, "deletions": 3}}, {"node": {"oid": "8c33dcede9fb98207ce879dad91f1c8bfa305948", "messageHeadline": "ECHO upon join almost functioning correctly", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 107, "deletions": 23}}, {"node": {"oid": "610664afa0208f3734aa34adc3078d86eaef4431", "messageHeadline": "wip", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 74, "deletions": 28}}, {"node": {"oid": "e8e71ad845dca13fed213eadb70301f0fb55d489", "messageHeadline": "added state mahcine representing state of other nodes in preparation \u2026", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 89, "deletions": 36}}, {"node": {"oid": "f9316a3c1ba2af7669856bcb0425ecf89b1e166a", "messageHeadline": "join and responding echo working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 35, "deletions": 8}}, {"node": {"oid": "40affb91b3ec55bac186f1148bc762597053b465", "messageHeadline": "added help, JOIN working, started ECHO", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 124, "deletions": 29}}, {"node": {"oid": "300e32f19f96b3074d8ed42eb2fd3fffc3f9526e", "messageHeadline": "network joining almost working", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 229, "deletions": 37}}, {"node": {"oid": "d911e2aa4035b2bfb0bb63f8920e8d9c046a1f6e", "messageHeadline": "started entry to network", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 74, "deletions": 6}}, {"node": {"oid": "2ffaa216f235d2ef8d80b84beb7b3bfb1c21232f", "messageHeadline": "UDP echo server", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 109, "deletions": 10}}, {"node": {"oid": "81c2cf45f8fc6ffc74c3988326438a1d1dcbe7c9", "messageHeadline": "git ignore", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 4, "deletions": 0}}, {"node": {"oid": "e53f22072ad70e4f5f7b467b62eca556eec1c63f", "messageHeadline": "added makefile", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 16, "deletions": 0}}, {"node": {"oid": "0566d0ace51ca7946b2371cb1f13e49063b7821f", "messageHeadline": "added makefile", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 2, "deletions": 0}}, {"node": {"oid": "a70b844b8d65c737ab78f794d2df5ed25c4117cb", "messageHeadline": "started package structure", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 90, "deletions": 3}}, {"node": {"oid": "bfc7af8d8d98fb80982e628c32df40febaa5a60d", "messageHeadline": "formatting", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 1}}, {"node": {"oid": "3f5916ac358561e027ce1b06e887a5da41ef1fd2", "messageHeadline": "formatting", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 18, "deletions": 15}}, {"node": {"oid": "41c57ab13f96f403f16e83461d56ed34f863a67f", "messageHeadline": "reference sharing mechanism", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 1, "deletions": 0}}, {"node": {"oid": "5525cbeb28a11387642d10e654f15db76291ee7d", "messageHeadline": "Laid out project aims and broad architecture", "author": {"name": "Ian Preston", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 44, "deletions": 1}}, {"node": {"oid": "732586c52e63559695a4962edd1521cf29b1cf20", "messageHeadline": "Initial commit", "author": {"name": "ianopolous", "email": "ianopolous@gmail.com", "user": {"login": "ianopolous"}}, "additions": 343, "deletions": 0}}]