grpc connection fails on firestore/auth due to ssl bad signature errors

[REQUIRED] Step 2: Describe your environment

Operating System version: Ubuntu 22.04.4 LTS
Firebase SDK version: ^12.2.0
Firebase Product: auth, firestore (auth, database, storage, etc)
Node.js version: 20.10.0
NPM version: 10.2.3.
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

[REQUIRED] Step 3: Describe the problem
Steps to reproduce:
What happened? How can we make the problem occur?
GRPC issues started happening randomly on a vps that was running firebase admin sdk on several different apps. The root cause seems to be a ssl error in openssl. I have included debug output from grpc running on one of the node apps. Running open ssl directly without going through node and grpc gives a successful handshake and valid certificate. I am trying to find the root cause of this, whether in grpc-js or in firebase admin sdk, as all other libraries in node do not have issues with ssl handshakes.
The issue occurs about 90% of the time, as sometimes firebase sdk is able to connect successfully, only to fail a few minutes later on subsequent requests to firestore or auth.
Important to note the same code runs successfully on other vps-s and on my local machine. This seems to be specific to this vps. Openssl and ca-certificates are at the latest version.
Relevant Code:
GRPC logs:
D 2024-06-22T08:40:15.852Z | v1.10.9 88323 | resolving_load_balancer | dns:firestore.googleapis.com:443 IDLE -> IDLE
D 2024-06-22T08:40:15.853Z | v1.10.9 88323 | connectivity_state | (1) dns:firestore.googleapis.com:443 IDLE -> IDLE
D 2024-06-22T08:40:15.853Z | v1.10.9 88323 | dns_resolver | Resolver constructed for target dns:firestore.googleapis.com:443
D 2024-06-22T08:40:15.854Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 Channel constructed with options {
  "grpc.max_receive_message_length": -1,
  "grpc.max_send_message_length": -1,
  "grpc.initial_reconnect_backoff_ms": 1000
}
D 2024-06-22T08:40:15.854Z | v1.10.9 88323 | channel_stacktrace | (1) Channel constructed
    at new InternalChannel (/srv/www/djolev-bot/node_modules/@grpc/grpc-js/build/src/internal-channel.js:246:23)
    at new ChannelImplementation (/srv/www/djolev-bot/node_modules/@grpc/grpc-js/build/src/channel.js:35:32)
    at new Client (/srv/www/djolev-bot/node_modules/@grpc/grpc-js/build/src/client.js:66:36)
    at new ServiceClientImpl (/srv/www/djolev-bot/node_modules/@grpc/grpc-js/build/src/make-client.js:58:5)
    at GrpcClient.createStub (/srv/www/djolev-bot/node_modules/google-gax/build/src/grpc.js:344:22)
D 2024-06-22T08:40:15.857Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 createResolvingCall [0] method="/google.firestore.v1.Firestore/RunQuery", deadline=2024-06-22T08:45:15.856Z
D 2024-06-22T08:40:15.857Z | v1.10.9 88323 | resolving_call | [0] Created
D 2024-06-22T08:40:15.858Z | v1.10.9 88323 | resolving_call | [0] Deadline: 2024-06-22T08:45:15.856Z
D 2024-06-22T08:40:15.858Z | v1.10.9 88323 | resolving_call | [0] Deadline will be reached in 299998ms
D 2024-06-22T08:40:15.858Z | v1.10.9 88323 | resolving_call | [0] start called
D 2024-06-22T08:40:15.859Z | v1.10.9 88323 | dns_resolver | Looking up DNS hostname firestore.googleapis.com
D 2024-06-22T08:40:15.860Z | v1.10.9 88323 | resolving_load_balancer | dns:firestore.googleapis.com:443 IDLE -> CONNECTING
D 2024-06-22T08:40:15.860Z | v1.10.9 88323 | connectivity_state | (1) dns:firestore.googleapis.com:443 IDLE -> CONNECTING
D 2024-06-22T08:40:15.860Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 callRefTimer.ref | configSelectionQueue.length=1 pickQueue.length=0
D 2024-06-22T08:40:15.867Z | v1.10.9 88323 | resolving_call | [0] write() called with message of length 89
D 2024-06-22T08:40:15.867Z | v1.10.9 88323 | resolving_call | [0] halfClose called
D 2024-06-22T08:40:15.868Z | v1.10.9 88323 | resolving_call | [0] startRead called
D 2024-06-22T08:40:15.869Z | v1.10.9 88323 | dns_resolver | Resolved addresses for target dns:firestore.googleapis.com:443: [2a00:1450:400e:802::200a:443,<IP_ADDRESS>:443]
D 2024-06-22T08:40:15.870Z | v1.10.9 88323 | subchannel | (1) [2a00:1450:400e:802::200a]:443 Subchannel constructed with options {
  "grpc.max_receive_message_length": -1,
  "grpc.max_send_message_length": -1,
  "grpc.initial_reconnect_backoff_ms": 1000
}
D 2024-06-22T08:40:15.870Z | v1.10.9 88323 | subchannel_refcount | (1) [2a00:1450:400e:802::200a]:443 refcount 0 -> 1
D 2024-06-22T08:40:15.871Z | v1.10.9 88323 | subchannel | (2) <IP_ADDRESS>:443 Subchannel constructed with options {
  "grpc.max_receive_message_length": -1,
  "grpc.max_send_message_length": -1,
  "grpc.initial_reconnect_backoff_ms": 1000
}
D 2024-06-22T08:40:15.871Z | v1.10.9 88323 | subchannel_refcount | (2) <IP_ADDRESS>:443 refcount 0 -> 1
D 2024-06-22T08:40:15.871Z | v1.10.9 88323 | subchannel_refcount | (1) [2a00:1450:400e:802::200a]:443 refcount 1 -> 2
D 2024-06-22T08:40:15.871Z | v1.10.9 88323 | subchannel_refcount | (2) <IP_ADDRESS>:443 refcount 1 -> 2
D 2024-06-22T08:40:15.872Z | v1.10.9 88323 | pick_first | Start connecting to subchannel with address [2a00:1450:400e:802::200a]:443
D 2024-06-22T08:40:15.872Z | v1.10.9 88323 | pick_first | IDLE -> CONNECTING
D 2024-06-22T08:40:15.872Z | v1.10.9 88323 | resolving_load_balancer | dns:firestore.googleapis.com:443 CONNECTING -> CONNECTING
D 2024-06-22T08:40:15.872Z | v1.10.9 88323 | connectivity_state | (1) dns:firestore.googleapis.com:443 CONNECTING -> CONNECTING
D 2024-06-22T08:40:15.872Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 callRefTimer.unref | configSelectionQueue.length=0 pickQueue.length=0
D 2024-06-22T08:40:15.873Z | v1.10.9 88323 | subchannel | (1) [2a00:1450:400e:802::200a]:443 IDLE -> CONNECTING
D 2024-06-22T08:40:15.874Z | v1.10.9 88323 | transport | dns:firestore.googleapis.com:443 creating HTTP/2 session to [2a00:1450:400e:802::200a]:443
D 2024-06-22T08:40:15.876Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 createRetryingCall [1] method="/google.firestore.v1.Firestore/RunQuery"
D 2024-06-22T08:40:15.876Z | v1.10.9 88323 | resolving_call | [0] Created child [1]
D 2024-06-22T08:40:15.876Z | v1.10.9 88323 | retrying_call | [1] start called
D 2024-06-22T08:40:15.876Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 createLoadBalancingCall [2] method="/google.firestore.v1.Firestore/RunQuery"
D 2024-06-22T08:40:15.877Z | v1.10.9 88323 | retrying_call | [1] Created child call [2] for attempt 1
D 2024-06-22T08:40:15.877Z | v1.10.9 88323 | load_balancing_call | [2] start called
D 2024-06-22T08:40:15.877Z | v1.10.9 88323 | load_balancing_call | [2] Pick called
D 2024-06-22T08:40:15.877Z | v1.10.9 88323 | load_balancing_call | [2] Pick result: QUEUE subchannel: null status: undefined undefined
D 2024-06-22T08:40:15.877Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 callRefTimer.ref | configSelectionQueue.length=0 pickQueue.length=1
D 2024-06-22T08:40:15.877Z | v1.10.9 88323 | retrying_call | [1] startRead called
D 2024-06-22T08:40:15.877Z | v1.10.9 88323 | load_balancing_call | [2] startRead called
D 2024-06-22T08:40:15.878Z | v1.10.9 88323 | retrying_call | [1] write() called with message of length 94
D 2024-06-22T08:40:15.878Z | v1.10.9 88323 | load_balancing_call | [2] write() called with message of length 94
D 2024-06-22T08:40:15.878Z | v1.10.9 88323 | retrying_call | [1] halfClose called
D 2024-06-22T08:40:15.901Z | v1.10.9 88323 | transport | dns:firestore.googleapis.com:443 connection failed with error 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:

D 2024-06-22T08:40:15.901Z | v1.10.9 88323 | subchannel | (1) [2a00:1450:400e:802::200a]:443 CONNECTING -> TRANSIENT_FAILURE
D 2024-06-22T08:40:15.902Z | v1.10.9 88323 | pick_first | Start connecting to subchannel with address <IP_ADDRESS>:443
D 2024-06-22T08:40:15.902Z | v1.10.9 88323 | subchannel | (2) <IP_ADDRESS>:443 IDLE -> CONNECTING
D 2024-06-22T08:40:15.902Z | v1.10.9 88323 | transport | dns:firestore.googleapis.com:443 creating HTTP/2 session to <IP_ADDRESS>:443
D 2024-06-22T08:40:15.924Z | v1.10.9 88323 | transport | dns:firestore.googleapis.com:443 connection failed with error 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:

D 2024-06-22T08:40:15.924Z | v1.10.9 88323 | subchannel | (2) <IP_ADDRESS>:443 CONNECTING -> TRANSIENT_FAILURE
D 2024-06-22T08:40:15.925Z | v1.10.9 88323 | dns_resolver | resolution update delayed by "min time between resolutions" rate limit
D 2024-06-22T08:40:15.925Z | v1.10.9 88323 | pick_first | CONNECTING -> TRANSIENT_FAILURE
D 2024-06-22T08:40:15.925Z | v1.10.9 88323 | resolving_load_balancer | dns:firestore.googleapis.com:443 CONNECTING -> TRANSIENT_FAILURE
D 2024-06-22T08:40:15.925Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 callRefTimer.unref | configSelectionQueue.length=0 pickQueue.length=0
D 2024-06-22T08:40:15.925Z | v1.10.9 88323 | load_balancing_call | [2] Pick called
D 2024-06-22T08:40:15.925Z | v1.10.9 88323 | load_balancing_call | [2] Pick result: TRANSIENT_FAILURE subchannel: null status: 14 No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
 (2024-06-22T08:40:15.924Z)
D 2024-06-22T08:40:15.926Z | v1.10.9 88323 | connectivity_state | (1) dns:firestore.googleapis.com:443 CONNECTING -> TRANSIENT_FAILURE
D 2024-06-22T08:40:15.927Z | v1.10.9 88323 | load_balancing_call | [2] ended with status: code=14 details="No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
 (2024-06-22T08:40:15.924Z)" start time=2024-06-22T08:40:15.877Z
D 2024-06-22T08:40:15.927Z | v1.10.9 88323 | retrying_call | [1] Received status from child [2]
D 2024-06-22T08:40:15.927Z | v1.10.9 88323 | retrying_call | [1] state=TRANSPARENT_ONLY handling status with progress PROCESSED from child [2] in state ACTIVE
D 2024-06-22T08:40:15.928Z | v1.10.9 88323 | retrying_call | [1] ended with status: code=14 details="No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
 (2024-06-22T08:40:15.924Z)" start time=2024-06-22T08:40:15.876Z
D 2024-06-22T08:40:15.928Z | v1.10.9 88323 | resolving_call | [0] Received status
D 2024-06-22T08:40:15.928Z | v1.10.9 88323 | resolving_call | [0] ended with status: code=14 details="No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
 (2024-06-22T08:40:15.924Z)"
D 2024-06-22T08:40:15.931Z | v1.10.9 88323 | resolving_call | [0] cancelWithStatus code: 1 details: "Cancelled on client"
D 2024-06-22T08:40:15.931Z | v1.10.9 88323 | retrying_call | [1] cancelWithStatus code: 1 details: "Cancelled on client"
D 2024-06-22T08:40:15.931Z | v1.10.9 88323 | retrying_call | [1] ended with status: code=1 details="Cancelled on client" start time=2024-06-22T08:40:15.876Z
D 2024-06-22T08:40:15.931Z | v1.10.9 88323 | load_balancing_call | [2] cancelWithStatus code: 1 details: "Cancelled on client"
D 2024-06-22T08:40:15.932Z | v1.10.9 88323 | resolving_call | [0] Received status
D 2024-06-22T08:40:16.435Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 createResolvingCall [3] method="/google.firestore.v1.Firestore/BatchGetDocuments", deadline=2024-06-22T08:45:16.435Z
D 2024-06-22T08:40:16.435Z | v1.10.9 88323 | resolving_call | [3] Created
D 2024-06-22T08:40:16.435Z | v1.10.9 88323 | resolving_call | [3] Deadline: 2024-06-22T08:45:16.435Z
D 2024-06-22T08:40:16.435Z | v1.10.9 88323 | resolving_call | [3] Deadline will be reached in 300000ms
D 2024-06-22T08:40:16.435Z | v1.10.9 88323 | resolving_call | [3] start called
D 2024-06-22T08:40:16.436Z | v1.10.9 88323 | resolving_call | [3] write() called with message of length 106
D 2024-06-22T08:40:16.436Z | v1.10.9 88323 | resolving_call | [3] halfClose called
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 createRetryingCall [4] method="/google.firestore.v1.Firestore/BatchGetDocuments"
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | resolving_call | [3] Created child [4]
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | retrying_call | [4] start called
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | channel | (1) dns:firestore.googleapis.com:443 createLoadBalancingCall [5] method="/google.firestore.v1.Firestore/BatchGetDocuments"
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | retrying_call | [4] Created child call [5] for attempt 1
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | load_balancing_call | [5] start called
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | load_balancing_call | [5] Pick called
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | load_balancing_call | [5] Pick result: TRANSIENT_FAILURE subchannel: null status: 14 No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
 (2024-06-22T08:40:15.924Z)
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | retrying_call | [4] write() called with message of length 111
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | load_balancing_call | [5] write() called with message of length 111
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | retrying_call | [4] halfClose called
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | resolving_call | [3] startRead called
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | retrying_call | [4] startRead called
D 2024-06-22T08:40:16.437Z | v1.10.9 88323 | load_balancing_call | [5] startRead called
D 2024-06-22T08:40:16.438Z | v1.10.9 88323 | load_balancing_call | [5] ended with status: code=14 details="No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
 (2024-06-22T08:40:15.924Z)" start time=2024-06-22T08:40:16.437Z
D 2024-06-22T08:40:16.438Z | v1.10.9 88323 | retrying_call | [4] Received status from child [5]
D 2024-06-22T08:40:16.438Z | v1.10.9 88323 | retrying_call | [4] state=TRANSPARENT_ONLY handling status with progress PROCESSED from child [5] in state ACTIVE
D 2024-06-22T08:40:16.438Z | v1.10.9 88323 | retrying_call | [4] ended with status: code=14 details="No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
 (2024-06-22T08:40:15.924Z)" start time=2024-06-22T08:40:16.437Z
D 2024-06-22T08:40:16.438Z | v1.10.9 88323 | resolving_call | [3] Received status
D 2024-06-22T08:40:16.438Z | v1.10.9 88323 | resolving_call | [3] ended with status: code=14 details="No connection established. Last error: 0078E7E29D7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:

Output of openssl s_client --connect firestore.googleapis.com:443
CONNECTED(00000003)
depth=2 C = US, O = Google Trust Services LLC, CN = GTS Root R1
verify return:1
depth=1 C = US, O = Google Trust Services, CN = WR2
verify return:1
depth=0 CN = edgecert.googleapis.com
verify return:1
---
Certificate chain
 0 s:CN = edgecert.googleapis.com
   i:C = US, O = Google Trust Services, CN = WR2
   a:PKEY: id-ecPublicKey, 256 (bit); sigalg: RSA-SHA256
   v:NotBefore: Jun  3 07:51:59 2024 GMT; NotAfter: Aug 26 07:51:58 2024 GMT
 1 s:C = US, O = Google Trust Services, CN = WR2
   i:C = US, O = Google Trust Services LLC, CN = GTS Root R1
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Dec 13 09:00:00 2023 GMT; NotAfter: Feb 20 14:00:00 2029 GMT
 2 s:C = US, O = Google Trust Services LLC, CN = GTS Root R1
   i:C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
   a:PKEY: rsaEncryption, 4096 (bit); sigalg: RSA-SHA256
   v:NotBefore: Jun 19 00:00:42 2020 GMT; NotAfter: Jan 28 00:00:42 2028 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGKTCCBRGgAwIBAgIQVp3lrpaEN98Sdkufg00nPjANBgkqhkiG9w0BAQsFADA7
MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQww
CgYDVQQDEwNXUjIwHhcNMjQwNjAzMDc1MTU5WhcNMjQwODI2MDc1MTU4WjAiMSAw
HgYDVQQDExdlZGdlY2VydC5nb29nbGVhcGlzLmNvbTBZMBMGByqGSM49AgEGCCqG
SM49AwEHA0IABPVEiYYKItUr+ajG0/HYFHi8pX8rl585ElUDiOccUSuXq4c4JY2I
39LG4SS6GgIRlp5ypZiXPbBLppVQYOsREzWjggQLMIIEBzAOBgNVHQ8BAf8EBAMC
B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU
ZPuP0ZQ+xcjpGkHW06yG5V47IxEwHwYDVR0jBBgwFoAU3hse7XkV1D43JMMhu+w0
OW1CsjAwWAYIKwYBBQUHAQEETDBKMCEGCCsGAQUFBzABhhVodHRwOi8vby5wa2ku
Z29vZy93cjIwJQYIKwYBBQUHMAKGGWh0dHA6Ly9pLnBraS5nb29nL3dyMi5jcnQw
ggHgBgNVHREEggHXMIIB04IXZWRnZWNlcnQuZ29vZ2xlYXBpcy5jb22CFmFuZHJv
aWQuZ29vZ2xlYXBpcy5jb22CF2JpZ3RhYmxlLmdvb2dsZWFwaXMuY29tgiJjbG91
ZGVycm9ycmVwb3J0aW5nLmdvb2dsZWFwaXMuY29tghljbG91ZHRyYWNlLmdvb2ds
ZWFwaXMuY29tghhjb250YWluZXIuZ29vZ2xlYXBpcy5jb22CF2RhdGFmbG93Lmdv
b2dsZWFwaXMuY29tghhkYXRhc3RvcmUuZ29vZ2xlYXBpcy5jb22CEmRscC5nb29n
bGVhcGlzLmNvbYISZmNtLmdvb2dsZWFwaXMuY29tghhmaXJlc3RvcmUuZ29vZ2xl
YXBpcy5jb22CFmxvZ2dpbmcuZ29vZ2xlYXBpcy5jb22CGW1vbml0b3JpbmcuZ29v
Z2xlYXBpcy5jb22CFXB1YnN1Yi5nb29nbGVhcGlzLmNvbYIccnVudGltZWNvbmZp
Zy5nb29nbGVhcGlzLmNvbYIdc2VydmljZWNvbnRyb2wuZ29vZ2xlYXBpcy5jb22C
FnNwYW5uZXIuZ29vZ2xlYXBpcy5jb22CGnN0YWNrZHJpdmVyLmdvb2dsZWFwaXMu
Y29tMBMGA1UdIAQMMAowCAYGZ4EMAQIBMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6
Ly9jLnBraS5nb29nL3dyMi83NXI0WnlBM3ZBMC5jcmwwggEFBgorBgEEAdZ5AgQC
BIH2BIHzAPEAdwB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAY/d
TF7/AAAEAwBIMEYCIQChAOvcpwYXu2ym4DJZ01vgjr0wOouDHQvj8hhLXxVTmgIh
AKIthNk5ZRdvi+Uad3i19OTu3MbhjmJ/W8EenQOUWx47AHYASLDja9qmRzQP5WoC
+p0w6xxSActW3SyB2bu/qznYhHMAAAGP3Uxe8QAABAMARzBFAiEAgEUEtoFwT0rX
iS+dOTo2rHLm33tG49AZ8qRsdTAl+AICIH66FMhAKCcnG5ub+UXzKisJjo64ZYL5
lafEuENCJ+YfMA0GCSqGSIb3DQEBCwUAA4IBAQCNhYNTOlI4RuHDPeY+u7YacbGB
5tfHH1vUzmWIcMcNZsNXbhvi1IBZ5FMH0AWpiWZhAi4aPB9tfhbCFlFxjN7qD3yJ
9KkIQq7GfXBWfaXc0FSjwKqe4KvvtBKKTtiPYjDZxBiuu8YRrUor8vXbjDUvLyAx
1OYD8jWap5q53lRv60deobXNrjqtK75SU9eq0NPYCigeb353PgZ75hlFJBxiKQrH
F6GGw9mmKY8IDamth30jz6guXYerQCbsuxNvcPuXYt8ckVFfmnR8+Sm1Mr3PG2QC
F86Y+OL9kv5IgXwabv/HcciPD3HVjJ7RupnYr608Kmv6MBnsF0kP0ndriHZc
-----END CERTIFICATE-----
subject=CN = edgecert.googleapis.com
issuer=C = US, O = Google Trust Services, CN = WR2
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: ECDSA
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4574 bytes and written 406 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 256 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

We ran into a very similar-sounding issue with our gen2 nest js application. We are using auth guards to call verifyIdToken and these were failing in the latest release 12.2.0. Reverting to 12.1.1 fixed the issue.

We ran into a very similar-sounding issue with our gen2 nest js application. We are using auth guards to call verifyIdToken and these were failing in the latest release 12.2.0. Reverting to 12.1.1 fixed the issue.

Reproduced the issue with 12.1.1.

Possibly related, upgrading from 12.1.1 to 12.2.0 breaks unit test that call getAuth().getUser(uid) (and possibly other auth methods).
error message:
  errorInfo: {
    code: 'auth/internal-error',
    message: '//console.developers.google.com/iam-admin/iam/project?project=ida-ta and then retry. Propagation of the new permission may take a few minutes. Raw server response: "{"error":{"code":403,"message":"Caller does not have required permission to use project ida-ta. Grant the caller the roles/serviceusage.serviceUsageConsumer role, or a custom role with the serviceusage.services.use permission, by visiting https://console.developers.google.com/iam-admin/iam/project?project=ida-ta and then retry. Propagation of the new permission may take a few minutes.","errors":[{"message":"Caller does not have required permission to use project ida-ta. Grant the caller the roles/serviceusage.serviceUsageConsumer role, or a custom role with the serviceusage.services.use permission, by visiting https://console.developers.google.com/iam-admin/iam/project?project=ida-ta and then retry. Propagation of the new permission may take a few minutes.","domain":"global","reason":"forbidden"}],"status":"PERMISSION_DENIED","details":[{"@type":"type.googleapis.com/google.rpc.Help","links":[{"description":"Google developer console IAM admin","url":"https://console.developers.google.com/iam-admin/iam/project?project=ida-ta"}]},{"@type":"type.googleapis.com/google.rpc.ErrorInfo","reason":"USER_PROJECT_DENIED","domain":"googleapis.com","metadata":{"service":"identitytoolkit.googleapis.com","consumer":"projects/ida-ta"}}]}}"'
  },
  codePrefix: 'auth'

reverting back to 12.1.1.

The auth related issues you are seeing could be related to us adding x-goog-user-project headers in #2553
@christophe-g did you try granting the roles/serviceusage.serviceUsageConsumer IAM role to the service account in your project?

I also get a different error when using only auth, although the root cause still seems to be due to ssl failures. Including logs from an app using only token verification through firebase.
Error verifying Firebase token: _FirebaseAuthError: Error while making request: write EPROTO 00D8BCA1BA7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:
. Error code: EPROTO
    at FirebaseTokenVerifier.mapJwtErrorToAuthError (/srv/www/video-ai/dist_server/index.js:141346:16)
    at /srv/www/video-app/dist_server/index.js:141325:22
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
errorInfo: {
    code: 'auth/argument-error',
    message: 'Error while making request: write EPROTO 00D8BCA1BA7F0000:error:0A00007B:SSL routines:tls_process_cert_verify:bad signature:../deps/openssl/openssl/ssl/statem/statem_lib.c:559:\n' +
    '. Error code: EPROTO'
},
codePrefix: 'auth'
}

Firebase version is at 12.0.0 for the above error. Does not get fixed with 12.1.1 or 12.2.0

The issue was with any SSL connection through node, due to an old version of node. Upgrading to an LTS version of node (in my case 20.15.1) fixes the issue. Closing this issue.


pressing Shift-A in GDScript editor shows VisualScript search

Pressing Shift-A in GDScript editor shows VisualScript search rendering editor
hard to use.
Godot version:

41a0ecb59b244ee01ece644107f02c64d2a5b64a
OS/device including version:

Linux

See https://github.com/godotengine/godot/issues/20433

Duplicate of #20433.


SAKIII-4136 - Implement the ability to remove content from a personal/world library

https://jira.sakaiproject.org/browse/SAKIII-4136

Merged via squash


InternalServerError when using link property in sub query

EdgeDB Version: 1.0-dev.6184+1833814

Steps to Reproduce:
edgedb> WITH
.......   __scope_0_Movie := (DETACHED default::Movie)
....... SELECT (__scope_0_Movie) {
.......   id,
.......   characters := (
.......     WITH
.......       __scope_1_Person := (__scope_0_Movie.characters)
.......     SELECT (__scope_1_Person) {
.......       name,
.......       @character_name
.......     }
.......   )
....... };
edgedb error: InternalServerError: None

Schema: https://github.com/edgedb/edgedb-js/blob/master/qb/dbschema/default.esdl

As discussed in #3259, this shouldn't pass the typechecker.
The reason it does has to do with our weird assumptions about types inside of computed links, I think. In particular, also, this only happens inside a definition of a computed link that is overriding the underlying one. So if it was called foo instead of characters, there'd be an error


Cannot close ReactorNettyWebSocketSession use WebSocketSession.close

i rewrite WebsocketRoutingFilter and set WebSocketSession  in a concurrentHashMap, and use other Class to get the webSocketSession object and execute webSocketSession.close method, but Websocket Connection still receive message , can to be closed . Is there any way to close the websocket connection on the serverside ?  When to use webSocketSession.close  method?
Begging your help....
here is the code
public static final Map<String, Object> sessions = new ConcurrentHashMap<>();
		public Mono<Void> handle(WebSocketSession session) {

			return client.execute(url, this.headers, new WebSocketHandler() {
				@Override
				public Mono<Void> handle(WebSocketSession proxySession) {
					// Use retain() for Reactor Netty
					Mono<Void> proxySessionSend = proxySession.send(session.receive().doOnNext(msg -> {
						msg.retain();
					}));

					Mono<Void> serverSessionSend = session.send(proxySession.receive().doOnNext(msg -> {
						msg.retain();
					}));

					sessions.put("session", session);
					System.out.println("set session:" + session.getId());

					return Mono.zip(proxySessionSend, serverSessionSend).then();
				}

				/**
				 * Copy subProtocols so they are available downstream.
				 *
				 * @return
				 */
				@Override
				public List<String> getSubProtocols() {
					return ProxyWebSocketHandler.this.subProtocols;
				}
			});
		}

@RestController
public class HelloControllerEndpoint {

	@GetMapping("/test")
	public Mono<String> say(ServerWebExchange exchange) {
		ReactorNettyWebSocketSession session = (ReactorNettyWebSocketSession) WebsocketRoutingFilter.sessions.get("session");

		session.close() ;

		return Mono.just("hello");
	}
}

Can you describe what you are trying to accomplish specifically?

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


HA sync issue

There was a conversation on slack about multiple instances of the spire server making their own CA's when in HA mode and usually waiting a certain amount of time for the new instances CA's to sync to the agents before adding it to the LoadBalancer. We currently do not do this. We either need to make the server's initialDelaySeconds a larger number, like 60+ seconds, or make a dynamic readiness probe that waited only on new instances. If not done, agents may get valid certs that other agents don't trust for a while.

Probably need a sidecar with just busybox in it. it does nothing but sleep. then a readiness hook in it that checks for the age of files in the pvc. if less then a few minutes old, unready for a minute.

Can skip the sidecar if there is an upstreamAuthority specified.

I'm not sure we need to fix this in the charts, because this is how it is designed to work without Helm charts.
Yes, there is a period of time where certs are not in sync, because it is a distributed system.  During that period of time, agents typically get valid certs, because both CAs are valid (their validity overlaps).  With that in mind, there are also scenarios where a CA is purposefully expired, but that involves revocation lists (or waiting for the TTL of the cert to expire.
In both cases, how the CA is sourced and used is a function of the UpstreamAuthority plugin, and SPIRE is designed to not source and sync these synchronously across all Server instances.
Is the proposal to fix this asynchronous behavior by adding additional logic in SPIRE to make the asynchronous behavior synchronous?

Its a problem when not using an UpstreamAuthority plugin. The non containerized spire has the same issue, but hit it less due to not as good orchestration layers in non kubernetes environments. Humans take long enough to set things up its less likely to hit it.  K8s has enough automation it does hit it, and some folks will want to autoscale their spire servers and would definitely hit this issue in that situation I believe.
The solution would be to make sure the pod doesn't go ready until the ca is added to the bundle in k8s.


[Feature Request] Add inline git blame annotations

One of the first things I (and I presume many other developers) do when installing a new text editor or IDE is to enable inline git blame annotations (either natively, if the editor supports it, or via an extension).
Inline git blame annotations make it extremely easy to see when a particular line was last modified without requiring the user to perform clicks in order to get that information.
Additionally, the user should be able to interact with this annotation by hovering the cursor over the text, in order to quickly get a more detailed view of the commit.
I think it makes sense to include this feature as a native feature within VS Code, rather than relying on third-party extensions, as VS Code already includes native git tooling and this highly popular feature builds upon existing features to provide a great QOL improvement and make it easier for developers (both new and old) to work with git.

As you've mentioned extensions in first part: have you tried GitLens extension?
I think it supports feature you are looking for and many other.

I found GitLens far too intrusive, but I've really liked the simple Git Blame extension. It shows the blame information in the status bar, rather than inline, which differs from OP's request but I personally find this preferable since it's available at-a-glance but not constantly in the way of my coding.

Dupe of https://github.com/microsoft/vscode/issues/203841 ?

No. https://github.com/microsoft/vscode/issues/203841 is git blame for the whole file that is being shown in the gutter.

Zed editor already has native support for git blame now https://github.com/zed-industries/zed/pull/10398, when are we going to get it natively in vscode ?
 Recently I got rid of git lens and started to use default vscode support for day to day git operation which proves to be more efficient. what is missing is full repo log view (currently using Git Graph extension) and Git Blame, which doesn't have a very good alternative in market place.

Any updates on this topic?

@lszomoru, can you give an example for the git.blame.editorDecoration.template setting?
i tried  "git.blame.editorDecoration.template": "{author} {summary} {date} {time} {hash}", it prints

this feature is awesome. Kudos @lszomoru 👏

The feature is working great. The blames come immediately (i felt some lag a couple of days ago, however it is smooth now).
i used the Gitlens extension mostly for the blames (the other thing i used for it was exploring the stashes and the rebase editor. i am hopeful that a stash explorer kind of feature will debut in VSCode sooner or later.)
Great feature.
Thank you.

I don't know if this is the right place to give feedback, but here you go. I'm very glad that this was integrated into the editor and finally I can remove GitLens.
As for an improvement, I was used to the darker color of the decoration from GitLens (I use the Dark Modern theme), so the default color (#777777) was too bright for me. I adjusted it to #555555 and now it's perfect. So maybe the default colors could be adjusted so that the decoration is more subtle.

i have mine set to "git.blame.editorDecorationForeground": "#f8f8ff3f"
i am using dark mode in vscode.


Cell table

Cell Table for Mobile
An alternative version of tables optimized for mobile devices, displaying up to three rows at a time. Highly customizable and designed to improve user experience on smaller screens.
Features:

Mobile-optimized design for improved usability on smartphones and tablets.
Display up to three rows at a time, reducing the need for excessive scrolling.
Customizable to fit your specific data presentation needs.
Enhance mobile user experience for data-driven applications.
Improve accessibility and responsiveness on smaller screens.
Give your users a more convenient and efficient way to interact with data on mobile devices with our Stacked Table solution.

This component corresponds to the "Cell table" variant described in Design Library: https://designlibrary.sebgroup.com/components/component-table

Hey @SamanTheBoss, thank you for submitting this PR. This is an often requested component, so this is very welcome!
Before the component is published, we will go through it from a Design System perspective and check design, accessibility and API aspects and make adjustments to integrate it with the rest of the code base.
Due to a limitation in our current Github setup, Storybooks cannot be published for PRs originating from forks, so therefor I will clone it to a local branch and close this PR. In other words, the work will continue in #1066


Broken Liquidity Bonding Prompt

Problem
At Osmosis.zone -> Pool/### -> Start Earning ->
Liquidity Bonding::Unbonding period: No periods are shown. E.g.,

Known for these pools (an probably more):
Pools: 778 GLTO/OSMO, 653 HOPE/OSMO, 787 GEO/OSMO
But definitely not an issue with all pools; here are some pools without the issue:
Pool 2 (has internal incentives), Pool 15 (has superfluid),
Liquidity Bonding:: Amount to Bond -> Max: Switches the entered amount back and forth between the last entered amount (defaults to 0) and the amount of OSMO that the connected (Keplr) wallet has:

The MAX button should only be filling in the amount of available LP tokens, not the amount of OSMO
Root Cause Speculation
Could be that all pools with only external incentives(, and no internal incentives,) have this issue. This may have been done to prevent showing 0% return (because it would only show the APR from the internal incentives) on pools with only external incentives??

@JeremyParish69 thanks for opening the issue!

Suspect-related issue in pool 803
As seen in the image below :
The liquidity added to the pool($4.31) does not show in Available LP tokens to Start Earning (show $0)

when clicking on the Start Earning button, See a Liquidity Bonding pop-up without Unbonding period. However, the Available LP Token(GAMM) shows up

when clicking MAX button (put the Amount To Bond) the Bond button is disabled. This may be because the Unbonding period has not been picked

Yeah I broke gauge related logic with the refactor. Whoops.
Prod is reverted, will put the changes back once I fix these issues.

The issue has been fixed!
Available LP tokens shows up :white_check_mark:
Unbonding period shows up :white_check_mark:
The Bond button shows up :white_check_mark:


There are extra steps needed for installing the visualizer

In my case I needed two more steps for this to work, with VS 2019 16.3.8 (Windows 10) and a .NET Core 3.0 console project. The two extra steps were:

Copy DLL to My Documents\ VisualStudioVersion \Visualizers\netstandard2.0
Copy MultiSelectTreeView.dll (also available in the Releases page) to My Documents\ VisualStudioVersion \Visualizers\netstandard2.0

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

ID: c0470059-27e3-58a0-155e-84fbaefae158
Version Independent ID: 95c9afb2-32f3-945b-9381-9f711179c77d
Content: How to: Install a Visualizer - Visual Studio
Content Source: docs/debugger/how-to-install-a-visualizer.md
Product: visual-studio-windows
Technology: vs-ide-debug
GitHub Login: @Mikejo5000
Microsoft Alias: mikejo

@icalvo Thanks for the information! I'll get the doc updated.

Fixes are getting published in #4368

Presumably the visualizer under question is the Expression Tree Visualizer that I've written. It should be noted that MultiSelectTreeView.dll is a dependency of the main visualizer dll, and as such needs to be in the same folder. It might be advisable to work that into the documentation somehow:

Copy the Debugger Side DLL (and any DLLs it depends on) to either of the following locations:

@zspitz I'm not sure I understood you. Didn't you say the same I did in the OP?

@icalvo Not quite. What you said makes it sound like every visualizer requires MultiSelectTreeView.dll, which is definitely not the case. But the general principle -- there might be dlls which the debugger-side dll depends on, and those need to be copied to the visualizer folder -- might be worth mentioning.

Updating this

Fixed in MicrosoftDocs/visualstudio-docs-pr#5877


feat: make it so you can optionally have DiscardUnknown not apply to enums

https://github.com/protocolbuffers/protobuf-go/commit/70db1e1de28451dbcc3877e388fda2fbb9e04e00#diff-4bfd19b0e2b567c0f35f87a774a43846bc5b549661d952fb1177867cd762e6ba made it so DiscardUnknown also applied to enum values following the discussion https://github.com/golang/protobuf/issues/1208 to comply with the C++ behavior.
The comment by https://github.com/golang/protobuf/issues/1208#issuecomment-698837670 directly applies to my situation in that for historical reasons we had AllowUnknownFields set to true in the old jsonpb code. This did not affect ENUMS and allowed our service to properly throw a 400 error for invalid ENUM values (yes I know we do not follow best practice of having the zero value be invalid). In the migration to this code we still need DiscardUnknown to be true, but also retain the behavior of validating enum fields.
To achieve this I added ErrorOnUnknownEnumValue to UnmarshalOptions that will still let DiscardUnknown apply to field names, but NOT ENUM values. This change will have no affect if DiscardUnknown is set to false and no affect on any other field type except enums. I also made the default value of ErrorOnUnknownEnumValue retain current behavior if DiscardUnknown is set to true.

will work on getting this over where it belongs for actual code review.


Document included in sorted ReferenceMany can lose its changes

This is happening because when owning side is initialized, ODM fire a query to get documents if that document is proxy or collection needs to be sorted. On its own it's not that bad (maybe despite firing a query as #1452 notes), but later fetched data is aggressively set as current effectively overwriting not only original data but also removing already calculated change set (which later may not be recalculated).

Closing since #1461 was merged


Update transcribe.js - not with this diff but by pulling from an existing variable or adding an input for it on the web app.

Issue #, if available:
Description of changes:
Hi the Transcribe function would be vastly improved by actually making other languages or localisations available.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thank you for the feedback, we have added this request to our backlog items.

This feature was recently added to our v2.0.0 release: Support programmatically set language code when processing transcription and comprehend


Add Player states

This addresses issue #35.
The following states have been implemented:

UNINITIALIZED
READY
ACTIVE
CAPTURED
POWERUP (Only for Pacman; not valid for Ghost)

Here is the documentation for the new API endpoints.
@CtrlShiftGo Please look over the additions to the API carefully and comment on anything which should be changed.

Just clarifying, what is the purpose of the READY state? I'm assuming that UNINITIALIZED indicates that the player location has not been set yet.

It could be used to signal that the ghost is connected and has pressed a button in the app to ready-up, but the game has not yet started. States can be removed/added at the discretion of the game overseers & app designers.

Understood, that should be useful. Thanks!


spl-feature-proposal: output raw spl-token amounts in csv

Once https://github.com/solana-labs/solana/pull/13815 lands, solana-tokens will expect spl-token distribution CSVs to use raw amounts (no decimal).
Update feature-proposal CSV-generation code accordingly.

Clippy failure unrelated, fix here: https://github.com/solana-labs/solana-program-library/pull/894

@mvines should I publish a new version of spl-feature-proposal-cli to crates.io?

Sure


[Automate-2942] Add missing "required" field constraints

:nut_and_bolt: Description: What code changed, and why?
Here is the list of missing required fields from the original issue, along with their disposition in this pull request. Two have been skipped for reasons explained below.
api/interservice/authz/v2/policy.proto

[x] AddPolicyMembers.members
[x] RemovePolicyMembers.members
[x] UpdatePolicy.name
[x] CreateRole.actions
[x] UpdateRole.actions

api/interservice/authz/v2/project.proto

[x] CreateProject.name
[x] UpdateProject.name
[ ] CreateRule.type -- skipped
[ ] UpdateRule.type -- skipped

api/interservice/authn/tokens.proto

[x] CreateToken.name
[x] UpdateToken.name

:chains: Related Resources
NA
:+1: Definition of Done
Missing fields that are required are properly flagged as errors, and are presented in a consistent format (where possible) identifying the method, the field, and a reason.
:athletic_shoe: How to Build and Test the Change
In hab studio:
rebuild components/authz-service/ \
&& rebuild components/teams-service/ \
&& rebuild components/authn-service/ \
&& rebuild components/local-user-service

There were definitely compromises here, and I expect to be some differences of opinion over which is "better", but I was striving for "error messages as good as possible while also being most consistent".
NOTE: The following has all been supplanted by the latest pass--see separate lengthy comment itemizing each call from April 5.
Take this first one. One could say that (a) giving the project name (project-p1) is better than not giving it, but on the other hand, (b) giving the method name and property (CreateProjectReq.Name) is also better than not giving it. Is (a) better than (b) or vice versa? 🤷♂ Well, (b) is more consistent with others, so I went with that. I am calling this a TYPE A CHANGE.
Missing Name in CreateProject
jo id='project-p1' | \
curl -sSkH "api-token: $TOK" --data @-  $TARGET_HOST/apis/iam/v2/projects?pretty

BEFORE FIX
{
  "error": "creating project with ID \"project-p1\": a project name must contain non-whitespace characters",
  "code": 3,
  "message": "creating project with ID \"project-p1\": a project name must contain non-whitespace characters",
  "details": [
  ]
}

AFTER FIX
{
  "error": "invalid CreateProjectReq.Name: value length must be at least 1 runes",
  "code": 3,
  "message": "invalid CreateProjectReq.Name: value length must be at least 1 runes",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
$ jo id='project-p1' name="Proj p1" | \
    curl -sSkH "api-token: $TOK" --data @- $TARGET_HOST/apis/iam/v2/projects?pretty
{
  "project": {
    "name": "Proj p1",
    "id": "project-p1",
    "type": "CUSTOM",
    "status": "NO_RULES"
  }
}

Missing name in UpdateProject
Also a TYPE A CHANGE.
jo id='project-p1' | \
    curl -sSkH "api-token: $TOK" -XPUT  --data @- \
    $TARGET_HOST/apis/iam/v2/projects/project-p1?pretty

BEFORE FIX
{
  "error": "updating project with ID \"project-p1\": a project name must contain non-whitespace characters",
  "code": 3,
  "message": "updating project with ID \"project-p1\": a project name must contain non-whitespace characters",
  "details": [
  ]
}

AFTER FIX
{
  "error": "invalid UpdateProjectReq.Name: value length must be at least 1 runes",
  "code": 3,
  "message": "invalid UpdateProjectReq.Name: value length must be at least 1 runes",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
$ jo id='project-p1' name="new name" | curl -sSkH "api-token: $TOK" -XPUT  --data @-  $TARGET_HOST/apis/iam/v2/projects/project-p1?pretty

Missing members in AddPolicyMembers
TYPE B CHANGE: In this one, there was no error, it was just a no-op. Is that bad? No, but team consensus was that Members should be a required field, so it now generates an error.
curl -sSkH "api-token: $TOK" -XPOST \
    $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy/members:add?pretty \
    -d "$(jq -n '{  "members": [ ] }')"
curl -sSkH "api-token: $TOK" -XPOST \
    $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy/members:add?pretty \
    -d "$(jq -n '{}')"

BEFORE FIX
Either version above acts like a no-op. Empty output, no error.
AFTER FIX
{
  "error": "invalid AddPolicyMembersReq.Members: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid AddPolicyMembersReq.Members: value must contain at least 1 item(s)",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
curl -sSkH "api-token: $TOK" -XPOST \
    $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy/members:add?pretty \
    -d "$(jq -n '{  "members": [ "token:t1" ] }')"

Missing members in RemovePolicyMembers
Also a TYPE B CHANGE.
curl -sSkH "api-token: $TOK" -XPOST \
    $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy/members:remove?pretty \
    -d "$(jq -n '{  "members": [ ] }')"

BEFORE FIX
No members acts like a no-op. Empty output, no error.
AFTER FIX
{
  "error": "invalid RemovePolicyMembersReq.Members: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid RemovePolicyMembersReq.Members: value must contain at least 1 item(s)",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
curl -sSkH "api-token: $TOK" -XPOST \
    $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy/members:remove?pretty \
    -d "$(jq -n '{  "members": [ "user:*" ] }')"

Missing actions in CreateRole
Also a TYPE A CHANGE.
jo id='role-r1' name='Role R1' projects=$(jo -a project-p1) | \
    curl -sSkH "api-token: $TOK" -X POST  --data @- $TARGET_HOST/apis/iam/v2/roles?pretty

BEFORE FIX
{
  "error": "error parsing role \"role-r1\": a role must contain at least one action",
  "code": 3,
  "message": "error parsing role \"role-r1\": a role must contain at least one action",
  "details": [
  ]
}

AFTER FIX
{
  "error": "invalid CreateRoleReq.Actions: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid CreateRoleReq.Actions: value must contain at least 1 item(s)",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
jo id='role-r1' name='Role R1' \
    actions=$(jo -a iam:teams:list iam:teams:get) projects=$(jo -a project-p1) | \
    curl -sSkH "api-token: $TOK" -X POST  --data @- $TARGET_HOST/apis/iam/v2/roles?pretty
{
  "role": {
    "name": "Role R1",
    "id": "role-r1",
    "type": "CUSTOM",
    "actions": [
      "iam:teams:list",
      "iam:teams:get"
    ],
    "projects": [
      "project-p1"
    ]
  }
}

Missing actions in UpdateRole
Also a TYPE A CHANGE.
jo id='role-r1' name='Role R1' projects=$(jo -a project-p1) | \
    curl -sSkH "api-token: $TOK" -X PUT  --data @- $TARGET_HOST/apis/iam/v2/roles/role-r1?pretty

BEFORE FIX
{
  "error": "parse policy with ID \"role-r1\": a role must contain at least one action",
  "code": 3,
  "message": "parse policy with ID \"role-r1\": a role must contain at least one action",
  "details": [
  ]
}

AFTER FIX
{
  "error": "invalid UpdateRoleReq.Actions: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid UpdateRoleReq.Actions: value must contain at least 1 item(s)",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
jo id='role-r1' name='Role R1 new' \
    actions=$(jo -a iam:teams:list iam:teams:get foo:bar:frob) projects=$(jo -a project-p1) | \
    curl -sSkH "api-token: $TOK" -X PUT  --data @- $TARGET_HOST/apis/iam/v2/roles/role-r1?pretty

Missing name in UpdatePolicy
Also a TYPE A CHANGE.
First create...
curl -sSkH "api-token: $TOK" -XPOST $TARGET_HOST/apis/iam/v2/policies?pretty \
    -d "$(jq -n '{ "id": "custom-viewer-policy", "members": [ "team:ldap:*" ], "name": "My Viewer Policy", "projects": [], "statements": [ { "effect": "ALLOW", "projects": [ "project-p1" ], "role": "viewer" } ] }')"

Then update...
curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy?pretty \
    -d "$(jq -n '{ "id": "custom-viewer-policy", "members": [ "team:ldap:*", "user:*" ], "projects": [], "statements": [ { "effect": "ALLOW", "projects": [ "project-p1" ], "role": "viewer" } ] }')"

BEFORE FIX
{
  "error": "parse policy with ID \"custom-viewer-policy\": must supply policy name",
  "code": 3,
  "message": "parse policy with ID \"custom-viewer-policy\": must supply policy name",
  "details": [
  ]
}

AFTER FIX
{
  "error": "invalid UpdatePolicyReq.Name: value length must be at least 1 runes",
  "code": 3,
  "message": "invalid UpdatePolicyReq.Name: value length must be at least 1 runes",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy?pretty \
    -d "$(jq -n '{ "id": "custom-viewer-policy", "name": "Policy UPDATED", "members": [ "team:ldap:*", "user:*" ], "projects": [], "statements": [ { "effect": "ALLOW", "projects": [ "project-p1" ], "role": "viewer" } ] }')"

Missing Type in CreateRule
curl -sSkH "api-token: $TOK" $TARGET_HOST/apis/iam/v2/projects/project-p1/rules?pretty \
    -d "$(jq -n '{ id: "rule-1", name: "rule 1", conditions: [{ operator: "MEMBER_OF", attribute: "CHEF_SERVER", values: ["prod", "staging"]}]}')"

BEFORE FIX
{
  "error": "rule type not provided",
  "code": 3,
  "message": "rule type not provided",
  "details": [
  ]
}

AFTER FIX
I have opted not to pursue a change on this.
The gateway has a check for missing/incorrect type that occurs first, before the proto validation occurs at the service. I considered removing that check, reasoning that having the proto validation flag the error would yield a message more consistent with every other error, but there seems to be some other check (?? in vendor code) that is generating the error shown above.
SUCCESSFUL CALL LOOKS LIKE THIS:
curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/projects/project-p1/rules/rule-1?pretty \
    -d "$(jq -n '{ id: "rule-2", name: "rule 2",  type: "NODE", conditions: [{ operator: "MEMBER_OF", attribute: "CHEF_SERVER", values: ["prod", "staging"]}]}')"

Missing Type in UpdateRule
No fix applied; same reasons as for CreateRule
Missing token name in CreateToken
TYPE C CHANGE: Replacing an ugly error with an understandable error.
jo id='token-2' active=true  | \
curl -sSkH "api-token: $TOK" --data @-  $TARGET_HOST/apis/iam/v2/tokens?pretty

BEFORE FIX
Well, this is a heck of an ugly error!
{
  "error": "pq: new row for relation \"chef_authn_tokens\" violates check constraint \"chef_authn_clients_description_check\"",
  "code": 13,
  "message": "pq: new row for relation \"chef_authn_tokens\" violates check constraint \"chef_authn_clients_description_check\"",
  "details": [
  ]

AFTER FIX
While this is a much better error, it still says Description not Name (because that's how authn-service knows the field). Sigh.
{
  "error": "invalid CreateTokenReq.Description: value length must be at least 1 runes",
  "code": 3,
  "message": "invalid CreateTokenReq.Description: value length must be at least 1 runes",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
$ jo id='token-1' name='Token T1' active=true  | \
    curl -sSkH "api-token: $TOK" --data @- \
    $TARGET_HOST/apis/iam/v2/tokens?pretty
{
  "token": {
    "id": "token-1",
    "name": "Token T1",
    "value": "CzQlaL03TZC_gjs1SjZ9cah4WNs=",
    "active": true,
    "created_at": "2020-03-23T20:40:07Z",
    "updated_at": "2020-03-23T20:40:07Z",
    "projects": [
    ]
  }
}

Missing token name in UpdateToken
TYPE D CHANGE: Replacing incorrect operation with error detection and reporting.
jo id='token-1' active=false | \
curl -sSkH "api-token: $TOK" -XPUT  --data @-  $TARGET_HOST/apis/iam/v2/tokens/token-1?pretty

BEFORE FIX
Notice that there is no error (!) plus it resets active to true (presumably the default?) ignoring the passed value of false.
{
  "token": {
    "id": "token-1",
    "name": "Token T1",
    "value": "CzQlaL03TZC_gjs1SjZ9cah4WNs=",
    "active": true,
    "created_at": "2020-03-23T20:40:07Z",
    "updated_at": "2020-03-23T20:49:57Z",
    "projects": [
    ]
  }
}

AFTER FIX
Definitely an improvement, but same issue saying Description instead of Name.
{
  "error": "invalid UpdateTokenReq.Description: value length must be at least 1 runes",
  "code": 3,
  "message": "invalid UpdateTokenReq.Description: value length must be at least 1 runes",
  "details": [
  ]
}

SUCCESSFUL CALL LOOKS LIKE THIS:
$ jo id='token-1' nme='new name' active=false  | \
    curl -sSkH "api-token: $TOK" -XPUT  --data @-  \
    $TARGET_HOST/apis/iam/v2/tokens/token-1?pretty
{
  "token": {
    "id": "token-1",
    "name": "new name",
    "value": "CzQlaL03TZC_gjs1SjZ9cah4WNs=",
    "active": false,
    "created_at": "2020-03-23T20:40:07Z",
    "updated_at": "2020-03-23T20:50:40Z",
    "projects": [
    ]
  }

Reporting missing fields
In the initial issue, I mentioned we had a mixture of \\S+ and min_len=1 both for checking that an argument was supplied. I further suggested we go with min_len=1 as being "a bit more direct". True, but I discovered a much better reason to go with it. Here's the error from \\S+:
"error": "invalid CreateTeamReq.Name: value does not match regex pattern \"\\\\S\"",

Not very good user experience!! I think this is much better (excepting perhaps  the choice of the word "rune" which is in vendor code (unless you are a fan of Lord of the Rings)).
"error": "invalid CreateTeamReq.Name: value length must be at least 1 runes",

So I did replace the few instances of \\S+ with min_len=1.
Reporting whitespace only errors
There is just one catch to the last section: \\S+ also flagged whitespace-only entries as an error. That was definitely good to have. Then I removed it. But fear not! While no longer flagged at the gateway, that error was flagged by the individual services, though in slightly different ways, and not all services. I took the liberty of standardizing the services to all flag that in the same way with the same words. Example:
$ jo id='team3' name='   ' | \
curl -sSkH "api-token: $TOK" $TARGET_HOST/apis/iam/v2/teams?pretty --data @-
{
  "error": "a team name must contain non-whitespace characters",
  "code": 13,
  "message": "a team name must contain non-whitespace characters",
  "details": [
  ]
}

:white_check_mark: Checklist

[x] I have read the CONTRIBUTING document.
[x] Tests added/updated?
[ ] Docs added/updated?
[x] All commits have been signed-off for the Developer Certification of Origin.

kinda sad to be losing some of the more specific errors, but i understand there were a lot of compromises and things to consider in this work.

To me, though, it feels like different specifics rather than less specifics.

Revised to standardize more on validate*input methods in every service--and get rid of "runes". Also, added local-user-service to the fold.
CreateRule
curl -sSkH "api-token: $TOK" $TARGET_HOST/apis/iam/v2/projects/project-p1/rules?pretty -d "$(jq -n '{ id: "rule-1" type: "NODE",  conditions: [{ operator: "MEMBER_OF", attribute: "CHEF_SERVER", values: ["prod", "staging"]}]}')"
{
  "error": "error processing request: rpc error: code = InvalidArgument desc = creating rule with ID \"rule-1\": a rule name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "error processing request: rpc error: code = InvalidArgument desc = creating rule with ID \"rule-1\": a rule name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdateRule
curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/projects/project-p1/rules/rule-1?pretty     -d "$(jq n '{ id: "rule-2", type: "NODE", conditions: [{ operator: "MEMBER_OF", attribute: "CHEF_SERVER", values: ["prod", "staging"]}]}')"
{
  "error": "error processing request: rpc error: code = InvalidArgument desc = creating rule with ID \"rule-1\": a rule name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "error processing request: rpc error: code = InvalidArgument desc = creating rule with ID \"rule-1\": a rule name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

CreatePolicy
curl -sSkH "api-token: $TOK" -XPOST $TARGET_HOST/apis/iam/v2/policies?pretty     -d "$(jq -n '{ "id": "custom-vieer-policy", "members": [ "team:ldap:*" ], "projects": [], "statements": [ { "effect": "ALLOW", "projects": [ "project-p1" ], "role": "viewer" } ] }')"
{
  "error": "error parsing policy \"custom-viewer-policy\": a policy name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "error parsing policy \"custom-viewer-policy\": a policy name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdatePolicy
curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy?pretty     -d "$(jq -n { "id": "custom-viewer-policy", "members": [ "team:ldap:*", "user:*" ], "projects": [], "statements": [ { "effect": "ALLOW", "projects": [ "project-p1" ], "role": "viewer" } ] }')"
{
  "error": "parse policy with ID \"custom-viewer-policy\": a policy name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "parse policy with ID \"custom-viewer-policy\": a policy name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

CreateToken
jo id='token-2' active=true  | curl -sSkH "api-token: $TOK" --data @-  $TARGET_HOST/apis/iam/v2/tokens?pretty
{
  "error": "a token name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "a token name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdateToken
jo id='token-1' active=false | curl -sSkH "api-token: $TOK" -XPUT  --data @-  $TARGET_HOST/apis/iam/v2/tokens/token-1?pretty
{
  "error": "a token name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "a token name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

CreateRole
jo id='role-r1' projects=$(jo -a project-p1) | curl -sSkH "api-token: $TOK" -X POST  --data @- $TARGET_HOST/apis/iam/v2/roles?pretty
{
  "error": "invalid CreateRoleReq.Actions: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid CreateRoleReq.Actions: value must contain at least 1 item(s)",
  "details": [
  ]
}
jo id='role-r1' projects=$(jo -a project-p1) actions=$(jo -a iam:teams:list iam:teams:get) | curl -sSkH "api-tken: $TOK" -X POST  --data @- $TARGET_HOST/apis/iam/v2/roles?pretty
{
  "error": "error parsing role \"role-r1\": a role name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "error parsing role \"role-r1\": a role name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdateRole
jo id='role-r1' name='Role R1' projects=$(jo -a project-p1) | curl -sSkH "api-token: $TOK" -X PUT  --data @- $TARGET_HOST/apis/iam/v2/roles/role-r1?pretty
{
  "error": "invalid UpdateRoleReq.Actions: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid UpdateRoleReq.Actions: value must contain at least 1 item(s)",
  "details": [
  ]
}
jo id='role-r1' actions=$(jo -a iam:teams:list iam:teams:get)  projects=$(jo -a project-p1) |     curl -sSkH "api-token: $TOK" -X PUT  --data @- $TARGET_HOST/apis/iam/v2/roles/role-r1?pretty
{
  "error": "parse role with ID \"role-r1\": a role name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "parse role with ID \"role-r1\": a role name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

AddPolicyMembers
curl -sSkH "api-token: $TOK" -XPOST     $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy/members:add?pretty     -d "$(jq -n '{  "members": [ ] }')"
{
  "error": "invalid AddPolicyMembersReq.Members: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid AddPolicyMembersReq.Members: value must contain at least 1 item(s)",
  "details": [
  ]
}

RemovePolicyMembers
curl -sSkH "api-token: $TOK" -XPOST     $TARGET_HOST/apis/iam/v2/policies/custom-viewer-policy/members:remove?prety     -d "$(jq -n '{  "members": [ ] }')"
{
  "error": "invalid RemovePolicyMembersReq.Members: value must contain at least 1 item(s)",
  "code": 3,
  "message": "invalid RemovePolicyMembersReq.Members: value must contain at least 1 item(s)",
  "details": [
  ]

CreateTeam
jo id='new-team3' | curl -sSkH "api-token: $TOK" -w "%{http_code}" $TARGET_HOST/apis/iam/v2/teams?pretty --data @-
{
  "error": "a team name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "a team name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdateTeam
jo id='new-team3' | curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/teams/new-team3?pretty --data @-
{
  "error": "a team name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "a team name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

CreateProject
jo id='project-p1' | curl -sSkH "api-token: $TOK" --data @-  $TARGET_HOST/apis/iam/v2/projects?pretty
{
  "error": "creating project with ID \"project-p1\": a project name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "creating project with ID \"project-p1\": a project name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdateProject
jo id='project-p1' |     curl -sSkH "api-token: $TOK" -XPUT  --data @-     $TARGET_HOST/apis/iam/v2/projects/project-p1?pretty
{
  "error": "updating project with ID \"project-p1\": a project name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "updating project with ID \"project-p1\": a project name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

CreateUser
curl -sSkH "api-token: $TOK" -XPOST $TARGET_HOST/apis/iam/v2/users?pretty -d '{"id": "use1", "password": "aSafePassword"}'
{
  "error": "a user name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "a user name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdateUser
curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/users/use1?pretty -d '{"id": "use1", "password": "aSafePassword"}'
{
  "error": "a user name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "a user name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

UpdateSelf
curl -sSkH "api-token: $TOK" -XPUT $TARGET_HOST/apis/iam/v2/self/use1?pretty
{
  "error": "a user name is required and must contain at least one non-whitespace character",
  "code": 3,
  "message": "a user name is required and must contain at least one non-whitespace character",
  "details": [
  ]
}

for the item(s) ones is it always going to be 1? and if so can we drop the (s)?

@susanev There's a hilarious answer to your question. The now removed "...must be at least 1 runes" and this "... must contain at least 1 item(s)" are both from vendor code. So they were both wrong and inconsistent at the same time. 🤷♂ .
Which also means, no, we cannot change it... unless we also move the min_items check out of the protos into the services (as I have just done with  the min_len check to get rid of runes). However... I feel like putting this PR to bed and save that for another one, if that is OK...


Fix Weight::is_zero

proof_size is missing here. Lets opt for a future proof implementation.

bot merge


docs: fix typos in multiple schemas

Just fix a couple of typos in the multiple schemas docs

thanks!


[stable/mongodb-replicaset] document config secret must be file 'key.txt'

Describe the bug
Snap! I'm trying this DO tutorial and it is failing.
$ helm install stable/mongodb-replicaset --name mongo --set replicas=3,replicaSetName=db,auth.enabled=true,auth.existingKeySecret=mongo-root,auth.existingAdminSecret=mongo-secret,persistentVolume.size=2Gi

NAME:   mongo
LAST DEPLOYED: Wed May 29 16:10:11 2019
NAMESPACE: default
STATUS: DEPLOYED

...
$  kubectl get pods
NAME                         READY   STATUS       RESTARTS   AGE
mongo-mongodb-replicaset-0   0/1     Init:Error   2          32s

Which chart:
stable/mongodb-replicaset
Anything else we need to know:
The problem was I was creating the mongo-root secret like this:
kubectl create secret generic mongo-root --from-file=mongo-root.txt

The file must be named key.txt or copy-config fails.
kubectl create secret generic mongo-root --from-file=key.txt

This requirement isn't documented in the README.md

It is already documented here.

Fair enough


Update some GitHub appstudio refs

This failed acceptance tests locally, but I thought I'd try it here anyway.
Ref: EC-449

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (01c361d) to head (d35074b).

Additional details and impacted files

@@            Coverage Diff            @@
##              main     #1084   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          111       111
  Lines         5562      5562
=========================================
  Hits          5562      5562

Rebase and re-run of the refresh-example script fixed the failures.


kernel: make 'static inline' implicit to __syscall

The fact that these are all static inline functions internally is an
implementation detail.
Signed-off-by: Andrew Boie<EMAIL_ADDRESS>

updated to fix toolchain/common.h exclusion


Detach renderer from runtime-core

What problem does this feature solve?
Why not separate 'renderer' from 'runtime-core' into a separate package? The 'runtime-dom' relies on the 'renderer' to build the renderer in the browser environment. Is it easier to manage and build renderers for each platform without relying on 'runtime-core'.
What does the proposed API look like?
// build renderer
import { createRenderer } from '@vue/renderer'
const { render, createApp } = createRenderer({
patchProp,
insert,
remove,
createElement,
// ...
})
export { render, createApp }

drop


Turn actual check from an assert into

an if not ...: raise ...
This is a part of #847.
I think CodeCov will complain.  Then I'll add the missing test.

Somehow CodeCov is not working.


E2.3 improvement

Some description improvements and replaced brackets with square brackets because -128 and 127 are included in the range.

OK :)


How to subscribe webp to jquery.last-seen-products.js ?

Would you give me a hint on how to get webp source in  jquery.last-seen-products.js :-)
so i could try to WebP Last-Seen section :-)
console.log(data);
told me that it needs te be added to the data function, but sadly i don't know how :-)
otherwise i just could str_replace the extension and hope that the webp file is there :-D
THX :-D

You have to overwrite that place here: https://github.com/shopware/shopware/blob/5.5/themes/Frontend/Bare/frontend/index/index.tpl#L191 and add the new variables.
But a simple replace could do it also... 🙈

Thank you i already searched a long time 😈
replace would do, but what if there is no .webp?
AND i already can do replacements...
but isn't replacing that whole block insecure (update)? :-/

You dont have to overwrite code.
Append that block frontend_index_header_javascript_data
and modifiy the variable lastSeenProductsConfig :)

You have to clear once your local storage :)

Incognito mode should be enough? JS: image.sourceSetWebp; is still undefined
Or isn't it image.sourceSetWebp but i already tried image.web.sourceSet...

I mean that so https://github.com/shyim/ShyimWebP/commit/99af5b68c13c7003478e573f8c0c0baf818e28aa#diff-216191de9d9d3c5e3545761a262458f4R3 :)

thank you, i do not get the js :-/ but I'm not a developer at all.
But I think I found a small typo
You need a pizza, a composter or some wood ?


Implement migration to previous versions

Currently, only upward migrations are implemented.
Some way to go back to a previous version would be provided, for instance like this:
M::up("CREATE TABLE t(a, b);")
       .down("DROP TABLE t;");

This keeps downward migrations non-mandatory.
Motivation

It seems to be a fairly standard feature
Interest was expressed, for instance by @MightyPork in #2

Unit tests idea

Use the newly introduced drop column sqlite feature. Have a set of migrations and validation at each level (migrate version 1, then downward to 0, to version 2 and downward to 1 then 0).
Check that missing migrations return error

To be clear, I may not implement this myself now, but I would accept a PR implementing this.


Extend get-cold-staking-info to provide additional information

See:

I notice that the staking tab contains its own separate staking history. Is this really what we want? There is really only one staking process that may sometimes generate a normal stake and sometimes a cold stake


Missing Source Explorer

Type: Bug
I can no longer see the source explorer. And, I do not see it under View. I've tried to follow the steps found while googling but none of them worked.
I also loaded from the terminal window without extensions and the same happened.
Other tabs such as Git and extensions, etc. are still there and visible. I can click on them to experience the functionality I expect from them.
VS Code version: Code 1.79.2 (Universal) (695af097c7bd098fbf017ce3ac85e09bbc5dda06, 2023-06-14T08:58:52.392Z)
OS version: Darwin arm64 22.5.0
Modes:

System Info

Item
Value

CPUs
Apple M1 Max (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
4, 5, 6

Memory (System)
32.00GB (0.87GB free)

Process Argv
--crash-reporter-id 9db60bcb-d60b-4313-bc58-eef041bd5ad3

Screen Reader
no

VM
0%

Extensions (54)

Extension
Author (truncated)
Version

better-comments
aar
3.0.2

project-manager
ale
12.7.0

vscode-apollo
apo
1.19.11

atlascode
atl
3.0.3

vscode-database
baj
2.2.3

simple-react-snippets
bur
1.2.7

turbo-console-log
Cha
2.9.6

codium
Cod
0.6.16

vscode-eslint
dba
2.4.2

githistory
don
0.6.20

xml
Dot
2.5.1

EditorConfig
Edi
0.16.4

auto-rename-tag
for
0.1.10

todo-tree
Gru
0.0.226

terraform
has
2.27.0

implicit-parentheses
Jor
1.1.0

regionfolder
map
1.0.22

rainbow-csv
mec
3.7.0

vscode-azureresourcegroups
ms-
0.7.5

vscode-docker
ms-
1.25.2

csharp
ms-
1.26.0

data-workspace-vscode
ms-
0.5.0

mssql
ms-
1.19.1

sql-database-projects-vscode
ms-
1.1.1

isort
ms-
2022.8.0

python
ms-
2023.10.1

vscode-pylance
ms-
2023.6.40

jupyter
ms-
2023.5.1101742258

jupyter-keymap
ms-
1.1.2

jupyter-renderers
ms-
1.0.15

vscode-jupyter-cell-tags
ms-
0.1.8

vscode-jupyter-slideshow
ms-
0.1.5

remote-containers
ms-
0.295.0

remote-ssh
ms-
0.102.0

remote-ssh-edit
ms-
0.86.0

remote-wsl
ms-
0.79.5

azure-account
ms-
0.11.5

powershell
ms-
2023.6.0

remote-explorer
ms-
0.4.0

sqltools
mtx
0.28.0

vscode-thunder-client
ran
2.8.3

vscode-commons
red
0.0.6

vscode-yaml
red
1.13.0

LiveServer
rit
5.7.9

vs-code-prettier-eslint
rve
5.1.0

jenkinsfile-support
sec
0.1.0

vscode-scss-formatter
sib
2.5.0

html5-boilerplate
sid
1.1.1

sonarlint-vscode
Son
3.19.0

code-spell-checker
str
2.20.5

remove-empty-lines
use
1.0.1

veracode-vscode-plugin
Ver
1.0.0

veracode-greenlight-for-vs-code
vs-
1.6.5272135

vscode-import-cost
wix
3.3.0

(1 theme extensions excluded)

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscorecescf:30445987
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
pythonvs932:30410667
py29gd2263:30776702
vsclangdc:30486549
c4g48928:30535728
dsvsc012:30540252
pynewext54:30695312
azure-dev_surveyone:30548225
282f8724:30602487
pyind779:30671433
89544117:30613380
pythonsymbol12:30671437
showlangstatbar:30737416
vsctsb:30748421
pythonms35:30701012
a2ce3375:30757347
pythonfmttext:30731395
pythoncmvfstrcf:30756944
fixshowwlkth:30771522
hideindicator:30766889
pythongtdpath:30769146
bgfeh915:30780428
pythonnosm12tcf:30779713
pythonidxpt:30772539
pythonnoceb:30776495

@ecoffman, @CesarJs could you try to invoke the "View: Reset View Locations" commands from the command palette and see if that resolves the issue? If that does not resolve the issue could you please provide a screenshot of what you are seeing. Thanks!

Yes, that fixed it for me. Thank you.
From: Ladislau Szomoru @.>
Date: Wednesday, July 5, 2023 at 11:20 AM
To: microsoft/vscode @.>
Cc: Eric Coffman @.>, Mention @.>
Subject: Re: [microsoft/vscode] Missing Source Explorer (Issue #187049)
@ecoffmanhttps://github.com/ecoffman, @CesarJshttps://github.com/CesarJs could you try to invoke the "View: Reset View Locations" commands from the command palette and see if that resolves the issue? If that does not resolve the issue could you please provide a screenshot of what you are seeing. Thanks!
—
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/187049#issuecomment-1621983197, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABC62QTJ6JXFA2OVUJZYBVTXOWA5FANCNFSM6AAAAAAZ65SUQQ.
You are receiving this because you were mentioned.Message ID: @.***>


Fast CI for all branches except master

Codecov Report

Merging #8 (edb51af) into master (fc7f37a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #8   +/-   ##
=======================================
  Coverage   39.06%   39.06%
=======================================
  Files           6        6
  Lines         256      256
  Branches       39       39
=======================================
  Hits          100      100
  Misses        150      150
  Partials        6        6

Continue to review full report at Codecov.

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


Chroma and Astra DB Search components not allowing Chat Input

When adding a Chroma Search or Astra DB component, I am unable to connect a Chat Input component output to the Chroma Search or Astra DB component input.
Langflow: langflow==1.0.0a57
To Reproduce
Steps to reproduce the behavior:

Create a flow
Add a Chroma Search or Astra DB component
Add a Chat Input component
Attempt to connect the "message/text" of the Chat Input component to the input of the Chroma Search or Astra DB component

Screenshots

The same issue is present when connecting Chat Input to Astra DB Search.

@dosu, for some reason, those instructions no longer work. There seems to be a bug in a recent revision of Langflow that has broken the AstraDB Search and Chroma Search components. The issue may also affect other vector search components, but we haven't tested. Can you find any recent commits that modified the vector search components which may have introduced a regression?

Hey all.
We'll release a fix for this in a few minutes. Should be version 1.0.0a58

Was it related to this?
https://github.com/langflow-ai/langflow/commit/df575708526c57d8703832c10d70a7e8e217ac84
I was just getting familiar with the codebase, so was curious 😄

Was it related to this?
df57570
I was just getting familiar with the codebase, so was curious 😄

Yes.
For now ChatInput should output Message and Text so it can still connect to Text fields. This PR made it output only Message so it stopped working.

By the way, is there a way to improve the automated test coverage of the component interfaces? I don't see a CI process for test running/coverage analysis on PRs, for example. What is the current coverage percent? I've had a good experience with Codecov both in open source projects and at work.

Hey all.
We'll release a fix for this in a few minutes. Should be version 1.0.0a58

Same validation error with Qdrant Search in v1.0.0a58

I can confirm that the Chroma Search component works correctly in v1.0.0a58.
However, perhaps this issue can remain open to track other vector search or similar regressions introduced in the recent refactoring?

yep, "Qdrant Search" still not working: https://github.com/langflow-ai/langflow/issues/2184
Workaround: turn off "Return Record" in "Chat Input" node.

I updated to v1.0.0a58 and v1.0.0a59 and I still get the "Error building Chroma Search: Invalid inputs provided". If I disconnect Chat Input from ChromaSearch and hard code an input string the build succeeds (but the flow is useless because of hard-coded text.) Are there additional config changes in my Chat Input component source to consume the bug fix?

I can confirm that the Chroma Search component works correctly in v1.0.0a58.
However, perhaps this issue can remain open to track other vector search or similar regressions introduced in the recent refactoring?

I updated to v1.0.0a58 and v1.0.0a59 both versions are giving the error:
Error building Component Astra DB Search: Invalid inputs provided.

I confirmed that Chroma Search works in v1.0.0.a59 if you toggle off the Chat Input Return Record in Advanced Settings.

Can confirm that @brianhadaway's suggestion works with AstraDB.
i.e., toggle off the Chat Input Return Record in Advanced Settings.

sorry for the newbie's question, but i cannot find Return Record...

i cancelled the component and re-inserted and now the advanced settings dialog has it... sorry

i cancelled the component and re-inserted and now the advanced settings dialog has it... sorry

still, i disabled Return Record but Chroma Search is still complaining that there is an issue building the component due to invalid inputs provided

You should try hard reload or re-run langflow

I've restarted Langflow, disabled Send Record, and updated to the latest 1.0.0a61 but both Astra and ChromaDB search fail when connected to to the output of the Chat Input component 🤔

I noticed that mine fail if the input is empty. Try with a predefined string to see if it helps :)

Congrats on the 1.0 release!
I'm trying to build a RAG flow with Langflow 1.0.4, following both the Langflow RAG with Astra DB tutorial and Quickstart for DataStax LangFlow. For some reason, the vector search components seem to be missing from the Langflow 1.0.4 release 🤔

Oops, I figured it out. I needed to connect the Vector DB (chroma in this case) to a data parser, pictured:


Add my first file

I have: created a new branch, created a file, and made a commit.

merge my first pull request


Infinite digest loop when using filters inside tooltip expression properties (like popover-html)

There is an error when using filters inside expression (as example popover-html="'some html' | to_trusted")  it caused infinite digest loop (Error message: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!).
The reason is:
scope updates > triggers tooltipLinkedScope 'contentExp()' watcher > scope.$eval(attrs[type]) can again trigger update of the scope
I changed contentExp to evaluate using $parse instead of scope.$eval and moved it to scope watcher
Now contentExp() returns already evaluated value and can't cause infinite loop

@RobJacobs what are your thoughts on this? This sounds like a good change IMO, since evaluating the attribute expression each time is inefficient.

@wesleycho @forceuser I like where this is going but have a suggestion.  Lets see if we can move the watch to the createTooltip function and replace the watch on line 229 for contentExp(), so that it would become:
if (options.useContentExp) {
  tooltipLinkedScope.$watch(contentExpGetter, function(val) {
    contentExpVal = val;
    if (!val && ttScope.isOpen) {
      hide();
     }
    });
....
}

That way, when the tooltipLinkedScope gets destroyed, so does the watch and that watch can serve both purposes (hide tooltip when template is empty).

but the parent of tooltipLinkedScope is ttScope and its isolated, so contentExpGetter may not return any value in tooltipLinkedScope.$watch


Add Keyboard bindings

This PR adds bindings of Keyboard module.
API:
https://facebook.github.io/react-native/docs/keyboard.html
Usage examples:
let onDidShow = event => Js.log(event##endCoordinates##height);
let listener = Keyboard.(
  addListener(KeyboardDidShow, onDidShow)
);
Keyboard.(
  removeAllListeners(KeyboardDidShow)
);
Keyboard.(
  removeListener(KeyboardDidShow, onDidShow)
);
Keyboard.Subscription.(listener |> remove);
Keyboard.dismiss();

ReasonReact:
…
subscriptions: self => [
  Sub(
    () =>
      Keyboard.(
        addListener(KeyboardWillShow, self.handle(onKeyboardWillShow))
      ),
    listener => Keyboard.Subscription.(listener |> remove)
  ),
  Sub(
    () =>
      Keyboard.(
        addListener(KeyboardWillHide, self.handle(onKeyboardWillHide))
      ),
    listener => Keyboard.Subscription.(listener |> remove)
  )
],

@wokalski ✔ done :) thanks for your valuable feedback! let me know if you need me to fix anything else

@mobily looks awesome. Merging. Thanks a lot!

thank you! 🎉


Balance tab: syncing state

[ ] Total Balance from old data should be transparent 40%
[ ] If currency rate not available do not show anything
[ ] Outdated rate should be showed with timestamp
[ ] Remove the word "syncing" show only the percentages
[ ] Deactivate send button on syncing

web - https://zpl.io/2EKRD5y
app - zpl://screen?sid=5bd7f9c37265930a07e00ecd&pid=5b167c731d079e4122e946b7

@TalgatNurdinov removed " Outdated rate should be showed with timestamp". After testing this on Android we agreed that showing outdated ex rate with time stamp would take too much space


clickIds with platform information

Is your feature request related to a problem? Please describe.
Currently, a platform's click IDs are only mapped to a clickId parameter. There is no information about the used platform.
Describe the solution you'd like
Add another map to the session detection that adds a platform parameter. And maybe also update a few more common id parameters for the detection.

Once, it felt like a good idea to map all marketing IDs to clickId. However, that was against the principle of not changing data during collection. Thus making it difficult to distinguish between a gclid and fbclick.  Now I feel bad.
While the additional platform parameter can be helpful, I'm considering removing the mapping towards clickId and leaving the parameters as they were initially called. That would make platform redundant.

After careful consideration, I concluded that renaming original event names and adding a platform parameter were terrible ideas. If the value is clickId, an additional clickId parameter is added referencing the key parameter. This way, no renaming takes place, and clickId detection is possible.
getMarketingParameters('https://example.com/?gclid=xxx');
// Returns { gclid: "xxx", clickId: "gclid" }


Check that tree is non-empty for root generation

Fixes https://github.com/olivmath/merkly/issues/19

❤ Good work bro!!
Just fix the lint, use black .

❤ Good work bro!!
Just fix the lint, use black .

I commented too late and you've corrected it!


Basic support for windows platform

Description
Adds support at a very basic level to get things working on windows.
Issues Resolved
#88
Check List

[x] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable
[x] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

Not sure I'd like to see windows support in the documentation quiet yet as it's barely featured.

@jonlives updated as requested. :)

Merging this now - will take me a few days to work through the list of outstanding pull requests and cut a new release, so please bear with me!


Highlight Group of Inactive Status Bars

-closed-

Hiyyo @MrWelsch,
As you mentioned, the properties in staline and stabline are not consistent.
Will refactor that part this week, thanks for pointing that out 👍🏻


Prepare January 2022 release for ServiceBus

Prepare January 2022 release for ServiceBus

azure-messaging-servicebus

Should we bump up the core amqp version as well in the pom?

Hi Kishore, the core (azure-core, azure-core-amqp) versions were already updated after the release of core packages, so the pom was up to date before this pr.


The setenv_ros2rti.bash script points to the wrong RMW

The documentation at https://docs.ros.org/en/galactic always tells users to source /opt/rti.com/rti_connext_dds-5.3.1/resource/scripts/rtisetenv_x64Linux3gcc5.4.0.bash when using RTI Connext 5.3.1 from the debian, which is the correct thing to do.
However, the vestigial /opt/rti.com/rti_connext_dds-5.3.1/setenv_ros2rti.bash still exists, and sets the RMW_IMPLEMENTATION to rmw_connext_cpp, which is now incorrect.  We discussed this a bit in email, and I think the consensus is to remove that script entirely.
That said, this isn't urgent (and it is too late to make a change for Galactic).  So we should just consider fixing this for H-Turtle.  @asorbini FYI.

This is no longer a problem with the Connext 6 packages, so closing this one out.


Try removing restler

It’s an unused dependency.

Was originally added in this commit, which doesn’t seem to use it: b7ee64f3ba2e63c7c8b44440e2b9bfa7429b8ac8


Unable to 'Like' tracks

Currently unable to 'like' tracks.  Selecting the heart icon does not appear to do anything, and tracks are not added to Likes list.
However, it seems tracks can be 'un-liked'. From the Likes menu, selecting the heart icon removes the track from the list, and it cannot be 'liked' again.

I noticed this started happening for me after I followed instructions in #89 to get the app working again, can't say for sure it wasn't working before that though.


client.createOrUpdate is not a function

Hi Team:
When I run this code snippets, I went to an error : client.createOrUpdate is not a function
did I missed something?
node version: v14.15.0
package.json:
"dependencies": {
    "@azure/arm-managementgroups": "^1.1.0",
    "@azure/ms-rest-nodeauth": "^3.0.6",
    "yargs": "^16.1.0"
  },

Debugger attached.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code GWQCU9T4E to authenticate.
(node:23740) UnhandledPromiseRejectionWarning: TypeError: client.createOrUpdate is not a function
    at createMG (E:\workspaces\Microsoft VS Code\nodejs-demo\demo2.js:11:37)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:23740) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:23740) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Waiting for the debugger to disconnect...

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

ID: 24d4f831-e971-91d8-f9e9-70729ef72dc2
Version Independent ID: eb4c0d76-947f-e260-1058-b422e1797e76
Content: Quickstart: Create a management group with JavaScript - Azure governance
Content Source: articles/governance/management-groups/create-management-group-javascript.md
Service: governance
GitHub Login: @rthorn17
Microsoft Alias: rithorn

@v-tawe - Thanks for posting the query. We are looking into it and we will get back to you shortly.

@v-tawe Our since apologies for delay in getting back to the thread, we have reached out to our document author @rthorn17 to further help on this issue. Will keep this thread updated as we get more information. Thank you

@v-tawe It looks like the sample on the docs page is incorrect which we will get updated.  Thanks for calling this out.
It should have const result = await client.managementGroups.createOrUpdate(
argv.groupID,
{

Full sample:
const argv = require("yargs").argv;
const authenticator = require("@azure/ms-rest-nodeauth");
const managementGroups = require("@azure/arm-managementgroups");
if (argv.groupID && argv.displayName) {
    const createMG = async () => {
       const credentials = await authenticator.interactiveLogin();
       const client = new managementGroups.ManagementGroupsAPI(credentials);
      const result = await client.managementGroups.createOrUpdate(
          argv.groupID,
          {
              displayName: argv.displayName
          }
       );
       console.log(result);
    };
    createMG();
}

#assign:DCtheGeek

@v-tawe @rthorn17 Thanks for the question and providing the correct JavaScript code.  I've updated the doc to reflect this.  Once that merges, this issue will automatically close.  Publishing to live will happen at a later point in time.  Thanks again for pointing this out @v-tawe!
@MicrosoftDocs/azure-cxp-triage Please remove label 'product-issue' and add 'doc-bug', and #in-progress


Close code block in README.md

Thanks, I somehow messed up.

No worries, I'm a big fan of your work. Cheers!


Issue with sonarbit dependency

When adding the motorbit extension, occasionaly the sonarbit dependency is not added.
If you try to update it, you end up with conflicting versions 1.03 and 1.04

The depedency targets v1.03
https://github.com/tinkertanker/pxt-motorbit/blob/3aa73f985b1a65acf5df61c0608b2884bfade671/pxt.json#L8
But the current version is 2.00
https://github.com/elecfreaks/pxt-sonarbit/blob/7e1e37b13a65df19f2a92503d8bfa7869632da1b/pxt.json#L3
Does this need updating?

^ @yjsoon @lionyhw

It's fixed. Thank you.


Applied latest openapi 3.0 client code

Proposed changes
This PR introduces appliance latest openapi 3.0 client code.
I cannot split PR because those has dependency with one file, so for testing i should upload those in the same PR.
So what you need to review is https://github.com/ground-x/caver-js-ext-kas/commit/d4761b6ff6bafbc312da8f26985ca5138de052b4 and https://github.com/ground-x/caver-js-ext-kas/commit/cc3f23e3669de5992158ca26627a62d246d511e8 commit.
Except for those two, rest of them are rest-client code changing. So you do not need to review.
Types of changes
Please put an x in the boxes related to your change.

[ ] Bugfix
[x] New feature or enhancement
[ ] Others

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING GUIDELINES doc
[x] I have signed the CLA
[x] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Related issues

Please leave the issue numbers or links related to this PR here.

ContractCallRequest class used _arguements variable name before, but now this class use arguments so i dont need to do this anymore. ContractCallRequest.constructFromObject(obj) will assign arguments to body.data.arguments

Thanks for your reply.


Optimize images in AMP

If PageSpeed sees <amp-img src=foo srcset=bar> it currently doesn't optimize it by default.  You can tell it to optimize the src attribute by setting a UrlValuedAttribute directive:
 UrlValuedAttribute amp-img src image

but (a) this should be on by default and (b) you can't get it to optimize the srcset that way.

Any updates on optimizing the images inside the srcset ?
Any WordPress instance has this issue:
<img src="https://m.quicoto.com/wp-content/uploads/2017/01/xwp-image-110760650jpg.jpg.pagespeed.ic.ZQXNgOGGqF.webp" srcset="https://m.quicoto.com/wp-content/uploads/2017/01/wp-image-110760650jpg.jpg 2000w, https://m.quicoto.com/wp-content/uploads/2017/01/wp-image-110760650jpg-768x768.jpg 768w, https://m.quicoto.com/wp-content/uploads/2017/01/wp-image-110760650jpg-1024x1024.jpg 1024w" sizes="(max-width: 2000px) 100vw, 2000px">
src is being optimized but not the srcset so user who has a modern browser never uses the optimized version.

What version of PageSpeed are you using?  This should be working with 1.12

@jeffkaufman I've run
apt-get update
apt-get upgrade

Everything is up to date. Is there a command or file where I can check the pagespeed version?
Thank you.

If you're on mod-pagespeed-stable then upgrading with apt-get will leave you at the most recent stable release, which is still 1.11 (currently).
To check what version you're running, the easiest way is to go to https://ismodpagespeedworking.com/ (not run by the pagespeed team, but pretty useful!) and see what it shows for the X-Mod-Pagespeed header.  For example, for modpagespeed.com I see X-Mod-Pagespeed: <IP_ADDRESS>-0.

When I manually load the headers for your site I see X-Mod-Pagespeed: <IP_ADDRESS>-0, which is our latest stable version.  I'm not sure why ismodpagespeedworking.com doesn't see the same headers.
If you want to stay on the stable track we're planning to re-release 1.12 as stable pretty soon.  Or you can switch to beta; either works.

@jeffkaufman I'll stay on stable. Thanks again. Keep up the good work.


Workspace Local?

There was no Workspace Local. Not able to proceed

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

ID: 76840d73-f300-0ad5-b9f5-4cfc366ad28e
Version Independent ID: 1f79962e-2c4c-04d0-a74c-7d6ecd34ff78
Content: Create a C# function using Visual Studio Code - Azure Functions
Content Source: articles/azure-functions/create-first-function-vs-code-csharp.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@rkeith
Thanks for your feedback! We will investigate and update as appropriate.

@rkeith Make sure that you have configure your environment correctly and install the latest version of the required tools as documented here. I don't see the same behavior at my end, and I can see the option in my VS Code. I will create the internal work item to update the screenshot as per the latest version the option may be little differ.

In case if you still face the issue then I will suggest to create a thread on the forums - Microsoft Q&A or Stack Overflow to assist you further.
For now, I will go ahead and close this thread.

Hi,
I was unable to get working with Visual Studio Code. I gave up after several hours but was able to get going in a few minutes with Visual Studio 2022.
Rob
---- On Fri, 11 Aug 2023 05:50:13 +0100 MayankBargali-MSFT @.***> wrote ---
https://github.com/rkeith Make sure that you have configure your environment correctly and install the latest version of the required tools as documented https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-csharp#configure-your-environment. I don't see the same behavior at my end, and I can see the option in my VS Code. I will create the internal work item to update the screenshot as per the latest version the option may be little differ.
https://user-images.githubusercontent.com/67255909/259924888-06900622-48d4-4096-8bad-4c5caecb1fb8.png
In case if you still face the issue then I will suggest to create a thread on the forums - https://docs.microsoft.com/en-us/answers/index.html or https://stackoverflow.com/ to assist you further.
For now, I will go ahead and close this thread.
—
Reply to this email directly, https://github.com/MicrosoftDocs/azure-docs/issues/113436#issuecomment-1674208737, or https://github.com/notifications/unsubscribe-auth/ABLJF3MAKOFM2MZQMQCGHPDXUW2YLANCNFSM6AAAAAA3L5SX4U.
You are receiving this because you were mentioned.


Add tests/cypress config

Just adding last files now..

Ready

I pushed a commit for squash. If it looks OK to you feel free to merge.


Crash with Rendering

Minecraft: [1.10.2]
Forge: 12.18.2006
Mod: 1.1.2
Crash Rreport: http://pastebin.com/tVu7F0yk

Caused by optifine, cannot fix

Ok, thanks anyway

Prime, you sure it'll never be fixed?  I'd suggest working with the ImpracticalStorage mod dev to figure this out.  Two minds are better than one.

The version that that bug was in is no longer supported so most likely it won't be. Hopefully the new version we are working on (slowly atleast lol) won't have the same issues

That's good.  Then I'll be able to use it.  I'll use Impractical Storage
until then, it's a great substitute.
On Fri, Apr 14, 2017 at 3:49 PM, Michael Epps<EMAIL_ADDRESS>wrote:

The version that that bug was in is no longer supported so most likely it
won't be. Hopefully the new version we are working on (slowly atleast lol)
won't have the same issues
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/primetoxinz/StacksOnStacks/issues/12#issuecomment-294223381,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACr5pPSSOkVM9rSzUeu9aRhzcAEtZTG_ks5rv83TgaJpZM4JScjO
.

--
Golden rule in Minecraft: Never dig straight down.