incremental-writing icon indicating copy to clipboard operation
incremental-writing copied to clipboard

Dismissing "next repetition" mess with which is the current repetition

Open um1642 opened this issue 4 years ago • 3 comments

version: 0.4

Let's say we have a queue like:

Link Priority Notes Interval Next Rep
[[IW-test 3]] 20 1 2021-09-28
[[IW-test 2]] 24 1 2021-09-28
[[IW-test 1]] 34 1 2021-09-28
[[IW-test 4]] 12 1 2021-09-28

The display bar shows "Rep: IW-test 4"

by the way, the ordering is strange (and undesirable) to me they where queued as 1, 2, 3, 4 but priority lead to 4, 3, 2, 1 i.e. latest queued is scheduled first. This is a LIFO queue and I would expect the reverse i.e. a FIFO queue. Is there a way to change this through configuration ?

Now Invoke "Next Repetition" but cancel it (with ESC). This lead to this queue:

Link Priority Notes Interval Next Rep
[[IW-test 3]] 24.98 1 2021-09-28
[[IW-test 2]] 49.95 1 2021-09-28
[[IW-test 1]] 74.93 1 2021-09-28
[[IW-test 4]] 99.9 1 2021-09-28

Notice that priority changed even so the operation has been canceled. Also is it expected to have decimal on the priority ? The display bar still shows "Rep: IW-test 4"

Finally invoke "Dismiss Current Repetition". This lead to this queue:

Link Priority Notes Interval Next Rep
[[IW-test 2]] 49.95 1 2021-09-28
[[IW-test 1]] 74.93 1 2021-09-28
[[IW-test 4]] 99.9 1 2021-09-28

notice that "IW-test 3" has been removed instead of "IW-test 4" The display bar shows "Rep: IW-test 4" (which is indeed the result of the wrong removal)

um1642 avatar Sep 28 '21 08:09 um1642

The strange ordering is stemming from the counterintuitive priority system I think. I recently added this explanation to the README:

"Important! Priorities

Confusingly, low priority numbers correspond to high priorities! That means your daily queue of repetitions will be sorted from lowest priority number (most important) to highest priority number (least important). This is because this is the way priorities work in SuperMemo and having used it for a couple years I just got used to thinking about it like that. I didn't realise how confusing this could be until someone mentioned it in an issue. Apologies for any confusion!"

I should probably add an option to reverse this because it is exactly the opposite of what non-SuperMemo users expect.

Edit: "Now Invoke "Next Repetition" but cancel it (with ESC). This lead to this queue" I will investigate this and get back to you soon.

bjsi avatar Sep 28 '21 08:09 bjsi

I'm sorry there is a misunderstanding here so let me try to be more clear.

There is nothing to be confused about. When speaking about priorities it is the expected numbering to have the lowest number as highest priority (first to be processed) and highest number as lowest priority (last to be processed), this is not a supermemo specific thing at all. This is like when saying "our priority number 1 is..." which means "the most important/urgent is...". Every priority/task/todo related app works that way. So the numbering is actually perfectly correct.

In fact this should only be confusing to people that are not used to the concept of priority because they may think high number = high priority. But by definition priority is the *order of importance which means the most important item should be first in order and so get the first priority number which is 1.

The issue here is not the numbering but the fact that queueing an item put it as the most important/urgent before other already queued. let me give you an example: If we add 3 items: A then B then C for the same day the result will be that C will be reviewed before B and B before A so C then B then A but we would expect to have the review in the same order as their insertion A, B, C.

That means that there is no need to change the numbering, we can just queue new item at the end of the queue instead of the start. I would quess that now you somewhat have to increase the priority of every item to insert a lower priority number in front but you just have to push items with a priority above all other items that are already queued for the same day (i.e. find the max of the day and add 1).

rem: The same should be true when reviewing and rescheduling all items for let's say tomorrow we would expect to review all items tomorrow in the same order otherwise it means that items order is reversed with every review.

I hope this will clarify the topic...

um1642 avatar Sep 28 '21 21:09 um1642

"Now Invoke "Next Repetition" but cancel it (with ESC). This lead to this queue"

I had time to look at this today and realized the problem. The next repetition and schedule command executes next repetition and then opens a modal to edit the scheduling data, so even if you hit escape it still changes the row because it executed next repetition. You could use the edit current rep data command instead which you could use to schedule the next repetition without effecting the data if you hit cancel.

I will try to get back to you on your latest comment soon.

bjsi avatar Oct 02 '21 09:10 bjsi