Anki 25.01 Beta

Hi all,

A new beta is available for testing. Please let us know how it goes for you, and particularly any improvements or regressions you notice due to the upgraded toolkit version.

17 Likes

It seems to work great on debian linux (sid), both with dark and light mode enabled.

There is an issue though:

The table Tatsächliche Erfolgsquote has been cut off at the start. E.g. it says “eute” but should say “Heute” (the end is cut off too but can be viewed by scrolling, so no issue here).
If I zoom out a little bit then it shows the text just fine:

Might be an issue for smaller screen too but I have no way of testing it (the window won’t let me resize it small enough).

Thanks for the beta!

On Windows 11, in the Editor, it seems I cannot use the keyboard arrows to navigate the tag bar. Neither left/right (to move between tags or select which tag to edit) nor up/down (to choose which tag to insert from Anki’s suggestions) work. However, I can still move left and right within a tag when it is already selected.

Dae, do you think this will become 25.02? Based on the 33% completeness of milestones, it seems like there is still a lot of work to be done.

1 Like

It had to be my thing that broke :slightly_frowning_face:.

I’m not a CSS expert and it turns out that overflow-x: auto does not play nicely with justify-content: center.
I didn’t notice because the English text is not long enough to ever make it overflow. I think the German text has been made longer since I last discussed it with you too.

It was simple enough to fix, but it is not great that it has to scroll at all:

Would it make sense if the column titles were something like Instabil - Stabil - Gesamt - Anzahl?
That would be much less likely to overflow.
I could add some new translation strings for the table instead of just directly reusing the ones from the Card Counts chart.

2 Likes

No worries, you’re doing a great job with your contributions!

Agreed. But is that really preventable (especially looking at small displays like phone displays, if e.g. ankidroid uses the same code)?

Yes, that seems fine to me. Although as a sitenote: I reversed the translation strings with “Instabil” and “Stabil” today to what they were before (“Junge Karten” and “Alte Karten”). The “Karten” part means “cards” and technically isn’t part of the english translation, which just says “Young” and “old”. I could remove it in pontoon though to make the table headers shorter.

1 Like

I’ve just tried to play with translation strings and unfortunately I don’t think I can do what I wanted.

I cannot see a way of doing something like this:

statistics-true-retention-young = { statistics-counts-young-cards }
statistics-true-retention-mature = { statistics-counts-mature-cards }
statistics-true-retention-total = { statistics-counts-total-cards }

where it defaults to the value of statistics-counts-young-cards etc. in the current translation (instead of always using English).

If I’m right this means we would need to manually add a new translation for the columns in each language instead of just defaulting to the existing translations from Card Counts.

Do you think it is worth adding new translation strings for the column titles?

Getting “Anki quitted unexpectedly” prompt when closing Anki

Replicate:

  1. Start Anki in safe mode
  2. Quit/Force quit

It does not happen every time, however by repeating the error shows

M1: 15.2 (24C101)

Process:               anki [33993]
Path:                  /Applications/Anki.app/Contents/MacOS/anki
Identifier:            net.ankiweb.dtop
Version:               25.01 (???)
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2025-01-17 17:31:05.7037 -0300
OS Version:            macOS 15.2 (24C101)
Report Version:        12
Anonymous UUID:        ED0D4ED6-8A41-F288-BA77-1620E9416546

Sleep/Wake UUID:       ACF284BB-8DDC-4596-BF1B-74FC19EA07A7

Time Awake Since Boot: 84000 seconds
Time Since Wake:       1632 seconds

System Integrity Protection: enabled

Crashed Thread:        0  CrBrowserMain  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Codes:       0x0000000000000001, 0x0000000000000000

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [33993]

VM Region Info: 0 is not in any region.  Bytes before following region: 4297588736
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      __TEXT                      100280000-102814000    [ 37.6M] r-x/r-x SM=COW  /Applications/Anki.app/Contents/MacOS/anki

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0   libqcocoa.dylib               	       0x10dc81a94 -[QNSView dealloc] + 276 (qnsview.mm:177)
1   AppKit                        	       0x18d3d9250 -[NSTouch dealloc] + 48
2   CoreFoundation                	       0x1895b47a0 __RELEASE_OBJECTS_IN_THE_SET__ + 148
3   CoreFoundation                	       0x1895b46bc -[__NSSetM dealloc] + 148
4   AppKit                        	       0x18d292a4c -[NSEvent dealloc] + 68
5   libqcocoa.dylib               	       0x10dc3d3c4 QCocoaDrag::~QCocoaDrag() + 20 (qcocoadrag.mm:31) [inlined]
6   libqcocoa.dylib               	       0x10dc3d3c4 QCocoaDrag::~QCocoaDrag() + 20 (qcocoadrag.mm:30) [inlined]
7   libqcocoa.dylib               	       0x10dc3d3c4 QCocoaDrag::~QCocoaDrag() + 36 (qcocoadrag.mm:30)
8   libqcocoa.dylib               	       0x10dc48d98 QScopedPointerDeleter<QCocoaDrag>::cleanup(QCocoaDrag*) + 16 (qscopedpointer.h:24) [inlined]
9   libqcocoa.dylib               	       0x10dc48d98 QScopedPointer<QCocoaDrag, QScopedPointerDeleter<QCocoaDrag>>::~QScopedPointer() + 20 (qscopedpointer.h:81) [inlined]
10  libqcocoa.dylib               	       0x10dc48d98 QScopedPointer<QCocoaDrag, QScopedPointerDeleter<QCocoaDrag>>::~QScopedPointer() + 20 (qscopedpointer.h:79) [inlined]
11  libqcocoa.dylib               	       0x10dc48d98 QCocoaIntegration::~QCocoaIntegration() + 360 (qcocoaintegration.mm:206)
12  libqcocoa.dylib               	       0x10dc48fa4 QCocoaIntegration::~QCocoaIntegration() + 4 (qcocoaintegration.mm:180) [inlined]
13  libqcocoa.dylib               	       0x10dc48fa4 QCocoaIntegration::~QCocoaIntegration() + 4 (qcocoaintegration.mm:180) [inlined]
14  libqcocoa.dylib               	       0x10dc48fa4 non-virtual thunk to QCocoaIntegration::~QCocoaIntegration() + 16
15  QtGui                         	       0x10abebd08 QGuiApplicationPrivate::~QGuiApplicationPrivate() + 492
16  QtWidgets                     	       0x10c9d5220 QApplicationPrivate::~QApplicationPrivate() + 12
17  QtCore                        	       0x1068baf90 QObject::~QObject() + 2180
18  QtGui                         	       0x10abe6b48 QGuiApplication::~QGuiApplication() + 652
19  QtWidgets                     	       0x10c9d7118 QApplication::~QApplication() + 1096
20  QtWidgets.abi3.so             	       0x10d75937c sipQApplication::~sipQApplication() + 52
21  QtCore.abi3.so                	       0x1065602c4 cleanup_on_exit(_object*, _object*) + 68
22  anki                          	       0x1005625e8 cfunction_vectorcall_NOARGS + 100
23  anki                          	       0x100475fec atexit_callfuncs + 92
24  anki                          	       0x10066624c Py_FinalizeEx + 324
25  anki                          	       0x1004ab5d0 Py_RunMain + 400
26  anki                          	       0x100285ad8 anki::main::h9a134223e8666bc5 + 6852
27  anki                          	       0x10028400c std::sys::backtrace::__rust_begin_short_backtrace::h29fac3381975da04 + 12
28  anki                          	       0x100287b3c main + 916
29  dyld                          	       0x189170274 start + 2840

Well, I certainly think adding “cards” in the german translation like it’s currently done is better for comprehension. I’m not sure whether a new string for the TR table is necessary per se, especially considering the content of statistics-true-retention-* seem to be the exact same as in statistics-counts-*-cards and it would be weird if they are somewhat inconsistent.

For reference, I changed the strings manually using the dev console to what they currently are in pontoon, and the scroll is gone:

I do wonder if other languages have long words for “Young”, “Old”, ect. which would make a scroll in TR table inevitable though.

1 Like

I was thinking it might be useful to be able to do something like:

statistics-counts-young-cards = Junge Karten
statistics-true-retention-young = Jung

so you can be verbose where you have plenty of space, and terse where you do not.

If you don’t think it would be useful it’s better to just leave the translations as they are.

I’ve created a PR for just the CSS fix:

1 Like

I know it’s nice to re-use what we have, but if we need shorter titles for things, it’s better to add separate strings and communicate that limitation to the translators.

4 Likes

High priority bug

When using caps lock, the next letter you type, it won’t appear in Anki

Steps to reproduce

  1. Anki on safe mode
  2. Add tab & select a field
  3. Caps lock + any letter

Result: The first letter you type, won’t appear, and is very frustrating

Debug info: M1 15.2 (24C101)

Could be an Windows specific issue, anyone to try out on other systems?

Can’t replicate with Mac M1

Could you try out the 2 bug found above?

This doesn’t happen for me on Windows 11 (24H2).

Maybe a Mac specific bug?

2 Likes

I cannot reproduce this either (debian linux, sid), if we’re talking about this bar at the bottom:

I cannot reproduce this on debian linux (sid) either. Maybe mac specific?

Cannot reproduce this with debian sid either. Also maybe mac related?

1 Like

I’ve also had two similar crashes on closing Anki this evening, but didn’t want to say anything right away because I was running from source.

I cannot figure out how to replicate it, but I’ll leave my information in case it is related and can help.

N.B. Running from source (tag: 25.01beta1) not the official build.

Windows 11 (24H2)

The first time the stats screen stopped working (showed a blank screen, even when you close and reopen). On closing Anki I got the following in the console:

Crash 1
2025-01-17 17:21:10,112:DEBUG:aqt.mediasrv: GET /graphs
2025-01-17 17:21:25,910:DEBUG:aqt.mediasrv: GET /graphs
blocked main thread for 289ms:
  File "C:\workspace\anki\tools\run.py", line 14, in <module>
    aqt.run()
  File "C:\workspace\anki\qt\aqt\__init__.py", line 573, in run
    _run()
  File "C:\workspace\anki\qt\aqt\__init__.py", line 787, in _run
    app.exec()
  File "C:\workspace\anki\qt\aqt\progress.py", line 121, in handler
    func()
  File "C:\workspace\anki\qt\aqt\mediasync.py", line 127, in check_finished
    on_finished()
  File "C:\workspace\anki\qt\aqt\main.py", line 695, in after_media_sync
    self._unloadCollection()
  File "C:\workspace\anki\qt\aqt\main.py", line 736, in _unloadCollection
    self.col.close(downgrade=False)
  File "C:\workspace\anki\pylib\anki\collection.py", line 270, in close
    self._backend.close_collection(
  File "C:\workspace\anki\out/pylib\anki\_backend_generated.py", line 154, in close_collection
    raw_bytes = self._run_command(3, 1, message.SerializeToString())
  File "C:\workspace\anki\pylib\anki\_backend.py", line 168, in _run_command
    print("".join(traceback.format_stack()))

2025-01-17 17:21:38,092:WARNING:waitress: unhandled close event
Ignored progress func as collection unloaded: <function AnkiWebView.cleanup.<locals>.<lambda> at 0x000002025E910A60>

The second time I didn’t notice anything wrong with Anki, I was just closing it to change locales while twiddling with the True Retention table:

Crash 2
2025-01-17 18:54:04,356:DEBUG:aqt.mediasrv: GET /_anki/js/vendor/jquery.min.js
2025-01-17 18:54:04,358:DEBUG:aqt.mediasrv: GET /_anki/imgs/gears.svg
blocked main thread for 6684ms:
  File "C:\workspace\anki\tools\run.py", line 14, in <module>
    aqt.run()
  File "C:\workspace\anki\qt\aqt\__init__.py", line 573, in run
    _run()
  File "C:\workspace\anki\qt\aqt\__init__.py", line 787, in _run
    app.exec()
  File "C:\workspace\anki\qt\aqt\progress.py", line 121, in handler
    func()
  File "C:\workspace\anki\qt\aqt\mediasync.py", line 127, in check_finished
    on_finished()
  File "C:\workspace\anki\qt\aqt\main.py", line 695, in after_media_sync
    self._unloadCollection()
  File "C:\workspace\anki\qt\aqt\main.py", line 736, in _unloadCollection
    self.col.close(downgrade=False)
  File "C:\workspace\anki\pylib\anki\collection.py", line 270, in close
    self._backend.close_collection(
  File "C:\workspace\anki\out/pylib\anki\_backend_generated.py", line 154, in close_collection
    raw_bytes = self._run_command(3, 1, message.SerializeToString())
  File "C:\workspace\anki\pylib\anki\_backend.py", line 168, in _run_command
    print("".join(traceback.format_stack()))

2025-01-17 18:54:25,260:WARNING:waitress: unhandled close event
1 Like

I tried to replicate this:

And while I cannot reproduce it currently on debian sid, I noticed something else.

Normally the drop down field in settings shows the language you have selected, like so:


But if you change the language to Latin, then restart anki, the drop down field displays “English (United States)” again (but interface is in latin, as far as the sparse translations go). It should show “Latin” though.

It’s just visual and I didn’t try every language. It also happens in current stable, too, so hasn’t been just recently introduce by the beta.

Edit: Is happens for some other languages too. E.g. the language with those evenly spaced 5 squares (see arrow below) acts same as described above for “Latin”, in that the settings window displays US english instead:


No idea which language that is, my debian sid vm seems to miss some international fonts.

Could replicate the issue by trying with Latin

Is Latin so low on translations? only the apple shortcuts in top left was in Latin

Speaking of translations, does pontoon supports AI translations? Anna’s Archive Weblate had success in implementing AI/Automatic translation on their Weblate

It might be a solution for languages that don’t have sufficient translations

1 Like

I can’t seem to reproduce the bugs using Windows 11.

1 Like

I can reproduce this issue on Windows 11 (24H2).

The first bad commit is: Qt 6.8.1 (#3633) ¡ ankitects/anki@5d150c7 ¡ GitHub

So it looks like it is related to the Qt update.

1 Like