# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 100
# self = https://watcher.sour.is/conv/hfal6kq
👋 Q&A**: Let's discuss the removal of Editing and Deleting your last Twt. This is something @fastidious has raised to me on IRC and something I find quite a valid approach to this. Over time I _believe_ the utility and value of "Editing" and "Deleting" one's last Twt isn't as valuable as we'd like and increased complexity and introduces all kinds of side-effects that are hard to manage _correctly_. I vote for the removal of this feature from yarnd, the mobile app nor API support this anyway...
👋 Q&A**: Let's discuss the removal of Editing and Deleting your last Twt. This is something @fastidious has raised to me on IRC and something I find quite a valid approach to this. Over time I _believe_ the utility and value of "Editing" and "Deleting" one's last Twt isn't as valuable as we'd like and increased complexity and introduces all kinds of side-effects that are hard to manage _correctly_. I vote for the removal of this feature from yarnd, the mobile app nor API support this anyway...
So let's openly discuss this. cc @lyse @movq who have had strong (IIRC) opinions on this in the past, our existing pod owners @laz @jlj @adi @fastidious @eldersnake and to our brand new (Welcome!) pod owner @meff
So let's openly discuss this. cc @lyse @movq who have had strong (IIRC) opinions on this in the past, our existing pod owners @laz @jlj @adi @fastidious @eldersnake and to our brand new (Welcome!) pod owner @meff
Hear, hear! I voted.
@prologic My only problem is typos.
@adi typos are the most common problem for everyone. We can either be a) more careful when twtxting, or b) live with it, and follow up on a separate twt correcting---and expanding---if the error is so bad it can't be understood. Most of typos are understood regardless, so there is no need for a correction.
If the complexity and upkeep far outweighs the usefulness and utility, I vote removal. Don't get me wrong, I've used the feature plenty of times, but reducing code complexity, bugs and making people be a little more mindful and literally "thinking before they post" might not be a bad thing 😅
@eldersnake FWIW I used it a fair bit too, but I am _quite_ mindful of being quick about a last minute edit (_literally!_) so there is that aspect as well. Once a pod or client fetches your feed, it's all but too late! 😂 So the "utility" is highly questionable at this stage as we continue to grow 😅 IHMO
@eldersnake FWIW I used it a fair bit too, but I am _quite_ mindful of being quick about a last minute edit (_literally!_) so there is that aspect as well. Once a pod or client fetches your feed, it's all but too late! 😂 So the "utility" is highly questionable at this stage as we continue to grow 😅 IHMO
I vore againt removing the edit and delete feature! If I'm the minority here then it should at least be replaced with a preview before posting similar to some shuttlebutt clients and a waring that you can not undo this after you pressed send.
I think that it'd be better to remove it (it doesn't work well enough to justify it being a thing), but I 100% agree that there should be a preview thing, to let users check that their pictures, links and markup work correctly (especially since the markup buttons in app still don't always do what they should) and just see it in this new way, so they can read it again in this new way and have one last chance to notice the typos.
*This should be a button, not something that has to happen before every post is sent - obviously.*
it should be state cleary somewhere that you can always ask the podamin to manually remove a post from your twtxt.txt if needed. otherwise we might conflict with GDPR. it could be on a Getting started or FAQ page.
@darch Can you clarify the GDPR and link and/quote the relevant section? 🤔
@darch Can you clarify the GDPR and link and/quote the relevant section? 🤔
@prologic In regards to GDPR I was thinking of the Right to rectification and the [Right to erasure (‘right to be forgotten’)](https://gdpr-info.eu/art-17-gdpr/)
@darch Hmm 🤔
@darch Hmm 🤔
@darch Imho articles 16 and 17 relate primarily to data that is of a personal nature. I think the intent of those particular articles is not applicable to yarn as yarn collects and stores NO data of a personal nature- not even email addresses.
the articles do not specifically address opinions and the like which on other platforms are strongly linked to user’s personal information.
@darch if a post contained personal information, this would be in violation of Yarn’s privacy and abuse policy. of course the pod admin could delete it. however as all things on the web… once it’s out there it’s difficult to contain. we could have a ‘dumbass’ clause that explicitly states ‘ Do not post personal or sensitive information on the web.’ 🤪
@prologic I also vote for removal.😀
@ionores hey you’re still alive! good to see you again!
@prologic So, there is an API! This is offtopic for the thread (sorry) but can you link me to its documentation? I'm thinking about creating a single-user barebones "pod", compatible with the mobile app but that manages a single twtxt file.
@prologic So, there is an API! This is offtopic for the thread (sorry) but can you link me to its documentation? I'm thinking about creating a single-user barebones "pod", compatible with the mobile app but that manages a single twtxt file.
Yeah, removal+preview here too
@kt84 Likewise. 😀
I don't think adding a preview would solve anything. Discourse has preview while you type, and people still makes lots of mistakes.

How about this approach? Allow edit/deletion not based on the last twt, but make it time sensitive. A twt is posted, and for X minutes remains available for edit/deletion. It doesn't make it to the twtxt.txt file, so it doesn't syndicate, it doesn't allow replies to it, until the timer has expired. Once timer expires, no more editing/deletion, it makes it to the twtxt.txt file, and allows replies to it.
The timer, of course, is set by the pod's owner.
@fastidious Guess that would work the best, but the time would have to be pretty short and it would probably be harder to implement, than the other solutions. 🤔

> it would probably be harder to implement, than the other solutions.

Showing a preview is harder, I think, but @prologic can chime in on this one.
@thecanine
> but the time would have to be pretty short

Maybe provide the ability to overwrite the timer, by simply allowing a "TWT now" option.
Hmm … I’m really not sure.

Yes, editing twts is problematic because the hash changes. This can lead to broken threading and confusion.

*Deleting* twts is a different story. Why is that a problem? 🤔

Also, are we just talking about the implementation in yarn here or twtxt in general?
Hmm … I’m really not sure.

Yes, editing twts is problematic because the hash changes. This can lead to broken threading and confusion.

*Deleting* twts is a different story. Why is that a problem? 🤔

Also, are we just talking about the implementation in yarn here or twtxt in general?
Hmm … I’m really not sure.

Yes, editing twts is problematic because the hash changes. This can lead to broken threading and confusion.

*Deleting* twts is a different story. Why is that a problem? 🤔

Also, are we just talking about the implementation in yarn here or twtxt in general?
@movq
> Also, are we just talking about the implementation in yarn here or twtxt in general?

This is all just Yarn. Because the way yarn works, with caching and the likes, it is not as a straightforward as editing a text file and removing a line on deletions.
@marado-yarn @prologic Found it: https://dev.twtxt.net/doc/api.html
At first I thought this is a joke, turns out you're dead-serious. Breaking a conversation is one thing, but not being able to edit or delete a twt just *because* of an inflexible cache implementation is quite ridiculous to me. No offence, @prologic! Caching is very hard, I completely understand that. Luckily I'm not a lawyer, however, I fully agree with @darch, this is going to be a GDPR violation nightmare waiting to happen (especially if yarnd is going to be commercialized some day). Removing edit and delete is also a contradiction to the project goals of making a better social media thingy. At least in my eyes. In my opinion any twt must of course be editable and removable at any point in time by the users themselves. I don't consider waiting for an admin to edit or delete something a solution to this problem. Just imagine what kind of shitstorm would happen, if another social media gigant would say, sorry, because of technical reasons we don't allow edits and deletions anymore. I don't use yarnd and thus I wouldn't have commented on this conversation if I hadn't been explicitly asked to join. One last thing: For alone this missing ability to edit or delete arbitrary twts alone I'd never use this software.
@lyse I read everything you wrote, with some difficulty. Not because of the sentiments, but because it is a huge block of text. Can't tt use paragraphs?

I agree that I did not think about EU GDPR laws. I tend to forget about those, because we do not have them in the States---nor they exist in Australia, I believe. Now, for GDPR you simply delete your account, and everything goes. Isn't that a solution?
I am in the camp of wishing i could delete arbitrary twts.
I am in the camp of wishing i could delete arbitrary twts.
@fastidious We do have CCPA in the states.
@fastidious We do have CCPA in the states.
@xuu yeah, I am in FL. 😂
I have to agree with @lyse. 🤔

But let’s not forget – and I wasn’t really aware of this, to be honest: It is already impossible to edit or delete older twts on yarn. You can only edit/delete the last one. So this *already* makes me uncomfortable. Dunno, I really really like to have the option to edit or delete old posts. Opinions change over time, maybe I was drunk while posting something, or whatever.

(I don’t really believe in “once it’s public, then it’s too late”. I’ve seen so much stuff vanish from the Internet over the years … It’s only too late if something goes viral and millions of users make copies of your funny face. 🥴 And even *then*, stuff gets lost.)

I’m not a yarn user, so I don’t have a *strong* opinion about this, tbh. I can always just edit my file. 🤔 I just don’t think it’s a good idea to limit the ability to edit/delete.
I have to agree with @lyse. 🤔

But let’s not forget – and I wasn’t really aware of this, to be honest: It is already impossible to edit or delete older twts on yarn. You can only edit/delete the last one. So this *already* makes me uncomfortable. Dunno, I really really like to have the option to edit or delete old posts. Opinions change over time, maybe I was drunk while posting something, or whatever.

(I don’t really believe in “once it’s public, then it’s too late”. I’ve seen so much stuff vanish from the Internet over the years … It’s only too late if something goes viral and millions of users make copies of your funny face. 🥴 And even *then*, stuff gets lost.)

I’m not a yarn user, so I don’t have a *strong* opinion about this, tbh. I can always just edit my file. 🤔 I just don’t think it’s a good idea to limit the ability to edit/delete.
I have to agree with @lyse. 🤔

But let’s not forget – and I wasn’t really aware of this, to be honest: It is already impossible to edit or delete older twts on yarn. You can only edit/delete the last one. So this *already* makes me uncomfortable. Dunno, I really really like to have the option to edit or delete old posts. Opinions change over time, maybe I was drunk while posting something, or whatever.

(I don’t really believe in “once it’s public, then it’s too late”. I’ve seen so much stuff vanish from the Internet over the years … It’s only too late if something goes viral and millions of users make copies of your funny face. 🥴 And even *then*, stuff gets lost.)

I’m not a yarn user, so I don’t have a *strong* opinion about this, tbh. I can always just edit my file. 🤔 I just don’t think it’s a good idea to limit the ability to edit/delete.
@marado https://dev.twtxt.net — But see my other replies 😁
@marado https://dev.twtxt.net — But see my other replies 😁
@fastidious I like the timer approach 👌
@fastidious I like the timer approach 👌
@fastidious Yhe timer can actually just reuse the I/—fetch-interval 👌
@fastidious Yhe timer can actually just reuse the I/—fetch-interval 👌
@prologic sounds like a good plan! Now, what about if I wanted out pronto, right away? Is there a way to tell it "yup, I am fine with this twt, send it!"?
@movq i believe the delete of any twt was a tech limitation with retwt parser not knowing where in the file a twt came from. lextwt tracks the bytes in file where a twt was read from. which could be used to delete a twt from file.. in theory.
@movq i believe the delete of any twt was a tech limitation with retwt parser not knowing where in the file a twt came from. lextwt tracks the bytes in file where a twt was read from. which could be used to delete a twt from file.. in theory.
@fastidious I would do it like this, you can edit or delete your last Twt as long as:

- it hasn’t already been replied to on that Pod
- it hasn’t already been fetched by remote clients
@fastidious I would do it like this, you can edit or delete your last Twt as long as:

- it hasn’t already been replied to on that Pod
- it hasn’t already been fetched by remote clients
@prologic yes!
@movq More just the implementation. Dsleting very old Twts from a feed is “okay”, can still break threading potentially but isn’t as big of a deal as “in flight” threads IMHO
@movq More just the implementation. Dsleting very old Twts from a feed is “okay”, can still break threading potentially but isn’t as big of a deal as “in flight” threads IMHO
@lyse Yeah, now that you phrase it like this, the deletion should not be removed, but rather improved. It'd probably be better to get rid of editing (for all the problems it causes) and just focus on making the deletion of posts work better, rather than removing it both of those things.
@lyse Interesring point 👌 Thanks for making it! 🤗 Perhaps we can consider rewriting the function DeleteLastTwt() to just DeleteTwt() — At worst it’s an O(n) scan of the backing Twtxt file, deleting from the Cache is already possible 👌
@lyse Interesring point 👌 Thanks for making it! 🤗 Perhaps we can consider rewriting the function DeleteLastTwt() to just DeleteTwt() — At worst it’s an O(n) scan of the backing Twtxt file, deleting from the Cache is already possible 👌
@movq Noted 👌
@movq Noted 👌
@fastidious Hmmm given very strong and very valid opinions here in this thread I’m not sure we should bother with the idea of a “Timer” 🤔
@fastidious Hmmm given very strong and very valid opinions here in this thread I’m not sure we should bother with the idea of a “Timer” 🤔
@xuu Oh? 🤔 Is this Twt's position exposed somewhere I can use in a new func DeleteTwt(conf *Config, feed string, twt types.Twt) error? 👌
@xuu Oh? 🤔 Is this Twt's position exposed somewhere I can use in a new func DeleteTwt(conf *Config, feed string, twt types.Twt) error? 👌
@prologic
> given very strong and very valid opinions here in this thread I’m not sure we should bother with the idea of a “Timer”

There should only be one captain per ship. You have the helm! 😊
@fastidious

> There should only be one captain per ship. You have the helm! 😊

That may be all well and good, but as my intentions have always been to run Yarn.social as a not-for-profit with a community "foundation" that runs/organises it, I'm not strictly speaking the "captain" per se. I should have to respect the opinions and voices of all involved 😅
@fastidious

> There should only be one captain per ship. You have the helm! 😊

That may be all well and good, but as my intentions have always been to run Yarn.social as a not-for-profit with a community "foundation" that runs/organises it, I'm not strictly speaking the "captain" per se. I should have to respect the opinions and voices of all involved 😅
Okay folks, how about this as a counter proposal:

- You can edit or delete your last Twt as long as:
- it hasn’t already been replied to on that Pod
- it hasn’t already been fetched by remote clients
- otherwise the UI will remain the same, only showing "Edit" / "Delete" on
your last Twt if the above conditions are met.
- You can edit and sync your feed via the yarnc sync (TBD) command or via the
API /api/v1/sync (TBD) -- Which is something I want to support anyway for
backup purposes, import and enhanced flexibility, for example using a
different command-line client like tt or jenny but syncing your feed to
your Yarn hosted account on some Pod.

Thoughts? How does this sound in general @lyse / @darch re GDPR? 🤔
How does this sound UX wise to you @fastidious / @thecanine ?
Okay folks, how about this as a counter proposal:

- You can edit or delete your last Twt as long as:
- it hasn’t already been replied to on that Pod
- it hasn’t already been fetched by remote clients
- otherwise the UI will remain the same, only showing "Edit" / "Delete" on
your last Twt if the above conditions are met.
- You can edit and sync your feed via the yarnc sync (TBD) command or via the
API /api/v1/sync (TBD) -- Which is something I want to support anyway for
backup purposes, import and enhanced flexibility, for example using a
different command-line client like tt or jenny but syncing your feed to
your Yarn hosted account on some Pod.

Thoughts? How does this sound in general @lyse / @darch re GDPR? 🤔
How does this sound UX wise to you @fastidious / @thecanine ?
@prologic Sounds like a good place to start at, but I still can't really imagine how will any of this syncing look when it's finished and how understandable will it be for new users. 🤔
@prologic OK, devils advocate. Let's say many pods pull the same feed. Their pulling time vary, but since they are many pulls really happen every few seconds. That means edits/deletions are never possible.
@fastidious Good point
@fastidious Good point
@lyse @darch @fastidious @thecanine @prologic Seems to me that the sync is only useful if it allows a lot more editing (eventually even a complete rewrite). Which I am all for, but then the edit/deletion restriction on the UI becomes sort of an hassle, as someone more tech-savvy will be able to do things that less tech-savvy users will not…
@lyse @darch @fastidious @thecanine @prologic Seems to me that the sync is only useful if it allows a lot more editing (eventually even a complete rewrite). Which I am all for, but then the edit/deletion restriction on the UI becomes sort of an hassle, as someone more tech-savvy will be able to do things that less tech-savvy users will not…
@lyse @darch @fastidious @thecanine @prologic Seems to me that the sync is only useful if it allows a lot more editing (eventually even a complete rewrite). Which I am all for, but then the edit/deletion restriction on the UI becomes sort of an hassle, as someone more tech-savvy will be able to do things that less tech-savv
With further discussion on #yarn.social on IRC I _believe_ we have resolved this:

- Add support for Edit/Delete everywhere.
- Add support for yarnc sync and /api/v1/sync API endpoint.
- Revert to old Cache behaviour of overwriting cached feed entries (DONE).
- Stop worrying about the _very rare_ occasion an Edit splits a thread.

#resolved
With further discussion on #yarn.social on IRC I _believe_ we have resolved this:

- Add support for Edit/Delete everywhere.
- Add support for yarnc sync and /api/v1/sync API endpoint.
- Revert to old Cache behaviour of overwriting cached feed entries (DONE).
- Stop worrying about the _very rare_ occasion an Edit splits a thread.

#resolved
@prologic 🥳🎉. Let's see how long this solution lasts (kidding, kidding!). LOL.
@prologic

> Add support for Edit/Delete everywhere

So no removing of Delete last twt, but Edit/Delete any twt?
@fastidious It _actually_ won't be that hard to implement honestly. The hardest part will be the UI/UX which I know I'll do a terrible job of 😂
@fastidious It _actually_ won't be that hard to implement honestly. The hardest part will be the UI/UX which I know I'll do a terrible job of 😂
@adi

> So no removing of Delete last twt, but Edit/Delete any twt?

The UI/UX will change slightly. There will be no "Edit" or "Delete" buttons/links on your last Twt anymore. Instead there will be an ellipsis drop-down ⠇ with 3 options: "Share | Edit | Delete".
@adi

> So no removing of Delete last twt, but Edit/Delete any twt?

The UI/UX will change slightly. There will be no "Edit" or "Delete" buttons/links on your last Twt anymore. Instead there will be an ellipsis drop-down ⠇ with 3 options: "Share | Edit | Delete".
@prologic But Edit/Delete *any* twt?
Also, I vote in favor of keeping it simple, leave it as plain links, no drop down.
@adi Yes
@adi Yes
Whoa. Had my head down in a problem this evening (that, happily, I think I've resolved). Good discussion. Sounds fine to me.
@jlj 👌
@jlj 👌
@prologic 🎉 i will help you sorting out how to best place the new links for each post in the UI for best UX.
It could also be in an edit timeline option under settings. What will the share do?
@prologic 🎉
@darch Cool appreciate it! 🤗

> What will the share do?

I don't know! 🤣 But on the mobile app it copies the link to the Twt to the clipboard. I'm afraid doing something similar on the Web frontend is going to require a little JS 😅 But there's already a non-JS way of copying the Permalink to a Twt so that _shouldn't_ freak out too many folks that don't enable JS or use JS-free browsers.
@darch Cool appreciate it! 🤗

> What will the share do?

I don't know! 🤣 But on the mobile app it copies the link to the Twt to the clipboard. I'm afraid doing something similar on the Web frontend is going to require a little JS 😅 But there's already a non-JS way of copying the Permalink to a Twt so that _shouldn't_ freak out too many folks that don't enable JS or use JS-free browsers.