Adds AWS resource tags in json-asff and SecurityHub findings

Context
This PR includes AWS Resource Tags, if any, in the JSON-ASFF file and Security Hub findings.
Description
ASFF format includes Tags attribute under Resources, but this is not passed to Security Hub finding.
Tags is an optional attribute but Security Hub requires at least 1 property, so passing an empty dict will cause an error:
{"timestamp": "2023-08-28 18:36:20,074", "filename": "security_hub.py:46", "level": "ERROR", "module": "security_hub", "message": "Failed to send archived findings to AWS Security Hub -- InvalidInput -- Finding does not adhere to Amazon Finding Format. data.Resources[0].Tags should NOT have fewer than 1 properties."}

To avoid this, if the tags array is empty, None will be returned.
On the Pydantic validation side, if the finding_output includes Tags: null it will cause an error even if the model field is optional:
{"timestamp": "2023-08-28 18:43:10,510", "filename": "security_hub.py:51", "level": "ERROR", "module": "security_hub", "message": "ParamValidationError -- [41]:Parameter validation failed:
Invalid type for parameter Findings[0].Resources[0].Tags, value: None, type: <class 'NoneType'>, valid types: <class 'dict'> in region us-east-1"}

Adding exclude_none=True into Pydatic dict will exclude that value and fixes the issue.
This is an example on how the Resources attribute looks with Tags:
"Resources": [
    {
        "Type": "AwsEc2SecurityGroup",
        "Id": "arn:aws:ec2:us-east-1:123456789012:security-group/sg-000000000001aaaa1",
        "Partition": "aws",
        "Region": "us-east-1",
        "Tags": {
            "team": "security",
            "provider": "terraform"
        }
    }
],

License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Hi Samuel! Good to see your code here :D
We will give it a look and get back to you soon, thank you!


[Bug]-[400]:"Disable icon" should be visible in Table widget's icon column is set to Disabled

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior

Steps To Reproduce

Drag and drop a Table widget
Change the action column type to Icon widget
Select a icon widget
Enable disable property
Observe that when we hover the cursor on disabled icons, cursor icon should be changed to disable icon same as other widgets

Environment
Production
Version
Cloud

@somangshu hey can I take this up?

@adarshlilha go for it!

Stats

Stat
Values

Reach
200

Effort (months)
0.1

#12767 should be fixed with this issue


Bug: export logs doesn't work the first time

Unconfirmed but it was reported that the first time you touch the button to export logs, the file was empty

I have experienced the same, when integrating this code into an Android app


what all is missing as compared to electron

If you list out what all is missing i/we(community) can help out with this.
Have you considered Cordova or nodekit though
PS: Not a c++ or even a desktop guy.

Hey!
I definitely will be listing what needs to be done. But, I want to make
sure that there is a basic system up and running before that. Main reasons
are to make sure it is possible and I really don't want to subject anyone
else to writing this piece of it (if anyone wants to learn the COM and OLE
libraries I would be happy but they are just horrific).
Once a PoC is out, I will be adding to the wiki a checklist of the pieces
that I feel need to be developed to get this project to a MVP status.
For reasons of not using an existing library, I want this to be as close to
OS level as possible. This will probably crop up more bugs but it also
keeps the memory footprint down which is (In my opinion) one of the worst
pieces of containers right now.
I am hoping within this next week the PoC will be finished and then I would
love to have other devs come in to help either with the coding or even
testing/documentation.
Sorry if there are any spelling/grammar mistakes! Typing on my phone into
work.
On Mar 22, 2018 1:24 AM, "Prathik Shetty"<EMAIL_ADDRESS>wrote:

If you list out what all is missing i/we(community) can help out with this.
Have you considered Cordova though
PS: Not a c++ or even a desktop guy.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jscherer92/Quark/issues/3, or mute the thread
https://github.com/notifications/unsubscribe-auth/AQ0AwvlfCSWcNv6K1V27BhMUTdpsIiAgks5tg0OygaJpZM4S2hI9
.

Fair enough, also when you get working the windows basic functionality could you define some common API that could be implemented in other platforms so others can start contributing.

Yep! This is the plan! Once the windows piece is in a functional state,
there will be an API developed that will go in a share location. From
there, I am hoping that architecture specific code should go in it's own
folder, while it calls out to shared code.
In terms of the APIs, this may just be templated classes since Windows acts
so differently from OSX and Linux, but we should still be able to share
these templates to work across all systems.
I also plan, after I am finished with the PoC of laying a roadmap out so
everyone can start to contribute. Trust me, there is no way that I can do
this by myself for all three platforms.
On Mar 22, 2018 4:01 PM, "Norman Paniagua"<EMAIL_ADDRESS>wrote:

Fair enough, also when you get working the windows basic functionality
could you define some common API that could be implemented in other
platforms so others can start contributing.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jscherer92/Quark/issues/3#issuecomment-375456260, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AQ0Awk-dlY2y8iKsb2fSEgJ-9BEs2uu5ks5thBE0gaJpZM4S2hI9
.

We actually use nw at my current job ;) not unmaintained just not as popular as Electron.
In terms of not reimplementing node, this is going to be tough. I want to do some testing to see how the bare bones engine runs compared to say just running Chakra Engine or bare bones V8, but we may be able to get away with a bare bone version of node.
That is a little bit of a dream but I can tell you that Node is roughly 20MB of RAM used right away. If we are going for as slim as possible, we may need to make a nodelite (have already thought of ways to handle this, do not know if we still use libuv or just go with a basic thread pool)
I would say the end goal/pipe dream is allowing user choice when getting a version of the application. Something like: I want window's x64, with V8, with nodelite. Or I want OSX with Chakra with node. Very lofty goal but that is where I see this project.

But the ram isn't the issue, and will be hard to beat node (v8) in performance, at least Electrino's goal was lightweight apps in terms of disk size, the performance I think will be similar to Electron, but each time you download an Electron app they carry 40~mb of the Chromium Embedded Framework and thats something disgusting (at least to me), i.e. I've installed on Mac some Electron based apps

Postman 200~mb
Slack 230~mb
Trello 320~mb
Twitch 320~mb
Whatsapp 235~mb

Saying that I just have 200mb of the same thing, Electron core, and yes 200mb is nothing this days if you have a desktop PC but if you have a notebook with limited disk space is a lot, and just looking at the popularity of Electron theres a tons of apps that I want to install but I cannot afford to have so much wasted space.
Maybe I've got the wrong idea behind Electrino or Quark, but I think this must be the goal, just offer thinner apps, you use the OS web frameworks (JavascriptCore on Mac, Chakra on Linux/Windows)
PD: now that I remember theres an implementation of node on Chakra, so maybe for linux and windows would be an option to use it, is officially maintained by node foundation, i think, and is in the ChakraCore roadmap

Well this will definitely be lighter in terms of Disk. In terms of what we are actually offering, you use the OS's "Browser". So for Windows, in terms of the winapi, you use the IWebBrowser2 interface, and for OSX you would use Webkit. For the JavaScript engine on the "backend", you would be using something like Chakra for Windows (though, you don't get chakra out of the box on this) or you use Trident.
For OSX, you would use JavascriptCore. I think out of all of this, some confusion has come up on exactly what Electrino was going for, and maybe how I viewed it was different. But, I am aiming for Quark to be both lighter in disk usage and memory footprint.
I can go into the design details when I write up the wiki, but just hooking Node into the native rendering engine is not going to solve a majority of the problems that I think people are having with Electron/NW.
Again, I am not against bringing Node into the mix here nor am I against any of the ideas that Electrino may have been going for, but my main goals are to make a cross OS system, that can make apps lighter in both disk/ram usage. Disk is relatively simple by using the native rendering engine. RAM usage comes from trying to not spin up VMs the way V8/Node does.

How do you think that can be reduced the memory footprint? I'm clueless in this aspect.
If that one of the goals of this project I think it can be worked later on and in the mean time use just node or chakra-node, because in the end this will be fully node compatible, I'm right?

We can reduce the footprint fairly easily by getting rid of a lot of Node's functionality. I've been doing quite a bit of research into this and there are a few areas that make it quite heavy.
I'm all for using NodeChakra having it as a baseline and using that in the beginning to get this ramped up.
As per the discussion going in the other thread, picking the rendering engine is tough because you never know what environment the user is going to be in. I would say that using a cross platform webview is the thing we are trying to avoid, so we should probably develop for one desktop environment such as Gnome or Cinnamon and work from there. Once we have a standard way of building this, I think it should become easier to build the next webview.

But if you strip some node functionality there will be node modules that will not work with quark, and I think the big thing about electron is the ability to use all the available node modules.

That is a good point. I would say we will most likely move forward with Node for the time being, but do another project you listed on another thread did and start writing their own wrappers for the functions.
In terms of what makes Node bloated are calls to the V8 engine and even the libuv instance that it is using.
I was doing some research last night on trying to find different techniques for achieving what libuv does and there seem to be a few out there.
Again, I am being ambitious in that aspect and I would really like it to work.
But, also seeing a lot of movement for people just wanting a system that is working and is less of a hog on resources, moving forward with one implementation in the beginning is not bad.

The reason so many people were interested to Electrino, was that the goal seemed to be a drop-in replacement for Electron so that the API matches although some might be missing.

[electrino] implements a minuscule portion of the APIs available in Electron, but the output app size is much smaller.

It seems the plan was to increase the API to try to achieve parity with Electron to some degree.

The plan is to examine API usage of real-world apps that use Electron but don't really need the full capabilities.

If you implement something that doesn't mimic the Electron API, then it will be just another cross platform UI tool.

Completely agree. But this is where I think we need to figure out what
people want from the Electron API. Is it the actual Electron API which
doesn't use Node for most of it and binds the OS specific tasks, or is it
the Node API that people want?
Or is it possibly both? I plan on mimicking the Electron API with this
project, along with mimicking Node, but writing the engines in the native
environment.
On Mar 23, 2018 8:40 AM, "Steven"<EMAIL_ADDRESS>wrote:

The reason so many people were interested to Electrino, was that the goal
seemed to be a drop-in replacement for Electron so that the API matches
although some might be missing.
[electrino] implements a minuscule portion of the APIs available in
Electron, but the output app size is much smaller.
It seems the plan was to increase the API to try to achieve parity with
Electron to some degree.
The plan is to examine API usage of real-world apps that use Electron but
don't really need the full capabilities.
If you implement something that doesn't mimic the Electron API, then it
will be just another cross platform UI tool.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jscherer92/Quark/issues/3#issuecomment-375667896, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AQ0AwpIFG2dEARi3Chr-f5CO2jL2R9Emks5thPtBgaJpZM4S2hI9
.

Not to keep bombarding this thread and I'll be at work, but that is why I want to get this PoC up and running to show the possibilities of actually building this. With actual code and usability there, I think a much better understanding of the design will come out.
I am eager for other developers, but I want to make sure that there is something tangible for other devs to see and work with. Along with users to be able to run something tangible.

This is me guessing, but I think it's the node API specifically.
To reiterate @norman784, if you strip some node functionality there will be node modules that will not work with quark.
This was the unique thing that Electron did: marry the web API with the node API so you get a real file system.
The other parts of the Electron API don't seem particularly hard to port so probably aren't as important, but its also not a huge surface area to cover (I think).

I definitely agree. That's why I don't want to strip functionality that a majority of users are using.
I think my point is, are there features people are not using in the Node API that we can just remove? I want to do an implementation without libuv, so mimic the NodeAPI. I would do this piece by piece and maybe as a starting point just plug in the node system. But do realize that this is an executable, so it would be mean work changing it into a dll/so for the different systems.
I just want to make sure we all realize that the entire bulk is not just on the embedded chromium instance, but also on the Node/libuv side.

@jscherer92 I think the selling point of the framework need to be bring to quark the actual electron apps, so developers can migrate without any or at least too much work their apps to quark. So thats why I think we need to maintain the Electron API and Node API as much as possible.
But didn't work too much with Electron so I really not fully aware of how deep and big is their API, but maybe its just the Node ecosystem that brings most of the power to Electron apps.

From working with NW and Electron it has really been the power of both
pieces. At least what I have been developing, it is nice to have control of
windows and placements, along with a notification API and task tray API,
etc. Along with this is functionality from Node.
I do think it is a big undertaking and it is why I want to take it a step
at a time. This is something we definitely don't want to rush because
porting is going to be the draw besides the much smaller footprint.
On Mar 23, 2018 9:37 AM, "Norman Paniagua"<EMAIL_ADDRESS>wrote:
@jscherer92 https://github.com/jscherer92 I think the selling point of
the framework need to be bring to quark the actual electron apps, so
developers can migrate without any or at least too much work their apps to
quark. So thats why I think we need to maintain the Electron API and Node
API as much as possible.
But didn't work too much with Electron so I really not fully aware of how
deep and big is their API, but maybe its just the Node ecosystem that
brings most of the power to Electron apps.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jscherer92/Quark/issues/3#issuecomment-375685646, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AQ0AwgWHdbWj2cH6NDYM6gM52W84agDUks5thQimgaJpZM4S2hI9
.

If you also take a look at electrino he was only mimicking part of the Electron API and none of the node system. So I don't know what the plans were moving forward

@jscherer92 That is incorrect.
There were a couple node.js core APIs that were implemented including url and path.
Also the __dirname global.
See the demo app for more.

Yep. I took a look and he did implement those. But, it was not Node that he was using as the library. They were ObjectiveC routines he wrote that hook into the runtime. That is my plan for implementation on this project. Writing C++ routines that mimic the node API

I am totally in favor of @jscherer92 suggestion and plan.
For me, the concept of Electrino/Quark is to enable the developer to create desktop apps that uses much less disk and much less RAM.

Thanks @paulocoghi! Progress has been a bit slower than I expected (though, this is usually how software dev goes). Part of this goes into my learning process in modern C++. I always used a C like variation of C++, but I am trying to follow modern design considerations now.
Second, after a 9-10 hour workday, I am usually not in the mood to code, but I have been pushing through that. Just know that I really believe in this project and know that there a lot of improvements that can be made on the codebase, along with what this project is. I think once the MVP for Windows is out there and it becomes stable, there will be a good understanding of the implementation for other OSs.
Also, the current runtime will not be correct for the MVP in Windows since I am statically binding all of the library code with the project. Once it is up and running and a good demo is created, I will be moving most of the code into a dll and a shared location. With this, the memory size will go down.
With the current Buffer implementation, the system is running around 10MB. With the other pieces that need to get up and running, I expect that w/o a DLL of the library code, it will be around a 18MB runtime. Once that library code is not statically linked and is a DLL, it should go down to a 9-11MB runtime. This is compared to the 50MB runtime of NWjs and 42MB runtime of Electron.

@jscherer92 as i stated above if you can list out what all is missing or what all you plan to add. We (the community) can help you.

@awebdeveloper, the current wiki has the MVP plan for Windows. This is the main development goal. All of this is C++ work and specifically the Windows API. I'm all for others jumping in, but this is where the work is currently at.
The wiki also shows the current dependencies to build out each module.


Typo "Azure functions"→"Azure Functions"

https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=linux%2Ccsharp%2Cbash

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

@ggailey777 - Could you review the proposed update to your article?
For reference, the internal cloud style guide says this:
"Use Azure Functions as necessary to distinguish it as an Azure service. It's OK to use just Functions when the context makes it clear you're referring to the Azure service.
To refer to something built using Functions or in a generic reference, use lowercase function app."
Thanks.

#sign-off thanks


Property 'after' does not exist on type 'ColumnBuilder'

Environment
Knex version: ^0.20.2
Database + version: MySQL
OS: macOS 10.14.6
@lorefnon / typescript
Bug

Explain what kind of behaviour you are getting and how you think it should do

Should be able to use after() on ColumnBuilder

Error message

Property 'after' does not exist on type 'ColumnBuilder'. Did you mean 'alter'?ts(2551)

Reduced test code, for example in https://npm.runkit.com/knex or if it needs real
database connection to MySQL or PostgreSQL, then single file example which initializes
needed data and demonstrates the problem.

knex.schema.alterTable('users', (t: Knex.TableBuilder) => {
      t.integer('creator_id')
        .after('source') // <== No worky
        .unsigned()
      t.foreign('creator_id').references('users.id')
    })

@lorefnon would really like to remove //@ts-ignore from these migrations soon. Any idea?

Does someone have any updates? I'd like to use this typed column builder, but I get an error always I use it.
@wwwouter can you look at this?

@lorefnon

Does someone have any updates? I'd like to use this typed column builder, but I get an error always I use it.
@wwwouter can you look at this?

Yeah, I think @lorefnon is best suited to answer this 😅

Any update on this?

PRs are welcome :)

Released in 0.21.15


Add artifact/relics option to the current game display

There is no notion of whether there is an artifact game going on or not:

It does say "last edition" which is mentioned here in the gameoptions php:
101 => array(
    'name' => totranslate('Game rules'),
    'values' => array(
        1 => array('name' => totranslate('Last edition')),
        2 => array('name' => totranslate('First edition'), 'tmdisplay' => totranslate('First edition')),
    ),
),

So I think we need a similar entry for the artifacts "enabled" and "enabled with relics" entries so casual users can know what they are getting into. :)

I can't get this to work.
I'm trying this:
102 => array(
    'name' => totranslate('Artifacts expansion'),
    'values' => array(
        1 => array('name' => totranslate('Disable')),
        2 => array('name' => totranslate('Enable without Relics'), 'no_beginner' => true, 'tmdisplay' => totranslate('Artifacts Expansion')),
        3 => array('name' => totranslate('Enable with Relics'), 'no_beginner' => true, 'tmdisplay' => totranslate('Artifacts Expansion with Relics'))
    )
),

103 => array(
    'name' => totranslate('Extra achievement to win'),
    'values' => array(
        1 => array('name' => totranslate('Disable')),
        2 => array('name' => totranslate('Enable'), 'tmdisplay' => totranslate('Extra Achievement'), 'no_beginner' => true)
    )
)

It turns out that it takes a couple hours for the text in the tmdisplay string to get pushed to the servers on studio.  So, if you test the echoes/cities game options, make sure to accommodate for this time.


Added dark mode

Added the dark mode feature to the footer section

Looking good to me @arghadipmanna101

already done


Feat/babylon engine atom

🪐 Enter the WebGL world. This PR implements a rough component exposing the fantastic BabylonJS 3D Engine as a React component - as specified by #369.
The implementation of the component is quite basic and uses some mechanisms of the canvas component. Ultimaly, most of the work is the storybook which illustrates some impressive possibilities of the 3D engine (without doing too much). Don't hesitate if you want to add stuff.

Nota bene 1.: This component is an intermediate component that opens the way to the higher level component for the exploration of knowledge graphs coming soon.
Nota bene 2.: I would have liked to add a second example using shaders, but I'm a little short on time, especially since I'd like to get this PR be merged quickly.

Codecov Report

Merging #365 (4115af1) into main (1028e96) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #365   +/-   ##
=======================================
  Coverage   96.70%   96.70%
=======================================
  Files          61       61
  Lines         667      667
  Branches      106      106
=======================================
  Hits          645      645
  Misses         21       21
  Partials        1        1

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

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


fix: state setter for download aspect toggle

Context

Clicking the aspect ratio button in the ViewportDownloadForm fails due to an error. When shadowing a class member name in js, you can't use the shadowed name to initialize the shadowing variable.

Changes & Results
I fixed the syntax to avoid the error, and used the setter with callback, which should always be used when the new state depends on the current state in react.

Testing
Click the aspect ratio button, and it will now work.

Checklist
PR

[x] My Pull Request title is descriptive, accurate and follows the
semantic-release format and guidelines.

Code

[x] My code has been well-documented (function documentation, inline comments,
etc.)

Public Documentation Updates

[x] The documentation page has been updated as necessary for any public API
additions or removals.

I'm closing this as not planned because it's related to v2-legacy. Keeping it open might suggest we support fixing issues in v2-legacy. If this problem persists in v3, please open an issue or, even better, provide a fix for v3.


Update PHP.rst

edit syntax of code example

Please, check PHP.rst file

Cool, thanks for your first PR 😄 It looks good, only unfortunately we do not accept PRs to this repository as you can see in the readme: https://github.com/neos/flow/blob/master/Readme.rst
Please redo this PR for https://github.com/neos/flow-development-collection and the lowest maintained branch (3.3)


Add unit tests for initialization, plus some minor cleanup.

I feel pretty confident in the translations change here, which is easy enough to test locally (just switch to French or whatever), but I'm not sure it has any strange production-specific implications.

Huh, the first commit here is still worth merging, but the Casper tests are failing due to the i18n/translation changes.  I'll investigate.

Ugh, I couldn't get the last two commits here to work (specifically the second, but the second's a pre-req for the third), but I'm leaving them for a moment, as I'm kinda curious if there's a way to explicitly load i18next in bundles/app.js.  There are two problems here:

I think i18next doesn't update the global namespace like other modules here do.
We try to abbreviate i18next to i18n.

The current approach seems janky to me, but it does work, I'll grant that.  I tried various combinations of modifying bundles/app.js and tools/webpack.config.ts, but they ended up with either explicit reference errors or mysterious, but consistent, Casper flakes.
I'm happy to abandon the last two for now, but any insight is welcome.

Update: See my question in the previous comment, but I wouldn't waste much time on this unless you have a quick answer.
I'm moving the unit test coverage to its own PR.
Feel free to close this, @timabbott, unless my questions above spark something.

(The test commit was moved to #11171 and updated for recent changes on master.)

Doesn't spark an obvious theory, so just closing.  Thanks for writing that test :)


fix: DEV-3644: Ensure draft is saved correctly and remains editable

Hi @bmartel!
This PR was created in response to a PRs in upstream repo:

https://github.com/heartexlabs/label-studio-frontend/pull/1011

/frontend build lsf master


Make drawing errors shareable across threads

Without this, collecting errors from other threads (for example when using rayon) will cause compile errors.

Thanks!


Alow Bruno to URL-encode query params, similar to curl's --url-query

Hello! An API we have to use has query params that need to be URL encoded. We can do this with curl like this:
curl https://endpoint.com/path --url-query "results=a,b,c"

However, when trying Bruno, I realized I had to manually URL encode this myself:

Is there a way to be able to add query params that need to be URL encoded in Bruno? Perhaps similar to the "Body" dropdown (see next screenshot for example) that allows Form Encoding:

+1
It looks like Postman implements this as a "setting" on the Request itself (not global), which is also handy:

+1
Reading a little into the code it seems like axios is being used to send requests and axios should be capable of this feature.

I would love to have this feature. For now, I've put this workaround into my Collection's Pre-Request Script, which splits the request URL into hostname, etc. and parameters, and URI encodes the parameters. So far it hasn't had any issues, but your mileage may vary:
req.setUrl(req.getUrl().replace(/(.+?\?).+/,'$1') + encodeURI(req.getUrl().replace(/.+?\?/,'')))

Oh, I'm just realizing now that one big issue with my work-around is that the variables aren't getting interpreted before the JavaScript runs (see #2690). I understood this initially, which is why I split the host and parameters apart, but I'm just realizing it makes using variables in the parameters impossible.

+1 for a setting to auto url-encode query parameters, can be pretty useful 👍

An easier workaround is to set a variable like ${encodeURIComponent('https://some-site.com')} and use-it in the URL/parameters.
Example:

https://github.com/usebruno/bruno/issues/3187#issuecomment-2473690689 has a encoding pre-request script that worked well for me


nvimpager: 0.9 -> 0.10

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 126027 at 5175b549 run on x86_64-linux 1

1 package built successfully:

nvimpager

1 suggestion:

warning: missing-phase-hooks
checkPhase should probably contain runHook preCheck and runHook postCheck.
Near pkgs/tools/misc/nvimpager/default.nix:34:3:
   |
34 |   checkPhase = ''script -c "busted --lpath './?.lua' test"'';
   |   ^

I added extra commits for the comments above. We can squash them after a positive review.


Use NavLink for Links in Navbar

Proposed Changes

Changed Component Name in NavBar Items

Hello @shrihari689,
Thank you for your interest in contributing to Material Tailwind.
You did everything very well just there is a small problem, you need to fork the project then create a new branch related to the thing you do you can find the name of the branches that you can use for different purpose on the contributing.md inside the repository, then push it and make a pull request from your branch to dev-main and request for review then I will check it and push it to the main.
All the best
Sajad

Closing this 📍 Raising new one


Missing translation key paginagion.goto_page in Tailwind pagination view

Laravel Version: 7.12.0
PHP Version: n/a
Database Driver & Version: n/a

Description:
The new Tailwind pagination view uses a __('pagination.goto_page') translation key that isn't present in the default language file.
None of the other pagination views use this translation key.

Just send in a PR.

Because it is only used in one of the 7 views, should it be removed, or also added to the other 6?

Added to the other ones as well I think.

Maybe you can re-open this issue so someone can make a PR for that?

Sure.


Indicate power platform licensing requirements

Hi,
Its not clear if exporting APIs from APIM to power platform requires an enterprise or standard licence for the power platform.
Also what are the minimum access requirements in both Azure and Power platform for the user who is doing this? Do they need to just be an APIM instance admin or a full Subscription Admin in Azure? Do they need to be a global admin in M365?
Thanks,
Adrian

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

ID: 83f8200f-95b3-42b0-9e95-f803e13d3952
Version Independent ID: f0fc9512-4abe-73de-bcf4-24fad32eea88
Content: Export APIs from Azure API Management to the Power Platform
Content Source: articles/api-management/export-api-power-platform.md
Service: api-management
GitHub Login: @miaojiang
Microsoft Alias: apimpm

@ahollandusc Thank you for your feedback! We will review and update as appropriate.

User is an Owner of the APIM instance in Azure, and a global admin in M365 with direct access to a number of power platform environments but still gets the message 'No available items' when attempting to export to an Environment from APIM.

Another follow up question for clarification - what environments can be connected to? Does the target power platform environment need to have a database before it shows up in the environment list on APIM?

Currently the exported connectors will require a "premium" license. The user must have read permission to the API in APIM, and permissions to create new connectors in the Power Platform.
I dont think it requires a database for the environment to show up.

@miaojiang thanks for the update, can you please clarify what 'currently' means though - does that include the Power Platform October 2020 Release Wave 2 drop? https://docs.microsoft.com/en-us/power-platform-release-plan/2020wave2/
MVP's from Ignite and Power Platform conferences have indicated the Oct 2020 drop would include it as a non premium power platform feature.

@miaojiang Thanks for sharing insights on this! I have assigned this issue to you for updates on the license requirements.

@PramodValavala-MSFT  please close this item. Adrian has reached out over email.


Refactor & Integrate EOD Stock updates into Stock Ticker

Summary
The initial work to select and integrate a Stock API has been accomplished. We will be using MarketStack, which provides 1,000 free stock price updates a month under a free plan. If our stakeholder wants more updates, we can talk to her about purchasing a paid plan.
The initial implementation isn't lengthy, but/and needs some re-architecting.
This issue can be completed in stages (multiple PRs) or all together. You may want to go create a free MarketStack account for yourself. It does not require you enter any financial info at all.
See criteria.
Things to Consider
#32
#37
#55
Criteria for Completion

[ ] Move values into config instead leaving as constants in api files.
[ ] Use Redis cache wrappers, as mentioned here
[ ] Leverage ActiveModel, as mentioned here
[ ] Consider using Faraday instead of Net::HTTP, as mentioned here
[ ] More refactoring. Here's one relevant comment. Personally, I don't think any of this should be in models/, and may be better namespaced in an app/api/ directory where the classes are Api::Stock/etc.
[ ] Rewire #37 to use updated logic once the above bullets have been addressed.
[ ] As a result of rewiring #37 , the Stock Ticker will be functional and update daily.

Is this ready to be worked on?

@malsmr - Absolutely! - Please feel free to do some of the bullets and document any constraints concerns in regards to obtaining any others. Accomplishing this in multiple deliverables is fine by me.

We've gone with a different API and are generally breaking this work up into smaller issues


feature: Added more CLI options

This feature adds more CLI options in to the library.

As a reminder: This does not entirely fix #5, there are still some options missing such as:

Reporters
Screenshots
Screenshots-on-fails
Screenshot-path-pattern
Concurrency
Test
Test-grep
Fixture
Fixture-grep
App
App init delay
Selector timeout
Assertion timeout
PageLoad timeout
Proxy
Proxy bypass
Hostname
SSL
Dev
QRCode
Color / No-color

Willing to add more of these in future PRs, however limited to the subset in this PR since it has immediate business impact for our current project.

True. Thank you for the reminder!

Thanks, @DennisJaamann !
I published v1.2.0 with your changes. :)


Need explicit documentation for the JavaScript client methods

I'm trying to build a demo app using the JS client, and the documentation at https://weaviate.io/developers/weaviate/current/client-libraries/javascript.html barely scratches the surface. While it correctly directs the developer to the REST and GraphQL reference pages, it would be very helpful if it clarified the link between those and the builder pattern calling convention used by the client.
More specifically,

there's no mention of the .graphql member of the client. I only saw that in passing in this tutorial
the with... methods should be explicitly documented. A stop-gap measure would be to link to test files so the developer could see what with... methods are available.
client.graphql.raw() and .get() should be documented.

TypeScript definitions would've been another solution.

👍 x 💯

Thanks for sharing.
@dirkkul, can you please pick this up with @sebawita and co?

Hi Bob, I already talked with Dan last week and we'll come up with something


[New Feature] Helm Chart for first Major Release

Maybe i makes sense if a first major release is out to publish a Helm Chart?

Yes, I agree. Do you have some specific requirements you would like to see configurable?

To have like a Service and things like these

on it


Error occurred, please check and try again.

I'm trying to order online but after I enter my address/postcode on the home page, it gives me Error occurred, please check and try again.. I've set up the menu properly and I've also set up the delivery area and I'm sure what I entered falls in the delivery area. Error log says:
ERROR - 2016-06-03 09:55:28 --> Could not find the language line "text_filter_status" but i don't think this is related to the problem I'm facing because this error in the log didn't reappear after I cleared the log and tried to order again

This error log is from the console>Settings>Error Logs. Any other way to obtain error logs?

You can debug further using Firebug to check the response from the search Ajax request


Fix "E: Unable to locate package software-properties-common" error.

When executing ./start-build-env.sh command, the output is:
Sending build context to Docker daemon 9.216 kB
Step 1/18 : FROM ubuntu:trusty
trusty: Pulling from library/ubuntu
c60055a51d74: Pull complete
755da0cdb7d2: Pull complete
969d017f67e6: Pull complete
37c9a9113595: Pull complete
a3d9f8479786: Pull complete
Digest: sha256:8f5f12335124c1b78e4cf2f8860d395f75ba279bae70a3c18dd470e910e38ec5
Status: Downloaded newer image for ubuntu:trusty
 ---> b969ab9f929b
Step 2/18 : WORKDIR /root
 ---> 9ec52cfdcff6
Removing intermediate container f3b5b3ad6552
Step 3/18 : RUN apt-get install -y software-properties-common
 ---> Running in 3311c06d0ece
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package software-properties-common
The command '/bin/sh -c apt-get install -y software-properties-common' returned a non-zero code: 100

It's because there is no apt-get update before executing apt-get install -y software-properties-common in dev-support/docker/Dockerfile file:
FROM ubuntu:trusty

WORKDIR /root

# Add "RUN apt-get update" here to fix the problem.
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN add-apt-repository -y ppa:webupd8team/java
RUN apt-get update
...

Hello @MonsterSupreme thanks for reporting the issue.
Can you please file a jira? Also, it looks like your PR needs a rebase.


How to pretend other platform for bundle install

I am developing with bundler under Windows and am wondering how to create the Gemfile.lock for my production environment.
What seems missing are the gems for other platforms. Running bundle install on
group :production do
  gem 'mysql2'
end

on Windows creates a Gemfile.lock
mysql2 (0.3.18-x86-mingw32)

When deploying to a Linux environment this is obviously not correct, I would need the Gemfile.lock to also contain the correct result for Linux. I can run bundle install on Linux and learn that indeed
mysql2 (0.3.18)

is the correct gem for Linux. I then manually update the Gemfile.lock in the repository to contain both:
mysql2 (0.3.18)
mysql2 (0.3.18-x86-mingw32)

This works clean under both platforms, but it seems a kludge (and is a lot of pain, because running commands on the production / staging / CI messes up the whole deployment cycle). What is most fragile is that updating my manual Gemfile.lock changes are always overwritten once I bundle install again under Windows.
How can I tell bundle to resolve the Gemfile.lock for another platform other than the local one? I guess I need something like bundle install --platform linux or ruby. What am I missing?

You can specify the platforms for gems in your Gemfile. Here is an example:
source "rubygems.org"

gem "mysql2", "~0.3.18", :platforms => [:mswin, :mingw, :jruby]

The gemfile man page has useful information about platforms

Dear Richard,
the use of :platforms does not cause the desired effect in the
resulting Gemfile.lock (Bundler 1.10.6). Rather than resolve for all
given platforms, it will only resolve for the platform you are running
on if the platform is in the given list of platforms (this is strange
behavior in my mind). There is no way to specify that you desire a
Gemfile.lock for ruby and mingw. You have to do that manually by
running bundler on both platforms and merge their results yourself.
On 18.08.2015 18:19, Richard Bowen wrote:

You can specify the platforms for gems in your Gemfile. Here is an
example:
source"rubygems.org"
gem  "mysql2","~0.3.18",:platforms  => [:mswin,:mingw,:jruby]
The gemfile man page
http://bundler.io/man/gemfile.5.html#PLATFORMS-platforms- has useful
information about platforms
—
Reply to this email directly or view it on GitHub
https://github.com/bundler/bundler/issues/3933#issuecomment-132264514.

--
Belziger Str. 48 | 10823 Berlin | +49 1577 195 8758

This seems more like a feature request to me? (We track those separately at https://github.com/bundler/bundler-features)

If you are on one platform, what is the purpose of having a gem installed twice for two or more different platforms at the same time? You will only be able to use one at any time. If it could be done what use case do you have for having bundler install the same gems for different platforms at the same time? That would kind of make the purpose for platforms redundant.

(You could probably do this in a hacky way by modifying Gem.platforms in your Gemfile, but no promises)

@rgb-one the purpose is so the lockfile is generated all at once -- it's a valid ask

@segiddins I am just confused about what Bundler is actually is supposed to do when it comes to deployment on a development and a production machine. The Gemfile.lock is advertised to be committed to version control, but I find bundle install is not helping me to create a valid Gemfile.lock for both development and production.
How is it supposed to work? How are people using it? Manually editing the Gemfile.lock after each bundle install?

@coezbek Bundler is designed to allow you to run the same code in development and production via the lockfile. Unfortunately, gems with the same name and the same version but different platforms are not the same code (and sometimes even have completely different dependencies!). As a result of this, Bundler expects the deploy-time lock to have been generated by bundle install on the same platform that you are deploying to. The workaround currently employed by Heroku is to just flat out delete the Gemfile.lock if it was created on Windows, because it's not usable in the Linux environment of Heroku.
It sucks, but we haven't come up with any better solutions yet. :/

One thing that could be done is to have a config option that allows for gems with the same name but different platform to be overlooked when running bundle install on a specific platform.
To illustrate, lets say there is a Gemfile.lock with mysql2 (0.3.18-x86-mingw32) already there, if on the linux platform, and bundle install is run, then it will ignore the mysql2 (0.3.18-x86-mingw32) and add the linux version of mysql2 to the lockfile. So the lockfile will have both gems in it. If bundle install is run on platform jruby, both mysql2 for linux and mysql2 (0.3.18-x86-mingw32) will be overlooked in the lockfile and the Jruby mysql2 will be installed and added to the lockfile.
So in the end there will a gemfile.lock that has something like:
mysql2 (0.3.18)
mysql2 (0.3.18-x86-mingw32)
mysql2 (0.3.18-x86-jruby)

If mysql2 linux is run again it will use the declaration that is already there in the lockfile.

@indirect Thanks Arno! That makes total sense.
1.) Is there a suggested way to manage the multiple Gemfile.lock to work with multiple platforms?
2.) Would be it be technically possible to produce the Gemfile.lock on one platform for another? Interactive access to the staging system is difficult for us.

@coezbek the Gemfile.lock can already handle multiple platforms from what I can tell, but right now they only get added when running bundle install on a new platform. Yes, it is technically possible to produce a lockfile for a different platform, I already commented with a tacky way to do so.

Dear @segiddins, could you elaborate on how to hack the Gem.platforms my searches come out cold.

Gem.platforms = [Gem::Platform:: MSWIN64, *Gem.platforms] or something like that

@segiddins Just adding a platform linux does not change the resulting Gemfile.lock for me. Removing MINGW from the platform list, causes install to fail.
I need a way to resolve without actually installing. Is this possible?

Yes, that's exactly what the bundle lock command introduced in 1.10 does.

Closing this due to inactivity.
@coezbek If you want to submit a feature request, please use https://github.com/bundler/bundler-features/issues.
Thanks!


Add breadcrums to app sections

What it solves
Resolves #2540
How this PR fixes it
Uses latest version of safe-react-components which includes a Breadcrumbs component.
Adds this breadcrumb component to all sections of the app
Those which include subsections will show a second level in the breadcrumb with the sub section name.
How to test it
Navigate to each of the different routes and check that Breadcrumbs are shown and behave as expected
Screenshots
Some representative examples:

The one for the settings is in the middle of the page 😄

@francovenica good catch. It was an alignment issue when Remove Safe button wasn't show

Looks good now, with and without the "Remove safe" button


The automated release is failing 🚨

:rotating_light: The automated release from the main branch failed. :rotating_light:
I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this 💪.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here are some links that can help you:

Usage documentation
Frequently Asked Questions
Support channels

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.

publish to registry https://api.nuget.org/v3/index.json failed
dotnet nuget push -s https://api.nuget.org/v3/index.json -k [redacted] /home/runner/work/job-service/job-service/out/*.nupkg

Good luck with your project ✨
Your semantic-release bot :package::rocket:

:rotating_light: The automated release from the main branch failed. :rotating_light:
I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this 💪.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here are some links that can help you:

Usage documentation
Frequently Asked Questions
Support channels

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.

publish to registry https://api.nuget.org/v3/index.json failed
dotnet nuget push -s https://api.nuget.org/v3/index.json -k [redacted] /home/runner/work/job-service/job-service/out/*.nupkg

Good luck with your project ✨
Your semantic-release bot :package::rocket:


Feature: constrains as decorators and @constrained_params

Closes #8.

Codecov Report

Merging #51 (a7f7279) into master (857bb16) will decrease coverage by 0.01%.
The diff coverage is 97.50%.

@@            Coverage Diff             @@
##           master      #51      +/-   ##
==========================================
- Coverage   96.21%   96.19%   -0.02%
==========================================
  Files          20       20
  Lines        1269     1289      +20
==========================================
+ Hits         1221     1240      +19
- Misses         48       49       +1

Impacted Files
Coverage Δ

cloup/_option_groups.py
94.82% <92.30%> (-0.63%)
:arrow_down:

cloup/constraints/_core.py
96.09% <100.00%> (+0.01%)
:arrow_up:

cloup/constraints/_support.py
97.59% <100.00%> (+0.44%)
:arrow_up:

Continue to review full report at Codecov.

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


Tests: fix typo to be CHECK-LABEL

I found // CHECK-LABE: typos that should be // CHECK-LABEL: in test files and corrected them.

@swift-ci please test

@swift-ci please test


555 k core decomposition algorithm

This MR adds k-core decomposition algorithm
The algorithm has a test that measures performance, that can be run manually or through build -j smoketests which will also build it

Thanks Anders! I rebased and will look at this tomorrow / asap=)

Note: rebased again. Hope to be able to merge this MR into develop tomorrow or Wednesday at latest.

Internal CI OK, GitHub CI OK, unit + smoke tests with LPF OK.
Will draft MR notes and then merge


How to measure GMACs

Hello, sorry to bother you!
can you share the method to measure the GMACs and latency as depict in table 6, I can't find that in the code
thanks very much!

Hi！We use fvcore to count the GMACs. It is notable that this code count one fused multiply-add as one flop, so the "flops" is actually the "MAC".

thanks for your reply！
I have known how to use fvcore:
flops = FlopCountAnalysis(model, input)
I would like to know what should be the tensor dimension of the input in the above function in this model

thanks for your reply！ I have known how to use fvcore: flops = FlopCountAnalysis(model, input) I would like to know what should be the tensor dimension of the input in the above function in this model

Hi, on THUMOS14, we use the same input as actionformer. Specifically, each video feature sequence is padded to 2304 in temporal dimension, and the dimensions of I3D features are 2048, so the shape of a video input should be (1, 2048, 2304)

thanks very much for your answer , but,why do I get the following error reported after using the dimension you described?

would you have some suggestions for modifications?

thanks very much for your answer , but,why do I get the following error reported after using the dimension you described?   would you have some suggestions for modifications?

The input for the model is a list of dict which contain the video information. You can try measure each components in forward function in meta_archs.py.


How to set custom encryption key?

Followed the documentation here but these options are not present in current docker. Running Unraid with code 42 version <IP_ADDRESS>.

Answered my own question.
Info Here


chore(ci): fix precommit workflow

Summary
Actually fix the precommit workflow.

It works! https://github.com/Kong/httpbin/actions/runs/6173858907/job/16757140886?pr=37


Stop grid and grid items from zeroing out vertical spacing

The grid and grid items prevent vertical spacing from being applied without !important so it can't be used with our utility classes like .mb--d.
See an example here https://codepen.io/warrenkeith/pen/PobveaB

Ah good shout. I guess the grids and items should only specific horizontal margings with importants as that's what they control. Vertical margings can be zeroed out but not using important


[ENHANCEMENT] Consider displaying package update options for ignored updates

Please confirm these before moving forward

[X] I have searched for my feature proposal and not found a work-in-progress/duplicate/resolved/discarded issue.
[X] This improvements refers to an existing feature. If you want to suggest a new feature, please use this template
[X] This improvements is not a bug. If you want to report a bug, please use this template

Describe the improvement
There are certain packages that I like to update in a special way outside of how winget or other package managers prefer to upgrade them. To prevent wingetui from attempting to upgrade these packages, I currently use the Ignore selected packages option. However, this makes it so that I can't view when updates are available for these packages. I think it would be nice to add an additional list of packages that aren't ignored, but they also aren't able to be upgraded automatically via wingetui. Essentially, you would have the list of available package updates with the option to update (already exists), a list of ignored packages that you don't care to update or even want to see if an upgrade is available (already exists as ignored packages), and then a new list of packages that you don't want wingetui to update, but you would like it to still show that an update is available so that I can go and perform those updates manually my own way.
Design considerations: A user could select packages for this new category and then click a new button like Don't automatically update selected packages. Then, you could potentially have a collapsible list of these packages under the existing package updates where a user could expand the list and see available updates for packages in this category, but not have the option to automatically perform the update.
Describe how this improvement could help users.
This would help users who have packages they want to see available updates for, but don't want wingetui to handle the updates.

similar to https://github.com/marticliment/WingetUI/issues/1383, but this issue describe useful details I think

Yes, they are the same feature but opposite

I wanted to suggest something similar. My issue is that some packages can apparently not be updated by WingetUI (they always fail), but updating them through their "own" mechanism works just nice. I would like to be able to mark such packages as "Manual update", resulting in WingetUI not trying to update them, but still telling me that updates are available (such that I can then manually update them). If I ignore the packages, I will not get the "Update!" reminders... Hopes that this makes sense :-)
And, btw, thanks for the great project!

Would adding the current version and available version of a package to the ignored updates dialog work (see #2957  & #974), or were you hoping for something more blatant?
If the former, I've added this in #2987.

Your changes totally work for what I was looking for. Long term it could make sense to separate the ignored packages from ones you want to upgrade manually to keep the stuff you care about in its own easy to see section, but that also adds complexity that isn't really needed. Thanks for contributing those changes!
This story can be closed unless anyone else feels like having separate lists would be beneficial.


为什么使用tool的时候老是出问题

前置确认

[X] 我确认我运行的是最新版本的代码，并且安装了所需的依赖，在FAQS中也未找到类似问题。

⚠ 搜索issues中是否已存在类似问题

[X] 我已经搜索过issues和disscussions，没有跟我遇到的问题相关的issue

操作系统类型?
Linux
运行的python版本是?
python 3.10
使用的chatgpt-on-wechat版本是?
Latest Release
运行的channel类型是?
wx(个人微信, itchat)
复现步骤 🕹
$tool 使用meteo 查明天上海的天气，
模型日志显示正常
2024-03-28 17:34:10.426 | DEBUG    | main:create_chat_completion:317 - ==== message ====
role='assistant' content='{\n    "thoughts": {\n        "text": "I will use the 'meteo' tool to get the weather information for Shanghai tomorrow.",\n        "reasoning": "The user specified that they want to check the weather in Shanghai, and the 'meteo' tool is suitable for obtaining weather information. By specifying the date, 'tomorrow', we can retrieve the weather data for that day.",\n        "criticism": "I don't have any criticism for the selection of this tool. It is appropriate for the user's request.",\n        "speak": "您好，根据您的请求，我查询了明天上海的天气预报。据API返回，明天的天气预计为多云，气温约为20℃~25℃，相对湿度约为65%~79%，风力约为3级。请注意适时增减衣物，出门在外要注意健康哦！"\n    },\n    "tool": {\n        "name": "meteo",\n        "input": "Tomorrow's date in Shanghai"\n    }\n}' name=None function_call=None
问题描述 😯
但是tool的日志显示
raise InvalidSchema(f"No connection adapters were found for {url!r}")
requests.exceptions.InvalidSchema: No connection adapters were found for "Based on the requirements and the given question, we need to construct an API URL to fetch the weather forecast for Shanghai tomorrow (the current date is 2024-03-28). Here's the complete API URL:\nbash\nhttps://api.open-meteo.com/v1/forecast?latitude=31.2304&longitude=121.4737&temperature_unit=celsius&windspeed_unit=kmh&precipitation_unit=mm&timeformat=iso8601&timezone=Asia/Shanghai&past_days=1&forecast_days=1&hourly=1\n\nThis API URL includes the required parameters:\n\n* latitude: 31.2304 (Shanghai's latitude)\n* longitude: 121.4737 (Shanghai's longitude)\n* temperature_unit: celsius (set to the unit 'celsius')\n* windspeed_unit: kmh (set to the unit 'km/h')\n* precipitation_unit: mm (set to the unit 'mm')\n* timeformat: iso8601 (set to the unit 'iso8601')\n* timezone: Asia/Shanghai (set to Shanghai's time zone)\n* past_days: 1 (set to 1 day before the requested date)\n* forecast_days: 1 (set to 1 day of the forecast)\n* hourly: 1 (set to return hourly weather details)\n\nWith this API URL, we can fetch the weather forecast for Shanghai tomorrow using the Open-Meteo API.
终端日志 📒
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/apps/victorinox.py", line 109, in ask
    return self.engine.run(query)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 205, in run
    return self(args[0])[self.output_keys[0]]
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 111, in __call__
    raise e
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 108, in __call__
    outputs = self._call(inputs)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/engine/tool_engine.py", line 184, in _call
    next_step_output = self._take_next_step(
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/engine/tool_engine.py", line 141, in _take_next_step
    observation = tool.run(
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/base_tool.py", line 75, in run
    raise e
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/base_tool.py", line 72, in run
    observation = self._run(tool_input)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/meteo/tool.py", line 39, in _run
    return self.api_chain.run(query)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 205, in run
    return self(args[0])[self.output_keys[0]]
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 111, in __call__
    raise e
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 108, in __call__
    outputs = self._call(inputs)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/api/base.py", line 81, in _call
    api_response = self.requests_wrapper.get(api_url)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/web_requests/wrapper.py", line 44, in get
    response = requests.get(url, headers=self.headers, params=params, proxies=proxies, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/sessions.py", line 697, in send
    adapter = self.get_adapter(url=request.url)
  File "/opt/conda/lib/python3.10/site-packages/requests/sessions.py", line 794, in get_adapter
    raise InvalidSchema(f"No connection adapters were found for {url!r}")
requests.exceptions.InvalidSchema: No connection adapters were found for "Based on the requirements and the given question, we need to construct an API URL to fetch the weather forecast for Shanghai tomorrow (the current date is 2024-03-28). Here's the complete API URL:\n```bash\nhttps://api.open-meteo.com/v1/forecast?latitude=31.2304&longitude=121.4737&temperature_unit=celsius&windspeed_unit=kmh&precipitation_unit=mm&timeformat=iso8601&timezone=Asia/Shanghai&past_days=1&forecast_days=1&hourly=1\n```\nThis API URL includes the required parameters:\n\n* `latitude`: 31.2304 (Shanghai's latitude)\n* `longitude`: 121.4737 (Shanghai's longitude)\n* `temperature_unit`: celsius (set to the unit 'celsius')\n* `windspeed_unit`: kmh (set to the unit 'km/h')\n* `precipitation_unit`: mm (set to the unit 'mm')\n* `timeformat`: iso8601 (set to the unit 'iso8601')\n* `timezone`: Asia/Shanghai (set to Shanghai's time zone)\n* `past_days`: 1 (set to 1 day before the requested date)\n* `forecast_days`: 1 (set to 1 day of the forecast)\n* `hourly`: 1 (set to return hourly weather details)\n\nWith this API URL, we can fetch the weather forecast for Shanghai tomorrow using the Open-Meteo API."

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/mnt/workspace/temp/chatgpt-on-wechat/plugins/tool/tool.py", line 114, in on_handle_context
    _reply = self.app.ask(query, user_session)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/apps/victorinox.py", line 113, in ask
    return self.ask(query, chat_history, retry_num + 1)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/apps/victorinox.py", line 115, in ask
    raise TimeoutError("超过重试次数")
TimeoutError: 超过重试次数
[ERROR][2024-03-28 17:34:43][tool.py:119] - 超过重试次数
[INFO][2024-03-28 17:34:43][chat_gpt_bot.py:49] - [CHATGPT] query=请你随机用一种聊天风格，提醒用户：这个问题tool插件暂时无法处理
[INFO][2024-03-28 17:34:45][wechat_channel.py:214] - [WX] sendMsg=Reply(type=TEXT, content=[bot] 嗨！看起来你想要查询明天上海的天气，对吧？不过很抱歉，当前工具插件暂时无法处理这个问题。不过你可以尝试使用其他的天气查询网站或者应用程序来获取你需要的信息哦！), receiver=@4711b29d0c9ca4e82c22f9f143efad741752157e564d3e154355aeff49723722

建议到tool插件作者仓库，反馈一下，看看是否可以解决

前置确认

[x]  我确认我运行的是最新版本的代码，并且安装了所需的依赖，在FAQS中也未找到类似问题。

⚠ 搜索issues中是否已存在类似问题

[x]  我已经搜索过issues和disscussions，没有跟我遇到的问题相关的issue

操作系统类型?
Linux
运行的python版本是?
python 3.10
使用的chatgpt-on-wechat版本是?
Latest Release
运行的channel类型是?
wx(个人微信, itchat)
复现步骤 🕹
$tool 使用meteo 查明天上海的天气， 模型日志显示正常 2024-03-28 17:34:10.426 | DEBUG | main:create_chat_completion:317 - ==== message ==== role='assistant' content='{\n "thoughts": {\n "text": "I will use the 'meteo' tool to get the weather information for Shanghai tomorrow.",\n "reasoning": "The user specified that they want to check the weather in Shanghai, and the 'meteo' tool is suitable for obtaining weather information. By specifying the date, 'tomorrow', we can retrieve the weather data for that day.",\n "criticism": "I don't have any criticism for the selection of this tool. It is appropriate for the user's request.",\n "speak": "您好，根据您的请求，我查询了明天上海的天气预报。据API返回，明天的天气预计为多云，气温约为20℃~25℃，相对湿度约为65%~79%，风力约为3级。请注意适时增减衣物，出门在外要注意健康哦！"\n },\n "tool": {\n "name": "meteo",\n "input": "Tomorrow's date in Shanghai"\n }\n}' name=None function_call=None
问题描述 😯
但是tool的日志显示 raise InvalidSchema(f"No connection adapters were found for {url!r}") requests.exceptions.InvalidSchema: No connection adapters were found for "Based on the requirements and the given question, we need to construct an API URL to fetch the weather forecast for Shanghai tomorrow (the current date is 2024-03-28). Here's the complete API URL:\nbash\nhttps://api.open-meteo.com/v1/forecast?latitude=31.2304&longitude=121.4737&temperature_unit=celsius&windspeed_unit=kmh&precipitation_unit=mm&timeformat=iso8601&timezone=Asia/Shanghai&past_days=1&forecast_days=1&hourly=1\n\nThis API URL includes the required parameters:\n\n* latitude: 31.2304 (Shanghai's latitude)\n* longitude: 121.4737 (Shanghai's longitude)\n* temperature_unit: celsius (set to the unit 'celsius')\n* windspeed_unit: kmh (set to the unit 'km/h')\n* precipitation_unit: mm (set to the unit 'mm')\n* timeformat: iso8601 (set to the unit 'iso8601')\n* timezone: Asia/Shanghai (set to Shanghai's time zone)\n* past_days: 1 (set to 1 day before the requested date)\n* forecast_days: 1 (set to 1 day of the forecast)\n* hourly: 1 (set to return hourly weather details)\n\nWith this API URL, we can fetch the weather forecast for Shanghai tomorrow using the Open-Meteo API.
终端日志 📒
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/apps/victorinox.py", line 109, in ask
    return self.engine.run(query)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 205, in run
    return self(args[0])[self.output_keys[0]]
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 111, in __call__
    raise e
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 108, in __call__
    outputs = self._call(inputs)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/engine/tool_engine.py", line 184, in _call
    next_step_output = self._take_next_step(
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/engine/tool_engine.py", line 141, in _take_next_step
    observation = tool.run(
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/base_tool.py", line 75, in run
    raise e
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/base_tool.py", line 72, in run
    observation = self._run(tool_input)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/meteo/tool.py", line 39, in _run
    return self.api_chain.run(query)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 205, in run
    return self(args[0])[self.output_keys[0]]
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 111, in __call__
    raise e
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/base.py", line 108, in __call__
    outputs = self._call(inputs)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/chains/api/base.py", line 81, in _call
    api_response = self.requests_wrapper.get(api_url)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/tools/web_requests/wrapper.py", line 44, in get
    response = requests.get(url, headers=self.headers, params=params, proxies=proxies, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/conda/lib/python3.10/site-packages/requests/sessions.py", line 697, in send
    adapter = self.get_adapter(url=request.url)
  File "/opt/conda/lib/python3.10/site-packages/requests/sessions.py", line 794, in get_adapter
    raise InvalidSchema(f"No connection adapters were found for {url!r}")
requests.exceptions.InvalidSchema: No connection adapters were found for "Based on the requirements and the given question, we need to construct an API URL to fetch the weather forecast for Shanghai tomorrow (the current date is 2024-03-28). Here's the complete API URL:\n```bash\nhttps://api.open-meteo.com/v1/forecast?latitude=31.2304&longitude=121.4737&temperature_unit=celsius&windspeed_unit=kmh&precipitation_unit=mm&timeformat=iso8601&timezone=Asia/Shanghai&past_days=1&forecast_days=1&hourly=1\n```\nThis API URL includes the required parameters:\n\n* `latitude`: 31.2304 (Shanghai's latitude)\n* `longitude`: 121.4737 (Shanghai's longitude)\n* `temperature_unit`: celsius (set to the unit 'celsius')\n* `windspeed_unit`: kmh (set to the unit 'km/h')\n* `precipitation_unit`: mm (set to the unit 'mm')\n* `timeformat`: iso8601 (set to the unit 'iso8601')\n* `timezone`: Asia/Shanghai (set to Shanghai's time zone)\n* `past_days`: 1 (set to 1 day before the requested date)\n* `forecast_days`: 1 (set to 1 day of the forecast)\n* `hourly`: 1 (set to return hourly weather details)\n\nWith this API URL, we can fetch the weather forecast for Shanghai tomorrow using the Open-Meteo API."

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/mnt/workspace/temp/chatgpt-on-wechat/plugins/tool/tool.py", line 114, in on_handle_context
    _reply = self.app.ask(query, user_session)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/apps/victorinox.py", line 113, in ask
    return self.ask(query, chat_history, retry_num + 1)
  File "/opt/conda/lib/python3.10/site-packages/chatgpt_tool_hub/apps/victorinox.py", line 115, in ask
    raise TimeoutError("超过重试次数")
TimeoutError: 超过重试次数
[ERROR][2024-03-28 17:34:43][tool.py:119] - 超过重试次数
[INFO][2024-03-28 17:34:43][chat_gpt_bot.py:49] - [CHATGPT] query=请你随机用一种聊天风格，提醒用户：这个问题tool插件暂时无法处理
[INFO][2024-03-28 17:34:45][wechat_channel.py:214] - [WX] sendMsg=Reply(type=TEXT, content=[bot] 嗨！看起来你想要查询明天上海的天气，对吧？不过很抱歉，当前工具插件暂时无法处理这个问题。不过你可以尝试使用其他的天气查询网站或者应用程序来获取你需要的信息哦！), receiver=@4711b29d0c9ca4e82c22f9f143efad741752157e564d3e154355aeff49723722

我都放弃使用了.


Change event handlers from pointer{down,move,up} to mouse{down,move,up}

For some reason (I have no idea why, I'm not clever enough to understand the distinction given the docs1 yet), my browser won't pass along right-click or middle-click events, only left-click.
I have no earthly idea what's causing this but this change appears to fix it. It needs some review from someone who actually understands the moving parts and implications of this change beyond the specifc bug I'm solving for.

Oh that's interesting, I might play with this a bit first.

I did more digging to rule out other things. Here's a state update:

I was able to reproduce this with a totally fresh Chrome -- started using google-chrome --user-data-dir=trashme, which was a new directory.
I was able to reproduce this with Firefox locally
I tried playing with the context menu event propagation; no impact on behavior

It reproduces using a minimal reproducer for both an event listener on body and a div. here's the code I was using
<!DOCTYPE html>

    <meta charset="utf-8">

I was unable to reproduce on a different XPS. I rebooted the affected machine, and the issue went away - behavior is normal again.
 I have to imagine this is somehow a recent GNOME update that got weird because I hadn't logged out and back in since the update, or something. I'm very very confused and disturbed.

Possibly touchscreen input libraries?


compatible with meteor?

When trying to use formidable 1.0.14 with meteor <IP_ADDRESS> I get the following error
=> Errors prevented startup:

While building the application:
node_modules/formidable/test/tools/base64.html:1: bad formatting in HTML template

=> Your application has errors. Waiting for file change.

I wondering, if the two components are supposed to be working together, or if I'm completely on a wrong track here. Since fileupload is not built into meteor yet, formidable would come in quite handy.

open question in meteor if you have further questions


Fix inline Popover content taking up space

Fixes

Fixes popover wonkiness on iOS outlined here: https://github.com/WordPress/openverse-frontend/pull/850#pullrequestreview-879636906
Description

Testing Instructions

Checklist

[ ] My pull request has a descriptive title (not a vague title like Update index.md).
[ ] My pull request targets the default branch of the repository (main) or a parent feature branch.
[ ] My commit messages follow best practices.
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@dhruvkb I think you'll need to merge this into your branch yourself if you want it :slightly_smiling_face: Or else we'll need a second person to approve this interstitial PR :stuck_out_tongue:


On Pubsites, can't leave a rating - many instances are gone

https://redmatrix.me/pubsites
Many instances are gone, so I would like to mark them as such or leave a rating to say so, but I can't see a way or someone to contact about this.

Ratings can be made by any member, and can be made from the /pubsites page of their own hub. If for some reason ratings are not available on your own hub you can visit
<EMAIL_ADDRESS>replace<EMAIL_ADDRESS>with your actual webbie/reddress,

So there is no way for me to leave low ratings for dead instances, or otherwise mark them as dead?

Sure there is. See my previous comment. If the issue is that you are not a member, we do not allow ratings from unknown people as we are not friendly to spammers.

@Cassolotl This issue is closed because Redmatrix evolved into Hubzilla. When this is still an issue in the most recent version of Hubzilla, please recreate this issue over there. We're sorry for any inconvenience this will maybe give you.


fix: only scan pkgDirs when merging non-decomposed MD

What does this PR do?
Updates NonDecompositionFinalizer to only scan the package directories in a DX project when merging non-decomposed metadata.
If the defaultDirectory passed to finalize isn't a package dir it will ignore it.
See: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_mpd.htm
What issues does this PR fix or reference?
https://github.com/forcedotcom/cli/issues/1540
@W-11186731@
Functionality Before
NonDecompositionFinalizer scans components in root project dir which causes issues when components are found in other folders (mdapi, etc).
Functionality After
NonDecompositionFinalizer will only scan components found inside of package directories, if the finalizer gets a defaultDirectory that's not a package it will threat it as the target output dir for a transformation and not scan it.

QA Notes

✅ : issue repository/steps now mdapi:converts CustomLabels
✅ : ignores MPD CLs correctly


Unhandled error during execution of scheduler flush

Version
3.0.2
Reproduction link
https://7xfqw.csb.app/
Steps to reproduce
Select the Bar tab in the reproduction example.
What is expected?
Display the activated slot.
What is actually happening?
Failure with error...
Cannot read property 'type' of undefined
    at patchBlockChildren (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3615:34
    at processFragment (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3656:9
    at patch (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3391:9
    at patchBlockChildren (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3616:7
    at patchElement (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3597:7
    at processElement (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3464:7
    at patch (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3395:11
    at componentEffect (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:3815:9
    at reactiveEffect (https://7xfqw.csb.app/node_modules/
vue/reactivity/dist/reactivity.esm-bundler.js:235:16
    at callWithErrorHandling (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:780:32
    at flushJobs (https://7xfqw.csb.app/node_modules/
vue/runtime-core/dist/runtime-core.esm-bundler.js:957:9

This tab component used to work, but is broken now. Any help would be greatly appreciated..

Your Tabs component is empty. If you provide a boiled down repro we can take a look

Remember to use the forum or the Discord chat to ask questions!

sorry @posva I've updated with a working link


Parse namespaces, types aliases, and ambient declarations only when they cannot be legal JS

Fixes #2995.
Previously, upon encountering a module, namespace, type or declare keyword, we would immediately launch into parsing out an "appropriate" declaration.
However, this is inappropriate for reasons listed in issue #2995. These could actually be identifiers. To deal with this, we ensure that what we have is not legal JavaScript by adding a single token lookahead and checking if that token is an appropriate token on the same line.

Any more feedback @CyrusNajmabadi

Nope.  lgtm

:+1:


New Authentication (with Cloudflare)

I'm currently getting this one

I get the same message above.

Got the same with @galligan above.
Dumping the HTML response from OpenAI and got something like this

which seems to be a ddos protection system.

https://github.com/acheong08/ChatGPT/wiki/Setup it seems like CloudFlare protection was added and cf_clearance needs to be set in request's cookies

I've been working within my own fork to try getting things working, but it appears that just by simply adding cf_clearance as a cookie to the session endpoint won't let me through - I've matched my user agent to Firefox and Edge when trying using either browser, and while my browser can get in regardless, my bot can't seem to with the existing environment. This may need some extra work to try to mimic a valid context for CloudFlare to accept us.

I've been working within my own fork to try getting things working, but it appears that just by simply adding cf_clearance as a cookie to the session endpoint won't let me through - I've matched my user agent to Firefox and Edge when trying using either browser, and while my browser can get in regardless, my bot can't seem to with the existing environment. This may need some extra work to try to mimic a valid context for CloudFlare to accept us.

I think use python undetected_chromedriver is a good way to solve the problem. But exactly how to write the code, I'm not sure.

I've been working within my own fork to try getting things working, but it appears that just by simply adding cf_clearance as a cookie to the session endpoint won't let me through - I've matched my user agent to Firefox and Edge when trying using either browser, and while my browser can get in regardless, my bot can't seem to with the existing environment. This may need some extra work to try to mimic a valid context for CloudFlare to accept us.

I think use python undetected_chromedriver is a good way to solve the problem. But exactly how to write the code, I'm not sure.

I don't feel that's an efficient approach, you'd be better off writing the rest of the bot in Python too if you take that route. This library is pure Go so far, and the implementation already has an existing method of pulling tokens using Playwright to pop open a web browser and automate it. That browser instance could potentially be leveraged to automate pulling the tokens in similar ways to how other clients are doing it such as the node.js and Python clients, but in the end this still relies on a working implementation of the cf_clearance token and anything else CloudFlare may now be fingerprinting and detecting. Which is something those other clients didn't need to worry about because their base HTTP clients just work still.
Even then, without using the web browser to automate pulling the tokens, using a predefined session token cookie and CloudFlare clearance cookie should suffice for the manner I'm using my fork of the package in. The way I'm using the underlying ChatGPT package isn't any different to how the Telegram bot is interacting with it, so once the underlying package can actually connect to ChatGPT again with the appropriate environment, then it'll be possible to start automating the pulling of tokens using the web browser again the same way it already is.

So, any work around so far?

any solution based on openai API?

any solution based on openai API?

This is what I am exploring on my side as well, just don't have enough time.
https://github.com/fxchen/SlackGPT/blob/main/functions/gpt_request.ts is how 1 Slack employee was able to hook up ChatGPT into Slack. https://twitter.com/frankc/status/1602374528897675264 So I think it should be doable? Not quite sure if the model's name is correct there, need some testing.

he uses a generated api key from openai, not the session token from browser cookies. or is there no difference? https://github.com/fxchen/SlackGPT/blob/main/functions/gpt_request.ts

Ah so the path of using the /completion API gets a lot better. I found out about https://beta.openai.com/playground/p/default-chat?lang=curl and realize that you need to send part of the chat history within the prompt. That would provide the AI needed context to continue the conversation.
However, the prompt size is limited at 4000(input and output inclusive) for free account. It's essentially counted per "token" https://openai.com/api/pricing/. So the richer the context, the longer the input prompt, the more expensive it is to use. With a free account, you probably want to set max_tokens to no more than 1000 tokens and leave 3000 tokens for the output?

Ah so the path of using the /completion API gets a lot better. I found out about https://beta.openai.com/playground/p/default-chat?lang=curl and realize that you need to send part of the chat history within the prompt. That would provide the AI needed context to continue the conversation.
However, the prompt size is limited at 4000(input and output inclusive) for free account. It's essentially counted per "token" https://openai.com/api/pricing/. So the richer the context, the longer the input prompt, the more expensive it is to use. With a free account, you probably want to set max_tokens to no more than 1000 tokens and leave 3000 tokens for the output?

**OpenAI API**An API for accessing new AI models developed by OpenAI

 OpenAI**Pricing**OpenAI is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity.

API usage is too expensive. And only 18$ is free. So we need to find a way to permanently access it for free.

maybe thinking outside the box here but maybe we could use FlareSolverr to get around the cloudflare issue. https://github.com/FlareSolverr/FlareSolverr
If I get a bit of spare time next week I'll look to see if i can offer a pull request to integrate this as an option.

Use this head to avoid robot detection
puppeteerArgs := []string{"--no-sandbox",
	"--disable-setuid-sandbox",
	"--disable-infobars",
	"--disable-dev-shm-usage",
	"--disable-blink-features=AutomationControlled",
	"--ignore-certificate-errors",
	"--no-first-run",
	"--no-service-autorun",
	"--password-store=basic",
	"--system-developer-mode",
	// the following flags all try to reduce memory
	// "--single-process",
	"--mute-audio",
	"--disable-default-apps",
	"--no-zygote",
	"--disable-accelerated-2d-canvas",
	"--disable-web-security",
	// "--disable-gpu"
	// "--js-flags="--max-old-space-size=1024""
}

waiting for release with fix/feature (for docker) :)

Use this head to avoid robot detection
args := []string{"--no-sandbox",
	"--disable-setuid-sandbox",
	"--disable-infobars",
	"--disable-dev-shm-usage",
	"--disable-blink-features=AutomationControlled",
	"--ignore-certificate-errors",
	"--no-first-run",
	"--no-service-autorun",
	"--password-store=basic",
	"--system-developer-mode",
	// the following flags all try to reduce memory
	// "--single-process",
	"--mute-audio",
	"--disable-default-apps",
	"--no-zygote",
	"--disable-accelerated-2d-canvas",
	"--disable-web-security",
	// "--disable-gpu"
	// "--js-flags="--max-old-space-size=1024""
}

Where to add it at macos?

Use this head to avoid robot detection
args := []string{"--no-sandbox",
	"--disable-setuid-sandbox",
	"--disable-infobars",
	"--disable-dev-shm-usage",
	"--disable-blink-features=AutomationControlled",
	"--ignore-certificate-errors",
	"--no-first-run",
	"--no-service-autorun",
	"--password-store=basic",
	"--system-developer-mode",
	// the following flags all try to reduce memory
	// "--single-process",
	"--mute-audio",
	"--disable-default-apps",
	"--no-zygote",
	"--disable-accelerated-2d-canvas",
	"--disable-web-security",
	// "--disable-gpu"
	// "--js-flags="--max-old-space-size=1024""
}

excuse me, where to add it at windows? thx

is it work with adding origin and referer headers?

Error: Couldn't get access token: failed to decode response: invalid character '<' looking for beginning of value
please help!

The only way to get cf_clearance is via a browser right now. If it's not possible in Go, you can try out an API server https://github.com/ChatGPT-Hackers/ChatGPT-API-server which allows you to interact with it in any language. It's a lot more of a hassle though

`func launchBrowser(pw *playwright.Playwright, url string, headless bool) (playwright.BrowserContext, playwright.Page, error) {
args := []string{"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-infobars",
"--disable-dev-shm-usage",
"--disable-blink-features=AutomationControlled",
"--ignore-certificate-errors",
"--no-first-run",
"--no-service-autorun",
"--password-store=basic",
"--system-developer-mode",
// the following flags all try to reduce memory
// "--single-process",
"--mute-audio",
"--disable-default-apps",
"--no-zygote",
"--disable-accelerated-2d-canvas",
"--disable-web-security",
// "--disable-gpu"
// "--js-flags="--max-old-space-size=1024""
}
browser, err := pw.Chromium.LaunchPersistentContext("/tmp/chatgpt", playwright.BrowserTypeLaunchPersistentContextOptions{
Headless: playwright.Bool(headless),
Args:     args,
})
if err != nil {
return nil, nil, errors.New(fmt.Sprintf("Couldn't launch headless browser: %v", err))
}
page, err := browser.NewPage()
if err != nil {
return nil, nil, errors.New(fmt.Sprintf("Couldn't create a new tab on headless browser: %v", err))
}
if _, err = page.Goto(url); err != nil {
	return nil, nil, errors.New(fmt.Sprintf("Couldn't open website: %v", err))
}

return browser, page, nil

}inchatgpt-telegram\src\session\session.goandgo buildnow you can get a token through the browser but the bot still doesn't workError: Couldn't get access token: failed to decode response: invalid character '<' looking for beginning of value`

There needs to be TLS fingerprint spoofing.

Hmm.. I think its more efficient to write the rest of the bot in Python because the library is in Go and there's already a method in place for pulling tokens using Playwright. However, using a predefined session token cookie and CloudFlare clearance cookie should be sufficient for the intended use of the ChatGPT package. Once the bot can connect to ChatGPT again, the process of pulling cookies can be automated through the web browser.

Hmm.. I think its more efficient to write the rest of the bot in Python because the library is in Go and there's already a method in place for pulling tokens using Playwright. However, using a predefined session token cookie and CloudFlare clearance cookie should be sufficient for the intended use of the ChatGPT package. Once the bot can connect to ChatGPT again, the process of pulling cookies can be automated through the web browser.

If you're gonna be writing it in Python, https://github.com/acheong08/ChatGPT is once again functional. Still waiting for async support though. (Note that Python requests will not work due to TLS fingerprinting. TLS-Client will be needed instead which doesn't have async functionality)

a single image and no caption or explanation is not much helpful, what is this for and and are you/we gonna do with it?

what is this for and how are you/we gonna do with it?

From the picture, you can deduce that Python is being used and undetected_chromedriver is used to get cf_clearance. However, that no longer works due to TLS fingerprinting

You can check out https://github.com/Danny-Dasilva/CycleTLS for implementing JA3 spoofing in Go. (Though I'm unsure of what can be used as a selenium alternative)

Here is how the new bot protection system works:
Layer 1: Cloudflare sends JavaScript challenges that must be done in a browser (Requires something like selenium -- Unsure of alternatives for Go)
Layer 2: Cloudflare assigns a cf_clearance cookie which you have to use for subsequent requests. It is tied to your IP address and user agent. If any of those change, it becomes invalid.
Layer 3: OpenAI uses JA3 fingerprints and rate limits you if that is incorrect (Can use CycleTLS)

any solution?

Is there a solution for linux?

https://track.duti.tech/resources/chatgpt/
You can find some of the currently working libraries and APIs there.

Error: Couldn't get access token: failed to decode response: invalid character '<' looking for beginning of value
please help!

Error: Couldn't get access token: failed to decode response: invalid character '<' looking for beginning of value please help!

Same here! :(
has someone found a workaround yet??

@acheong08 I calculated the consumption of API vs ChatGPT Pro account. ChatGPT Pro is cheaper than API 😄

@acheong08 I calculated the consumption of API vs ChatGPT Pro account. ChatGPT Pro is cheaper than API smile

Due to a bug, the API is currently free if you don't use playground

And do note that ChatGPT Pro is still subject to extreme rate limits

Hello there :) I implemented a different way to run the project. It's my fork (https://github.com/peacecwz/chatgpt-telegram) Export your ChatGPT cookie as JSON and add it into the project as 'cookies.json' I also wrote a technical post about that

 GitHub**GitHub - peacecwz/chatgpt-telegram: Run your own GPTChat Telegram bot, with a single command!**Run your own GPTChat Telegram bot, with a single command! - GitHub - peacecwz/chatgpt-telegram: Run your own GPTChat Telegram bot, with a single command!

Hey ya, thanks for doing this, however i followed what you said, the chromium browsers pops up, validates through cloudfare for a moment and it closes with no updates given on the terminal, what could be the issue for this?

So i restarted the computer and it stopped crashing immediately. now it is in an endless loop and after awhile the chromium browser disappears with no updates on the terminal

I stand corrected on the above, now it starts crashing immediately again...

@permblackshark could u guide me to where i can rectify this to make the fix locally? :)

@permblackshark It's not bug it is a feature 😄 I also wrote it in Readme. You should define COOKIE_FILE in .env. If you add cookie.json file into root of project. I just need to define COOKIE_FILE=cookies.json I didn't rewrite everything. It's using already implemented structure

@peacecwz do i need the full path for the cookies.json?

@peacecwz Can't open issue in your repo

i followed everything step by step however i still cannot get it to work.. :/

@GchinoD @permblackshark Sorry. I didn't enable issues when I was forking the project. I would like to help. I'll record simple gif how to setup all things

I'm currently getting this one

Waiting for solutions got same issue here.

@peacecwz so i tried it on my windows machine. Good news the browser did not crash when it is authenticating cloudflare, bad news, its stucked in a loop, keeps asking me to verify i am human

this is printed on the console when the loop happened
"Failed to load resource: the server responded with a status of 401 ()"

Hi, checking back on this if there are any updates? thanks! :)

Proxy requests through a plus account
https://github.com/acheong08/ChatGPT-Proxy-V4

anything we can do with a standard account?
but thanks for the suggestion! @acheong08

It only needs a single plus account to bypass cloudflare for all free accounts. Current running server: https://bypass.churchless.tech/api/conversation

I have been running different bypass servers for over a month now and it has been working well with V1 of https://github.com/acheong08/ChatGPT

hmm @acheong08 I did the go install but it's throwing me this error "repository not found"

You can try building it locally with go build

im getting this when i did a local go build

Windows not properly supported. OS signals are required for graceful restarts

so how should i rectify this? sorry, not very familiar

Check out the windows branch https://github.com/acheong08/ChatGPT-Proxy-V4/tree/windows

Thanks @acheong08 i can build it now.

I have no idea how in Windows.
In Linux, it's export VAR_NAME="VAR_VAL"

Thanks @acheong08 i can build it now.

May be SET VAR_NAME=

so after i have set the environment, i just run the initial from @peacecwz ?

You change the URL to where you're hosting it and then just run this repo I think

any dumb question @acheong08 where do i get the token or puid from? is it the chatgpt api token?

Cookie

erm @acheong08 where do i change the url? and i followed this repo (https://github.com/peacecwz/chatgpt-telegram) to set up to use chatgpt bot for telegram. For your repo, is it possible?

I see that this repo uses Playwright. You'll need to remove that code and just replace all the chat.openai.com with your bypass server (For example, mine is bypass.churchless.tech)

@acheong08 i have managed to get it to run, but when i tried the bot on my telegram, i get this error though *Error: Couldn't get access token: unauthorized"
Do u have any idea which access token it is talking about?

https://chat.openai.com/api/auth/session

@acheong08 so i used the token above and i go run make.go for your repo, and i get error failed to refresh puid cookie
Can i verify the steps i need to do.

set token
run go from your repo
run go from the tg bot repo

is that correct?

so i used the token above and i go run make.go for your repo, and i get error failed to refresh puid cookie

Did you set export PUID="..."?

run go from your repo
run go from the tg bot repo

You need to fork their repos and make some changes

@acheong08 yup i made the changes already. Is it puid or access token?

PUID for the proxy and access token for both

Ah where do i get the PUID?

Cookies of plus account

_puid

Im sorry. I think im still confused. So i would need a plus account for this to work?

One plus account for many free accounts to use without cloudflare

You can actually just set the URL to my public proxy https://bypass.churchless.tech/api/conversation

You don't have to host it yourself. It just has rate limits of 5 requests / 10 seconds

So with yours i do not need the PUID?

yes

@acheong08 ok so do I need to change the url link on the main.go file to this: https://bypass.churchless.tech/api/conversation?
How about headers? those are https://chat.openai.com/chat
And also where can i get the PUID of your public proxy?
Anw, really appreciate alot for this help!

And also where can i get the PUID of your public proxy?

It injects it automatically. You don't need to worry about it

ok so do I need to change the url link on the main.go file to this:

Yes and remove all the puppeteer stuff unless used for login

How about headers? those are chat.openai.com/chat

Ignore them. Don't need to touch it

i followed the above @acheong08, i got the 405 Method Not Allowed and failed to refresh puid cookie

i followed the above @acheong08, i got the 405 Method Not Allowed and failed to refresh puid cookie

I mean you don't need to run my repo. Just modify the code of this repo

ah, but im still getting the unauthorised error when i run this repo with the edits to your proxy
https://github.com/peacecwz/chatgpt-telegram

Is your access token correct?

I would think so. I coppird the access token part from the link u gave me.