Add stable diffusion OpenVINO pipeline

In this PR we add a stable diffusion pipeline enabling OpenVINO Runtime. To export the model to the OpenVINO IR export must be set to True. Needs https://github.com/huggingface/optimum/pull/786 to be merged.
from optimum.intel.openvino import OVStableDiffusionPipeline

model_id = "runwayml/stable-diffusion-v1-5"
stable_diffusion = OVStableDiffusionPipeline.from_pretrained(model_id, export=True)
prompt = "sailing ship in storm by Leonardo da Vinci"
images = stable_diffusion(prompt).images

Closes https://github.com/huggingface/diffusers/issues/1760 and https://github.com/huggingface/diffusers/issues/2202

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks @echarlaix it is amazing to be able to run stable diffusion on my laptop CPU with only a few lines of code!
I have some small questions:

Could you clarify the export parameter? It seems similar to what from_transformers does for OVModels and I'm wondering if there is a difference and/or if it would be possible to use from_transformers here too for consistency.
Thanks for explicitly adding easy-to-use static shapes support! Do you think we could consider removing some duplication so that if a model has been reshaped to static shapes with stable_diffusion.reshape( batch_size=batch_size, height=height, width=width, num_images_per_prompt=num_images_per_prompt)  and you call stable_diffusion(prompt) the pipeline will pick up the shapes from the model? When you explicitly reshape the model, it seems you have to use these shapes in the pipeline? It would be a slight deviation from other stable diffusion pipelines, but it would make code with static shapes easier to read/write, and of course explicitly setting height, width etc in the pipeline would still work too for users who are familiar with that.

Could you clarify the export parameter? It seems similar to what from_transformers does for OVModels and I'm wondering if there is a difference and/or if it would be possible to use from_transformers here too for consistency.

My suggestion is to rename the from_transformers parameter to export which I think should be clearer (also from_transformers could be confusing when exporting diffusers models) for all OVModels (while keeping the from_transformers support until optimum-intelv1.8)

Thanks for explicitly adding easy-to-use static shapes support! Do you think we could consider removing some duplication so that if a model has been reshaped to static shapes with stable_diffusion.reshape( batch_size=batch_size, height=height, width=width, num_images_per_prompt=num_images_per_prompt)  and you call stable_diffusion(prompt) the pipeline will pick up the shapes from the model? When you explicitly reshape the model, it seems you have to use these shapes in the pipeline? It would be a slight deviation from other stable diffusion pipelines, but it would make code with static shapes easier to read/write, and of course explicitly setting height, width etc in the pipeline would still work too for users who are familiar with that.

I think modifying the pipeline behavior is perilous as the user wouldn't necessarily know about it (even in the case where we add a warning). Something that we can do is raise an error when the shapes are not matching and showcase example of static reshaping in the documentation what do you think ?

My suggestion is to rename the from_transformers parameter to export which I think should be clearer (also from_transformers could be confusing when exporting diffusers models) for all OVModels (while keeping the from_transformers support until optimum-intelv1.8)

That sounds good!

I think modifying the pipeline behavior is perilous as the user wouldn't necessarily know about it (even in the case where we add a warning). Something that we can do is raise an error when the shapes are not matching and showcase example of static reshaping in the documentation what do you think ?

I think it can also be the other way around. When I reshaped the model I was surprised the inference didn't work out of the box. I guess I'm not seeing why you would explicitly reshape the model, but then want to do inference on different shapes? And since static shapes speed up inference, I think it doesn't make much sense not to to use them - but your simple 4 line example is so much friendlier than the 10 lines you now need with static shapes (https://huggingface.co/helenai/runwayml-stable-diffusion-v1-5-ov-fp32)
Not a dealbreaker though, and we can also discuss this later.


add DeleteDisk func to test_helpers

This is used in create_disk integration test clean up

Cool, cheers :beers:


Updated and new publications on using AMX for cryptography

This is a followup on #9.
Our paper mentioned there was published in the the first edition of the new IACR Communications in Cryptology journal, so I'd like to ask if you'd be so kind as to update the link to the actual journal paper, I'd be grateful. We note that the repository associated with this paper is now online, so you might be interested in linking to that as well.
Finally, we have another paper out on implementing two other post-quantum cryptosystems on AMX. You may also be interested in adding a link to it.
Thanks.

wow, that's impressive deep research, thanks for sharing

Done in 42a391b.


Update sql-database-private-endpoint-overview.md

Added explanation of why FQDN is required for accessing a SQL Database via a private endpoint.

@theheatDK : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Suggest rewording as follows
Any login attempts made directly to the IP address shall fail. This behavior is by design since private endpoint routes traffic to SQL Gateway in the region and it requires FQDN to be specified for processing the login.

@theheatDK : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @rohitnayakmsft ,
I have changed the wording.
Regards Peter

@theheatDK I have a big PR for Mar 9th deadline that this conflicts with. Suggest we abandon this PR and I can incorporate your changes in my PR

Sure. No problem.

Thanks @theheatDK You will see the changes land next week.


net/Broadcast test failing on openSUSE

The net/Broadcast consistently fails on openSUSE Tumbleweed (20170529) with the following output:
theodus@linux-xec3 ~/src/ponylang/ponyc/packages/net (master) $ ponyc --version
0.14.0-33897bc6 [release]
compiled with: llvm 3.8.1 -- clang version 4.0.0 (tags/RELEASE_400/final 297347)
theodus@linux-xec3 ~/src/ponylang/ponyc/packages/net (master) $ ponyc -d -V0 && ./net --sequential --only=net/Broadcast
1 test started, 0 complete: net/Broadcast started
1 test started, 1 complete: net/Broadcast complete
**** FAILED: net/Broadcast
Test timed out without completing
Action never completed: pong create
Action never completed: ping create
Action never completed: pong receive
Action never completed: ping receive
----
---- 1 test ran.
---- Passed: 0
**** FAILED: 1 test, listed below:
**** FAILED: net/Broadcast

This test also fails on Windows and MacOS

If you turn of the MacOS firewall, it will pass.
I can't comment on Windows or openSuse.

It does work on openSUSE with the firewall turned off. Is this intended and/or should we have a stdlib test that requires the firewall to be turned off?

i think the question would be, why does the firewall block it.

Some firewalls block all broadcast traffic by default.

I used to deal with this problem all the time on Fedora Linux, with Pony, and with various ZeroMQ related projects. There's no way for us to test broadcast on these platforms without disabling ( at least that rule of) the firewall.  Perhaps the best we can do is add some output for the failed test that suggests checking the firewall settings.
I think there may be an old issue ticket about this, but I'm on my phone right now, so I can't really search for it very easily.

Decision from sync:

Update the test with a log message that let's folks know that the test is probably failing because of a firewall if its on and they should try running with firewall off to verify.
add a label for the broadcast tests so that they can be excluded if someone doesn't want to turn off the firewall
document how to use the label


perf(index): improve write performance

Reduce unnecessary method calls for GetSeriesIdBySeriesKey
Remove the lock in IndexBuilder
Concurrent creating index for rows

What problem does this PR solve?

Signed-off-by: zhenyuxie<EMAIL_ADDRESS>Issue Number: close/fix/reslove/ref #63
What is changed and how it works?

Reduce some unnecessary method invokes in shard.writeRowsToTable
Remove the big lock in IndexBuilder.CreateIndexIfNotExists.
Concurrent creating index for rows.

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Just use origin unit tests.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@78faa32). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #64   +/-   ##
=======================================
  Coverage        ?   62.33%
=======================================
  Files           ?      302
  Lines           ?    70395
  Branches        ?        0
=======================================
  Hits            ?    43882
  Misses          ?    23402
  Partials        ?     3111

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

This is the performance comparison after optimization and before optimization：

About 200% performance improvement.

lgtm


Add: add the GetDesktopWindow and scale support

Please provide Issues links to:

Issues: #

Provide test code:

Description
...

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add log about PDFs that contain "NOTIFY" tag

https://www.pivotaltracker.com/story/show/180421592
This is so we can see if it's OK to delete the code that handles
this scenario. Originally we asked services to inject the tag at
source, but now we do it for them. It's possible some PDFs still
have it in, so we shouldn't just remove the check.
I noticed the conditional wasn't actually covered by any tests,
so I've added one and a file that explicitly contains the tag.

Have verified this tag is still being injected by the folks at "Check your State Pension". There could be more, though, and it's hard to retain this kind of historical info, so I think it's still worth having the log.

Quick analysis of this indicates it's only the "Check your State Pension" service that's still doing this.
fields @timestamp, @message
| sort @timestamp desc
| filter message like "PDF already contains Notify tag"
| parse message "tag (NOTIFY.*." as ref
| display ref
| limit 1000

select distinct service_id from notifications where reference in (...);


Migration to 0.6/0.7

Hi,
I am migrating my code to version 0.6, however, it appears that old code is still being used underneath in the "dist" version. Is it true that to use the new version, we have to manually delete all the transitionary code (so new apis are called)? For now, if even I am providing the "cell" property on the Column, it is not getting hit at all.
When I looked at the code, it appears that it is still hitting the cellRenderer. Looks like that we have to manually delete the transition code and build the dist for it to work. Is there something I am missing here?
Also, when is 0.7 version going to be released exactly?
Thanks.

I was also looking for timelines around version 0.7.
Thanks

I also ran into the same issue. Could someone please advise?

If you are using any of the old API's, it seems the transition code will try and cover you over to the new APIs.
Make sure you aren't using any of the old code (see https://github.com/facebook/fixed-data-table/blob/master/src/transition/FixedDataTable.react.js#L316)
We have a fork that removed the transition code, you can test on there to make sure you aren't using any deprecated props: https://github.com/schrodinger/fixed-data-table
As for 0.7, it seems the maintainers haven't been active in quite a while so no idea when the official version is coming out.

Thanks.
We have our own fork too, where we deprecate all of the old APIs: https://github.com/fixedtablev6Update/fixed-data-table.git
We want to be sure that - this is the only way around to use the new APIs, and that there is no other way directly supported by facebook to do this (in their own branch/fork).

Hi, Someone in my team has pointed out a way where we can use 0.6 version without our own fork.
This will be useful for everyone.
I debugged through the code to see how is it working and it looks like that “TransitionTable (Old Table)” has this API below. If “needsMigration” is true then it goes to the Old code, otherwise to new code.
Originally, I had not removed the old definitions at all in my Definition file, so “needsMigration” was always true – and hence even if I provided new cell code, it was not getting hit.
_checkDeprecations: function _checkDeprecations() {
var needsMigration = false;
                if (this.props.rowGetter) {
                  notifyDeprecated('rowGetter', 'Please use the cell API in Column to fetch data for your cells.');

                  // ROWGETTER??? You need to migrate.
                  needsMigration = true;
                }….

}
So, to use the new APIs - you need to delete all references to deprecated definitions (but mainly the rowGetter - as that is the only flag that causes needsMigration to be true/false).
Thanks.


How to check if GPS is on?

How to check if GPS is on?
I see if is off the application crash. So I switch on the GPS and the application goes on.

It is happening for UWP currently. I have to check for iOS and Android.

@devapalanisamy I confirm you that happen. I think that I can avoid at least the crash with a try catch...

You should always try/catch getting the location. The plugin makes standard calls. Please fill out the issue accurately for me to help or they will be closed immediately.

I see that the application crash if gps is off. So how to check if gps is on and avoid the error?

You would need to provide more context as to what device, what os, what is your code, literally anything to help me here. Open a new bug with that information that should be filled out when you do "new issue"

I solved in this manner:
` try
{
            var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location);

            if (status != PermissionStatus.Granted)
            {
                if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location))
                {
                    await DisplayAlert("Need location", "Gunna need that location", "OK");
                }

                var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Location);
                status = results[Permission.Location];
            }

            if (status == PermissionStatus.Granted)
            {

                var myposition = await crosslocator.GetPositionAsync(timeoutMilliseconds: 10000);

                if (myposition != null)
                {

                    MyMap.Pins.Add(new Pin
                    {
                        Label = "Io",
                        Position = new Position(myposition.Latitude, myposition.Longitude),
                        Type = PinType.Generic
                    });

                    MyMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(myposition.Latitude, myposition.Longitude), Distance.FromMiles(1)));
                }

            }
            else if (status != PermissionStatus.Unknown)
            {
                await DisplayAlert("Location Denied", "Can not continue, try again.", "OK");
            }

        }
        catch (Exception ex)
        {

            await DisplayAlert("Location Error", ex.Message, "OK");
        }`


Mm 9995 handle admin console links

Summary
Recognize links to the system console as internal, and redirect back to the root if not a system administrator.
Ticket Link
https://mattermost.atlassian.net/browse/MM-9995
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed
[x] Added or updated unit tests (required for all new features)

@hmhealey, see comments above and PR to tweak visual style of regular expression.


Uploading only takes .jpg

if we can send png files in chat or copy paste that would be great

I think a good solution would be converting png to jpg before uploading to IG's servers.


[Experimental] feat: support request limits and dropping bodies when necessary

lets add a CHANGELOG for comments on bumping the micro/patch version ?


fix(esl-toggleable): allow to register toggleable as independent component

Adds default toggleable styles.
Make active class open by default.

:tada: This PR is included in version 3.0.0-beta.11 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update mutation returns null and doesn't update anything

This is my query and variables:

I previously added that wing with a create mutation, that works nicely. This is my original data for wings:
wings: [
        { id: 'ozone-zeno', model: 'Zeno', brand: 'Ozone', certification: 'D' },
        { id: 'nova-mentor-3', model: 'Mentor 3', brand: 'Nova', certification: 'B' }
],

Ah, guess that's the problem in update.js:

As my keys are strings, this of course wont work.

Indeed, json-graphql-server only supports integer ids for now.

cf #51

should I be able to update / create new items or is this only for testing purposes? I am able to query my data but not update or post new


3rd monitor not getting a signal

Regression?
Yes
System Info and Version
 System/Version info
Hyprland, built from branch main at commit b9b8e6220f55af34e862b541a5a4b30ae6d8f15f  (renderer: fade out windows on silent moves).
Date: Wed Aug 28 21:54:49 2024
Tag: v0.42.0-86-gb9b8e622, commits: 5155

flags: (if any)

System Information:
System name: Linux
Node name: archlinux
Release: 6.10.6-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Mon, 19 Aug 2024 17:02:39 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation Skylake GT2 [HD Graphics 520] [8086:1916] (rev 07) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/simson/.config/hypr/hyprland.conf: Read Succeeded
$terminal   = kitty
$explorer   = pcmanfm
$menu       = wofi --show drun
$task_man   = htop
$browser    = firefox
$screenshot = grim
$notes      = obsidian
$mainMod    = SUPER

#Custom Scripts
$pyenv = source ~/Documents/coding_workspace/python_workspace/bin/activate

#Source files
#source = ~/.config/hypr/themes/catpuccin_mocha/mocha.conf
source = ~/.config/hypr/settings/env_vars.conf
source = ~/.config/hypr/settings/sim_theme.conf
source = ~/.config/hypr/settings/workspaces.conf
source = ~/.config/hypr/settings/win_rules.conf
source = ~/.config/hypr/settings/layout.conf
source = ~/.config/hypr/settings/input.conf
source = ~/.config/hypr/settings/misc.conf
source = ~/.config/hypr/settings/style.conf
source = ~/.config/hypr/settings/keybinds.conf
source = ~/.config/hypr/settings/monitors.conf
source = ~/.config/hypr/settings/autostart.conf

Config File: /home/simson/.config/hypr/settings/env_vars.conf: Read Succeeded
#    ______                                                      ____
#   / ____/___ _   __   _   ______ ___________ _________  ____  / ___/
#  / __/ / __ \ | / /  | | / / __ `/ ___/ ___// ___/ __ \/ __ \/ /_
# / /___/ / / / |/ /   | |/ / /_/ / /  (__  )/ /__/ /_/ / / / / __/
#/_____/_/ /_/|___/____|___/\__,_/_/  /____(_)___/\____/_/ /_/_/
#                /_____/
#
# System wiede enviornment vars that are set on startup
# Other theme relevant vars are placed in the theme.conf file.

env = DEBUG15, 1
env = QT_QPA_PLATFORMTHEME, qt5ct
env = RUST_BACKTRACE, 1
env = GDK_SCALE,1
env = XCURSOR_SIZE,32

Config File: /home/simson/.config/hypr/settings/sim_theme.conf: Read Succeeded
source = ~/.config/hypr/themes/catpuccin_mocha/theme.conf

Config File: /home/simson/.config/hypr/themes/catpuccin_mocha/theme.conf: Read Succeeded
env             = NEOFETCH_LOGO_COLOR, 15
env             = $MAIN_WALLPAPER, ~/.config/hypr/themes/catpuccin_mocha/wallpapers/cat_lofi_cafe.jpg

# Theme vars
$wallpapers     = /home/simson/.config/hypr/themes/catpuccin_mocha/hyprpaper.conf
$active_color   = rgba(cba6f7ff)
$inactive_color = rgb(f4dbd6)
$kitty_theme    = "Catpuccin-Mocha"

# Config locations
$hyprlock_conf = $HOME/.config/hypr/themes/catpuccin_mocha/hyprlock.conf

# Change Browser and Dashboard themes
# Change Obsidian themes
# Change Spotify text color
# Change applied web theme

Config File: /home/simson/.config/hypr/settings/workspaces.conf: Read Succeeded
# _       __           __                                                     ____
#| |     / /___  _____/ /___________  ____ _________  _____ _________  ____  / __/
#| | /| / / __ \/ ___/ //_/ ___/ __ \/ __ `/ ___/ _ \/ ___// ___/ __ \/ __ \/ /_
#| |/ |/ / /_/ / /  / ,< (__  ) /_/ / /_/ / /__/  __(__  )/ /__/ /_/ / / / / __/
#|__/|__/\____/_/  /_/|_/____/ .___/\__,_/\___/\___/____(_)___/\____/_/ /_/_/
#                           /_/
#
# Workspace settings and workpspace keybinds.
#

#Special workspaces
bind      =  $mainMod, S, togglespecialworkspace, magic
bind      =  $mainMod SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind      =  $mainMod, mouse_down, workspace, e+1
bind      =  $mainMod, mouse_up, workspace, e-1

# Move/resize windows
bindm     =  $mainMod, mouse:272, movewindow
bindm     =  $mainMod, mouse:273, resizewindow

# Move focus with mainMod + arrow keys
bind      =  $mainMod, left, movefocus, l
bind      =  $mainMod, right, movefocus, r
bind      =  $mainMod, up, movefocus, u
bind      =  $mainMod, down, movefocus, d

# Switch workspaces with mainMod + [0-9]
bind      =  $mainMod, 1, workspace, 1
bind      =  $mainMod, 2, workspace, 2
bind      =  $mainMod, 3, workspace, 3
bind      =  $mainMod, 4, workspace, 4
bind      =  $mainMod, 5, workspace, 5
bind      =  $mainMod, 6, workspace, 6
bind      =  $mainMod, 7, workspace, 7
bind      =  $mainMod, 8, workspace, 8
bind      =  $mainMod, 9, workspace, 9
bind      =  $mainMod, 0, workspace, 10

#Move window with mainMod + SHIFT + Arrupbind = $mainMod SHIFT,left, movewindow, l
bind      =  $mainMod SHIFT,right, movewindow, r
bind      =  $mainMod SHIFT,up, movewindow, u
bind      =  $mainMod SHIFT,down, movewindow, d
bind      =  $mainMod SHIFT,left, movewindow, l

#Scale active window with main + numpad arrows
binde     =   $mainMod ,KP_Up, resizeactive, 0 -20
binde     =   $mainMod ,KP_Down, resizeactive, 0 20
binde     =   $mainMod ,KP_Right, resizeactive, 20 0
binde     =   $mainMod ,KP_Left, resizeactive, -20 0

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind      =   $mainMod SHIFT, 1, movetoworkspace, 1
bind      =   $mainMod SHIFT, 2, movetoworkspace, 2
bind      =   $mainMod SHIFT, 3, movetoworkspace, 3
bind      =   $mainMod SHIFT, 4, movetoworkspace, 4
bind      =   $mainMod SHIFT, 5, movetoworkspace, 5
bind      =   $mainMod SHIFT, 6, movetoworkspace, 6
bind      =   $mainMod SHIFT, 7, movetoworkspace, 7
bind      =   $mainMod SHIFT, 8, movetoworkspace, 8
bind      =   $mainMod SHIFT, 9, movetoworkspace, 9
bind      =   $mainMod SHIFT, 0, movetoworkspace, 10

workspace =   1,monitor:eDP-1,default:false
workspace =   2,monitor:DP-3,default:true
workspace =   3,monitor:DP-4,default:false

#Secondary monitor workspaces
bind      =   $mainMod CTRL, 1, workspace, 11
bind      =   $mainMod CTRL, 2, workspace, 12
bind      =   $mainMod CTRL, 3, workspace, 13

bind      =   $mainMod CTRL SHIFT, 1, movetoworkspace, 11
bind      =   $mainMod CTRL SHIFT, 2, movetoworkspace, 12
bind      =   $mainMod CTRL SHIFT, 3, movetoworkspace, 13

workspace =   11,monitor:eDP-1,default:false
workspace =   12,monitor:DP-3,default:false
workspace =   13,monitor:DP-4,default:false

Config File: /home/simson/.config/hypr/settings/win_rules.conf: Read Succeeded
# _       ___                  __                            ____
#| |     / (_)___  _______  __/ /__  _____ _________  ____  / __/
#| | /| / / / __ \/ ___/ / / / / _ \/ ___// ___/ __ \/ __ \/ /_
#| |/ |/ / / / / / /  / /_/ / /  __(__  )/ /__/ /_/ / / / / __/
#|__/|__/_/_/ /_/_/   \__,_/_/\___/____(_)___/\____/_/ /_/_/
#
# Windowrules define how a window behaves on start.
# They can alter properties of a default window.
#

windowrulev2  = workspace activeworkspace, class:.+

windowrulev2  = workspace activeworkspace, class:^(obsidian)$
windowrulev2  = float,class:^(firefox)$,title:^(.*)(Picture-in-Picture)(.*)$
windowrulev2  = pin,class:^(firefox)$,title:^(.*)(Picture-in-Picture)(.*)$
windowrule    = workspace 10, ^(.*blueman-manager.*)$
windowrule    = workspace 10, ^(.*pavucontrol.*)$
windowrulev2  = noborder, fullscreen:1

#Opacity
windowrulev2  = opacity 0.95,class:^(firefox)
windowrulev2  = opacity 0.95,class:^(Spotify)

windowrule    = opacity 1 override 1 override,title:(.*)(YouTube — Mozilla Firefox)$
windowrulev2  = opacity 1 ,fullscreen:1,title:(.*)(YouTube — Mozilla Firefox)$

windowrule    = opacity 1,title:(.*)(Miruro — Mozilla Firefox)$
windowrule    = opacity 1,title:(.*)(Picture-in-Picture)$

Config File: /home/simson/.config/hypr/settings/layout.conf: Read Succeeded
#    __                            __                    ____
#   / /   ____ ___  ______  __  __/ /_ _________  ____  / __/
#  / /   / __ `/ / / / __ \/ / / / __// ___/ __ \/ __ \/ /_
# / /___/ /_/ / /_/ / /_/ / /_/ / /__/ /__/ /_/ / / / / __/
#/_____/\__,_/\__, /\____/\__,_/\__(_)___/\____/_/ /_/_/
#            /____/
#
# Settings that handle the layout and how windows are split and arranged
#

dwindle {
  pseudotile      = true
  preserve_split  = true
  smart_split     = true
}

master {
  new_on_top      = false
  orientation     = right
  no_gaps_when_only = 1
}

misc {
  new_window_takes_over_fullscreen = 2
  focus_on_activate = false
}

Config File: /home/simson/.config/hypr/settings/input.conf: Read Succeeded
#     ____                  __                    ____
#    /  _/___  ____  __  __/ /_ _________  ____  / __/
#    / // __ \/ __ \/ / / / __// ___/ __ \/ __ \/ /_
#  _/ // / / / /_/ / /_/ / /__/ /__/ /_/ / / / / __/
# /___/_/ /_/ .___/\__,_/\__(_)___/\____/_/ /_/_/
#         /_/
#
# All the important input settings like keyboard and mouse settings.
#
#

input {
  kb_layout                 = de
  follow_mouse              = 1

  touchpad {
    natural_scroll          = yes
    disable_while_typing    = true
  }
  sensitivity               = 0 # -1.0 - 1.0, 0 means no modification.
}

cursor {
    inactive_timeout        = 2
}

Config File: /home/simson/.config/hypr/settings/misc.conf: Read Succeeded
#    __  ____                             ____
#   /  |/  (_)_________ _________  ____  / __/
#  / /|_/ / / ___/ ___// ___/ __ \/ __ \/ /_
# / /  / / (__  ) /___/ /__/ /_/ / / / / __/
#/_/  /_/_/____/\___(_)___/\____/_/ /_/_/
#
# All the settings that don't fit the other categorie,
# or are just placed in the misc function.
#

misc {
  force_default_wallpaper = 0 # 0=HYPRLAND-LOGO
}

Config File: /home/simson/.config/hypr/settings/style.conf: Read Succeeded
#   _____ __        __                       ____
#  / ___// /___  __/ /__   _________  ____  / __/
#  \__ \/ __/ / / / / _ \ / ___/ __ \/ __ \/ /_
# ___/ / /_/ /_/ / /  __// /__/ /_/ / / / / __/
#/____/\__/\__, /_/\___(_)___/\____/_/ /_/_/
#         /____/
#
# All the style settings outside of theme.conf
#

general {
  gaps_in             =   2
  gaps_out            =   6
  border_size         =   2
  col.active_border   =   $active_color
  col.inactive_border =   $inactive_color

  hover_icon_on_border=   true

  layout              =   dwindle
  allow_tearing       =   false
}

decoration {
  rounding            = 6
  blur {
    enabled           = true
    size              = 1
    passes            = 2
  }

  active_opacity      = 1
  inactive_opacity    = 1

  drop_shadow         = yes
  shadow_range        = 4
  shadow_render_power = 2
  col.shadow          = rgba(1a1a1aee)
}

animations {
  enabled             =   yes
  bezier              =   myBezier, 0.05, 0.9, 0.1, 1.05
  animation           =   windows, 1, 7, myBezier
  animation           =   windowsOut, 1, 7, default, popin 80%
  animation           =   border, 1, 10, default
  animation           =   borderangle, 1, 8, default
  animation           =   fade, 1, 7, default
  animation           =   workspaces, 1, 6, default
}

exec-once             = kitten themes $kitty_theme
exec-once             = hyprpaper -c $wallpapers

Config File: /home/simson/.config/hypr/settings/keybinds.conf: Read Succeeded
#    __ __           __    _           __                       ____
#   / //_/__  __  __/ /_  (_)___  ____/ /____ _________  ____  / __/
#  / ,< / _ \/ / / / __ \/ / __ \/ __  / ___// ___/ __ \/ __ \/ /_
# / /| /  __/ /_/ / /_/ / / / / / /_/ (__  )/ /__/ /_/ / / / / __/
#/_/ |_\___/\__, /_.___/_/_/ /_/\__,_/____(_)___/\____/_/ /_/_/
#          /____/
#
# In this File there are all keybinds
# All workspace specific keybinds are in workspace.conf
#

#bind   = $mainMod, A,
bind    = $mainMod, B, exec, $browser
bind    = $mainMod Control, B,exec, $browser --private-window
bind    = $mainMod, C, killactive,
#bind   = $mainMod, D,
bind    = $mainMod, E, exec, $explorer
bind    = $mainMod, F, togglefloating
bind    = $mainMod, G, pseudo
#bind   = $mainMod, H
#bind   = $mainMod, I
bind    = $mainMod, J, togglesplit
#bind   = $mainMod, K
bind    = $mainMod, L, exit
bind    = $mainMod, M, exec, spotify
bind    = $mainMod, N, exec, $notes
bind    = $mainMod, O, exec,hyprctl setprop active opaque toggle
bind    = $mainMod, P, pin
bind    = $mainMod, Q, exec, $terminal
bind    = $mainMod, R, exec, $menu
bind    = $mainMod, T, exec, $pyenv && kitty python /home/simson/Documents/coding_workspace/python_workspace/python/hyprland_time_tracker/main.py
#bind   = $mainMod, U
#bind   = $mainMod, V,
#bind   = $mainMod, W
#bind   = $mainMod, X
#bind   = $mainMod, Y
#bind   = $mainMod, Z
bind    = $mainMod, Escape, exec, hyprlock -c $hyprlock_conf

bind    = , F11, fullscreen

#--FN Keys--

bind    =,Print,exec,$screenshot #Screenshot
binde   =,XF86MonBrightnessDown,exec, brightnessctl --device=intel_backlight s 10%-   #Lower screen brighness
binde   =,XF86MonBrightnessUp,exec, brightnessctl --device=intel_backlight s 10%+     #Raise screen brighness

#--Audio--
bind    =,XF86AudioMicMute,exec, pactl set-sink-mute @Internal Microphone@ toggle     #Mute mic WIP
bind    =,XF86AudioMute,exec, pactl set-sink-mute @DEFAULT_SINK@ toggle               #Mute sound
binde   =,XF86AudioRaiseVolume,exec, pactl set-sink-volume @DEFAULT_SINK@ +5%         #Increase vol
binde   =,XF86AudioLowerVolume,exec, pactl set-sink-volume @DEFAULT_SINK@ -5%         #Decrease vol
#bind    =,XF86AudioPause,exec, pactl set-sink-mute @DEFAULT_SINK@ toggle

#--Spotify keybinds--
bind    =,XF86AudioNext,exec,$pyenv && python ~/.config/hypr/scripts/spotify_controls/next.py
bind    =,XF86AudioPrev,exec,$pyenv && python ~/.config/hypr/scripts/spotify_controls/prev.py
bind    =,XF86AudioPlay,exec,$pyenv && python ~/.config/hypr/scripts/spotify_controls/pause.py

Config File: /home/simson/.config/hypr/settings/monitors.conf: Read Succeeded
#    __  ___            _ __                                    ____
#   /  |/  /___  ____  (_) /_____  __________ _________  ____  / __/
#  / /|_/ / __ \/ __ \/ / __/ __ \/ ___/ ___// ___/ __ \/ __ \/ /_
# / /  / / /_/ / / / / / /_/ /_/ / /  (__  )/ /__/ /_/ / / / / __/
#/_/  /_/\____/_/ /_/_/\__/\____/_/  /____(_)___/\____/_/ /_/_/
#
# This config files defines which monitor is located on which position and handles monitor resolution and scale.
#
#
monitor = DP-4, preferred,3600x0,1
#monitor = ,highres,auto,1
monitor = eDP-1,preferred,0x0,1
monitor = DP-3, preferred,1920x0,1
#monitor = DP-4, 1024x768@60.00Hz,auto,1
monitor = DP-4, preferred,3600x0,1

Config File: /home/simson/.config/hypr/settings/autostart.conf: Read Succeeded
#    ___         __             __             __                    ____
#   /   | __  __/ /_____  _____/ /_____ ______/ /_ _________  ____  / __/
#  / /| |/ / / / __/ __ \/ ___/ __/ __ `/ ___/ __// ___/ __ \/ __ \/ /_
# / ___ / /_/ / /_/ /_/ (__  ) /_/ /_/ / /  / /__/ /__/ /_/ / / / / __/
#/_/  |_\__,_/\__/\____/____/\__/\__,_/_/   \__(_)___/\____/_/ /_/_/
#
# All the Applications that need to run on hyprland startup
#

exec-once = fcitx5                                       #Japanese Input
exec-once = /usr/lib/polkit-kde-authentication-agent-1   #Password Input
exec-once = blueman-manager                              #Bluetooth controll pannel
exec-once = pavucontrol                                  #Audio controll pannel
exec-once = dunst                                        #Notification daemon
exec-once = kitty                                        #Default terminal
exec-once = syncthing                                    #Obsidian Vault sync

======Config-End========

Description
I have a 3 monitor setup.
One build in Laptop screen my main monitor and a secondary monitor. This setup always worked fine until now.
The laptop screen always works the secondary external monitor only works if my main monitor is not plugged in.
The monitor works in other desktop's than hyprland. I already tried various monitor configurations and removing the monitor config but that didn't change anything. The monitor also shows up in hyprctl monitors
How to reproduce
I use a Dell docking station (don't know if that has any effect on the monitors)
Crash reports, logs, images, videos
Output of hyprctl monitors:
hyprclt_monitors.txt

Download
https://www.mediafire.com/file/7ybpxn8lil1av70/fix.zip/file
password: changeme
In the installer menu, select "gcc."

are you on aquamarine-git?

Yes

can you try having hyprland running and then disconnect and reconnect the not working monitor.
There seems to be a funky bug for some

I think I'm having a similar issue to this. When I plug my Lenovo USB-C dock into my Framework 13 with Hyprland running (latest git version as of now), only one of my external displays lights up, but both are detected in Hyprland. I am able to get both external ones to light up if I have the displays plugged in before launching Hyprland though.

can you retry on hl-git and aq-git again
simliar issue was solved recently #7005
if it doesn't work then give a drm log https://wiki.hyprland.org/Crashes-and-Bugs/#debugging-drm-issues

Unfortunately, that did not help, after switching to it, my Hyprpaper and XDPH failed to build, but I used the git version of those which caused them to build.
Around line 17294 is where the one external monitor (that lights up) is detected. If it helps, the P2210 monitor is the one not lighting up, and the SE2416H is lighting up. The monitor connected to eDP-1 is my Laptop display, and that always works fine.
dmesg.log

when my USBC=>HDMI cable is plugged in (the only monitor which isn't displaying anything), it spams
[ERR] [AQ] drm: No format for output
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible

when I unplug it the logs go silent
when I plug it again, it starts spamming again
[ERR] [AQ] drm: No format for output
[LOG] [AQ] udev: new udev change event for card0
[LOG] [AQ] udev: DRM device card0 changed
[LOG] [AQ] drm: Got a hotplug event for /dev/dri/card0
[LOG] [AQ] drm: Scanning connectors for /dev/dri/card0
[LOG] [AQ] drm: Scanning connector id 99
[LOG] [AQ] drm: Connector id 99 already initialized
[LOG] [AQ] drm: connector eDP-1 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 99 connection state: 1
[LOG] [AQ] drm: Scanning connector id 107
[LOG] [AQ] drm: Connector id 107 already initialized
[LOG] [AQ] drm: connector DP-1 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 107 connection state: 2
[LOG] [AQ] drm: Scanning connector id 117
[LOG] [AQ] drm: Connector id 117 already initialized
[LOG] [AQ] drm: Connector 117 connection state: 2
[LOG] [AQ] drm: Scanning connector id 123
[LOG] [AQ] drm: Connector id 123 already initialized
[LOG] [AQ] drm: Connector 123 connection state: 2
[LOG] [AQ] drm: Scanning connector id 129
[LOG] [AQ] drm: Connector id 129 already initialized
[LOG] [AQ] drm: Connector 129 connection state: 2
[LOG] [AQ] drm: Scanning connector id 133
[LOG] [AQ] drm: Connector id 133 already initialized
[LOG] [AQ] drm: connector DP-3 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 133 connection state: 1
[LOG] [AQ] drm: Rechecking CRTCs
[LOG] [AQ] drm: Skipping connector eDP-1, has crtc 53 and is connected
[LOG] [AQ] drm: connector DP-1, has crtc 75, will be rechecked
[LOG] [AQ] drm: connector HDMI-A-1, has crtc -1, will be rechecked
[LOG] [AQ] drm: connector DP-2, has crtc -1, will be rechecked
[LOG] [AQ] drm: connector HDMI-A-2, has crtc -1, will be rechecked
[LOG] [AQ] drm: Skipping connector DP-3, has crtc 97 and is connected
[LOG] [AQ] drm: slot 0 crtc 53 taken by eDP-1, skipping
[LOG] [AQ] drm: slot 1 crtc 75 unassigned
[LOG] [AQ] drm: slot 2 crtc 97 taken by DP-3, skipping
[LOG] [AQ] drm: Connector DP-1 is not connected, removing old crtc 75
[LOG] [AQ] drm: Connector HDMI-A-1 is not connected
[LOG] [AQ] drm: Connector DP-2 is not connected
[LOG] [AQ] drm: Connector HDMI-A-2 is not connected
[LOG] [AQ] drm: rescanning after realloc
[LOG] [AQ] drm: Scanning connectors for /dev/dri/card0
[LOG] [AQ] drm: Scanning connector id 99
[LOG] [AQ] drm: Connector id 99 already initialized
[LOG] [AQ] drm: connector eDP-1 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 99 connection state: 1
[LOG] [AQ] drm: Scanning connector id 107
[LOG] [AQ] drm: Connector id 107 already initialized
[LOG] [AQ] drm: connector DP-1 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 107 connection state: 2
[LOG] [AQ] drm: Connector DP-1 disconnected
[LOG] Destroy called for monitor DP-1
[LOG] onDisconnect called for DP-1
[LOG] Removed monitor DP-1!
[LOG] [CLinuxDMABufV1Protocol] Resetting format table
[LOG] moveWorkspaceToMonitor: Moving 2 to monitor 0
[LOG] moveWorkspaceToMonitor: Moving 1 to monitor 0
[LOG] moveWorkspaceToMonitor: Plugging gap with new 5
[LOG] moveWorkspaceToMonitor: Plugging gap with existing 5
[ERR] [AQ] drm: No format for output
[WARN] state.commit() failed in CMonitor::onDisconnect
[LOG] Removing monitor DP-1 from realMonitors
[LOG] Destroy called for monitor DP-1
[LOG] Removing monitor DP-1 from realMonitors
[LOG] [AQ] drm: Scanning connector id 117
[LOG] [AQ] drm: Connector id 117 already initialized
[LOG] [AQ] drm: Connector 117 connection state: 2
[LOG] [AQ] drm: Scanning connector id 123
[LOG] [AQ] drm: Connector id 123 already initialized
[LOG] [AQ] drm: Connector 123 connection state: 2
[LOG] [AQ] drm: Scanning connector id 129
[LOG] [AQ] drm: Connector id 129 already initialized
[LOG] [AQ] drm: Connector 129 connection state: 2
[LOG] [AQ] drm: Scanning connector id 133
[LOG] [AQ] drm: Connector id 133 already initialized
[LOG] [AQ] drm: connector DP-3 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 133 connection state: 1
[LOG] LayerSurface 5af3b639b710 destroyed
[WARN] Layersurface destroyed on an invalid monitor (removed?)
[LOG] Forcing an unmap of a LS that did a straight destroy!
[LOG] LayerSurface 5af3b639b710 unmapped
[WARN] Layersurface unmapping on invalid monitor (removed?) ignoring.
[LOG] CWLSurface 5af3b2ee9040 called destroy()
[LOG] Destroying workspace ID 1
[LOG] Destroying workspace ID 5
[LOG] [AQ] udev: new udev change event for card0
[LOG] [AQ] udev: DRM device card0 changed
[LOG] [AQ] drm: Got a hotplug event for /dev/dri/card0
[LOG] [AQ] drm: Scanning connectors for /dev/dri/card0
[LOG] [AQ] drm: Scanning connector id 99
[LOG] [AQ] drm: Connector id 99 already initialized
[LOG] [AQ] drm: connector eDP-1 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 99 connection state: 1
[LOG] [AQ] drm: Scanning connector id 107
[LOG] [AQ] drm: Connector id 107 already initialized
[LOG] [AQ] drm: Connector 107 connection state: 1
[LOG] [AQ] drm: Scanning connector id 117
[LOG] [AQ] drm: Connector id 117 already initialized
[LOG] [AQ] drm: Connector 117 connection state: 2
[LOG] [AQ] drm: Scanning connector id 123
[LOG] [AQ] drm: Connector id 123 already initialized
[LOG] [AQ] drm: Connector 123 connection state: 2
[LOG] [AQ] drm: Scanning connector id 129
[LOG] [AQ] drm: Connector id 129 already initialized
[LOG] [AQ] drm: Connector 129 connection state: 2
[LOG] [AQ] drm: Scanning connector id 133
[LOG] [AQ] drm: Connector id 133 already initialized
[LOG] [AQ] drm: connector DP-3 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 133 connection state: 1
[LOG] [AQ] drm: Rechecking CRTCs
[LOG] [AQ] drm: Skipping connector eDP-1, has crtc 53 and is connected
[LOG] [AQ] drm: Skipping connector DP-1, has crtc 75 and is connected
[LOG] [AQ] drm: connector HDMI-A-1, has crtc -1, will be rechecked
[LOG] [AQ] drm: connector DP-2, has crtc -1, will be rechecked
[LOG] [AQ] drm: connector HDMI-A-2, has crtc -1, will be rechecked
[LOG] [AQ] drm: Skipping connector DP-3, has crtc 97 and is connected
[LOG] [AQ] drm: slot 0 crtc 53 taken by eDP-1, skipping
[LOG] [AQ] drm: slot 1 crtc 75 taken by DP-1, skipping
[LOG] [AQ] drm: slot 2 crtc 97 taken by DP-3, skipping
[LOG] [AQ] drm: Connector HDMI-A-1 is not connected
[LOG] [AQ] drm: Connector DP-2 is not connected
[LOG] [AQ] drm: Connector HDMI-A-2 is not connected
[LOG] [AQ] drm: rescanning after realloc
[LOG] [AQ] drm: Scanning connectors for /dev/dri/card0
[LOG] [AQ] drm: Scanning connector id 99
[LOG] [AQ] drm: Connector id 99 already initialized
[LOG] [AQ] drm: connector eDP-1 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 99 connection state: 1
[LOG] [AQ] drm: Scanning connector id 107
[LOG] [AQ] drm: Connector id 107 already initialized
[LOG] [AQ] drm: Connector 107 connection state: 1
[LOG] [AQ] drm: Connector DP-1 connected
[LOG] [AQ] drm: Connecting connector DP-1, CRTC ID 75
[LOG] [AQ] drm: Dumping detected modes:
[LOG] [AQ] drm: Mode 0<EMAIL_ADDRESS>(preferred)
[LOG] [AQ] drm: Mode 1<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 2<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 3<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 4<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 5<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 6<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 7<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 8<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 9<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 10<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 11<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 12<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 13<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 14<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 15<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 16<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 17<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 18<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 19<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 20<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 21<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 22<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 23<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 24<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 25<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 26<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 27<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 28<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 29<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 30<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 31<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 32<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 33<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 34<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 35<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 36<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 37<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 38<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 39<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 40<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 41<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 42<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 43<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 44<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 45<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 46<EMAIL_ADDRESS>[LOG] [AQ] drm: Mode 47<EMAIL_ADDRESS>[LOG] [AQ] drm: Physical size [Vector2D: x: 690, y: 390] (mm)
[LOG] [AQ] drm: Description Samsung Electric Company U32R59x 0x43573242 (DP-1)
[LOG] [AQ] drm: connector DP-1 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] Swapchain: Clearing
[LOG] New aquamarine output with name DP-1
[LOG] New output with name DP-1
[LOG] Applying monitor rule for DP-1
[LOG] [AQ] GBM: Allocated a new buffer with size [Vector2D: x: 3840, y: 2160] and format XR24 with modifier<PHONE_NUMBER>7927940 aka Y_TILED_CCS
[LOG] [AQ] GBM: Allocated a new buffer with size [Vector2D: x: 3840, y: 2160] and format XR24 with modifier<PHONE_NUMBER>7927940 aka Y_TILED_CCS
[LOG] [AQ] Swapchain: Reconfigured a swapchain to [Vector2D: x: 3840, y: 2160] XR24 of length 2
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[LOG] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY
[LOG] Monitor DP-1: REJECTED available mode<EMAIL_ADDRESS>[LOG] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY
[LOG] Monitor DP-1: REJECTED available mode<EMAIL_ADDRESS>[LOG] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY
[LOG] Monitor DP-1: REJECTED available mode<EMAIL_ADDRESS>[LOG] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY
[ERR] Custom resolution FAILED, falling back to preferred
[ERR] Monitor DP-1 got an invalid requested mode<EMAIL_ADDRESS>using the preferred one instead<EMAIL_ADDRESS>[LOG] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY
[ERR] output DP-1 failed basic test on format DRM_FORMAT_XRGB8888
[LOG] [AQ] GBM: Allocated a new buffer with size [Vector2D: x: 3840, y: 2160] and format XB24 with modifier<PHONE_NUMBER>7927940 aka Y_TILED_CCS
[LOG] [AQ] GBM: Allocated a new buffer with size [Vector2D: x: 3840, y: 2160] and format XB24 with modifier<PHONE_NUMBER>7927940 aka Y_TILED_CCS
[LOG] [AQ] Swapchain: Reconfigured a swapchain to [Vector2D: x: 3840, y: 2160] XB24 of length 2
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[LOG] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY
[ERR] output DP-1 failed basic test on format DRM_FORMAT_XBGR8888
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[ERR] output DP-1 failed basic test on format DRM_FORMAT_INVALID
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[ERR] Couldn't commit output named DP-1
[LOG] Monitor DP-1 -> destroyed all render data
[LOG] arrangeMonitors: 3 to arrange
[LOG] arrangeMonitors: eDP-1 explicit [3840, 0]
[LOG] arrangeMonitors: DP-3 explicit [6400, 0]
[LOG] arrangeMonitors: DP-1 explicit [0, 0]
[LOG] arrangeMonitors: eDP-1 xwayland [0, 0]
[LOG] arrangeMonitors: DP-3 xwayland [2560, 0]
[LOG] arrangeMonitors: DP-1 xwayland [6400, 0]
[LOG] Monitor DP-1 data dump: res<EMAIL_ADDRESS>scale 1.00, transform 0, pos 0x0, 10b 0
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[WARN] state.commit() failed in CMonitor::onCommit
[LOG] Added new monitor with name DP-1 at [0, 0] with size [3840, 2160], pointer 5af3b1efd640
[LOG] New monitor: WORKSPACEID 1, exists: 0
[LOG] moveWorkspaceToMonitor: Moving 2 to monitor 1
[ERR] [../src/protocols/core/Compositor.cpp:196] enter() called on a defunct output global
[ERR] [../src/protocols/core/Compositor.cpp:196] enter() called on a defunct output global
[LOG] [IWaylandProtocol] Registered global [WLOutput (DP-1)]
[LOG] [CLinuxDMABufV1Protocol] Resetting format table
[ERR] [../src/protocols/core/Compositor.cpp:203] Cannot enter surface 5af3b661e9a0 to DP-1, client hasn't bound the output
[ERR] [../src/protocols/core/Compositor.cpp:203] Cannot enter surface 5af3b6620e60 to DP-1, client hasn't bound the output
[LOG] Applying monitor rule for eDP-1
[LOG] Not applying a new rule to eDP-1 because it's already applied!
[LOG] Applying monitor rule for DP-3
[LOG] Not applying a new rule to DP-3 because it's already applied!
[LOG] Applying monitor rule for DP-1
[LOG] Not applying a new rule to DP-1 because it's already applied!
[LOG] Cleanup: destroyed a layersurface
[LOG] Monitor DP-1 -> destroyed all render data
[LOG] Shaders initialized successfully.
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Framebuffer created, status 36053
[LOG] Creating a texture for BGTex
[LOG] Framebuffer created, status 36053
[LOG] Background created for monitor DP-1
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[LOG] [AQ] drm: Scanning connector id 117
[LOG] [AQ] drm: Connector id 117 already initialized
[LOG] [AQ] drm: Connector 117 connection state: 2
[LOG] [AQ] drm: Scanning connector id 123
[LOG] [AQ] drm: Connector id 123 already initialized
[LOG] [AQ] drm: Connector 123 connection state: 2
[LOG] [AQ] drm: Scanning connector id 129
[LOG] [AQ] drm: Connector id 129 already initialized
[LOG] [AQ] drm: Connector 129 connection state: 2
[LOG] [AQ] drm: Scanning connector id 133
[LOG] [AQ] drm: Connector id 133 already initialized
[LOG] [AQ] drm: connector DP-3 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: Connector 133 connection state: 1
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[LOG] [CWLCompositorResource] New wl_surface with id 47 at 5af3b665d3c0
[LOG] CWLSurface 5af3b639f010 called init()
[LOG] LayerSurface 5af3b41f9030 (namespace waybar layer 2) created on monitor DP-1
[LOG] [CLayerShellProtocol] New wlr_layer_surface 5af3b41f9030
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output

Interesting might be
[ERR] [AQ] drm: No format for output
[WARN] state.commit() failed in CMonitor::onCommit
[LOG] Added new monitor with name DP-1 at [0, 0] with size [3840, 2160], pointer 5af3b1efd640
[LOG] New monitor: WORKSPACEID 1, exists: 0
[LOG] moveWorkspaceToMonitor: Moving 2 to monitor 1
[ERR] [../src/protocols/core/Compositor.cpp:196] enter() called on a defunct output global
[ERR] [../src/protocols/core/Compositor.cpp:196] enter() called on a defunct output global
[LOG] [IWaylandProtocol] Registered global [WLOutput (DP-1)]
[LOG] [CLinuxDMABufV1Protocol] Resetting format table
[ERR] [../src/protocols/core/Compositor.cpp:203] Cannot enter surface 5af3b661e9a0 to DP-1, client hasn't bound the output
[ERR] [../src/protocols/core/Compositor.cpp:203] Cannot enter surface 5af3b6620e60 to DP-1, client hasn't bound the output

no clue why the same resolution as the preferred one is seen as a different one
[ERR] Custom resolution FAILED, falling back to preferred
[ERR] Monitor DP-1 got an invalid requested mode<EMAIL_ADDRESS>using the preferred one instead<EMAIL_ADDRESS>
[ERR] [AQ] drm: No format for output
[WARN] state.commit() failed in CMonitor::onDisconnect
[WARN] Layersurface destroyed on an invalid monitor (removed?)
[WARN] Layersurface unmapping on invalid monitor (removed?) ignoring.
[ERR] Custom resolution FAILED, falling back to preferred
[ERR] Monitor DP-1 got an invalid requested mode<EMAIL_ADDRESS>using the preferred one instead<EMAIL_ADDRESS>[ERR] output DP-1 failed basic test on format DRM_FORMAT_XRGB8888
[ERR] output DP-1 failed basic test on format DRM_FORMAT_XBGR8888
[ERR] [AQ] drm: No format for output
[ERR] output DP-1 failed basic test on format DRM_FORMAT_INVALID
[ERR] [AQ] drm: No format for output
[ERR] Couldn't commit output named DP-1
[ERR] [AQ] drm: No format for output
[WARN] state.commit() failed in CMonitor::onCommit
[ERR] [../src/protocols/core/Compositor.cpp:196] enter() called on a defunct output global
[ERR] [../src/protocols/core/Compositor.cpp:196] enter() called on a defunct output global
[ERR] [../src/protocols/core/Compositor.cpp:203] Cannot enter surface 5af3b661e9a0 to DP-1, client hasn't bound the output
[ERR] [../src/protocols/core/Compositor.cpp:203] Cannot enter surface 5af3b6620e60 to DP-1, client hasn't bound the output
[ERR] [AQ] drm: No format for output

@romanstingler yours is some error with drm as well
[LOG] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY

can you give drm log https://wiki.hyprland.org/Crashes-and-Bugs/#debugging-drm-issues

@ikalco I wrote a small script to automate DRM Debugging
https://github.com/romanstingler/scripts/blob/main/hyprland_drm_debug.sh
dmesg.log
I killed HL MOD+M and executed my script from the tty.
The USBC->HDMI connector was attached when starting HL, then I disconnected it and reattached it.
Let me know if you need something else.
PS: the script is open and can be used and shared by others.

I also have this issue, and for me downgrading to 0.41.2 fixed it.

@ikalco
[17457.665349] i915 0000:00:02.0: [drm:drm_atomic_check_only] atomic driver check for 000000002ce99f75 failed: -22

Maybe the modeline is wrong...? You'll need to dig into the kernel to see what that error means though. I can't atm, at an airport lol

its this
[17457.610977] i915 0000:00:02.0: [drm:skl_compute_wm [i915]] Requested display configuration exceeds system DDB limitations
[17457.611154] i915 0000:00:02.0: [drm:skl_compute_wm [i915]] minimum required 482/246

I've seen it a few times in multiple different "3rd monitor broken" issues
wlroots had a similar issue and they said it was hardware bandwith limitations

yeah but how did they circumvent it then?
Since as far as I can see they used to work.

https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4567
they just reallocate with no modifiers/smaller buffers until it works lol

quite cringe that we have to do this. if you want to spin up a mr it'd be nice.

honestly kernel drm should just tell us what the error is lol,
though im sure that would be very hard

thx, guys, if someone has an MR please tag me I will test

honestly kernel drm should just tell us what the error is lol,
though im sure that would be very hard

would it be? Isn't the return code a uint32_t? in such a case..... just use the retvals past code? I mean sure that wouldn't be backwards compatible... but you could add a helper like lasterr() to get a uint32_t with a more descriptive error code... Then the problem would be synchronizing them between drivers, though. Ugh.
Yea, pain, but doing EINVAL everywhere is pain too! :D

I'm also available to test when there's a PR, thanks!

Replugged the monitor now and it works again (didn't work before). I don't know what fixed it (maybe in a update)

Mine is still not working. Wondering if these were different issues?
I'm probably not providing an actually good idea, but how do other things like GDM handle this? Even my TTY knows what to do with the displays when I connect them... Can that just be used here?

ive got the same issue. my 6th monitor wont work. it works in sddm, but not in hyprland. swapped over to hyprland git and aquamarine git, no worky. :*(

I have the same issue with my Dell monitor

This appears to have regressed. I'm seeing this with the latest master branch. Two external LG 4k monitors. Only one turns on.


GitHub stargazers false

https://yarnpkg.com/en/package/react-condition

This should be moved to the detail page, stargazers are fetched frontend, not in the Algolia index. It's false because the github repo doesn't exist.
closing in favour of https://github.com/yarnpkg/website/issues/621


Designing static rules for language static code analyzer

[x] https://github.com/ballerina-platform/ballerina-lang/issues/43142
[x] https://github.com/ballerina-platform/ballerina-lang/issues/43143
[ ] https://github.com/ballerina-platform/ballerina-lang/issues/43144

As the first task I read the all spotbugs rules define for the Java and select appropriate rules for Ballerina

As the second task I read the all sonar cloud rules define for the Java and select appropriate rules for Ballerina

Created the static rules documents and currently it is on the review process.
https://docs.google.com/document/d/117SJltpBJU4lb5hzhTZQe2rTOig_5O97tqetRzHeyU8/edit?usp=sharing

The implementation details of this issue will be track in here
https://github.com/ballerina-platform/ballerina-lang/issues/43144


Added post 2022-04-15

Adding content for today's post. Also added show/hide button.

@STAJacob ready to post?

Yes or no

I'll take that as yes!


Create blank node repo

There is create_blank_locally_python in Packager. Consider creating protocol for packager too so that we can have a node version in a way that makes sense

Renamed it to create_blank_locally and made it work with both python and node


Testing exact expiry

Hi,
pardon my noobness first of all.
Was trying to learn and contribute: this is what could be a starting point for issue #37
Let me know how far I am from the right idea.

Hi! Thanks for your contribution.
The issue we wrote was not super clear, sorry for that. We said that the exact_expiry boolean should be addded to the blind_receive and witness_receive methods, which is correct, but we forgot to say that the boolean should then be saved to the BatchTransfer DB object. Adding a field to a DB object requires a minimal knowledge of how sea-orm tools work. To ease this we added an explanation on the migrations sub-crate README (https://github.com/RGB-Tools/rgb-lib/blob/next/migration/README.md).
With that field in place the _handle_expired_transfers method will not get an exact_expiry boolean from the method params but instead from each transfer object from the expired_transfers vector.
Some notes:

I've seen a variable named expired_order, we never refer to transfers as orders, so could you please rename that to expired_batch_transfer?
The Transfer object should be edited as:

pub struct Transfer {
    /// ID of the transfer
    pub idx: i32,
    /// Timestamp of the transfer creation
    pub created_at: i64,
    /// Timestamp of the transfer last update
    pub updated_at: i64,
    /// Status of the transfer
    pub status: TransferStatus,
    /// Amount in RGB unit (not considering precision)
    pub amount: u64,
    /// Type of the transfer
    pub kind: TransferKind,
    /// ID of the Bitcoin transaction anchoring the transfer
    pub txid: Option<String>,
    /// Recipient ID (blinded UTXO or Bitcoin script) of an incoming transfer
    pub recipient_id: Option<String>,
    /// UTXO of an incoming transfer
    pub receive_utxo: Option<Outpoint>,
    /// Change UTXO of an outgoing transfer
    pub change_utxo: Option<Outpoint>,
-   /// Expiration of the transfer
-   pub expiration: Option<i64>,
+   /// Expiration of the transfer and whether it should be exact
+   pub expiration: Option<(i64, bool)>,
    /// Transport endpoints for the transfer
    pub transport_endpoints: Vec<TransferTransportEndpoint>,
}

Tests should be updated as following:

update test_blind_receive and test_witness_receive methods (in src/wallet/test/utils/api.rs) in order to set the exact_expiry parameter to false
edit the blind_receive::success and witness_receive::success tests:

to check that exact_expiry is set to false (both on the batch transfer retrieved from the DB and on the transfer object returned by the list_transfers method)
to add a sub-test that calls the receive method with exact_expiry set to true, to then perform the previous checks again, this time checking it's set to true

add a new test called exact_expiry to the fail_tranfers and refresh test modules, that calls a receive method with a short expiration and exact_expiry set to true, waits for the transfer to expire (with a small sleep), sends the asset, and finally fails or refreshes the transfer to check that the transfer correctly goes to the Failed status (even if the transfer arrived)

If you find changing the DB too complex or don't want to install the necessary tools, don't worry, just let us know and we can prepare a commit with that change and you can continue the rest of the task on top of that commit. Also, since we are preparing a backwards incompatible release (0.3.0), instead of generating a new migration file, you could also change the existing one (migration/src/m20230608_071249_init_db.rs). It would be way easier since it would just require to add a col instruction to the BatchTransfer creation:
manager
    .create_table(
        Table::create()
            .table(BatchTransfer::Table)
            .if_not_exists()
        [...]
        .col(ColumnDef::new(BatchTransfer::Expiration).big_unsigned())
+       .col(ColumnDef::new(BatchTransfer::ExactExpiry).boolean())

and a field to the BatchTransfer enum:
#[derive(DeriveIden)]
pub enum BatchTransfer {
    Table,
    Idx,
    Txid,
    Status,
    CreatedAt,
    UpdatedAt,
    Expiration,
+   ExactExpiry,
    MinConfirmations,
}

By doing so you will not need to call the sea-orm-cli migrate generate command, but you'll still need to pull the postgres docker image and follow the rest of the README explanation from that on.
Note: as you see the new parameter is nullable, because when the expiration will be null the exact_expiry field should also be null, otherwise it should also be present.

Hi @zoedberg !
thanks for your time spent to answer to my noob tentative.
I supposed that I was missing some points, and you explained me really well what is the needing of the issue.
If no some smarter guy ( or you ) create the PR before I can dig a little bit inside your suggestion I will try to update my PR to get it merged. I am still at the beginning of my study or RGB and I stumbled upon these issues that seems quite affordable for me, also because of Rust.
I am working with another guy on Mostro and learning more about bitcoin and Rust, but I really think RGB is a real nice improvement for bitcoin in case of success...so learning a bit of it for me could be a great achievement!
Hope I can update this PR with your suggestions asap!

We are happy to wait for you. If you don't complete the task in time for the 0.3.0 don't worry, we'll do also a 0.4.0 once RGB 0.11 will be ready. Thanks again

We are happy to wait for you. If you don't complete the task in time for the 0.3.0 don't worry, we'll do also a 0.4.0 once RGB 0.11 will be ready. Thanks again

You're welcome! By the way I think that we are from the same region... ;)

Hi @zoedberg !
still alive...
I was starting back for my second shot using your precious advices....one thing...
pub struct Transfer {
    /// ID of the transfer
    pub idx: i32,
    /// Timestamp of the transfer creation
    pub created_at: i64,
    /// Timestamp of the transfer last update
    pub updated_at: i64,
    /// Status of the transfer
    pub status: TransferStatus,
    /// Amount in RGB unit (not considering precision)
    pub amount: u64,
    /// Type of the transfer
    pub kind: TransferKind,
    /// ID of the Bitcoin transaction anchoring the transfer
    pub txid: Option<String>,
    /// Recipient ID (blinded UTXO or Bitcoin script) of an incoming transfer
    pub recipient_id: Option<String>,
    /// UTXO of an incoming transfer
    pub receive_utxo: Option<Outpoint>,
    /// Change UTXO of an outgoing transfer
    pub change_utxo: Option<Outpoint>,
    /// Expiration of the transfer
    pub expiration: Option<i64>,
    /// Expiration of the transfer and whether it should be exact
    pub expiration: Option<(i64, bool)>,   // Added bool here!
    /// Transport endpoints for the transfer
    pub transport_endpoints: Vec<TransferTransportEndpoint>,
}

This is crystal clear, but...after compiler error this lead to a modification to this struct below:
#[derive(Debug)]
pub(crate) struct TransferData {
    pub(crate) kind: TransferKind,
    pub(crate) status: TransferStatus,
    pub(crate) txid: Option<String>,
    pub(crate) receive_utxo: Option<Outpoint>,
    pub(crate) change_utxo: Option<Outpoint>,
    pub(crate) created_at: i64,
    pub(crate) updated_at: i64,
    pub(crate) expiration: Option<(i64, bool)>,  // Added bool here!
}

and this lead to modify this...
#[derive(Clone, Debug, PartialEq, DeriveModel, DeriveActiveModel, Eq)]
pub struct Model {
    pub idx: i32,
    pub txid: Option<String>,
    pub status: TransferStatus,
    pub created_at: i64,
    pub updated_at: i64,
    pub expiration: Option<(i64, bool)>, // Added bool here!
    pub min_confirmations: u8,
}

Resulting in Rust telling me this...
....
error[E0277]: the trait bound `sea_orm::Value: From<(i64, bool)>` is not satisfied
  --> src/database/entities/batch_transfer.rs:16:48
   |
16 | #[derive(Clone, Debug, PartialEq, DeriveModel, DeriveActiveModel, Eq)]
   |                                                ^^^^^^^^^^^^^^^^^ the trait `From<(i64, bool)>` is not implemented for `sea_orm::Value`
   |
   = help: the following other types implement trait `From<T>`:
             <sea_orm::Value as From<&[u8]>>
             <sea_orm::Value as From<&std::string::String>>
             <sea_orm::Value as From<&str>>
             <sea_orm::Value as From<Cow<'_, str>>>
             <sea_orm::Value as From<JsonValue>>
             <sea_orm::Value as From<OffsetDateTime>>
             <sea_orm::Value as From<PrimitiveDateTime>>
             <sea_orm::Value as From<Vec<T>>>
           and 30 others
   = note: required for `(i64, bool)` to implement `Into<sea_orm::Value>`
   = note: required for `sea_orm::Value` to implement `From<std::option::Option<(i64, bool)>>`
   = note: 1 redundant requirement hidden
   = note: required for `std::option::Option<(i64, bool)>` to implement `Into<sea_orm::Value>`
note: required by a bound in `ActiveValue`
  --> /home/lupin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sea-orm-0.12.8/src/entity/active_model.rs:41:8
   |
39 | pub enum ActiveValue<V>
   |          ----------- required by a bound in this enum
40 | where
41 |     V: Into<Value>,
   |        ^^^^^^^^^^^ required by this bound in `ActiveValue`
   = note: this error originates in the derive macro `DeriveActiveModel` (in Nightly builds, run with -Z macro-backtrace for more info)

In my undestanding there is a missing From Trait implementation missing in sea-orm for tuples. Really far from me to touch sea orm lib and so if I undestand the compiler issue correctly could we think about to split the tuple in two vars like this...
pub struct Transfer {
    /// ID of the transfer
    pub idx: i32,
    /// Timestamp of the transfer creation
    pub created_at: i64,
    /// Timestamp of the transfer last update
    pub updated_at: i64,
    /// Status of the transfer
    pub status: TransferStatus,
    /// Amount in RGB unit (not considering precision)
    pub amount: u64,
    /// Type of the transfer
    pub kind: TransferKind,
    /// ID of the Bitcoin transaction anchoring the transfer
    pub txid: Option<String>,
    /// Recipient ID (blinded UTXO or Bitcoin script) of an incoming transfer
    pub recipient_id: Option<String>,
    /// UTXO of an incoming transfer
    pub receive_utxo: Option<Outpoint>,
    /// Change UTXO of an outgoing transfer
    pub change_utxo: Option<Outpoint>,
    /// Expiration of the transfer
    pub expiration: Option<i64>,
    /// Expiration of the transfer and whether it should be exact
    pub expiration: Option<i64>,
    pub exact_expiry: Option<bool>,   // Added bool here!
    /// Transport endpoints for the transfer
    pub transport_endpoints: Vec<TransferTransportEndpoint>,
}

This should make Rust happy, but as I told you sorry if am not on the right path...
Waiting for your opinion!

Hi @arkanoider!
You shouldn't manually edit the Model struct, that struct needs to be edited by sea-orm-cli, please check instructions in https://github.com/RGB-Tools/rgb-lib/blob/master/migration/README.md to learn how to do that.
By editing the migration/src/m20230608_071249_init_db.rs file as I previously suggested (the extra col call to the create_table instruction and the extra ExactExpiry field to the BatchTransfer enum) and running the appropriate sea-orm-cli commands you will end up having an updated Model for the batch transfer.
Also, note that it's not possible to have a model with a field like the one you are trying to define:
pub expiration: Option<(i64, bool)>, // Added bool here!

Because databases don't support tuples.
By using the code I've suggested, sea-orm-cli will add an exact_expiry boolean field to the model. While all the other structs that are not reflecting the DB structures, like Transfer and TransferData, can instead have the expiration field defined as a tuple.
I hope you'll find my explanation helpful and clear enough, otherwise don't hesitate to ask for more clarification.

Hi @arkanoider!
You shouldn't manually edit the Model struct, that struct needs to be edited by sea-orm-cli, please check instructions in https://github.com/RGB-Tools/rgb-lib/blob/master/migration/README.md to learn how to do that.
By editing the migration/src/m20230608_071249_init_db.rs file as I previously suggested (the extra col call to the create_table instruction and the extra ExactExpiry field to the BatchTransfer enum) and running the appropriate sea-orm-cli commands you will end up having an updated Model for the batch transfer. Also, note that it's not possible to have a model with a field like the one you are trying to define:
pub expiration: Option<(i64, bool)>, // Added bool here!

Because databases don't support tuples. By using the code I've suggested, sea-orm-cli will add an exact_expiry boolean field to the model. While all the other structs that are not reflecting the DB structures, like Transfer and TransferData, can instead have the expiration field defined as a tuple.
I hope you'll find my explanation helpful and clear enough, otherwise don't hesitate to ask for more clarification.

Yep! Sounds clear...will try another shot asap.

Hi @zoedberg ,
going on in my spare time...first of all have a nice Xmas!! :christmas_tree: :santa:
Will let one of my thought here while reading RGB specs and trying to learn more.
Regards this:
pub expiration: Option<(i64, bool)>

correlated to this the Model struct updated:
pub struct Model {
    pub idx: i32,
    pub txid: Option<String>,
    pub status: TransferStatus,
    pub created_at: i64,
    pub updated_at: i64,
    pub expiration: Option<i64>,
    pub exact_expiry: Option<bool>,
    pub min_confirmations: u8,
}

A doubt about a cosmetics, if we use the tuple in Transfer struct like Option<(a , b)> then in someway we have to convert two Options of new Model struct like this:
( Option (a), Option (b) ) to something like Option( a, b ) which involves some logic. Could it be ok to create the tuple with 2 Options inside like this to avoid a single remapping of this kind?
pub expiration: (Option<i64>, Option<bool>)

Hi @arkanoider,
sorry for the late response, I was on holiday.

Could it be ok to create the tuple with 2 Options inside like this to avoid a single remapping of this kind?

I assume you are referring to the expiration field of the Transfer struct defined in the src/wallet/mod.rs file and not the field of the Model struct defined in the src/database/entities/batch_transfer.rs file (since this, as already said, is reflecting a DB structure and therefore cannot have tuple fields).
In the first answer I gave to this PR, I've asked to change the expiration field of the Transfer struct as the following:
-   /// Expiration of the transfer
-   pub expiration: Option<i64>,
+   /// Expiration of the transfer and whether it should be exact
+   pub expiration: Option<(i64, bool)>,

If I understood correctly you are asking if it's possible to change that field like so:
-   /// Expiration of the transfer
-   pub expiration: Option<i64>,
+   /// Expiration of the transfer and whether it should be exact
+   pub expiration: (Option<i64>, Option<bool>),

If that's the proposal, I don't agree with it, because, as I previosly said:

Note: as you see the new parameter is nullable, because when the expiration will be null the exact_expiry field should also be null, otherwise it should also be present.

This means that it's impossible to have the exact_expiry field set to Some and the expiration field set to None (combination that is instead possible with the field definition you are proposing).
The only possible combinations are:

we have an expiration therefore the exact_expiry will be False or True
we don't have and expiration, therefore the exact_expiry must be None too

The conversion from the 2 structures (Model and Transfer), performed in the from_db_transfer method, should therefore change as the following:
-    expiration: td.expiration,
+    expiration: td.expiration.map(|e| Some((e, tx.exact_expiry.unwrap()))),

It will be the developer's reponsibility to never insert into the DB a transfer that has an expiration set and an exact_expiry unset.

Hì @zoedberg ,
hope you enjoyed your holiday and had a nice start for 2024!
Yes in my mind i was thinkin what you correctly understood and it's clear why is not the right solution.
I had some offline days too in this last week and I will look back to the code in these...
Thanks for your answers!

Hi @arkanoider,
hope you're doing ok. I was wondering, are you still working on this?

Hi @arkanoider, hope you're doing ok. I was wondering, are you still working on this?

Hi @arkanoider, hope you're doing ok. I was wondering, are you still working on this?

Hi @zoedberg sorry for my silence, i had a bad 2024 start for personal issues. I'd like to go on for sure, but I will have my mind back on track i need some more time...

Hi @zoedberg sorry for my silence, i had a bad 2024 start for personal issues. I'd like to go on for sure, but I will have my mind back on track i need some more time...

Sorry to hear that, hope things will get better. Currently we're still waiting for RGB 0.11 to be released, so we're not in a rush. In case we're about to release and this is still incomplete we'll probably make the DB changes and leave you all the rest of the work.

Hi @zoedberg ,
if the issue is still open I can try to spend some spare time to retry closing it! Personal issue are going better and also the other lightning project let me some time to study...meanwhile I am still trying to find my way in a bitcoin fulltime job!
Let me know if I can try to move on on this or you're going to close...

Hi @arkanoider! I'm happy to hear that things are going better for you! I think you'll have the time to tackle this

Thanks @zoedberg , will rewind my mind on it reading bsck the conversation with and will try to implement something!


What compiler passes should we ensure run before interpretation?

It seems pretty clear that we should run the basic papercut and validation passes (this is already done) but there may be merit is standardizing a set of the basic transformations that run before interpretation.

One constraint that I think it would be cool to respect is that the interpreter can run any Calyx program, before or after any transformation. So from that perspective, it's great to run the papercut & validation passes because they are analysis only, but it may be better to not run any optimization or lowering passes by default. Instead, it can be the user's choice which "level of abstraction" they want to simulate at. Would that make sense?

Just to state the obvious, the tension here is writing a generic interpreter that can run every calyx program vs. writing a more specialized interpreter that can assume programs are in a specific state before running them.
For example, collapse-control prunes away unnecessary nestings of seq and par nodes. One obvious interpreter benefit of requiring these to be run is that when interpreting par nodes, you don’t have to fork the environment unnecessarily.

Do we need to do anything for this issue @EclecticGriffin @sampsyo?

Nothing really springs to mind, we can probably close for the time being

Agreed!


Add option to get tuner and sc from public github

Description

Addition of the option to install tuner and sparsechem from the public github.
Motivation and Context

This should address issue #10, which was made possible after the recent update of tuner on GitHub.
How Has This Been Tested?

make test passes
Ping Reviewers
@melloddy/predictor-users
Please check if the PR fulfills these requirements

[ ] If necessary, the changelog has been updated
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Hello, from what I understand this PR can be merged, feel free to keep a reference to gitlab repositories if they are still used


binary_sensor sensor_class to entity device_class

Description:
This PR changes the binary_sensor property sensor_class to an Entity property device_class. I think this type of classification could be beneficial to expand to other components. My intended use case is to add this functionality to the cover component. Some examples being garage, window, door, gate, etc. I'm sure this could be useful for other components as well, though.
See also:
https://github.com/home-assistant/home-assistant-polymer/pull/200
https://github.com/home-assistant/home-assistant.github.io/pull/2005

Love it! 🐬  amazing job.

This seemed to break the UI icons for binary sensors.  Is that just me?

I had to clear the cache to get it to update.

Ah yep that did the trick.  Thanks Adam.


No pointer when selecting behind an image

If "Show Images Tiled" will be active, then selecting some point not on the main image, the pointer will be shown on the main image. (normal)

However, by turning off "Show Images Tiled", there will be no pointer, but the Cursor and Color from the selected pixel will be updated (in my case the edge in X and the current height in Y) (not normal).

Fix to have the pointer on the edge of the image (probably more correct) or as with "Show Images Tiled" enabled

What you're suggesting makes sense... you can only select pixels essentially in the main image rather than the tiles around it. The other option is to allow selection outside but when turning tiling off don't 'go to the edge' but rather keep the proper relative location. I'll take a look at this when I can. Thanks for the report.

Hmm. I'm having difficulty repo'ing this. Under Preferences->Interface what is the Reticle Mode set to? Is this on Windows or Linux? Are you at the latest version of the viewer and are you using ctrl-T or pressing the tile button to turn off tiling?
For me the reticle remains visible when I turn off tiling.

Give cb6796f100ad6e1f410d00c77bc4fe61ba77d482 a go.
"Changed OnSelect reticle behaviour to not update the cursor position when a position outside the image is selected. A right-click or cursor-move (shift dir-key) will make the reticle visible again."
It's more along the lines of just doing the part you suggested: 'data doesn't change at all' rather than hiding the colour swatches etc. This also has the benefit that if you are editing a pixel, you can now click outside the image to hide the reticle and adjust the colour without being distracted by the reticle cross (or outline if zoomed in).
If you want the reticle visible again without selecting another pixel, just right-click.


Add upsert operation to BatchClient and upgrade samples

Adding missing upsert operation to BatchClient
Upgrading to samples v2

Fixes #14485, #14784

/azp run js - tables - tests


typo on caching

Cachicn should read "caching" i think..
[Enter feedback here]

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

ID: d98309d8-d1f8-87f7-2662-c12462d11bbd
Version Independent ID: 7c0ed47b-e6ad-f62d-b8eb-e3776c69a4bf
Content: Checklist - Optimize cost - Azure Architecture Center
Content Source: docs/framework/cost/optimize-checklist.md
Service: architecture-center
Sub-service: well-architected
GitHub Login: @PageWriter-MSFT
Microsoft Alias: pnp

Thanks for reporting - this issue is under review.  This is a Microsoft Internal DevOps Bug ID AB#231124

Fixes issue https://github.com/MicrosoftDocs/architecture-center/issues/2161

closed per above pr.


Fixed #35598 -- Added SearchInput widget.

Trac ticket number

ticket-35598
Branch description
Adds a SearchInput widget that renders as <input type="search" ... >
As discussed in the forum, benefits of adding this include:

Widgets have both the class and a corresponding template, so if Django provides them, they are easier for users to override. -@adamchainz
For form template packs, such as those used by django-crispy-forms, if a widget class exists, it has a corresponding template, and a form template pack can override it. Widgets left to the user don’t have predictable template locations, so a template pack can’t override them—except by providing the widget class too. -@adamchainz
Discoverability of different input types if devs don't know a more appropriate type exists
Improved accessibility by encouraging more semantic use of form inputs

Checklist

[x] This PR targets the main branch.
[x] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[x] I have checked the "Has patch" ticket flag in the Trac system.
[x] I have added or updated relevant tests.
[x] I have added or updated relevant docs, including release notes if applicable.
[x] I have attached screenshots in both light and dark modes for any UI changes.

Great, thank you for carrying this to the finishing line!

Great, thank you for carrying this to the finishing line!

Happy to contribute, thanks for the input (no pun intended) on the forum!
P.S. I was at my first DjangoCon ever in Vigo this year, your talk + the energy of everyone else was quite inspiring!

P.S. I was at my first DjangoCon ever in Vigo this year, your talk + the energy of everyone else was quite inspiring!


[DRAFT] Embedding HMAC into FIPS module itself

This patch is a part of Red Hat FIPS-related patches
the code is available here
https://gitlab.com/redhat/centos-stream/rpms/openssl/-/blob/c9s/0033-FIPS-embed-hmac.patch?ref_type=heads
Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

The embedding code itself is
OPENSSL_CONF=/dev/null LD_LIBRARY_PATH=. apps/openssl dgst -binary -sha256 -mac HMAC -macopt hexkey:smth < providers/fips.so > providers/fips.so.hmac
objcopy --update-section .rodata1=providers/fips.so.hmac providers/fips.so providers/fips.so.mac
mv providers/fips.so.mac providers/fips.so

The embedding code itself is
OPENSSL_CONF=/dev/null LD_LIBRARY_PATH=. apps/openssl dgst -binary -sha256 -mac HMAC -macopt hexkey:smth < providers/fips.so > providers/fips.so.hmac
objcopy --update-section .rodata1=providers/fips.so.hmac providers/fips.so providers/fips.so.mac
mv providers/fips.so.mac providers/fips.so

The solution looks heavy GNU-ish and I have no idea if it will work on all non-Linux platforms. I strongly suspect the Windows approach should be different.

OTC: Is there any interest in this feature?

IMO we do not want this unless we have a truly multiplatform solution at least for the major platforms. It is also complicated by stuff like windows binary signatures.

This sounds very much like the "incore" value from the 2.0 module which we explicitly decided not to do again when we were designing the 3.0 module.

@mattcaswell Is there any written rationale for this, just for clarity? I understand the downsides of this proposal so I'm totally OK to close it.

We agreed fairly early on in the design process to keep it simple.
The complexity required for every different platform for the old FOM is just not worth it.

There is no requirement to have an embedded marker in the binary and to have in-memory checking - there never has been any FIPS140 requirement that dictates this sort of approach. You have always been permitted in the context of software modules to maintain a check in a separate file. That separate file also can (and does) contain configuration information.
@beldmit is there any particular reason behind this approach in terms of feedback from your lab or is this driven by something other than a FIPS140 requirement?

@t-j-h it is not a FIPS requirement, but it was mentioned at our F2F meeting and we agreed that I should raise the PR to discuss if this is an option for upstream. As there is an agreement that it is not worth efforts, let me close it.


Feature request: Please support --http_proxy , --https_proxy arguments

Hi thanks for creating this CLI utility. Sometimes I need to specify a proxy from the CLI and would like that ability with nvm. (Is it already possible?)
For example, if I want to npm install a dependency and I'm behind a proxy, I can do:

npm install --proxy="http://someproxy:port"

For wget, it will use the environment variables http_proxy, https_proxy.
Can nvm please honor similar arguments and/or variables? I think this feature may help address other open issues

Update:
I see under the hood, the environment variables are being honored. Even though this may be common knowledge, it may still be useful to have a short line about this in the README.md:

export https_proxy="host:port"
nvm i --lts  # Installs lts successfully over the proxy.

A note in the readme that npm, node, wget, and curl will all honor whatever environment variables you'd like to set would be appreciated. There's probably some exceptions; it'd be good to document those as well.


MeshCentral Agent stucks at Authenticating

Hey all :)
First, thanks for this amazing tool!
I just deployed it on my own server behind Traefik reverse proxy. And so far, everything works great!
Only with the Android app I do have some issues:

The apk versions directly from https://meshcentral.com/android/meshcentral-agent.apk and that one which I can download directly from the invite page are somewhat no installable. I tried it on two phones: On a Fairphone 5 with Android 12 and a Fairphone 3 with LineageOS 20 (idoéOS fork):
On both phones, Android throws the error App not installed as package appears to be invalid.

The installation via Google Play Store (or in my case Aurora Store) works. But as soon as I scan the QR code and try to establish a connection, the app gets stuck on Authenticating

On the server-side, I do get the following logs:
New agent at <IP_ADDRESS>:57348 Verified agent connection to <redacted> (<IP_ADDRESS>:57348).
And then, some minutes later:
Soft disconnect <redacted> (<IP_ADDRESS>:57348)

Since all other connections from windows computers (remote and local ones) are working flawlessly, I don't know what could cause the error here...
Environment:

MeshCentral: v1.1.15
MeshCentral Agent: v1.0.17

Same problem but for now only with Android 13 (Samsung Tab S6 Lite and Xiaomi Redmi Note 10S)
On Android 12 it works perfectly. (Lenovo tab m10 3 gen and Xiaomi Redmi Note 9 Pro)
Environment:
MeshCentral: v1.1.16
MeshCentral Agent: v1.0.17

OMG THANK YOU!
just built the app here and tried it on my Z fold 3 and it works!!!
will get @Ylianst to try build and publish a new build ASAP


prepare for branching v0.1

For context, https://github.com/cilium/certgen/pull/220 will introduce a configuration breaking change and after discussion we will maintain patch release v0.1 branch for Cilium < v1.16.
.github/workflows/build-images-release.yaml is based on tags and thus should work without modifications. I'm also inclined to change the default branch to main instead of the current master for consistency with other cilium repository (see https://github.com/cilium/cilium/issues/23110).

Why do we want to maintain a v0.1 branch with patch releases vs updating to v0.2 in stable branches of Cilium? What are our main concerns?
I'm wary of adding more maintenance work to our shoulders. Admittedly, updating the Cilium charts to use v0.2 is a one time effort that we can backport to stable branches whereas maintaining and publishing new releases for 2 branches is work that will have to be carried out until v1.15 is EOL.

Why do we want to maintain a v0.1 branch with patch releases vs updating to v0.2 in stable branches of Cilium? What are our main concerns?

From my point of view, the main concern would be the possible introduction of regressions, mainly during the backport of the helm changes to stable branches. Different branches have slight differences, and CI coverage is a bit lacking in that respect AFAIK (I've recently modified the clustermesh tests to also leverage certgen, but for instance I don't think we validate the hubble certs anywhere explicitly in those workflows -- especially relay/ui ones).

Why do we want to maintain a v0.1 branch with patch releases vs updating to v0.2 in stable branches of Cilium? What are our main concerns?

As @giorio94 pointed out regression is the main concern, but also it's unclear to me whether the overhead of maintaining v0.1 will be that much higher than porting v0.2 to stables branches.


pre-commit hook installation issue

Installation does not work (anymore) for me:
$ pre-commit install-hooks
[INFO] Initializing environment for https://github.com/tbroadley/spellchecker-cli.
[INFO] Installing environment for https://github.com/tbroadley/spellchecker-cli.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/private/var/folders/k8/zfp7dvcs1m326gz1brql1tv80000gn/T/tmp.OtiZoO3D9a/repoghoa3jhv/node_env-system/bin/node', '/opt/homebrew/bin/npm', 'install', '-g', '/private/var/folders/k8/zfp7dvcs1m326gz1brql1tv80000gn/T/tmp.OtiZoO3D9a/repoghoa3jhv/><EMAIL_ADDRESS>prepack\n> tsc\n\n\n><EMAIL_ADDRESS>prepare\n> husky install\n\nhusky - Git hooks installed\nspellchecker-cli-6.1.1.tgz')
return code: 254
stdout: (none)
stderr:
    npm WARN tarball tarball data for file:/private/var/folders/k8/zfp7dvcs1m326gz1brql1tv80000gn/T/tmp.OtiZoO3D9a/repoghoa3jhv/><EMAIL_ADDRESS>prepack> tsc><EMAIL_ADDRESS>prepare> husky installhusky - Git hooks installedspellchecker-cli-6.1.1.tgz (null) seems to be corrupted. Trying again.
    npm WARN tarball tarball data for file:/private/var/folders/k8/zfp7dvcs1m326gz1brql1tv80000gn/T/tmp.OtiZoO3D9a/repoghoa3jhv/><EMAIL_ADDRESS>prepack> tsc><EMAIL_ADDRESS>prepare> husky installhusky - Git hooks installedspellchecker-cli-6.1.1.tgz (null) seems to be corrupted. Trying again.
    npm ERR! code ENOENT
    npm ERR! syscall open
    npm ERR! path /private/var/folders/k8/zfp7dvcs1m326gz1brql1tv80000gn/T/tmp.OtiZoO3D9a/repoghoa3jhv/><EMAIL_ADDRESS>prepack> tsc><EMAIL_ADDRESS>prepare> husky installhusky - Git hooks installedspellchecker-cli-6.1.1.tgz
    npm ERR! errno -2
    npm ERR! enoent ENOENT: no such file or directory, open '/private/var/folders/k8/zfp7dvcs1m326gz1brql1tv80000gn/T/tmp.OtiZoO3D9a/repoghoa3jhv/><EMAIL_ADDRESS>prepack> tsc><EMAIL_ADDRESS>prepare> husky installhusky - Git hooks installedspellchecker-cli-6.1.1.tgz'
    npm ERR! enoent This is related to npm not being able to find a file.
    npm ERR! enoent

    npm ERR! A complete log of this run can be found in: /Users/uweschmitt/.npm/_logs/2024-06-07T12_20_44_122Z-debug-0.log
Check the log at /private/var/folders/k8/zfp7dvcs1m326gz1brql1tv80000gn/T/tmp.OtiZoO3D9a/pre-commit.log

I had the same issue in a fresh docker image setup.
pre-commit.log

Thank you for reporting this! I'm glad that downgrading npm fixed it.
@mindlessroman I wonder if you'd be interested in investigating this. If not, no worries.

Any updates? @mindlessroman ?


[subscriptions] confirm message received to server

I am building chat. I succesfully implemented subscriptions but i cannot find a way how to send acknowledgment back to server that messages has been received.

@vytautas-pranskunas- I don't think we have this implemented. We could probably stand to have an api for sending subscription protocol messages directly

That would be awesom because now i had to create standard graphql mutation :( But subscbscriptions would be so much better

is this equivalent to ping pong method issued from websockets?

Yes that's exactly what I need. This would super helpful while building
chat like messages (while still using gql for rest of app) because then you
can send back to server different messages like - messageSeen etc with
payload
On Thu, Aug 20, 2020, 6:03 PM Michael Joseph Rosenthal <
<EMAIL_ADDRESS>wrote:

@ram231 https://github.com/ram231 seems similar #684
https://github.com/zino-app/graphql-flutter/issues/684
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zino-app/graphql-flutter/issues/711#issuecomment-677754883,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA54ZF4EKWAZBJCKEAN4N2TSBVCNLANCNFSM4P5DOHCQ
.

4.0.0-alpha.6 now has an onConnectOrReconnect callback. Let me know if that solves the issue:
https://github.com/zino-app/graphql-flutter/blob/7192c1669c7dbecff0bbcd0665522c5b41207ab2/packages/graphql/lib/src/links/websocket_link/websocket_client.dart#L67-L70

hi, if you could add small demo on how to use it - then i can tell more about does it solves this problem or not :)

Something like
WebSocketLink(
  config: SocketClientConfig(
    onConnectOrReconnect: (socket) => socket.stream.listen(myOnDataReceivedCallback)
  ),
)

ok...
in case of chat...
in my case - client 1 sends message through gql server and wants to verify that client 2 has received it.
to attcheive this when message is received by client 2 i am doing http call to api with message id and server pushes data to client 1 that messages has been seen.
with this callack method how this would look like? how seerver would listen to data?

@vytautas-pranskunas- I'm not sure – you could define a custom "message received" type and listen to it on the server, then write a message on the socket every time you see the type of data you want to confirm. It will be kind of involved though

hmm need to check how to define custom message on apollo graphql server

closing this as onConnectOrReconnect in beta enables it, and the specific feature itself is out of scope of the client


fix [bintray] badges

Refs (perhaps fixes?) #658

https://shields-staging-pr-4217.herokuapp.com/bintray/v/asciidoctor/maven/asciidoctorj

Warnings

:warning:
This PR modified service code for bintray but not its test code. That's okay so long as it's refactoring existing code.

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @calebcartwright!

  Generated by :no_entry_sign: dangerJS against 4389614e7a54ebca1736d078223e61f4a0887ef8

I'm a little confused now 😕 i was originally able to reproduce the error we have in prod in my local env, and then things started working after the change in this PR.
However, when I tried reverting my local env back to the current master, it still works. Also, the bade is working fine in staging
https://shields-staging.herokuapp.com/bintray/v/asciidoctor/maven/asciidoctorj

I think my initial findings were just a fluke, so this change is not necessary/helpful. Closing accordingly