Spent all day improving nip10 robustness in damus. We now do nip10 marker replies, so damus replies should always be correct in every client.

I also integrated nostrdb into thread construction, so damus should always be able to reconstruct a thread even if the root thread marker is missing or wrong (many such cases). This had the largest impact, i very rarely see thread loading issues.

I am pushing out TestFlight today for purple users to test, we plan on submitting this tomorrow on AppStore with many more improvements, will drop a video once its live.

Threads have been a pita in damus but this should improve things a ton. Thanks for your patience 🙏

Reply to this note

Please Login to reply.

Discussion

A pita you say? Is that a technical term? Lol

Pain in the ass, yes it is a technical term

Damnit. Lol I’m showing my age again

In the field of construction if we can tell the client is going to be a major PITA we add in a “PITA Charge” from the get go at the estimating stage.

Very common here as it’s a real phenomenon on labor rates. 😀

TIL! 🤣

Thank you!

Thank you…

Not sure if related but on current Damus (AppStore version) the full thread appears when you open de note in the bookmarks view https://video.nostr.build/c9ac4b1fee7754fa535a2429c24e8cc091fa28393589ea0585f2c511289d854d.mp4

This is fixed now, even with invalid nip10 markers

I hope that GIF upload regression is fixed, had it yesterday and not sure if it got any love 🐶🐾🫂

It is fixed!

Great! 🙌🙌 Thank you!!

Thanks so much 👑🙏💜🫂🚀

I don't set root tags on purpose because having it as an e tag is toxic. Should have been r or anything other than e but it's too late to change now.

lol wut

Tnk 🤙🏼

potential regression in nip42 auth? I connect to a single relay that immediately sends an auth challenge, presumably after the home feed req gets is fired. home feed doesn’t ever load and I have to go to a profile view to get notes flowing 🤔

no change to my relay setup. just started seeing this behavior after the tf update. https://video.nostr.build/2738b92a3d0ba2539ee4add40f237bb1ce57b6ccceb056140f04e76576114b1d.mp4

Not new for me. Sometimes it works sometimes it doesn’t depending on race condition. Does not retry any REQs closed before AUTH.

https://github.com/damus-io/damus/issues/1914

sounds like my experience too!

having done a bit of work on how these things are supposed to work, based on what nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 put into go-nostr with the relay websockets and client websockets from nostr-sdk there is a signal channel in the websocket that closes when it gets an auth-required prefix in the OK and what is supposed to happen is then whatever the client is doing, it should stop, sign an auth, and then wait

the relay is then supposed to do the same thing on the other side, waiting for ~5 seconds or so, for the auth response to come back, and then continue processing the REQ

i think this is a harder algorithm to code in javascript than in Go, and probably harder to code in almost every other language because async != concurrent != parallel

in javascript, at least, i think that you need to have some sort of promise thing that it opens up that triggers when the websocket receives the auth-required and that should trigger the signing process, and then you have to have some kind of sync to tell the client to wait on the request

i have no idea how anyone does it with strfry because it doesn't have auth built into it, the dreadful state of auth in nostr is largely due to nobody having written a decent auth routine on the relay that anyone uses, because evyrone is all strfrystrfry which has not been updated in months and probably abandoned

so, anyhow, gib zaps so i can focus on making a good relay 😁

btw, the lack of Go is probably part of why auth hasn't been fixed yet, it requires concurrency or complex logic in both sides of the equation

sir are you an ai bot? this is a problem on the damus client which has nothing to do with go or JavaScript.

I will not zap you, my relay works fine thanks.

sir, it's called touch typing

i assume that you haven't changed your relay code or updated it also concurrently with the regression, just checking, because i know it's easy to forget the billion things that go into an application... right now fighting with some json string escaping nonsense

reverted to 1.7(11) and home feed loads straight away

I got lucky with that video and loading the home feed. haven’t been able to win the race again so had to revert to get a usable app.

nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s if you want an easy repro, lmk and ill add your pubkey to my relay whitelist. just connect and you’ll hit the issue.

I didn’t add this feature and I don’t use auth, I am hoping someone will care enough to fix it.

I can’t bring myself to contribute code to the ios client. hopefully my year of damus purple can help incentivize the fix. the latest release renders damus unusable for me configuration.

We are adding a purple relay with auth so this will come with auth fixes and longterm auth support.

When will it be available on TestFlight?

I think I got an update today and I accidentally canceled. And it doesn’t appear anymore

For some reason apple recalled build 3, i just pushed build 4 which should fix it

tnk already appeared. 😎

Thank you so much 🙏🙏

Now threads will be way better on all clients 💪

I didn't understand a single word, but I thank you for you work and wizard programming skills