Completely AOT compiled.

We need to support end users running a cli tool to generate c++ classes (QObject) and .NET code for interop.
This would remove the need for dynamically invoking methods/properties, in favor or registering raw QObject's with the QML engine. We could also then strictly define what methods/properties are exposed to QML, allowing for reduced memory foot print, as well as increasing the soundness of the app.
Doing this would also remove the need for private headers, which would allow us to run against any 5.X version, instead of the exact version we compiled against. Imagine you create an Ubuntu package, and the underling Qt framework gets a patch update. Your application would be guaranteed to continue to work! Otherwise, your app would have to be recompiled in lock-step.

This would also theoretically improve the performance of the interop between C# and QML, since we wouldn't have to wrap everything with a QVariant, and we wouldn't have to dynamically emit .NET code for interacting with .NET objects.

I haven't actually looked at the details of this yet, but would the plans for C# function pointers in .NET 5 help with this? Supposedly those should allow the .NET AOT compilation to work even when function pointers back to "managed land" are being passed via P/Invoke, since those function pointers would not need to be generated at runtime for delegates.
Here's the proposal: https://github.com/dotnet/csharplang/blob/master/proposals/function-pointers.md

This is AOT, but in the opposite direction. Basically, instead of dynamic QObject instances that dynamic methods/properties, we will generate C++ for typed QObject derivatives that can be instantiated in QML, with intellisense, etc.

Ah, essentially "AOT" generated Proxies for QML files / QObject types?
This will be hard for QML files though, since the type of properties and such is dynamic, and one cannot use offline-inspection of a native DLL to get the meta object, essentially.
Especially the "typed" part on the C++ side to improve performance over going through the meta-object-system could lead down a rabbit hole... I.e. would you still only support Q_INVOKABLE/Q_SLOT or allow any C++ method to be called?

I'm not sure what you mean by "QML files". I'm only referring to generating the QObject equivalents for each .NET object you wish to generate AOT. Some .NET types could still be left as dynamic, some statically compiled.
Another drive here is that creating a dynamic QObject requires the use of Qt's private headers, which means that when the native shim for Qml.Net is compiled, it only works for that exact version of Qt you compiled for (less portable). This would prevent us from pushing the native lib as a .deb/.rpm package for each distro, since any patch to the system-installed Qt runtime could break your app.

Oooooooooh, my apologies. You mean the C++->.NET direction. QObject proxies for classes defined in .NET, right?
I was talking about the other direction. I'd like the native C++ class hierarchy to be reflected on the .NET side (having .NET proxies for QQuickItem and the variants thereof that are dynamically created from QML files, essentially).

I'm with you there.
I had a grand idea of creating a DSL that allows you to define objects/methods/properties/inheritance that can be used to generate shim native code and C# code to make it super easy to use C++ in .NET. It would have helped with the interop layer in Qml.Net, and with what you are suggesting. That is a lot of work though :)
MonoCpp came close to achieving this, but IMO, came up short.

@pauldotknopf Is there already an issue for having typed proxies for QML components?

Checkout INetQObject and INetJsValue types.

@pauldotknopf Yeah, but I mean having a generated C# interface for each QML file in the project to allow intellisense, type and error checking.

Ah. Maybe some tool to generate C# to interact with a INetQObject? That sounds useful, especially when working with a large number of objects.

@pauldotknopf Yup, exactly that. Imagine as part of the build process some tool pre-generating a bunch of classes (or interfaces) that correspond 1:1 to your app's QML files, their properties and their inheritance hierarchy. I am prototyping something like that, which would work similar to qmlplugindump, but work on qml files instead.
I am just a sucker for intellisense ;-)


New home page: search bar disappears

If you go outside the new homepage anywhere, the search bar disappears.

Duplicate of Issue #1930
Fixed in PR #743 to Develop - I don't think it's on production yet? @hyoo

this is deployed on alpha and fixed.


install successed,but show blank in kibana

verson:5.0.1
sentinl install successed,but kibana has nothing like the image belov:

I look forward to your answer!!

Its due to Xpack, most probably.
Wait for the next version to release then It will be solved

but when i remove Xpack，Still exist the problem

Had the same problem with 5.0.0, ended up upgrading the ELK stack to 5.4.2 and the UI plugin now works fine.

Thanks for sharing @thlc indeed unfortunately not much to do about 5.0.x with the number and frequency of updates, current targets are rather 5.5 and 6.0

5.1.1 also has this problem, do you have plan to solve it ?


Crashes at launch with 0.1.0 rc9 (from nexus mods)

As the title says, I thought I would give the mod a chance since it has been updated for the newest updates, 1.4.1 stable and 1.4.2 beta. I'm using the latter one and downloaded the appropriate file (there are 3 on nexus mods). With the patch as the only mod installed, my game crashes as soon as it enters the opening loading screen. I also right-clicked the zip file and unblocked it from there instead of manually unblocking the files one by one. I'm using the fixed launcher mod, version 2.2.1, also from Nexus mod, which automatically sorts the mod at the top. I tried putting the mod after every other "native mod-files" which yields the same result, albeit a little longer delay before crashing.
Deactivating the mod stops my game from crashing.

Seems like these is indeed an issue with the e1.4.2+ build. Investigating.
In the meantime, I will take down this download from nexus.

I downloaded the 1.4.2+ build and it crashes my game on load. Removed all other mods from my folder with only community patch and it still breaks on load.

It works fine now indeed. Thanks for your time :)


Adding Favicons

Test out staging.ghacks.dev ... my browser cache was being stubborn.
All these files are the industry standard way of doing favicons these days.
And using the _includes/head/custom.html is how you get extra stuff into the  with Minimal Mistakes. Sucks that wi'll have another top level folder, but that's the price of entry here.

Also, in case you want to see the site I used to generate stuff, look at: https://realfavicongenerator.net/


Update reverse-proxies.md host <IP_ADDRESS> for docker

This fixes https://github.com/thelounge/thelounge/issues/4945 and https://github.com/thelounge/thelounge-docker/issues/194

while I appreciate the effort, we don't recommend <IP_ADDRESS> no.
I don't think we need to special case docker in our docs there, if you use it I assume you know how to handle it

while I appreciate the effort, we don't recommend <IP_ADDRESS> no.

Is there a security risk with <IP_ADDRESS>? It seemed different than host: undefined.

and how is it different?


Improve error from communicating with Azure API.

Issue:

Fixes: #45010
Fixes: #45005
Problem

The upstream package (github.com/manicminer/hamilton) was dropping errors from the underlying Go HTTP Transport, this was being reported by the Go HTTP Client as an error, and the original error was lost, for example, if you had egress rules that prevented access, any "connection" errors would be lost.,
Solution

This changes the behaviour of our use of the hamilton msgraph client to return errors when connecting which will pass the message through.
This is a reimplementation of the fix that was upstreamed here https://github.com/manicminer/hamilton/pull/280
Testing

This would require blocking of access to Azure's endpoints, or a misconfiguration of the Graph API custom endpoint, see https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-azure-ad "custom endpoints" to point to an endpoint that could not be connected with.
Without the fix, you will get a message http: RoundTripper implementation (*retryablehttp.RoundTripper) returned a nil *Response with a nil error with the fix, if you have a custom endpoint that is invalid, you will get...Get "https://localhost/v1.0/test-tenant/users/test-user-id": dial tcp [::1]:80: connect: connection refused or something similar.
Engineering Testing
Manual Testing

See above.
Automated Testing

Test types added/modified:

Unit
Integration (Go Framework)
Integration (v2prov Framework)
Validation (Go Framework)
Other - Explain: EXPLAIN
None
REMOVE NOT APPLICABLE BULLET POINTS ABOVE

If "None" - Reason: EXPLAIN THE REASON

If "None" - GH Issue/PR: LINK TO GH ISSUE/PR TO ADD TESTS

Summary: TODO
QA Testing Considerations

Regressions Considerations

TODO
Existing / newly added automated tests that provide evidence there are no regressions:

TODO

Validation Template
What was fixed, or what change has occurred
Failing to connect to upstream Azure endpoints will get a better error message.
Areas or cases that should be tested

Configure authentication for Azure AD and enter a custom endpoint that points to a site/port that will not connect

What areas could experience regressions

None, we retained the existing behaviour except for the error-case, which wasn't working

Are the repro steps accurate/minimal?
See the test comments above for more detail.


Update parallel-processing-expansion.md

Fix job.yaml.jinja2 job

This change is

Bump to verity CLA

Bump to verity CLA again


🚀 Feature Request: Request for support of the credentials option in Wrangler's fetch function

Describe the solution
Dear Wrangler Team,
I have encountered an issue where it appears that Wrangler currently does not support the credentials option in the fetch function. This limitation causes problems in certain frameworks and environments.
For instance, in my case, I receive the following error when executing code compiled into WebAssembly using the Go language:
panic: JavaScript error: The 'credentials' field on 'RequestInitializerDict' is not implemented.

 -> syscall/js.Value.Call
 ->   syscall/js/js.go:397

    net/http.(*Transport).RoundTrip
      net/http/roundtrip_js.go:128
    net/http.send
      net/http/client.go:260
    net/http.(*Client).send
      net/http/client.go:181
    net/http.(*Client).do
      net/http/client.go:724
    net/http.(*Client).Do
      net/http/client.go:590
    golang.org/x/oauth2/internal.doTokenRoundTrip
      golang.org/x/oauth2@v0.15.0/internal/token.go:256
    golang.org/x/oauth2/internal.RetrieveToken
      golang.org/x/oauth2@v0.15.0/internal/token.go:226
    golang.org/x/oauth2.retrieveToken
      golang.org/x/oauth2@v0.15.0/token.go:167
    golang.org/x/oauth2.(*Config).Exchange
      golang.org/x/oauth2@v0.15.0/oauth2.go:234
...

This error arises because the credentials option is hardcoded in the net/http standard library of Go when compiled to Javascript:
https://cs.opensource.google/go/go/+/refs/tags/go1.21.5:src/net/http/roundtrip_js.go;l=82
Unfortunately, this means the issue cannot be rectified from the calling side.
There was a previous bug report related to a similar issue, but regrettably, it was closed by the owner:
#2514
In that ticket, many users expressed their need for this feature, but it seems to have been left unaddressed for a long time, possibly due to the ticket being closed.
Additionally, it was reported in that ticket that this issue is not only present in WASM but also occurs in JavaScript frameworks like SvelteKit.
Could you please consider supporting the credentials option in Wrangler's fetch function? This feature would greatly aid in resolving these issues and enhance the flexibility and usability of Wrangler in various environments.
Thank you for your attention to this matter.

The credentials option is not supported in the Cloudflare Workers runtime by design. There's an existing issue on workerd which tracks allowing this option to be a no-op, and so I'll close this issue in favour of that one, which is the right place to track this: https://github.com/cloudflare/workers-sdk/issues/4716

The credentials option is not supported in the Cloudflare Workers runtime by design. There's an existing issue on workerd which tracks allowing this option to be a no-op, and so I'll close this issue in favour of that one, which is the right place to track this: #4716

@penalosa Are you sure you linked the right ticket? It looks like you linked this one :D


[Event Request] Table 81 "Gen. Journal Line", function GetVendLedgerEntry: OnBeforeGetVendLedgEntry

Hello,
we need a way to insert our code in GetVendLedgerEntry function. Please add following publisher. Thank you in advance!
procedure GetVendLedgerEntry()
// - new
    var
        IsHandled: Boolean;
// + new
    begin
// - new
        IsHandled := false;
        OnBeforeGetVendLedgEntry(Rec, IsHandled);
        if IsHandled then
            exit;
// + new
       [...]

// - new
    [IntegrationEvent(false, false)]
    local procedure OnBeforeGetVendLedgEntry(var GenJnlLine: Record "Gen. Journal Line"; var IsHandled: Boolean)
    begin
    end;
// + new

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


chore Introduce libunwind

Proposed changes
Issue Number: close #xxx
Depended on by the new stacktrace method
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...

run buildall

run buildall

run buildall


Can I use mmdetection to train CornerNet?

The CornerNet is a new model for object detection, and it's code has already been opensourced on github. Is it easy to  add this model to mmdetection? @hellock @OceanPang

We do have plan to add CornerNet but maybe after CVPR since we do not have much time now. You can have a try and it will not be difficult.

@hellock OK, thanks a lot. Maybe I will try to do that and I really hope to get your help. So if I have any questions can I ask you here?

@hellock Hi, these days I'm always reading your code and I think it's an excellent work. but at present I still have problems to understand the code about dataset and dataloader, expecially refer to distribution.
The CornerNet need the top-left and bottom-right coordinates of the bbox instead of (x, y, w, h), so what should I do to adapt to this change? In other words, I should add code to which part of mmdet?

The bboxes are represented as (x1, y1, x2, y2), which are naturally top-left and bottom-right corners, so I think there is no need to modify the dataset.

I find the comment in rpn_head.py says that "since feature map sizes of all images are the same, we only compute anchors for one time", but the input image shapes are different, so how to make the feature map the same size? @hellock @OceanPang

All inputs are resized to a fixed size for latter process , it's a basic operation , you can read the relative paper or codabase here carefully.

when will we get the code about cornetnet or centernet?

Here a good overview of recent anchor free solutions https://www.slideshare.net/yuhuang/anchor-free-object-detection-by-deep-learning

I am currently working on integrating Centernet: objects as points. you can follow the progress at [my fork](I am currently working on integrating that. you can follow the progress at my fork for now I will be submitting a pull request soon) for now I will be submitting a pull request soon

@Ridhwanluthra it's really a great work, thank you very much. What if we add more backbone used for  keypoints detection for centernet in configs, it will be more wonderful!

@Ridhwanluthra any plan for  centernet : Keypoint Triplets for Object Detection? it reaches 47.0 mAP in coco, will you do some jobs for it?

@lizhe960118 I have would love to be able to include more backbones and thanks to mmdetection's modularity it is very easy to add more. I would be running tests and can test other backbones if we get contributions for that, At the moment I don't have any plans to add more backbones. but feel free to contribute those.
as far as the other centernet is considered, i have no plans so far to include that but once centernet in included adding the other one should not be a very big challenge.

@Ridhwanluthra the cpool module in the other centernet (we can call it centernet_key) is compiled by gcc4.9, and the pytorch version is 0.4.1, i am afraid that there would be some problems happen when we install the cpool module.
By the way, I find that the heads used in hourglass are not added as the independent module in box_heads in your code. If the centernet is a two stage detector, should we separate the heads from the backbone?

Already implemented in V2.3.


Chore/update release commit

:tada: This PR is included in version 1.0.0-v1-release.19 :tada:
The release is available on:

npm package (@v1-release dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Carousel still buggy with 2 items on version 2.3.0

Describe the bug
If you create a carousel containing only 2 Images, the Animation when sliding, does not looks right
To Reproduce
Using the 2.3.0 version from jsDelivr, in this example the bug is clear: codepen
Expected behavior
Even if there are only two Items in the Carousel I expect to have the right animations.
Desktop (please complete the following information):

OS: macOs Sonoma 14.4.1
Browser safari (17.4.1), chrome (125.0.6422.113)

I think the carousel component's logic should be rewritten.
The source code considers 3 conditions/items (left, middle, right), and translate -100% (the last item) and 100%(the second item) for left and right item.
Therefore, the visual look for navigating between 2 items is strange.

Do you happen to know if will be fixed in the near future?

We're looking into it, but anyone is more than welcome to create a PR for this one. I'll check it. Thanks!


Download Link

Could we please have a link or a note on how to acquire the upgrade analyzer tool?

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

ID: ba5f7f18-9507-3798-c4f6-731622a71001
Version Independent ID: 94624fbf-dd2e-d3aa-c1e3-cf6cc7c05609
Content: Upgrade from AX 2012 - Plan by using the Upgrade analyzer tool - Finance & Operations | Dynamics 365 | #MSDyn365FO
Content Source: articles/dev-itpro/migration-upgrade/upgrade-analyzer-tool.md
Service: dynamics-ax-platform
GitHub Login: @tariqbell
Microsoft Alias: tabell

The topic has been updated with the correct information.
To access the Upgrade analyzer report, go to https://diag.lcs.dynamics.com/UpgradeAnalysisReport/Report/"ProjectID" (Replace "ProjectID" with your current project ID which is an integer that can be found in the URL of your current LCS project)


move methods to stats helper

Hey, awesome! Cheers for that :) Will merge now unless you feel strongly about those two whitespace violations! :stuck_out_tongue:

fixed :+1:


Upgraded MinGit version to v2.38.1

Task name: Update Mingit to latest version
Description: Due to v2.37.3 has vulnerability issue azure-pipelines-agent's dependency MinGit is upgraded to v2.38.1

/azp run


dynamic batch size parameter not recognized by python api

Description
A clear and concise description of what the bug is.
Note I'm deploying a model plan that contains multiple performance profiles, and I'm trying to select a particular profile using instance_group
Error:

tensorrtserver.api.InferenceServerException: [ 0] run batch-size 8 exceeds maximum batch size 1 allowed for model 'bert_base_f16_384_b1_TRT'

config.pbtext

id: "inference:0"
version: "1.7.0"
uptime_ns:<PHONE_NUMBER>69
model_status {
key: "bert_base_f16_384_b1_TRT"
value {
config {
name: "bert_base_f16_384_b1_TRT"
platform: "tensorrt_plan"
version_policy {
latest {
num_versions: 1
}
}
input {
name: "input_ids"
data_type: TYPE_INT32
dims: -1
dims: 384
}
input {
name: "segment_ids"
data_type: TYPE_INT32
dims: -1
dims: 384
}
input {
name: "input_mask"
data_type: TYPE_INT32
dims: -1
dims: 384
}
output {
name: "cls_dense"
data_type: TYPE_FP32
dims: -1
dims: 384
dims: 2
dims: 1
dims: 1
}
instance_group {
name: "multi_prof_max_bs_1"
count: 1
gpus: 0
gpus: 1
kind: KIND_GPU
profile: "2"
}
default_model_filename: "model.plan"
}
version_status {
key: 1
value {
ready_state: MODEL_READY
}
}
}
}

TRTIS Information
What version of TRTIS are you using? 19.10-py3
Are you using the TRTIS container or did you build it yourself? no
To Reproduce
Steps to reproduce the behavior:
deploy trt optimized bert: https://github.com/NVIDIA/TensorRT/tree/release/6.0/demo/BERT/python
Run https://github.com/NVIDIA/DeepLearningExamples/blob/master/TensorFlow/LanguageModeling/BERT/trtis/scripts/run_trtis.sh
Expected behavior
A clear and concise description of what you expected to happen.
The python client to recognize the dynamic input size of model and allow for batch size > 1

I believe the "b1" in the name of the model refers to batch-size 1. You can also see from the model configuration that max_batch_size is not there, which means that it is 0 (zero), which means that the model does not support batching. Perhaps that initial -1 on the tensors is not the batch dimension but is instead just a variable-size dimension?
If the model is meant to support batching and the initial -1 is a batch dimension, then the model configuration file is incorrect and the -1 dimension should not be listed and instead max_batch_size should be set.

@lapolonio Can you verify that you are using 19.10-py3? I see 19.06-py3 being launched [here].(https://github.com/NVIDIA/DeepLearningExamples/blob/7d772b8bc9f48d5d955490b1b658335be9085a7b/TensorFlow/LanguageModeling/BERT/trtis/scripts/launch_server.sh#L24)

I am also running into the same issue.
Is it possible to request batch size thats greater than max_batch_size? Would trtis slice the matrix into preferred_batch_size for computation?

@lapolonio I am meeting a same problem with you. @deadeyegoodwin is right, -1 is recognised as a dimension of variable instead of batch_size.
After I changed input_ids input format  as [(batch_size, 384)] it appears no expeption. But I still don't know how to fix it, and how should we chose the instance profile while calling the api with a specific
batch_size?

I think the trtis chooses the appropriate available deployed profile based on batch size

No. TRTIS doesn't choose the profile automatically, but depend on the user to specify the optimization profile to load for an instance group. Moreover, a model instance can support only a single optimization profile at a time.
@jiangpinglei The profile field of "instance group" in config.pbtxt should be used to select appropriate optimization profile in the model. Please have a look here.
The dims specified in the config.pbtxt should not include the first '-1'in the model. TRTIS detects this difference from the model.plan and will then treat the first variable dim in model.plan as a batch dimension. The config.pbtxt should look like:

id: "inference:0"
version: "1.7.0"
uptime_ns:<PHONE_NUMBER>69
model_status {
key: "bert_base_f16_384_b1_TRT"
value {
config {
name: "bert_base_f16_384_b1_TRT"
platform: "tensorrt_plan"
max_batch_size: 8
version_policy {
latest {
num_versions: 1
}
}
input {
name: "input_ids"
data_type: TYPE_INT32
dims: 384
}
input {
name: "segment_ids"
data_type: TYPE_INT32
dims: 384
}
input {
name: "input_mask"
data_type: TYPE_INT32
dims: 384
}
output {
name: "cls_dense"
data_type: TYPE_FP32
dims: 384
dims: 2
dims: 1
dims: 1
}
instance_group {
name: "multi_prof_max_bs_1"
count: 1
gpus: 0
gpus: 1
kind: KIND_GPU
profile: "2"
}
default_model_filename: "model.plan"
}
version_status {
key: 1
value {
ready_state: MODEL_READY
}
}
}
}

We have enhanced the optimization profile support on the master branch (will be in 19.12 release). @GuanLuo can you comment on how the new support might apply in this case.

The new support now allows users to specify multiple optimization profiles for an instance group, i.e.:
instance_group {
name: "multi_prof_max_bs_1"
count: 1
gpus: 0
gpus: 1
kind: KIND_GPU
profile: ["2", "4"]
}

When multiple optimization profiles are specified, when the inference requests are sent to the TensorRT model instance, it will select the profile that is the best fit for the input shapes (currently it's the arg min of sum of element-wise difference between opt dims and input shape).
If no optimization profile is specified, then the default profile (0) will be used.

@lapolonio Reopen if you still have an issue after trying the new support.


Right click menu weirdly small

Description

The right click menu was fine the way it was in <1.9.21. Right now the max height seem to be depending on non shell items amount.
Steps To Reproduce
No response
Expected behavior
It should show all items if the display is large enough.
Files Version
1.9.23
Windows Version
10.0.19043.1151
Relevant Assets
No response

Due to WinUI issues the moment we can either have:

a small menu
a menu that jumps around or goes out of screen or gets cut

The small menu is probably the lesser of the two evils 😂, but this is an issue nonetheless.

Merging with #5884


Register?

I like more this interface as well. :)

Good. I will register it ( as soon as I find time!)


Fixed advisory lcok getter. No need in Scan, because OID 2278 reterns…

… here(Void). It causes error
I encountered a scan error in &x when using the tool because OID 2278 is unfamiliar to the scanner. I found out that scanning is applicable only when receiving the result of the pg_try_advisory_lock function, which returns the status as a boolean value. In this case, a void is returned that cannot be scanned and this causes an error.

It only happens with using a template. With empty SchemaFile field all gonna be ok.


Support for caching

Would be great if caching would be supported out of the box. setup-cached-uv or setup-python-uv-action could be some inspiration.

Hey @fkromer, supporting caching has been on my mind since the day I released this. I will try to get some inspiration from the tools you share and give it a try.
Thanks for showing interest in this repository!


LOGGED IN AS ADMIN AND CLIENT - I am logged out when I hit Log Out

Sounds tautological, but rather than be properly logged out, this large "404" appears. I know no 404, not even in my days making music for Ilúvatar.
The same applies for when I am logged in as Client (Wormtongue).

we are already looking into this issue


Don't use Next.js link feature for external links

For external links we need a way to have the styles from the Link component but without the next/link wrapper. I think we should perhaps consider to don't have the next/link features in the component itself and in storybook, but rather wrap internal links upon usage.

In Sanity we have to make a separation between downloadable images and files (.pdf, .xlsx). That's because Sanity treats files as uploads other than images. In the link component I just used the same separation in the API for type: internalUrl externalUrl downloadableFile downloadableImage While that's strictly not necessary since we use the same arrow symbol for both files and images, I actually feel that it's easier to understand than mapping downloadableImage to downloadableFile (or rename them both to e.g. download) I did try to rename in the query, but I was more confused by that. :woman-shrugging:


unable to set session for IVR users

I'm using Yii2 to power my IVR app. The IVR vendor passes an CallSid param each time they hit an end point. CallSid is unique across the calls so I mapped CallSid's value to Session Id name. I extended the Session to accomplish this -- initialize session without cookies, but it doesn't seem to work.
I understand it may lead to session fixation, I can resolve it by making an API to call to validate the CallSid. How can I make Yii2 to recognize CallSid to initialize session?
use yii\web\Session as BaseSession;
class Session extends BaseSession {
public function init() {
	$request = Yii::$app->request;
	if( ! is_null($request->get('CallSid'))) {
		 ini_set("session.use_cookies", 0);
		 ini_set("session.use_only_cookies", 0);
		 ini_set("session.use_trans_sid", 1);
		 ini_set("session.cache_limiter", "");
		$this->setId($request->get('CallSid'));
	}
	parent::init();
}

}

With the current setting, I'm able to initialize the session with CallSid param and able retrieve the values from session. But, when I use the same setting with app on browser, it keeps showing me the login page. I expected CallSid to automatically rewritten to URL, but that didn't happen.

How can I make Yii2 to recognize CallSid to initialize session?

The code snippet you provided should work just fine.

when I use the same setting with app on browser, it keeps showing me the login page. I expected CallSid to automatically rewritten to URL, but that didn't happen.

I am unsure I understand this part. If you expect CallSid param magically appear at all URLs created by Yii - this will not happen. You'll have to adjust UrlManager to do so.
Closing, unless more coherit description provided.


Rename "Toggle Search View Position" feature

Hi,
I have an issue with the "Toggle Search View Position" feature shown here, but I don't know if it's a bug or a feature request.

The first time I used this feature on my vertically-mounted monitor, the search panel seemed to disappear completely from view. It was also toggled when right-clicking on a file, so my assumption was that it would affect the comparison view and not move the search panel itself.
My issue with this is two-fold:

It is not clear that the search panel is going to move to the bottom of the window when it is toggled.
Toggling, in itself, should be something that can be triggered from the same place over and over again.
Even if the option were a button within the search box, it would be better, but ideally it should be somewhere in the menus so that it can be found again and again, always in the same spot.

As I said, I'm not sure if this is a bug or a feature, or both, and would like some direction on how I can have my issues looked at.
Shafiq.

The first time I used this feature on my vertically-mounted monitor, the search panel seemed to disappear completely from view

Can you explain that some more? Did it not show up in the panel, or do you just mean that you didn't notice it?
I agree that it would make sense for this to be a menu option, but it's probably not commonly used enough to have it in the menu, they are full enough. It can be found in the command palette which is stable, we just added it to the context menu for discoverability.

Hi Rob,
The fact that it is vertically-mounted might have made it only appear that the search window disappeared. I've been unable to make it disappear completely, so it might have been something that I experienced rather than an issue with the application.
Your reasoning around discoverability makes sense, it was just a bit jarring for me when it happened the first time. I'm sure there's some UX lingo for when this happens.

Do you think there's a wording change for that command that might have made the result more predictable?

Maybe. The word "toggle" gives me the impression that it affects something else, especially since the way I triggered it originally was that I right clicked on a file in the search window, and it was an option at the bottom.
Toggle, to me, suggests that it will be there if I need to revert what I had done, but when the whole window moved around, it was a little jarring.

Let's keep this open and see if more users find it confusing.
We use toggle thorught our UX and for now I would not change it.

The "Toggle Search View Position" needs moving to the context menu or panel section menu shown here:

Its very difficult to find otherwise and is un-intuitive. Other panels move by accessing the menu in panel title so the search box movement should be in the similar location.


nimble/iso: Fix missing big_handle return parameter

This fixes the issue of BIG assigned that has not been propagated to the API user.

@szymon-czapracki @KKopyscinski PTAL


Tutorial: How to use input fields

LookupField, TextField, PickerField, DateField, DateTimeField

Input data
Assertions

https://github.com/cuba-platform/masquerade/wiki/How-to-use-input-fields

Review:

Sort sections as follows: TextField, DateField, DateTimeField, LookupField, PickerField
Show real examples that could be copy-pasted without
Apply java code highlighting for code blocks and use ; symbol
Use HasActions constants with PickerField instead of string literal
Do not start a sentence with "To ...".

Phrases:

Sometimes it is needed to check, that
Sometimes we need to check if

select the necessary value
select the desired value

Improvements:

Mention standard conditions with examples before all the components
Add small screenshots with components from Sampler and links to the latest cuba documentation

Also, let's add CheckBox usage as first component

https://github.com/cuba-platform/masquerade/wiki/How-to-use-input-fields

Replace byCubaId(<cubaId>) with some test String ids. byCubaId is not required in case of cuba-id.

Click the lookup button to set the value to the PickerField

Replace with PickerField API:
pickerField.triggerAction(HasActions.OPEN)

Fix code alignment of code block, the second line has inconsistent left margin

Write this on single line:
_$(CheckBox, byCubaId(<cubaId>))
              .checked = true;

Show Java examplse, do not use Groovy property syntax and tricks

We should be able to copy and paste valid code to Java project and see no compilation warnings

https://github.com/cuba-platform/masquerade/wiki/How-to-use-input-fields

The value passed to the method must have the following format: DDMMYYYY:

It is not true, depends on locale

Fixed: https://github.com/cuba-platform/masquerade/wiki/How-to-use-input-fields


native: handle subscription discontinuity

The Urbit channel we use to maintain our subscriptions gets periodically reset; even long running connections while the app is open in the background are automatically closed after 12 hours. Once this happens, we can't expect to have heard every update event and won't be able to guarantee the validity of our local cache. Ensuring we keep data comprehensively up to date will require more work, but the most pressing symptom we need to address is our channel cursors getting stale which leads to new messages not showing up correctly in channels.
We updated the Urbit client to properly emit a signal when the underlying channel cycles. This PR adjusts our logic to listen for those signals and when they occur, run a discontinuity recovery procedure. Right now that's limited to clearing stale cursors and re-running our init behavior, but this is something we can flesh out over time.
Also bumps the heads query higher up in the start fetch ordering to ensure we're setting those cursors as early as possible.
Fixes TLON-2158

@dnbrwstr wondering if we should also explicitly invalidate the channelPosts queries when this happens?

@dnbrwstr wondering if we should also explicitly invalidate the channelPosts queries when this happens?

Probably yes, I think so.


Implement outer join and friends

This PR implements all of the methods described this comment on #6 :

outer_join: Takes in a reference to a second HashBag and returns an iterator that yields the union of the key sets for both HashBags (ie. keyset(self) ∪ keyset(other)). Each key is yielded along with its corresponding counts on each HashBag.

The rest of the functions added in this PR as well as difference introduced in #6 can be implemented using this function

not_in: Takes in a reference to a second HashBag and returns an iterator that yields the set difference between the key set of the first HashBag and the second one (i.e. keyset(self) \ keyset(other)). Each key is yielded along with its corresponding count on the first HashBag.
signed_difference: Takes in a reference to a second HashBag and returns an iterator that yields the union of the keys sets for both HashBags (ie. keyset(self) ∪ keyset(other). Each key is yielded along with the difference between its count on the first and second HashBags.

This looks great, thanks for taking it on! The only thing I'm missing is a test that checks that outer_join indeed returns all the elements of self before any elements that are exclusively in other. We promise that in the docs, so we should have a test that the implementation meets that promise.

Thanks for taking a look! :D
Yeah, will add that test! However, that's not what I meant when I wrote:

The iterator also yields the respective counts in self and other in that order.

The order I was referring was the the order of the values in the tuple that the iterator yields (i.e. it's (key, self_count, other_count). Will change the documentation to make that clearer

The order I was referring was the the order of the values in the tuple that the iterator yields (i.e. it's (key, self_count, other_count). Will change the documentation to make that clearer

Ah, I see! Yeah, I think we want to make both promises in the docs (and check in tests) — that the first count in the tuple is from self, and that all elements not in other are yielded first.

Ah, I see! Yeah, I think we want to make both promises in the docs (and check in tests) — that the first count in the tuple is from self, and that all elements not in other are yielded first.

The tests for outer_join assert on the exact values yielded by the iterator so I think the ordering within the tuple is already covered  by tests :) I just added new tests for the ordering between yielded elements

Published as 0.1.7 :tada:


Tedlium3 conformer ctc2

This is tedlium3 conformer_ctc2 recipe it is similar to librispeech/ASR/conformer_ctc2 though I was mostly looking into librispeech/ASR/pruned_transducer_stateless5 and therefore there are some differences comparing to librispeech/ASR/conformer_ctc2:

Warmup added to decoder layers.
RandomCombiner added to encoder.

I modified prepare.sh significantly though it must stay compatible with the previous tedlium3 recipes. Now we download the pretrained 4-gram (small and big) language models from http://kaldi-asr.org/models/5; small is used for HLG decoding and big is used for rescoring. I also used TEDLIUM_release-3/tedlium3/LM/*.en.gz for training the BPE models and TEDLIUM_release-3/tedlium3/TEDLIUM.152k.dic as a lexicon. Also, an example of a decoding script with tuning LM weights for 1best is presented.
This is not ready for merge yet, I'm still working on some experiments on different <unk> encodings (continuing https://github.com/k2-fsa/icefall/issues/535), for tedlium3 these <unk> seems to correspond to punctuation, so I want to play around with that. I also have some ideas how to modify the decoder, but it is later. For now, my best WERs for HLG and attention-decoder decoding methods are:
1best
dev WER lm_scale_0.1 6.55
test WER lm_scale_0.1 6.08
attention-decoder
dev WER ngram_lm_scale_0.01_attention_scale_0.7 6.33
test WER ngram_lm_scale_0.01_attention_scale_1.5 5.74

@videodanchik
Could you please fix the conflicts?

@csukuangfj @danpovey
Hi guys, sorry for a bit slow progress here, but I think I've solved all these questions about <unk> encoding.
There seems to be an issue in how you perform <unk> encoding during training in tedlium3 recipes compared to how the BPE model does the encoding of unknown words. I first refer to this function especially considering the examples that provide the explanation how this function works.

texts = ["<unk> this is a sunny day"]
spm_ids = [[2, 38, 33, 6, 118, 11, 11, 21, 316]]
texts = ["<unk>"]
spm_ids = [[2]]

This is not how this function should work I believe. If I take these examples and perform the encoding with my BPE model (or any other BPE model you have from any icefall recipe) through the aforementioned function (I'm using sentencepiece==0.1.97 there is an emit_unk_piece option appeared in encode method) and compare results with direct encoding with sp.encode, here what I'm getting:
import sentencepiece as spm
from egs.tedlium3.ASR.local.convert_transcript_words_to_bpe_ids import convert_texts_into_ids

sp = spm.SentencePieceProcessor("icefall2/egs/tedlium3/ASR/data/lang_bpe_500/bpe.model")

texts = ["<unk>"]
convert_texts_into_ids(texts, unk_id=2, sp=sp)

>>> [[2]]

Now direct sp.encode of texts = ["<unk>"] as input will result in a split into multiple tokens during processing (actually why convert_texts_into_ids was implemented), for this reason, I replace the input to texts = ["@"]. My BPE model was not trained to encode this "word" and will output unk_id, but actually with small addition:
texts = ["@"]
sp.encode(texts, out_type=int), sp.encode(texts, out_type=str, emit_unk_piece=True)

>>> ([[15, 2]], [['▁', '<unk>']])

So it encodes with a "space" token before the <unk> token. Similar with input texts = ["<unk> this is a sunny day"]:
convert_texts_into_ids(["<unk> this is a sunny day"], unk_id=2, sp=sp)

>>> [[2, 86, 32, 6, 107, 8, 8, 16, 325]]

And with <unk> -> @ replacement in direct encoding we get:
texts = ["@ this is a sunny day"]
sp.encode(texts, out_type=int), sp.encode(texts, out_type=str, emit_unk_piece=True)

>>> ([[15, 2, 86, 32, 6, 107, 8, 8, 16, 325]],
>>> [['▁', '<unk>', '▁this', '▁is', '▁a', '▁su', 'n', 'n', 'y', '▁day']])

The difference is an additional "space" token in the beginning of each <unk>.
There is no difference in how many characters the <unk> word consists of:
texts1_direct = ["@@"]
texts2_direct = ["@@ this is a sunny day"]
print(sp.encode(texts1_direct, out_type=int), sp.encode(texts1_direct, out_type=str, emit_unk_piece=True))
print(sp.encode(texts2_direct, out_type=int), sp.encode(texts2_direct, out_type=str, emit_unk_piece=True))

>>> [[15, 2]] [['▁', '<unk>']]
>>> [[15, 2, 86, 32, 6, 107, 8, 8, 16, 325]] [['▁', '<unk>', '▁this', '▁is', '▁a', '▁su', 'n', 'n', 'y', '▁day']]

BPE model doesn't output a "space" token before <unk> token only if it is attached to the previous word:
texts1_direct = ["i hate these fu***ng unks"]
print(sp.encode(texts1_direct, out_type=int), sp.encode(texts1_direct, out_type=str, emit_unk_piece=True))

>>> [[23, 141, 84, 314, 49, 34, 2, 116, 165, 47, 3]]
>>> [['▁i', '▁ha', 'te', '▁these', '▁f', 'u', '<unk>', 'ng', '▁un', 'k', 's']]

BTW if you feed something like text=["<unk> this is a sunny day @"] to convert_texts_into_ids you will end up with:
convert_texts_into_ids(["<unk> this is a sunny day @"], unk_id=2, sp=sp)

>>> [[2, 86, 32, 6, 107, 8, 8, 16, 325, 15, 2]]

where you don't have space before first  and naturally output it before encoding @.
Now the outcome of all that's been said is that the BPE model naturally emits a "space" (▁) token in most cases before <unk> token when it fails to encode the input. With the current pruned_transducer_stateless and transducer_stateless recipes, all "space" tokens before <unk> token were removed and models were trained to output <unk> token "attached" to the previous token and you ended up with (see p.2 in https://github.com/k2-fsa/icefall/pull/183#issuecomment-1048550862). I suggest preserving the natural way of encoding <unk> with the "space" token inserted before and modifying https://github.com/k2-fsa/icefall/blob/a0cf85343dad31a678ddaac7652f0bb2bbb4cac2/egs/tedlium3/ASR/local/convert_transcript_words_to_bpe_ids.py#L61 to y_ids.extend(id_segments[i] + [sp.piece_to_id("▁"), sp.unk_id()])
Currently, in this PR it's a nasty hack, look at line 536 of train.py: texts = [t.replace("<unk>", "@") for t in texts], I will change it shortly.
Now a separate question is how do we create lexicon.txt in all recipes. If you look at any lexicon.txt of any recipe in icefall you can notice that each word transcription in it starts from ▁ character whether it's a separate token or a part of another token that begins with this character. All word transcriptions are like this except the transcription of <UNK> word: currently it is <UNK> <unk> see https://github.com/k2-fsa/icefall/blob/a0cf85343dad31a678ddaac7652f0bb2bbb4cac2/egs/librispeech/ASR/local/prepare_lang_bpe.py#L160 I'm also suggesting to add a "space" token before <unk> token to make it similar with the rest of the lexicon. As it's easy to recompile the HLG.pt upon the lexicon where the <UNK> word is encoded with or without the ▁ token in the beginning, I present decoding results for both options.
I have trained 2 final models after some experimentation, training command is the following:
./conformer_ctc2/train.py \
    --world-size 4 \
    --num-epochs 40 \
    --use-fp16 true \
    --max-duration 350 \
    --num-workers 4

In the first model, I preserved replacement <unk> -> @ and feed the resulting transcript to sp.encode making it output sp.unk_id() with inserted "space" token before, each time it faces @. Next, I performed the decoding with "ctc-decoding", "1best", "whole-lattice-rescoring", "attention-decoder" methods preserving the best results after tuning. For "1best", "whole-lattice-rescoring", "attention-decoder" methods I performed decoding using two versions of HLG.pt, where lexicon compiled with and without ▁ token before <unk> token for <UNK> word transcription. I got the following results:

method
epoch
avg
language model weight
attention scale
WER_dev
WER_test
WER_avg
with ▁ token in lexicon

ctc-decoding
40
30
NaN
NaN
6.37
5.92
6.145
doesn't matter

1best
40
30
0.1
NaN
5.88
5.46
5.670
True

1best
32
22
0.1
NaN
6.21
5.67
5.940
False

whole-lattice-rescoring
40
27
0.3
NaN
5.90
5.48
5.690
True

whole-lattice-rescoring
24
15
0.1
NaN
6.28
5.65
5.965
False

attention-decoder
38
26
0.01
3.00
5.60
5.33
5.465
True

attention-decoder
29
18
0.01
0.70
6.06
5.48
5.770
False

So when I don't add ▁ token I'm getting worse results, when I looked at WER reports for the second and third lines from the table but didn't find any patterns. The tensorboard log is available here: https://tensorboard.dev/experiment/5NQQiqOqSqazfn4w2yeWEQ/
Notice the validation ctc and attention losses, it starts to diverge significantly after some time, I blame the absence of <unk> words in both dev and test sets.
My second model was trained with the complete removal of <unk> words from reference transcripts.

method
epoch
avg
language model weight
attention scale
WER_dev
WER_test
WER_avg
with ▁ token in lexicon

ctc-decoding
40
30
NaN
NaN
6.46
6.05
6.255
doesn't matter

1best
37
28
0.1
NaN
5.95
5.61
5.780
True

1best
37
28
0.1
NaN
5.94
5.59
5.765
False

whole-lattice-rescoring
34
25
0.2
NaN
6.02
5.62
5.820
True

whole-lattice-rescoring
34
25
0.2
NaN
6.01
5.60
5.805
False

attention-decoder
38
28
0.08
3.00
5.78
5.50
5.640
True

attention-decoder
38
28
0.10
4.00
5.73
5.46
5.595
False

Here decoding with or without  ▁ token doesn't make much difference, but both results are worse than the model trained with <unk> and with ▁ token in lexicon before <unk> token. Tensorboard available here: https://tensorboard.dev/experiment/wLAAaGoCQBuaSkpakaT67g/
I still observe diverging of validation losses but way less compared to the first model where we didn't exclude <unk> from the reference, it's could be an overfitting sign, but at the same time, when I perform decoding with --avg 1 and 1best method I do not observe overfitting signs like WER increase:

Anyway, to summarize all these results, I believe that we should proceed with the model that was trained WITH <unk> in transcripts + that is using ▁ <unk> as an <UNK> word transcript in the lexicon, as it seems to produce the best WER results.
I should have probably tried to train a separate model without ▁ token before <unk> token during training, which corresponds to <unk> "attached" to the previous token, something that we currently have in pruned_transducer_stateless and transducer_stateless recipes, but I decided to skip this set up as it seems to be unnatural to train such models.

@videodanchik
Thanks for your detailed analysis and comparison.

(actually why convert_texts_into_ids was implemented)

If I recall correctly, the first attempt treated <unk> as a normal word and encoded it into 5 pieces (https://github.com/k2-fsa/icefall/pull/183#discussion_r806451724) and then we fixed it by following (https://github.com/k2-fsa/icefall/pull/183#discussion_r806450892) and finally we kept it since the result shown in https://github.com/k2-fsa/icefall/pull/183#issuecomment-1047583114 was promising.

Currently, in this PR it's a nasty hack, look at line 536 of train.py: texts = [t.replace("", "@") for t in texts], I will change it shortly.

I think we need to handle the case when @ is a valid BPE token. Can we modify the implementation of convert_texts_into_ids to insert a blank before <unk> manually?

I'm also suggesting to add a "space" token before  token to make it similar with the rest of the lexicon

Yes, that is a good idea.

I believe that we should proceed with the model that was trained WITH  in transcripts + that is using ▁  as an  word transcript in the lexicon, as it seems to produce the best WER results.

Agreed.

@csukuangfj I performed the final fixes you asked for, see: https://github.com/k2-fsa/icefall/pull/696/commits/d9f46092b9086bf267eee50df9ecc99288b9b248
I believe this is ready for merge. What else should be done to make it happen?

Thanks!

I believe this is ready for merge. What else should be done to make it happen?

(1) Could you fix the CI test and style check issues?
Please have a look at https://k2-fsa.github.io/icefall/contributing/code-style.html
for the version of black and flake8 we are using
(2) Also, could you update
https://github.com/k2-fsa/icefall/blob/master/egs/tedlium3/ASR/RESULTS.md
and upload your pre-trained models and decoding results to a hugging face repository?

@csukuangfj Should be ready now.

@videodanchik
Thanks! Could you fix the test error reported by GitHub actions?
https://github.com/k2-fsa/icefall/actions/runs/3672409740/jobs/6208556493#step:8:295
=================================== FAILURES ===================================
_____________________ test_with_torch_label_smoothing_loss _____________________

    def test_with_torch_label_smoothing_loss():
        if torch_ver < LooseVersion("1.10.0"):
            print(f"Current torch version: {torch_ver}")
            print("Please use torch >= 1.10 to run this test - skipping")
            return
        torch.manual_seed(20211105)
        x = torch.rand(20, 30, 5000)
        tgt = torch.randint(low=-1, high=x.size(-1), size=x.shape[:2])
        for reduction in ["none", "sum", "mean"]:
            custom_loss_func = LabelSmoothingLoss(
                ignore_index=-1, label_smoothing=0.1, reduction=reduction
            )
            custom_loss = custom_loss_func(x, tgt)

            torch_loss_func = torch.nn.CrossEntropyLoss(
                ignore_index=-1, reduction=reduction, label_smoothing=0.1
            )
            torch_loss = torch_loss_func(x.reshape(-1, x.size(-1)), tgt.reshape(-1))
>           assert torch.allclose(custom_loss, torch_loss)
E           RuntimeError: The size of tensor a (5000) must match the size of tensor b (600) at non-singleton dimension 1

test_label_smoothing.py:44: RuntimeError
=========================== short test summary info ============================
FAILED test_label_smoothing.py::test_with_torch_label_smoothing_loss - RuntimeError: The size of tensor a (5000) must match the size of tensor b (600) at non-singleton dimension 1
========================= 1 failed, 8 passed in 2.22s ==========================
Error: Process completed with exit code 1.

@videodanchik
I just updated https://huggingface.co/spaces/k2-fsa/automatic-speech-recognition
to include your pre-trained models (from https://huggingface.co/videodanchik/icefall-asr-tedlium3-conformer-ctc2)

@csukuangfj I wonder how does it work with decoding with greedy_search and modified_beam_search methods upon the Conformer CTC model?

greedy search and modified beam search are applicable only for transducer-based models.
That page should update the decoding methods when a CTC model is selected.
(By default, it uses a CTC topology for decoding when a CTC model is selected).

Thanks!

greedy search and modified beam search are applicable only for transducer-based models.
That page should update the decoding methods when a CTC model is selected.
(By default, it uses a CTC topology for decoding when a CTC model is selected).
@csukuangfj I see thanks, but it looks like there is a bug or something as I still see transducer decoding methods for my model.

@csukuangfj I see thanks, but it looks like there is a bug or something as I still see transducer decoding methods for my model.

Yes, it can be considered a bug. Sorry, I don't have time to fix it.


Add support for \limits and \nolimits controls

Resolves #35
Works by altering the limits property of the base node while superscripts and subscripts are being considered in the parseAtom function.

@JeffEverett thanks for the pull request.  Nice unit tests.  \limits changes how certain things are rendered so you'll have to update buildHTML.js to handle the rendering.  Changes may also be necessary in buildMathML.js to differentiate between the two styles.  Since this is a new rendering you should add a screenshot test (or modify an existing one).  See dockers/Screenshotter/README.md for details.

@kevinb7 Here's my understanding: in KaTeX, all operator functions have a limits property that  determines whether the superscripts and subscripts are placed to the right of the base node or above and below the base node. Functions like int have a default limits property of false and functions like sum have a default limits property of true. \limits and \nolimits have the power to alter these defaults and the existing rendering system takes care of the rest. I see no difference between the TeX output of an expression like \int\limits^2_3 3 and the KaTeX output of the same expression while using my changes. If there are subtleties of the \limits and \nolimits functions that I'm unaware of, I'd be happy to correct my implementation.
If the above is correct and the new limit-controlling functions add no functionality to the actual renderer, should I still add a screenshot test?

@JeffEverett just checked out your branch.  The rendering looks good.  I didn't realize that there was already special handling in place for base nodes with a limits property set to true.  It looks like it was there to handle \displaystyle\sum_a^b but in fact handles all ops.
We should still have screenshot tests for this in place to prevent future regressions.  The screenshot tests should be simpler to run now that we're using pre-made docker images.
The MathML output should use <munderover> instead of <msubsup>, but since this is an existing issue (see https://github.com/Khan/KaTeX/issues/198) don't worry about it.

@kevinb7 I have added a screenshot test for the limit controls.

@JeffEverett awesome, thanks for the screenshots and thanks for the pull request.


Unable to create subscription using Terraform with SP that has billing delegation role nor with az-cli

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az account alias create Extension Name: account. Version: 0.2.2.
Errors:
The command failed with an unexpected error. Here is the traceback:
No module named 'azure.core.rest'
Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/knack/cli.py", line 231, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 657, in execute
    raise ex
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 720, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 691, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 328, in __call__
    return self.handler(*args, **kwargs)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/command_operation.py", line 112, in handler
    client = self.client_factory(self.cli_ctx, command_args) if self.client_factory else None
  File "/home/nusrath/.azure/cliextensions/account/azext_account/generated/_client_factory.py", line 24, in cf_alias
    return cf_account(cli_ctx).alias
  File "/home/nusrath/.azure/cliextensions/account/azext_account/generated/_client_factory.py", line 9, in cf_account
    from ..vendored_sdks.subscription import SubscriptionClient
  File "/home/nusrath/.azure/cliextensions/account/azext_account/vendored_sdks/subscription/__init__.py", line 9, in <module>
    from ._subscription_client import SubscriptionClient
  File "/home/nusrath/.azure/cliextensions/account/azext_account/vendored_sdks/subscription/_subscription_client.py", line 12, in <module>
    from azure.core.rest import HttpRequest, HttpResponse
ModuleNotFoundError: No module named 'azure.core.rest'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az account alias create --name {} --billing-scope {} --display-name {} --workload {}

Expected Behavior
Environment Summary
Linux-5.13.0-30-generic-x86_64-with-debian-11.0, Ubuntu 21.10
Python 3.6.10
Installer: DEB

azure-cli 2.29.2 *

Extensions:
account 0.2.2

Additional Context

@jiasli for awareness


Accept ember data items

I'm sorry we didn't get back to this previously, but at this point this repo is essentially unmaintained.  Please use @html-next/vertical-collection or ember-collection for similar functionality.
Closing...


Docker-Compose crashed because git is not available

Hi,
I wanted to start using this, but when building the docker image it crashes because in one of the images git seems to be missing
Step 6/7 : RUN pip3 install --no-cache-dir -r requirements.txt &&     touch mtt_mastodon_client.secret           mtt_mastodon_user.secret           mtt_mastodon_server.secret           mtt_twitter.secret
 ---> Running in 8d9fcc8209ae
Collecting git+https://github.com/bear/python-twitter.git (from -r requirements.txt (line 6))
  Cloning https://github.com/bear/python-twitter.git to /tmp/pip-req-build-9f2_012x
  Running command git clone -q https://github.com/bear/python-twitter.git /tmp/pip-req-build-9f2_012x
  ERROR: Error [Errno 2] No such file or directory: 'git': 'git' while executing command git clone -q https://github.com/bear/python-twitter.git /tmp/pip-req-build-9f2_012x
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?

I'm using openSUSE Leap 15.1. Find attached the full docker-compose log
I really like this project btw :-)
docker-compose-log.txt

Hello,
Did you check ? https://github.com/AmauryCarrade/MastodonToTwitter/pull/58

Cool! Looks good but I run into a different problem:
Successfully built 933201d28f33
Successfully tagged mastodontotwitter:latest
WARNING: Image for service mtt was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
[13/02/2020 09:30:01] [MainThread] Everything looks good; starting…
[13/02/2020 09:30:02] [Mastodon -> Twitter] Tweeting any toot after toot<PHONE_NUMBER>55624221
[13/02/2020 09:30:02] [Twitter -> Mastodon] Tooting any tweet after tweet<PHONE_NUMBER>974284293
[13/02/2020 09:30:02] [Twitter -> Mastodon] Listening for tweets…
[13/02/2020 09:30:02] [Mastodon -> Twitter] Updated expected short URL length - it is now 24 characters.
[13/02/2020 09:30:02] [Mastodon -> Twitter] Listening for toots…
Exception in thread Mastodon -> Twitter:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/src/app/mtt/mastodon_to_twitter.py", line 228, in run
    self.mastodon_api.stream_user(TootsListener(self), async=False)
TypeError: stream_user() got an unexpected keyword argument 'async'

I'm gonna check when I have some time.

Chiming in here: That's a problem with the newest version of Mastodon.py, I had to rename the parameter from "async" to "run_async". This change was unfortunately necessary, since python 3.5 made "async" a keyword (so it can't be used as a variable name anymore). If you replace "async" with "run_async" in the stream_user call, things should work as before.

Thanks, that did the job! Now the container is running


Increase in frame raster and build times

See: https://flutter-flutter-perf.skia.org/e/?begin=1649109790&end=1649193450&keys=X05e7fd34c8d61545cd2effbc1d06ec4f&num_commits=50&request_type=1&xbaroffset=28200

parent issue closed. see comments there.


Fix processing of // in File and add unit tests

Fixes #1457
Change-Id: I73ff292d87e8ba22a5900eac774d8ae576f05ef2

I tagged this as "Needs discussion" -- it needs more details on how to reproduce the bug.

The same error message still shows up when I use the // in reading file with AI2 Companion. It was working before, but not recently. Any suggestion?

@linchenyu1988 The fix has been merged but we haven’t yet released a new version that incorporates it.

On Dec 8, 2018, at 14:03, linchenyu1988<EMAIL_ADDRESS>wrote:
The same error message still shows up when I use the // in reading file with AI2 Companion. It was working before, but not recently. Any suggestion?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Fix benchmark link in README

The README still points to the old deleted benchmarks before 68226ea3b367118e3e6a61218f8fd8f8803e1d44.

Don't worry about the linting, I'll fix it.
Thanks so much for catching this.

thanks so much.


Fix for NaN loss in bridgetower

Fixes NaN loss issue in bridgetower.

[N] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[N] Did you make sure to update the documentation with your changes?
[N] Did you write any new necessary tests?

https://github.com/huggingface/optimum-habana/pull/796


howto :: add websocket client query to a derived class

Hi! I am trying to add a websocket query to a (custom) class (derived from another, not under my control). For that member function i added "async" in front of declaration but i receive a message from the base class that RuntimeWarning: coroutine 'MyCopyProgressHandler.end' was never awaited and seems that is not executed. - my code
Any idea what can be done?
Thank you!!

This isn't really a websockets issue. Try StackOverflow maybe?
You're more likely to get an answer if you post a minimal example rather than a 550 lines long script.


filecache Close set to nil before Close

Hi,
I was trying to track down an issue that when the disk usage exceeded limit, the stenographer removes all cache file instead of enough just to be below the limit. Strace show that the actual syscall of close() is about two minutes after the unlink of the file. During the two minutes, stenographer makes repeated attempts to remove more files and eventually deleted all of the cache.
Found the last function in filecache.go, the cf.f is set to nil before Close. I have never coded in go, but this looks unusual. Changes the code to
func (cf *CachedFile) closeFile() error {
if cf.f == nil {
v(3, "Close of already-closed file %q ignored", cf.filename)
return nil
}
v(2, "Closing %q", cf.filename)
cf.cache.opened--
defer cf.nilFile()
return cf.f.Close()
}
func (cf *CachedFile) nilFile() {
cf.f = nil
}
The problem is gone.
Ming

Oops!  That's not intentional :P
Pull #188 to fix, thanks for both reporting and clearly debugging the issue!


The readme doesn't explain how to choose a tagger model when running the postagger server

The readme doesn't explain how to choose a tagger model when running the postagger server

If you want to use a non-default tagger model, you'll need to set the appropriate properties flag. For example:
with corenlp.CoreNLPClient(annotators="tokenize ssplit pos".split(), properties={"pos.model": "/path/to/model/") as client:
      client.annotate("This is a test sentence.")

@arunchaganty ,

Tou supplied the path to the model, but you didn't specify the file names. How do I specify the .tagger filename? How do I specify the .props filename?

I am running the server from the command line using:

java -Xmx500m -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -annotators tokenize,ssplit,pos -port 9001 -timeout 15000
So I need to create a .properies file and put inside a line with pos.model=/path/to/model/ ?

I downloaded a ~1GB English language model from here, but I don't see inside the englishPCFG model. How do I find this model?

I would like to run the same model as here, which is PCFG.

When you run the server directly from python, like you did with with corenlp.CoreNLPClient, how do you specify the filename of the JAR?

Thanks.

My understanding of what you want (given (4)) is that you actually want to run the constituency parser and use the POS tags it predicts. You can do this by adding parse into the list of annotators (so corenlp.CoreNLPClient(annotators="tokenize ssplit parse".split() would be sufficient). The documentation at https://stanfordnlp.github.io/CoreNLP/parse.html has more details.
There is a separate concern regarding how to set these properties. There are two possible ways you can invoke the CoreNLPServer:

Firstly, you can run it as a java command as you mentioned, but in that case you need to specify the properties in when sending a POST request to the server. This is completely independent of the python package. See https://stanfordnlp.github.io/CoreNLP/corenlp-server.html for details.
Secondly, you can call the server directly through this Python package. The location of the CoreNLP package is specified through the $CORENLP_HOME environment variable, which you must set, e.g. export CORENLP_HOME=~/stanford-corenlp-full-2017-06-09/.

@arunchaganty, if I use the parse option, then I need to get the tree back, iterate it, and extract the POS tag out of it? That's what they actually did in the online demo page?
So, what you are saying, is that effectively, the result of using the pos annotator are different than the result of using the full parser, and then taking the POS tags out of the leaves. Am I right?

I think I found the thing. If I addenforceRequirements = falsein the properties file, the CoreNLP server behave like the CoreNLP, and doesn't add the pos.

Ah ok, that makes sense!
On Fri, Mar 30, 2018, 8:08 AM Nadav Benedek<EMAIL_ADDRESS>wrote:

I think I found the thing. If I addenforceRequirements = falsein the
properties file, the CoreNLP server behave like the CoreNLP, and doesn't
add the pos.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stanfordnlp/python-stanford-corenlp/issues/10#issuecomment-377545271,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFOyTJwIRDcqFnLcHL0lo7hT6OrlQTjks5tjkpngaJpZM4S3o04
.


Question: is a GetEntitlements call with scopes different than GetDecisions?

The current GetDecisions request contains actions, entity chains, and resource attribute FQNs then returns decisions, actions, and obligations: https://github.com/opentdf/platform/blob/main/service/authorization/authorization.proto#L81-L85
The current GetEntitlements request takes in what is essentially a single entity chain and optional "scopes" (resource attribute FQNs) then returns the entitled attribute FQNs for each entity in the chain: https://github.com/opentdf/platform/blob/main/service/authorization/authorization.proto#L165-L168
Could scopes be eliminated, where that scoped use case is met by passing attribute value FQNs to GetDecisions with the sole entity chain?
In tandem, if actions are required for GetDecisions, should they also be returned within the GetEntitlements response?

Answer: No, they are not the same thing.
Consider an attribute has a Hierarchy rule with the following values:

top
middle
bottom

Consider an entity's subject mapping entitles them to middle.
Consider two pieces of data are tagged with the Resource Attribute FQNs for top and bottom respectively.
GetDecisions will give that entity access to only the data tagged with bottom because it is lower in hierarchy than the user's attribute value.
However, a GetEntitlements request made with either the top or bottom attribute value FQNs as scopes will not respond that the entity is entitled to either. An unscoped GetEntitlements request should respond that the Entity is entitled with the middle attribute value. It is a narrow request, and does not consider attribute rule evaluations when making entitlement decisions.


Joshua n

Trying to merge with Rachel.

 She will have to review/compare added things.


[SPARK-34456][SQL] Remove unused write options from BatchWriteHelper

What changes were proposed in this pull request?

This PR removes dead code from BatchWriteHelper after SPARK-33808.
Why are the changes needed?

These changes simplify BatchWriteHelper by removing write options that are no longer needed as we build Write earlier.
Does this PR introduce any user-facing change?

No.
How was this patch tested?

Existing tests.

cc @cloud-fan @HeartSaVioR @rdblue @dongjoon-hyun @sunchao @viirya

Test build #135205 has started for PR 31581 at commit bb6eb19.

@dongjoon-hyun, sure thing. Added the JIRA id.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39786/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39786/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39786/

Thank you all. Merged to master.

Test build #135205 has finished for PR 31581 at commit bb6eb19.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/135205/

My late thank you to everyone for reviewing, @HyukjinKwon @dongjoon-hyun @HeartSaVioR @viirya!


[RV_DM] rv_dm_sba_debug_disabled_vseq

The test ensures that the SBA interface is disabled when 'lc_hw_debug_en' is not set to true, ensuring no SBA TL accesses occur.

@jdonjdon I have rebased and resolved all the conflicts as requested.
Kindly review it. Thanks

If I understand correctly, this change is intended to fix issue #15668. Is that correct? If so, it's probably worth marking it in GitHub as such.


leochan.ex-linkedin: updating templates

Hello,
I have edited the templates for the linkedin ad. Tested with live dataset.
Please merge it with the exisiting ones.
Thanks,
Leo

Hello,
I have modified the files's name and added a new template to run in orchestration to extract current_date's data

File name modified.


Reduce ctrl button lock-in to 50ms

Related to Issue #566, I'm still finding that some users trying to do Ctrl+A, Delete are not seeing their change propagate because of the 200ms lock-in after releasing the Ctrl button. Recommend changing this to 50ms to give a better chance of this working.
I'm not sure what the origin of the lock-in is exactly. If someone knows where that came from maybe we can find a solution that works for both use cases. I'm guessing this was just to avoid some corner case where people release the Ctrl key a little too early?

I think it was before composition and ctrl was splited.
So it's seems legit to reduce that duration.

Thanks :)

Sounds good, although if the timeout/lockin doesn't serve a purpose anymore should I just remove it entirely?

Idk really... we need to test it in different cases.


[camera] ffmpeg encoding crashes on odd window dimensions

Happens with window size close to square? 849*809, etc. Doesn't seem to happen with a perfect square.

Error: ffmpeg exited with code 1: Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Could be resolved by changing MP4's encoding level/profile (higher level). Need to dig into that.

Update: this has to do with recording using odd numbers for window dimensions – the pixel format I use in ffmpeg (yuvj420p) only allows numbers divisible by 2.
Some notes:
• yuvj420p allows to have a preview in MacOs's quick view in the finder.
• another format, yuvj444p, doesn't care about dimensions but doesn't allow quick view.
• ProRes (the other, lossless encoding setting available) works okay on odd window sizes.

For now, better to use even numbers for window sizes to record mp4s. This is easily done using the Window Helper (CMD+ALT+M)

This was fixed in 9c1f00e (release 0.0.4). Closing now.


Nice, but one issue

this is pretty amazing, I was able to get this working for the most part, but when running this I get an error:
`python3 ./bing_search.py --dryrun
Using database of 14429 potential searches
Doing 34 desktop searches
Search 1: brendasong
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
[3277:3277:0512/005020.825801:ERROR:viz_main_impl.cc(150)] Exiting GPU process due to errors during initialization
[3366:3366:0512/005021.464867:ERROR:gpu_init.cc(426)] Passthrough is not supported, GL is egl
Search 2: rei
Failed to parse JSON adblock resources: EOF while parsing a value at line 1 column 0
Search 3: air quality seattle
[3250:3261:0512/005030.297567:ERROR:udev_watcher.cc(97)] Failed to begin udev enumeration.
Search 4: nc state football

Search 34: scoob
Desktop Search complete! 170 MS rewards points

Doing 40 mobile searches
Search 1: saints
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
Opening in existing browser session.
[3250:3250:0512/005314.060649:ERROR:CONSOLE(1)] "[Shields]: Can't request shields panel data. Error: No tab url specified", source: chrome-extension://mnojpmjdmbbfmejpflffifhffcmidifd/out/brave_extension_background.bundle.js (1)
[3250:3250:0512/005314.061065:ERROR:CONSOLE(1)] "[Shields]: Can't request shields panel data. Error: No tab url specified", source: chrome-extension://mnojpmjdmbbfmejpflffifhffcmidifd/out/brave_extension_background.bundle.js (1)
[3250:3250:0512/005314.061359:ERROR:CONSOLE(1)] "[Shields]: Can't request shields panel data. Error: No tab url specified", source: chrome-extension://mnojpmjdmbbfmejpflffifhffcmidifd/out/brave_extension_background.bundle.js (1)
Search 2: google doodle
Search 3: askew
[3250:3250:0512/005322.968921:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: The message port closed before a response was received.", source: chrome://newtab/ (0)
[3250:3250:0512/005322.969416:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: The message port closed before a response was received.", source: chrome://newtab/ (0)
Search 4: brazil vs argentina

Search 40: toys r us
Mobile Search complete! 200 MS rewards points

This is using the Brave Browser

It looks like you are using a Linux Desktop environment? Up to this point I have only used in Windows, however I may work on more cross platform compatibility as I recently got a Linux setup


Adding Windirstat Like Graph for Object Statistics.

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Problem
Hard to understand the storage usage from Cloud cost management perspective
Desired Solution
Having a Graph like what "windirstat" Tool can provide for Windows Filesystem would be need.
Alternatives and Workarounds
No response
Additional Context
https://en.wikipedia.org/wiki/WinDirStat#/media/File:Windirstat.png

@wjhhuizi We can investigate some cost management analysis using Azure APIs. However, I'm not sure a windirstat experience is in the scope of Storage Explorer. It's very much more hardware oriented, which isn't very applicable in a cloud scenario. Can you be more specific about what features you'd like to see? What sort of questions do you need answers for when looking at your Azure storage?

@wjhhuizi Can you provide more information about what sort of questions you need answers for when look at your Azure storage?

Hi @craxal,
The feature me and my org want is actually to be able to understand the storage distribution and the cost due to the usage from each object/folder
example question like:

Finding out the largest object from the container.
Finding out which folder incurs the most cost from a BLOB Storage Account.
List the size of the folder on each level.
Analysis what are the file types mainly contained in a particular folder.

Thank you for looking into this.

@wjhhuizi Have you been using or considered Azure Monitor or Azure Storage Blob Inventory? Are there any gaps in these services for your needs?


Document API's for Application Insights/Azure diagnostics

TFS: 406224

@mairaw Ready for another look :eyes:

Please fix the apiscan metadata the same way we did in https://github.com/dotnet/docs/pull/2007 asnd also add an extra metadata called topic_type with the value apiref. I'll review it this afternoon!

@mairaw :rocket:

I have a question in to Liudmila, so I've marked this WIP for a moment until I hear back from her.
Otherwise, I included Connection and ConnectionGroup and made a few other minor updates.

You're getting some warnings for the metadata. api_type and topic_type expect an array, so you get that very "helpful" message: unexpected type String for metadata api_type, the expected type is string 😄
For now, just break into a new line like we had to do with PR #2007

Will add ...
HttpWebRequest._AutoRedirects
Counts number of redirects  made off this HttpWebRequest
http://referencesource.microsoft.com/#System/net/System/Net/HttpWebRequest.cs,386b7e101de743c6,references

@mairaw I alphabetized the TOC with namespaces.

Stand-by a sec ... It still doesn't like that underscore unless it's escaped in the heading.

@mairaw

Shortened the TOC names
Added syntax blocks
Went to sentence case titles (although I know ur planning to run [@]spboyer's script for that globally)
Made the internal/private warning on preexisting topics match the new ones
Few other formatting changes (mostly line spacing)

@mairaw This would be ready, but it's not clear why (showing one for example) ...

Invalid cross reference "<xref:System.Net.ServicePoint>".

System.Net.ServicePoint is fine: https://docs.microsoft.com/en-us/dotnet/api/system.net.servicepoint?view=netframework-4.7
I'll try a rebuild.

@mairaw I'll bet you $10 bucks this is failing due to invisible :ghost: characters! I'll see what's what.

😠 Where's my :gun:!!!?????

@mairaw Refs fixed. This one is ready for another look :eyes:.

Did you copy the text from the API page title? I've opened a bug for them re. weird characters there and it's due to this:

Although yours doesn't seem like it.
I'm not seeing the changes to the TOC as I'm expecting. I'll go ahead and submit a new commit and we can discuss whether we like that or not. 😄

@mairaw

copy the text from the API page title

I admit it took a few bad experiences with cut-and-paste to conclude that CUT-AND-PASTE SUCKS! :angry: ... Yeah, it's not something I'm inclined to do going forward.

I'll go ahead and submit a new commit and we can discuss whether we like that or not.

Sure :+1: ... hit me up if I need to take further action.

Apparently I can't type commit messages. 😄
When build is done, let's take a look and send that around to the thread to see if folks approve it.

namepasces

I thought that was the Brazilian spelling! :grinning:

I don't even know how people say this in Brazil. They might just use the English spelling for this one.
BTW, I've changed the capitalization of Class and Field in the TOC since for API titles we're still using title case: https://docs.microsoft.com/en-us/dotnet/api/system.accessviolationexception?view=netframework-4.6.2. Can you fix that in the topics themselves?

Can you fix that in the topics themselves?

Sure ... I'll do it right after the uid fix commit goes in.

@mairaw I capitalized "field" and "class" in the files. I left the TOC alone.

Closing and re-opening to kick off a new build.
@GuardRex, is this ready to merge if the build succeeds?

@rpetrusha Yes, I made the [@]miaraw updates, so I think we're good to go after the build finishes.


Possible: Native Messaging with XD, BiglyBT

I'm definitely going to do snark-RPC, but if I can I'd also like to make XD and BiglyBT configurable options for an i2p-in-private-browsing bittorrent protocol handler.

snark-rpc and BiglyBT use very similar API's. If both are discovered on the same machine, I'm going to assume that BiglyBT is the preferred one unless it is specified otherwise.


feat(extras.ai): blink.cmp integration and kind overrides for menu drawing

Description
blink.cmp integration for codeium and copilot, and correct menu drawing for codeium, copilot, and supermaven.
I've simplified the blink.cmp config a bit for these extras (especially for copilot, which was extremely nested) by only including the blink.cmp spec if vim.g.ai_cmp is true.
Multiple AI extras can now be enabled at the same time with blink.cmp.
blink.cmp ghost text is now always enabled. Although some ai plugins always display virtual text, at worst it overlaps with blink's ghost text and is not noticable.
Lastly, I can't test copilot because I don't have a subscription, nor do I want to sign up for one, but it should work just as well as the others.
Screenshots
With Codeium:

Multiple extras enabled at the same time:

Checklist

[X] I've read the CONTRIBUTING guidelines.

I'm going to make some changes to the implementation, so I'm marking this as a draft until those are done.

Always enabling ghost_text makes no sense when ai_cmp = false. It's super annoying if ghost text is enabled in that case.
I reworked your PR to update the symbol kinds of the AI sources without the need to change any draw components.
Let me know what you think

I misunderstand how ghost_text was disabled. Makes sense the way it is now.
I do prefer adding a kind in the providers config to what I did before. Unfortunately I believe that the draw functions still need to be overwritten, because

I misunderstood when ghost_text was disabled. LGTM
I much prefer adding a kind to the source in the provider spec, but unfortunately blink.cmp currently treats item.kind as an integer and resolves it using its internal CompletionItemKind table - see here - so overwriting item.kind by itself is not enough and kind is still Unknown, see screenshot below. Adding custom kinds to blink is not planned, but there may be some alternative in the future.
Until something like that is implemented, I believe the options are to override the draw functions (which could fallback to the user-provided ones, if they exist) or mutate blink.cmp.types.CompletionItemKind, which seems a bit more difficult. WDYT?

I realize the default draw style doesn't contain the kind. Here's what I use, and what is visible in the screenshot above:
draw = {
  columns = { { "kind_icon" }, { "label", "label_description", gap = 1 }, { "kind" } },
}

Are you sure you tested this PR with my changes? I also update that kind table, and it all works as expected on my end.

Example:

What AI source are you using? Maybe I added the wrong kind for that source.

You're probably using an old blink.cmp version, since in the latest version it should be Field instead of Unknown for an unknown symbol kind.

Great, just found that issue as well :)

Yes indeed. Good idea!

ty!


arxiv_MCS and pubmed_MCS missing

Trained models, arxiv_MCS and pubmed_MCS, are currently missing. Those download links are arxiv_ATTN and pubmed_ATTN are attention-only models (thus, only support attn mode in inference).

Download links:

arxiv_MCS https://drive.google.com/file/d/1IFdQ9nBueHi6AJqSMZxY8CYu8zm1GmTv/view?usp=sharing
pubmed_MCS https://drive.google.com/file/d/1h1snhuGgPuWmSGUxsFXREDLzBLX5XiJ-/view?usp=sharing


Add a profile endpoint

For the set behavior, I needed to manually check/create each node in the path with separate queries to ensure the whole path exists. I'm wondering if it's possible to do in a single query. I see that in Postgres 14 there is a jsonb subscript operator which will attempt to create the whole path, but even then I'm unsure how to do that in a prepared statement.