Android system back button with nested Navigator inside GoRouter unexpected navigator is used

Steps to reproduce

Run the code
Copy the actions on the video

Expected results
When clicking android system button it should take the nearest navigator on the tree from the current screen as it is done on the iOS platform
Actual results
But when we using android system back button we face the problem, that GoRoute's navigator is used to pop, instead of deeper one, which was created by us
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:go_router/go_router.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends HookWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final goRouter = useMemoized(
      () => GoRouter(
        initialLocation: '/1',
        routes: [
          GoRoute(
            path: '/1',
            builder: (context, state) => Navigator(
              onPopPage: (route, result) => route.didPop(result),
              pages: const [
                MaterialPage(
                    child: Screen(
                  text: '1',
                )),
              ],
            ),
          ),
        ],
      ),
    );
    return MaterialApp.router(
      routerConfig: goRouter,
    );
  }
}

class Screen extends StatelessWidget {
  const Screen({super.key, required this.text});

  final String text;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              text,
            ),
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => Screen(text: '$text nested'),
                  ),
                );
              },
              child: const Text('go to the nested page'),
            ),
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).pop();
              },
              child: const Text('go back'),
            ),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/52509435/1b74d166-a728-4719-9648-5b299de199a3
https://github.com/flutter/flutter/assets/52509435/111612dc-685a-43ca-a259-29caa2497fd8

Logs
Logs
not applicable

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.19.2, on macOS 14.4 23E214 darwin-arm64, locale en-PL)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.3)
[✓] IntelliJ IDEA Community Edition (version 2023.2.5)
[✓] VS Code (version 1.87.1)
[✓] Connected device (4 available)
[✓] Network resources

• No issues found!```

</details>

Thanks for the report. I can also reproduce this issue on Android.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.19.3, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.19.3 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ba39319843 (6 hours ago), 2024-03-07 15:22:21 -0600
    • Engine revision 2e4ba9c6fb
    • Dart version 3.3.1
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] VS Code (version 1.87.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 122.0.6261.112

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.21.0-7.0.pre.46, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.21.0-7.0.pre.46 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9b276be7fe (2 hours ago), 2024-03-14 21:46:36 -0400
    • Engine revision 995d8903e0
    • Dart version 3.4.0 (build 3.4.0-234.0.dev)
    • DevTools version 2.33.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] VS Code (version 1.87.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (4 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D          • android-arm64  • Android 11 (API 30)
    • iPad (mobile)    • 00008103-000A1464346A201E • ios            • iOS 17.2 21C62
    • macOS (desktop)  • macos                     • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome                    • web-javascript • Google Chrome 122.0.6261.129

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

@huycozy
I've tried it with Navigator instead of GoRouter, and problem still the same, so I guess problem is not in the GoRouter, but with system Android Back button/right swipe flutter event handling.
It seems if any nested Navigator is added, it is ignored by these system "go back" events on android and only MaterialApp navigator is used to handle this action
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerDelegate: MyRouterDelegate(),
    );
  }
}

class MyRouterDelegate extends RouterDelegate<Object>
    with ChangeNotifier, PopNavigatorRouterDelegateMixin<Object> {
  @override
  Widget build(BuildContext context) {
    return Navigator(
      key: navigatorKey,
      pages: const [
        MaterialPage(
          child: Screen(
            text: '1',
          ),
        ),
      ],
    );
  }

  @override
  GlobalKey<NavigatorState>? get navigatorKey => GlobalKey();

  @override
  Future<void> setNewRoutePath(void configuration) => SynchronousFuture(null);
}

class Screen extends StatelessWidget {
  const Screen({super.key, required this.text});

  final String text;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              text,
            ),
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => Screen(text: '$text nested'),
                  ),
                );
              },
              child: const Text('go to the nested page'),
            ),
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).pop();
              },
              child: const Text('go back'),
            ),
          ],
        ),
      ),
    );
  }
}

Thanks for checking that. Forwarding this to android team.

@huycozy I've tried it with Navigator instead of GoRouter, and problem still the same, so I guess problem is not in the GoRouter, but with system Android Back button/right swipe flutter event handling.
It seems if any nested Navigator is added, it is ignored by these system "go back" events on android and only MaterialApp navigator is used to handle this action
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerDelegate: MyRouterDelegate(),
    );
  }
}

class MyRouterDelegate extends RouterDelegate<Object>
    with ChangeNotifier, PopNavigatorRouterDelegateMixin<Object> {
  @override
  Widget build(BuildContext context) {
    return Navigator(
      key: navigatorKey,
      pages: const [
        MaterialPage(
          child: Screen(
            text: '1',
          ),
        ),
      ],
    );
  }

  @override
  GlobalKey<NavigatorState>? get navigatorKey => GlobalKey();

  @override
  Future<void> setNewRoutePath(void configuration) => SynchronousFuture(null);
}

class Screen extends StatelessWidget {
  const Screen({super.key, required this.text});

  final String text;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              text,
            ),
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context) => Screen(text: '$text nested'),
                  ),
                );
              },
              child: const Text('go to the nested page'),
            ),
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).pop();
              },
              child: const Text('go back'),
            ),
          ],
        ),
      ),
    );
  }
}

When you are using the Router with MaterialApp.router won't create its own Navigator. You also need to provide Navigator.onPopPage to maintain the current pages so your example code is invalid. You can always specify which Navigator should pop by overriding RouterDelegate.popRoute. This works well if you are using MaterialApp.router with Router. However, the standard MaterialApp and a nested Navigator lack the ability to determine which Navigator should be used when popping.

I've done workaround in my project, I didn't want to put this code in the app, because I see that iOS doing it without any additional work. But it's really brutal bug when it comes to the android users, app just popping from any place in the app, because root navigator have only plain structure
Wrapper putted right after Material App, where OnWillPop is overlapping the system event:
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:provider/provider.dart';

class NavigatorWrapper extends HookWidget {
  NavigatorWrapper({
    super.key,
    required this.child,
  });

  final Widget child;

  @override
  Widget build(BuildContext context) {
    final navigatorService = useMemoized(NavigatorService.new);

    return Provider.value(
      value: navigatorService,
      child: WillPopScope(
        onWillPop: navigatorService.onWillPop,
        child: child,
      ),
    );
  }
}

class NavigatorService {
  final Set<GlobalKey<NavigatorState>> navigatorKeys = {};

  void addNavigatorKey(GlobalKey<NavigatorState> navigatorKey) {
    if (navigatorKeys.add(navigatorKey)) {
      navigatorKeys.remove(navigatorKey);
      navigatorKeys.add(navigatorKey);
    }
  }

  void removeNavigatorKey(GlobalKey<NavigatorState> navigatorKey) {
    navigatorKeys.remove(navigatorKey);
  }

  Future<bool> onWillPop() async {
    final navigatorKeysList = navigatorKeys.toList();

    for (var i = navigatorKeysList.length - 1; i >= 0; i--) {
      final context = navigatorKeysList[i].currentContext;

      if (context != null) {
        final maybePopResult = await Navigator.of(context).maybePop();
        if (maybePopResult) {
          return !maybePopResult;
        }

        continue;
      }
    }

    return true;
  }
}

and also wrapper on the navigator which forced to use in the all nested navigation:
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:***/src/navigator/navigator_wrapper.dart';

export 'navigator_wrapper.dart';

class Navigator extends StatefulWidget {
  Navigator({
    super.key,
    this.navigatorKey,
    this.pages = const [],
    this.onPopPage,
  });

  final GlobalKey<NavigatorState>? navigatorKey;

  final List<Page<dynamic>> pages;
  final PopPageCallback? onPopPage;

  @override
  State<Navigator> createState() => _NavigatorState();
}

class _NavigatorState extends State<Navigator> {
  late GlobalKey<NavigatorState> navigatorKey;

  @override
  void initState() {
    super.initState();
    navigatorKey = widget.navigatorKey ?? GlobalKey<NavigatorState>();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      final navigatorService = context.read<NavigatorService>();
      navigatorService.addNavigatorKey(navigatorKey);
    });
  }

  @override
  void dispose() {
    final navigatorService = context.read<NavigatorService>();
    navigatorService.removeNavigatorKey(navigatorKey);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Navigator(
      key: navigatorKey,
      pages: widget.pages,
      onPopPage: widget.onPopPage,
    );
  }
}

@maRci002, I absolutely agree it's not possible to deside which navigator should be popped(and decision sounds like something custom), but I've been looking for solution how it is done on iOS, that he understand what should popped instead of closing app
Because being in the context of near to material app with router delegate is nothing from context can be get, so some global keys starts appearing or complex solutions for the decision what should be popped, maybe you have an idea how to override system back button to the same functionality as it's done on iOS?

This may be related to existing problems with go_router and predictive back, see https://github.com/flutter/flutter/issues/138614#issuecomment-1909155402.
I wonder if the order of the observers in handlePopRoute is not as expected with this go_router setup. So it ends up popping the root Navigator before the nested one.
@aliaksei-liavonik Be sure to take a look at this example if you haven't seen it. It doesn't include go_router but otherwise I think it's similar. NavigatorPopHandler is used to setup the proper handling of system backs. Though, I don't think that will work out of the box here, possible due to aforementioned bugs with go_router and predictive back.

The error is annoying. I solved it by adding the routes as children.
return GoRouter(     initialLocation: '/login',     routes: [       GoRoute(           path: '/login',           name: 'login',           builder: (context, state) => const HomeScreen(),           routes: [             GoRoute(                 path: 'prueba',                 name: 'prueba',                 builder: (context, state) => const Pruebascreen()),           ]),     ],   );

The error is annoying. I solved it by adding the routes as children. ignore that I use providers
import 'package:ahangoapp/pruebas/pruebas_screen.dart';
import 'package:go_router/go_router.dart';
import 'package:ahangoapp/screens.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

part 'router_provider.g.dart';

@riverpod
GoRouter appRouter(AppRouterRef ref) {
  return GoRouter(
    initialLocation: '/login',
    routes: [
      GoRoute(
          path: '/login',
          name: 'login',
          builder: (context, state) => const HomeScreen(),
          routes: [
            GoRoute(
                path: 'prueba',
                name: 'prueba',
                builder: (context, state) => const Pruebascreen()),
          ]),
    ],
  );
}


Invoke setChatContext after updating invocationId

Close: https://github.com/sunner/ChatALL/issues/605
Close: https://github.com/sunner/ChatALL/issues/617
@sunner, it’s strange that the invocationId isn’t saved after incrementing. How did the old version work then? I’m confused. 😅

@sunner, I have searched through all the files and found that BardBot and Qihoo360AIBrainBot did not save the context after updating context fields as well.
For Bard, contextIds is not saved, causing every prompt to be sent to a new chat.
For Qihoo360AIBrainBot, parentMessageId is not saved. I am not sure what the consequences are, as I am unable to test it due to a lack of access."

This is great! Thank you! Finally, I understand how it works, :-)


Missing DB Folder on Save

OS: Ubuntu 20.04LTS
Node Version: 14.3.0
Issue:
After installing the app locally I added a few entries to Funds, Debt, and Income. When I went to save it gave me an error about the /db folder. (See Attachment)

This is more for visibility, as after creating the db folder in the root of the project saving works fine, it seems.
Thanks,
Keith

This should be resolved now. I have a sample file added so the initial application doesn't error out.

Good afternoon @uonai,
I can confirm adding the sample file fixed the issue for me on a new install.
Thanks,
Keith


Incorrect documentation for ES Modules "ASSET_MANIFEST"

In the documentation it says to import __STATIC_CONTENT_MANIFEST and then JSON.parse it before passing to getAssetFromKV, however, during initialization if you pass in ASSET_MANIFEST on the options, it gets JSON-parsed thus leading to an error.
What I did
Follow the instructions for using ES Modules, e.g. this (lifted directly from the README, with the assignment removed):
import manifestJSON from '__STATIC_CONTENT_MANIFEST'
let manifest = JSON.parse(manifestJSON)
return getAssetFromKV(
	{
		request,
		waitUntil(promise) {
			return ctx.waitUntil(promise)
		},
	},
	{
		ASSET_MANIFEST: manifest,
		// ...
	},
)

What I expect
It to work.
What actually happens
Workers throws an illegal invocation exception.

What does work
After some iterative debugging, I realized that it works if you simply ditch the JSON.parse call:
import manifestJSON from '__STATIC_CONTENT_MANIFEST'
- let manifest = JSON.parse(manifestJSON)
return getAssetFromKV(
	{
		request,
		waitUntil(promise) {
			return ctx.waitUntil(promise)
		},
	},
	{
-		ASSET_MANIFEST: manifest,
+		ASSET_MANIFEST: manifestJSON,
		// ...
	},
)

We haven't heard from you in while so I'm going to close this issue for now. If you're still running into problems feel free to comment with more details and we can investigate further.


Image Display When Scaling Before Full Quality is Loaded

It seems to me that there is some problem with the ZoomableImage display. Sometimes, when using it, there is a situation that the image loses quality and does not return it. That is, the image becomes blurry, if you restart the screen rendering, everything will be fine. It seems to me that this occurs when the image has not reached its full quality, but the user has started to scale it. Has anyone encountered a similar problem? The implementation of CircularProgressIndicator until the variable showLoadingIndicator = !ImageState.isImageDisplayed becomes true partially solved this problem, but still sometimes this problem occurs. It seems to me that isImageDisplayedInFullQuality can solve the problem completely, but unfortunately it is constantly changing when zooming. Are there any options?
 val zoomSpec = ZoomSpec(maxZoomFactor = 3f)
 val zoomableState = rememberZoomableState(zoomSpec = zoomSpec)
 val imageState = rememberZoomableImageState(zoomableState)
 val showLoadingIndicator = !imageState.isImageDisplayed
 Box(modifier = Modifier.fillMaxSize()) {
            Box(
                modifier = Modifier.fillMaxSize(),
                contentAlignment = Alignment.Center
            ) {
                if (showLoadingIndicator) {
                    CircularProgressIndicator(
                        color = contentColor
                    )
                }
            }
            ZoomableAsyncImage(

            )
         }
}

That doesn't sound great. Could you record a video the next time you run into this? Does this happen for any image?

Here is a picture that often has problems.:

And here is an example of how I caught this error. As you can see, the image has stopped reaching maximum quality, which is strange.
https://github.com/user-attachments/assets/8bbfa7b1-34c4-4b5c-9019-281a8482853c
It's not very noticeable here, but it's clear that such an error is present. Sometimes everything is sad, like in the picture below.

And I honestly don't know what it might be related to. Unfortunately, you can only get out of this state if you switch to the screen.

https://github.com/user-attachments/assets/bc834602-4bc2-4336-9a53-b940a40b06f9
And here I came in and immediately the problem was that the quality was lost... When I re-signed in, everything is fine. I tried the screen, and everything broke... Very strange

Thanks for sharing the photo, let me try reproducing this

If you can't catch the error - let me know. I will create some project in which I will try to make all the conditions that I have.

I found a problem when this happens. The thing is, I'm not just creating a picture, as you might have noticed, I'm also creating various objects on it.
When a picture doesn't happen without everything, an error is caught. At least I can't do it again...  But when I draw objects in a picture, the more of them there are, the more likely they are to be caught. What do you think it's about? I can create some kind of project that demonstrates this problem. It seems to me that with increasing magnification, the constant redrawing of objects somehow loads everything so much that the photo loses quality.
Here is the sample code:
val zoomSpec = ZoomSpec(maxZoomFactor = 3f)
val zoomableState = rememberZoomableState(zoomSpec = zoomSpec)
val imageState = rememberZoomableImageState(zoomableState)
val showLoadingIndicator = !imageState.isImageDisplayed
CompositionLocalProvider(LocalViewConfiguration provides customViewConfiguration) {
      Box(modifier = Modifier.fillMaxSize()) {
          Box(
              modifier = Modifier.fillMaxSize(),
              contentAlignment = Alignment.Center
          ) {
              if (showLoadingIndicator) {
                  CircularProgressIndicator(
                      color = contentColor
                  )
              }
          }
          ZoomableAsyncImage(
              model = ImageRequest.Builder(LocalContext.current)
                  .data(pathDrawing)
                  .memoryCachePolicy(CachePolicy.DISABLED)
                  .build(),
              state = imageState,
              onDoubleClick = { _, _ -> },
              onClick = { },
              modifier = Modifier
                  .fillMaxSize()
                  .onGloballyPositioned { },
              contentScale = ContentScale.Crop,
              contentDescription = null
              )
if (uiState.endInit && containerSizeDp != Pair(0.dp, 0.dp) && containerSizePx.height != 0 && containerSizePx.width != 0) {
   if (instrumentalItem.visible.value) {
       uiState.measurementsList.forEach { measurement ->
       val measurementText = textForMeasurement(measurement.name)
       val appCoordinates = viewModel.getAppCoordinates(Coordinates(measurement.x, measurement.y))
       val frX = (appCoordinates.x * scale.scaleX) + offsetX
       val frY = (appCoordinates.y * scale.scaleY) + offsetY
       val adjustedXInDp = with(LocalDensity.current) { frX.toDp() }
      val adjustedYInDp = with(LocalDensity.current) { frY.toDp() }
                      Box(
                          modifier = squareModifier(
                       al adjustedXInDp = with(LocalDensity.current) { frX.toDp() }
                      val adjustedYInDp = with(LocalDensity.current) { frY.toDp() }
                      Box(
                          modifier = squareModifier(
                              uiState = uiState,
                              x = adjustedXInDp,
                              y = adjustedYInDp,
                              heightSquare = heightSquare * scale.scaleX,
                              borderWidthSquare = borderWidthSquare * scale.scaleX,
                              uiState = uiState,
                              x = adjustedXInDp,
                              y = adjustedYInDp,
                              heightSquare = heightSquare * scale.scaleX,
                              borderWidthSquare = borderWidthSquare * scale.scaleX,
                              onClick = {
                                  onMeasurementClick(measurement)
                              }
                          ),
                          contentAlignment = Alignment.Center
                      ) {
                          Text(
                              text = measurementText,
                              style = TextStyle(
                                  color = Color.Black,
                                  fontSize = (sizeTextSquare * scale.scaleX).sp,
                                  fontWeight = FontWeight.Bold,
                              ),
                          )
                      }
                  }
}
}

https://github.com/wizarlock/TestTelePhoto
This is my project where I recreated this situation


feat(docs): add recommended libs guide

What does this do?
Add a new page in the documentation for recommended libraries not included in the starter.
Why did you do this?
More clarity
Who/what does this impact?
NA
How did you test this?
NA

@obytes/mobile-tribe would love to hear your thoughts if you have any recommendations based on your experience.


Support for AMD/RequireJS

Is there a way to use this package with AMD/RequireJS? I tried to use Browserify, but could not load resulting bundle using RequireJS and it seems like it included all the dependencies like React and ReactDOM.

It will be better if its available as a separate js file to be included in the browser, without node/browserify/webpack.

I'm working on a solution. I'll probably make a a bundled file available via npmcdn.com. That would also work for bower. (related: #18)

Thanks. Will it be possible to have the bundle without react?

yes, the bundle will only inlcude the raf and dom-css dependencies, since they are not available through bower (I guess)

AMD, RequireJS and bower are now supported. You can grab the bundles from npmcdn:
Development build, Production build. If you want to use bower you can install it via:
bower install<EMAIL_ADDRESS>
You should also check the docs on installation
I made an example on CodePen how to use the build.

Thank you very much. Works great.


[Translation zh-tw] Fundamentals > Accessibility > How To Review

Check out a review request at GitLocalize

:tada: This has been pushed live to https://developers.google.com/web/


Optimize the memory behaviour of Vector2

[x] Use pre-allocated __slots__ rather than an implicit __dict__.
[ ] ~Inform the GC that Vector2 instances need not be tracked~

Rationale
We can expect users of ppb-vector to use very many instances, in part due to the immutable design (though Python's refcounting implementation should immediately collect unreachable vectors, this still creates memory churn), and in part because vectors are an essential datastructure in games development.
Moreover, memory churn and GC interactions can be the source of pauses and jitter, which are a problem for games.
As such, it makes sense to try and minimize the per-instance cost of using Vector2, especially if it comes with no cost in terms of ergonomics, and negligible maintenance burden.
Expected effects

The use of __slots__ made each vector use over 3 times less memory.
This was tested by hand (against the implementation in master) and there is also a test that compares Vector2 against a naive representation of vectors (not based on dataclasses).

Using __slots__ should result in marginally-better performance.
This can be tested with tests/benchmark.py but I cannot run it right now (my laptop is heavily loaded).

~Removing the need for GC tracking should result in shorter pauses.~
~I plan on testing that with the hugs.py example game.~

I compared to caa4ef0086d768bbdd03b2d4a939b5afd1571236: and we seem to be getting a solid 30-50% faster on average, which is a surprisingly-large improvement.
The outliers are likely glitches, as perf complained a lot about results not being statistically significant (standard deviation larger than the mean...).
That's likely due to my running those benchmarks on my overheating laptop, so It would be super helpful if one of you could reproduce the results on a more reasonable box.
$ python3 -m perf compare_to benchmark_*.json --table
+-----------+------------------+------------------------------+
| Benchmark | benchmark_master | benchmark_slots              |
+===========+==================+==============================+
| __add__   | 4.83 us          | 2.49 us: 1.94x faster (-48%) |
+-----------+------------------+------------------------------+
| __eq__    | 914 ns           | 495 ns: 1.85x faster (-46%)  |
+-----------+------------------+------------------------------+
| convert   | 468 ns           | 326 ns: 1.44x faster (-30%)  |
+-----------+------------------+------------------------------+
| normalize | 9.45 us          | 5.81 us: 1.63x faster (-39%) |
+-----------+------------------+------------------------------+
| length    | 451 ns           | 662 ns: 1.47x slower (+47%)  |
+-----------+------------------+------------------------------+
| rotate    | 4.20 us          | 6.56 us: 1.56x slower (+56%) |
+-----------+------------------+------------------------------+
| scale_by  | 2.11 us          | 1.58 us: 1.33x faster (-25%) |
+-----------+------------------+------------------------------+
| scale_to  | 5.10 us          | 7.08 us: 1.39x slower (+39%) |
+-----------+------------------+------------------------------+

Not significant (7): __sub__; reflect; angle; dot; isclose; __neg__; truncate

This is a cool bit of benchmarking!
I like the idea of using slots. What happens  if/when we make 3d vectors? (Primarily, there's some math I don't fully understand myself that is apparently easier with the single extra degree? You may know the state of that better than I do.)

Looks like it isn't possible to make the GC not track Vector2s. as the optimisation in CPython seems specific to dicts and doesn't apply to classes (even though it could be generalised).

@pathunstrom As far as I understand (I'm no Python expert, though I checked the docs and checked the behaviour in the REPL), inheritance works fine with __slots__, as long as a single parent class uses it, and subclasses may themselves use __slots__ (and only need to specify their own attributes there)
That said, I don't think a potential Vector3 should inherit from Vector2, since:

it cannot be API-compatible with Vector2; for instance, rotate(self: Vector3, angle: float) would make no sense (in 3D you need to specify a rotation axis)
most methods in Vector2 make strong assumptions about being able to instantiate new vectors with 2 parameters; that might also be an issue if I wanted to make a ColoredVector2 class (for instance)

I think we should make a separate issue if we want to keep discussing 3D vectors  :)

OK, this should be good to go (though sadly without GC optimisations)

The performance metrics are a lot more dramatic than I was expecting.
This will also need a matching change in ppb (after this has been released to PyPI), otherwise __dict__ comes back and we've lost a lot of the benefit.

@astronouth7303 Rebased to handle the merge conflict.


Fix the multi- target targets (#5489)

On second thought, using % just isn't correct. When a make
target looks like:
foo% bar%:
...
Then that implies that it will build BOTH foo% and bar% whenever
that rule is triggered (by either) for any value of the pattern %.
Clearly that is not what we want / intend.
So, this commit goes back to using config targets without a % in it
by generating a full list of them.
It also turns sitl_deprecation into a Hidden Target.
Finally, now that we have those target lists anyway, I added
a 'help' and 'list_config_targets' targets that print the
available targets.

Thanks!

Can you look into the CI fails? Are the unrelated to this PR and rather triggered by the tests that had been missing before?

Yes, I already have a resolution, but suddenly had to run to an appointment! Only now just got home.

This is ready to be merged now. Can it be merged please, since it fixes a bug that I introduced it feels uncomfortable while this isn't merged in yet. ;)

I did a rebase onto the current master and squashed all commits into one.

Will merge as soon as CI passes.

Thanks!


Migrate deprecated pronouns

Details

Deprecated pronouns are still being stored in the database. This PR migrates those by calling UpdatePronouns API with the new pronouns format.

Deprecated
English
Spanish

He/him
He / Him / His
Él

She/her
She / Her / Hers
Ella

They/them
They / Them / Theirs
Ellos

Ze/hir
Ze / Hir
Ze / Hir

Call me by my name
Call me by my name
Llámame por mi nombre

Self-select
Select your pronouns
Selecciona tus pronombres

Fixed Issues

$ https://github.com/Expensify/App/issues/38969
PROPOSAL: https://github.com/Expensify/App/issues/38969#issuecomment-2021246273
Tests

Open DevTools and manually change your pronouns to a deprecated value in Onyx

Onyx.merge('personalDetailsList', { your_account_id: { pronouns: 'He/him' } })

Refresh the page
Go to Profile Settings page
Verify Pronouns shows the corresponding new pronouns (He / Him / His in this case)
Verify UpdatePronouns API is triggered to set the correct pronouns
Repeat all steps above with other deprecated values and any custom values
Change language
Verify pronouns is changed accordingly

[x] Verify that no errors appear in the JS console

Offline tests

NA
QA Steps

NA

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: mWeb Chrome

https://github.com/Expensify/App/assets/153004152/667ed9c0-e1db-4c8a-bdf9-03be60192914

iOS: mWeb Safari

https://github.com/Expensify/App/assets/153004152/d84e1b9a-05c9-408d-9ecc-3053b1c851f0

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/153004152/1b98b8b7-2638-4862-a8ec-97fdc203742b
https://github.com/Expensify/App/assets/153004152/f348b9f9-9cee-45b0-8041-34d91eff7155

I've tried re-running the performance tests, and it's still failing. It looks like the tests completed:
Test Suites: 16 passed, 16 total

but the process fails a little later on because of:
Auto-merging tests/unit/NetworkTest.ts
Auto-merging tests/unit/OptionsListUtilsTest.ts
Auto-merging tests/utils/LHNTestUtils.tsx
Auto-merging wdyr.ts
Automatic merge failed; fix conflicts and then commit the result.

@gijoe0295 Could you please double-check that you've updated from main and there are no conflicts in these files? It looks like the last time this was updated with main was from 5 days ago, so maybe something snuck in.

Looks like that worked! Thanks

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/tgolen in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/tgolen in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/tgolen in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.4.62-17 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Music Sync Animation

Hi, is it possible to do the music sync animation, I will attempt to fork this and add the feature if you are busy. I love this application! it is super helpful. Thanks!

Can you explain how you sync the music with the msi gaming app please?

Actually, it does not sync with the music directly. It has like 6 or 7 modes. It tries to detect the type of music and select the mode accordingly.
If you can find an algorithm to detect such thing, I would be please to integrate it in my own tool.
This one is currently no longer maintened by its owner.

i would like to work on this.


x/pkgsite: licence not yet showing up after it was added to a module

What is the URL of the page with the issue?
https://pkg.go.dev/github.com/gnuy/subdivx-get
What is your user agent?
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0

Screenshot

What did you do?
Created a Go project on GitHub without a license and added that license later. I'm filing this issue as recommended here.

What did you expect to see?
The license in the site being the MIT license.
What did you see instead?
The license in the site is still no legal advice

Version v0.0.0 (1a772ed) of the github.com/gnuy/subdivx-get module is being displayed in the screenshot you shared. That version does not have a LICENSE file:
https://github.com/gnuy/subdivx-get/tree/1a772eddf252/LICENSE (404)
The LICENSE file was added 2 hours ago in commit 2219d5c4.
It seems that this is working as intended. When pkg.go.dev starts displaying the newer version of the module, it should recognize the license.
/cc @julieqiu @jba @jamalc per owners.

I just refreshed the version:


Adding Participant Information + clarify CoC vs content moderation

This PR adds the Participant Information Sheet, which we have also submitted as a PDF version for the ethics submission as a proper page to the AutSPACEs platform.
As part of this work, I have also renamed and clarified the two types of "Code of Conduct" we have so far used interchangeably:

The "actual" code of conduct (on GH here), which covers the interactions in Slack, Zoom, etc.
The "content moderation guidelines" that moderators use to evaluate publicly shared stories and moderate them.

So far the latter was also called "code of conduct", leading to confusion as there were two different documents with the same name. For clarity (and in line with the wording we've used for the moderation paper) I renamed those "content moderation guidelines" instead.
Beyond the automated tests I've also manually tested the moderation functions to ensure that the still all work as expected :)

Wooooo! Shall I approve? Do you want a review from someone who has checked for syntax?

I'd say we can go ahead and approve as I at least visually checked the syntax both in a regular and mobile browser and everything looks like expected for now - and the bigger code changes are all caught by tests. 🚀


Help with types

When using zodios in combination with the nice lib https://github.com/total-typescript/ts-reset I get a bunch of errors because their definition of ReadOnly array include doesn't match and don't want to stop using any of them.
I know this might not be something to be fixed in zodios package (?) but maybe there is a hack I can do? I'm too TS dumb to figure it out

Can you setup an error example with a reproductible setup ?

I think Matt must have fixed it in a release because I updated the package and the error is no longer there!


Custom dictionaries do not work with frontmatter?

I'm not sure if I'm asking for an enhancement or whether this is an actual bug?
I expect my custom dictionaries to work on frontmatter/properties as well, but they do not?
Can this be investigated, or can a toggle be added to be able to switch this on?
Thanks

Hi, @spiritualgeek :)

I expect my custom dictionaries to work on frontmatter/properties as well, but they do not?

This is by design. Completion for frontmatter properties is disabled to prevent interference with the list of potential properties.

Can this be investigated, or can a toggle be added to be able to switch this on?

Currently, there is no way to enable this feature. However, I appreciate your feedback and will consider it for future updates.


[BUG] Ctrl+r,  input some, Tab, get Suspended !

Environment
Surface Book i7 16G 13.5inch, Windows 10 Pro 2004(OS BUILD: 19041.508)

Steps to reproduce

Input Ctrl+r, show: (reverse-i-search)`':
input some thing, like sou show: (reverse-i-search)`sou': source ~/.profile
Input Tab to fill all orders. show :"~$ ource ~/.profile" or "~$ source ~/.profile" but then can not do anything.
Input Ctrl+c, if you got "$ ^Curce ~/.profile"  Congratulation! You reproduce this bug!

WSL logs:
I do not know where it is.It may have nothing output.
Expected behavior
Fix that. I can fill all orders, and run this command.
Actual behavior
???

Type <enter> <enter> stty sane <enter> blindly.

@IanVzs - Does stty sane restore your terminal after you've canceled the search?
Please post the contents of strace -tt -f -o bash.strace /bin/bash, either as a gist or attach a zip. At step 3, wait for round ten seconds before canceling with ctrl-c and then exiting. You should be able to exit the traced subshell by either typing ctrl-d or blindly typing exit <enter>. Cannot reproduce here, but it will look something like:

Uploading bash.strace.txt…

I'm having the same issue. It can freeze for over 20 seconds. Happens on both WSL1 and WSL2, on Ubuntu, Fedora, and alpine alike.
The problem occurs if I'm using Windows Terminal, Mintty, command prompt terminal, powershell terminal, or wsl.exe (which I think is the same as command prompt)
Typing in stty sane before trying didn't seem to make much of a difference.
The interesting thing to note is the bell sound happens only AFTER the freeze finishes freezing.
The more and more I "test" this issue, the less it's happening. So now, for example there's either no freeze delay, or less than a second. But it was timed at over 20 seconds earlier. I've restarted my Windows Terminal several times, and it's inconsistent
Please reopen this issue

This issue is still happening for me
OS Name:                   Microsoft Windows 11 Pro
OS Version:                10.0.22000 N/A Build 22000
NAME="openSUSE Leap"
VERSION="15.3"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.3"

Its July 21, 2022, and this bug is still part of WSL, c'mon now

I am experiencing this issue on my Debian WSL, I think it should be reopened.
This issue is exactly as described in the title.
Windows: Microsoft Windows [Version 10.0.19044.2006]
WSL: Debian GNU/Linux 11 (bullseye)

Same issue here. Windows 11, WSL 2.

Bruh it's 2023 fix it please Microsuck

WSL: Debian GNU/Linux 11
just go with ctrl + r, find something and press tab
I can no longer use terminal...

Same issue here!

I have an exactly similar issue.
OS: Windows 11 22H2 (OS Build 22621.1413)
WSL2: Ubuntu 22.04.2 LTS (GNU/Linux <IP_ADDRESS>-microsoft-standard-WSL2 x86_64)

I had a similar problem.
found a third party solution https://github.com/junegunn/fzf
(not for advertising purposes)

I have same issue here with WSL 2, it was good on WSL 1, but I need docker desktop, so I have to change to WSL 2, and then the issue happens.
OS:
Windows 11  22H2 (OS Build 22621.1555)
with Windows Feature Experience Pack 1000.22640.1000.0
WSL2:
Ubuntu-20.04.6 LTS (2<IP_ADDRESS>)
please fix it.

I have experinced this issue too.  It is either a bug in WSL or the Windows Focus API.
Usually when you press "CTRL+r" while the focus is in a WSL terminal, you would expect the focus window to receive the CTRL+r keybind, but somehow in this case I found Symphony (An ATOM based messaging system) to have received the CTRL-r, despite it not having the focus, which prevents the reverse search history from working in WSL!

I don't know if any dev reads this since the ticket has been closed, but it should be re-opened since the issue obviously isn't solved.

Yes this issue still persists please provide the solution

Not too long ago I figured out what the actual problem is... What's hapenning is that upon Tab where we're expecting autocomplete, the CLI is actually cycling through $PATH (linux wsl: echo $PATH) in search of the script and not actually autocompleting. Generally this wouldn't be an issue in a linux system, but if you look closely at the $PATH in WSL it also includes /mnt/c/Windows ... causing a HUGE overheard in which to search. A solution is to remove the windows paths before they're loaded. Hope that helps.

Not too long ago I figured out what the actual problem is... What's hapenning is that upon Tab where we're expecting autocomplete, the CLI is actually cycling through $PATH (linux wsl: echo $PATH) in search of the script and not actually autocompleting. Generally this wouldn't be an issue in a linux system, but if you look closely at the $PATH in WSL it also includes /mnt/c/Windows ... causing a HUGE overheard in which to search. A solution is to remove the windows paths before they're loaded. Hope that helps.

Tried this but it didn't work for me. If I do a ctrl-r, then tab and then ctrl-c to abort the shell gets stuck and I have to close it.

I have also noticed this issue recently.

Ctrl-R -> Being typing command to find
Without cycling through options hit Tab or an Arrow Key to fill in match
Cursor starts before text but can not move
Hitting Ctrl-C does nothing
Can not type Exit
Must close terminal to reset

If I wait long enough, it seems like it eventually works (just found that out when testing for details)

Additional Info:

Does not happen consistently
Seems to be happening more frequently
Seems to happen when using Tab or an ArrowKey to fill in the match

Not too long ago I figured out what the actual problem is... What's hapenning is that upon Tab where we're expecting autocomplete, the CLI is actually cycling through $PATH (linux wsl: echo $PATH) in search of the script and not actually autocompleting. Generally this wouldn't be an issue in a linux system, but if you look closely at the $PATH in WSL it also includes /mnt/c/Windows ... causing a HUGE overheard in which to search. A solution is to remove the windows paths before they're loaded. Hope that helps.

For this solution, is removing the Windows mnt file from my $PATH safe? In order for that solution to work, I imagine I need to persist the change. Does WSL need to have the windows mount file in the path to do basic operations? I am always very weary of directly modifying the path and in a lot of cases there are other options that work instead of modifying the $PATH.

Use right arrow instead of tab.
I had the same problem and figured out that if I do not use tab, it won't crash. So:
1- Press Ctrl + R and search.
2- Press Ctrl + R again if you need to find more results.
3- Then use right arrow to select the command you want.

Use right arrow instead of tab.
I had the same problem and figured out that if I do not use tab, it won't crash. So:
1- Press Ctrl + R and search. 2- Press Ctrl + R again if you need to find more results. 3- Then use right arrow to select the command you want.

Thank you for sharing, works perfectly!

Use right arrow instead of tab.
I had the same problem and figured out that if I do not use tab, it won't crash. So:
1- Press Ctrl + R and search. 2- Press Ctrl + R again if you need to find more results. 3- Then use right arrow to select the command you want.

Confirm the existence of the problem so far, and this is the only working solution.

Use right arrow instead of tab.
I had the same problem and figured out that if I do not use tab, it won't crash. So:
1- Press Ctrl + R and search. 2- Press Ctrl + R again if you need to find more results. 3- Then use right arrow to select the command you want.

Thank you! Seems like this issue should be easy to fix then :)


UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 58437: ordinal not in range(128)

Hello,
since today I get following error when trying to start any movie on netflix addon.
"InputStream Helper has geberated an internal error:: 'asci' codec cat't decode byte 0xe2 in position 58437: ordinal not in range (128)
KODI version 18.7 runninig on Linux arm (raspberry 3)
InputStream Helpre is at version 0.5.8
also get error when tried to reinstall widevine CDM.
Worked well until today, nothing was updated lately.
error from log:
2022-03-11 17:57:46.346 T:1354748096   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.UnicodeDecodeError'>
Error Contents: 'ascii' codec can't decode byte 0xe2 in position 58437: ordinal not in range(128)
Traceback (most recent call last):
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/default.py", line 8, in
run(sys.argv)
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/api.py", line 14, in run
widevine_install()
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/api.py", line 42, in widevine_install
Helper('mpd', drm='widevine').install_widevine()
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/init.py", line 34, in clean_before_after
result = func(self, *args, **kwargs)
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/init.py", line 221, in install_widevine
result = install_widevine_arm(backup_path())
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/widevine/arm.py", line 69, in install_widevine_arm
devices = chromeos_config()
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/widevine/arm.py", line 63, in chromeos_config
return json.loads(http_get(config.CHROMEOS_RECOVERY_URL))
File "/home/pi/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/utils.py", line 73, in http_get
return content.decode()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 58437: ordinal not in range(128)
-->End of Python script error report<--
2022-03-11 17:57:46.347 T:1354748096   DEBUG: onExecutionDone(14, /home/pi/.kodi/addons/script.module.inputstreamhelper/default.py)
Thanks for help.
Daniel

Hi,
I get the exact same error running the same version of kodi and input stream helper on a RPi 3B+....
Help would be greatly appreciated.
Best regards
Daniel

Hi,
I have the same issue, will appreciate a fix. For now I will try to downgrade the version and see if it works.
Regards,
S

Changing line 73 in lib/inputstreamhelpers/util.py to the following seems to work for me:
    return content.decode("utf-8")
Seems that the file used to get the current version of Widevine has been changed on googles side...

Changing line 73 in lib/inputstreamhelpers/util.py to the following seems to work for me:  return content.decode("utf-8")
Seems that the file used to get the current version of Widevine has been changed on googles side...

Works for me too...
Thanks a lot...
Regards Daniel

Changing line 73 in lib/inputstreamhelpers/util.py to the following seems to work for me:  return content.decode("utf-8")
Seems that the file used to get the current version of Widevine has been changed on googles side...

Thanks!!! This works

Thank you very much it worrks!

Changing line 73 in lib/inputstreamhelpers/util.py to the following seems to work for me:  return content.decode("utf-8")
Seems that the file used to get the current version of Widevine has been changed on googles side...

For anyone in doubt: the correct file name is utils.py. In case someone like me uses LibreElec (Kodi appliance type OS) the full path to the file in question is /storage/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/utils.py
so one can login via ssh to your kodi box and edit it with
nano /storage/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/utils.py

@DokuroKM: Thanks for the solution!

Changing line 73 in lib/inputstreamhelpers/util.py to the following seems to work for me:  return content.decode("utf-8")
Seems that the file used to get the current version of Widevine has been changed on googles side...

For anyone in doubt: the correct file name is utils.py (notice the s). In case someone like me uses LibreElec (Kodi appliance type OS) the full path to the file in question is /storage/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/utils.py so one can login via ssh to their kodi box and edit it with
nano /storage/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/utils.py

@DokuroKM: Thanks for the solution!

I get:
return content.decode("UTF-8")
^
SyntaxError: 'return' outside function

Do not add or remove spaces when modifying the line. The spaces are required for proper function. There should be exactly 4 spaces, the line that starts with return must align with the previous line.

@nxdefiant
Thank you for your Syntax correction. It was very fast :-)
@ mDfRg
Thank you for the solution
Netflix runs without problems on my system now.

I am running into this problem, running kodi leia, on libreelec 9, using a raspberry pi 3,, I have no idea how to change that line of code,,, where would I find and edit it. So netflix works again on my device? The devices to log on remotely to edit seem to be android based..
Any help would be greatly appreciated.

SSH to your raspberry pi e. g. using Putty: ssh root@libreelec with password libreelec unless you changed the default password. Then call nano /storage/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/utils.py as mentioned above and navigate to line 73. Change the line, press ctrl + o and ctrl+ x so save and exit the file and restart you pi.

Changing line 73 in lib/inputstreamhelpers/util.py to the following seems to work for me:  return content.decode("utf-8")
Seems that the file used to get the current version of Widevine has been changed on googles side...
@DokuroKM thanks a lot, it's working for me

SSH to your raspberry pi e. g. using Putty: ssh root@libreelec with password libreelec unless you changed the default password. Then call nano /storage/.kodi/addons/script.module.inputstreamhelper/lib/inputstreamhelper/utils.py as mentioned above and navigate to line 73. Change the line, press ctrl + o and ctrl+ x so save and exit the file and restart you pi.

Thanks man! I tried googling around for a solution before, but this post had all the right buzzwords and info for me to figure it out. It's downloading the widevine right now!

Nice, i hope this will fix my netflix error. Widevine is downloading again

Closing, since #496 should fix this. It would be great if some users could test the builds here and report if it works, so I can do a release, soon.

It works for me with the given fix, thank you so much


usage on macbook

Hi, thank you for your great work. It's a very good tool for cv developers. I always recommend this tool to my friends.
I have a problem these days, I need to program on macbook, but there are not any tool like this to debug opencv, it's very

it's very annoyed to save images to visualize the intermediate variables. But I find that GDB is still working on mac. So, is there any way to use this tool on mac?

Hello @CanCanZeng! Sadly I don't own a mac to test this, but I suspect that it should be possible, since you said gdb works on mac, and I know Qt is supposed to be cross platform.
Have you tried to compile the tool on mac? I suppose the compilation steps wouldn't be very different. If you have compilation issues, I might be able to give a hint or two on how to solve them, but I can't guarantee since I don't have the means to test it (and sadly I don't know anyone who owns a mac to test it myself).

Thank you for your kind reply, I am new to mac, but I'm try to figure it out. I have successfully installed gdb and qtcreator on mac, but haven't yet compiled gdb-imagewatch on it. I will try it later, and I will inform you if any progress is made.

Hi @CanCanZeng! Sorry for taking so long to reply.
I've fixed the compilation issues, however, unfortunately, the architecture adopted for GDB ImageWatch means that UI calls are attempted at a secondary thread, which is not supported on MacOS (and is prone to bugs on Linux). We should probably refactor the code, having two separate processes (one for GDB and another for the UI), using IPC between them.
If you are using an older version of Mac OS than Mojave, then you might be able to run the plugin (I was only able to test on Mojave, which enforces the main thread UI restriction and prevents the plugin from running). Check out the branch darwin-support.
In the following weeks I'll try to make the necessary changes to use multiple processes, which would potentially make the plugin cross platform.

Thank you for your help, the reply is worth waiting! My Mac OS is also Mojave unfortunately. I will try the darwin-support later, although I don't understand what you are saying (ಡωಡ)

I have some good news on this. I've been working on the mac port for the past few weeks and have been able to make everything work on my MacOS Mojave. Since I couldn't get GDB to run properly here (especially when building with python 3 support), I made two major changes:

Split the UI and debugger into two different processes
Added support for python 2
Added support for lldb

These changes are all in the wip/darwin-support branch. As the name suggests, this branch is still a work in progress and might be unstable, but is finally usable. To use it with lldb, you need to add the following to ~/.lldbinit:
command script import /path/to/gdb-imagewatch/giwwindow.app/Contents/MacOS/gdb_imagewatch.py

@csantosbh I saw you removed the dependency on pysigset... would that be enough for giw to work on Windows now too?

Almost there! There's a few places where we have platform specific python code (but these are few and probably easy to implement now since I check for OS version on them). But before that, it would be nice to make sure GDB is still working on Linux in the darwin branch (which I don't know yet as I don't have an easy linux machine at my disposal nowadays)

the installation process is broken in Linux, currently have to copy the contexts of resources to the installation destination.

Solved an implemented in https://github.com/OpenImageDebugger/OpenImageDebugger/ :D


stdlib: significantly speed up a test

... by forcing the array comparison to be specialized, and remove non-determinism.

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    OS X platform               | @swift-ci Please test OS X platform
    Linux platform              | @swift-ci Please test Linux platform

Note: Only members of the Apple organization can trigger swift-ci.

@swift-ci Please test and merge


libcbor: Fix pkgconfig being placed correctly

Fixes #85932
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build libfido2 libcbor

cc @dtzWill

This is causing a mass-rebuild because our openssh package depends on this.  I'm rebasing to staging

Seems I screwed up the rebase... argh

@GrahamcOfBorg build libfido2 libcbor ssh

Validated the pcfiles are broken on master and fixed here, thanks for the fix!
It'd be nice if we had some kind of auto-validation for pkg-config files.  I also saw the aws-sdk-cpp pcfiles are broken, also due to cmake issues with upstream's build not being quite right.


Login 400 Bad Request

Bug Report
Form
Put an [x] if you meet the condition, else leave [ ].
Requirements

[x] I've searched the Issues
[x] I've read the basic concepts
[x] I'm using the latest version
[x] I've debugged my code using the DEBUG variable.

Platform

[x] I'm using Node.js version 10.15.3
[ ] I'm using electron
[ ] I'm using the browser YOUR_BROWSER_AND_VERSION
[ ] I'm using some other environment YOUR_ENV

Description
This code used to work smoothly before but since the past few days i'm facing this Login issue.
My accounts are not blocked. When i login on official website/app the accounts are working, but through this code i'm getting 400 Bad Request
Code
  async login() {

    helpers.telegram_send_message("Login started for username: " + this.config['IG_USERNAME']);

    this.ig_client = new IgApiClient.IgApiClient();

    this.ig_client.state.generateDevice(this.config['IG_USERNAME']);

    await this.ig_client.simulate.preLoginFlow().then(resp => {
      helpers.telegram_send_message('PreLogin success for username: ' + this.config['IG_USERNAME']);
    }).catch(error => {
      helpers.telegram_send_message('PreLogin failed for username: ' + this.config['IG_USERNAME'], "exception");
      helpers.telegram_send_message(error, "exception");
    });;

    console.log("Logging in", this.config['IG_USERNAME'], this.config['IG_PASSWORD'])
    await this.ig_client.account.login(this.config['IG_USERNAME'], this.config['IG_PASSWORD'])
      .then(resp => {
        helpers.telegram_send_message('Login success for username: ' + this.config['IG_USERNAME']);
        // console.log(resp);
      }).catch(error => {
        helpers.telegram_send_message('Login Failed for username: ' + + this.config['IG_USERNAME'], "exception");
        helpers.telegram_send_message(error, "exception");
      });

    await this.ig_client.simulate.postLoginFlow();
  }

Error and Output
(node:15048) UnhandledPromiseRejectionWarning: IgResponseError: POST /api/v1/accounts/login/ - 400 Bad Request;
    at Request.handleResponseError (D:\react_projects\instagram-testxxx\node_modules\instagram-private-api\dist\core\request.js:125:16)
    at Request.send (D:\react_projects\instagram-testxxx\node_modules\instagram-private-api\dist\core\request.js:53:28)
(node:15048) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:15048) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Does not work even after removing preloginflow

<b>Exception:</b> IgResponseError: POST /api/v1/accounts/login/ - 400 Bad Request;  (node:15304) UnhandledPromiseRejectionWarning: IgLoginRequiredError: GET /api/v1/direct_v2/ranked_recipients/?mode=reshare&query=&show_threads=true - 403 Forbidden; login_required     at Request.handleResponseError (D:\react_projects\instagram-testxxx\node_modules\instagram-private-api\dist\core\request.js:113:24)     at Request.send (D:\react_projects\instagram-testxxx\node_modules\instagram-private-api\dist\core\request.js:53:28) (node:15304) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:15304) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Same error

https://github.com/dilame/instagram-private-api/issues/1457

For some accounts login not work, try to send request as http2.


Added SliverCoordinater, PinnedHeaderSliver ReszingHeaderSliver

This is a WIP, it's not ready for review yet.

This PR has been split into parts: https://github.com/flutter/flutter/pull/127340, https://github.com/flutter/flutter/pull/143196, https://github.com/flutter/flutter/pull/143325, https://github.com/flutter/flutter/pull/146654


[Question] Hook into color update?

I was searching your doc and cound't find any clue, basically what I'm after is similar to
init: function(elem,colors){
//do some stuff
}

Yes, there is this
actionCallback: function(e,action) {}

But I don't know what are those function attributes for.
So yes, I would need to do some stuff on update.
Thanks so much.

I managed to make it work via renderCallback.

Hey there.
We need a way to have access to element in all callback functions. Can you please point out or make some improvements on this?
Thank you

I found that to get the element in the callback functions you can simply do
var myInput = this.input;

But I think this should be documented.

Hi @thednp
sorry for the late answer,... I was not home for quite a while.
Thanks for your point. I will update the documentations as soon as I find time.
Cheers


Add elastic_stack::repo

Module version: Master
Puppet version: 4.10.x
OS and version: Ubuntu 16.04

Bug description
elastic_stack::repo should be used consistently throughout all elastic Puppet modules.
Feature Description

Remove elasticsearch::repo in favor of elastic_stack::repo

I will submit a PR.

https://github.com/elastic/puppet-elastic-stack/issues/2 needs to be fixed first.

Thanks @baurmatt, as you can probably guess integrating that module into this one was always the intent, but you're ahead of us here 😄
Thanks for the work you're doing here, I'll keep an eye out for a PR.


miner.ActiveSetFromEpochFirstBlock will use different block depending on synced certificate

if node wasn't online and synced certificates only for several last layers it will use different block for active set compared with
nodes that were online for all time and have the earliest certificates.
i think that function should ignore certificates and use any applied block regardless of the reason

this is mostly important for hare. will be obsolete with graded oracle

if code is changed to use applied block, and block downloading is delayed, it will fallback to tortoise active set. so the outcome is still not deterministic. maybe worth punting until graded oracle is deployed :D


Fix typo of custom variable list

@Moelf Please sign the CLA.

Closed due to not signing the CLA.

sorry for seeing this earlier but it's signed now.


[BUG] Decreasing the amount of Epiphany components is causing the Terraform error

Describe the bug
Decreasing the amount of Epiphany components is causing the Terraform error.
Error details:
Error creating route table association: Resource.AlreadyAssociated: the specified association for route table rtb-xxxxxxxxxx conflicts with an existing association
nd -   status code: 400
on build/qstart/terraform/009_ros-qstart-kubernetes-master-0-route-association.tf line 14, in resource "aws_route_table_association" "ros-qstart-kubernetes-master-0-route-association":
 resource "aws_route_table_association" "ros-qstart-kubernetes-master-0-route-association"
ERROR epicli - Error running: "terraform apply --auto-approve -state=/shared/build/qstart/terraform//terraform.tfstate -no-color /shared/build/qstart/terraform/"

How to reproduce
Steps to reproduce the behavior:
( on the correctly deployed minimum Epiphany environment )

edit configuration file /shared/build/qstart/qstart.yml  by changing: kafka:
   count: 1

to kafka:
   count: 0

execute epicli apply  -f /shared/build/qstart/qstart.yml

Expected behavior
The Epiphany environment should be successfully downgraded in order to not include the kafka component.
Config files
kind: epiphany-cluster
title: Epiphany cluster Config
provider: aws
name: default
specification:
  name: qstart
  prefix: ros
  admin_user:
    name: operations
    key_path: /shared/.ssh/id_rsa
  cloud:
    k8s_as_cloud_service: false
    use_public_ips: false
    credentials:
      key: xxxxxxxxxxxxxxxxxxxxxxxxxxx
      secret: yyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  components:
    repository:
      count: 1
    kubernetes_master:
      count: 1
    kubernetes_node:
      count: 1
    logging:
      count: 1
    monitoring:
      count: 1
    kafka:
      count: 0
    postgresql:
      count: 1
    load_balancer:
      count: 1
    rabbitmq:
      count: 1
version: 1.0.0

Environment

Cloud provider: AWS
OS:  Debian 10 ( epicli container )

epicli version: 1.0.0

DoD checklist

[ ] Changelog updated (if affected version was released)
[ ] COMPONENTS.md updated / doesn't need to be updated
[ ] Automated tests passed (QA pipelines)

[ ] apply
[ ] upgrade

[ ] Case covered by automated test (if possible)
[ ] Idempotency tested
[ ] Documentation updated / doesn't need to be updated
[ ] All conversations in PR resolved
[ ] Backport tasks created / doesn't need to be backported

I cannot reproduce it with develop and 1.0.1 version. I'm closing it. If you face this issue one more time please reopen.


fix :name* matching group values

We have found a bug in the upstream path-to-regexp.  See:
https://github.com/pillarjs/path-to-regexp/issues/260
Once a fix is available we should incorporate it here.

This has been fixed, but I forgot to mention this issue in the commit.


Update bsblan adapter to 0.3.1

RE-CHECK!

RE-CHECK!

@hacki11
Your adapter https://github.com/hacki11/ioBroker.bsblan does not use standard iobroker testing using node 16/18/20
Please see requirements https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository which is also required for stable repository.
Adapter needs to have at least Adapter basic testing (installing, running) using GitHub actions. More information in forum from apollon77 (Just take from other adapters the samples)
Although your tests signal a green checkmark, they also signal that niode 14 tests have passed. This is impossible and indicates that you test do not include the required integration tests (= test that adapetr starts without error).
I suggest that you completly replace the existing workflow test-and-release by an aup to date version.  You may copy the test-and-release.yml workflow from the example adapter or newly created adapter. If you need help, please let us know.
Please feel free if you need any help setting up standard testing and / or if you prefer a that we / I create a PR to fix this.
Please add a comment when you have reviewed and fixed the suggestion or at least commented the suggestions and you think the adapter is ready for a re-review

@mcm1957 I hope I have addressed your topics correctly.

0.3.1 created 08.10.2023
20 user (9%)
OK


Overflow issue IE

Removes scrollbar in IE10 and IE11 (#23172)
Max-width of 320px is not respected in IE10 on screens wider as 1920px, but imo this is an edge case and the difference is hardly noticeable.

@mdo: I can confirm this fixes the issue.


Be able to define different response body for different response code

So when it's sending 400 response defined in the monkey-business.yaml instead of normal 200, it would be nice to have server return different response body

Just to clarify:
So currently it can send a different body at random times and different status codes too
But you want it so you can define multiple "monkey business" to happen at the same time. So something like
- body: "This is wrong :( "
  status: 400
  frequency: 0.5

Correct?

yea. when defining monkey business like this, I would want it can return different pre-defined body like this example.

Seems like a good idea to me, will try and hack something out soon :)

@jzk It seems by chance, this already works
monkey.yaml
---
# Writes a different body 50% of the time
- body: "This is wrong :( "
  status: 400
  frequency: 0.5

example.yaml
---
 - name: Test endpoint
   request:
     uri: /hello
     method: GET
   response:
     code: 200
     body: '{"message": "hello, world"}'
     headers:
       content-type: text/json

mockingjay-server -config=example.yaml -monkeyConfig=monkey.yaml
Could you give it a go and let me know if this is what you need?

indeed it works already.. I probably forgot to add a  headers: content-type: text/json last time when I tested, so it doesn't  show response body correctly in my testing tool in JSON mode. I can help update example in the document if you want.

Feel free to PR :) Closing for now.


MAINT: Work around MKL+Windows bug

Work around Azure failure due to likely MKL update bug.

Backported


Update Strings.id-ID.axaml

You need to uncomment the changed lines, otherwise it will have no effect.


Add user name to extension?

Currently if two users use the same passcode they will get mapped to the same agent. Phil had suggested to add a user name. Lets discuss and consider adding it to the passcode generation/creation and to the 'login' page in order to avoid this issue.

Brainstorming, brainstorming...
Other than in testing scenarios, if any two separate users have the same passcode on a KERIA instance, there are other big problems, right?
I suppose with KATE, KERIA can't force good randomness of passcode (seed) generation from well written clients.
Is it a hard goal that beyond the passcode and the KERIA urls, the user/client shouldn't have to know anything else?  Now, the proposal is to add a disambiguating user name and ask the user to provide this always or only on conflict?  Yuck.
How about having KERIA create a guid for a KERIA "account", where the guid would typically not be presented to the user?  But, it could be in the form of a generated icon if needed to choose which account to use? Yuck, too.
In brainstorming for a solution, we should also consider when in the future a KERIA service could be replicated for high availability, so an account guid (plus a weak hash of the passcode?) could be used as an account identifier for synchronizing across those service instances, with those services having some common identifier so it is clear to the clients they are connected to one of their supporting KERIA instances?  (Or the service instances participate in a multisig group, and each have an AID and could prove they are of the same group.)

AIDs are unique, that's a ground truth in KERI. It's almost impossible to generate the same passcode twice, unless you are using a salt to avoid randomness while testing.


!path twice instead of checking for !path

In this conditional statement inside the if block, it is checking for !path twice instead of checking for !path and !heading. So, the corrected line should be:
if (!path || !heading) {
   let listItem = null;
          if (!path || !path || heading) {
            // if current route item has no path and children treat it as an API sidebar heading
            listItem = (
              <SidebarRouteTree
                level={level + 1}
                isForceExpanded={isForceExpanded}
                routeTree={{title, routes}}
                breadcrumbs={[]}
              />
            );

Removed the multiple checks #5759


Validate Add Send for Data Producers

Add send by the data producer should  be validated for basic checks.

If we think Database tools are useful then create some examples using that


Don't redact obm password

https://github.com/benbp/on-http/commit/eb275bbfa18fca55286bab5f58c5e1e940eadfc3

This wasn't meant to be created upstream. Sorry!


Climater error

Describe the bug
Multiple error notifications in UI:
Carport: climater: Get "https://emea.bff.cariad.digital/vehicle/v1/vehicles/XXXXXXXXXXXXXXXX/selectivestatus?jobs=all\": net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Steps to reproduce
Error occurs when evcc is started in UI. Every 10 seconds (control cycle interval).
Configuration details
# open evcc at http://evcc.local:7070
network:
  schema: http
  host: evcc.local # .local suffix announces the hostname on MDNS
  port: 7070

log: debug
levels:
  cache: error

# unique installation id
plant: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

interval: 10s # control cycle interval

tariffs:
  grid:
    type: tibber
    token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # access token
    homeid: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # optional if multiple homes associated to account

meters:
- type: template
  template: shelly-1pm
  usage: grid
  host: 192.168.XXX.111
  user: XXXXXXXXXX #
  password: XXXXXXXXXXXXXXXXXXXXXXX #
  name: grid1

chargers:
- type: template
  template: shelly
  host: 192.168.XXX.111
  user: XXXXXXXX #
  password: XXXXXXXXXXXXXXXXXXXXXXXX #
  channel: 0
  standbypower: 15
  name: wallbox3

vehicles:
- type: template
  template: audi
  title: Audi Q3
  user<EMAIL_ADDRESS>  password: XXXXXXXXXXXXXXXXXXXXX
  vin: XXXXXXXXXXXXXXXXXXXXXXX
  capacity: 11.5
  name: ev2

loadpoints:
- title: Carport
  charger: wallbox3
  vehicle: ev2
  mode: pv
  phases: 1
  mincurrent: 6

Log details
[lp-1  ] DEBUG 2023/10/26 18:42:16 charger status: B
[lp-1  ] DEBUG 2023/10/26 18:42:16 next soc poll remaining time: 29m59s
[lp-1  ] DEBUG 2023/10/26 18:42:16 pv charge current: 0A = 0A + -0A (0W @ 1p)
[lp-1  ] ERROR 2023/10/26 18:42:16 climater: Get "https://emea.bff.cariad.digital/vehicle/v1/vehicles/XXXXXXXXXXXXXXXXXXXXX/selectivestatus?jobs=all": net/http: request canceled (Client.Timeout exceeded while awaiting headers)
[site  ] DEBUG 2023/10/26 18:42:25 ----
[lp-1  ] DEBUG 2023/10/26 18:42:25 charge power: 0W
[site  ] DEBUG 2023/10/26 18:42:25 grid power: 0W
[site  ] DEBUG 2023/10/26 18:42:25 pv power: 0W
[site  ] DEBUG 2023/10/26 18:42:25 site power: 0W
[lp-1  ] DEBUG 2023/10/26 18:42:25 charge total import: 190.349kWh
[lp-1  ] DEBUG 2023/10/26 18:42:25 charger status: B
[lp-1  ] DEBUG 2023/10/26 18:42:25 next soc poll remaining time: 29m50s
[lp-1  ] DEBUG 2023/10/26 18:42:25 pv charge current: 0A = 0A + -0A (0W @ 1p)

What type of operating system are you running?
Linux
Version
evcc version 0.121.2

Server doesn't answer- nothing we can do.

Yes, I saw that too. However, I don't recall this problem ever occurring before I updated to 0.121.2. Since then it has been persistent. Before I believe it's a coincidence, I'd better ask the professionals.


Roll Flutter Engine from 6ceccf894c41 to 67e632882c8b (4 revisions)

https://github.com/flutter/engine/compare/6ceccf894c41...67e632882c8b
2024-03-13<EMAIL_ADDRESS>[Impeller] attempt to get validation errors from CI unittests. (flutter/engine#51341)
2024-03-13<EMAIL_ADDRESS>Roll Dart SDK from b19e0995f317 to 18ec60df0774 (1 revision) (flutter/engine#51374)
2024-03-13<EMAIL_ADDRESS>[scenario app] make image matching fuzzier. (flutter/engine#51376)
2024-03-13<EMAIL_ADDRESS>Roll Skia from bbe453e3525d to dc7443fa4d88 (1 revision) (flutter/engine#51371)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC bdero@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Quickstart fail

Description
Quickstart fails at step of adding a dependency:
buckaroo install ericniebler/range-v3
Expected Behavior
I quote

Buckaroo will have downloaded the range-v3 source-code from GitHub and installed it locally in your project folder. We can now use the library in a sample application!

Actual Behavior
:boom:
$ buckaroo install ericniebler/range-v3
Read the lock file.
Stats: 6s 0kb 6 events
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by okhttp3.internal.Platform<EMAIL_ADDRESS>to field sun.security.ssl.
SSLSocketFactoryImpl.context
WARNING: Please consider reporting this to the maintainers of okhttp3.internal.Platform
Error!                                                                          ive access operations
java.lang.NullPointerException
Get help at https://github.com/loopperfect/buckaroo/issues
The stacktrace was written to buckaroo-stacktrace.log.

Ok then
$ cat buckaroo-stacktrace.log
2017-12-20T22:35:48.322027Z:
com.loopperfect.buckaroo.EvenMoreFiles.lambda$switchFileSystem$1(EvenMoreFiles.java:198)
java.base/java.util.stream.ReduceOps$1ReducingSink.accept(ReduceOps.java:80)
java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
java.base/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:486)
com.loopperfect.buckaroo.EvenMoreFiles.switchFileSystem(EvenMoreFiles.java:196)
com.loopperfect.buckaroo.EvenMoreFiles$CopyFileVisitor.preVisitDirectory(EvenMoreFiles.java:181)
com.loopperfect.buckaroo.EvenMoreFiles$CopyFileVisitor.preVisitDirectory(EvenMoreFiles.java:147)
java.base/java.nio.file.Files.walkFileTree(Files.java:2720)
java.base/java.nio.file.Files.walkFileTree(Files.java:2785)
com.loopperfect.buckaroo.EvenMoreFiles.copyDirectory(EvenMoreFiles.java:141)
com.loopperfect.buckaroo.EvenMoreFiles.unzip(EvenMoreFiles.java:123)
com.loopperfect.buckaroo.tasks.CommonTasks.lambda$unzip$10(CommonTasks.java:137)
io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:35)
io.reactivex.Single.subscribe(Single.java:2703)
io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)
io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)
io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:299)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.base/java.lang.Thread.run(Thread.java:844)

Steps to Reproduce

Follow installation steps
Follow quickstart steps
???
:boom:

Context

Really interested in the idea of a C++ package manager, seems like a major missing part of the "developer experience" of the language. I installed Java on my machine specifically to try out Buckaroo, welp.
Your Environment

Version used: 1.3.1
Operating System and Architecture:

$ uname -a
Darwin Bens-MacBook.local 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov  9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64 i386 MacBook9,1 Darwin

System Version:	macOS 10.13.2 (17C88)
Kernel Version:	Darwin 17.3.0
(edit to remove irrelevant system info)

I just tested on the same macOS version and did not encounter the issue.
Would you mind sharing your Java version?
$ java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

This happens for me today as well, same repro steps:
$ java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
$ uname -a
Darwin local 15.6.0 Darwin Kernel Version 15.6.0: Sun Jun  4 21:43:07 PDT 2017; root:xnu-3248.70.3~1/RELEASE_X86_64 x86_64

$ java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

A temporary workaround is to use java 8 instead of 9
brew cask install java8

Closing this out since a work-around exists (install Java 8).
We currently bundle the JRE for Linux builds (thus removing the Java dependency). In the future we will do this for macOS (https://github.com/LoopPerfect/buckaroo/issues/116).


Magic Note App: Replace alert box with bootstrap alert

Is your feature request related to a problem? Please describe.
Currently it show normal alert box, which is not look nice to me.

Describe the solution you'd like
Use bootstrap alert for styling

Hi @Vishal-raj-1
I would like to work on this.

I could work on this also.

Go for it @mtwn105

Were you able to solve this? If not, I can tackle it for you.


Missing license

I dont see an option to purchase the Domestic or International plan. I only see Common Area Phone license.
After you buy Phone System licenses, you can buy the Calling Plan by signing in to the Office 365 admin center, choose Billing > Purchase services > Add-on subscriptions, and then clicking Buy now. You'll see the Calling Plans there.
Is this documentation still accurate?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 243fa83d-b7bf-323a-a14a-026915d3d058
Version Independent ID: fd4a310b-3144-4a8b-1bde-c2efd0c87377
Content: Calling Plans for Office 365
Content Source: Teams/calling-plans-for-office-365.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

@eschrader  - thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:  https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

@officedocsbot close

After I purchased a Common Phone license, I could go back in and purchase a Domestic license for those plans. I could not add them on during my checkout until I purchased the first Common Phone license. Can the documentation be updated to reflect this process?


Sending Info object to push gateway

Hello,
I want to send individual log file lines to push-gateway. The best case I thought of this was to use Info object. The below mentioned code is working for Summary or Gauge, but not for Info. I am getting an iteration warning. What am I doing wrong? I am new to python and prometheus/push-gateway.
Error log :
Traceback (most recent call last):
  File "complete.py", line 21, in <module>
    _send_data_to_gateway(line)
  File "complete.py", line 6, in _send_data_to_gateway
    i = Info('supplier_log_file', 'supplier_infor', reg)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/prometheus_client/metrics.py", line 101, in __init__
    self._labelnames = _validate_labelnames(self, labelnames)
  File "/home/ubuntu/.local/lib/python3.6/site-packages/prometheus_client/metrics.py", line 40, in _validate_labelnames
    labelnames = tuple(labelnames)
TypeError: 'CollectorRegistry' object is not iterable

Code :

from prometheus_client import Info, CollectorRegistry, push_to_gateway
import time

def _send_data_to_gateway(line):
    reg = CollectorRegistry()
    i = Info('supplier_log_file', 'supplier_infor', reg)
    i.info({line})
    push_to_gateway('localhost:9091', job='supplier_log_file', registry=reg)

f = open('/var/log/nginx/access.log', 'r')
while True:
    line = ''
    while len(line) == 0 or line[-1] != '\n':
        tail = f.readline()
        if tail == '':
            time.sleep(0.1)          # avoid busy waiting
            continue
        line += tail
        print(line)
        _send_data_to_gateway(line)

It makes more sense to ask questions like this on the prometheus-users mailing list rather than in a GitHub issue. On the mailing list, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.


HEX Simplifications

Changed

Adjusted hex matcher RegExp to reduce parsing logic

Note
Without "endOfLine": "auto" in the prettier config section of package.json, I was getting a lot of end of line errors, which is why I added this.

closes #71

Codecov Report

Merging #72 (d0daa69) into master (a315342) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #72   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           39        39
  Lines          512       509    -3
  Branches        91        88    -3
=========================================
- Hits           512       509    -3

Impacted Files
Coverage Δ

src/colorModels/hex.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

Hi @lbragile. Thanks for the suggestion but the approach you offered has drawbacks. It has a bigger O(N) complexity since you map arrays and also includes extra regular expression match which is a super expensive operation.
The current code (which was mostly implemented by awesome @subzey) doesn't look super elegant, I agree. But it's extremely fast since it runs a single regexp and doesn't do many operations inside.
If you run npm run benchmark in your branch you'll see that your code makes the library 2x times slower.
Also, your code makes the library core 2% heavier (run npm run size to check the size).

In other words, if code doesn't look fancy, it doesn't mean that the code is bad 😁