here we go - my roadmap from here (I tried to reorder in a reasonable manner to take amount of work and importance of the features into account - while thinking about the order I decided to go for the first tasks immediately ):
dweb watermark
route upgrades as per dwebs upgrade
opening friends avatars in larger modal
showing your own avatar pic in the messenger somewhere (on the left side above your friends maybe ..?)
using asymmetric encryption to exchange encrypted messages (offer/answer/offline messages) in the public scratchpads
privacy anonymity with friends - chapter in readme; graphic to show message flow/connections what is communicated where? (thank you @Toivo)
scrolling when too many friends
simplifying and documenting external stylesheets for easier theming of friends
implementing plugins (loaded from autonomi) as JavaScript Webcomponents.
revisiting translations / locations where text is visible
more extensive profile pages
code cleaning
extended states (free for chat, afk, DND, show offline)
SDK for plugins
offline messages (simply utilizing the handshake scratchpads - message encrypted via public key of a asymmetric public key read from friends profile)
optionally persisting chat history with friends via scratchpads
separate view in chat with persisted files - maybe categorized by type (pictures / audio / video / others)
display ANT/gas balance (just here this late because I hope for @happybeing to implement the needed route before I reach this point I guess I’ll go for a PR for dweb if it is not implemented here )
upload avatar in-app (same as point above)
releasing a python version of smokesigns (name already reserved)
and creating a simple demo on how to use it to connect (from everywhere in the world) via WebRTC to e.g. a locally running Raspberry Pi with a camera and fetching a picture it takes with a pi-camera
python terminal chat (friends compatible - only selecting friends and chatting with them as text only; no adding/removing of friends etc)
the whole Friends app as JS WebComponent
import and use root private key (different from the one generally used by dweb)
create invite (send coin to a private key and encrypt it) → share a link leading to the info
Friends bundled with dweb via Tauri as standalone app
Friends bundled with dweb via Tauri as standalone app for mobile (thank you for this task @happybeing )
multi session / multi user chats (chat groups!)
in-app feedback (anonymously writing to feedback-scratchpad that I then will check for new feedback )
account recovery through multiple other friends (multisig/multi-decrypt of owner-secret)
revisiting the need for a companion app to break into symmetric nat
checking the possibility to route messages through autonomi via its kademlia routing client → client if direct messaging is not available or not desired
ps: upgraded the app on alpha and mainnet; as of now only alpha will succeed in the handshake due to mainnet read/write-speeds
I just got hit with my first facebook “Ad Break”. Dont use facebook much, now even less.
I notice facebook allow you do down load yiur data.
I guess it would be a bit of a massive job to have “Friends” ingest tye dowbload file and recreate my content and create placeholders for my socal graph?
I think enough people are upset they would download their data and trasfer over to autonomi.
hmhmmm - since (at least as of now) friends is more like the messenger window within Facebook and currently doesn’t even persist messages once you closed the window and reopen it that would be a bit too much for it in the foreseeable future.
but I guess a real social platform (as jams / project decorum were planned to be) could try to go this route and just use friends as instant messenger service within the platform =)
just for the record - I’m a bit proud of my language management update of tonight …
since I’m using AI agents to do the translations (and they sometimes just edit a few languages instead of all, and it takes forever for them to find the right place to add the key/value pair, then they forget to add the key in the list of Translationkeys, …) I wrote into my main translation file precise rules they should follow.
all files then have the exact same format which results in the agent being able to see where it should add/remove a key in the english version → and then it just does the exact same edit in the exact same line in all language files =)
we’ll see how well that works but I’m very positive this is a way agents can operate efficiently now!
the good thing is that people can always just open issues / mention it to me that something looks off => I can edit it =)
I’ll start out like this and will adjust if/where needed
ps: but they have context when I run them within my IDE => they know where I place a button - they can see what it’s being used for => so far in English and German it was perfect (the thing I’m most worried about here is length of text … that might vary in different languages wildly and can completely screw up the layout …)
Nice idea in theory, but very few people open issues. You will probably never know what your UI looks like in Korean unless you get Koreans to review it and Codeberg gives you an easy ish way to achieve that because people love to do that kind of thing.
Like open source itself, people love to help each other, and that’s why it works so well. Businesses can’t compete with this and that is probably one reason they are so wanting to not need people any more.
If thet don’t need people it’s bad. If they do, and I think they will find that’s true in a year or five, it’s also bad. I’m lucky that I’m retired, but it still bothers me because the world is bad enough already and I care about others, unlike the tech sociopaths betting billions on so called AI and taking crucial resources away from communities who will literally die without them, in order not to miss out on getting richer.
that should allow people to really simple give me feedback if there’s something wrong for them …
you’re ofc right that people usually hesitate to open issues etc … and maybe just using the codeberg crowd sourcing would be the best approach in this moment of time everything changes so fast that I think an automatic translation is probably good enough and is the fastest to iterate for me
I’ll reconsider when the dust starts to settle and we enter an era of stability =D
I just released a new version of smokesigns (webRTC communication library easy to use with dweb/autonomi!) with the option to use RSA public/private key encryption of the WebRTC offer/answer so even if anybody would learn where in the network (on which address) you and your friend exchange the peer info nobody except you 2 will be able to read each others IP addresses
I already implemented it into the latest version of friends which I’m running locally and where I see connections successfully being established:
… but it’s late now - I will do some more tests and validate the encrypted friendship request flow too before releasing the next version on beta- and mainnet …
documentation of used encryption and where which data is being communicated is being worked on next
updated state:
dweb watermark
route upgrades as per dwebs upgrade
opening friends avatars in larger modal
showing your own avatar pic in the messenger somewhere (on the left side above your friends maybe ..?)
revisiting translations / locations where text is visible
using asymmetric encryption to exchange encrypted messages (offer/answer/offline messages) in the public scratchpads
privacy anonymity with friends - chapter in readme; graphic to show message flow/connections what is communicated where? (thank you @Toivo)
spinner for sending/answering friendship requests
‘last seen online’ display for friends
simplifying and documenting external stylesheets for easier theming of friends
implementing plugins (loaded from autonomi) as JavaScript Webcomponents.
more extensive profile pages
code cleaning
extended states (free for chat, afk, DND, show offline)
SDK for plugins
offline messages (simply utilizing the handshake scratchpads - message encrypted via public key of a asymmetric public key read from friends profile)
optionally persisting chat history with friends via scratchpads
separate view in chat with persisted files - maybe categorized by type (pictures / audio / video / others)
display ANT/gas balance (just here this late because I hope for @happybeing to implement the needed route before I reach this point I guess I’ll go for a PR for dweb if it is not implemented here )
upload avatar in-app (same as point above)
releasing a python version of smokesigns (name already reserved)
and creating a simple demo on how to use it to connect (from everywhere in the world) via WebRTC to e.g. a locally running Raspberry Pi with a camera and fetching a picture it takes with a pi-camera
python terminal chat (friends compatible - only selecting friends and chatting with them as text only; no adding/removing of friends etc)
the whole Friends app as JS WebComponent
import and use root private key (different from the one generally used by dweb)
create invite (send coin to a private key and encrypt it) → share a link leading to the info
Friends bundled with dweb via Tauri as standalone app
Friends bundled with dweb via Tauri as standalone app for mobile (thank you for this task @happybeing )
multi session / multi user chats (chat groups!)
in-app feedback (anonymously writing to feedback-scratchpad that I then will check for new feedback )
account recovery through multiple other friends (multisig/multi-decrypt of owner-secret)
revisiting the need for a companion app to break into symmetric nat
checking the possibility to route messages through autonomi via its kademlia routing client → client if direct messaging is not available or not desired
dweb serve output is this scrolling past furiously
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: ae458f48ab4fe204c84422951b34145211dff4507359c840a6883974a0ba6cfe874359c6ca7dc90b2f9462d223ef85b1
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: ae458f48ab4fe204c84422951b34145211dff4507359c840a6883974a0ba6cfe874359c6ca7dc90b2f9462d223ef85b1
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: ae458f48ab4fe204c84422951b34145211dff4507359c840a6883974a0ba6cfe874359c6ca7dc90b2f9462d223ef85b1
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: ae458f48ab4fe204c84422951b34145211dff4507359c840a6883974a0ba6cfe874359c6ca7dc90b2f9462d223ef85b1
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: ae458f48ab4fe204c84422951b34145211dff4507359c840a6883974a0ba6cfe874359c6ca7dc90b2f9462d223ef85b1
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
DEBUG /scratchpad-private POST failed to create scratchpad - Scratchpad already exists at this address: b15569114cc69755847a8a316b5563422a1ca3accb4843154d0a0c9980feca864e8d58a05aa4cbea397ee192ffb437ff
oooooh - so it’s a migration issue … the data in your account is unexpected and therefore it goes the route of non-existing account package … which is wrong behavior … sorry about that …