Introduce a strategy that improves pack(LHS) using transform dialect.

It starts with single-threaded approach on pack op w/o padding semantics. The flow of the strategy is

Lower the pack op into pad + reshape + transpose
Tile transpose op and fold unit dims to generate a tiled transpose op with tensor<8x8xf32> shape
Vectorize all the operations.
Bufferization
Kick in vector lowering and enable AVX2 specialized transpose lowering.

Transform dialect path is not default by IREE codegen. To enable it, we can add --iree-codegen-llvmcpu-enable-transform-dialect-jit to compilation flags.
Benchmark results:

src shape
before (us)
after (us)
before/after ratio

384x128
15.38
5.48
280.66%

384x512
77.23
64.6
119.55%

384x384
53.1
39.33
135.01%

384x32
3.82
1.47
259.86%

384x2
0.402
0.323
124.46%

The cherry-pick is for running tests e2e. We won't merge the PR with the cherry-pick commit.

cc @chelini who may be interested in it.

Nice and easy perf grains with the proper tools, it is great to see this!
General comment: please surface back comments on usability improvements to @ftynse @qcolombet @matthias-springer and @nicolasvasilache so we can help improve the user experience. There is still a long way to go to full automation but it does go through more eyes scrutinizing the abstractions and surfacing pain points.

Re:
Transform dialect path is not default by IREE codegen. To enable it, we can add --iree-codegen-llvmcpu-enable-transform-dialect-jit to compilation flags.

Once the refatoring is done, I'd suggest to always use TD and have it tell you whether or not the strategy exists / is good and then fallback to the default codegen otherwise.
We can then gradually bring cases up with dedicated flags e.g. --iree-codegen-llvmcpu-enable-transform-dialect-softmax that turn individual examples on/off on the TD side without an impact on the rest of the system. As strategies mature, the flags can go and our compiler is improved forever.

Re:
Transform dialect path is not default by IREE codegen. To enable it, we can add --iree-codegen-llvmcpu-enable-transform-dialect-jit to compilation flags.

Once the refatoring is done, I'd suggest to always use TD and have it tell you whether or not the strategy exists / is good and then fallback to the default codegen otherwise. We can then gradually bring cases up with dedicated flags e.g. --iree-codegen-llvmcpu-enable-transform-dialect-softmax that turn individual examples on/off on the TD side without an impact on the rest of the system. As strategies mature, the flags can go and our compiler is improved forever.

Enabling TD by default on CPU side would be a good idea. For things like GEMM that optionality might be useful. Here though, I think things like pack are table-stakes. The default should be able to handle this. @hanhanW can this be incorporated into the non-TD path easily?

Thanks Nicolas for reviewing it! I'll write down my learning experience about transform dialect and share with all you!

Enabling TD by default on CPU side would be a good idea. For things like GEMM that optionality might be useful. Here though, I think things like pack are table-stakes. The default should be able to handle this. @hanhanW can this be incorporated into the non-TD path easily?

Yes, the default should be able to handle this. I'll add the support to default as well. This is more like a learning of transform dialect to me, and I can use this as a reference to default pipeline.

what happened with this PR? Has it landed in a different form?

I need some IREE CPU logics and fusion support, so I land it to non-transform dialect path. The below pipeline has similar pipeline to transform dialect spec:
https://github.com/openxla/iree/blob/c63d261951ba5017e9c9564be41cc39e4d278450/compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp#L577-L602
I need it working on fusion cases for other pipelines together, so it's landed in a different form.


[FE + BE]: delete a gif collection from the UI

[ ] create new backend endpoint to delete a user's gif collection by the gif collection id
[ ] update front end UI to perform this delete function onto the database

https://stackoverflow.com/questions/8135718/how-to-use-gridfs-to-store-images-using-node-js-and-mongoose


Suggestion: Validate if existing subnets have appropriate tags added

As required by K8S, and emit validation errors accordingly so that users can notice what action(s) are required in order to deploy a kube-aws cluster into existing subnet(s).
Ref https://github.com/kubernetes-incubator/kube-aws/issues/52#issuecomment-316167577
cc @redbaron @c-knowles @danielfm @camilb

It can't be an error as tags are not mandatory for cluster to function. lets say if service type LoadBalancer is never used, then no tags is needed. It can be a warning at best.

@redbaron Good point 👍
I was under the impression that we'd want to enable type: LoadBalancer services even for a cluster deployed into existing subnet(s) but yes, the service type isn't addressed even in the K8S conformance test hence it can not be said as a "requirement" of a K8S cluster.
A warning would be nice.


Cargo can't find adler on crates.io

Current Behavior
When I try to include the adler crate, the Rust compiler complains it cannot find it:
error[E0433]: failed to resolve: use of undeclared crate or module `adler`
 --> src\lib.rs:2:20
  |
2 |     let mut hash = adler::Adler32::from_checksum(value);
  |                    ^^^^^ use of undeclared crate or module `adler`

Here is my include line in Cargo.toml:
[dependencies]
adler = "1.0.2"

If I replace the above line with a link to the Github repo, it works fine:
[dependencies]
adler = { git = "https://github.com/jonas-schievink/adler" }

Expected Behavior
I expect the program to compile properly when I use the crates.io include line.
Steps To Reproduce

Clone my bug-demonstration repository: https://github.com/gjf2a/adler_test
Run cargo build to try to compile it.
Observe the compile error message.
Edit Cargo.toml to get adler from Github instead.
Run cargo build to compile it.
Observe that it now compiles.

Environment
OS:
Edition	Windows 10 Education
Version	21H1
Installed on	10/18/2021
OS build	19043.1288
Serial number	PF1C5VWB
Experience	Windows Feature Experience Pack 120.2212.3920.0

Machine:
Device name	20003LPU
Full device name	20003LPU.hendrix.local
Processor	Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz   1.99 GHz
Installed RAM	12.0 GB (11.8 GB usable)
Device ID	29A20975-2723-4644-B9A6-A9500C206F8E
Product ID	00328-10000-00001-AA962
System type	64-bit operating system, x64-based processor
Pen and touch	Pen and touch support with 10 touch points

Rust/Cargo:
PS C:\Users\ferrer\IdeaProjects\adler_test> cargo --version
cargo 1.64.0 (387270bc7 2022-09-16)
PS C:\Users\ferrer\IdeaProjects\adler_test> rustc --version
rustc 1.64.0 (a55dd71d5 2022-09-19)

Anything else?
No response

Transferred.

Deleting .cargo/registry did the trick. It now works fine! Thank you for the suggestion!


[Feature Request] Slider : Assign numbers without a sequence

Existing Component
Yes
Component Name
Slider
Description
Is't possible to assign to the slider a list of numbers without a sequence?
For example : 1,3,7,12,15,21

Sorry, we have no plan to support this.


VS open but not work

VSCode Version: Code 1.4.0 (6276dcb0ae497766056b4c09ea75be1d76a8b679, 2016-08-04T16:45:31.680Z)
OS Version: Windows_NT ia32 10.0.10586

Steps to Reproduce:

I dont know, I think if you add a new command in keybinding.json like
{ key: "ctrl+k ctrl+f", command: ["firstcommand", "seccondcommand"] }

After save, vscode stop work, on start only blank screen

where is saved keybinding.json?

Command Line
PS D:\dev\chwapp> code --verbose
(9:05:40 PM) ### VSCode main.js ###
(9:05:40 PM) c:\Program Files (x86)\Microsoft VS Code\resources\app { pathArguments: [],
programStart: 0,
enablePerformance: false,
verboseLogging: true,
debugExtensionHostPort: undefined,
debugBrkExtensionHost: false,
logExtensionHostCommunication: false,
debugBrkFileWatcherPort: undefined,
openNewWindow: false,
openInSameWindow: false,
gotoLineMode: false,
diffMode: false,
extensionsHomePath: undefined,
extensionDevelopmentPath: undefined,
extensionTestsPath: undefined,
disableExtensions: false,
locale: undefined,
waitForWindowClose: false }
(9:05:42 PM) IPC#vscode:startCrashReporter
after close window
(9:08:51 PM) Lifecycle#window-before-close 1
(9:08:51 PM) Lifecycle#window-before-close 1
(9:08:51 PM) Lifecycle#window-close 1
(9:08:51 PM) Lifecycle#window-all-closed
(9:08:51 PM) Lifecycle#before-quit
(9:08:51 PM) App#will-quit: disposing resources

I cannot reproduce and we should not fail over an invalid keybindings file on startup.
@msmaldi is this output from when VS Code fails to start?

PS D:\dev\CSharpSpecs> code  --verbose
(8:54:09 AM) ### VSCode main.js ###
(8:54:09 AM) c:\Program Files (x86)\Microsoft VS Code\resources\app { pathArguments: [],
programStart: 0,
enablePerformance: false,
verboseLogging: true,
debugExtensionHostPort: undefined,
debugBrkExtensionHost: false,
logExtensionHostCommunication: false,
debugBrkFileWatcherPort: undefined,
openNewWindow: false,
openInSameWindow: false,
gotoLineMode: false,
diffMode: false,
extensionsHomePath: undefined,
extensionDevelopmentPath: undefined,
extensionTestsPath: undefined,
disableExtensions: false,
locale: undefined,
waitForWindowClose: false }
(8:54:11 AM) IPC#vscode:startCrashReporter

@msmaldi and doing so, what exactly happens?

Only open window, no work new file, open file..., open folder work, i can select folder but continue a blank screen

See my screen

@msmaldi in that state can you do Help > Developer Tools and see any output in the console?

workbench.main.js:116 this.command.replace is not a function: TypeError: this.command.replace is not a function
at new e (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:61:31227)
at Function.e.fromKeybindingItem (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:61:31378)
at Function.e.combine (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:62:605)
at new e (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:61:31858)
at t._getResolver (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:67:3575)
at t.lookupKeybindings (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:67:4485)
at l (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:96:15279)
at Array.map (native)
at t.createViewletSwitcher (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:96:15637)
at t.createContentArea (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:96:14696)e.startup @ workbench.main.js:116
index.html?config={"pathArguments"%3A[]%2C"programStart"%3A0%2C"enablePerformance"%3Afalse%2C"verbo…:28 [uncaught exception]: TypeError: this.command.replace is not a functiononError @ index.html?config={"pathArguments"%3A[]%2C"programStart"%3A0%2C"enablePerformance"%3Afalse%2C"verbo…:28
index.html?config={"pathArguments"%3A[]%2C"programStart"%3A0%2C"enablePerformance"%3Afalse%2C"verbo…:31 TypeError: this.command.replace is not a function
at new e (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:61:31227)
at Function.e.fromKeybindingItem (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:61:31378)
at Function.e.combine (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:62:605)
at new e (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:61:31858)
at t._getResolver (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:67:3575)
at t.lookupKeybindings (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:67:4485)
at l (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:96:15279)
at Array.map (native)
at t.createViewletSwitcher (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:96:15637)
at t.createContentArea (file:///C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:96:14696)

The error seems to point to this location but I have no clue how it could fail: https://github.com/Microsoft/vscode/blob/1.4.0/src/vs/platform/keybinding/common/keybindingResolver.ts#L52
@alexandrudima @jrieken any ideas?
@msmaldi can you try to reload the window (Ctrl+R) while you have break on error enabled under "Sources" to see if you can actually debug the issue?

Continue with same same error.

Solved, I edit file keybinding.json in C:\User\msmaldi\AppData\Roaming\Code\User to a blank file.

Pushed a3493c7 that checks that a rule's key, command and when fields are strings and fails gracefully if that is not the case.

To verify: create keybinding rules with key, command or when fields that are arrays or objects instead of strings. VS Code should start up normally.

@alexandrudima thanks Alex <3

osx also encountered this Bug. keybinding.json in osx path?


Re-read the components after DOM is updated

HI!
I just got into this library the other day and I have an issue with the React JS which updates the layout with a dynamic component that renders a card. After the card is rendered its layout is not refreshed with the material design skin.
In fact the page loads different ReactJS components async with RequireJS, so how can I tell the MDL library that the page has new elements? I have tried with the upgradeElements and upgradeAllRegistered but with no luck.
Thank you

Dynamic upgrading of content added after the initial load is not something this library supports out of the box. You'll have to manually upgrade the elements using the upgradeElement, upgradeElements or upgradeDom methods. See http://www.getmdl.io/started/index.html#dynamic.


.Net: Support records with no key, fix issue with Relevance

Motivation and Context
When using SemanticTextMemory.SaveReferenceAsync, no value is passed for the Key to use. In the Cosmos DB Memory Connector, we treat the "Key" as the Id and PartitionKey, and so it has to have a value. Address this by generating a GUID to use if none are provided.
Description

Assign a GUID key when the passed in MemoryRecord.Key is null or empty so that CosmosDB always has a valid PartitionKey.
While adding test coverage for this I noticed two things:

withEmbeddings is ignored in AzureCosmosDBNoSQLMemoryStore.GetAsync. It's not clear whether it's worth changing this, as point reads like the current one tend to be less expensive than queries in Cosmos DB.
The SimilarityScore returned from GetNearestAsync wasn't actually a similarity, it was a cosine distance.  Normalize that.

Fixes #6379.
Contribution Checklist

[x] The code builds clean without any errors or warnings
[x] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[x] All unit tests pass, and I have added new tests where possible
[x] I didn't break anyone :smile:

@dmytrostruk - can you take another look here?  I restricted the provider to only use Cosine distance in order to be able to calculate the 0..1 relevance score.


Refactor management of nullable values

Refactor management of nullable values
Summary
Replace "!!" accesses to nullable values with safer options.

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Broken Links in the docs

Hello. I hope I reach you all as a fellow in hopes of helping, not nit picking 😃 With my intentions set, I ran your docs through a random link-checker site I found and 😮

I wonder if we can automate the dead links checks as part of the CI process.
The problem is that at some points in the life-cycle links may be temporarily invalid.

e.g: until next version is actually deployed

Perhaps a script to check links would be useful, but only run it manually once in a while
or maybe an automated daily build...

I was thinking about this on my way to work this morning about some little
script that could ping the links once deployed for 404s and then maybe
collect them as a little report
On Wed, Jan 26, 2022, 3:56 PM Shahar Soel @.***> wrote:

I wonder if we can automate the dead links checks as part of the CI
process.
The problem is that at some points in the life-cycle links may be
temporarily invalid.

e.g: until next version is actually deployed

Perhaps a script to check links would be useful, but only run it manually
once in a while
or maybe an automated daily build...
—
Reply to this email directly, view it on GitHub
https://github.com/Chevrotain/chevrotain/issues/1751#issuecomment-1022711922,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACA6XCELC2MIZPE6ROCOJDUYCC37ANCNFSM5MYFUQQQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

There is a slight problem mapping the links back to the markdown
But it should not be too hard, particularly once the situation is resolved and there would only be a few dead links
once in a while...
I wonder if there is some npm package with a crawler that does it.
I should be able to figure out how to do a daily execution of the script on Github Actions.

https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule

This looks like a possible good option for the tool to be used

https://www.npmjs.com/package/linkinator

Skimming the README, it does sound very promising!

Unfortunately it seems linkinator does not work well with a Single Page Application such as the vuepress generated documentation.

This looks like a good website for checking dead links

https://www.deadlinkchecker.com/website-dead-link-checker.asp


Feature: Support TanStack Query v4 - @tanstack/react-query

Feature request: I would love to use orval together with the latest react-query.

Hello @torleifhalseth, it's already supported. You just need to have the new package installed in your package.json

@torleifhalseth I have been using Tanstack 4 in production with Orval for a month now!  Works great.

Awesome! Thanks for the quick response. I was trying to define the client in our Orval configuration and defining @tanstack/react-query as the client gives a not assignable error in Typescript. I guess I can just install the new version and keep the client as "react-query"?

Yep that is all I did was update my React Query dependencies in package.json and then regenerate and Orval sees you are using the new ones and generates for v4.


Additional Highlighting

Hi @greystate
Great extension thank you. Will you be able to add few highlights?

if you have a comment inside @{ ... } it remains white.
For example:
@{
var .....;
@* My comment here *@
....
}
When creating variables in some instances you need to declare the type of data
For example:
var ..... = ....;
bool .... = ....;
int ... = ....;
string .... = ....;
IPublishedContent ..... = .....;
etc.

in this instance, var is in green/blue-ish colour which is great, but will also be awesome to have the other declarations highlighted with the same colour as 'var' or even different colours?
This also goes for the foreach loop, for example:
@{
foreach(var item in group){
....
}
}
there are also other declarations like the switch and case as example.
One issue I noticed is when you declare your model values in a dark theme, they're dark and the highlight makes it look a little unreadable. See screenshot below

Thank you again and I hope this extension evolves more with time.

Hey @TRexStark
Thank you very much for raising these 👍 - I honestly never thought anyone else but myself would be using this 😆, so it's quite frankly missing a few (a lot, ed.) things here and there...
I hope to migrate this to use the new Tree Sitter parser, which (if I'm not mistaken) already has pretty robust Razor & C# support, which would significantly improve this.
Thanks again - and please don't hesitate to throw anything else you find this way 🙌

Thanks @greystate I was customising nova and I was sure that by now, there must be a Razor support, but your extension came in very handy.
I will definitely let you know if I find anything else.

@TRexStark I know it's been a ridiculous long time, but lo-and-behold, I just got to fix a couple of issues in the extension 😁
There's a v0.9 available in Nova now - just in case you're still using it :)
/Chriztian


Issues regard to "ground-truth-labeler"

There are three issues regard to "ground-truth-labeler"

Cannot load large file as ground truth file -> will raise an error "pandas.errors.ParserError: Error tokenizing data. C error: Buffer overflow caught - possible malformed input file."
There are some inconsistencies between doc and actual command -> the actual command won't take "-c" as an argument

The actual command requires the ground truth file to have a column named "kg_label", but in the doc, the sample file does not have this column

I found a solution for issue 1, just add lineterminator='\n' to correspondingpd.read_csv command

groud_truth_file -> t2dv2_gt_sample.csv
input_file -> output_sample.csv
files link:
https://drive.google.com/file/d/1FLbh7CCYqGak4pxjHpFcFueZSa_T6pqr/view?usp=sharing


Cmake speedups

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

If contributing rules or changes to rules, please make sure to also uncomment one of the following line:

/kind rule-update

/kind rule-create

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area engine

/area rules

/area tests

/area proposals

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Several cmake changes to speed up/simplify builds for external projects and copying files from source-to-build directories.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mstemm
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [mstemm]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.32.0
/cc @FedeDP
/cc @jasondellaluce

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce, leogr, mstemm
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce,leogr,mstemm]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.32.0


fix(Cloudant): Library not being loaded and pods failing in Kubernetes deployment

When nodejs app is deployed in Kubernetes and uses the Cloudant DB it fails when trying to use credential URL
because the client library is not loaded for that code path.
Error shown by pod is similar to the followings:
$ kubectl logs get-started-node-c689d597d-5btz9
><EMAIL_ADDRESS>start /app
> node server.js

/app/server.js:177
  cloudant = Cloudant(process.env.CLOUDANT_URL);
             ^

TypeError: Cloudant is not a function

Fixes #23 which was closed by the OP.

/assign bug

Thanks for the review and merge @kevin-ortega


[terraform-ibm-rag-sample-da] Add upgrade test

Looks like pr_test.go is missing an upgrade test

Upgrade test was added in https://github.com/terraform-ibm-modules/terraform-ibm-rag-sample-da/pull/85
Closing


Clearing destination bits automatically during DMA transfer

It seems that with transfer size DMA_SIZE_8 the source address advances by one byte, but the value written to destination (PIO SM FIFO in my case) is the whole word (4-bytes). Is there a way to clear the three MSB automatically during DMA transfer? In some places on the internet I found info that this might be possible with some 'special function registers' that don't seem to be documented yet.

All the registers are documented. Generally the byte lane replication when using DMA_SIZE_8 to a PIO is not a problem (though using DMA_SIZE_8 is potentially less efficient)...
that said, this is a better question for the forums: https://forums.raspberrypi.com/viewforum.php?f=143


Sync subscription status

Allow to sync subscription status (#14) and fix a few small things:

Suppress warnings about missing subscriberEmail key in empty configurations
Compute subscriber hash from lowercase email
Remove context parameter not available in handler namespace
Allow using higher versions of lodash

Hi @rcknr ,
Thanks for your work on this one, it has a lot of good little improvements.
However, if I'm reading this correctly, it looks like the new "statusField" item does not actually point to a field that has a mailchimp status ([outlined here](https://mailchimp.com/developer/marketing/api/list-members/add-or-update-list-member/ one of "subscribed", "unsubscribed", "cleaned", "pending", or "transactional"), but is changing the status to "subscribed"/"unsubscribed" based on whether the field is truthy or falsey.
As there are a variety of statuses, I'm not sure this would be the ideal default behaviour. But I'd also guess that others have the same use case as you, where the field will just be a boolean of whether they are subscribed or not.
What I'd propose is this:

We create a new function statusSyncHandler to handle just the status synchronisation process. New parameters both for MAILCHIMP_SUBSCRIPTION_SYNC_WATCH_PATH and MAILCHIMP_SUBSCRIPTION_SYNC_CONFIG
The subscription sync config will look like this:{
    "statusField": "subscribed", <- Field that will indicate the users Status
    "statusFormat": "boolean|string", <- Determines whether the Status field will be interpreted as a simple "subscribed/unsubscribed" or whether they want to provide the full status
   "subscriberEmail": "path" <- as per other configs, needed to sync to the user
}

This should cater for the majority of use cases, and allow people to disable the status synchronisation if desired. Also will reduce the risk of changing the behaviour of the other functions.
What are your thoughts on this approach?

Hi @rcknr ,
I've rolled most of your requested changes into this PR: https://github.com/mailchimp/Firebase/pull/57
It sticks with your original plan to do it as part of the merge fields trigger.
Hope this helps!


Client side ads not playing in iOS fullscreen

Have you read the FAQ and checked for duplicate open issues?
Yes
If the problem is related to FairPlay, have you read the tutorial?

Not related
What version of Shaka Player are you using?

Latest, 4.7.6
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from main?
Yes
Are you using the demo app or your own custom app?
Demo app
If custom app, can you reproduce the issue using our demo app?
Yes
What browser and OS are you using?
iOS - Chrome, Safari, Firefox
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
What are the manifest and license server URIs?

For content, any (demo) URL is good.
For ads I used Google IMA VMAP sample tags ( https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/tags )
What configuration are you using?  What is the output of player.getConfiguration()?

Default
What did you do?

Try to play video with ads
What did you expect to happen?
Ads and video to play
What actually happened?

Ads work great when player is not in fullscreen.
On fullscreen, no ads are displayed. When going to fullscreen during an ad (rotating the device to landscape), the ad sound keeps playing but main video is visible (paused). If ad(s) end, video starts playing.

Are you interested in finding and create a PR to fix the error? Thanks!

@avelad I'm afraid that I'm not that familiar with Apple devices. As I use Win/Android, it would be really difficult to debug also...

The fullscreen API is not available on iOS (https://caniuse.com/fullscreen) so we use the fullscreen API of the video element itself and it produces this behavior.
I see two solutions:

Disable the full screen button in browsers that do not support the fullscreen API and are using IMA CS.
When an ad is going to be played, exit fullscreen, and disable the fullscreen button during the ad, the problem is that we cannot return to fullscreen afterwards because a user action is necessary.

Which solution do you like best? (You probably won't like any...)

@avelad Thanks for looking it up!
I guess that the best solution would be to disable the fullscreen button / rotation during the ads, if fullscreen API is not supported.
In this case user is forces to see at least preroll. And if he goes to fullscreen after preroll and doesn't get any midrolls, it's acceptable. Exiting fullscreen to display ads is a really bad user experience, I would say.

@theodab What do you think?

@Andekas @avelad Please look this blog - IMA iOS10+ customPlayback. It may provide insights on how to address the problem.


chore(animate): remove dead code

Remove unused $$asyncCallback

Addresses #12251.

LGTM, $$asyncCallback is private so even a patch release may remove it.

LGTM - please merge

Landed, thanks!


Storage adapters (+S3 support)

The intention right now is to add the possibility of using different kinds of backing storage than the current filesystem only approach. RepoService gets extracted to an interface which is bound to the correct implementation based on what the configuration says. The PR will also introduce an S3-backed implementation.

Awesome. Sorry it's taking a while to review. I'm on holidays and busy with CycloneDX v1.4 stuff. But this contribution is very much appreciated.

Currently I'm using the Amazon provided S3 client which is, as far as I can see, fully async. While the controller(s) are async, RepoService is only partially async. This makes it somewhat troublesome to just extract an interface and use that for storage implementations. I think it would be beneficial to go full async but I believe that is work that could be done in another PR.

A full async interface makes sense to me if you do want to include it in this PR.

I've now taken the tests from the filesystem based storage and run them against the new S3RepoService. Also I took the liberty to introduce testcontainers running minio in order to avoid mocks. Also I pulled in Reactive Extensions to more easily orchestrate asynchronous execution.
Running in a testcontainer is a great convenience but has an impact on how long tests take to run (an extra second or two right now). I'm unsure if Reactive Extensions should stay as it for the most part only serves as a way to allow the use of await in anonymous functions. It does help out a bit when paginated results need to be chunked - see S3RepoService#DeleteAll where the Buffer operator is used. I'm leaning towards letting Reactive Extensions go and instead having async marked methods on the interface instead.
I'll wait for feedback on the work so far before progressing.
docker-compose.yml for setting up a minio instance to test against
version: "3.8"

services:
  minio:
    image: "minio/minio"
    ports:
      - '9000:9000'
      - '9001:9001'
    command: server --console-address :9001 /data

Minios administrative UI will be hosted on localhost:9001 with the default credentials of minioadmin:minioadmin. Create a bucket called "bomserver" and run the server with the following configuration:
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedMethods": {
    "Get": true,
    "Post": true,
    "Delete": true
  },
  "Repo": {
    "StorageType": "S3",
    "Options": {
      "Endpoint": "localhost:9000",
      "AccessKey": "minioadmin",
      "SecretKey": "minioadmin",
      "ForcePathStyle": true,
      "UseHttp": true,
      "BucketName": "bomserver"
    }
  }
}

It looks pretty good to me. I'd be happy to go full async on the interface. I always planned to and probably should have from the start.


Switch To New Tab Feature

Is your feature request related to a problem? Please describe.
New Feature at selenium 4 to be written with Shaft Syntax
Describe the solution you'd like
implement the syntax to be more user friendly
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

closed by #586

I need new  Validation for equalFileIgnoringOrder  , As I can't validate response with Json file when Order of returned values change in each request
Thanks


Upgrade emblem dependency for security vulnerability

This should fix https://github.com/Vestorly/ember-cli-emblem/issues/63


Numpy error when install ADAM via pip on 20.04 with python3-numpy apt package installed

I am installing ADAM via the installation process, and the following error is printed:
ERROR: jaxlib 0.1.73 has requirement numpy>=1.18, but you'll have numpy 1.17.4 which is incompatible.
ERROR: jax 0.2.25 has requirement numpy>=1.18, but you'll have numpy 1.17.4 which is incompatible.

It seems that pip finds the numpy installed via apt and so does not installs it in the virtualenv, but then it complains that the version is not correct.

While testing the examples, all of them fail with:
ModuleNotFoundError: No module named 'numpy.typing'

So I guess that indeed there is a dependency on a specific numpy version?

Hi @traversaro!

So I guess that indeed there is a dependency on a specific numpy version?

Indeed, it seems!
Also, which version of python are you using?

Also, which version of python are you using?

traversaro@IITICUBLAP257:~$ python3
Python 3.8.10 (default, Sep 28 2021, 16:10:42)
[GCC 9.3.0] on linux

@traversaro sorry for the late response! Do you think that bumping the NumPy version to > 1.18 in the setup.cfg would solve the problem?

Do you think that bumping the NumPy version to > 1.18 in the setup.cfg would solve the problem?

I do not know. I tried to apply:
(adamenv) traversaro@IITICUBLAP257:~/ADAM$ git diff
diff --git a/setup.cfg b/setup.cfg
index cc135cd..cedd2c6 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -9,7 +9,7 @@ license_file = LICENSE
 packages = find:
 python_requires = >=3.7
 install_requires =
-        numpy
+        numpy >= 1.18
         scipy
         casadi
         matplotlib

and installing with pip install . in a clean environment indeed installs numpy 1.21, but if I then stash the modifications and install again, numpy 1.21 is again installed, so I am not sure what is happening here (I am not a big pip expert to be honest).


Added solution for stock-max problem

Hey there!, Thanks for submitting a PR to this repo :smiley:
Please complete the following checklist for your PR to be approved. Mark the items by adding an x.
Example:  - [ ] Mark me as completed
To mark: - [x] Mark me as completed

[x ] My Pull Request adheres to the Contribution guidelines.
[ x] I have added problem.md and solution files in the appropriate folder.
[x ] In problem.md I have provided a correct link to the problem.
(In case you are not adding a problem, you can freely mark this as complete)
[ x] The solution I have given is my own and not plagiarized in any form.
[ x] My solution passes all the testcases within the given constraints.
[ x] I have properly indented and documented my solution using comments.
[ x] I agree that all the above marked are true to the best of my knowledge and my PR can be closed if found otherwise.

If any of the above is unmarked, please make the necessary changes and then mark them so that you're PR can be approved and merged.
(Only completed checklist PRs will be reviewed)

Please add comments to your solution explaining the logic used. This is clearly mentioned in the contributing guidelines. You may submit another PR with the necessary changes. thanks.


feat: add ignore http method support

Close #673
This PR is not ready. I want to discuss the params format. Ignoring the HTTP method is too powerful because we have more than one route for each HTTP method. We should be able to ignore routes.
Example:
app.register(require('@platformatic/sql-openapi'), {
  ignore: {
    categories: {
       fields: ['name'],
       routes: {
         'GET': ['/categories', '/categories/:id', '/categories/:id/relation'],
         'POST': ['/categories/:id']
       }
     }
  }
})

cc @mcollina @marcopiraccini @simonplend

This seems ok to me. What's missing?

I want to ask you @mcollina  what format if more preferable:

app.register(require('@platformatic/sql-openapi'), {
  ignore: {
    categories: {
       fields: ['name'],
       routes: {
         'GET': ['/categories', '/categories/:id', '/categories/:id/relation'],
         'POST': ['/categories/:id']
       }
     }
  }
})

or without entity prefix
app.register(require('@platformatic/sql-openapi'), {
  ignore: {
    categories: {
       fields: ['name'],
       routes: {
         'GET': ['/', '/:id', '/:id/relation'],
         'POST': ['/:id']
       }
     }
  }
})

We have a graphql ignore param. We should update it too IMHO.

How about this:
app.register(require('@platformatic/sql-openapi'), {
  ignoreRoutes: [{
     method: 'GET',
     path: '/categories'
  }]
})

I think it would be the easiest to understand way.
Note that the module should error if a path that does not exists is ignored.

We have a graphql ignore param. We should update it too IMHO.

Is there an issue of this?

👍👍


Unable to build marlin

Thanks for the awesome work.
I think poly-commit does have these features.
the package `marlin` depends on `poly-commit`, with features: `parallel, std` but `poly-commit` does not have these features.

failed to select a version for `poly-commit` which could resolve this conflict

If I remove these features, I am still facing other issues probably because of the latest update to zexe library.
I think everything works for commit #4ae139c commit in the zexe library if that helps in any debugging.

Thanks for the heads-up! There is an issue with the updates to zexe that I have a PR for https://github.com/scipr-lab/poly-commit/pull/12, but once that is merged, to fix your first problem with the features, you have to run cargo update to update the version of poly-commit that you're using.

Thanks for the prompt resolution


dynamic_inventory.py creates containers with duplicate IPs.

Created upstream bug. Will leave this open to track progress.
In two separate labs, we've had dynamic_inventory.py create new containers (specifically, repo containers) with duplicate IPs.
From @mancdaz:
# scripts/inventory-manage.py -l --sort ansible_ssh_host |egrep '9bc3eb67|4b049b34'
| heat-node1_cinder_api_container-9bc3eb67          | False    | cinder_api          | heat-node1    | None           | <IP_ADDRESS>   | None                  |
| heat-node2_repo_container-4b049b34                | None     | pkg_repo            | heat-node2    | None           | <IP_ADDRESS>   | None                  |

# cat /etc/hosts|egrep '9bc3eb67|4b049b34'
<IP_ADDRESS> heat-node2_repo_container-4b049b34
<IP_ADDRESS> heat-node1_cinder_api_container-9bc3eb67

From another lab:
root@578126-infra01:/opt/rpc-openstack/os-ansible-deployment# scripts/inventory-manage.py --list | awk '/172\./ { print $12 }' | sort | uniq -c | sort -n | tail
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      1 <IP_ADDRESS>
      2 <IP_ADDRESS>

root@578126-infra01:/opt/rpc-openstack/os-ansible-deployment# scripts/inventory-manage.py --list | grep <IP_ADDRESS>
| 578126-infra01_repo_container-56ab6b39                | None     | pkg_repo            | 578126-infra01   | None           | <IP_ADDRESS>   | None                        |
| 578128-infra03_rabbit_mq_container-4c96d7b0           | False    | rabbit              | 578128-infra03   | None           | <IP_ADDRESS>   | None                        |

The relevant loop that reads in the config appears to be here

So, this happens because the inventory data structures differ between Kilo and Juno.
Here's a fresh greenfield container:
578126-infra01# ./dynamic_inventory.py --list --file ./etc/openstack_deploy/
> /opt/rpc-openstack/os-ansible-deployment/playbooks/inventory/dynamic_inventory.py(769)_set_used_ips()
-> for host_entry in inventory['_meta']['hostvars'].values():
(Pdb) pprint(host_entry)
{u'ansible_ssh_host': u'<IP_ADDRESS>',
 u'component': u'cinder_scheduler',
 u'container_address': u'<IP_ADDRESS>',
 u'container_name': u'578128-infra03_cinder_scheduler_container-8efb1da3',
 u'container_networks': {u'container_address': {u'address': u'<IP_ADDRESS>',
                                                u'bridge': u'br-mgmt',
                                                u'interface': u'eth1',
                                                u'netmask': u'<IP_ADDRESS>'}},
 u'physical_host': u'578128-infra03',
 u'physical_host_group': u'infra_hosts',
 u'properties': {u'container_release': u'trusty', u'service_name': u'cinder'}}

Here is a Juno neutron container in that same loop, using the Kilo dynamic_inventory.py script:
578126-infra01# ./dynamic_inventory.py --list --file ./etc/openstack_deploy/
> /opt/rpc-openstack/os-ansible-deployment/playbooks/inventory/dynamic_inventory.py(769)_set_used_ips()
-> for host_entry in inventory['_meta']['hostvars'].values():
(Pdb) pprint(host_entry)
{u'ansible_ssh_host': u'<IP_ADDRESS>',
 u'component': u'neutron_agent',
 u'container_address': u'<IP_ADDRESS>',
 u'container_name': u'578126-infra01_neutron_agents_container-a798edd6',
 u'container_netmask': u'<IP_ADDRESS>',
 u'container_network': {u'container_bridge': u'br-mgmt',
                        u'container_interface': u'eth1',
                        u'container_netmask': u'<IP_ADDRESS>'},
 u'is_metal': False,
 u'physical_host': u'578126-infra01',
 u'tunnel_address': u'<IP_ADDRESS>',
 u'tunnel_netmask': u'<IP_ADDRESS>'}

Here's what the code uses to determine if an address is in use:
    # Find all used IP addresses and ensure that they are not used again
    for host_entry in inventory['_meta']['hostvars'].values():
        networks = host_entry.get('container_networks', dict())
        #networks.update('container_address', host_entry['container_address']
        for network_entry in networks.values():
            address = network_entry.get('address')
            if address:
                append_if(array=USED_IPS, item=address)

You should be able to debug this locally with the following files placed in an etc/openstack_deploy/ directory outside of /etc/:
From Kilo:

/etc/openstack_deploy/env.d/*
/etc/openstack_deploy/openstack_environment.yml
/etc/openstack_deploy/openstack_user_config.yml
/etc/openstack_deploy/conf.d/

From Juno:

/etc/rpc_deploy/rpc_inventory.json copied to /etc/openstack_deploy/openstack_inventory.json.
** This can be found in the /etc/rpc_deploy.OLD directory

You can then apply the following patch, which should exit on the first container where an IP that's in use isn't in the USED_IPS list:
diff --git a/playbooks/inventory/dynamic_inventory.py b/playbooks/inventory/dynamic_inventory.py
index b52932a..5ffe2b8 100755
--- a/playbooks/inventory/dynamic_inventory.py
+++ b/playbooks/inventory/dynamic_inventory.py
@@ -22,6 +22,7 @@ import netaddr
 import os
 import Queue
 import random
+import sys
 import tarfile
 import uuid
 import yaml
@@ -755,7 +756,6 @@ def _set_used_ips(user_defined_config, inventory):
                 USED_IPS.extend([str(i) for i in ip_range])
             else:
                 append_if(array=USED_IPS, item=split_ip[0])
-
     # Find all used IP addresses and ensure that they are not used again
     for host_entry in inventory['_meta']['hostvars'].values():
         networks = host_entry.get('container_networks', dict())
@@ -763,6 +763,16 @@ def _set_used_ips(user_defined_config, inventory):
             address = network_entry.get('address')
             if address:
                 append_if(array=USED_IPS, item=address)
+    # Check if container addresses are missing from used list
+    for host_entry in inventory['_meta']['hostvars'].values():
+        #if host_entry['container_address'] not in USED_IPS:
+        #    import pdb; pdb.set_trace()
+        #    print("%s's container address was not in USED_IPS" % (host_entry['container_name'],))
+        for net_type in ('container', 'tunnel', 'storage'):
+            if host_entry.get('%s_address' % net_type) not in USED_IPS:
+                print("%s_address for %s was not found in USED_IPS"
+                      % (net_type, host_entry['container_name'])
+                sys.exit(255)

You can then run playbooks/inventory/dynamic_inventory.py --list --file etc/openstack_deploy.

I am trying out this gist to see if it gets us more useful information.

Code review up at https://review.openstack.org/#/c/210152/, but it is currently a WIP.

Current status: https://review.openstack.org/#/c/210152/ has yet to pass the successfully twice, but is in progress.

Merged upstream. OSAD sha bumped and rc13 has been release. Closing.


Full example of Discriminator

https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/
Where can I find a full example of swagger.json about discriminator?

The canonical example is the Cat/Dog/Lizard one under this section of the OAS. As discriminator only has effect within schema objects, the rest of the OAS document boilerplate is not included.

I find the Cat/Dog/Lizard example to be weak and difficult to follow and would be interested in finding other examples. As of today, a Google search of "openapi discriminator example" yields a smattering of partial examples, plus one attempt at an example, last commented on 10 weeks ago which, alas, ends up just showing a frustrated user "struggling" (unsuccessfully) to get that example to work.

An example in Java would be very useful.
It would also be very nice if the discriminator.propertyName could resolve to a property that's at the same level as the polymorphic object rather than forcing it to be a property inside the polymorphic object.

@nkavian, would this make it difficult to reuse the polymorphic instances independently of a referring object?  If an object needed two polymorphic references that included the same concrete types, would you need a discriminator discriminator ?

In my case, the parent knows what type of child it's holding. I could have easily gotten the class name of the concrete child and put it into a property of the parent when serializing.
In comparison, the child is required to define a property with a fixed value that assigns a static name. It shouldn't be the child's job to create that property.
class ChildA {

   public String discriminatorprop = "ChildA";

   ... other fields

}

@liquidaty Did you ever find a good example, because I feel the same. The way I understand the Lizard, Cat, Dot example is that these object only inherit one property which is 'petType' , but what in the case that I want to inherit multiple properties?
I am trying to have a working example of
    class Animal{
        DateTime birthDate;
        Function doSomething;
        String name;
    }
    class Person extends Animal{
        String uid;
    }
    class Cat extends Animal{
        int lives;
    }

In my example, I want Person and Cat to get all of Animal, which includes two fields not just one like in alot of these examples. In fact, if Parent could just be an abstract class that would be great, but discriminator can only map to one field?

I found this to be informative: https://redoc.ly/docs/resources/discriminator/
Full example and good explanation

@AFlowOfCode, do you happen to know how I can use the approach presented in the link's content to adjust the example below where I can define one of the schemas highlighted in oneOf in the schema CategoryDtoPagination?
CategoryDtoPagination:
  description: Uses the PaginationData base object.
  allOf:
    - $ref: "#/components/schemas/PaginationData"
PaginationData:
  type: object
  properties:
    pageNumber:
      type: integer
      format: int32
      description: Current page number.
    pageSize:
      type: integer
      format: int32
      description: Represents the maximum size of the page being returned.
    totalPages:
      type: integer
      format: int32
      description: Total pages
    totalElements:
      type: integer
      format: int64
      description: Total elements
    elements:
      type: array
      items:
        oneOf:
          - $ref: "#/components/schemas/CategoryDto"
          - $ref: "#/components/schemas/TransactionDto"

This issue is mostly about the code side of things, and belongs in the tooling vendor's repo.  Its also quite old.
If there is still a need for more documentation of discriminator, please file an issue for our Learn OpenAPI site based on the current spec versions.


Auto define enum variants as functions

Implements https://github.com/gjaldon/ecto_enum/issues/87
This patch allows using enum variants as you would use a constant in some languages or a full featured Enum in others.
When variants are defined on an enum, a matching function will be defined for reducing code re-definitions.
It allows for usage as:
defenum StatusEnum, ["registered", "active", "inactive", "archived"]

> StatusEnum.registered()
=> "registered"

Complex atom types are also coerced into idiomatic names:
defenum StatusEnum, [:"on-hold"]

> StatusEnum.on_hold()
=> :"on-hold"

This PR works for both arity 2 and 3 versions of defenum. I had tested it for different cases in PG but have not deeply assessed any changes needed for MySQL.
You're welcome to tweak the PR for small changes and I'm happy to adjust it myself if something more thorough is needed.
:D

Note: this works for some cases but not inside matches and in function heads. To make these work cleanly it needs to be a defmacro and be inlined during compilation.
We can hold off on merging this until I can implement that component.

This would be really helpful to ensure that we're using the right values as constants in the rest of the code-base (i.e. when creating records). Can this be merged? Although it could use some docs.

Are there any plans to merge this PR?


Cadence Helm Charts for K8s Depoyment Not working

I am trying to deploy cadence on production server in my k8s cluster using helm., but it is failing to start the pods , only pod running is cassandra

Hi! we are pleased to announce that we recently released official Cadence Helm charts.
Here's the announcement and repo:


Caching broken again

The same problem as described here https://github.com/rachartier/tiny-devicons-auto-colors.nvim/issues/5 started appearing after latest package update.
It disappears when caching is disabled

I've added another check. With it, I can't reproduce the issue.
Can you tell me if it's good now?
    {
        "rachartier/tiny-devicons-auto-colors.nvim",
	branch = "8-caching-broken-again",
        dependencies = { "nvim-tree/nvim-web-devicons" },
        config = function()
            require('tiny-devicons-auto-colors').setup()
        end
    }

Looks fixed, thanks!


Change image artifact to OCI format

What type of PR is this?
/kind enhancement

What this PR does / why we need it:
Use OCI format for image artifact.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

/lgtm

/lgtm


fix: Google search unrecognized sitemap

Bug
Google search console  Cannot recognize sitemap.
Fix
Sitemap cannot work because it's version is too low.
When I try to update this package, it works normally.

open


HTML syntax highlighting broken by inline script tag

The HTML syntax highlighting can be broken by inserting an inline script tag with if condition.

VSCode Version: 1.42.1
OS Version: macOS 10.14.6

Steps to Reproduce:

Insert <script>if (1) {}</script> or <script>if (1) func()</script> into an HTML file.
Syntax highlighting is broken.

This can generally be worked around by adding a closing semi-colon.
The first example can also be worked around by removing a space: <script>if (1){}</script>.

Does this issue occur when all extensions are disabled?: Yes/No
Yes

Related to #20488

dup of https://github.com/microsoft/vscode/issues/70614


wasm error: unaligned atomic

Hi, im using the regexp with 20 goroutines and getting this panic, with v1.5.2
panic: wasm error: unaligned atomic
        wasm stack trace:
        	.$189(i32)
        	.$403(i32)
        	.$534(i32,i32)
        	.$795(i32,i32,i32,i32,i32,i32,i32) i32
        	.$813(i32,i32,i32,i32,i32,i32,i32,i32) i32 [runtime.gopanic() panic.go:770]

Hi @goingaround - thanks for the report. Would you be able to provide a repro, even a flaky one? We currently have this test that uses 20 goroutines and haven't seen it fail so there might be something we are missing
https://github.com/wasilibs/go-re2/blob/main/concurrency_test.go

@anuraaga
i got ~150 patterns, and the functionality is that every value needs to go through all scanners
instead of canning sequentially im having some kind of concurrency setup
i got x workers and have request/response structs. every request names the pattern type and every worker returns his result to a response channel.
with sequential scan i got scanning 200mb file on 110s
with 10 workers i got it down to 15s
when i checked 20, i got the crash
i cant share the code itself, and the patterns especially but i can try to write something similar if needed

actually noticed now that with smaller file (5mb) it seems to work ok, so i guess its related also to how many regexps are running in the same moment

Thanks for all the info! I will also see if I can reproduce the pattern, many regexes, large file, concurrency.
Also can you confirm the latest unreleased commit has the problem? And are you running on x86 or arm64? If you're able to verify your code still fails on the other architecture, that would also be helpful, if on an arm64 Mac, then using GOARCH=amd64 to trigger Rosetta would check it. If this is too difficult, no worries.

still the same, but if it helps, theres the full stack
2024/04/19 20:14:38 ERROR+1 task panicked panic="wasm error: unaligned atomic\nwasm stack trace:\n\t.$189(i32)\n\t.$403(i32)\n\t.$534(i32,i32)\n\t.$795(i32,i32,i32,i32,i32,i32,i32) i32\n\t.$813(i32,i32,i32,i32,i32,i32,i32,i32) i32" stack="goroutine 53 [running]:\nruntime/debug.Stack()\n\t/opt/homebrew/opt/go/libexec/src/runtime/debug/stack.go:24 +0x64\nentro.security/detector.(*app).taskFn.func1()\n\t/Users/nitzan/go/src/entro-app/detector/app.go:196 +0x6c\npanic({0x10490de80?, 0x1401a19ae20?})\n\t/opt/homebrew/opt/go/libexec/src/runtime/panic.go:770 +0x124\ngithub.com/wasilibs/go-re2/internal.matchFrom(0x110a85060?, {0x88908?, 0x25?}, 0x696c61a1?, 0x0?, 0x0?)\n\t/Users/nitzan/go/src/entro-app/vendor/github.com/wasilibs/go-re2/internal/re2_wazero.go:328 +0x90\ngithub.com/wasilibs/go-re2/internal.(*Regexp).findAllSubmatch(0x14001a7c9c0, 0x140004f9a70, {0x696c61a1?, 0xbe938e3?}, 0xffffffffffffffff?, 0x140004f9ab0)\n\t/Users/nitzan/go/src/entro-app/vendor/github.com/wasilibs/go-re2/internal/re2.go:490 +0x100\ngithub.com/wasilibs/go-re2/internal.(*Regexp).FindAllStringSubmatch(0x14001a7c9c0, {0x14001b00000, 0xbe938e3}, 0xffffffffffffffff)\n\t/Users/nitzan/go/src/entro-app/vendor/github.com/wasilibs/go-re2/internal/re2.go:442 +0x124\nentro.security/detector/service/exposure.(*scanner).Scan(0x14001a57c08, {0x1049697c8, 0x140000120a0}, {0x14001b00000?, 0x186fa4f93be01?})\n\t/Users/nitzan/go/src/entro-app/detector/service/exposure/scanner.go:40 +0x68\nentro.security/detector.(*app).taskFn(0x14001a9e300, {0x104969838, 0x140000b04d0}, 0x14000325300)\n\t/Users/nitzan/go/src/entro-app/detector/app.go:230 +0x220\nentro.security/common/utils/task.(*taskBuilder[...]).Build.func1(0x14000325300?)\n\t/Users/nitzan/go/src/entro-app/common/utils/task/builder.go:68 +0x64\nentro.security/common/utils/task.newTask[...].func2(0x14001a9ec60?)\n\t/Users/nitzan/go/src/entro-app/common/utils/task/task.go:78 +0x9c\nentro.security/common/utils/task.(*routine[...]).run(0x104968aa0, {0x104969790, 0x14001a9ec60}, 0x14000325300)\n\t/Users/nitzan/go/src/entro-app/common/utils/task/routine.go:76 +0x100\nentro.security/common/utils/task.(*routine[...]).StartWithContext.func1()\n\t/Users/nitzan/go/src/entro-app/common/utils/task/routine.go:60 +0xf8\ncreated by entro.security/common/utils/task.(*routine[...]).StartWithContext in goroutine 5\n\t/Users/nitzan/go/src/entro-app/common/utils/task/routine.go:41 +0x190\n"
2024/04/19 20:14:38 ERROR routine has failed on execution duration=18.648667ms error="panic: wasm error: unaligned atomic\nwasm stack trace:\n\t.$189(i32)\n\t.$403(i32)\n\t.$534(i32,i32)\n\t.$795(i32,i32,i32,i32,i32,i32,i32) i32\n\t.$813(i32,i32,i32,i32,i32,i32,i32,i32) i32 [runtime.gopanic() panic.go:770]"

Hi @goingaround - thanks for the stack. Unfortunately still having issues reproducing but will continue to try. In the meantime, can you share what type of machine you are running on? amd64 vs arm64, # of cores, and OS? Thanks.


Stream sentry-cli output

It would provide better UX if the CLI output got streamed instead of captured and printed in the end. As is, you may need to wait a long time without any feedback (not knowing if something got stuck). This is especially true if wait_for_processing: true.

Would need an update on the sentry-cli to report an update on the process. Effort counts the changes in CLI.

Good point, that should be easy, thanks @vaind


wp.tv

Match found in list.34.hosts.ubuntu101.co.za.domains:
pixel.wp.tv
wp.tv

Hello and thanks for this submission @xxcriticxx,
However I decided not to whitelist those because they both redirect to video.wp.pl
Thanks for your comprehension.


refactoring: give(value, suffix=None), give_template(value, suffix=None), give_json(value, suffix=None)

in the give_template - we can mark_safe

That ticket may also include https://github.com/occipital/django-content-settings/issues/23


Adds referrer feature.

OTPL-1961

Travis checks failing because we depend on otj-core now (which is private).

Thanks guys!


how to construct the constraints for screensharing

Hi,
i want to send my screen through sip.js rather with direct webrtc between the clients.
Until now i use this to setup the stream:
        var constraints = {
            media: {
                constraints: {
                    audio: true,
                    video: {
                        mandatory: {
                            chromeMediaSource: 'desktop',
                            chromeMediaSourceId: event.data.sourceId,
                            maxWidth: window.screen.width > 1920 ? window.screen.width : 1920,
                            maxHeight: window.screen.height > 1080 ? window.screen.height : 1080
                        },
                        optional: []
                    },
                    render: {
                        remote: document.getElementById('video-remote'),
                        local: document.getElementById('video-local')
                    }
                }
            }
        }

but sip.js only supports true and false for video, how can i tell sip.js to use the chromemediasource?
regards

Hi.  What version of SIP.js are you using?  We should be passing the constraints through directly to the RTCPeerConnection.  If they are being coerced to true/false, that's a bug.

you are right, it was my fault. thank you for your time


Support for Postgres enums

This PR provides the infer_enums! macro, which creates Rust enums for each enum discovered in a database, and extends infer_schema! so that you can name columns .
See #343 for discussion about how this has been developed up until now.
Items to be addressed before this is ready for merge:

[ ] Correctly implement all necessary traits for newly declared types.
[ ] Clean up changes to infer_schema! and related macros. (Argument-passing to indicate where to look up non-builtin types is rather unslightly.)
[ ] Add more Rust documentation describing how the new features work.
[ ] Fix migrations and tests so that tests pass on SQLite again. (SQLite does not support custom enum types the way Postgres does.)
[ ] Get things working within custom schemas.
[ ] Implement and test arrays of custom types.

Nice! I saw your branch a while ago, and am glad to see this PR. This is quite a lot of code! I'll try to read through it this evening, or tomorrow afternoon. Feel free to bug me if I forget about it though :)

This can be broken up fairly easily; it is quite feasible to implement support simply for generating enum types to match what's in a database.
I'll make changes to the PR that address the comments so far when I have more time this week.

Hi!
When can we expect to see this PR merged in master?
Thanks

I apologize for not having been on top of this. I may be able to put some more time into it this weekend. I still need to rebase on top of the latest Diesel release and restrict this PR's scope to consist only of generating types for Postgres enums.

After looking at how far diesel has progressed since I wrote this PR, I have concluded that it must be rewritten. The basic approach (query Postgres catalog tables to get enum definitions) is still perfectly valid, but diesel's switch to using SQL schema standard means that the way this is done has to change. I am closing this PR and will move discussion back to #343.


fix: fix empty vendor inventory

What
fix: fix empty vendor inventory to match norm

:tada: This PR is included in version 1.39.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add aarch64 Windows build

This PR adds aarch64 Windows build.
The current state of the build is not ideal, but far better than nothing.
The native arm64 Window build toolchain is still a big mess today. There is no cross-compile tool chain available. MSVC has native arm64 support but jffi won't build on it. The only thing available today that can build jffi is msys2 arm64 clang.
The platform detection in the Makefile is broken due to msys2 has most of its binaries (including make) running under windows x86_64 emulation and only a few are running natively on windows arm64, so I had to hard code target platform and compiler settings.
Build steps:

Install aarch64 JDK: https://learn.microsoft.com/en-us/java/openjdk/download
Install msys2 arm64 clang: https://www.msys2.org/wiki/arm64/
Open "MSYS2 CLANGARM64" shell.
Clone the repo and apply patch attached below.
Export JAVA_HOME as a unix style path (it defaults to Windows style path and caused some issue)
Build as normal: ant jar

diff --git a/jni/GNUmakefile b/jni/GNUmakefile
index f12883a..709ee59 100755
--- a/jni/GNUmakefile
+++ b/jni/GNUmakefile
@@ -85,24 +85,24 @@ CFLAGS += $(OFLAGS) $(WFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) $(LIBFFI_CFL
 CFLAGS += -D_REENTRANT -D_LARGEFILE64_SOURCE -D_GNU_SOURCE

 ifeq ($(OS), win64)
-  override CPU = x86_64
-  JDK_INCLUDES=-I$(WIN32_JNI_INCLUDES) -I$(WIN32_JNI_INCLUDES)/win32
-  CC = x86_64-w64-mingw32-gcc -m64
+  override CPU = aarch64
+  JDK_INCLUDES= -I"$(JDK_HOME)/include" -I"$(JDK_HOME)/include/win32"
+  CC = cc
   PICFLAGS =
   ifneq ($(findstring cygwin, $(BUILD_OS)),)
     CC += -mno-cygwin
     LDFLAGS += -mno-cygwin
   endif
-  CFLAGS += -mwin32 -D_JNI_IMPLEMENTATION_
-  LDFLAGS += -Wl,--add-stdcall-alias
+  CFLAGS += -D_JNI_IMPLEMENTATION_ -DFFI_GO_CLOSURES=0
+  LDFLAGS += -lshlwapi
   PICFLAGS=
   SOFLAGS += -shared -static-libgcc
   PREFIX =
   JNIEXT=dll
-  AR = x86_64-w64-mingw32-ar
-  LD = x86_64-w64-mingw32-ld
-  STRIP = x86_64-w64-mingw32-strip --strip-debug
-  CONFIGURE_BUILD = x86_64-w64-mingw32
+  AR = ar
+  LD = ld
+  STRIP = strip --strip-debug
+  CONFIGURE_BUILD = aarch64-w64-mingw32
 endif

 ifeq ($(OS),cross-mingw32)
diff --git a/jni/jffi/Library.c b/jni/jffi/Library.c
index c1dcd86..a577f0f 100644
--- a/jni/jffi/Library.c
+++ b/jni/jffi/Library.c
@@ -38,6 +38,7 @@

 #if defined(_WIN32) || defined(__WIN32__)
 # include <windows.h>
+# include <shlwapi.h>
 # include <malloc.h>
 #else
 # include <dlfcn.h>
diff --git a/jni/libffi/Makefile.in b/jni/libffi/Makefile.in
index 47813f8..bba20a1 100644
--- a/jni/libffi/Makefile.in
+++ b/jni/libffi/Makefile.in
@@ -609,7 +609,7 @@ AM_CFLAGS = $(am__append_3)
 @LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_dep = libffi.map
 @LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_dep = libffi.map-sun
 libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
-libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
+libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(LTLDFLAGS) $(AM_LTLDFLAGS)
 libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
 AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
 AM_CCASFLAGS = $(AM_CPPFLAGS)

jffi-aarch64-Windows.jar.gz

Thank you for the detailed instructions! Yeah this is a pretty janky build environment, but to my surprise it actually built fine once I had all the pieces in place. I have no idea how we would get CI testing set up on this, and clearly the tests need some work to support building on arm64 Windows, but we appear to have a binary!

@ntkme Excellent news, thank you! I will proceed with releasing the JNR stack today and we should have this support in JRuby <IP_ADDRESS>.
If you would like some "extra credit" work, you could research how we might add a Windows-Arm64 test run (and even better, automated build of the binary) to CI. I have no ideas at the moment.

I've released this and the rest of the JNR stack and it will land on JRuby master soon for <IP_ADDRESS>.


Simplify sample build script

Tested by confirming that the sample builds for nrf52_pca10040.

Thanks, @SebastianBoe - that makes a lot of sense.  I will definitely merge these changes, but I'm afraid your commit will end up getting lost.  The mcumgr changes will go into the mcumgr repo (https://github.com/apache/mynewt-mcumgr).
It is up to you whether you want to resubmit these changes to the mcumgr repo.  I don't mind copying them from here, but I hate to take your work without due credit.

@ccollins476ad : Do whatever is easiest for you to get the patches in. Don't mind about the credit / git history.


Can not find module for react-native-fiesta

Describe the bug
Im trying to install this package, then appear error can not find module for react-native-fiesta, I already tried remove node_modules, yarn.lock, yarn install...
To Reproduce
Steps to reproduce the behavior:

Install package with
yarn add @shopify/react-native-skia 0.1.172
yarn add react-native-fiesta 0.5.1

See error

Screenshots
If applicable, add screenshots to help explain your problem.

Same here, with the same versions and with Expo SDK 48

Y'all still having that issue? I have that same TypeScript error saying the module doesn't exist, but when I build the app everything still works great.


Many to many inserting garbage values

All of my entities have assigned ids
export abstract class BaseEntity implements IdEntity<BaseEntity> {
  @PrimaryKey({ type: 'text'})
  id = cuid();
  ...
}

I have a defined many-to-many relationship:
export class User extends BaseEntity {
  @ManyToMany({ entity: () => RoleType, pivotTable: 'RoleType_to_User', joinColumn: 'B', inverseJoinColumn: 'A', })
  roles = new Collection<RoleType>(this)
  ...
}

export class RoleType extends BaseEntity {
  @ManyToMany({ entity: () => User, pivotTable: 'RoleType_to_User', joinColumn: 'A', inverseJoinColumn: 'B'})
  users = new Collection<User>(this)
  ...
}

When I add a RoleType to a User
const role = await em.find(RoleType, { name: 'admin' })
user.roles.add(role)

Garbage values are inserted. See picture. (sqlite test environment).

I believe this is related to AbstractSqlDriver#80
  async nativeInsert<T extends AnyEntity<T>>(entityName: string, data: EntityData<T>, ctx?: Transaction): Promise<QueryResult> {
    const collections = this.extractManyToMany(entityName, data);
    const pk = this.getPrimaryKeyField(entityName);
    const qb = this.createQueryBuilder(entityName, ctx, true);
    const res = await qb.insert(data).execute('run', false);
    res.row = res.row || {};
    // why not have data[pk] be the first option?
    res.insertId = res.insertId || res.row[pk] || data[pk];
    await this.processManyToMany(entityName, res.insertId, collections, ctx);

    return res;
  }

Just to be sure - what values are generated with the cuid() function? What column do you consider being filled with garbage?
Also btw the way you define the m:n now means both sides are owners. For modeling bidirectional m:n, you should link the other side at least from one entity. More info with examples here: https://mikro-orm.io/docs/relationships/#manytomany

cuid generates values that look like this: ck42tg70c000r9xmidhm8da23.  None of my User ids look like small integers.
I re-ran the test with the following relations and it still produced the same result:

  @ManyToMany({ entity: () => RoleType, pivotTable: 'RoleType_to_User', joinColumn: 'B', inverseJoinColumn: 'A', owner: true,})
  roles = new Collection<RoleType>(this)

...

  @ManyToMany(() => User, user => user.roles)
  users = new Collection<User>(this)

Got this one replicated. Looks like your proposed change works and no tests are broken.

Fixed in 3.0.0-rc.4


Issues on MacOs

Hello, i was trying to use the code provided but it doesn't seem to work if i follow the guide. First i had unity complaining about some files in the plugin not having a meta file. Then when i followed a guide to move the plugin from the Library/PackageCache to the Packages folder i still had issues with the namespace being off compared to the description. I still didn't manage to get it to work unfortunately, but thank you for sharing.

So there are a few parts to this, first and foremost the package is designed for iOS which is what I used and built it for, however there's a good chance you can get away with changing the #if UNITY_IOS to be #if UNITY_IOS || UNITY_STANDALONE_OSX
I can't really provide support for moving the package/"installing" it by moving it to some folder. Unity is very picky about how the Plugins/iOS directories work/are accepted
Lastly, after the whole fiasco surrounding Unity recently I personally have no real desire to work on/with it outside of work for now, but I'll add it to the list

Sorry, from your reply i see that i wasn't completely clear about it. I installed the package on a mac to build for IOS, and it was complaining about the meta missing for the LICENSE and the README.md files. Not sure if they can be excluded from the plugin automatically or a meta file should be provided instead.
The way i found to fix the issue is moving the packages from the Library/PackageCache to the Packages folder as suggested on a forum post.
I also had to change the call from
var appGroupPath = Plugins.iOS.AppGroupPlugin.GetAppGroupPath("YOUR.GROUP.IDENTIFIER");
to
var appGroupPath = AppGroupPlugin.Plugins.iOS.AppGroupPlugin.GetAppGroupPath("YOUR.GROUP.IDENTIFIER");
I'm not criticizing in any way, you really saved me days of work. I'd just like to help other people that might end up with the same issue.

interesting (weird?) fix, I'll still look into it as it should ideally just work out of the box. thanks!

fixed in 0cd9a01


Ldap Authentication validation bug

Filling the Active Directory page does not enable the "save" button.
I had to switch back to LDAP, file in all fields, click save, the group filters are requested even if i say no (toggle on and off solves it), then save, and switch back to Active Directory

The javascript needs to be checked carefully to have correct toggles of required fields, at least in LDAP Authentication


Shutdown() call on EndPlay() missing from setup guide

Not really a huge issue, just noticed an issue when trying to use cog to load a level in unreal, if you do not call Shutdown() on EndPlay() in the gamestate.
This caused fatal errors in our use case where resources were not initialised correctly after. Seemed to cause a bad state in the context sometimes after level load even if closing all windows before the load started. If I didn't close all windows before level load, there would be an issue as soon as the level started in most cases.
I probably should have thought to call Shutdown() myself, I'll admit it took me longer than it should have to think of that. But might be best to add to the guide so other people don't encounter similar issues.

fixed in 19d8855


Fix package deps

Fixes obsidiansystems/obelisk#795
The problem in the above issue is that the ghci launched by the ob command suite by default exposes all packages in the project's GHC package database. The full list of packages can be seen by using ghc-pkg list in a nix shell within an initialised Obelisk project. This list contains both jsaddle-dom and ghcjs-dom giving rise to the error seen in obsidiansystems/obelisk#795 as well as other problems such as concealing a failure to include needed modules in a project's .cabal file.
cabal new-repl deals with this problem by passing -hide-all-packages to ghci. However, this means that all package dependencies must be explicitly exposed with -package-id  arguments which cabal takes care of.
This PR imitates cabal's behaviour by adding -hide-all-packages, extracting build dependencies from the .cabal files, and adding them as -package-id arguments.
ob seems to overlap with cabal in a lot of its scope. I wonder if a better approach than further work akin to what I'm doing here might be to backport to cabal the things the ob command suite does better than cabal, such as the ability to load multiple modules, and move to using that instead?
I have:

[X] Based work on latest develop branch
[X] Looked for lint in my changes with hlint . (lint found code you did not write can be left alone)
[X] Run the test suite: $(nix-build -A selftest --no-out-link)
[ ] (Optional) Run CI tests locally: nix-build release.nix -A build.x86_64-linux --no-out-link (or x86_64-darwin on macOS)

Awesome!

I tried this out against my personal project. It fixed the problem I was having with my GHCJS.DOM.Document module import and additionally notified me of some packages I'd forgotten to add to my .cabal file that were previously being concealed by this problem. I haven't noticed any new problems introduced. This PR is now good to review.

ob seems to overlap with cabal in a lot of its scope. I wonder if a better approach than further work akin to what I'm doing here might be to backport to cabal the things the ob command suite does better than cabal, such as the ability to load multiple modules, and move to using that instead?

There was a GSOC this summer (which I helped mentor) for getting support for multiple components in GHC itself: https://summerofcode.withgoogle.com/projects/#5269390116782080. Folow-up work for Cabal and HIE has been started, after which I suppose we can drop what we have in ob.

Updated this PR with a fix and rebased to the latest develop branch.
Details: After doing some updates of NixOS and Obelisk I discovered there were some problems with this PR. It was failing to load the GHC package DB when the system GHC was for a different version of GHC to the project package DB. This has now been fixed by cleaning up the code that handles loading the package db to be more consistent in getting the correct ghc and ghc-pkg programs and package db for the project from Nix.

Updated this PR with a fix and rebased to the latest develop branch.
Details: After doing some updates of NixOS and Obelisk I discovered there were some problems with this PR. It was failing to load the GHC package DB when the system GHC was for a different version of GHC to the project package DB. This has now been fixed by cleaning up the code that handles loading the package db to be more consistent in getting the correct ghc and ghc-pkg programs and package db for the project from Nix.

Is there anything I can do to help get this merged? I'd like to avoid resolving merge conflicts a 4th time.

Thanks! Apologies for the delay.


Folder creation not working properly

See https://github.com/picklepete/pyicloud/issues/425

Workaround at


Ty/pages new api

New api for browsers and pages. This is beginning of a major change for our API structure by exposing a lower level page and browser primitive

Three fails, all based around timeouts. Still wondering what's going on there...

Sometimes we get a Zod error, which I've never seen before, when trying to run the thing.
pnpm run build, node ./dist/bin/index.js --config ../config.json --objective "what's tynan's role?" --startUrl "https://hdr.is" and...
⠹ Found Tynan Daly's role on the current pageZodError: [
  {
    "code": "invalid_union",
    "unionErrors": [
      {
        "issues": [
          {
            "received": "None",
            "code": "invalid_literal",
            "expected": "Type",
            "path": [
              "command",
              0,
              "kind"
            ],
            "message": "Invalid literal value, expected \"Type\""
          },
          {
            "code": "invalid_type",
            "expected": "number",
            "received": "undefined",
            "path": [
              "command",
              0,
              "index"
            ],
            "message": "Required"
          },
          {
            "code": "invalid_type",
            "expected": "string",
            "received": "undefined",
            "path": [
              "command",
              0,
              "text"
            ],
            "message": "Required"
          }
        ],
        "name": "ZodError"
      },
      {
        "issues": [
          {
            "received": "None",
            "code": "invalid_literal",
            "expected": "Click",
            "path": [
              "command",
              0,
              "kind"
            ],
            "message": "Invalid literal value, expected \"Click\""
          },
          {
            "code": "invalid_type",
            "expected": "number",
            "received": "undefined",
            "path": [
              "command",
              0,
              "index"
            ],
            "message": "Required"
          }
        ],
        "name": "ZodError"
      },
      {
        "issues": [
          {
            "received": "None",
            "code": "invalid_literal",
            "expected": "Wait",
            "path": [
              "command",
              0,
              "kind"
            ],
            "message": "Invalid literal value, expected \"Wait\""
          }
        ],
        "name": "ZodError"
      },
      {
        "issues": [
          {
            "received": "None",
            "code": "invalid_literal",
            "expected": "Back",
            "path": [
              "command",
              0,
              "kind"
            ],
            "message": "Invalid literal value, expected \"Back\""
          }
        ],
        "name": "ZodError"
      }
    ],
    "path": [
      "command",
      0
    ],
    "message": "Invalid input"
  }
]
    at get error (/Users/am/git/standard/hdr-browser/node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/types.js:55:31)
    at ZodObject.parse (/Users/am/git/standard/hdr-browser/node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/types.js:160:22)
    at chat (/Users/am/git/standard/hdr-browser/node_modules/.pnpm/zod-gpt@0.12.1_llm-api@1.5.1_zod@3.23.8/node_modules/zod-gpt/dist/src/completion.js:128:37)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Agent._call (/Users/am/git/standard/hdr-browser/dist/agent/agent.js:119:26) {
  issues: [
    {
      code: 'invalid_union',
      unionErrors: [Array],
      path: [Array],
      message: 'Invalid input'
    }
  ],
  addIssue: [Function (anonymous)],
  addIssues: [Function (anonymous)],
  errors: [
    {
      code: 'invalid_union',
      unionErrors: [Array],
      path: [Array],
      message: 'Invalid input'
    }
  ]
}
✖ Agent failed to respond

fixing

I think i fixed it. I wasn't letting command be optional which seems to have done the fix.
This should also fix the issue where the models find an answer and yet keep going
Debugger attached.
✔ Please specify an LLM provider for the agent · openai
✔ Please specify an LLM model for the agent · gpt-4
✔ Tynan Daly's role is in 'product, back-end'
Tynan Daly's role is in 'product, back-end'```

Can corroborate. FTR we return the response twice there because the spinner doesn't return anything to what it's being piped to by itself, so we need to console log when we're done. I might just remove the spinner complete state so it doesn't do that, but that's separate, anyway.

The test is failing on an invalid union, by the way.
ZodError: [
      {
        "code": "invalid_union",
        "unionErrors": [
          {
            "issues": [
              {
                "received": "type",
                "code": "invalid_literal",
                "expected": "Type",
                "path": [
                  "command",
                  0,
                  "kind"
                ],
                "message": "Invalid literal value, expected \"Type\""
              }
            ],
            "name": "ZodError"
          },
          {
            "issues": [
              {
                "received": "type",
                "code": "invalid_literal",
                "expected": "Click",
                "path": [
                  "command",
                  0,
                  "kind"
                ],
                "message": "Invalid literal value, expected \"Click\""
              }
            ],
            "name": "ZodError"
          },
          {
            "issues": [
              {
                "received": "type",
                "code": "invalid_literal",
                "expected": "Wait",
                "path": [
                  "command",
                  0,
                  "kind"
                ],
                "message": "Invalid literal value, expected \"Wait\""
              }
            ],
            "name": "ZodError"
          },
          {
            "issues": [
              {
                "received": "type",
                "code": "invalid_literal",
                "expected": "Back",
                "path": [
                  "command",
                  0,
                  "kind"
                ],
                "message": "Invalid literal value, expected \"Back\""
              }
            ],
            "name": "ZodError"
          },
          {
            "issues": [
              {
                "received": "type",
                "code": "invalid_literal",
                "expected": "Enter",
                "path": [
                  "command",
                  0,
                  "kind"
                ],
                "message": "Invalid literal value, expected \"Enter\""
              }
            ],
            "name": "ZodError"
          },
          {
            "issues": [
              {
                "received": "type",
                "code": "invalid_literal",
                "expected": "Hover",
                "path": [
                  "command",
                  0,
                  "kind"
                ],
                "message": "Invalid literal value, expected \"Hover\""
              }
            ],
            "name": "ZodError"
          },
          {
            "issues": [
              {
                "received": "type",
                "code": "invalid_literal",
                "expected": "Scroll",
                "path": [
                  "command",
                  0,
                  "kind"
                ],
                "message": "Invalid literal value, expected \"Scroll\""
              },
              {
                "expected": "'up' | 'down'",
                "received": "undefined",
                "code": "invalid_type",
                "path": [
                  "command",
                  0,
                  "direction"
                ],
                "message": "Required"
              }
            ],
            "name": "ZodError"
          }
        ],
        "path": [
          "command",
          0
        ],
        "message": "Invalid input"

type instead of Type, perhaps.

Ah figured it out. the CMI was ingesting some bad memories and returning them without hints

And should we worry about the invalid action generation we're getting sporadically? Those are, in my memory, kind of new for us. We don't usually choke on bad action generations, we usually just make it do it again, right?