-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle postfix overrun #167
Handle postfix overrun #167
Conversation
@na2hiro, thanks for putting together this PR. I appreciate the added tests, incremental improvements, sharing a Work In Progress PR and checking in on direction, and the feature itself! So far it looks like it's headed in a good direction. For the stats, I think testing It looks like the test expectations need Is the addition of Can you please split up your commits? It would be useful to have: A) -- As a side note about |
Thanks for checking!
You're right, for the new behavior,
I didn't notice I was using another one. It seems
I tried not to format existing code but I missed my editor updated it in imports. I hope linter can be used widely so anyone can run without it! Going to try to minimize diff soon when #168 or other refactoring is done! (I have some idea on it but will focus on this first) |
3500a05
to
bc650f0
Compare
Updated:
Could you double check if One thing I'm not sure about
In the current implementation, finishing with backspace is considered correct and won't appear in |
@na2hiro, regarding this comment I think the input "Yours{bs}{bs}" for "You" should ideally be marked as incorrect because it expects to be 1 stroke and surely has been written in 2 strokes. I think both the input "Les" via For the attempts, I think we want to push more detail than we currently are on this branch. Previously, "sigh", "silent" via Interim word, "sigh": Interim word, "sigh leapt": No interim words, only finished "silent": I am seeing some flakey test runs. Sometimes All passing: "accepts first word but detect misstroke in second word when input at once" sometimes fails: "doesn't accept excess chars" sometimes fails: "accepts inputs at once" sometimes fails: Example of all 3 failing: |
Thanks for the deeper look!
I tackled this one first. I added a test case to check the current behavior 7ae68fd, then updated the new implementation so it also passes the same test case 6c02eaa. There I switched to use
, but it seems it's natural for the new implementation. (Note: due to switching from char-to-char processing to batch processing, it stopped getting called with Also I checked
At last I made it work like that 0e721cb. At this point "yours" was already included in
I couldn't reproduce this so far. I wonder if this still persists with the latest code. Maybe we need some waits between inputs to stably reproduce intended input batches. |
@na2hiro nice work! The behaviour for showing interim strokes in the chart is looking good now. The improvement to get target observable stroke count is really nice. I'm still getting flakey test runs where sometimes they all pass and sometimes there are a few, random failures… Example 1:
Example 2:
Example 3:
It seems like running The test suite is quite long (about 30–50sec) so we might also split out the slow UI test suite from unit tests in
|
Thanks for the detailed report. I think I fixed them. Could you test it on your environment?
If this looks good and there are no more issues, I wonder if I can remove the cookie hack and switch to new behavior. |
Nice work @na2hiro! I'm in transit now so I can't confirm it works on my machine yet but I think it's looking good. I think we can deploy it when I'm back with the cookie hack and get some dev/steno folk to test it in production with manually set cookies. That could help catch any possible timing issues on slower devices or different systems. Great work on this! Thank you so much. |
Awesome, that's a good idea! Thank you for patiently reviewing my code. I'd be happy to follow up with issues if found any |
Reverted module install
Reverted import formatting in App.js
… strokeAccuracy (TODO: this broke other test cases)
ae5d9d3
to
9215f20
Compare
@na2hiro Thanks for all your work on this! I've rebased the branch on master for a clean history and force pushed the rebased branch so that PR was up to date when I merged so GitHub marked it merged properly this time. I've deployed the change so now when anyone has the cookie I'll let you know if I get any reports of issues with the new behaviour and otherwise, after it's been live a while, I will remove the cookie hack and switch to new behaviour. Thanks again! |
After 2 months of testing by devs that manually set the cookie, there have been no reports of issues, so we'll turn it on as the default for everyone. More details in original PR: #167
This is to address the issue #15 with the batch update strategy that is described in #15 (comment).
I've confirmed following with manual and end-to-end tests:
At this point, I'd like to get your feedback if this is going to a good direction or not. Also before removing the flag and current implementation, I'd like your input on stats to cover. The entire
App
state is huge, so I listed up some fields to test against ingetStatsState()
method, but I'm not sure that covers enough.I'd appreciate if you can try this out. Thanks as always!