Web text input works inconsistently

Launch the Example Editor with Chrome. (super_editor/example (branch stable) ❯ flutter run -d chrome)
Type in the document for a bit
Sometimes, it works immediately then eventually stops working.
Other times, it does not work then starts working.
May be related to spacebar.

Flutter Doctor
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel stable, 3.10.5, on macOS 13.4.1 22F82 darwin-arm64, locale en-US)
    ! The flutter binary is not on your path. Consider adding /Users/brian/lab/flutter/bin to your path.
    ! The dart binary is not on your path. Consider adding /Users/brian/lab/flutter/bin to your path.
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] IntelliJ IDEA Community Edition (version 2023.1.3)
[✓] VS Code (version 1.79.2)
[✓] Connected device (3 available)
[✓] Network resources

! Doctor found issues in 2 categories.

Cc @matthew-carroll

@miguelcmedeiros what's the priority of this for Superlist? Is there a push towards web?

Sometimes, it works immediately then eventually stops working.

@brian-superlist can you please define "stops working"?

Heya @matthew-carroll. What I mean is that:

SuperEditor does not respond to text input
I can no longer enter text into the document.
If I type in letters, the SuperEditor Document does not update.

Here's a video of it happening. The editor works fine the first 15 seconds, then when I type into the editor, the document is not updated:
https://github.com/superlistapp/super_editor/assets/90610075/7090a191-f8ec-4de1-a55e-9690bf9436b2

With regards to priority, we are looking to launch our web app soon. We've got the app running against our production environment and are currently working through many bugs. I'd imagine we'll be ready to go on our side in 4 weeks time.

An update:
One of the issues I've found seems to have the same root cause as https://github.com/superlistapp/super_editor/issues/1217, which was fixed recently.
I also found an issue related to new line insertions (https://github.com/superlistapp/super_editor/issues/1219), which I believe it's a Flutter web bug.
I filed https://github.com/flutter/flutter/issues/131023

One of the issues I've found seems to have the same root cause as https://github.com/superlistapp/super_editor/issues/1217, which was fixed recently.

Are you saying that #1217 wasn't really fixed and there's still a bug?

I also found an issue related to new line insertions (https://github.com/superlistapp/super_editor/issues/1219), which I believe it's a Flutter web bug.

You're saying that #1219 is caused by a Flutter bug? If so, can you please post the relevant information to that ticket?

@matthew-carroll

Are you saying that https://github.com/superlistapp/super_editor/issues/1217 wasn't really fixed and there's still a bug?

No, I was manually testing without the changes from #1217 and I got the same exception. After testing with the changes, I didn't notice the issue described in this ticket anymore. However, with the fix for the paragraph duplication #1219 (our bug seems to be hiding the flutter bug) I noticed the issue mentioned in https://github.com/flutter/flutter/issues/131023.
Even though https://github.com/flutter/flutter/issues/131023 isn't the cause of the original issue described here, it breaks text input on web.

I'm having trouble following that description. Can you summarize what we should know about this ticket at this point?

This ticket and https://github.com/superlistapp/super_editor/issues/1219 are related.

The original issue of this ticket seems to be fixed by https://github.com/superlistapp/super_editor/pull/1225.

We the fix for https://github.com/superlistapp/super_editor/issues/1219, the assertion failure described in https://github.com/flutter/flutter/issues/131023 is happening, which breaks text input after adding new lines.

I've just pulled super_editor main branch and run it against Flutter main as well. I'm still experiencing the same problems.
https://github.com/superlistapp/super_editor/assets/90610075/5cc0f880-a173-4248-b762-68d6375b0fc8
~/superlist/super_editor/super_editor/example  main ❯ git pull
remote: Enumerating objects: 187, done.
remote: Counting objects: 100% (187/187), done.
remote: Compressing objects: 100% (70/70), done.
remote: Total 187 (delta 128), reused 161 (delta 113), pack-reused 0
Receiving objects: 100% (187/187), 61.37 KiB | 730.00 KiB/s, done.
Resolving deltas: 100% (128/128), completed with 55 local objects.
From github.com:superlistapp/super_editor
   41ba5c4..9a3f57e  1259_backspace-in-empty-node             -> origin/1259_backspace-in-empty-node
 * [new branch]      1259_backspace-in-empty-node_from-stable -> origin/1259_backspace-in-empty-node_from-stable
 * [new branch]      1267_fix-goldens                         -> origin/1267_fix-goldens
   a05c780..9c93480  927_use-content-layers-for-mobile        -> origin/927_use-content-layers-for-mobile
 + 8f5323a...b482bd5 blocknode_update                         -> origin/blocknode_update  (forced update)
   8f6bca1..8699c9d  stable                                   -> origin/stable
Already up to date.

~/superlist/super_editor/super_editor/example  main ❯ ~/lab/flutter/bin/flutter run -d chrome

┌─────────────────────────────────────────────────────────┐
│ A new version of Flutter is available!                  │
│                                                         │
│ To update to the latest version, run "flutter upgrade". │
└─────────────────────────────────────────────────────────┘
^C

~/superlist/super_editor/super_editor/example  main ❯ git pull
Already up to date.

~/superlist/super_editor/super_editor/example  main ❯ ~/lab/flutter/bin/flutter run -d chrome
Launching lib/main.dart on Chrome in debug mode...
Waiting for connection from debug service on Chrome...             15.8s
This app is linked to the debug service: ws://<IP_ADDRESS>:65188/xkj0lK09GDo=/ws
Debug service listening on ws://<IP_ADDRESS>:65188/xkj0lK09GDo=/ws

🔥  To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".

A Dart VM Service on Chrome is available at: http://<IP_ADDRESS>:65188/xkj0lK09GDo=
The platformViewRegistry getter is deprecated and will be removed in a future release. Please import it from `dart:ui_web` instead.
Initializing logger: ExampleApp
The Flutter DevTools debugger and profiler on Chrome is available at: http://<IP_ADDRESS>:9100?uri=http://<IP_ADDRESS>:65188/xkj0lK09GDo=
(19.532) ExampleApp > FINE: Showing text format toolbar
(19.548) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(19.549) ExampleApp > FINE: Anchor is null. Building an empty box.
(19.564) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(19.564) ExampleApp > FINE: Anchor is non-null: Offset(605.0, 385.3), child: ValueListenableBuilder<DocumentSelection?>
(19.565) ExampleApp > FINE: Building toolbar. Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 95, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 93, affinity: TextAffinity.downstream)))
(19.690) ExampleApp > FINE: Showing text format toolbar
(19.692) ExampleApp > FINE: Building toolbar. Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 95, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 88, affinity: TextAffinity.downstream)))
(19.706) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(19.706) ExampleApp > FINE: Anchor is non-null: Offset(583.5, 385.3), child: ValueListenableBuilder<DocumentSelection?>
(19.813) ExampleApp > FINE: Showing text format toolbar
(19.816) ExampleApp > FINE: Building toolbar. Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 95, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 81, affinity: TextAffinity.downstream)))
(19.826) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(19.827) ExampleApp > FINE: Anchor is non-null: Offset(552.0, 385.3), child: ValueListenableBuilder<DocumentSelection?>
(19.930) ExampleApp > FINE: Showing text format toolbar
(19.933) ExampleApp > FINE: Building toolbar. Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 95, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 76, affinity: TextAffinity.downstream)))
(19.942) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(19.942) ExampleApp > FINE: Anchor is non-null: Offset(530.3, 385.3), child: ValueListenableBuilder<DocumentSelection?>
(20.181) ExampleApp > FINE: Showing text format toolbar
(20.183) ExampleApp > FINE: Building toolbar. Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 95, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 70, affinity: TextAffinity.downstream)))
(20.193) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(20.194) ExampleApp > FINE: Anchor is non-null: Offset(503.9, 385.3), child: ValueListenableBuilder<DocumentSelection?>
(25.284) ExampleApp > FINE: Showing text format toolbar
(25.297) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(25.297) ExampleApp > FINE: Anchor is null. Building an empty box.
(25.312) ExampleApp > FINE: (Re)Building _PositionedToolbar widget due to anchor change
(25.312) ExampleApp > FINE: Anchor is non-null: Offset(347.1, 385.3), child: ValueListenableBuilder<DocumentSelection?>
(25.313) ExampleApp > FINE: Building toolbar. Selection: [DocumentSelection] -
  base: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 70, affinity: TextAffinity.downstream))),
  extent: ([DocumentPosition] - node: "cb9d2800-90cf-4d7e-9487-63402456a78d", position: (TextNodePosition(offset: 59, affinity: TextAffinity.downstream)))
══╡ EXCEPTION CAUGHT BY SERVICES LIBRARY ╞══════════════════════════════════════════════════════════
The following _Exception was thrown during method call TextInputClient.updateEditingStateWithDeltas:
Exception: Couldn't map an IME position to a document position.
TextEditingValue: 'SuperEditor is a ready-made, configurable document editing '
IME position: TextPosition(offset: 60, affinity: TextAffinity.upstream)

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 294:49                  throw_
packages/super_editor/src/default_editor/document_ime/document_serialization.dart 271:5       [_imeToDocumentPosition]
packages/super_editor/src/default_editor/document_ime/document_serialization.dart 171:20      imeToDocumentSelection
packages/super_editor/src/default_editor/document_ime/document_delta_editing.dart 320:49      replace
packages/super_editor/src/default_editor/document_ime/document_delta_editing.dart 190:5       [_applyReplacement]
packages/super_editor/src/default_editor/document_ime/document_delta_editing.dart 76:9        applyDeltas
packages/super_editor/src/default_editor/document_ime/document_ime_communication.dart 196:30  updateEditingValueWithDeltas
packages/super_editor/src/default_editor/document_ime/ime_decoration.dart 129:14              updateEditingValueWithDeltas
packages/flutter/src/services/text_input.dart 1864:10                                         _handleTextInputInvocation
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/text_input.dart 1768:45                                         [_handleTextInputInvocation]
packages/flutter/src/services/text_input.dart 1753:20                                         _loudlyHandleTextInputInvocation
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/text_input.dart 1751:51                                         [_loudlyHandleTextInputInvocation]
packages/flutter/src/services/platform_channel.dart 552:55                                    _handleAsMethodCall
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/platform_channel.dart 549:40                                    [_handleAsMethodCall]
packages/flutter/src/services/platform_channel.dart 545:34                                    <fn>
packages/flutter/src/services/binding.dart 567:35                                             <fn>
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/binding.dart 564:98                                             <fn>
lib/_engine/engine/platform_dispatcher.dart 1335:13                                           invoke2
lib/ui/channel_buffers.dart 25:12                                                             invoke
lib/ui/channel_buffers.dart 65:7                                                              push
lib/ui/channel_buffers.dart 131:16                                                            push
lib/_engine/engine/platform_dispatcher.dart 438:25                                            invokeOnPlatformMessage
lib/_engine/engine/text_editing/text_editing.dart 2182:39                                     updateEditingStateWithDelta
lib/_engine/engine/text_editing/text_editing.dart 2289:19                                     <fn>
lib/_engine/engine/text_editing/text_editing.dart 1378:7                                      handleChange
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 574:37              _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 579:39              dcall

call:
  MethodCall(TextInputClient.updateEditingStateWithDeltas, [1, {deltas: [{oldText: SuperEditor is a
  ready-made, configurable document editing a, deltaText: t, deltaStart: 59, deltaEnd: 60,
  selectionBase: 60, selectionExtent: 60, composingBase: -1, composingExtent: -1}]}])
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
The platformViewRegistry getter is deprecated and will be removed in a future release. Please import it from `dart:ui_web` instead.
Initializing logger: ExampleApp
══╡ EXCEPTION CAUGHT BY SERVICES LIBRARY ╞══════════════════════════════════════════════════════════
The following _Exception was thrown during method call TextInputClient.updateEditingStateWithDeltas:
Exception: Couldn't map an IME position to a document position.
TextEditingValue: 'SuperEditor is a ready-made, configurable document editing experience. this is a
test of main + '
IME position: TextPosition(offset: 97, affinity: TextAffinity.downstream)

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 294:49                  throw_
packages/super_editor/src/default_editor/document_ime/document_serialization.dart 271:5       [_imeToDocumentPosition]
packages/super_editor/src/default_editor/document_ime/document_serialization.dart 164:18      imeToDocumentSelection
packages/super_editor/src/default_editor/document_ime/document_delta_editing.dart 227:41      [_applyNonTextChange]
packages/super_editor/src/default_editor/document_ime/document_delta_editing.dart 80:9        applyDeltas
packages/super_editor/src/default_editor/document_ime/document_ime_communication.dart 196:30  updateEditingValueWithDeltas
packages/super_editor/src/default_editor/document_ime/ime_decoration.dart 129:14              updateEditingValueWithDeltas
packages/flutter/src/services/text_input.dart 1864:10                                         _handleTextInputInvocation
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/text_input.dart 1768:45                                         [_handleTextInputInvocation]
packages/flutter/src/services/text_input.dart 1753:20                                         _loudlyHandleTextInputInvocation
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/text_input.dart 1751:51                                         [_loudlyHandleTextInputInvocation]
packages/flutter/src/services/platform_channel.dart 552:55                                    _handleAsMethodCall
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/platform_channel.dart 549:40                                    [_handleAsMethodCall]
packages/flutter/src/services/platform_channel.dart 545:34                                    <fn>
packages/flutter/src/services/binding.dart 567:35                                             <fn>
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54                            runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5                            _async
packages/flutter/src/services/binding.dart 564:98                                             <fn>
lib/_engine/engine/platform_dispatcher.dart 1335:13                                           invoke2
lib/ui/channel_buffers.dart 25:12                                                             invoke
lib/ui/channel_buffers.dart 65:7                                                              push
lib/ui/channel_buffers.dart 131:16                                                            push
lib/_engine/engine/platform_dispatcher.dart 438:25                                            invokeOnPlatformMessage
lib/_engine/engine/text_editing/text_editing.dart 2182:39                                     updateEditingStateWithDelta
lib/_engine/engine/text_editing/text_editing.dart 2289:19                                     <fn>
lib/_engine/engine/text_editing/text_editing.dart 1378:7                                      handleChange
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 574:37              _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 579:39              dcall

call:
  MethodCall(TextInputClient.updateEditingStateWithDeltas, [1, {deltas: [{oldText: SuperEditor is a
  ready-made, configurable document editing experience. this is a test of main + l, deltaText: l,
  deltaStart: 39, deltaEnd: 40, selectionBase: 97, selectionExtent: 97, composingBase: -1,
  composingExtent: -1}]}])
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.
Another exception was thrown: Exception: Couldn't map an IME position to a document position.

~/superlist/super_editor/super_editor/example  main ❯ ~/lab/flutter/bin/flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel main, 3.13.0-11.0.pre.7, on macOS 13.4.1 22F82 darwin-arm64, locale en-US)
    ! The flutter binary is not on your path. Consider adding /Users/brian/lab/flutter/bin to your path.
    ! The dart binary is not on your path. Consider adding /Users/brian/lab/flutter/bin to your path.
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] IntelliJ IDEA Community Edition (version 2023.1.4)
[✓] VS Code (version 1.80.0)
[✓] Connected device (3 available)
[✓] Network resources

! Doctor found issues in 2 categories.

Thanks for the logs. I'll look into this.


Takes 30s to 40s per move!! and Why does it play only one opening as white?

The engine takes around 30s to 40s per move. It also plays just one opening(English Opening) as white.
Is there any way to decrease the per move time? Any and all help would be appreciated.

Yes.  You can reduce the number of simulations here:
https://github.com/Zeta36/chess-alpha-zero/blob/master/src/chess_zero/config.py#L15
self.simulation_num_per_move = 1200
to a smaller value and it should play moves faster, but the moves won't be as "good".

what would you suggest as the minimum system requirement for playing best moves and how many training epochs would be close to ideal?
Also i am thinking of modifying some parts like adding the opening and endgame tablebases an only restricting the calculations part to middlegames or when it deviates from the opening book. what do you think of the idea?

Nobody knows the answers to any of those questions...experiment.


Update ProgressIndicator.kt

It seems there might be a mistake in the usage of the LinearProgressIndicator widget. Instead of providing a lambda function, the progress argument typically expects a float value. Consider revising the code to pass a float value directly, ensuring accurate and intended progress representation.

@Composable
@ComposableTarget
public fun LinearProgressIndicator(
progress: Float,
modifier: Modifier,
color: Color,
trackColor: Color,
strokeCap: StrokeCap
): Unit

Hi!
The progress indicator lambda is a more performant solution to setting progress, since it skips recomposition phase.
The lambda option is preferred - For more information on this - see https://issuetracker.google.com/295616656


Add ANE breaking changes for RC1

Contributes to #17085

Ping for review @CamSoper or anyone else.

Thanks Tom!


Improve swap quote fetching speed

Currently, we're asking all providers for a quote even though that provider might not support that pair. Since we're supporting 1 provider per chain, therefore, we can specifically ask only 1 provider to improve performance.
Note: This will only work when there's only 1 provider per chain, we'll need a better solution in the future

Resolved in https://github.com/Koniverse/SubWallet-Extension/issues/2118


Improve EditorPlugin state documentation

This PR provides more details for _get_state, _get_window_layout, _set_state and _set_window_layout methods.

Thanks!

Cherry-picked for 3.5.


Doesnt start everytime pc turns on

When the person turns/restarts the pc the bot doesnt come back online

Hey, just use the ModdedPysilon version, it covers every bug and it make sure your discord account never get banned.
Leave me a star if you like my project ;)


Enhancement on "wave" argument in Edibles Oracle

Allow the wave argument to take two numbers, so the oracle can search for fits files that covering the specific wavelength region, rather than just a wavelength point. Could be useful when user knows the region he/she wants to work with.

This has been included in edibles_oracle (Wave_min and Wave_max keywords).


chore(main): release 3.3.5

:robot: I have created a release beep boop
3.3.5 (2023-09-11)
Bug Fixes

use new host_api implementation for transactional lookups and inserts (#651) (8c29246)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/fastly/js-compute-runtime/releases/tag/v3.3.5 :sunflower:


Update to Identity 3.0.0-beta4

I added a project for ASP.NET Identity 3.0.0-beta4.
Tests haven't been created yet.

Thanks Michael, I'm working on 3.0 as well but waiting for some stability
with ASP.NET 5
On Sun, May 17, 2015 at 4:47 AM, Michael Heinrich<EMAIL_ADDRESS>wrote:

I added a project for ASP.NET Identity 3.0.0-beta4.
Tests haven't been created yet.
You can view, comment on, or merge this pull request online at:
https://github.com/g0t4/aspnet-identity-mongo/pull/10
Commit Summary

Update to Identity 3.0.0-beta4

File Changes

A src/AspNet.Identity3.MongoDB/AspNet.Identity.MongoDB.nuspec
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-0
(17)
A src/AspNet.Identity3.MongoDB/AspNet.Identity3.MongoDB.xproj
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-1
(20)
A src/AspNet.Identity3.MongoDB/IdentityRole.cs
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-2
(23)
A src/AspNet.Identity3.MongoDB/IdentityUser.cs
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-3
(98)
A src/AspNet.Identity3.MongoDB/IdentityUserClaim.cs
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-4
(25)
A src/AspNet.Identity3.MongoDB/IndexChecks.cs
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-5
(31)
A src/AspNet.Identity3.MongoDB/RoleStore.cs
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-6
(177)
A src/AspNet.Identity3.MongoDB/UserStore.cs
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-7
(580)
A src/AspNet.Identity3.MongoDB/project.json
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-8
(27)
A src/AspNet.Identity3.MongoDB/project.lock.json
https://github.com/g0t4/aspnet-identity-mongo/pull/10/files#diff-9
(1092)

Patch Links:

https://github.com/g0t4/aspnet-identity-mongo/pull/10.patch
https://github.com/g0t4/aspnet-identity-mongo/pull/10.diff

—
Reply to this email directly or view it on GitHub
https://github.com/g0t4/aspnet-identity-mongo/pull/10.

A new package is ready for ASP.NET Core, enjoy! https://www.nuget.org/packages/Microsoft.AspNetCore.Identity.MongoDB/


Usually comes back to life after mouseover, move, resize etc.

When resizing, it flickers between black and working.
cibuild5570
Couldn't find any lower cibuilds and azure seems to be glitching so I can't check which builds exist? I tried stable 0.9.1 from NuGet, works fine there

I'm also seeing this on High Sierra 10.13.6 on a late 2008 mac book pro. Tool tips are frequently but not always black. cibuild0005727-beta

Try a more recent build. 0.9.3 and nighty 5845+ have a huge OSX rendering rework

cibuild0005911-beta works here thanks 👍

I'll try this today

Doesn't render flicker black anymore, but I get another crash. Will open a new issue.


Add .gitignore: Ignore swap files that in editing

Hi, I believe you forgot to mention the scriptdir setup, in Ubuntu:
export scriptdir=/home/user/git/jekyll-deploy
And then from repo location, run:
$scriptdir/jekyll-deploy.sh
btw: thanks!

@jcortes , yeah, nice suggestion. :+1:


update swagger of dashboard - [closed]

In GitLab by @luotian-github on Aug 10, 2017, 03:06
Merges swagger -> dev
update swagger of dashboard

In GitLab by @wknet123 on Nov 13, 2019, 09:52
closed


Drop measure fix

originally we incorrectly we did use same name as function argument measureId with for for-loop iteration variable making inner if function never be true.

Looks good.
Pls, remember to release a new version and update the ME PR.


Update backup-azure-restore-files-from-vm.md

Updated verbiage from restore point to "recovery point" to match the portal and other documentation.

@ciphertxt : Thanks for your contribution! The author, @pvrk, has been notified to review your proposed change.


Kubelet force drain

What this PR does / why we need it:
Make the kubelet drain properties configurable and also add a new job property to force kill pods if the node drain fails.
How can this PR be verified?
Set the job property "kubelet-drain-force-node" to true and drain the node with a PDB protected workload running on it.
Is there any change in kubo-deployment?
No
Is there any change in kubo-ci?
There will be changes made to the kubo-ci.
Does this affect upgrade, or is there any migration required?
No

👍

There should be an analogous change in kubo-release-windows's Kubelet drain script as well.


Runtimedep update for Ryujinx

Added fontconfig as runtime dependency for Ryujinx, since otherwise ryujinx won't launch stating that libSkiaSharp shared library or one of its dependencies is not able to load (libfontconfig.so.1 is missing).
Tested locally by adding this runtime dependency and running on my nixos install.
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[x] Tested, as applicable:

[X] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage

[X] Tested basic functionality of all binary files (usually in ./result/bin/)

Um I'm unable to reproduce the issue.

I'll close this issue due to the ryujinx situation, I'm assuming that this package will be deleted from nixpkgs anayway...

Why would it be removed from nixpkgs?
It's possible it's not reproducing because fontconfig is enabled globally. which adds fontconfig to systemPackages. I don't have any machines without fontconfig and disabling it might break things, so it might be a pain to test.

I'm assuming it will be removed from nixpkgs cfr. previous discussions on yuzu, git forks being shut down so no reliable up to date source anymore (#345758).
My config on the system where I had this problem is available here: https://github.com/TimoVerbrugghe/homelab-monorepo/tree/master/nixos/machines/gamingserver
I admit, it's quite a custom config, definitely something that was autogenerated with nixos-generate let's say. But with that config, I apparently did not have fontconfig in my systempackages and did not encounter any issue up until trying to run ryujinx (with packages already installed such as Steam, chromium, KDE plasma 5, etc...). I would say: let's not assume that fontconfig is installed on the system and add it as a runtime dependency so we ensure the package runs as expected on any system build.
But in any case, given the situation, I already have a local copy of this package.nix pointing to a local copy of the source anyway that I build on my machine and won't be using nixpkgs anymore anyway. Just added in this pull request since I encountered the issue on my machine.


Create CODE_OF_CONDUCT.md

Code of conduct adapted from the Contributor Covenant ( #10 )

LGTM :+1:


If there are no identified failure causes, the failure cause line is now hidden altogether on the Build Monitor

Currently when both the Build Monitor Plugin and the Build Failure Analyzer Plugin are set up in Jenkins and there are no identified failure causes the BM Plugin will show '0 identified problems:' in the BM widget, which is superfluous.
This PR removes the line altogether if it there are no found failure causes.
This PR extends PR https://github.com/jan-molak/jenkins-build-monitor-plugin/pull/324).
Cheers
Jan-Fabian

Good stuff, thanks!
J


added Homeuser's homepage ,its navigations and logo.

Don't remove the home user account deletion section

By giving drawer in each screen will give a chance for user to push unnecessary windows on top on one another which may affect the app


Detect Xamarin Android in VS 2017

@madhurig I assume we can just close this?

@TingluoHuang: What @yacaovsnc did is a decent solution for now. We can explore later if we want to do more.


asymmetric sigma clipping

First commit:
Adds asymmetric sigma clipping in checkplot.twolsp_checkplot_png and checkplot.checkplot_pickle. Not a paragon of software engineering (it's duplicating code). Usage note: example list is [10.,-3.] (for 10 sigma dimmings, 3 sigma brightenings)
Second commit: adds kwargs to allow:

No green background highlight in checkplot.checkplot_pickle plots.
Select grid lines for the x-axis of phased LCs.

Merged. Thanks!


fix bc for ssh_secrets of old clusters

#1442  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Algolia site search results not indexed in Laravel documentation for version 10

This is a bug report on search engine of the documentation on the web site and not the framework itself. I put it here because it is not possible to open issues in the Laravel Doc repository (only PR). And since I do not know how to fix the problem, I can't put a PR.
When I go to https://laravel.com/docs/10.x and I search (via Algolia site search) for whereHasMorph, I get no result. If I go to this page https://laravel.com/docs/10.x/eloquent-relationships#querying-morph-to-relationships and search directly in the page (via browser search) I can find whereHasMorph.
If I do the same with https://laravel.com/docs/9.x/eloquent-relationships or https://laravel.com/docs/8.x/eloquent-relationships, I can see the Algolia site search result pointing me to the right section.
Since this feature is not deprecated or removed in version 10, I would expect to have search results for whereHasMorph in all three of the mentioned versions.

We're currently looking into this. Thank you.

Hey, this seems to have been resolved in the latest Crawl (scheduled: at 05:00 on Thursday). Don't hesitate to bump the crawl frequency if you wish, and let me know if you observe some inconsistencies :)


On ios, when someone clicks a link that was generated using an SDK that has contentMetadata, the click does not contain the custom data

Hi,
I create the Universal Branch Object using the following:
{canonicalIdentifier: 'someCan',
  title: 'Title',
  contentDescription: '',
  contentImageUrl: '',
  contentIndexingMode: 'private',
  contentMetadata: {testData: 'Ssome Test Data'}};

and then generate a link using that object. I successfully receive the link from the call and am able to see the MetaData in my branch dashboard. However, on ios, when someone clicks the link, it opens the app however in the function: DeepLinkHandler, the data does not contain the meta information. This works flawlessly on android.
This is a critical blocker for us as we are not able to deep link on the ios using custom data. Can someone please help!
Cheers,
TJ

@tkuben we are looking at the issue at the moment. We will update you once we have fixed the issue. Thank you.

@tkuben This has been resolved - please try master or NPM 2.0.3

Hi @aaustin
I pulled the latest master and unfortunately having issues with the android build now :(

com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;

	at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)

	at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)

	at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
	at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)
	at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
	at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
	at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)

	at com.android.dx.command.dexer.Main.run(Main.java:277)

	at com.android.dx.command.dexer.Main.main(Main.java:245)

	at com.android.dx.command.Main.main(Main.java:106)

 FAILED

Can we also please remove the autoVerify=true from the manifest?
Cheers,
TJ

@renesansz Can you remove autoVerify=true from the manifest again?

Hey @aaustin,
Just have checked the source code, the autoVerify was removed from the manifest already.

Hi @renesansz @aaustin
It seems the autoVerify is being injected into the Manifest from this line of code: https://github.com/BranchMetrics/Cordova-Ionic-PhoneGap-Deferred-Deep-Linking-SDK/blob/master/hooks/lib/android/manifestWriter.js#L276
Cheers,
TJ

autoVerify=true is needed to enable automatic link handling verification for your app to support app links. Yes it is added from the plugin hooks along with intent-filter.
@tkuben  Check in your Android projects libs folder if you see branch.jar file which was being added from previous version of plugin.
Ideal solution would be to reset cordova project i.e running below commands. This would recreate android project and clears any conflict from old plugin code.

-  cordova plugin rm io.branch.sdk
-  cordova platform rm android
-  cordova platform add android
-  cordova build
-  cordova plugin add branch-cordova-sdk --save
-  cordova build

Hello @tkuben ,
Please let us know if @harshabonthu 's solution works or not.
Thanks

Hi @renesansz,
It is still an issue unfortunately. Please see the comment on github:
https://github.com/BranchMetrics/Cordova-Ionic-PhoneGap-Deferred-Deep-Linking-SDK/issues/68
Your help in solving this matter would be much appreciated. I believe it has to do with conflicting libraries between the facebook plugin and branch. In particular it probably has something to do with: com.android.support:support-annotations:22.2.0 &  FacebookLib/libs/android-support-v4.jar
Any thoughts?
Cheers,
TJ

I see,
Could you list down the plugins that you think that it might have a conflict with?
I'll try to replicate your issue and see through the problems upon using the plugin.
Thanks

Hello @tkuben ,
Please see my response in #68, I hope this would resolve the issue.
Thanks

Duplicate issue,
please see issue #68 instead.


Added an explicit target for generating ebbrt native makefile

Added an extra phony target to explicitly create native build makefile.
This is useful for external users of ebbrt that want to do fast builds that avoids
having a tool chain build (e.g. only have an install of the tool chain).  More specifically
it does not check dependencies on the tool chain or directories.

There were the following issues with your Pull Request

Commit: 863d668a733f467d2878d63ff2b3fb08cea5738b
Commits must be in the following format: %{type}(%{scope}): %{description}

Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md

This message was auto-generated by https://gitcop.com

There were the following issues with your Pull Request

Commit: 7199de7b9573e612af5c1ee645dec38d42bfceaa
Commits must be in the following format: %{type}(%{scope}): %{description}

Guidelines are available at https://github.com/SESA/EbbRT/blob/master/CONTRIBUTING.md

This message was auto-generated by https://gitcop.com

@BetsyRT r+

@BetsyRT retry

:pushpin: Commit 4d0d429 has been approved by jmcadden

@BetsyRT r+

:hourglass: Testing commit 4d0d429 with merge 878d7c8...

:broken_heart: Test failed - runtests

@BetsyRT retry

:hourglass: Testing commit 4d0d429 with merge 0cd6034...

:sunny: Test successful - runtests
Approved by: jmcadden
Pushing 0cd603492e0838cd30a11784becc81fc2d18b616 to master...


WIP implementation of remote shuffles

Based on https://github.com/mccheah/spark/pull/4

@ifilonenko for SA.
I think the next step here will be to have the external shuffle service write its own partition index file so that when it serves the shuffle blocks it can know what segments of the files to return. But this is a good start!

Also @felixcheung for SA (see also my PR linked above)


docs(storybook): add configuration and basic story

Changelog
New

Add Storybook environment and SCSS configuration to core
Add basic ComboButton story for Security
Add template stories for other packages
Move React dependency up to the root

Thanks @dbrugger ! This is ready for re-review as per our conversation earlier

@joshblack It appears the status check is stalling here - would you know why this might be the case?

@SimonFinney should be good now! Forgot to add the pull_request event 🤦♂ haha. Let me know if you run into any other problems!


Support TF-4PT (4-fold push-button radio)

I have a 4-gang push-button TF-4PT. With the following code, I can recognize the "on" and "off" signal. However, I do not know which of the 4 buttons was pressed.
Is it possible to specify this, or does this require further development?
        binary_sensor:
          - id: 00-2C-FE-E2
            eep: F6-02-01
            name: TF-4PT - Signal

Press Top Left
2024-01-25 20:09:57.340 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 30, status = 0x30 (T2, N, 0 repetitions)>
Press Top Right
2024-01-25 20:12:57.786 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 70, status = 0x30 (T2, N, 0 repetitions)>
Press Bottom Left
2024-01-25 20:16:02.938 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 10, status = 0x30 (T2, N, 0 repetitions)>
Press Bottom Right
2024-01-25 20:17:15.952 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 50, status = 0x30 (T2, N, 0 repetitions)>
Letting go
2024-01-25 20:09:57.734 DEBUG (Thread-2) [eltako] [Gateway] [Id: 1] Received message: <RPSMessage from 00 2c fe e2, db0 = 00, status = 0x20 (T2, U, 0 repetitions)>
From ELTAKO Doku:
https://www.eltako.com/fileadmin/downloads/de/Gesamtkatalog/Eltako_Gesamtkatalog_KapT_low_res.pdf
F4T65, F4T65B, F4FT65, F4FT65B, F4PT, FT4F, F4T55E, F4T55EB,
F4PT55, FHS4, FMH4, FMH4S, FF8, FMH8 (EEP F6-02-01)
ORG = 0x05
Data_byte3 =

oben rechts drücken = 0x70,
unten rechts drücken = 0x50,
oben links drücken = 0x30,
unten links drücken = 0x10,
Loslassen = 0x00

Hello @LHBL2003,
you are right. Home Assistant want us to use events in case a button is pushed. You can catch those events with automations:
https://developers.home-assistant.io/docs/core/entity/event
https://developers.home-assistant.io/docs/core/entity/event
Here is an example: https://github.com/grimmpp/home-assistant-eltako/tree/main/docs/rocker_switch
In those events you can see which 4 button of a switch are pressed. Theoretically you can push all at the same time. It is only physically limited. I removed the covers of a switch and pushed all 4 buttons at once. It is working :-)
I was already thinking about to show in HA which buttons are pushed of a switch. But you would only see it during the time the button is pushed down and not yet released.
How would you like to react on the signal that a specific button was pushed?

Would this help?
It will only show the text during the button is pushed down and will disappear afterwards. But you will have in the history which button was pushed. For reacting on the button you can use the events like mentioned above.

Hello @LHBL2003, you are right. Home Assistant want us to use events in case a button is pushed. You can catch those events with automations: https://developers.home-assistant.io/docs/core/entity/event https://developers.home-assistant.io/docs/core/entity/event Here is an example: https://github.com/grimmpp/home-assistant-eltako/tree/main/docs/rocker_switch
In those events you can see which 4 button of a switch are pressed. Theoretically you can push all at the same time. It is only physically limited. I removed the covers of a switch and pushed all 4 buttons at once. It is working :-)
I was already thinking about to show in HA which buttons are pushed of a switch. But you would only see it during the time the button is pushed down and not yet released. How would you like to react on the signal that a specific button was pushed?

I had even seen your example before. I just didn't assume that this could also be applied to the FT-4PT. But I also have to say that I didn't really understand it at first. Thank goodness for my English. :D
But I was able to successfully react to the button at the bottom right and switch something on. Thank you for that.
https://github.com/grimmpp/home-assistant-eltako/tree/main/docs/rocker_switch
For all those who want to follow what I have done.

`
alias: Eltako Taster Test - Single Button Bottom right
description: ""
trigger:

platform: event
event_type: eltako.gw_1.btn_pressed.sid_00-2C-FE-E2
condition:
condition: template
value_template: >-
{{ 'RB' in trigger.event.data.pressed_buttons and not
trigger.event.data.two_buttons_pressed }}
action:
type: turn_on
device_id: 7eee8bf08438a004e1347ecb00a8b0f2
entity_id: de5c3e779747b09562acc9a01288411a
domain: light
mode: single
`

Would this help? It will only show the text during the button is pushed down and will disappear afterwards. But you will have in the history which button was pushed. For reacting on the button you can use the events like mentioned above.

I have installed version 1.3.5.
And I am under Settings; Devices & Services; Eltako; Device X.
I think that's where you are too?
I only get the name and the status (Aus = off).
I have completely uninstalled and reinstalled the HAC, but the view does not change.
Where do you get the line ID and the line Pushed Butt...?
I like the idea of being able to see in the log which button was pressed.

How would you like to react on the signal that a specific button was pushed?

To answer your question:
To answer your question:
I was given the push-button as a gift when I bought a lot of Eltako modules. He had announced it as a surprise. It was a very nice seller and a very expensive surprise. :)
At the moment I'm still using the wireless push-button to switch the lights in the garden directly, as the area has not yet been converted. I also have two motion detectors that I detect and react to indirectly via an FTS14EM in FHEM.
Since the pushbutton controls the light directly via Eltako (in case FHEM vs. HA does not work), I only want to know in HA whether the pushbutton has been pressed so that the light can be switched off automatically after 30 minutes. That's why I want to evaluate the button.
This is easier than remembering in FHEM/HA whether I switched the light on because the motion detector was triggered. Or the light was on without me having done anything in FHEM, i.e. the light switch was pressed.
:)

Hello @LHBL2003,
did you see that there are two events fired when you push a button? The one is generic for the whole switch and in the other one there is a list of pushed buttons extended. In your screenshot it is called: eltako.gw_1.btn_pressed.sid_00-2C-FE-E2.d_RB. Directly under the one you've marked. If you take this one you do not need the condition template in the automation to detect the button. I've added it to make the automations simpler.
To see what button was pushed (screenshot of HA I've provided here earlier) you simple need to add the switch as binary_sensor to the configuration like this. It is also already added to release v1.3.5.

I'm not sure if I got your use case correct but like you said and do, I also would always make the switch and eltako actuator independent on HA. Instead of reacting on sensors or switches I would rather check if the light is switched on for more than 30min. Would that be an option?

did you see that there are two events fired when you push a button? The one is generic for the whole switch and in the other one there is a list of pushed buttons extended. In your screenshot it is called: eltako.gw_1.btn_pressed.sid_00-2C-FE-E2.d_RB. Directly under the one you've marked. If you take this one you do not need the condition template in the automation to detect the button. I've added it to make the automations simpler.

Intuitively, I had already asked myself whether this could also be used :D
Another general thing I learned from HA. So you can always use the event designation to react to it.
Yes, very nice that you list this as a separate event. That makes things a lot easier.

I'm not sure if I got your use case correct but like you said and do, I also would always make the switch and eltako actuator independent on HA. Instead of reacting on sensors or switches I would rather check if the light is switched on for more than 30min. Would that be an option?

The current status in FHEM is something like this:
Logic 1:
IF light on, THEN FHEM turns off the light after 30 minutes.
Logic 2:
IF motion is detected, THEN FHEM turns off the light after 3 minutes.
Logic 3:
IF motion is detected BUT the light is already on, THEN the light is not switched off after 3 minutes. Because the light was not switched on by the motion detector.
Logic 4: (Currently not implemented, but conceivable)
IF the light is on (by the motion detector) AND the operator clicks the button, THEN the light does not stay on for 3 minutes but for 30 minutes.
So for Logic 4 I would have to know which button was pressed ;-)
Logic 1-3 currently works without checking the button. But as I want to switch to HA, I want to know beforehand whether I can control and monitor all my systems. I don't want to find out after 90% of the work that something can't be implemented.
I have now reached 100% for ELTAKO.

To see what button was pushed (screenshot of HA I've provided here earlier) you simple need to add the switch as binary_sensor to the configuration like this. It is also already added to release v1.3.5.

The 101% is when I can still see your status bar ;)
It is strange that I do not see the status bar in the visualization.

I am currently pressing the button at the bottom right:

That's a nice automation. Can you share how you've configured it?
Regarding the display issue:

Have you checked if those fields appear in the list of entities? It could be that the mapping between those entities and the devices is not working.
You could remove and add the complete gateway but this shouldn't be necessary.
You can check the logs (/root/homeassistant/home-assistant.log). Whenever an entity is create there should be a log message for it. It contains [eltako] [sensor] Add entity  followed of the device name which is if not specified Binary sensor

In the list of entities there is only this one entry when I filter for 4pt.

Here you can see it at the bottom.

Eltako deleted, HA restarted, Eltako created. Result: The ID and Oushed button you pointed out still do not exist.
The gateway shows ID entries. Not for the other things.

Shown here at the top.

On the subject of logging:
There are 4 entries with the search text "4PT", they are also in the attached log file.
home-assistant.log
Only one entry corresponds to your pattern.
2024-02-02 20:02:45.798 DEBUG (MainThread) [eltako] [sensor] Add entity TF-4PT - EG-Funk1 - Signal 01 (Frei) (id: 00-2c-fe-e2,eep: F6-02-01), gw: EnOcean ESP2 Gateway - fgw14usb (Id: 1, BaseId: FF-00-00-00)) to Home Assistant.
How I implemented the above (motion detector / light off detection) in HA will follow. I built it the other day. It already seems to work well.

That's a nice automation. Can you share how you've configured it?

Got a surprise for you. My first Blueprint :D
Makes more effort than the automation itself :D
https://community.home-assistant.io/t/homeassistant-light-after-sunset-via-motion-and-light-always-off-after-time/684158

Hello @LHBL2003,
can we close this issue? Is working for you?

Interesting, now it works for me too. Since I upgraded to an even newer version. Than the one where it should already be there.
Many thanks for that.


Discontinuities that aren't reflected in Mangadex UI

I've noticed that some manga produces weird discontinuities that aren't present when looking at the same manga on the Mangadex website.
Example:
PS C:\repos\kojirou> go run .\kojirou.go ec514ef4-fb77-43b9-b9b4-528229de1308 -l en --dry-run
Title: Enen no Shouboutai
Author: Atsushi Ookubo
Groups: Mangastream, /a/nonymous, Pusu Pusu Scans
Chapters: 0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, 136, 137, 138, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 290, 291, 292, 293, 294, 296, 298, 299
Discontinuities: 0..0, 8..11, 28..30, 31..33, 36..38, 62..64, 65..67, 69..71, 78..80, 90..92, 95..97, 130..132, 138..140, 164..167, 168..170, 183..185, 210..212, 236..238, 253..255, 288..290, 294..296, 296..298

Notice that the CLI is showing that there are discontinuities at 8 to 11 and others, but if you look on the actual page here, there are no discontinuities and the supposedly missing chapters are there and can be loaded fine.

This was caused by a change in the MangaDex API, where chapters are now returned in semi-random order when no ordering is given. The latest commit fixes the issue by always adding an order to the URL parameters.

Unfortunately there seems to be another issue here, as I still observe seemingly random discontinuities.

I noticed that for every manga there always shows a Discontinuities: 0..0. Maybe looking into why this is occurring could help?

Thanks for the idea, I've already fixed the 0..0 issue in a newer commit. It was caused by the discontinuity visualization function expecting 1 as the first chapter.
The issue I'm now experiencing seems to be a bug in the actual MangaDex API. I'm looking at the raw MangaDex API responses and sometimes specific chapters are missing, having been replaced by other, duplicate chapters.
Switching to the updatedAt ordering seems to fix the issue for all cases I have tested, but this might just be because of random chance.

Whoops missed that 0..0 commit.
Another unnecessary discontinuity is when looking at a specific volume.
Example:
PS C:\repos\kojirou> go run .\kojirou.go ec514ef4-fb77-43b9-b9b4-528229de1308 -l en -V 10 --dry-run
Title: Enen no Shouboutai
Author: Atsushi Ookubo
Groups: Pusu Pusu Scans
Chapters: 79, 80, 81, 82, 83, 84, 85, 86, 87
Discontinuities: 0..79

Displaying Discontinuities: 0..79 probably isn't necessary as the first chapter in volume 10 of this manga is chapter 79, but doesn't actually hurt anything.
As for the API issue, maybe a workaround until Mangadex fixes that issue is just pulling the chapter list twice then constructing the most complete list from that? Like saving which chapters were missing from the first query then trying again and seeing if they're present the second time. I noticed that when I would get a random discontinuity that it would go away if I just ran the query one more time.

Displaying Discontinuities: 0..79 probably isn't necessary as the first chapter in volume 10 of this manga is chapter 79, but doesn't actually hurt anything. (You might've already fixed this in that commit)

Good point.

As for the API issue, maybe a workaround...

I don't think this would actually help, as with my testing, the API often returns the exact same incorrect results multiple times in a row.

I've now implemented the suggestion of not reporting "missing" chapters at the beginning as discontinuities. Also, the bug related to the API not returning all list items no longer seems to appear.
If you find a case where we are still missing chapters that are present on the website, feel free to reopen this issue. Thank you for your help!


Vina not producing complex structures after running

Hiya,
So I have run vina ver 1.1.2 on heme group binding to a protein. I managed to get it to work and got a delta G output that was roughly what I expected. However, when I look at the structure that is produced only the ligand is visible not the ligand-protein complex.
I have included the line:
out="results.pdb"

Which should be all that is required from the documentation I have read. The results are below. on checking the file its definitely only the ligand.
results.pdb.txt
full script is below (heads up this is on a HPC cluster). Any suggestions are welcome!
# The following section relates to the job scheduling for the HPC)

#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe smp 8
#$ -l h_rt=1:0:0
#$ -l h_vmem=1G

# Loads the vina module
module load use.dev
module load autodock-vina/1.1.2

# Specifies file names
ligand="validation_output.pdbqt"
receptor="receptor_7.pdbqt"

# Specifies co ordinates
center_x=0
center_y=0
center_z=0

# Specifies box size
size_x=20
size_y=20
size_z=20

# Gives number of binding orientations. Only want one
num_modes=1

# Outputs complex structure
out="results.pdb"

exhaustiveness=8

log="be.txt"

# Add the vina command
# This section was added by chatgpt along with revisions to the code and made it work
# Unsure why it wasn't working before
vina --cpu $NSLOTS --ligand "$ligand" --receptor "$receptor" --center_x $center_x --center_y $center_y --center_z $center_z --size_x $size_x --size_y $size_y --size_z $size_z --num_modes $num_modes --out "$out" --exhaustiveness $exhaustiveness --log "$log"

That's expected, vina writes only the ligand and flexible sidechains if these were specified. The receptor doesn't move during docking, so just open the input receptor alongside the docks ligand to visualize the complex.

Ahhh I see... do you happen to know how to turn it into a combined file after visualisation then? I want to run further docking on the complex

Hi @AlexisGGk I was watching openbabel/openbabel#2665. There are various ways to combine receptor and docking outputs. Here are two examples and you can substitute with your preferred commands:

Append the content of receptor.pdbqt by the end of each ligand model

sed '/ENDMDL/e cat receptor_input.pdbqt' docking_output.pdbqt > sed_combined.pdbqt
This produces a multi-model pdbqt file where the content of receptor.pdbqt is pasted before every ENDMDL. You could then use vina_split on the combined pdbqt if you want single-model pdbqt files

Split the docking output, then merge each model with receptor.pdbqt

vina_split --input docking_output.pdbqt
In the first step, vina_split produces a serial of single-model ligand pdbqt named <name of input file>_ligand_01.pdbqt, <name of input file>_ligand_02.pdbqt ...
cat docking_output_ligand_01.pdbqt receptor.pdbqt > cat_combine_01.pdbqt
You can write a loop in the second step for all poses (or the top N poses you'd be most interested in)
Depending on what your next step is, you might want to post-process the combined file(s).

Is there any harm in just opening both in pymol then exporting them in .pdb format? Just tried that and it appears to work!

Yeah it's fine. After saving as a PDB file, the charge column will be gone and the AD atom type column will be overridden by elements. So it really depends on what you want to reuse the combined structure for. If you want to run further docking on the complex, merging the pdbqt files (not saving as a pdb) might be more efficient in my opinion

Hmmm okay but the output is in pdb format not pdbqt format so surely Id need to convert it anyway ?

No, the output is pdbqt. You named it as pdb but it doesn’t actually change the format if I’m right..
Get Outlook for iOShttps://aka.ms/o0ukef

From: Alexis Gkantiragas @.>
Sent: Tuesday, January 16, 2024 3:32:24 PM
To: ccsb-scripps/AutoDock-Vina @.>
Cc: Amy He @.>; Comment @.>
Subject: Re: [ccsb-scripps/AutoDock-Vina] Vina not producing complex structures after running (Issue #266)
Hmmm okay but the output is in pdb format not pdbqt format so surely Id need to convert it anyway ? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented. Message ID: <ccsb-scripps/AutoDock-Vina/issues/266/1894468936@ github. com>
Hmmm okay but the output is in pdb format not pdbqt format so surely Id need to convert it anyway ?
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/ccsb-scripps/AutoDock-Vina/issues/266*issuecomment-1894468936__;Iw!!KGKeukY!zfuJlpqDaXbaANancIkcVgSjlriMmLYgYxNMb2jocAUetKNn7EYk1ozT_ZXCiK1QkKllaINRCDWsYKmHfI6zQaInQ2c$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AUZKPRX7BA56YX4RMOZ7UM3YO3PVRAVCNFSM6AAAAABB46YAPKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJUGQ3DQOJTGY__;!!KGKeukY!zfuJlpqDaXbaANancIkcVgSjlriMmLYgYxNMb2jocAUetKNn7EYk1ozT_ZXCiK1QkKllaINRCDWsYKmHfI6zBIk1s2I$.
You are receiving this because you commented.Message ID: @.***>

Ah @rwxayheee you appear to be correct thank you!


Blinking while clearing

I've noticed that the progress bar sometimes blinks when clearing. I think it's caused by this line in WritelnMixin:
print('\r\x1b[K', end='', file=self.file)

This control sequence introducer \x1b[K is supposed to clear the characters to the right of the cursor, while \r returns the cursor to the left.
At least in my case it is enough to use \r without clearing anything. The characters will get overridden. Changing the line to print('\r', end='', file=self.file) and I haven't noticed any side effects yet. But maybe I'm missing something obvious here?
Outcome of using \r\x1b[K:

Outcome of using \r:

So my suggestion would be to either simply use \r for "clearing" the line, or to at least let the user customize this via some parameter.

The problem is what will happen if for some reason the printed line is smaller than the previous line (like (eta_td).

@hargikas in probably 99% cases it will not be shorted as progress is normally non-decreasing. For all remaining cases I suggested to let people enable the forced clearing with a parameter.

@hargikas in probably 99% cases it will not be shorter as progress is normally non-decreasing. For all remaining cases I suggested to let people enable the forced clearing with a parameter.

It happens when the process has a lot of start-up time. A process where it involves copying a database table, the connection and first results of the query take more time, than the return of the some rows. So in this case the (eta_td) starts with something like (1 day, 12:00:00) and  then drops into minutes (0:10:00), and for the rest of the process you have garbage at the end of the string.
In my pull request I have create a "lazy" print that only prints when the output has changed. It hasn't eliminated the flickering, but it has reduced it a lot.

@hargikas true, that could happen. Could we maybe delete only the extra characters? We could go back max(0, len(self.previous_line) - len(line)) times and then delete the remainder with [K. As in echo -e 'A long line of text\b\b\b\b\b\033[K something'. What do you think?

Thank you! It is a good idea, and even in windows there is far less blinking now.

I made a commit in my git fork. Now it is up to the owner of the repository @verigak  if he wants to PR it, or implement something similar.

This took a long time but with 12e46ed70209bdc3bb8ca1f0416039883b94e4e1 we are not using ANSI escape codes to clear the line any more. It keeps track of maximum width ever printed and adds some padding if needed. This should solve this issue.


Make the use of secrets more consistent

Verify or add support for secret values in the operator CRD, e.g. for PostgreSQL password.

Wat is the current state of this issue? We currently can't deploy Apicurio with the operator, as our security policy mandates all passwords should be stored in secrets.


Training and evaluation on Waymo open dataset

Hi, Yinhao, thanks for the great work. Sorry to bother you. I wonder if the code support or will support to do training and evaluation on Waymo dataset.. Could you please give me some advice?

Right now, supporting waymo dataset is not on our TODO list. There are many codebases you can refer to like mmdetection3d and OpenPCDet, both of them have a good support for waymo dataset.


[Security] Participants not matched since 3954916f2902e885ec0360d34fc06a99391b4252 has been merged

All the ROS 2 security tests started failing 5 days ago. After some digging it looks like if I revert only https://github.com/eProsima/Fast-RTPS/commit/3954916f2902e885ec0360d34fc06a99391b4252, things start working as before.
The current behavior of master:

If the subscriber starts first:

error message on pairing when publisher shows up:
[RTPS_EDP Error] Security manager returns an error for writer 9a.dd.34.40.e<IP_ADDRESS>.23.bf.61.1a|<IP_ADDRESS> -> Function pairingWriter, after the error message is displayed the participants are matched and can exchange encrypted data

if the publisher starts first:

The participants are never matched and the publisher hangs without responding to SIGINT

I changed the "matching" behaviour when the datawriter and datareader use security. Our tests passed after this change but something is happening. I will check your tests to find the problem. Thanks for the reporting.

thanks for the quick fix @richiprosima . Would you please address the two warnings that https://github.com/eProsima/Fast-RTPS/commit/3f238281c5e856e767edf42b5f3037d8edd1a34a introduced? http://ci.ros2.org/job/ci_windows/3319/warnings41Result/new/

Commit 70a41d4d315f7ffa978868a9fcdf38b7b6b5f247 fixes them. Thanks @dhood


Fix AT cancel missing on replay

What was changed:
Fix problems with activity task cancellations not being sent to lang on replay
Why?

Checklist

[x] Fix double-issuing cancel request to server

Closes issue:

How was this tested:

Any docs updates needed?

Needs https://github.com/temporalio/sdk-core/pull/112 to be merged first


Update dropdown.js

Close dropdowns also on touchstart. Current version won't close dropdowns in webview.

Is it possible to add a test for this?

Hallo Martijn,
Testing the touch event would be an e2e test, I'm not really comfortable
writing those.
I could look into the current test to see how the test for the document
click is done, but time is a bit lacking on my side.
Maybe we should convert this pull request to an issue of the dropdowns
not closing on touch devices.
Regards,
Arjen
On 12-04-15 13:41, Martijn Verburg wrote:

Is it possible to add a test for this?
—
Reply to this email directly or view it on GitHub
https://github.com/angular-ui/bootstrap/pull/3532#issuecomment-92039188.

Adding e2e testing would be a lot of work. Instead, for now, you can duplicate this test (https://github.com/angular-ui/bootstrap/blob/master/src/dropdown/test/dropdown.spec.js#L59-L64) and trigger a touchstart event there to test that the dropdown closes when a touchstart event is triggered.

Closed, better PR incoming


Need the capability to disable loop detection.

#7069 fixes loop detection in ATS 9.  However, there are some circumstances where loop detection detection is not desirable and would like an overridable configuration parameter to disable the loop detection.
In our use case  we want a peering edge cache group. Say we have an edge cache group of cache1, cache2, and cache3. Upstream, there is a mid-tier cache group in front of the origins, mid-tier1, and mid-tier2. We want to send a client to an edge in the edge cache group where the parent's are an edge's peers and itself so as to cache a large video across the edge cache group and reduce lookups to the mid-tier using two remaps and two parent.config entries.
remap.config on cache1:
map http://cache1.foo.com http://cdn-back-remap.foo.com
map http://cdn-back-remap.foo.com http://cdn-origin.foo.com
remap.config on cache2:
map http://cache2.foo.com http://cdn-back-remap.foo.com
map http://cdn-back-remap.foo.com http://cdn-origin.foo.com
remap.config on cache3:
map http://cache3.foo.com http://cdn-back-remap.foo.com
map http://cdn-back-remap.foo.com http://cdn-origin.foo.com
parent.config on cache1, cache2, cache3
dest_domain=cdn-origin.foo.com parent="mid-tier1:80|1.0;mid-tier2:80|1.0" round_robin=consistent_hash go_direct=false
dest_domain=cdn-back-remap.foo.com parent="cache1:80|1.0;cache2:80|1.0;cache3:80|1.0" round_robin=consistent_hash go_direct=false ignore_self_detect=true
With the above parent.configs, each edge, cache1, cache2, and cache3 will mark themselves down for SELF DETECTION but we say ignore the SELF DETECTION because ignore_self_detect for the parent.config entry is true.
A request comes into cache1 on the first remap and is remapped to cdn-back-remap.foo.com. it misses and hashes to one of the parents in the local edge cache group, possibly to itself. when the request is forwarded to the back-remap, it gets remapped to the origin and if it misses, goes upstream to the mid-tiers and possibly the origin and gets cached locally on the edge. In the end, a large asset is spread across the 3 edge caches drastically reducing the necessity to go to the higher tier or origin and makes better use of the cache in the edge group. With the two remaps it does not cause any looping issues as long as you're careful. In 8.1 a host will get marked down by parent selection if it detects itself in the parent list so, that's the reasoning for the ignore_self_detect flag. Normally the self detection in parent selection prevents looping.
This scenario also required setting proxy.config.http.insert_request_via_str INT 0 to prevent loop detection in HttpTransact.

Second the need for this capability. We found that coming from ATS 7.1.x that our edge peering is broken by #5767. One possibility besides simply disabling the loop detection is to allow a threshold of times a node may see itself in the via string. For this application, it would be set to a maximum of one time. I think that if we see increasingly complex parent selection strategies that there might be more chances for unintended looping so perhaps some cycle checking should be in kept place.

@pbchou as I mentioned to Jeremy Payne, I was going to provide for peering in the strategies.yaml which is the configuration file for NextHopSelectionStrategy.  See the documentation here, strategies.yaml, by adding a new ring mode where you'll define 2 groups of hosts.  A cache's peers and itself would be defined in the first ring from which parents would always be selected except in the case where the cache's chosen parent is itself.  When itself, a new parent would be selected from the 2nd ring, your upstream parents.  I'll probably have a PR up for this with a couple of weeks.


[BUG] odd switcher behaviours

Expected Behavior
Seeing a couple of odd things happening with a switcher:

When programmatically setting a switcher value on a chart, .value should produce what was .set.
When starting up, switcher should not call func= unless activated

Current Behaviour

.value does not match what was .set.  value should be '5m' but it's '15m':

chart is: 15m
chart setting to 5m
chart should be 5m, is: 15m

switcher func= is called multiple times on startup:

current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
setting to 15m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
setting to 5m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
setting to 1m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1m
setting to 5m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
setting to 15m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
setting to 1m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1m
setting to 5m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
setting to 1h
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1h
setting to 15m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1h
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
setting to 5m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
setting to 1h
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 5m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1h
setting to 15m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1h
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
setting to 1m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 15m
current switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1m
setting to 1m
new switcher value for <lightweight_charts.chart.Chart object at 0x117d43cd0>: 1m

Reproducible Example
This code will produce the output provided above..
from lightweight_charts import Chart
import random
import asyncio

timeframes = ('1m', '5m', '15m', '1h')

def on_switcher(chart):
    print(f"current switcher value for {chart}: {chart.topbar['my_switcher'].value}")
    timeframe = random.choice(timeframes)
    print(f"setting to {timeframe}")
    chart.topbar['my_switcher'].set(timeframe)
    print(f"new switcher value for {chart}: {chart.topbar['my_switcher'].value}")

async def main():
    chart = Chart()
    chart.topbar.switcher(name='my_switcher',options=timeframes, default='15m', func=on_switcher)

    print(f"chart is: {chart.topbar['my_switcher'].value}")
    print(f"chart setting to 5m")
    chart.topbar['my_switcher'].set('5m')
    print(f"chart should be 5m, is: {chart.topbar['my_switcher'].value}")

    await chart.show_async()

    while True:
        await asyncio.sleep(1)

if __name__ == '__main__':
    asyncio.run(main())

Environment
- OS: macOS 14.2.1
- Library: <IP_ADDRESS>

Hey @jlixfeld,
Fixed in the latest version.
Louis

it didnt fixed


"Operation in progress" error occurs when creating function app

I have a feeling this is a duplicate but I can't find the matching issue after a quick search.
I went to the webjobs portal and created a new app and received the following error: "Cannot modify this site because another operation is in progress".
I see that the response code was a 429 - should we retry after a delay if we receive this status code?

Yes, @yochay ran into this I think, but maybe it was in an email.

Looks like #143 as well. It's an antares error, so will need to take a look at mds. maybe we should retry creation few times?

Ah yes, I guess that's what I was thinking off. Closing since dup.


Avoid nonExistentFlag error with strict set to false

I'm updating our CLI to v2 and we have noticed that this new check in Parser.validate doesn't respect strict to false

I've signed the CLA but gave me an error, if I retry tells me that I have already signed it.
cc @mdonnalley

@mdonnalley Could you take a look into this one? Thanks!

Sure thing, tomorrow morning will do

@mdonnalley Unit tests added 😃

@SferaDev I merged your branch into a branch of my own so that we can get GHA running on it. However, I have a couple of questions before we merge it into main. https://github.com/oclif/core/pull/627


Crash on processing email template

Rerouting this from fusionauth-issues: https://github.com/FusionAuth/fusionauth-issues/issues/1482
Seems to have a good repro.

@MCBrandenburg if need any help from the FusionAuth end let me know.

@robotdan will do!


Remove visibility from headers that are not installed

🦟 Bug fix
Summary

Backporting part of the changes from https://github.com/ignitionrobotics/ign-gazebo/pull/501/.
I believe it should be fine to change the visibility of classes that are not installed in a stable distribution, let's see what the ABI checker says.
The motivation is to make forward-porting changes easier. On https://github.com/ignitionrobotics/ign-gazebo/pull/622 we had to make lots of changes for the code ported from Dome to Edifice to work on Windows. If we encourage proper usage of visibility flags from Citadel, new plugins should use correct boilerplate from the beginning.
Checklist

[x] Signed all commits for DCO
[ ] Added tests
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[x] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge

ABI checker is happy, opening for review (CC @j-rivero )

Just curious about what made us to add visibiltiy to template functions in a private non-header file.

See your comment here: https://github.com/ignitionrobotics/ign-gazebo/pull/563#discussion_r560557986

Running a quick test removing them here

Do you have the build number? What branch were you testing? Because I think ign-gazebo3 may have other problems on Windows.

Do you have the build number? What branch were you testing? Because I think ign-gazebo3 may have other problems on Windows.

This one: https://build.osrfoundation.org/job/ign_gazebo-pr-win/2351/consoleFull#1992467405aa60f765-a60a-427d-900c-dc128ab22287

Just curious about what made us to add visibiltiy to template functions in a private non-header file.

See your comment here: #563 (comment)

aaah ok. I remember that there was a reason for it. Thanks!


Set a random background on each boot up

Should that be done via some sort of script that'd be launched after every boot, or are there any other options?

Just like the splash text, randomizing the background is done by the update_theme script. It's a python script that is supposed to be run after every boot. Most distros can use the provided systemd service, but you can also do it with cron I think.
The script chooses a random background from all files located in /boot/grub/themes/minegrub/backgrounds. Files starting with an underscore are ignored.
Hope this answers the question? :)

Files starting with an underscore are ignored
Small correction: Not files starting with an underscore, but hidden files (i.e. starting with a dot) are ignored :)

Ah, thanks!
No idea where I got the underscores idea from but i was too lazy too check 😄

Ignoring files starting with an underscore was the first version (see commit 2a37a9d) but it was changed in commit 9a8b710.
I guess that's where you got it from :)

Closing this


Straight up not working

Folder structure:
| cmd
\ server
| main.go
| internal
\ view
| index.templ
When I run templ generate it create the file but it is essentially empty, this is what is inside of it:
// Code generated by templ - DO NOT EDIT.

// templ: version: 0.2.476

//lint:file-ignore SA4006 This context is only used if a nested component is present.

import "github.com/a-h/templ"

Please help me!

I can't really help if I can't see your code. Do you have an example repo?

Gonna publish the repo give me one second

@a-h Here https://github.com/gutrapp/go-templ

@gutrapp You missed the “package view” in the first line of your templ file.

@zsoltkacsandi Yes that was the problem thank you


Exercise mode

As described in https://github.com/openaps/oref0/issues/588 and https://github.com/LoopKit/Loop/issues/593, OpenAPS activity mode doesn't do enough (at reasonably low temp target levels) to handle extended aerobic exercise, and often overshoots if you set the temp target high enough to do so.  This implements a better approach, which uses the level of the temptarget to set a manual sensitivityRatio.  This is used the same way as the autosens ratio, to set the basal and ISF used for current decisions.  In addition, it also is used to set the basal used by IOB calculations, such that setting an activity mode raises OpenAPS' estimate of IOB, and causes it to zero temp long enough to get IOB down to a level more suitable for aerobic activity.
These extra adjustments kick in for temp targets > 110 mg/dL, and scale up as the target increases.  Some testing will be required to see if the formula used for scaling that up is appropriate or if it needs adjusting to better balance the basal and ISF adjustments against the actual BG target people want to run at during such exercise.

Some future documentation notes:
How temporary targets impact operation of OpenAPS:

For SMB, a temporary target of 99 or lower, can enable SMBs (when the option for SMBs from targets is turned to true). A temporary target of 101 (or higher) will disable SMBs.
However, a temporary target of (anything less than normal target) will trigger the traditional "eating soon" mode for temporary basal rates - even if target is normally 130, and ES target is set to 100, that will trigger more basal (but per above, no SMB's, since that is >99).
Historically, a high temp target solely caused the system to adjust the target and calculate behavior from there. (i.e. a normal target of 100, an 'activity mode' temp target for 2 hours of 140 means that OpenAPS would target 140 instead of 100 for those two hours, then revert upon canceling or expiration to targeting 100). Now, (needs a name new exercise mode behavior) when enabled means that for a target of 111 or higher will create a manual sensitivity ratio, thus adjusting ISF and basals in proportion to this adjusted target. The goal of this is to recalculate IOB down to zero sooner ahead of and during activity, when the human knows this increased sensitivity is coming.

We just went on a tiny hike for science ;) Exercise mode did very well and the behaviour was much closer to what we would have done manually. IOB at the beginning was 0.5u with Fiasp/ultra-rapid curve/DIA=6h. The recalculation of IOB (0.5u->2.9u) , which led to long low temping, proved very useful.
In my opinion the relation between temporary target and sensitivity ratio (sensitivityRatio = 2/(2+(target_bg-100)/40)) makes very (too) high targets necessary. When adjusting manually for hiking, we have always had good results adjusting the basal rate to 50% for easy hikes and to 30% for more strenuous ones and approximately doubling CR, aiming for a target around 140.
Achieving the same in exercise mode with the current constant of 40 in the formula requires us to set a temp target of 180 for moderate hikes. At least for us a constant of 20 or 25 feels much closer to what we do manually. Also only such constants make it possible to calculate sensitivity ratios of ca. 0.3 which we find typical for more intense exercise.
Does oref0 provide a protection against endless low temping? Otherwise extensive low temping in exercise mode might lead to ketoacidosis.

Thanks, good analysis.  I think lowering the constant to get even more aggressive low-temping in exercise mode will be good to do eventually.  I'd be interested in thoughts as to whether we should make such adjustments all at once in a single release, or start with a higher constant at first and lower it as people get comfortable with the idea...
We have chosen not to put any limitations in place on duration of low temping, as preventing low BG is more important than preventing low levels of ketones.  We should continue to recommend that people eat during activity if the activity is strenuous enough to keep BG levels low/falling despite long periods of low temping.  Dana has found that eating enough while hiking to bring BG levels up a bit and allow OpenAPS to administer some insulin helps prevents an icky ketoney feeling she otherwise gets by the end of a long hike.

If exercise mode becomes an optional preference instead of the default behavior (at least during introduction), I think it would be ok to start with a low constant immediately. The current approach is not a problem during mild exercise, only during more strenuous activity, so relatively aggressive low-temping should be the goal for the new behavior in my opinion.

Seems reasonable. Any other thoughts from others with experience low temping for activity as to what target BG level should correspond to a 50% reduction in basal? To me, 180 does seem a little too high, but 140 doesn't give a lot of wiggle room to shoot for a higher target without overshooting for milder exercise...

We also target 170-180 for strenuous, prolonged exercise (long hiking, long cross country practice, etc)

Do you really wish to have a BG of 170-180 or do you set this target to get OpenAPS to do what you want it to do?

@drnoname82 No we don't really aim for 170-180 but find it necessary to set this target to get OpenAPS to low-temp sufficiently.  And usually take extra carbs as well.

@jbwittmer so the question at hand is: if you have an activity strenuous enough that it would require basal to be cut in half, what would you like BG to be riding at?  If you could set a 160, 140, or 120 temp target and achieve that, which would give you the right amount of extra buffer for the activity?

That's tricky. Often for the type of exercise I do, I don't want a high target as I initially drop and then rise as I go in to anaerobic exercise and put stress on my body. For me 120 would be a max.

Sorry if I didn't read this thoroughly the first time.  For a 50% basal and strenuous activity we would require a higher temp target, and we have our basal settings pretty well dialed in for "normal activity". For example for mountainous hiking we would typically set a temp target of 160 and dial basal down to 30% or so.  Less strenuous activities like heading to the water park, etc where you're active but not continuously so, we would use a 50% basal and target 140 or so.

If no objections, I'm leaning toward changing the 40 to 30 such that 50% basal corresponds to a 160 target instead of 180. We can lower it further from there if testing justifies.

Thanks Scott. I'm keen to test this.
A small suggestion. Could the formula be simplified from:
2/(2 + (target - normal)/30)
to:
1/(1 + (target - normal)/60)
or:
60/(60 + target - normal).

@tepidjuice good idea.  I went two steps further and made the formula calculate the constant halfBasalTarget - normalTarget, and then made the constant a variable by setting halfBasalTarget in preferences.json.  It now defaults to 160 mg/dL = 50% basal (instead of 180 mg/dL).

Do we want to also have this adjust carb ratio accordingly?

Based on offline convo w/ @scottleibrand and some other-branch-testing we did - leaving carb ratio off from here for now. Let's get the community testing as-is into dev now, with adjusting basals, ISF, and target and see how that does, and can decide and tweak any carb adjustments for this mode later.

Tested successfully. Merging to dev for further changes. See the dev PR for updated notes on behavior and the variable names for preferences. https://github.com/openaps/oref0/pull/707

The introduction of a variable is a great idea. I just tested this feature in dev, however changing "half_basal_exercise_target" in preferences does not lead to recalculation of IOB.  Could it be that a reference to "half_basal_target"instead of "half_basal_exercise_target" in https://github.com/openaps/oref0/blob/0fa1e00b79c18af2c873f4582fe236cd10a8bb31/lib/determine-basal/determine-basal.js#L98 is the cause? (same in history.js - or maybe I just don`t understand why there are two different variables)

@drnoname82 good catch.  PR to fix is at #712


NH-69396 Update usage of SW_APM_LOGNAME

Updates APM Python so that SW_APM_LOGNAME/logname in json configures file location where logs are written. This also stops logging to stderr.
In more detail:

Python logs are written to logname; clib logs are written to logname_ext. See unit tests for examples.
Python logging writes to one file with no maxBytes (no rotation) to match what clib Boost logging does.
Python logging module doesn't check for parent dir like clib Boost logging does, so update_logname will makedirs if needed.

More logging updates will happen later in https://swicloud.atlassian.net/browse/NH-69946

Writing out docs for this (infodev PR) made me realize: does it make sense to have this config named "log name"/SW_APM_LOGNAME? What about SW_APM_LOG_FILEPATH instead?
I originally set up this name because I ported it over from legacy Python though Reporter kwarg is actually log_file_path. Legacy docs do not mention "logname" nor "log file path".

Thank you @cheempz ! Renamed to SW_APM_LOG_FILEPATH/logFilepath in json e523668