[Bug]  End call crashes the app.

Bug Category

[x] Credential Login
[ ] Token Login
[ ] Local Audio Issue
[ ] Remote Audio Issue
[ ] Audio Device Switching
[ ] Mute / Unmute
[ ] Hold / Unhold
[ ] Performance issues
[ ] Other

SDK Version
implementation 'com.github.team-telnyx:telnyx-webrtc-android:v1.2.21-alpha'
Describe the bug
Ending call might result with a crash when the call does not exist. Usually when call is already ended before with different call ID.
Expected behaviour
App does not crash.
To Reproduce
Steps to reproduce the behaviour:

Receive FCM notification.
Login to telnyx.
Receive Invitation to the call with different call ID.
Try to end call from FCM notification.

Android Device (please complete the following information):

Emulator: true.

Logs
Received FCM notification (call_id: "7535678e-7673-40b6-8f67-5617081498b3"):
2023-07-10 13:30:51.504 32069-32165 {metadata={"caller_name":"420732652757","caller_number":"420732652757","call_id":"7535678e-7673-40b6-8f67-5617081498b3"}, message=Incoming call!}

Logged in to telnyx:
2023-07-10 13:30:53.643 32069-32154 [TxSocket] Receiving [{"jsonrpc":"2.0","id":"6c6363f0-7408-4560-80a3-6184fe0e57e4","result":{"message":"logged in","sessid":"d9f641ec-a23d-43f7-a34c-1e8f8f517237"}}]

Received invitation using socket (call_id: "5cfc9563-e3ac-47bf-a219-991b368a95f5"):
2023-07-10 13:30:53.726 ReceivedMessageBody(method=telnyx_rtc.invite, result=InviteResponse(callId=5cfc9563-e3ac-47bf-a219-991b368a95f5, sdp=v=0
	o=FreeSWITCH<PHONE_NUMBER><PHONE_NUMBER> IN IP4 <IP_ADDRESS>
	s=FreeSWITCH
	c=IN IP4 <IP_ADDRESS>
	t=0 0
	a=msid-semantic: WMS vtpH0gotNgR65t6tGdaAOuqieQ7tNAe8
	m=audio 26956 RTP/SAVPF 0 8
	a=rtpmap:0 PCMU/8000
	a=rtpmap:8 PCMA/8000
	a=fingerprint:sha-256 87:53:CA:62:0C:9F:A1:36:57:F6:6B:B9:86:7F:6E:2B:71:DC:88:AF:60:DD:5C:74:6F:CF:3E:62:A1:CD:39:F4
	a=setup:actpass
	a=rtcp-mux
	a=rtcp:26956 IN IP4 <IP_ADDRESS>
	a=ssrc:1957889710 cname:TtFKAU4d0LaW46fB
	a=ssrc:1957889710 msid:vtpH0gotNgR65t6tGdaAOuqieQ7tNAe8 a0
	a=ssrc:1957889710 mslabel:vtpH0gotNgR65t6tGdaAOuqieQ7tNAe8
	a=ssrc:1957889710 label:vtpH0gotNgR65t6tGdaAOuqieQ7tNAe8a0
	a=ice-ufrag:ag1PAiYEYVYBm2A5
	a=ice-pwd:l5GLPAPGbPt6MyxNFos5whAl
	a=candidate:9695192498 1 udp<PHONE_NUMBER> <IP_ADDRESS> 26956 typ host generation 0
	a=candidate:9695192498 2 udp<PHONE_NUMBER> <IP_ADDRESS> 26956 typ host generation 0
	a=silenceSupp:off - - - -
	a=ptime:20
	a=sendrecv
	, callerIdName=420732652757, callerIdNumber=420732652757, sessid=d9f641ec-a23d-43f7-a34c-1e8f8f517237)

Then when I try to cancel the call from FCM it crashes the app.
2023-07-10 13:31:31.896 [TxSocket] Sending [{
		"id": "e47bafbf-0bf1-4363-b6bb-e1ba0e3dd753",
		"jsonrpc": "2.0",
		"method": "telnyx_rtc.bye",
		"params": {
			"cause": "USER_BUSY",
			"causeCode": 17,
			"dialogParams": {
			"callId": "e4264126-939d-403e-9703-be53c740db81"
		},
			"sessid": "d9f641ec-a23d-43f7-a34c-1e8f8f517237"
		}
	}]

This fails since the call does not exist.
2023-07-10 13:31:31.938 Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 32069 (.number.staging), pid 32069 (.number.staging)
2023-07-10 13:31:31.960 [TxSocket] Receiving [{"jsonrpc":"2.0","id":"e47bafbf-0bf1-4363-b6bb-e1ba0e3dd753","error":{"callID":"e4264126-939d-403e-9703-be53c740db81","message":"CALL DOES NOT EXIST","code":-32002}}]

2023-07-10 13:31:32.253 Cmdline: com.second.phone.number.staging
pid: 32069, tid: 32069, name: .number.staging  >>> com.second.phone.number.staging <<<
      #00 pc<PHONE_NUMBER>8c1973  /data/app/~~xxjc5n0s2OTB-pyhUfNdcA==/com.second.phone.number.staging-Y0Mv3h_WiaNnVm99rlXJXg==/base.apk!libjingle_peerconnection_so.so
	(Java_org_webrtc_PeerConnection_nativeClose+15) (BuildId: 6090771d6338227b)
      #03 pc<PHONE_NUMBER>090128  [anon:dalvik-classes18.dex extracted in memory from
	/data/app/~~xxjc5n0s2OTB-pyhUfNdcA==/com.second.phone.number.staging-Y0Mv3h_WiaNnVm99rlXJXg==/base.apk!classes18.dex] (org.webrtc.PeerConnection.close+0)
      #05 pc<PHONE_NUMBER>320704  [anon:dalvik-classes17.dex extracted in memory from
	/data/app/~~xxjc5n0s2OTB-pyhUfNdcA==/com.second.phone.number.staging-Y0Mv3h_WiaNnVm99rlXJXg==/base.apk!classes17.dex] (com.telnyx.webrtc.sdk.peer.Peer.disconnect+12)
      #07 pc<PHONE_NUMBER>3207b0  [anon:dalvik-classes17.dex extracted in memory from
	/data/app/~~xxjc5n0s2OTB-pyhUfNdcA==/com.second.phone.number.staging-Y0Mv3h_WiaNnVm99rlXJXg==/base.apk!classes17.dex] (com.telnyx.webrtc.sdk.peer.Peer.release+0)
      #09 pc<PHONE_NUMBER>31af0c  [anon:dalvik-classes17.dex extracted in memory from
	/data/app/~~xxjc5n0s2OTB-pyhUfNdcA==/com.second.phone.number.staging-Y0Mv3h_WiaNnVm99rlXJXg==/base.apk!classes17.dex] (com.telnyx.webrtc.sdk.Call.endCall+248)
      #11 pc<PHONE_NUMBER>0646b2  /data/data/com.second.phone.number.staging/code_cache/.overlay/base.apk/classes2.dex
	(com.second.phone.number.data.network.source.call.CallRemoteSourceImpl.endCall+286)
      #13 pc<PHONE_NUMBER>067510  /data/data/com.second.phone.number.staging/code_cache/.overlay/base.apk/classes2.dex
	(com.second.phone.number.data.repository.CallRepositoryImpl.endCall+4)
      #15 pc<PHONE_NUMBER>06e4fe  /data/data/com.second.phone.number.staging/code_cache/.overlay/base.apk/classes2.dex
	(com.second.phone.number.domain.usecase.call.EndCallUseCase.invoke+22)
	  #17 pc<PHONE_NUMBER>0e92da  /data/data/com.second.phone.number.staging/code_cache/.overlay/base.apk/classes2.dex
	(com.second.phone.number.presentation.keypad.call.controller.CallControllerImpl.endCall+78)
	  #19 pc<PHONE_NUMBER>0e949c  /data/data/com.second.phone.number.staging/code_cache/.overlay/base.apk/classes2.dex
	(com.second.phone.number.presentation.keypad.call.controller.CallControllerImpl.onControlClick+128)
	  #21 pc<PHONE_NUMBER>0dd0f2  /data/data/com.second.phone.number.staging/code_cache/.overlay/base.apk/classes2.dex
	(com.second.phone.number.presentation.keypad.call.CallForegroundService.onStartCommand+278)

So this relates to other issues like why is the call id changing when it is the same call? Should the canceling call that does not exists really crash the app? And what is the reliable way to know if the call is active? Should I just ignore previous call ids, but what if that call is a real second call. What if I have two calls and I want to finish one of them?
So now I have no proper option to end specific call. If I ignore previous IDs then I lose second call which might be held. If I try to end all cal ids that I received I will crash the app. :shrug:

You might ask why are we ending all the calls? Well that is because if we would not have it like this then call from the firebase notification cannot be canceled. Why you ask? Well becuase if creating connection and logging to telnyx is slower then I will receive another notification with another call id. Thus I cannot end the call because ID already changed. It is also not set in the call or in active calls for some reason.
Sure I can probably try to update the call id. But then again what if there are multiple calls to be had. Can we please please get a unique call identifier that is bound to the real call? And not some pseudo ID which changes withing few seconds?

Hi @Del-S , We've been able to replicate your issue and have found the cause. So basically the server retries calls at regular intervals and that explains the multiple call ids (each call is distinct).  We're currently working on a fix for this.
However there could be a few workaround for the mean time if that works for you :

If you'd want to uniquely Identify a notification you could use the Number as the Unique Identifier to prevent the multiple incoming showing multiple incoming notifications. (For if there should be only one active call)

To cancel a call, the call id from the invite response is always the valid one, in other words the you can use the call id from the SocketMethod.INVITE.methodName and inviteResponse.callId

Caveat : Cancelling a call from push notification might result in same issue described above.
Also the Crash that occurs when ending a call is independent from this issue i.e when the call is not in ringing state yet or without a callid for an inactive call. A fix for that is already in progress. We'll keep you posted on that issue too.

Hi,

We actually currently support only one call at the time so that is not a problem at the moment. Problem is that when I receive a call. I then end it and then receive notification. In my opinion I cannot use the number as a Unique identifier because it might break the situation when someone called to the app. Then ended the call and then called again. In that case if I would use number as unique I would block the second notification which is an actual call. So I cannot do that right now.

Ok so I added this option. When I receive SocketMethod.INVITE I will override my callId. So we should be able to finish the call if it is correct.

Thanks for the info.

Hello, Yes that is correct.


Move new top-level selective imports in std.uni to local scopes

Dmitry said he had problems with locally scoping these, see issue 17813, but I haven't been able to reproduce on linux/x64 with the latest dmd 2.076.1.  Let's see what the auto-tester says.

The single std.socket failure on the Mac auto-tester seems unrelated and spurious.

Thanks, the associated issue can also be closed.  I didn't say this pull fixed it in the commit, because there was nothing to fix.  I simply moved the imports and there was no bug.


⚠ Cioos National CKAN has degraded performance

In 5ef4d79, Cioos National CKAN (https://catalogue.cioos.ca/) experienced degraded performance:

HTTP code: 200
Response time: 10623 ms

Resolved: Cioos National CKAN performance has improved in cb30f39 after 5 minutes.


Fixes #29 Intermittent failures in io.vertx.ext.dropwizard.MetricsTest.testMultiHttpClients

Add some delay before updating latches, so that SPI callbacks can be called in time

Grrr, wrong repo...


GKE 19 - Istio 1.6.14 - TLS Termination SDS 443 Connection Refused

(NOTE: This is used to report product bugs:
To report a security vulnerability, please visit https://istio.io/about/security-vulnerabilities
To ask questions about how to use Istio, please visit https://discuss.istio.io)
Bug description

I got error: Connection Refused when trying to use https (port 443)

[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[x] Security
[ ] Test and Release
[ ] User Experience
[x] Developer Infrastructure
[ ] Upgrade
Expected behavior

Port 443 should be able to access successfully

Steps to reproduce the bug

Create a cluster using GKE
Enable Istio
Upgrade Istio to 1.6.14
Using Certbot to create a certificate for a domain
Create a kubernetes secret of the certificate
Create an Istio Gateway and Service
Try with: curl http://mydomain.com-> successfully
Try with: curl https://mydomain.com-> Connection Refused
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)

istioctl version --remote
client version: 1.9.1
control plane version: 1.6.14-gke.1-006dfdf1f9b4b4ab5877d4775988099cc7bd69fd
data plane version: 1.6.14-gke.1 (1 proxies)

kubectl version --short
Client Version: v1.19.7
Server Version: v1.19.9-gke.1400

How was Istio installed?

Enabled from GKE

Environment where the bug was observed (cloud vendor, OS, etc)

GKE 1.19

This is my configuration file:
#Istio Gateway Configuration
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: sample-gateway
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - "*"
#      tls:
#       httpsRedirect: true
    - port:
        number: 443
        name: https
        protocol: HTTPS
      hosts:
        - "mydomain.com"
      tls:
        mode: SIMPLE
        credentialName: diamed-credential
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: virtualservice-sample
spec:
  hosts:
    - "mydomain.com"
  gateways:
    - sample-gateway
  http:
    - match:
        - uri:
            prefix: /
      route:
        - destination:
            host: myservicehost
            port:
              number: 8080

Additionally, please consider running istioctl bug-report and attach the generated cluster-state tarball to this issue.
Refer cluster state archive for more details.

When I switched to "PASSTHROUGH", I got this error instead:
* Connected to ------------- port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /opt/local/share/curl/curl-ca-bundle.crt
*  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number
* Closing connection 0
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

We do not support Istio 1.6 anymore so unfortunately cannot help here, see https://istio.io/latest/news/support/announcing-1.6-eol/.
If you do see this issue after upgrade I encourage you to follow http://istio.io/help/bugs/#generating-a-cluster-state-archive so we can debug this further.
Thanls!


 Clicking on a permission does nothing and it stays green.
Steps to reproduce:

Install KingdomsX.
Create a Kingdom.
Go into the rank permissions in the Nexus.
Try changing a permission to off and nothing happens.

Image:

Delete rank-editor.yml in nexus GUI folder


[Help wanted] Convert MMS models to sherpa-onnx

Please see https://github.com/k2-fsa/sherpa-onnx/discussions/890
@yaambe and @thewh1teagle have managed to convert MMS models to sherpa-onnx
There are plenty of MMS tts models from https://huggingface.co/facebook/
We need to

[ ] Provide scripts to convert MMS models to sherpa-onnx
[ ] Add them to our Android APKs

Add them to our Android APKs

Why are there so many APKs for each model? Wouldn't it be better to use a single APK per platform and provide links with Deep Links to models? A click on them would install the model in the app within a few seconds.

A click on them would install the model in the app within a few seconds.

Would you mind contributing the code to implement such a click?

Would you mind contributing the code to implement such a click?

I can try
Does the library for Kotlin can enable all capabilities of sherpa-onnx so that single APK will support any model?
I'm trying to understand what will be the flow except for downloading the model.
Imagine a deep link such as ?action=download&model=url1&model=url2&model=url3 for multiple model eg. vad + speaker embedding.
After it downloaded, does the current app code should be able to use it easily?
In addition some models downloaded compress with tar or zip so there's need to use compression library.
Overall I think that in the long term it will simplify the repo of sherpa-onnx, and will save many build time.

Does the library for Kotlin can enable all capabilities of sherpa-onnx so that single APK will support any model?

Yes. Kotlin APIs support all functions of sherpa-onnx.

By the way, our main goal is to provide easy to use APIs and the APKs we provide are to demonstrate how to use our provided APIs.
We try to make the code of the APK as easy to understand as possible.
Users can develop their own APP based on our example APKs.

Converted all to onnx - https://huggingface.co/willwade/mms-tts-multilingual-models-onnx/tree/main

Amazing! There are 919 models!
I will try to add it to sherpa-onnx.

NB: Some I was seeing an error with the vits-mms script as it doesnt support uroman - thats the reason for less than the official MMS repo

NB: ive added this which could be useful: https://huggingface.co/willwade/mms-tts-multilingual-models-onnx/blob/main/languages-supported.json - (its really annoying the steps to get your language of choice if you dont know the three letter iso code. This file shows which ones we dont have onnx models for and which ones we have a sample.wav in the onnx directory for (its around 145 from memory)). It also has links to the hugging face directories for full model or onnx model.

https://dl.fbaipublicfiles.com/mms/misc/language_coverage_mms.html

Nice! I might merge the data of that so its in a json format. I'll focus on the TTS column for this

By the way, our main goal is to provide easy to use APIs and the APKs we provide are to demonstrate how to use our provided APIs.
We try to make the code of the APK as easy to understand as possible.
Users can develop their own APP based on our example APKs.

We have discussed that on much issues, Android privide both TTS and STT API, a standard API to use with any app. I hope that some day sherpa-onnx will provide an engine that support completely such API. I doubt that someone would make an app that use specifically sherpa-onnx, instead of use a generic engine (that is not included on the app itself).
@thewh1teagle on #569 you can find a link to an experimental app that download TTS models, without the nonsense of have different apk package with same engine.

is this onnx models converted to sherpaonnx or we have to convert them?

All been converted already https://huggingface.co/willwade/mms-tts-multilingual-models-onnx/

Re: APKs. I’m getting a lot of requests to build apks for tts for each of the 1300 mms models. Can someone point me in the direction of the build script for the apks ?

Re: APKs. I’m getting a lot of requests to build apks for tts for each of the 1300 mms models. Can someone point me in the direction of the build script for the apks ?

Please see
https://github.com/k2-fsa/sherpa-onnx/blob/master/.github%2Fworkflows%2Fapk-tts-engine.yaml


Grid / list ordering

Users should be able to specify what fields to order items inside Stump grids/lists. For example, when viewing the media of a series, the Order By button in the TopBar should contain the allowed media entity fields as options for selection. When an option is selected, the media would be sorted by that field.
Additionally, the OrderDirectionToggle button should update the direction for this ordering.
The API does currently accept the required query params for a minimally viable solution, however it is not overly type safe. I’d like to look into reworking the current implementation while working on this task to make it safer between Rust and TypeScript. Maybe something like:
// Note: I am separating these options / exclusions in case I want to use either independently.
export type MediaOrderByExclusions = Extract<
	keyof Media,
	'currentPage' | 'series' | 'readProgresses' | 'tags'
>;
export type MediaOrderBy = keyof Omit<Media, MediaOrderByExclusions>;

export type SeriesOrderByExclusions = Extract<
	keyof Series,
	'library' | 'media' | 'mediaCount' | 'tags'
>;
export type SeriesOrderBy = keyof Omit<Series, SeriesOrderByExclusions>;

export type LibraryOrderByExclusions = Extract<keyof Library, 'series' | 'tags' | 'libraryOptions'>;
export type LibraryOrderBy = keyof Omit<Library, LibraryOrderByExclusions>;

Interface tasks:

Note: There are only a few queries where this is currently applicable. This will likely change as Stump grows, but this issue is more so about creating the infrastructure to make is easier to use throughout in the future.

[x]  Use the useQueryParamStore to store query configuration, it can then output the resulting url search params for relevant API calls
[x]  Adjust current API calls to accept optional query params (which come from the store)

[x] getLibrarySeries
[x] getSeriesMedia

[x]  Use the useQueryParamStore in relevant common/client react-query hooks

[x] useLibrarySeries
[x] useSeriesMedia

[ ]  Options should be based on current viewable entity (e.g. media fields, series fields, etc)

Core tasks:

[ ]  Update API routes to match the page request interpretation from library/<id>/series

This is actually pretty much done, just requires some UI tweaks currently being handled in https://github.com/aaronleopold/stump/tree/al/bye-chakra


Type of instance-of-class-implementing-interface inside interface

I want to define an interface that classes can implement which defines a method that takes, as a parameter, an instance of whatever class implements that interface.
I tried this:
interface Doable {
  someInterfaceProp: boolean
  doSomething(otherDoable: Doable): Doable;
}

class VeryDoable implements Doable {
  someInterfaceProp: true;
  nonInterfaceProp: true;

  doSomething(otherVeryDoable: VeryDoable): VeryDoable {
    if (otherVeryDoable.someInterfaceProp || otherVeryDoable.nonInterfaceProp) {
      return otherVeryDoable;
    } else {
      return this;
    }
  }
}

Flow doesn't like this because it considers VeryDoable incompatible with Doable. If I have it use Doable as the param type, then of course it thinks otherVeryDoable doesn't have props of Very Doable.
AFAICT, this is impossible with Flow — I can't find a way to express "the class that will implement this interface" as a type from the interface.

The incompatibility seems legitimate to me. Doable is not a subtype of VeryDoable, so your doSomething on VeryDoable does not subtype the doSomething on Doable.
With respect to expressing "the class that will implement this interface" as a type from an interface, I noticed an issue the other day where somebody parametrized their interface with this to achieve the goal, e.g.
interface Clonable<This> {
  clone(): This;
}

class X implements Clonable<this> {
  clone(): this {
    return new this.constructor();
  }
}

@popham is right, the type error is correct here.

Does flow have some legitimate way to solve this issue? The workaround with parametrized generic may work, but it's still a workaround. We need to pass an additional parameter in every implementation, so it would be nice to have some standard way of doing this.

I am trying to prsent you @attaboy @popham @samwgoldman @PinkaminaDianePie an improved workaround by following rules.

In declaring phase, when you want to implement an interface say IMyinterface, you have to declare a pair of that

export interface IMyinterface_<Impl> {
bar(other: Impl): any;
}

export interface IMyinterface {
bar(other: IMyinterface)
}

when you provide sub classes for peers to implement, you import the first interface and write

export class A implements IMyinterface_ { bar(other: A): any}

when you try to declare an object to point to an implementation instance, you import the second one, because according to https://flow.org/en/docs/types/interfaces/, a class implements an interface  do not have to declare it explicitly

let objrefA : IMyinterface = new A()
let objrefB : IMyinterface = new A()
objref.bar(objrefB)

How do you think about it?

I faced to the problem with a type of "this is a class which implements interface IMyInterface" as well and this seems that it does what we want:
ClassImplementingIMyInterface: Class<IMyInterface>
where Class is Flow Utility Type.


Upgrade to Dotnet 1.0.1

1.0.1 is out and we should try upgrading

Update: whoever works on this, document your process so we can replicate. We've had a lot of dependency issues so knowing what needed to be changed where will help in the future.
http://www.hanselman.com/blog/NETCore10IsNowReleased.aspx

For entity framework core, we are currently referencing a newer alpha version (“1.1.0-alpha1-22397”). The article is asking for us to switch it to 1.0.1., should I switch it to the older version?

I this still blocked or OK now?


Error on running in cluster

Hi,
I am trying to run SigProfiler on our slurm cluster and I am getting the following errors:
I tried to look in closed issue posts but could not come up with a solution: I tired including the "if name == 'main':
run()" from one post to my python script but it still gives the following error.
File "/home/uvi/be/mva/.local/lib/python3.7/site-packages/SigProfilerExtractor/subroutines.py", line 541, in decipher_signatures
verbose = False, replicate_generators=replicate_generators)
File "/home/uvi/be/mva/.local/lib/python3.7/site-packages/SigProfilerExtractor/subroutines.py", line 446, in parallel_runs
pool = multiprocessing.Pool(processes=n_cpu)
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/context.py", line 119, in Pool
context=self.get_context())
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/pool.py", line 176, in init
self._repopulate_pool()
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/pool.py", line 241, in _repopulate_pool
w.start()
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/process.py", line 112, in start
self._popen = self._Popen(self)
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/popen_spawn_posix.py", line 32, in init
super().init(process_obj)
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/popen_fork.py", line 20, in init
self._launch(process_obj)
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/popen_spawn_posix.py", line 42, in _launch
prep_data = spawn.get_preparation_data(process_obj._name)
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/spawn.py", line 143, in get_preparation_data
_check_not_importing_main()
File "/opt/cesga/easybuild-cesga/software/Compiler/gcccore/6.4.0/python/3.7.0/lib/python3.7/multiprocessing/spawn.py", line 136, in _check_not_importing_main
is not going to be frozen to produce an executable.''')
RuntimeError:
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.
    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable.

Hi @linkmonica,
Could you please include the script that you are running?
Thanks!

Hi,
I have included the script. and I call it in shell script for submission simply as:
python run_sigprofiler1.py samplename
run_sigprofiler.py.zip

Hi @linkmonica,
It sounds like you tried re-organizing your code, but try this script and if you still receive the error please reach out, thanks!
run_sigprofiler.py.zip

Hi @mdbarnesUCSD ,
Thanks for your help, it works on my server now and thats very helpful,but there is a small issue that when I give argument "context=96" I get the following error, whereas with context as default, it runs completely and without any issues. (This is just for information,but does not stop my future work). Thanks once again for solving the issue.
Traceback (most recent call last):
File "run_sigprofiler.py", line 12, in
run(input, output)
File "run_sigprofiler.py", line 6, in run
sig.sigProfilerExtractor("vcf",output, input, minimum_signatures=1, maximum_signatures=10, nmf_replicates=100, context_type="96",exome=1)
File "/home/uvi/be/mva/.local/lib/python3.7/site-packages/SigProfilerExtractor/sigpro.py", line 814, in sigProfilerExtractor
decomp.spa_analyze( allgenomes, output, signatures=processAvg,genome_build="GRCh37", verbose=False,decompose_fit_option= True,denovo_refit_option=True,cosmic_fit_option=False,devopts=devopts)
File "/home/uvi/be/mva/.local/lib/python3.7/site-packages/SigProfilerAssignment/decomposition.py", line 243, in spa_analyze
refit_denovo_signatures=False)
File "/home/uvi/be/mva/.local/lib/python3.7/site-packages/SigProfilerAssignment/decompose_sub_routines.py", line 488, in make_final_solution
init_decomposed_sigs = union(init_decomposed_sigs, list(attribution[de_novo_sig]))
KeyError: '96A'

Hi,
This is an issue that is related to a variable in a dependent package of SigProfilerExtractor. Thanks for bringing this to our notice. We will fix it in the upcoming release.
Please reopen the ticket if the issue persists.


[regression-test]Add order-by to test_bitmap_function

Proposed changes
Issue Number: close #xxx
Problem Summary:
Describe the overview of changes.
Checklist(Required)

Does it affect the original behavior: (Yes/No/I Don't know)
Has unit tests been added: (Yes/No/No Need)
Has document been added or modified: (Yes/No/No Need)
Does it need to update dependencies: (Yes/No)
Are there any changes that cannot be rolled back: (Yes/No)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

Fast merge it to pass build pipeline.


Extract candidates in 0.9.3 version

Issue description
I am wondering how can I extract candidates that are not full sentences. In the previous version there was an ability to create the session to database and use predefined extractors (n-grams, nlp, regex based). Is there any option to do it now?

Hi @maciejbiesek we moved the relation extraction-specific functionality to snorkel-extraction.  It's not up to date or being actively maintained, but it is available there.  Also see our notes on v0.9 here.


Cannot control the order of the results

Currently I use a watcher method which does some complicated search and provides array of results in a beautiful order (based on my custom priority). But when results are displayed in the popup - they are ordered in some internal order, which is weird.
It would be great to be able to just provide array of objects with my ordering and be able to see them in the same order in popup.

Does it work by sorting via backend API?

I agree this is an issue!
Unfortunately this repo isn't maintained any longer, but I'm actively maintaining a fork here: https://github.com/mattzollinhofer/vue-typeahead-bootstrap
I believe I have it fixed the sorting issue in the most recent release, give it a try! The config option to help with this is disableSort. The component will respect whatever order you provide!
https://www.npmjs.com/package/vue-typeahead-bootstrap


License

Could you please add a license, so your code can be used legally? :)

I added license. Thx :)

Thanks!


UI API called on background thread

Building and running current master (40f0f59c39797c251dfbd44563586663b6812ccc) in Xcode produces runtime errors right away:
Main Thread Checker: UI API called on a background thread: -[NSWindow setLevel:]

Fixing that by dispatching back to the main queue produces more of these errors when QSTaskViewer tries to add view controllers, thus loading nibs on the BG queue, for background tasks that have been triggered.
Main Thread Checker: UI API called on a background thread: -[NSViewController initWithNibName:bundle:]
PID: 19985, TID: 1749351, Thread name: (none), Queue name: com.apple.root.utility-qos, QoS: 17
Backtrace:
4   Quicksilver                         0x0000000100f965f4 -[QSTaskViewController initWithTask:] + 280
...

Main Thread Checker: UI API called on a background thread: -[NSViewController initWithNibName:bundle:]
PID: 19985, TID: 1749351, Thread name: (none), Queue name: com.apple.root.utility-qos, QoS: 17
Backtrace:
4   Quicksilver                         0x0000000100f965f4 -[QSTaskViewController initWithTask:] + 280
...

Main Thread Checker: UI API called on a background thread: -[NSViewController setRepresentedObject:]
PID: 19985, TID: 1749351, Thread name: (none), Queue name: com.apple.root.utility-qos, QoS: 17
Backtrace:
4   Quicksilver                         0x0000000100f9665c -[QSTaskViewController initWithTask:] + 384
...

Looking for ways to add   QSGCDMainAsync calls is not a problem, here, too, I wonder if I'm overlooking something -- because this must've been an issue in the past. How come y'all can compile and run this just fine without these changes? :)

I’ve seen things like that in the past when OS updates are released, but it seems to get less picky as the SDK gets updated. When I get time, I’ll clone to a fresh directory and see if I run into the same problems.

I can provide fixes for this, too; I just need to know the general direction. Probably easiest to decipher in context of PRs. The location to dispatch back to main (as always) requires some consideration.

Building and running in a new directory didn’t give me much trouble (except for all the missing plug-ins that made it kinda useless).
What are you doing in the UI to hit the errors? I thought I had gotten them all in #2503, but I know some more cropped up later. I just don’t see them for some reason.

These are all firing during the app launch procedure.
I wonder if it's the M1 Monterey Mac causing trouble. The combo is pretty new to me and I don't yet trust if fully :)

I saw similar errors in the console when running from source, but the app launched and behaved normally.

I’m on an M1 Max running Monterey.


Getting room error RoomError: -32601 - null while joining

Hi,
I am getting "RoomError: -32601 - null" while joining room. Could you please let me know what is the reason for this error?
--
Thanks

Hi,
I am getting "RoomError: -32601 - null" while joining room. Could you please let me know what is the reason for this error?
--
Thanks

I am also getting the same error,
Anyone, please help me


libusb_handle_events_completed cause seqfault

Hi. Nice work!
I have some problems with running proxy.
Is it possible to "mitm" the communication between the flash drive and my external computer?
"pendrive" <-> (USB <- raspberrypi -> USB OTG) <-> my external pc
My setup:
Raspberry Pi 4 B - 8gb ram
Kernel 5.15.34
libusb-1.0.25
Im getting seqfault in libusb_handle_events_completed(NULL, NULL);

stacktrace:

After commenting this line libusb_handle_events_completed(NULL, NULL); it looks working better, but still failing?
Device is: fe980000.usb
Driver is: fe980000.usb
vendor_id is: 2316
product_id is: 4096
5 Devices in list
Target device not found
Device opened successfully
Setup USB config successfully
Start hotplug_monitor thread, thread id(3243)
Start for EP0, thread id(3241)
event: connect, length: 0
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0100, wIndex: 0x0000, wLength: 18
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_DEVICE
Control transfer succeed
ep0: transferred 18 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 2
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 2 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0302, wIndex: 0x0409, wLength: 18
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 18 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0301, wIndex: 0x0409, wLength: 2
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 2 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0301, wIndex: 0x0409, wLength: 32
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 32 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0f00, wIndex: 0x0000, wLength: 5
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_BOS
Control transfer succeed
ep0: transferred 5 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0f00, wIndex: 0x0000, wLength: 22
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_BOS
Control transfer succeed
ep0: transferred 22 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 9
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_CONFIG
Control transfer succeed
ep0: transferred 9 bytes (in)
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0200, wIndex: 0x0000, wLength: 44
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_CONFIG
Control transfer succeed
ep0: transferred 44 bytes (in)
event: control, length: 8
  bRequestType: 0x00 (OUT), bRequest: 0x09, wValue: 0x0001, wIndex: 0x0000, wLength: 0
  type = USB_TYPE_STANDARD
  req = USB_REQ_SET_CONFIGURATION
Found desired configuration at index: 0
ep #0:
  name: ep1in
  addr: 1
  type: iso blk int
  dir : in  ___
  maxpacket_limit: 1024
  max_streams: 0
ep #1:
  name: ep1out
  addr: 1
  type: iso blk int
  dir : ___ out
  maxpacket_limit: 1024
  max_streams: 0
ep #2:
  name: ep2in
  addr: 2
  type: iso blk int
  dir : in  ___
  maxpacket_limit: 1024
  max_streams: 0
ep #3:
  name: ep2out
  addr: 2
  type: iso blk int
  dir : ___ out
  maxpacket_limit: 1024
  max_streams: 0
ep #4:
  name: ep3in
  addr: 3
  type: iso blk int
  dir : in  ___
  maxpacket_limit: 1024
  max_streams: 0
ep #5:
  name: ep3out
  addr: 3
  type: iso blk int
  dir : ___ out
  maxpacket_limit: 1024
  max_streams: 0
ep #6:
  name: ep4in
  addr: 4
  type: iso blk int
  dir : in  ___
  maxpacket_limit: 1024
  max_streams: 0
ep #7:
  name: ep4out
  addr: 4
  type: iso blk int
  dir : ___ out
  maxpacket_limit: 1024
  max_streams: 0
ep #8:
  name: ep5in
  addr: 5
  type: iso blk int
  dir : in  ___
  maxpacket_limit: 1024
  max_streams: 0
ep #9:
  name: ep5out
  addr: 5
  type: iso blk int
  dir : ___ out
  maxpacket_limit: 1024
  max_streams: 0
ep #10:
  name: ep6in
  addr: 6
  type: iso blk int
  dir : in  ___
  maxpacket_limit: 1024
  max_streams: 0
ep #11:
  name: ep6out
  addr: 6
  type: iso blk int
  dir : ___ out
  maxpacket_limit: 1024
  max_streams: 0
ep #12:
  name: ep7in
  addr: 7
  type: iso blk int
  dir : in  ___
  maxpacket_limit: 1024
  max_streams: 0
ep #13:
  name: ep7out
  addr: 7
  type: iso blk int
  dir : ___ out
  maxpacket_limit: 1024
  max_streams: 0
bNumEndpoints is 2
bulk_out: addr = 1, ep = #1
Creating thread for EP01
Start reading thread for EP01, thread id(3244)
bulk_in: addr = 2, ep = #2
Creating thread for EP82
Start writing thread for EP01, thread id(3245)
Start reading thread for EP82, thread id(3246)
process_eps done
Start writing thread for EP82, thread id(3247)
event: control, length: 8
  bRequestType: 0xa1  (IN), bRequest: 0xfe, wValue: 0x0000, wIndex: 0x0000, wLength: 1
  type = USB_TYPE_CLASS
  req = unknown = 0xfe
Control transfer succeed
ep0: transferred 1 bytes (in)
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 36 bytes to queue
EP82(bulk_in): wrote 36 bytes to host
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 36 bytes to queue
EP82(bulk_in): wrote 36 bytes to host
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
event: control, length: 8
  bRequestType: 0x80  (IN), bRequest: 0x06, wValue: 0x0300, wIndex: 0x0000, wLength: 255
  type = USB_TYPE_STANDARD
  req = USB_REQ_GET_DESCRIPTOR
  desc = USB_DT_STRING
Control transfer succeed
ep0: transferred 4 bytes (in)
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 18 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 18 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 8 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 8 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 4 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 4 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 36 bytes to queue
EP82(bulk_in): wrote 36 bytes to host
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 512 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 512 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 512 bytes to queue
EP82(bulk_in): wrote 512 bytes to host
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 512 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 512 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 512 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 512 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 512 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 512 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 512 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
EP82(bulk_in): wrote 512 bytes to host
EP82(bulk_in): wrote 13 bytes to host
EP1(bulk_out): read 31 bytes from host
EP1(bulk_out): enqueued 31 bytes to queue
EP82(bulk_in): enqueued 1024 bytes to queue
EP82(bulk_in): enqueued 512 bytes to queue
EP82(bulk_in): enqueued 13 bytes to queue
ioctl(USB_RAW_IOCTL_EP_WRITE): Cannot send after transport endpoint shutdown
ioctl(USB_RAW_IOCTL_EP_READ): Cannot send after transport endpoint shutdown

Hi,
Thank you for spending time on this project!
I am sorry that I am busy preparing coding interview for my next job, so I won’t be able to check what went wrong in near future (probably a month). Will check this out when I get my next job.

Hi @patryk4815,
Finally have some time to check this.

Is it possible to "mitm" the communication between the flash drive and my external computer?

Yes, it is possible, but I haven't implement it yet, so you might need to edit the code to modify the USB packet before sending to Host or Device.

Im getting seqfault in libusb_handle_events_completed(NULL, NULL);

Unfortunately, I have tried all USB devices that I have, still not able to reproduce the issue currently. I found that libusb_handle_events(NULL) is used to handle hotplug in libusb official example, could you try this when you have time? thanks!


feat!: improve generic type accuracy

restricts generic args on object resolver (T is now T extends JsonValue)
adds optional generic args for string/number resolver for unions of string/number literals

rebased on main b/c of conflicts.


Change clockwise direction of DDHTimerTypeSolid

Hi, I'm sorry this is probably a really stupid question, but how can I change the direction of the DDHTimerTypeSolid? Currently it's moving anti-clockwise.
I've tried changing the clockwise parameter in some of the functions in drawrect, but I can't get it to work. Needless to say, I'm a beginner.
Any help would be much appriciated!

I don't get it. Do you want to fill the circle when the number decreases?

No, sorry. I just want the outer "circle" to go in the other direction.
Illustration:
http://imgur.com/a/zrDTm
Currently it's moving anti-clockwise, and I would like it to move clockwise.

Try to change this line self.minorShapeLayer.strokeEnd = (float)self.minutesOrSeconds/self.maxValue; to self.minorShapeLayer.strokeEnd = (1 - (float)self.minutesOrSeconds/self.maxValue);.
Please let me know if it works.

It was the majorshape since I use the DDHTimerTypeSolid.
self.majorShapeLayer.strokeEnd = (1 - (float)self.minutesOrSeconds/self.maxValue);
And I also removed the handlePath as it was still going the other direction, and wasn't really necessary.
But it works! Thanks a lot :+1:


Sustain Pedal - Workarounds?

Sustain pedal is not passed through to the synths as the controller does not have a way to do that manually. It is currently mapped to macro 3. I could use a VST plugin that generates sustain or simulates it, but... the ones I've tried crash or don't work with bitwig. :(
VST-to-sustain conversion would be an acceptable solution, if it worked, as you don't always want sustain to actually be a sustain pedal (ie could toggle leslie on an organ or I've used it for patch overlays to provide a second layer of synths for horn hits). Will Bitwig 2 have powerful enough midi generation capability that this won't be an issue?
Find better workaround or fix?

Idea: use pizmidi's "midiconverter3" to convert note to cc.

Send notes on channel 16 corresponding to desired CC
Insert midiconverter3 and convert channel 16 notes to CC on channel 1
??
Profit! And also CCs.

This is currently implemented using note #127? An unfortunate side effect is that this requires pizmidi's midiconverter3 to be in every instrument chain, or something else to block the note.

May be a cleaner fix in Bitwig 2, either internally or using the new MIDI plugs. Researching.


Cannot find -lopencv_dep_cudart error

The following error shows up while doing sudo make install after cmake inside the build folder
[ 14%] Linking CXX executable cudasift
/usr/bin/ld: cannot find -lopencv_dep_cudart
collect2: error: ld returned 1 exit status
CMakeFiles/cudasift.dir/build.make:757: recipe for target 'cudasift' failed
make[2]: *** [cudasift] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/cudasift.dir/all' failed
make[1]: *** [CMakeFiles/cudasift.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

Solved by setting CUDA_USE_STATIC_CUDA_RUNTIME as OFF
set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)


Highlight VRF in documentation

SUMMARY

We currently support randomBytes via a precompile and expose this in our API docs. Consider highlighting this feature in our Sapphire docs.
ISSUE TYPE

Feature Idea

COMPONENT NAME

Documentation.
ADDITIONAL INFORMATION

Chainlink has a whole page.

269#yfl


New package: Instruments v0.2.0

Registering package: Instruments
Repository: https://github.com/BBN-Q/Instruments.jl
Created by: @matthewware
Version: v0.2.0
Commit: 0c66bf4c67d675bb7ed2267010c54313347ad701
Git reference: master

[noblock] I don't want to cut a major release to register the package


Macro Not Rendering in Custom DocType RTE

We created a custom doctype that can be added to the Grid on a page and this doctype contains an RTE as one of the fields.
We then created an "Insert Button" macro so a user could insert a button inline with text content directly into any RTE.
The macro renders fine in the BackOffice when it is inserted into an RTE added directly to the grid. And it also renders in the RTE of the doctype but once the doctype is saved, the macro does not render in the Grid.

Thanks for reporting this.
Since I don't use v7 any more, I have marked this as up-for-grabs, so you or someone else kan send a PR with a fix.

Closing this as v0 is unsupported


Feature Proposal

Hi,
for now the heatmap allow us only to have data of type number. The  yAxis takes only days of type number and xAxis hours of type number. What if i want to have string there?  I mean something like this:

Hi @Tsatia, thanks for the feature proposal!
That's a totally legit use case and I agree it would be useful for this component to support this use case!


Hubspot destination : Mapping ID to lowercase, custom audience support

Functionality update
We now automatically convert the **[UICONTROL Mapping ID]** values in the [schedule audience export](#schedule-segment-export-example) step to `lowercase`. Additionally we also sanitize `spaces` and `special characters`. This is done to ensure compliance with [!DNL Hubspot] field names.We now support custom uploads, see the [supported audiences](#supported-audiences) section.
Documentation update
We corrected the target identity mapping in the mapping considerations and example section. During identity mapping we had erroneously called out mapping to an attribute instead of the Email identity.

Closing this PR for now. We'll reopen it if we decide to implement this functionality.


Triangle dataset

Is there a place I can access the triangle data set mentioned in the paper, or it's generator anywhere? Thanks

Currently neither data or code are published. We are looking into options to publish it.

Hi aaronrmm,
here is the colab to generate the data: https://colab.sandbox.google.com/github/google/compare_gan/blob/master/colabs/Convex_Polygons_Dataset.ipynb


export function then, blocks import()?

Just curious why the README says that an exported function then() {} could mess up the imports.
In my mind, I see it working fine. The following,
// module A

// do some async stuff
await Promise.resolve()

export function then() {console.log('then function')}

// module B
import {then} from './moduleA'

then()

would be compiled to something like
async function evaluateModuleA() {
  // compiler pastes A's code here

  // do some async stuff
  await Promise.resolve()

  // export function then() {...}, compiled to:
  return { then() {console.log('then function')} }

}

function evaluateModuleB() {
  // import {then} from './moduleA', compiled to:
  evaluateModuleA().then(m => {
    const then = m.then

    then()
  })
}

evaluateModuleB()

I would suppose the engine can easily do something like that.

It has to invoke the then function, and pass it a resolve function, and the promise for import() will never fulfill unless that’s invoked.

Sounds like this question has been answered.


Add library for serving an sse server proxying a stdio server

Add library for serving an sse server proxying a stdio server. This is a building block to enable powering connections in the opposite direction.
The motivation is I want to make Home Assistant an MCP client. By adding this functionality, we can allow users to use MCP proxy to start local servers that are stdio only.
This does not add the command line options yet, which can come in a follow up PR and will need more discussion about how to serve both use cases in a friendly way.

this change is really great exactly what I wanted to do for:
Claude Desktop App (MCP Client)  <- stdio -> proxy MCP Server <- sse -> proxy MCP Client <-stdio -> actual MCP Server
I think this is very useful until the Claude Dekstop App supports sse.
My 2 cents:

Probably the documentation (README.md) should be updated as well to reflect that mcp-proxy support this pattern.
Also I see here numpy docstring convention is used while google style was used previously.

this change is really great exactly what I wanted to do for:
Claude Desktop App (MCP Client) <- stdio -> proxy MCP Server <- sse -> proxy MCP Client <-stdio -> actual MCP Server
I think this is very useful until the Claude Dekstop App supports sse.

Awesome, happy to collaborate here since i saw you have a similar project started. (I was going to start one also and joined this project too)

My 2 cents:

Probably the documentation (README.md) should be updated as well to reflect that mcp-proxy support this pattern.

Yes, agreed. This PR is not changing the main function yet, just adding an internal library to get to that next step. A follow up PR has the main and README changes which i'll send out next: https://github.com/sparfenyuk/mcp-proxy/compare/main...allenporter:mcp-proxy:sse-to-stdio-main

Also I see here numpy docstring convention is used while google style was used previously.

I ran ruff with your lint config change and it did not flag any issues. My impression is that google style allows either a single line or a detail line with a specific format https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings -- so single line should be ok. If you have a specific issue to point out feel free to make a suggestion and I can have a look.

this change is really great exactly what I wanted to do for:
Claude Desktop App (MCP Client) <- stdio -> proxy MCP Server <- sse -> proxy MCP Client <-stdio -> actual MCP Server
I think this is very useful until the Claude Dekstop App supports sse.

Awesome, happy to collaborate here since i saw you have a similar project started. (I was going to start one also and joined this project too)

My 2 cents:

Probably the documentation (README.md) should be updated as well to reflect that mcp-proxy support this pattern.

Yes, agreed. This PR is not changing the main function yet, just adding an internal library to get to that next step. A follow up PR has the main and README changes which i'll send out next: main...allenporter:mcp-proxy:sse-to-stdio-main

Also I see here numpy docstring convention is used while google style was used previously.

I ran ruff with your lint config change and it did not flag any issues. My impression is that google style allows either a single line or a detail line with a specific format https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings -- so single line should be ok. If you have a specific issue to point out feel free to make a suggestion and I can have a look.

Yes indeed worked on that a while ago, my approach was a bit different though I made a proxy at the stream level so I didnt need to care about reimplementing the various server function to call the client within. I was just forwarding the streams it's working ok but having the function like @sparfenyuk did is quite nice to process already parsed object in the proxy.


Add travis ci migration table

Why:
Closes https://github.com/github/docs/issues/1862

What's being changed:

Check off the following:

[x] I have reviewed my changes in staging (look for the latest deployment event in your pull request's timeline, then click View deployment).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[x] This pull request impacts the contribution experience

[x] I have added the 'writer impact' label
[x] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

@chewy917 Sorry about the stale tag. Removing it now ✨

It looks like work has been paused on this PR, I'm going to close it now!

:blush:

:heart_eyes:


Review updates: reviewer consensus: dashboard review blocks

Acceptance criteria

[x] Agreeing with a review will remove it from your list of reviews to review - Dashboard
[x] Disagreeing with a review will not remove it from your list of reviews to review - Dashboard

QA criteria
Dev:

[x] checked feature meets acceptance criteria/conforms exactly to the specification.
[x] provided good unit test coverage (if this is non-trivial behaviour).
[x] checked all tests for the project pass with this feature enabled.
[x] checked code conforms to the project coding standards.
[x] had code reviewed by another developer and resolved any issues raised.
[x] tested this feature as an end user of the website/app (Can I get to it? Is it useable? Can I break it? Does it work in an end-to-end context?)
[x] checked that this feature works on the server/s I am deploying it to.

QA:

[x] tested this feature as a front end user and it meets the acceptance criteria/conforms to the specification and design.
[x] checked that the feature works on the server/s deployed to

Hi @emullaney
This seems to have knocked something out with the display on the 'waiting for your review' block on the dashboard. User no longer seems to see reviews here. Example: https://dev-apply.opentech.fund/apply/submissions/10/ should be showing in Lindsay Beck's dashboard. She is assigned as primary reviewer and the submission is in internal review.
Can you please take a look at this before I test this, as it is currently blocking this.
Thanks,
Maya

@gibbsmaya This was caused by the issue @emullaney raised about image rendering errors. the PR #1054 fixes this.
This is now ready to test.

One reminder, that I just noticed in the code. The review will have to be in the current status of 'review' and not in 'discussion' in order to show up in that block.
I noticed a review not showing in the list when I assigned it to Lindsay just now on dev, but it was in the 'Ready for Discussion' status, so that's why it was now showing up in the Waiting for your review list.

Thanks both. This now works as expected.

Hi @fourthletter, @danblah, @arduina,
This work is now ready for testing. This work follows on from #960, applying some additional logic to a user’s dashboard block of reviews awaiting review.
Please test this against the acceptance criteria noted in the initial issue description. Note that the application you use for testing will need to be in 'internal review' in order to show in the dashboard review blocks.
Please let us know if anything is unclear or if you have any questions. Otherwise please provide feedback of any issues you find or if everything is working as expected, please confirm and we can get this work deployed to the live site and issue closed off.
Thanks,
Maya

All acceptance criteria are visible and functional. Thanks! 💥

Great, thanks @fourthletter. Moving to @todd-dembrey ready for deployment to live.


bug in train file

#1 Regarding this issue, my current workaround is to create a new model with is_training=False   and copy weights into the new model. Not sure if I did something wrong, since I am using TensorFlow r2.11.0.
temp_model = FasterRCNN(is_training=False)
temp_model(init_model())
temp_model.set_weights(model.get_weights())
ap ,mAP = voc_eval(eval_ds, temp_model, ds.num_classes)

Thx @AaronJing , you did the right thing.
After building the FasterRCNN model, it requires a "dummy forward path" to build the network variables before actually loading the weights and it's done by line 61 to line 81 in train.py.
On testing new images, please check on test.py from line 126 to 133.


Is RN 0.54 supported?

Is this a bug report?
No
Have you read the Installation Instructions?
Yes
Environment
react-native: 0.54.0
react: 16.3.0-alpha.1 (peerDep of RN 0.54)
react-native-maps: 0.20.1

Steps to Reproduce

npm install
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.

Expected Behavior
No warning.
Actual Behavior
Warning.

Does react-native-maps support RN 0.54.0?
Bonus question: Could we create a discord channel for this project?

@hegelstad try yo use the git version, it should work with 0.54
about the discord channel, I don't know 😊

It's supported. It worked even with 0.20.1, I just needed to remove BatchedBridge from React deps in Podfile.

@hegelstad we have this almost ready: https://github.com/react-community/react-native-maps/pull/2065


can only create 1 user

hey all
for some reason im only able to create one user.
what i mean is one vpn account if i create another it goes through the creation process and i can even get a qr code however this crashes the server and when i try to import the qr on my phone it gives and error of " unable to import tunnel cannont parse string"" in interface Address"
this kills the process on my pi so i have to pivpn -r and then pivpn -d and this fix s it.
the /var/log/daemon.log shows
Apr 18 09:55:59 raspberrypi wg-quick[16376]: [#] ip link add wg0 type wireguard
Apr 18 09:55:59 raspberrypi wg-quick[16376]: [#] wg setconf wg0 /dev/fd/63
Apr 18 09:55:59 raspberrypi wg-quick[16376]: Unable to parse IP address: `.3'
Apr 18 09:55:59 raspberrypi wg-quick[16376]: Configuration parsing error
Apr 18 09:55:59 raspberrypi wg-quick[16376]: [#] ip link delete dev wg0
Apr 18 09:56:00 raspberrypi systemd[1]<EMAIL_ADDRESS>Main process exited, code=exited, status=1/FAILURE
Apr 18 09:56:00 raspberrypi systemd[1]<EMAIL_ADDRESS>Failed with result 'exit-code'.
so is there somewhere where i need to set the network bigger ? im assuming the above error is it cannot create the interface with and ip of .3/32
im lost
im runnning this as root or user pi is the same results. its probably something really simple but i cant find it
thanks

its ok i found it.. however i still dont no why its not adding the ip correctly.
basically it create the new use in /etc/wireguard/wg0.conf with an ip of .3 rather than <IP_ADDRESS>
manually changed it and boom working


label class doesn't work for bootstrap 4

Using Bootstrap v4 and the label label-info classes don't work. I found the solution is just replace that with badge badge-info

Alternate, it's possible to define those styles by adding this to your CSS:
  .label {
      display: inline;
      padding: .2em .6em .3em;
      font-size: 75%;
      font-weight: 700;
      line-height: 1;
      color: #fff;
      text-align: center;
      white-space: nowrap;
      vertical-align: baseline;
      border-radius: .25em;
  }

  .label-info {
    background-color: #5bc0de;
  }

https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/#options
The classname for tags can be updated as below:
$('input').tagsinput({   tagClass: 'badge badge-info', \\ space-separated list of classes you want to add on each tag   ... });

Did this over here:
https://github.com/vachigaggl/bootstrap-tagsinput, can create pull request if wanted.


Add ping_interval and ping_max to ProcessConfigFile

Added missing ping_interval and ping_max options.

Hi @Jeraimee: we're in the home stretch on this thing, can you go ahead and add a test case to this PR? Thanks!

If you could add a test we could bring this one in. Thanks.

Sorry for the delay! I'll try to add test cases this weekend!

@Jeraimee It has been a long time. It seems that there is similar interest: https://github.com/nats-io/gnatsd/issues/370. Do you think you will be able to contribute a test case?

I forgot all about it! Sorry! I'm working with gnatsd this weekend so I'll take care of it by Sunday.

@Jeraimee Sorry, @vkhorozvs submitted a PR based on yours with tests and we have merged his: https://github.com/nats-io/gnatsd/pull/372. Closing this one.
Thanks again for the original contribution!

No problem. I'm glad someone took care of it. I've had too much work/family/pet drama. My apologies.


persist the selected theme

Current behavior
Currently by default we serve the system theme. user can switch between dark and cupcake theme .
Problem
Suppose the users system default theme is dark and switched it to cupcake in our website but if reloaded the website it switch back to the default dark theme.
Screencast from 28-04-24 08:20:46 PM IST.webm
Expected solution
Users choice should be stored.
We are using daisyui cupcake , dark themes as light and dark theme for out website.
I suggest using theme-change, so user can switch themes and save selected theme in local storage.

/ attempt  persist the selected theme #26


Update to stylelint 14

Hi,
it is possible to upgrade this plugin to support stylelint 14?

Hello @martin-badin, you just opened a duplicate issue. See #132 and temporary workaround.


Enabled console print to help in debugging

Added (enable-console-print!) so that click events such as the input :onClick (fn [e] (println "TODO ex 3")) can be instructive as they now print to console.

Thanks!


Question / Idea: example to showcase "proof of having some secret"

One of the commonly advertised use cases for ZKProofs is the following:
I can prove to you that I have some secret S, where f(S) = X, without revealing the secret to you.
Most of the examples in the examples/ directory showcase "proving a result of some computation, so that the verifier doesn't have to redo the calculation again".
On the secrets front, there's the rsa example which comes close to what I have in mind but is different. In the rsa example, inside of the "program" which is our provable computation, we do roughly the following:
let pk = read_public_key();
let sig = read_signature();
let msg = read_signed_msg();
let valid_sig = RsaVerifySig(pk, sig, msg);
sp1_zkvm::io::commit(&valid_sig);

However, one can check whether an RSA signature is valid without using ZKProofs. I think it'd be interesting to showcase the ability of ZKProof to not reveal anything secret through proving roughly the following:
let public_key = read_public_key();
let private_key = read_private_key();
let valid_pair = public_key.Eq(RsaGeneratePublicKey(private_key));
sp1_zkvm::io::commit(&valid_pair);

This way we could prove that we have access to a private_key without generating any signatures through RSA.
Thanks for reading through my issue, let me know what you think!

Thank you for the suggestion, however at the moment we aren't accepting any new examples.


is_array is applied to all possible responses.

There is a problem when defining the responses as an array in the newest version of grape-swagger.
If you define an endpoint as an array then all the possible responses (success & failure) will be generated as references to an array in the swagger doc. However, a single error entity is not an array.
Currently there is no way to know if all the possible responses are an array or just one.
 desc 'Get many belly rubs!',
               {
                   is_array: true,
                   nickname: 'getBellyRubs',
                   success: Entities::BellyRubsEntity,
                   failure: [[401, 'BadKittenError', SomeErrorEntity],
                             [404, 'NoTreatsError', SomeErrorEntity],
                             [429, 'TooManyScratchesError', SomeErrorEntity]
                   ]
          }

here's the generated code:
"produces":[
   "application/json"
],
"responses":{
   "200":{
      "description":"Get many belly rubs!",
      "schema":{
         "type":"array",
         "items":{
            "$ref":"#/definitions/bellyrub"
         }
      }
   },
   "401":{
      "description":"BadKittenError",
      "schema":{
         "type":"array",
         "items":{
            "$ref":"#/definitions/error"
         }
      }
   },
   "404":{
      "description":"NoTreatsError",
      "schema":{
         "type":"array",
         "items":{
            "$ref":"#/definitions/error"
         }
      }
   },
   "429":{
      "description":"TooManyScratchesError",
      "schema":{
         "type":"array",
         "items":{
            "$ref":"#/definitions/error"
         }
      }
   }
}

The 200 response is correctly rendered as an array but the 401, 404 and 429 Error responses that use a different entity are also rendered as array where in fact they should be a single reference.

@toshe … yeap, I agree with the key is_array should only be used for the success entity

@LeFnord danke!


Runtime error !

Hi,
below error appears when run script first time !
callback: login: rpcDoRequest: rpc error code 400: API_ID_INVALID
how can I fix it to run successfully ?

Hello
It looks like that the app id you are setting as environment variable is incorrect.


SHow nested data items in particular vectors as a table

user-kent
SHow nested kdb+ data items in particular vectors as a table
Particularly useful as it allows copy paste and download.


toBeValidGeoJSON

Description
This is the most generic matcher, and expected to be one of the most commonly used ones.
This matcher takes as an argument of any GeoJSON object and checks if it meets validity requirements for any of the nine types:

Point
MultiPoint
LineString
MultiLineString
Polygon
MultiPolygon
GeometryCollection
Feature
FeatureCollection

It does not accept individual components of these objects.
See the above links for examples.
Example Matcher Usage
point = {
    "type": "Point",
    "coordinates": [100.0, 0.0]
}
lineString = {
    "type": "LineString",
    "coordinates": [
        [
            [180.0, 40.0],
            [180.0, 50.0],
            [170.0, 50.0],
            [170.0, 40.0],
            [180.0, 40.0]
        ]
    ]
}
polygon = {
    "type": "Polygon",
    "coordinates": [
        [
            [100.0, 0.0],
            [101.0, 0.0],
            [101.0, 1.0],
            [100.0, 1.0],
            [100.0, 0.0]
        ]
    ]
}
feature = {
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [102.0, 0.5]
    }
}
geometryCollection = {
    "type": "GeometryCollection",
    "geometries": [{
        "type": "Point",
        "coordinates": [100.0, 0.0]
    }, {
        "type": "LineString",
        "coordinates": [
            [101.0, 0.0],
            [102.0, 1.0]
        ]
    }, {
        "type": "Polygon",
        "coordinates": [
            [
                [102.0, 2.0],
                [103.0, 2.0],
                [103.0, 3.0],
                [102.0, 3.0],
                [102.0, 2.0]
            ]
        ]
    }, {
        "type": "Point",
        "coordinates": [150.0, 73.0]
    }]
}

expect(point).toBeValidGeoJSON()
expect(lineString).toBeValidGeoJSON()
expect(polygon).toBeValidGeoJSON()
expect(feature).toBeValidGeoJSON()
expect(feature.geometry).toBeValidGeoJSON()
expect(geometryCollection).toBeValidGeoJSON()
expect(geometryCollection.geometries[1]).toBeValidGeoJSON()

expect(polygon.coordinates).not.toBeValidGeoJSON()
expect(geometryCollection.geometries).toBeValidGeoJSON()
expect([322, -34.549, 0]).not.toBeValidGeoJSON()
expect({coordinates: [22, -34.549, 22]}).not.toBeValidGeoJSON()

Repeat Passing/Failing Tests Contained in Other Files
This matcher works with any geometry, Feature, or FeatureCollection. Therefore, the passing and failing tests for each of the nine can also include tests for toBeValidGeoJSON.
Unique Tests
Input Not an Object
-undefined
-null
-Booleans: true, false
-Numbers: 200, -200, Infinity, -Infinity, NaN
-Arrays: [25, 35, 45000], [[0, 0], [1, 1]], [ ]
-Strings: '', 'Random Geometry', '[0, 0]', '[[0, 0], [0, 0]]'

Stringified JSON:JSON.stringify({
    type: "LineString",
    coordinates: [[25, 90], [2, 2]]
})

Non-Object GeoJSON Components

Rejects Coordinates
Rejects Bounding Boxes
Rejects array of geometries

Other

Snapshots

Removed from v1.0.0 milestone because all functionality contained within is already in other component functions. This will come as one of the next release matchers.

:tada: This issue has been resolved in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


File Formidable

Heard about this:
https://github.com/node-formidable/formidable'
"A node.js module for parsing form data, especially file uploads."
Don't see it it the list. Is it considerable good? Any similar in the list, instead?
Best Regards,
Tom

See: https://github.com/sindresorhus/awesome-nodejs/issues/939#issuecomment-533908448

I think this would be a good question for https://github.com/sindresorhus/awesome-nodejs/discussions?discussions_q=category%3AQ%26A "What form data package do people recommend?"


Udf test fail due to bad test environment

I'm trying to get my test environment setup and I've gotten everything to work other than the udfs.
 Interrupted: stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==================================================================================================== 1 failed, 108 passed, 720 skipped in 181.47 seconds =====================================================================================================
Exception AttributeError: "'NoneType' object has no attribute 'IbisError'" in <bound method ImpalaTemporaryTable.__del__ of ImpalaTemporaryTable('__ibis_tmp_ee9084c5718e4310be9b229dc3e80d02.`delimited_table_test1`', ibis.Schema {
  foo  string
  bar  double
  baz  int8
}, <ibis.impala.client.ImpalaClient object at 0x7fa04c8a83d0>)> ignored

It looks like my udfs are being compiled incorrectly. I'm not sure how to go about debugging this. Do you think this is a version issue with llvm/clang? Do I have my impala environment setup incorrectly? Or am I just doing something else completely wrong?

You have to have the same LLVM version on your path that was used to compile Impala. I have code in my bash profile that looks like this:
export IBIS_TEST_HDFS_SUPERUSER=wesm
export IBIS_TEST_LLVM_CONFIG=$NATIVE_TOOLCHAIN/llvm-3.3-p1/bin/llvm-config
export IBIS_POSTGRES_USER=REDACTED
export IBIS_POSTGRES_PASS=REDACTED
export IBIS_WEBHDFS_PORT=5070

function ibis_toolchain {
	export PATH="$($IBIS_TEST_LLVM_CONFIG --bindir):$PATH"
	export IMPALA_GCC_VERSION=4.9.2
	echo $PATH
}

Impala versions prior to 2.6.0 are using LLVM 3.3 (see IMPALA-775 where the project upgraded to 3.8). You can take advantage of https://github.com/cloudera/native-toolchain if you need to build it from source.

It would be nice to start a developer documentation Markdown document; so far the only docs are for users.
In the interim I would also recommend adding --skip-udf to your py.test call to skip over these tests

Thanks! That should help!


EHRBase 2 - Error when posting composition

Before reporting an issue

[X] I have searched existing issues
[X] I have reproduced the issue with the latest release

Environment information

2.1.0
2.10.0
3.3.0
Eclipse Adoptium 21.0.3+9-LTS
Linux amd64 <IP_ADDRESS>-2.cm2
PostgreSQL 13.14 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit

Steps to reproduce
Attached composition submitted against attached template
POST /rest/openehr/v1/ehr/{ehr_id}/composition API
FP - Generic Lab import.json
ehrbase_2_composition.txt
Expected behavior
Composition to be submitted successfully, and a uid returned
Actual result
{
"error": "Bad Request",
"message": "Could not consume Parts [fp_-generic_lab_import/laboratory_test_result/any_event:0/laboratory_analyte_result:0/analyte_result/coded_text_value|value, fp-generic_lab_import/laboratory_test_result/any_event:0/laboratory_analyte_result:0/analyte_result/coded_text_value|code, fp-_generic_lab_import/laboratory_test_result/any_event:0/laboratory_analyte_result:0/analyte_result/coded_text_value|terminology]"
}
Further information
Remove the 3 lines from the composition and the submission is successful

Hello @steveFuturePerfect,
Could you please provide template content in OPT format (if file with .opt extension is not possible to attach here, save it as txt file)?
Thank you in advance.
CC: @vidi42

Hi ,
OPT file attached.
Many thanks
Steve

From: vladislavploaia @.>
Sent: Monday, May 20, 2024 1:32 PM
To: ehrbase/ehrbase @.>
Cc: Steve Pillar @.>; Mention @.>
Subject: Re: [ehrbase/ehrbase] EHRBase 2 - Error when posting composition (Issue #1323)
Hello @steveFuturePerfecthttps://github.com/steveFuturePerfect,
Could you please provide template content in OPT format (if file with .opt extension is not possible to attach here, save it as txt file)?
Thank you in advance.
CC: @vidi42https://github.com/vidi42
—
Reply to this email directly, view it on GitHubhttps://github.com/ehrbase/ehrbase/issues/1323#issuecomment-2120368639, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATICZAHCDWHVDWI6WBSZ3H3ZDHUMBAVCNFSM6AAAAABH7TT3J2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRQGM3DQNRTHE.
You are receiving this because you were mentioned.

@steveFuturePerfect - seems that it didn't work with .opt extension.
Please add it in .txt file and attach here.
Thanks!

Attached,
Thanks
Steve

From: vladislavploaia @.>
Sent: Monday, May 20, 2024 1:44 PM
To: ehrbase/ehrbase @.>
Cc: Steve Pillar @.>; Mention @.>
Subject: Re: [ehrbase/ehrbase] EHRBase 2 - Error when posting composition (Issue #1323)
@steveFuturePerfecthttps://github.com/steveFuturePerfect - seems that it didn't work with .opt extension.
Please add it in .txt file and attach here.
Thanks!
—
Reply to this email directly, view it on GitHubhttps://github.com/ehrbase/ehrbase/issues/1323#issuecomment-2120388473, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATICZABLFSYK4BXBRPONGU3ZDHVZLAVCNFSM6AAAAABH7TT3J2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRQGM4DQNBXGM.
You are receiving this because you were mentioned.Message ID: @.***>

@steveFuturePerfect - even though you've attached template content, it is still incomplete, as shown in below image:

These are the last lines of the template file, so, it seems to be corrupted.
Add the template content in .txt file and then attach it to bug description.
I hope that it will allow to do so.

Hi,
Not sure what's wrong, its all valid XML. I've re-attached the file (xml format), as a txt file.
Hopefully that'll be ok for you.
Thanks
Steve

From: vladislavploaia @.>
Sent: Monday, May 20, 2024 1:50 PM
To: ehrbase/ehrbase @.>
Cc: Steve Pillar @.>; Mention @.>
Subject: Re: [ehrbase/ehrbase] EHRBase 2 - Error when posting composition (Issue #1323)
@steveFuturePerfecthttps://github.com/steveFuturePerfect - even though you've attached template content, it is still incomplete, as shown in below image:
image.png (view on web)https://github.com/ehrbase/ehrbase/assets/100927963/ba64cbc1-a409-4549-a9fb-28699dce9448
These are the last lines of the template file, so, it seems to be corrupted.
Add the template content in .txt file and then attach it to bug description.
I hope that it will allow to do so.
—
Reply to this email directly, view it on GitHubhttps://github.com/ehrbase/ehrbase/issues/1323#issuecomment-2120399961, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATICZADRX2SHY5KLN74ECOTZDHWTDAVCNFSM6AAAAABH7TT3J2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRQGM4TSOJWGE.
You are receiving this because you were mentioned.Message ID: @.***>

FP - Generic Lab import.zip

Hi,
Template has been zipped and placed in bug description
Steve

From: vladislavploaia @.>
Sent: Monday, May 20, 2024 2:08 PM
To: ehrbase/ehrbase @.>
Cc: Steve Pillar @.>; Mention @.>
Subject: Re: [ehrbase/ehrbase] EHRBase 2 - Error when posting composition (Issue #1323)
Unfortunately, the template you are trying to attach has incomplete content, meaning the message is cut, that's why I see the incomplete content of template.
Below one is the template just for testing the attachment here (.opt file in zip).
Try to put the file in zip and then attach in bug description.
That's weird that other options are truncated and I cannot get the complete template file from you.
aql-conformance-ehrbase.org.v0.ziphttps://github.com/ehrbase/ehrbase/files/15377377/aql-conformance-ehrbase.org.v0.zip
—
Reply to this email directly, view it on GitHubhttps://github.com/ehrbase/ehrbase/issues/1323#issuecomment-2120428834, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATICZAGCIQIBOQEFMG4DLTDZDHYUZAVCNFSM6AAAAABH7TT3J2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRQGQZDQOBTGQ.
You are receiving this because you were mentioned.Message ID: @.***>

@steveFuturePerfect - I cannot reproduce the bug, based on your attached composition and template.
In my case, I was able to commit successfully the composition (201 Created).

Here are the API calls sent:
POST http://localhost:8080/ehrbase/rest/openehr/v1/ehr/4c575bd9-3c8d-4bc8-aa31-c6640b43f74a/composition?format=FLAT&templateId=FP - Generic Lab import
and
POST http://localhost:8080/ehrbase/rest/ecis/v1/composition?ehrId=4c575bd9-3c8d-4bc8-aa31-c6640b43f74a&templateId=FP - Generic Lab import&format=FLAT
EHRBase 2.2.0-SNAPSHOT
openEHR_SDK: 2.11.0-SNAPSHOT
postgresql: 42.7.3
Please check one more time with latest versions and let me know if issue persists, otherwise I will close current ticket.
Thanks!

We are running version 2.1. Version 2.2 doesn't appear to be available on the Ehrbase Github. Are you able to confirm that the composition submission is still successful with 2.1?
Thanks

@steveFuturePerfect,
Checked as well on the released EHRbase v2.1.0 from here and it is not reproducible.
201 Created in both cases.
POST http://localhost:8080/ehrbase/rest/ecis/v1/composition?ehrId=f66b7fbc-15f0-49c6-ac4f-0536c8a360c9&templateId=FP - Generic Lab import&format=FLAT
POST http://localhost:8080/ehrbase/rest/openehr/v1/ehr/f66b7fbc-15f0-49c6-ac4f-0536c8a360c9/composition?format=FLAT&templateId=FP - Generic Lab import
issue-1323-evidence.zip
EHRBase 2.1.0, openEHR_SDK 2.10.0, postgresql 42.7.3
Please check your setup one more time and let me know in case I could support you with something else.

This is puzzling us. We are still unable to successfully submit our composition, in Ehrbase 2.1 with the error reported earlier. Are you able to advise, looking at the template and composition, what might be causing our issue?
Many thanks
Steve

@steveFuturePerfect we've opened an internal ticket for further investigation by the dev team since we were not able to reproduce it yet.

@ATHULKNAIR @neutralboy we may want to verify this on our side as well. Please check if it’s reproduce.

Hi
We've resolved the issue. It turns out we were using an old version of our template, while the template I sent to you was the up-to-date version, hence your successful testing, and not reproducing the issue.
Apologies, and thanks for all your help
Steve


Add "description hash" arguments  to pendingApprovalClaim()

Shay writes "Also add two description hashes (ipfs cid) that points to the encrypted message and decrypted message (with session key)"

Yeah not sure I understand this one...

I guess what we want to do here is add the possibilty to send some string together with the claim that you submit, that proves that you actually are submitting a particular claim.
I'll ask shay, but for now I take this as meaning that we do this:
function submitClaim(uint256 _pid, address _beneficiary, uint256 _severity, string _descriptionHash) {
   [do not change anything here except the event]
  emit SubmitClaim(_pid, msg.sender, _beneficiary, _severity, _descriptionHash);
}

@jellegerbrandy i hope this is unblocking you


[S2GRAPH-39] Better exception message on converting between Json and InnerVal.

think this is more clear exception message

+1

+1

+1


General Maintenance

Resolves #339
Updated Packages
Some workaround done to keep the tsc happy (caused by some TSC engine bug or @types/node)

Just need to check a couple more things on why TSC is yelling at nothing

You can't transpile ?

Ye type check is complaining about a non-existing errors on @node/type after upgrading the package.

Just tested and it looks like it could be a typescript engine error, we'll just keep the older version for now

Is there any open issue on typescript's github about that?

I couldn't find any tbh, this feels like an edge case where it reproduceable on certain repo but not others.
I tested on my other bot project, and I got a completely different non-existing errors.


Find NavMeshLink when using CalculatePath()?

Hi, I'm using CalculatePath and manually moving my character around instead of using NavMeshAgent. My code looks something like this, called every frame (very naive implementation of course 😉)
NavMesh.SamplePosition(position, out navMeshHit, 2, NavMesh.AllAreas);
NavMesh.CalculatePath(navMeshHit.position, targetLocation, 1 << 0, path);
if(path.status != NavMeshPathStatus.PathComplete)
{
	(if we can't find a complete path, halt navigation)
}

Vector3[] pathCorners = new Vector3[16];
int cornersCount = path.GetCornersNonAlloc(pathCorners);
if(cornersCount > 1)
{
	(move towards the next point)
}
else
{
	(stop navigation)
}

This works fine, but I'm now trying to add a NavMeshLink that's manually controlled. The code above finds the path through it perfectly, but I'm not sure how to go about detecting that the next corner is through a NavMeshLink so I can handle my manual transition through it.
NavMeshPath only has the corners, and those are only Vector3 points. I guess I'd expect a struct with some more information about each section instead? Area type, if it's a NavMeshLink or on the actual navmesh geo, etc.
Anyway, is there some way I can detect when a path uses a NavMeshLink?

There is no way currently to get information about a path, except the corner points.
If you would use the NavMeshAgent then the NavMeshAgent.navMeshOwner can be used for identifying the type of NavMesh node the agent is on.
A couple of discussions here:
https://answers.unity.com/questions/1338855/need-to-access-navmeshlink-from-the-agent-unity-56.html
https://forum.unity.com/threads/access-5-6-navmeshlink-script.464531/
Property docs: https://docs.unity3d.com/ScriptReference/AI.NavMeshAgent-navMeshOwner.html

An extremely horrible but potential work-around is to make a dummy agent path to the same spot, but have them run along the path faster, sampling if they're on a link at frame, and passing back that info (where on the path they are) to the real agent.
I regret suggesting this already.

Thanks for the swift responses! I'll look into a workaround with NavMeshAgent.
Do we know if improvements here might be coming in the foreseeable future?

2018 will introduce a few experimental features that will help with the issue you described.

@turadr Hi, did any of these features make it into 2018.1?
I've had a quick look at the script reference but haven't found anything yet.

Hi,
Please have a look at the experimental class NavMeshQuery added in 2018.1 https://docs.unity3d.com/ScriptReference/Experimental.AI.NavMeshQuery.html . It has methods for obtaining a path, getting the type of a path node (polygon or link) and getting the edge vertices between two nodes.
Also, have a look at the code here https://github.com/Unity-Technologies/UniteAustinTechnicalPresentation/tree/00afe1c716d22fce300f765e9ad7bf94343e1e36/StressTesting/Assets/Scripts/Navigation to get a hint about how we used the class in the demo presented at Unite Austin 2017. Additionally, the file Utils/PathUtils.cs contains the method FindStraightPath() which computes the actual path corners given the string of NavMesh nodes as input.

I would like to add that any result from NavMeshQuery cannot be currently used with NavMeshAgent. They don't interoperate in any way now.

That should be fine for my use case. Thanks!

I managed to get a very minimal implementation working of getting a straight navmesh path from A to B, properly identifying the Offmesh links. But another issue is preventing me from wrapping it up and sharing it. I get a large amount of error messages without any other info "Internal error: NavMeshQuery has already been cleaned up but not deregistered from the NavMesh." (Unity 2018.3.10f1). @turadr do you have any hints on how to resolve this?

Looks like I jumped the gun. Moving the Query into a member variable (rather than creating new ones all the time), and then killing the navmesh before disposing of the query seems to work.
    NavMeshQuery query;

    void Start()
    {
        query = new NavMeshQuery(NavMeshWorld.GetDefaultWorld(), Allocator.Persistent,1000);
    }

void OnDestroy()
{
    NavMesh.RemoveAllNavMeshData();
    query.Dispose();
}


Take in account Spotify account permissions

Description:
When using a Spotify free account, the actions on the frontend all throw errors, because they are only accessible to Premium account users.
This change adds an additional scope to be used, getting the subscription type.
If this type is Premium, it will show the action buttons, otherwise nothing will be shown.
NOTE 1: I know in the docs it does say only Premium accounts can be used, but just being able to show what is played is nice imo
NOTE 2: It might be possible Spotify uses other product names as well, currently I only found open, free and premium as known types. (I'm guessing Family might be 1 as well)
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#2809
Example entry for configuration.yaml (if applicable):
No changes
Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable ([example][ex-requir]).
[ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

I think it should be not be able to create a device if the rights are not correct and print a error. You change make it be possible to create a player without functionality...

Well, it does have functionality, if with functionality you also include the possibility to check what music is playing. It's also still possible to act on any actions that happen (for example when music starts playing from your account, you could trigger an automation etc)


C: Contextual alerts - Alertes contextuelles

Already launched in beta, but need audit to make sure it meets beta criteria:
https://design.canada.ca/common-design-patterns/contextual-alerts.html
https://conception.canada.ca/configurations-conception-communes/alertes-contextuelles.html


Panic while rendering crate/builds.html

Saw three or four of these in the server logs.
Aug 11 23:49:00 docsrs cratesfyi[27117]: thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Msg("Failed to render \'crate/builds.html\'"), source: Some(Error { kind: Msg("Variable `metadata.name` not found in context while rendering \'crate/builds.html\'"), source: None }) }', src/web/page/web_page.rs:42:24
Aug 11 23:49:00 docsrs cratesfyi[27117]: stack backtrace:
Aug 11 23:49:00 docsrs cratesfyi[27117]:    0: backtrace::backtrace::libunwind::trace
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
Aug 11 23:49:00 docsrs cratesfyi[27117]:    1: backtrace::backtrace::trace_unsynchronized
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
Aug 11 23:49:00 docsrs cratesfyi[27117]:    2: std::sys_common::backtrace::_print_fmt
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/sys_common/backtrace.rs:78
Aug 11 23:49:00 docsrs cratesfyi[27117]:    3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/sys_common/backtrace.rs:59
Aug 11 23:49:00 docsrs cratesfyi[27117]:    4: core::fmt::write
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libcore/fmt/mod.rs:1069
Aug 11 23:49:00 docsrs cratesfyi[27117]:    5: std::io::Write::write_fmt
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/io/mod.rs:1504
Aug 11 23:49:00 docsrs cratesfyi[27117]:    6: std::sys_common::backtrace::_print
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/sys_common/backtrace.rs:62
Aug 11 23:49:00 docsrs cratesfyi[27117]:    7: std::sys_common::backtrace::print
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/sys_common/backtrace.rs:49
Aug 11 23:49:00 docsrs cratesfyi[27117]:    8: std::panicking::default_hook::{{closure}}
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/panicking.rs:198
Aug 11 23:49:00 docsrs cratesfyi[27117]:    9: std::panicking::default_hook
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/panicking.rs:218
Aug 11 23:49:00 docsrs cratesfyi[27117]:   10: std::panicking::rust_panic_with_hook
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/panicking.rs:511
Aug 11 23:49:00 docsrs cratesfyi[27117]:   11: rust_begin_unwind
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libstd/panicking.rs:419
Aug 11 23:49:00 docsrs cratesfyi[27117]:   12: core::panicking::panic_fmt
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libcore/panicking.rs:111
Aug 11 23:49:00 docsrs cratesfyi[27117]:   13: core::option::expect_none_failed
Aug 11 23:49:00 docsrs cratesfyi[27117]:              at src/libcore/option.rs:1268
Aug 11 23:49:00 docsrs cratesfyi[27117]:   14: <F as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   15: <alloc::boxed::Box<dyn iron::middleware::Handler> as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   16: <cratesfyi::web::metrics::RequestRecorder as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   17: <alloc::boxed::Box<dyn iron::middleware::Handler> as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   18: <alloc::boxed::Box<dyn iron::middleware::Handler> as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   19: router::router::Router::handle_method
Aug 11 23:49:00 docsrs cratesfyi[27117]:   20: <router::router::Router as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   21: iron::middleware::Chain::continue_from_before
Aug 11 23:49:00 docsrs cratesfyi[27117]:   22: <iron::middleware::Chain as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   23: <alloc::boxed::Box<dyn iron::middleware::Handler> as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   24: <cratesfyi::web::CratesfyiHandler as iron::middleware::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   25: <iron::iron::RawHandler<H> as hyper::server::Handler>::handle
Aug 11 23:49:00 docsrs cratesfyi[27117]:   26: hyper::server::Worker<H>::handle_connection
Aug 11 23:49:00 docsrs cratesfyi[27117]:   27: hyper::server::listener::spawn_with::{{closure}}
Aug 11 23:49:00 docsrs cratesfyi[27117]: note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

From some debugging on discord:

kixiron: looks like we don't call cexpect for the builds page
kixiron: So the entirety of metadata is an Option
kixiron: I think someone's looking at a builds page that hasn't been built yet?
kixiron: I can change the unwrap in WebPage::into_response to a ctry

@Kixiron also suggested adding logging to cexpect which says which page had an error, not just what the error was.


Add Python 3.9 support

…a-forge-pinning 2<IP_ADDRESS>.17.07

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

When using Python 3.9, currently the broken noarch version gets installed (with the error AttributeError: 'StanModel' object has no attribute 'fit_class'). This PR is just a rerender to add Python 3.9 support.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

There is a problem with the CI runs being displayed as checks (see https://github.com/conda-forge/status/issues/117), but they can be found here: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=365925&view=results

Thanks for merging! Unfortunately it seems that for some combinations of requirements, conda still tries to install the broken noarch versions like pyhd8ed1ab_0. Do you think it would be possible to mark these as broken (https://conda-forge.org/docs/maintainer/updating_pkgs.html#maint-fix-broken-packages)?

Thanks for merging! Unfortunately it seems that for some combinations of requirements, conda still tries to install the broken noarch versions like pyhd8ed1ab_0. Do you think it would be possible to mark these as broken (https://conda-forge.org/docs/maintainer/updating_pkgs.html#maint-fix-broken-packages)?

This has been done, see https://github.com/conda-forge/admin-requests/pull/299


swift compiler error for ChattoAdditions

Today, I find a recommand from Xcode, named Swift Conversion Group ->  Conversion to Swift 4 is available. After finished it's steps, my app can't compiler succeed anymore. The error is appeared by ChattoAdditions. Is there any method to fix it , please?

@jba52739088 Please, use swift4 branch for now


seen synced & search feature added with filters

NOTE: search feature is local DB based & not server.

there is scope for ui improvement, and their is pixel over flow issue in only the Flagged mails page, because of too much content in top, I have weak hand over that


Fix: make build-image-amd64 to load image from cache to disk.

/assign @zhujian7

/unassign @zhujian7


SSL only available with old version (16.1.0)

Hi -- I'm developing apps that run against a MySQL server over SSL.
The latest version of the crate that supports this is 16.1.0, which is a number of releases behind the latest version (18.2.0).
Are there plans to re-enable OpenSSL support at any point or has connecting with it been deprecated?
Is there another way that people are connecting to SSL-secured MySQL instances that allows them to keep up with the latest version of the crate?
Thanks,
Doug.

Hi.
I confused, because as far as I can see SSL support is available and tested in 18.0.2 (see here, here, here and here).

This adds weight to my "I'm doing something wrong" theory.
In my cargo file I've specified SSL as a feature for MySQL and it installs 16.1.0.
When I try to upgrade the version it complains that 16.1.0 is the latest version that compiles with the SSL feature.
Does that mean that maybe I shouldn't be specifying SSL in my cargo file?

Oh, I see. SSL feature was removed since v0.17.0 (see release notes).
Actually this means, that SSL is always enabled since v17.0.0.

Which adds weight to my "I'm a muppet" theory.
Thanks @blackbeam -- I must've set up from an old version of the README or something, or copied-and-pasted from an older project.
I'll start getting that updated this weekend, something to pass the lockdown! :)