| ▲ | Etheryte 6 hours ago | ||||||||||||||||
I don't know, as far as I can tell the demo on the homepage is bugged? Or maybe I misunderstand how it's supposed to work? If I click reset after 2 seconds and then click add 1 right after it, the reset never fires. What's up with that, that's not what I expected to happen? | |||||||||||||||||
| ▲ | speedgoose 5 hours ago | parent | next [-] | ||||||||||||||||
I guess it comes from the `tagsExhaustive` keyword. But I tried to search what it does in the documentation, and it doesn't return any hit. I then searched in the git repository and found it in some examples and CLAUDE.md but it doesn't really seem straightforward. Perhaps it makes sense for AI agents, but as a human, I will pass. | |||||||||||||||||
| |||||||||||||||||
| ▲ | danfritz 5 hours ago | parent | prev | next [-] | ||||||||||||||||
Yep, it seems that if you hammer messages things get easily dropped or the async behavior is not executed. IMO the reset should fire regardless what happens after it. | |||||||||||||||||
| ▲ | airstrike 5 hours ago | parent | prev | next [-] | ||||||||||||||||
Yeah, I can see how some scenarios might want that behavior, but it sort of defeats the purpose of the demo. It wouldn't hurt to have the reset be cancelable too if you wanted to really showcase how it should work | |||||||||||||||||
| ▲ | devinjameson 38 minutes ago | parent | prev | next [-] | ||||||||||||||||
Will take a look at this tonight thanks for the feedback. | |||||||||||||||||
| ▲ | PaulHoule an hour ago | parent | prev | next [-] | ||||||||||||||||
The code didn't look that clear to me. Like bad smell city. | |||||||||||||||||
| ▲ | horsawlarway 3 hours ago | parent | prev | next [-] | ||||||||||||||||
Agreed - I hit "Reset after 2 seconds", I hit "Add 1", and sure - it adds one, but it also unexpectedly cancels the reset. Which I don't expect from the description, and I also don't expect from the code. --- So outside of the simple "This is broken..." feedback, I want to further pick on this example: Don't fucking hide the imports. Especially don't fucking hide the imports if you're showing example code, and you're doing things like ``` import { Match as M, Schema as S } from 'effect' import { m } from 'foldkit/message' ``` Which I only know because I bothered to dig through the example playground counter (which is a different example entirely!) It's a huge issue to show demo code where concepts magically appear, and it's just bad manners to use shorthand at the same time. | |||||||||||||||||
| |||||||||||||||||
| ▲ | ivanjermakov 2 hours ago | parent | prev [-] | ||||||||||||||||
It's a framework for correctness, after all :) | |||||||||||||||||