Fix unstable sound level

Explanation of Change
The logic responsible for proper mute and unmute functionality has been implemented, eliminating audio instability issues on mobile devices.
Fixed Issues
$ https://github.com/Expensify/App/issues/52858
$
PROPOSAL:
Tests

Open any chat.
Send a video.
Play the video.
Adjust the volume several times.

Expected behavior:
The volume remains at the level it was set to.

[x] Verify that no errors appear in the JS console

Offline tests
unnecessary
QA Steps
Same as tests

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/3d74e303-3b27-4bfc-8ca0-018fa7543d5a

Android: mWeb Chrome
https://github.com/user-attachments/assets/437fd5ed-efb9-4712-91ab-83148de0b551

iOS: Native
https://github.com/user-attachments/assets/2170afbb-4f3d-4000-b36b-45270aa65a35

iOS: mWeb Safari
https://github.com/user-attachments/assets/15f2460e-a25d-4783-a0b5-3c7ad492f2d4

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/ddf6c8f1-91a9-401a-9877-a4e05de29868

MacOS: Desktop
https://github.com/user-attachments/assets/07875d07-0c4b-42f6-bed3-9638f9f8122d

cc: @Skalakid @blazejkustra

@hungvu193 Please check out the original PR that caused this issue. The idea was to implement it similarly to how youtube works, and remove the faulty code and refs completely

Thanks for the context. I'll take a looj

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] For any bug fix or new feature in this PR, I verified that sufficient unit tests are included to prevent regressions in this flow.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/908ba82c-7712-41f3-b958-bfe4c5f7fd09

Android: mWeb Chrome

Uploading mWeb.mov.....

iOS: Native

https://github.com/user-attachments/assets/77e68207-44c5-4c45-b1e5-8d998b126d2d

iOS: mWeb Safari

https://github.com/user-attachments/assets/589899b5-c6af-4522-bafe-cace7f9e499a

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/0532c0c1-3261-4166-9f81-5d6e02cb0a2d
https://github.com/user-attachments/assets/fc9afae6-dea9-4d8e-9da4-48013e2d6370

MacOS: Desktop

https://github.com/user-attachments/assets/758d3b80-f23d-4ba3-be9d-fc44a3da5fbd

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


Echo output is always 16bit per channel

The echo node converts the input to 16 bit, which is understandable to create the information bandwidth for the effect to work well, but maybe it should convert back to the original input, or have an override option.

Hi, Echo only really achieves the desired result when using 16 (or 32) bit and I really don't want to put a ChangeFormat node inside. So I'd suggest to to "just" use ChangeFormat afterwards or check out ComputeFeedback which can produce similar effects.


Inaccurate KO% and statistics

In the following case, the KO% calculation is wrong and the percentiles are different from my report
grafana

report

versions:
Gatling 3.3.1
Grafana 7.1.3
Influx 1.8.1

Just found out that Percentiles difference are Gatling's issue while writing metrics in to InfluxDB
But anyway, the KO% calculation needs to be altered here


[BEAM-9185] Publish pre-release python artifacts (RCs) to PyPI

Please add a meaningful description for your change here

Both RC tagged and non-RC artifacts are built from a release candidate commit tag on the release branch, using workflow build_wheels on Github actions.
Script deploy_release_candidate_pypi.sh downloads the RC artifacts from the commit tag on the release branch and uploads to pypi as a pre-release.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @tvalentyn Would you be able to review this?

Thanks, this LGTM. Please work with the current release manager to iron out with any rough edges during first usage of the script.

In the 2.29.0 release I noticed that the _rc version of the artifacts was not built in https://github.com/apache/beam/actions/runs/742169034 or anyhow the script filters out the 5 artifacts that are there.
On the other hand, the non-_rc artifacts worked well and they are found on GCS and staged in dist.apache.org
I wonder if it is because the RC tag no longer resides on the release branch?

Closing the loop here, it was simply that the GHA definitions were not on the release branch / rc tag.


kube-events: Do not announce on update events when no change

If we receive an update on a Kubernetes event, but the objects are the same - do not send announcements.

Affected area:

New Functionality      [ ]
Documentation          [ ]
Install                [ ]
Control Plane          [ ]
CLI Tool               [ ]
Certificate Management [ ]
Networking             [ ]
Metrics                [ ]
SMI Policy             [ ]
Security               [ ]
Tests                  [ ]
CI System              [ ]
Performance            [ ]
Other                  [ ]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project? If so, did you notify the maintainers and provide attribution?

Codecov Report

Merging #2045 (adaaadd) into main (649a97d) will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #2045      +/-   ##
==========================================
- Coverage   57.32%   57.30%   -0.03%
==========================================
  Files         139      139
  Lines        5692     5694       +2
==========================================
  Hits         3263     3263
- Misses       2426     2428       +2
  Partials        3        3

Impacted Files
Coverage Δ

pkg/kubernetes/event_handlers.go
63.63% <0.00%> (-4.11%)
:arrow_down:

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 649a97d...adaaadd. Read the comment docs.

Shelving this PR for now!


Use test cluster chart for cert rollout testing

What this PR does / why we need it
Checklist

[ ] Update changelog in CHANGELOG.md.

Trigger e2e tests

/run cluster-test-suites

/run cluster-test-suites


Stadanlone publishing source files bugs

Description
1.) Publishing "render" family from standalone publisher will remove source file if PREVIEW is not checked in standalone publisher.
2.) Existence of source filepaths is not validated at any point. It is possible that first plugin that find out not existing files from standalone publisher in IntegrateNew.
To Reproduce
1.) Try publish batch mov in standalone publisher without PREVIEW (PR https://github.com/pypeclub/pype/pull/1101 if not merged yet).
2.) Remove/rename source file after clicking on Publish in standalone publisher tool. May happend when 1.) happens and publish gui is refreshed.
[cuID:PYPE-1151]

I couldnt reproduce first point.


[Flaky test fix]: Wait for server connection to end

Hopefully this fixes the flakyness of the TestUnixDomainSocket test.
Fixes https://github.com/aspnet/AspNetCore-Internal/issues/2614

@aspnet-hello triage https://dev.azure.com/dnceng/public/_build/results?buildId=226766

This comment was made automatically. If there is a problem contact<EMAIL_ADDRESS>I've triaged the above build. I've created/commented on the following issue(s)
https://github.com/aspnet/AspNetCore-Internal/issues/2667

@aspnet-hello triage https://dev.azure.com/dnceng/public/_build/results?buildId=226767

This comment was made automatically. If there is a problem contact<EMAIL_ADDRESS>I've triaged the above build. I've created/commented on the following issue(s)
https://github.com/aspnet/AspNetCore-Internal/issues/1979


Added Whitelist for /compose/local/ based on issue #1321

Something in the file above ignores the /compose/local directory, which is not an expected pattern. Barring a reasonable explanation or modification of the above rules, this whitelists that folder. See issue #1321.

@markliederbach thank you very much! When I was working on the PR recently, I forgot to make those changes to .gitignore and wondered, why in the world the ./compose/local/ gets ignored :) Yep, sometimes silly mistakes manage to find their way out.

@webyneter Happy to help!


Add support for response factory verification. Fixes #11

This requires the next pact-jvm release for 4.1.x and 4.2.x (tentatively 4.1.25 and 4.2.10 respectively). These are currently being tested against locally published versions of the pact-jvm library.
Note that broker tests are currently failing due to https://github.com/pact-foundation/pact-jvm/commit/b44e8d4be512fa645c592c6c0f438609b349c419#r55245309 -- but this should be fixed before the pact-jvm release goes out.
The corresponding pact-jvm PR for these changes is https://github.com/pact-foundation/pact-jvm/pull/1411 -- it has already been back-ported into the 4.1.x branch: https://github.com/pact-foundation/pact-jvm/commit/af9f4948d3572c4d27b0288ed5a6f1d4a63ec750
This PR also updates the README which addresses #29

The pact-jvm releases have been published.

https://github.com/pact-foundation/pact-jvm/releases/tag/4_1_25
https://github.com/pact-foundation/pact-jvm/releases/tag/4_2_10

The pact-jvm releases have been published.

https://github.com/pact-foundation/pact-jvm/releases/tag/4_1_25
https://github.com/pact-foundation/pact-jvm/releases/tag/4_2_10

I think they messed up how broker auth is handled in these releases 😭. See the failing builds for each commit in this PR for example https://github.com/jbwheatley/pact4s/pull/54
I shouldn't have been so trigger-happy with merging the dependency updates 😬

@jbwheatley heh, well, ideally pact-jvm wouldn't release bugs... but it happens. I think they will fix it pretty fast, probably by tomorrow.


User guidance on failure loading legacy PKCS#12 files with RC2-40-CBC to be improved

When loading an encrypted key from a PKCS#12 file encrypted with legacy RC2-40-CBC - which is surprisingly common still - in any app (which internally uses the OSSL_STORE API meanwhile) the user is confronted with, e.g.,
Could not read any key of TLS client credentials from test.p12
C077C059F07F0000:error::asn1 encoding routines:(unknown function):wrong tag:crypto/asn1/tasn_dec.c:1135:
C077C059F07F0000:error::asn1 encoding routines:(unknown function):nested asn1 error:crypto/asn1/tasn_dec.c:698:
C077C059F07F0000:error::asn1 encoding routines:(unknown function):nested asn1 error:crypto/asn1/tasn_dec.c:630:Field=a, Type=X9_62_CURVE
C077C059F07F0000:error::asn1 encoding routines:(unknown function):nested asn1 error:crypto/asn1/tasn_dec.c:630:Field=curve, Type=ECPARAMETERS
C077C059F07F0000:error::asn1 encoding routines:(unknown function):nested asn1 error:crypto/asn1/tasn_dec.c:630:
C077C059F07F0000:error::asn1 encoding routines:(unknown function):nested asn1 error:crypto/asn1/tasn_dec.c:256:Field=value.parameters, Type=ECPKPARAMETERS
C077C059F07F0000:error::elliptic curve routines:(unknown function):d2i ecpkparameters failure:crypto/ec/ec_asn1.c:879:
C077C059F07F0000:error::elliptic curve routines:(unknown function):EC lib:crypto/ec/ec_asn1.c:1098:
C077C059F07F0000:error::elliptic curve routines:(unknown function):EC lib:crypto/ec/ec_ameth.c:442:
C077C059F07F0000:error::digital envelope routines:(unknown function):fetch failed:crypto/evp/evp_fetch.c:319:Global default library context, Algorithm (RC2-40-CBC), Properties ()
C077C059F07F0000:error::digital envelope routines:(unknown function):initialization error:crypto/evp/evp_enc.c:178:
C077C059F07F0000:error::digital envelope routines:(unknown function):keygen failure:crypto/evp/evp_pbe.c:132:
C077C059F07F0000:error::PKCS12 routines:(unknown function):pkcs12 algor cipherinit error:crypto/pkcs12/p12_decr.c:37:
C077C059F07F0000:error::PKCS12 routines:(unknown function):pkcs12 pbe crypt error:crypto/pkcs12/p12_decr.c:129:
C077C059F07F0000:error::PKCS12 routines:(unknown function):parse error:crypto/pkcs12/p12_kiss.c:87:
Unable to load key

How best could we shrink this down to something digestable for casual users such as
Could not read any key of TLS client credentials from test.p12
C077C059F07F0000:error::PKCS12 routines:(unknown function):pkcs12 rc2-40-cbc not supported:crypto/pkcs12/p12_decr.c:37:
Unable to load key

#12893 partly fixes this by removing many of the misleading error queue entries regarding failed ASN.1 parsing attempts.

#12893 meanwhile fully fixes this, together with #12857 which is already merged.

For instance,
apps/openssl pkcs12 -noout -passin pass:v3-certs -in test/certs/v3-certs-RC2.p12

now yields a to-the-point error message:
Error outputting keys and certificates
C017DE2A8B7F0000:error::digital envelope routines:(unknown function):unsupported algorithm:crypto/evp/evp_fetch.c:345:Global default library context, Algorithm (RC2-40-CBC : 66), Properties ()

As a hint to anyone coming across this thead and wondering how to still to use RC2-40-CBC on the command line:
Simply add to openssl pkcs12 the -legacy option, e.g.,
apps/openssl pkcs12 -legacy -passin pass:v3-certs -in test/certs/v3-certs-RC2.p12


Mapbox static API cannot handle polylines with question marks

Hi!
I know this is not a bug with polyline per se, but I am unsure where to open an issue for this.
I am using the Mapbox static API (https://docs.mapbox.com/api/maps/#static-images) which supports polylines as overlay.
However, sometimes my polyline contains question marks (the ? character), and it seems that the static API interprets this as the beginning of the query parameters and fails to parse a token.
One example is this one:
https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/path-4+DAF34E(_vztHoqk%5CiNnLsBaI%60FaE?g@%60DmBIi@zC%7DAfApJ)/4.814415,50.770556,14/200x220?access_token=ACCESS_TOKEN_HERE
This polyline was encoded with @mapbox/polyline, but the query responds with a 401 unauthorized as the access token is not parsed.
Are polylines allowed to have this character ? If yes, is it an issue with the static API url parser?
I'd be happy to help dig into this if needed. Thanks!

Do you have the GeoJSON coordinate string to test?

Hi Andrew, thanks for your quick reply.
I'm attaching a geojson and polyline that bug for me:
{"type":"Polygon","coordinates":[[[4.8157598069371375,50.76847957958472],[4.81359851698798,50.77093129209052],[4.815210907902724,50.77150623261801],[4.816182428500127,50.77038473891528],[4.816384792674171,50.77037559740543],[4.816934066861222,50.76957113752047],[4.8171364310353795,50.769616845839266],[4.817612341178716,50.768837581014736],[4.8157598069371375,50.76847957958472]]]}

yields
_vztHoqk\iNnLsBaI`FaE?g@`DmBIi@zC}AfApJ

which gives the following buggy Static API call:
https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/path-4+DAF34E(_vztHoqk%5CiNnLsBaI%60FaE?g@%60DmBIi@zC%7DAfApJ)/4.814415,50.770556,14/200x220?access_token=MAPBOX_TOKEN

As I mentioned, this looks to me to possibly be an internal bug to Mapbox Static API servers.

According to the polyline spec https://developers.google.com/maps/documentation/utilities/polylinealgorithm ? is the first possible character, since 0 + 63 is the ? char in ASCII, so ? is valid to appear in the encoding.
Based on that, there is no issue with this library itself.
For the second issue, which is unreleated to this library, if you replace the ? with the escaped character %3F then the Static API request works.

closing per my previous comment.

Thank you Andrew for looking into this. It's indeed a question of encoding the string correctly in my request.

Hi @andrewharvey, I replaced '?' with '%3F' however get a 404 error on doing so.
Following is the Uri without the access token
https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/path-5+f44-0.5(mu~qDqrjdHy@aBWi@i@eAgBmD_AmB%3FI%3FE%3FG%3FGBEBInCiB|AmA@AJGzCcCHEDCDAFAD%3FF%3FF@DBRPb@pBx@tCb@tAj@dBTl@RRLDR@LGHGJQBQ%3Fa@kCuH_AoD_A}Dc@yAi@aE]gC[cDYwDSkDAIEuAE_B%3F_D%3Fg@DWHk@h@e@Xo@Ju@Cu@Ss@Q[WU]Oa@IS%3FY@[Hc@V]b@Sj@Ep@%3FPB\\@^C^I\\]^sBzBaAlAwBpCW\\o@z@}@nA}BpDuAbC)/auto/500x300


tour: why go routine doesn't receive from the channel?

Context: https://tour.golang.org/concurrency/3
Change the title above to describe your issue and add your feedback here, including code if necessary
package main
import "fmt"
func channel(ch chan int) {
ch <- 3
fmt.Println(<-ch)
}
func main() {
ch := make(chan int, 2)
ch <- 1
ch <- 2
go channel(ch)
fmt.Println(<-ch)
fmt.Println(<-ch)
}
Here, I don't understand why 3 isn't printed out.

Hi,
the 3 is not printed since the main() function exits even before the channel() function has finished execution.
Hence 3 is not being printed.
If you move the println() statement from channel() to main() then you will get the 3 printed.
This is because  <-ch is blocking call and it will wait till go routine gets executed.
BR.

Thank you, understood.
So if I sleep a while at the end of main, it is likely 3 will get its chance to be printed.


GeoJsonObject: Ignore unknown properties (such as "name" used by QGIS).

Property "name" on FeatureCollection is generated by QGIS and, as a result, the GeoJSON files created by QGIS could not be loaded using this library. See attached file for an example QGIS file.
xt2-training.geojson.zip

Thank you for your PR. I just released version 1.14.


Optimise the crate generally using profiling

Making a flamegraph would be useful as well as maybe some benchmarks.

Let's call this one done for now - while optimisations will always be possible, it's at a point where it's sufficiently quick for now.


Parallel

Implements a parallel job execution for the different metrics. We lose the independent error log for the services we query but we can keep that as a debug mode only in the test suit.
Ported from #54:

[X] Parallelize update_metrics
TODO (moved to #57):
[ ] HF Radar Stations  # This is a hardcoded number in the notebook (165), is that still valid @MathewBiddle?
[ ] National Platforms  # Lots of services and should be into a separate module
[ ] NGDAC Glider Days  # Implemented but must change to glider-data-days

All looks good. Did you run through black too? More legible now. Thanks!

Yep.


[Bug]: You must be a member of an organization to use the API

Is there an existing issue for the same bug?

[X] I have checked the troubleshooting document at https://opendevin.github.io/OpenDevin/modules/usage/troubleshooting
[X] I have checked the existing issues.

Describe the bug
Running OpenDevin I get:

File "/app/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 1020, in _request
raise self._make_status_error_from_response(err.response) from None
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'You must be a member of an organization to use the API. Please contact us through our help center at help.openai.com.', 'type': 'invalid_request_error', 'param': None, 'code': 'no_organization'}}

Current OpenDevin version
This is how I started OpenDevin up:

> ➜  ~ WORKSPACE_BASE=$(pwd)/workspace
docker run -it \
    --pull=always \
    -e SANDBOX_USER_ID=$(id -u) \
    -e PERSIST_SANDBOX="true" \
    -e SSH_PASSWORD="make something up here" \
    -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
    -v $WORKSPACE_BASE:/opt/workspace_base \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name opendevin-app-$(date +%Y%m%d%H%M%S) \
    ghcr.io/opendevin/opendevin:0.6.2

Installation and Configuration
installed docker and ran the command above

Model and Agent
GPT-4o , CodeActAgent
Operating System
OSX Sonoma 14.4.1
Reproduction Steps
Run OpenDevin, select an OpenAI model, then use an organization specific key
Logs, Errors, Screenshots, and Additional Context
09:00:43 - opendevin:ERROR: agent_controller.py:136 - Error while running the agent: BadRequestError: OpenAIException - Error code: 401 - {'error': {'message': 'You must be a member of an organization to use the API. Please contact us through our help center at help.openai.com.', 'type': 'invalid_request_error', 'param': None, 'code': 'no_organization'}}
09:00:43 - opendevin:ERROR: agent_controller.py:137 - Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/litellm/llms/openai.py", line 736, in completion
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/llms/openai.py", line 695, in completion
response = openai_client.chat.completions.create(**data, timeout=timeout)  # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/openai/_utils/_utils.py", line 277, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/openai/resources/chat/completions.py", line 590, in create
return self._post(
^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 1240, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 921, in request
return self._request(
^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 1020, in _request
raise self._make_status_error_from_response(err.response) from None
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'You must be a member of an organization to use the API. Please contact us through our help center at help.openai.com.', 'type': 'invalid_request_error', 'param': None, 'code': 'no_organization'}}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 1099, in completion
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 1072, in completion
response = openai_chat_completions.completion(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/llms/openai.py", line 742, in completion
raise OpenAIError(status_code=e.status_code, message=str(e))
litellm.llms.openai.OpenAIError: Error code: 401 - {'error': {'message': 'You must be a member of an organization to use the API. Please contact us through our help center at help.openai.com.', 'type': 'invalid_request_error', 'param': None, 'code': 'no_organization'}}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/opendevin/controller/agent_controller.py", line 130, in _start_step_loop
await self._step()
File "/app/opendevin/controller/agent_controller.py", line 290, in _step
action = self.agent.step(self.state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/agenthub/codeact_agent/codeact_agent.py", line 228, in step
response = self.llm.do_completion(
^^^^^^^^^^^^^^^^^^^^^^^
File "/app/opendevin/llm/llm.py", line 217, in do_completion
resp = self._completion(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 330, in wrapped_f
return self(f, *args, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 467, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 368, in iter
result = action(retry_state)
^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 390, in
self._add_action_func(lambda rs: rs.outcome.result())
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/app/.venv/lib/python3.12/site-packages/tenacity/init.py", line 470, in call
result = fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/app/opendevin/llm/llm.py", line 197, in wrapper
resp = completion_unwrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 3415, in wrapper
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 3306, in wrapper
result = original_function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2447, in completion
raise exception_type(
^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 9989, in exception_type
raise e
File "/app/.venv/lib/python3.12/site-packages/litellm/utils.py", line 8605, in exception_type
raise BadRequestError(
litellm.exceptions.BadRequestError: BadRequestError: OpenAIException - Error code: 401 - {'error': {'message': 'You must be a member of an organization to use the API. Please contact us through our help center at help.openai.com.', 'type': 'invalid_request_error', 'param': None, 'code': 'no_organization'}}
09:00:43 - opendevin:INFO: agent_controller.py:183 - [Agent Controller 82599755-8bbd-451a-9a83-4e522150b55b] Setting agent(CodeActAgent) state from AgentState.RUNNING to AgentState.ERROR
INFO:     <IP_ADDRESS>:44618 - "GET /api/list-files?path=/ HTTP/1.1" 200 OK

I think this is more related to your API key, which you manage on your OpenAI account page, not OpenDevin.

In the webbrowser UI, the "cog wheel" in the bottom right takes you to the settings.
Did you specify there the LLM provider, model and API key?

yes @tobitege I did - and they work, but I think the API key is one generated for our work organization, so I was assuming that we needed to specify an email address, but actually now I think about it, we haven't needed that in other contexts ...

aha, have fixed it by generating a new key.  Funny, the previous key still works in our work systems, but not within OpenDevin.  Anyway, a new key generated fixes everything.  OpenAI said something about:

Project API keys have replaced user API keys.

Big thanks for your help @tobitege :-)


Update howto-mfa-getstarted.md

Minor change for consistency between the function name and the CmdLet. Changed Disable-Mfa by Disable-MFA.

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

#sign-off


"Can't create Snooze category" error

Thanks for reporting this Jeff—do you know if that account has a  folder / label called N1-Snoozed when you view it in other apps?

2 accounts, both have it:

and

hey @jweinstein thanks for the details. Were you able to use Snooze before this? did something specific trigger the issue? Or is this the first time you tried to use it and just threw the error?
Thanks!

I think it was time #1 but not 100% sure.

On Mar 3 2016, at 1:51 pm, Juan<EMAIL_ADDRESS>wrote:

hey @jweinstein thanks for the details.
Were you able to use Snooze before this? did something specific trigger the
issue? Or is this the first time you tried to use it and just threw the error?

Thanks!

—
Reply to this email directly or [view it on GitHub](https://github.com/nylas/N
1/issues/1556#issuecomment-191981096).![](https://github.com/notifications/bea
con/AAhaGqyx-WxUF9q4q3URV6fGunrimWnYks5pp1f9gaJpZM4HoucH.gif)

hmm, I see, thanks! if you open the activity window, can you send me the error returned by the API?
thanks!

Seems to be working now. Can't reproduce the issue :(

On Mar 6 2016, at 5:12 pm, Juan<EMAIL_ADDRESS>wrote:

hmm, I see, thanks! if you open the activity window, can you send me the
error returned by the API?
thanks!

—
Reply to this email directly or [view it on GitHub](https://github.com/nylas/N
1/issues/1556#issuecomment-193029093).![](https://github.com/notifications/bea
con/AAhaGkUYu_954gWS_125Qopcb7_ZhHL0ks5pq3tzgaJpZM4HoucH.gif)

ok thanks @jweinstein. I'm going to close this for now, if this happens again, let me know what error pops out in the activity window. Thanks!

Hi, I experience the same issue and it looks like insufficient permissions. I have just installed N1 via the .deb package (v0.4.14-53cd69b) on Ubuntu 15.10. I'm attaching the logs from the developer tools. It also looks like application logs cannot be created in the /tmp folder.
n1.log.txt

I'm facing the same issue

logs:
Error: Could not create Snooze category
at /Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-utils.js:56:31
From previous event:
at ModelQuery.then (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/flux/models/query.js:203:29)
at /Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-utils.js:52:8
From previous event:
at Object.createSnoozeCategory (/Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-utils.js:50:60)
at /Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-utils.js:84:26
at processImmediate [as _immediateCallback] (timers.js:383:17)
From previous event:
at Object.getSnoozeCategory (/Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-utils.js:78:6)
at /Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-utils.js:92:53
at Array.forEach (native)
at getSnoozeCategoriesByAccount (/Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-utils.js:90:14)
at new SnoozeStore (/Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/snooze-store.js:18:36)
at Object.activate (/Applications/Nylas N1.app/Contents/Resources/app.asar/internal_packages/thread-snooze/lib/main.js:9:22)
at Package.module.exports.Package.activateNow (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/package.js:295:27)
at /Applications/Nylas N1.app/Contents/Resources/app.asar/src/package.js:280:28
at Package.module.exports.Package.measure (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/package.js:189:15)
at Package.module.exports.Package.activate (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/package.js:274:14)
at PackageManager.module.exports.PackageManager.activatePackage (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/package-manager.js:605:21)
at /Applications/Nylas N1.app/Contents/Resources/app.asar/src/package-manager.js:579:29
at Config.module.exports.Config.transact (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/config.js:372:16)
at PackageManager.module.exports.PackageManager.activatePackages (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/package-manager.js:568:23)
at PackageManager.module.exports.PackageManager.activate (/Applications/Nylas N1.app/Contents/Resources/app.asar/src/package-manager.js:551:46)
at /Applications/Nylas N1.app/Contents/Resources/app.asar/src/nylas-env.js:738:34

@jweinstein, @myovchev a fix is in progress, you can follow the conversation in #1676

I'm also having this error. I do not have the snooze folders/labels or what its called. Where can I create/view those?


Gets stuck on loading, have reinstalled but still get the same fault

Also theres no way out of this to go back and reauthenticate

Fixed it - there appeared to be a few messages queued on the ChatGPT website. Cleared the history and logged out of the website and back in.


Basic demo doesn't work in Chrome

Opened https://l5ylpydyj.codesandbox.io/
Allowed geolocation
nothing happens

Works fine in Firefox

working now... sigh


Use vue-toaster inside action.js

For a project i'm using vuex actions.
Inside the .js file i get the error: TypeError: Cannot read property '$toast' of undefined
How do i solve this issue?

Hi @woutervanerp, Have you found a solution?

Nope, i stated using Vue Toastification (for Vue 3).
Which uses:
import { useToast } from 'vue-toastification'

const toast = useToast()

Awesome!
Thank you :)

Is this latest version (1.3.0) not available via Yarn? It seems only up to 1.2.2 is available, yet GitHub has up to 1.3.0.
https://www.npmjs.com/package/@meforma/vue-toaster

@jprodrigues70 can you double check the npm version?


feat(i18n): add localization support for auth flow

Problem
While integrating the new i18n feature into my app, I noticed that the authentication flow ("Sign-In With Ethereum") lacked localization support.
Solution
I added localization support to the authentication flow. I used GPT-4 to assist with the translations. Here's a link to the GPT prompt that was used. Please let me know if I missed something or if anything needs to be changed. Thank you!
Screens
❌ BEFORE: Observe that for the ko_KR locale, verification modal text is in English.
https://github.com/rainbow-me/rainbowkit/assets/1811365/da8d0d3a-a7a2-465f-afd7-75a15c6bf829
✅ AFTER: Observe that for the ko_KR locale, verification modal text is in Korean.
https://github.com/rainbow-me/rainbowkit/assets/1811365/8195a28b-12ed-4583-8d34-8f804ab7e49f

@hzhu Awesome. Thank you! Will get this tested and merged


[Bug] XINFO overflow when deleting pending message and consumer

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
version: unstable
kvrocks_version: unstable
redis_version:4.0.0
git_sha1: d2e0feb
kvrocks_git_sha1: d2e0feb
redis_mode: standalone
kvrocks_mode: standalone
os: Linux 5.14.0-162.6.1.el9_1.0.1.x86_64 x86_64
gcc_version: 11.2.1
arch_bits: 64
process_id: 1
tcp_port: 6666
uptime_in_seconds: 1444
uptime_in_days: 0
Minimal reproduce step
Here is the step using redis-cli:
~ redis-cli -h kvrocks-server -p 6666
kvrocks-server:6666> xgroup create overflow-test info-count-test $ MKSTREAM
OK
kvrocks-server:6666> xgroup createconsumer overflow-test info-count-test consumer-1
(integer) 1
kvrocks-server:6666> xinfo groups overflow-test
1)  1) "name"
    2) "info-count-test"
    3) "consumers"
    4) (integer) 1
    5) "pending"
    6) (integer) 0
    7) "last-delivered-id"
    8) "0-0"
    9) "entries-read"
   10) (nil)
   11) "lag"
   12) (integer) 0
kvrocks-server:6666> xadd overflow-test * testing overflow
"1717248597227-0"
kvrocks-server:6666> xinfo groups overflow-test
1)  1) "name"
    2) "info-count-test"
    3) "consumers"
    4) (integer) 1
    5) "pending"
    6) (integer) 0
    7) "last-delivered-id"
    8) "0-0"
    9) "entries-read"
   10) (nil)
   11) "lag"
   12) (integer) 1
kvrocks-server:6666> xreadgroup group info-count-test consumer-1 count 1 streams overflow-test >
1) 1) "overflow-test"
   2) 1) 1) "1717248597227-0"
         2) 1) "testing"
            2) "overflow"
kvrocks-server:6666> xinfo groups overflow-test
1)  1) "name"
    2) "info-count-test"
    3) "consumers"
    4) (integer) 1
    5) "pending"
    6) (integer) 1
    7) "last-delivered-id"
    8) "1717248597227-0"
    9) "entries-read"
   10) (integer) 0
   11) "lag"
   12) (integer) 1
kvrocks-server:6666> xack overflow-test info-count-test<PHONE_NUMBER>227-0
(integer) 1
kvrocks-server:6666> xinfo groups overflow-test
1)  1) "name"
    2) "info-count-test"
    3) "consumers"
    4) (integer) 1
    5) "pending"
    6) (integer) 0
    7) "last-delivered-id"
    8) "1717248597227-0"
    9) "entries-read"
   10) (integer) 0
   11) "lag"
   12) (integer) 1
kvrocks-server:6666> xgroup delconsumer overflow-test info-count-test consumer-1
(integer) 1
kvrocks-server:6666> xinfo groups overflow-test
Error: Bad integer value

The redis-cli refuses to display the response value.
So, I use telnet to run the command and got response below.
xinfo groups overflow-test
*1
*12
$4
name
$15
info-count-test
$9
consumers
:0
$7
pending
:18446744073709551615
$17
last-delivered-id
$15
1717248597227-0
$12
entries-read
:0
$3
lag
:1

What did you expect to see?
This is output from redis-cli.
redis-server:6379>xinfo groups overflow-test
1)  1) "name"
    2) "info-count-test"
    3) "consumers"
    4) (integer) 0
    5) "pending"
    6) (integer) 0
    7) "last-delivered-id"
    8) "1717249449175-0"
    9) "entries-read"
   10) (integer) 1
   11) "lag"
   12) (integer) 0

This output from telnet.
xinfo groups overflow-test
*1
*12
$4
name
$15
info-count-test
$9
consumers
:0
$7
pending
:0
$17
last-delivered-id
$15
1717249449175-0
$12
entries-read
:1
$3
lag
:0

What did you see instead?
redis-cli refuses to display the response.
kvrocks-server:6666> xinfo groups overflow-test
Error: Bad integer value

telnet get the response from kvrocks-server.
xinfo groups overflow-test
*1
*12
$4
name
$15
info-count-test
$9
consumers
:0
$7
pending
:18446744073709551615
$17
last-delivered-id
$15
1717248597227-0
$12
entries-read
:0
$3
lag
:1

Anything Else?
Hi kvrocks team,
I find the way to produce the bug during reading the PR of XPENDING #2190 .
In conversations of the PR, it's suggested to use a separate PR to solve this problem.
I want to fix the bug and add related unit tests with it.
Best Regards,
Edward
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

@LindaSummer Thanks for your detailed report.

Hi @git-hulk ,
This should be forget to update the pending_number in consumer meta.
https://github.com/apache/kvrocks/blob/d2e0feb989bd5855480deee61ebf932327e5ca93/src/types/redis_stream.cc#L351-L356
When remove consumer, the group will remove the pending count from the deleted consumer, the inconsistency emerged and may lead to overflow.
https://github.com/apache/kvrocks/blob/d2e0feb989bd5855480deee61ebf932327e5ca93/src/types/redis_stream.cc#L687-L688
https://github.com/apache/kvrocks/blob/d2e0feb989bd5855480deee61ebf932327e5ca93/src/types/redis_stream.cc#L717-L720

Thank you for your report!
If you know how to fix it, feel free to open a PR : )

Hi @PragmaTwice ,
I have opened a PR for this bugfix with related test case.
Please take a look.
Thanks very much.

@LindaSummer Thanks for your nice catch and fix.


Add Support and Installation Instructions for Fedora 40

I would like to request the addition of support for Fedora 40 in the Sysmon for Linux package. Currently, the available installation instructions only cover up to Fedora 38. As Fedora 40 is now available, it would be greatly beneficial to have Sysmon for Linux compatible with this version and to have a clear set of instructions for installation.
Current Instructions:
Fedora 37
Register Microsoft key and feed: sudo rpm -Uvh https://packages.microsoft.com/config/fedora/37/packages-microsoft-prod.rpm
Install SysmonForLinux: sudo dnf install sysmonforlinux

Fedora 38
Register Microsoft key and feed: sudo rpm -Uvh https://packages.microsoft.com/config/fedora/38/packages-microsoft-prod.rpm
Install SysmonForLinux: sudo dnf install sysmonforlinux

Request:
Please add the necessary RPM package and provide installation instructions for Fedora 40, similar to the previous versions.
Proposed Instructions for Fedora 40:
Register Microsoft key and feed: sudo rpm -Uvh https://packages.microsoft.com/config/fedora/40/packages-microsoft-prod.rpm
Install SysmonForLinux: sudo dnf install sysmonforlinux

Thank you for your attention to this matter. Your work on maintaining Sysmon for Linux is greatly appreciated.

Hi, thanks for reporting this. Next time we do a release, we will add Fedora 40 to the list.

I am also asking for a Fedora 40 build. Please, if possible release the current version for Fedora 40.

I would like to request the addition of support for Fedora 41 in the Sysmon for Linux package. With Fedora 41 soon to be released, it would be greatly beneficial to have Sysmon for Linux compatible with this upcoming version and to have clear installation instructions available.


Bluetooth Gateway and RGBW light issues

First of all, amazing project. I had no idea how complex this was going to be when I got into this. Now for the pleas of help:
I have a Tuya RGBW bulb that is bluetooth only, connecting through a bluetooth gateway. App is working fine, etc.Eventual goal is for HA to control all these with LocalTuya, but figured that wouldn't work without this working first. After running tinytua devices, I can only see the GW (and a few of the DPS, but not all). The bulb does not return anything.
I then attempted this:
import tinytuya
import time

tinytuya.set_debug(True)
gwID = "AAAAA"
lightID = "BBBBB"
lightCID = "CCCCC"
localKey = "DDDDD"
ip = "<IP_ADDRESS>"

gw = tinytuya.Device(gwID, ip, localKey)
gw.set_version(3.3)
gw.set_socketPersistent(True)

light1 = tinytuya.BulbDevice(lightID, cid=lightCID, parent=gw)

print(light1.status())

payload=light1.generate_payload(tinytuya.CONTROL, data={'1': True,'2': 0, '4': 1000, '3': 100}, gwId=gwID, devId=lightID, uid=lightCID)
light1._send_receive(payload)
time.sleep(5)
payload=light1.generate_payload(tinytuya.CONTROL, data={'1': False, '2': 0, '4': 1000, '3': 100}, gwId=gwID, devId=lightID, uid=lightCID)
light1._send_receive(payload)

Directly writing to DPS does work. Bulb turns on and off, but I can't seem to get any status off of it.
This is the output:
DEBUG:TinyTuya [1.12.0]

DEBUG:status() entry (dev_type is zigbee)
DEBUG:building command 10 payload=b'{"gwId":"AAAAAA","devId":"BBBBB","uid":"eb2133twqaqmh93d","t":"1679091603","cid":"CCCCC"}'
DEBUG:sending payload
DEBUG:payload encrypted=b'000055aa000000010000000a000000886b91e7e8fe625a4c661b84ddae8d6ffd77ce31286de3f3ab9e30fcf13184458b748e0c54753c1e0a351bd1f34b0b29f1f18addc0895fb31a8babe6f28f5cabefac518bf20cc3d19dc2bb09c5a4296be873f14362d0665f86d5f4d9b9d23eac899db678632fa34cb81ac72449a90040e2ea8d24ff7326eca63062a0c3275ac8e9a26bde2a0000aa55'
DEBUG:received data=b'000055aa000000010000000a0000002c00000001f3a0620de89c5266eccc34a2f2c93aabc3e8f0f932022f136daf839a9a3ebb7b6802cdcd0000aa55'
DEBUG:received message=TuyaMessage(seqno=1, cmd=10, retcode=1, payload=b'\xf3\xa0b\r\xe8\x9cRf\xec\xcc4\xa2\xf2\xc9:\xab\xc3\xe8\xf0\xf92\x02/\x13m\xaf\x83\x9a\x9a>\xbb{', crc=1745014221, crc_good=True, prefix=21930, iv=None)
DEBUG:raw unpacked message = TuyaMessage(seqno=1, cmd=10, retcode=1, payload=b'\xf3\xa0b\r\xe8\x9cRf\xec\xcc4\xa2\xf2\xc9:\xab\xc3\xe8\xf0\xf92\x02/\x13m\xaf\x83\x9a\x9a>\xbb{', crc=1745014221, crc_good=True, prefix=21930, iv=None)
DEBUG:decode payload=b'\xf3\xa0b\r\xe8\x9cRf\xec\xcc4\xa2\xf2\xc9:\xab\xc3\xe8\xf0\xf92\x02/\x13m\xaf\x83\x9a\x9a>\xbb{'
DEBUG:decrypting=b'\xf3\xa0b\r\xe8\x9cRf\xec\xcc4\xa2\xf2\xc9:\xab\xc3\xe8\xf0\xf92\x02/\x13m\xaf\x83\x9a\x9a>\xbb{'
DEBUG:decrypted 3.x payload='json obj data unvalid'
DEBUG:payload type = <class 'str'>
DEBUG:decoded results='json obj data unvalid'
DEBUG:ERROR Invalid JSON Response from Device - 900 - payload: "json obj data unvalid"
DEBUG:Recieved async update for wrong CID None while looking for CID None, trying again
DEBUG:status() received data=None
None
DEBUG:building command 7 payload=b'{"t":"1679091608","gwId":"AAAAAA","cid":"CCCCCC","dps":{"1":true,"2":0,"4":1000,"3":100}}'
DEBUG:sending payload
DEBUG:payload encrypted=b'000055aa000000020000000700000087332e3300000000000000000000000033709b219083dea486766b60cbd2751d4faed815b6122f7f7166dfb9fbb2891ea4c65e142da96861e27a3d752cc0f3615438a5d92eacdfcb75cf65e35e805ccc1fe087177cee5ea9e78e832291a2151d6c8f9fe518aa1e38f39f429b0dc9e1ff9bf08b5a4ce02e2e63eee5cc3b85e2ae94afd28c0000aa55'
DEBUG:received data=b'000055aa00000002000000070000000c0000000018cfc5da0000aa55'
DEBUG:received null payload (TuyaMessage(seqno=2, cmd=7, retcode=0, payload=b'', crc=416269786, crc_good=True, prefix=21930, iv=None)), fetch new one - retry 0 / 5
DEBUG:building command 7 payload=b'{"t":"1679091618","gwId":"AAAAA","cid":"CCCCC","dps":{"1":false,"2":0,"4":1000,"3":100}}'
DEBUG:sending payload
DEBUG:payload encrypted=b'000055aa000000030000000700000097332e330000000000000000000000001c474460231f7e708ab5eac41edb20a84faed815b6122f7f7166dfb9fbb2891ea4c65e142da96861e27a3d752cc0f3615438a5d92eacdfcb75cf65e35e805ccc1fe087177cee5ea9e78e832291a2151d51f8c1fdb8c13fe9834b40077d936be995838416f1503536eb8beb97af898d74bc4366caace41e46a1b4d72880df707cd68e201c0000aa55'
DEBUG:received data=b'000055aa00000003000000070000000c00000000c5591c5f0000aa55'
DEBUG:received null payload (TuyaMessage(seqno=3, cmd=7, retcode=0, payload=b'', crc=3310951519, crc_good=True, prefix=21930, iv=None)), fetch new one - retry 0 / 5

I presume this has to do with the payload not being something recognized, but I don't know how to proceed from here. Any help would be greatly appreciated.
Incidentally, the light is question is : 8W DC10-30V Tuya Bluetooth G4 LED

To make things even more weird, the bulb isn't even type A... Seems like the color is set through DP 11.
This is off the Tuya IOT API:
"result": {
"category": "dj",
"functions": [
{
"code": "switch_led",
"dp_id": 1,
"type": "Boolean",
"values": "{}"
},
{
"code": "work_mode",
"dp_id": 2,
"type": "Enum",
"values": "{"range":["white","colour","scene","music"]}"
},
{
"code": "bright_value",
"dp_id": 3,
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "temp_value",
"dp_id": 4,
"type": "Integer",
"values": "{"min":0,"max":1000,"scale":0,"step":1}"
},
{
"code": "colour_data_raw",
"dp_id": 11,
"type": "Raw",
"values": "{"maxlen":"255"}"
},
{
"code": "music_data_raw",
"dp_id": 13,
"type": "Raw",
"values": "{}"
},
{
"code": "do_not_disturb",
"dp_id": 34,
"type": "Boolean",
"values": "{}"
}
],

Hi @bnazari !  What gateway do you have?  None of the 3 I have are doing this, but someone else is also reporting that they have the same problem.  I have a couple new BLE/combo gateways coming tomorrow to try and find one which does this.
In the meantime, what happens if you set tle light ID to be the same as the CID?  So, lightCID = lightID = "CCCCC"

Hi @uzlonewolf! So I ended up with 3 of them as well. I was planning on returning anything that didn't work.
MOES ZigBee 3.0 & Bluetooth & Mesh Hub - This one registered on the Tuya app, but then I couldn't even control the bulb via the app. Did an upgrade on the firmware once I registered it. Detected as 3.4
MOES Tuya Bluetooth Gateway - Worked fine with app. Also on 3.4. Going to try again with this one.  I believe it detected only DP 34 on it. Will check again with this one as I never tried to directly send commands to the bulb.
eMylo Zigbee Hub Gateway, 2 in 1 Zigbee 3.0 Bluetooth Tuya Smart Gateway Didn't update the firmware with this one. Running 3.3. This is the only one I'm currently using.
As far as setting light ID to the the CID, it gave the same "DEBUG:decrypted 3.x payload='json obj data unvalid'" error. It gave mixed results on the DPS commands. Once it was able to turn the light on, but not off. Another run it was able to turn on and off. Having the separate DeviceID and CID seems to give consistent results.
From what I can tell, something is wonky with interpreting the payload. Going to look into that a bit more and see if it is something obvious. Good luck with your hubs tomorrow!

I need to get a hub to add to my test rig suite too.  Thanks for these links @bnazari .
@uzlonewolf I wonder if we should create a discussion or separate ZIGBEE.md doc to help capture some of the complexities, example (reference) working devices and How-Tos?

Well, the first BLE hub I ordered came in, https://www.amazon.com/dp/B09TZH95FG .  Ordered last night and it arrived 8am this morning.  Yay Amazon overnight!  Unfortunately(?) it does not throw the "unvalid" error and works just fine with the examples/zigbee_gateway.py code.
I went ahead and sniffed the app traffic anyway and interestingly the app sends command with nothing but the cid set.  When it first connects it sends a single Ethernet packet containing 3 TuyaMessages:
cmd=16, {"cid":"tuya96########14"}
cmd=16, {}
cmd=64, {"data":{"cids":[]},"reqType":"subdev_online_stat_query"}

To which the device responds with 3 Ethernet packets:
cmd=16, {"dps":{"2":false,"8":"click","9":85,"10":0,"11":"up_on","12":100,"15":0,"17":true,"101":false},"cid":"tuya96########14"}
cmd=16, {"dps":{"4":false,"32":"normal"}}
cmd=64, {"reqType":"subdev_online_stat_report","data":{"online":["tuya96########14"]}}

After that it's the usual request/response.  I'll see if I can come up with some code which can send almost-empty commands like that.

@uzlonewolf I'm going to order a different hub.  What device are you testing?  I need to order one of those to test.

Okay, more updates. The MOES Tuya Bluetooth Gateway, running 3.4 doesn't respond to the direct DPS commands and doesn't decrypt the status payload. I don't want to flood the comments with debug output, unless you want to see it.
Still can't understand what's going on with the payloads coming in. Hopefully will figure out with the new hub.
@jasonacox  I can get you one of these bulbs. Ordered mine through through AliExpress [G4 RGBW bulb}(https://www.aliexpress.us/item/3256804755352819.html?pdp_npi=2%40dis!USD!US %246.25!US %241.75!!!!!%402103364716790928733566086ed16f!12000031096541832!btf&_t=pvid%3Ac2420474-88ea-450c-943a-3d23a4b95878&afTraceInfo=1005004941667571__pc__pcBridgePPC__xxxxxx__1679092873&spm=a2g0o.ppclist.product.mainProduct&gatewayAdapt=glo2usa&_randl_shipto=US) I'm in Pasadena, so if I get it in the mail today, you should have it pretty quickly.
@uzlonewolf  Just ordered the same hub as the one you just got. I won't upgrade the firmware, just in case.
Thank you both for the help with all this. Nothing like a weekend puzzle to solve.

I ordered some of those LEDs off Ali, but as they are going to take like 3-6 weeks to get here I also picked up a https://www.amazon.com/dp/B0BLJN2BWW as it was available for overnight delivery and looked interesting.
I also ordered all 3 hubs @bnazari posted, they just won't get here until next week.

@bnazari I would like to see the debug output actually!  The more verbose the better.  Let's see that binary gobblygook monster barf all over the place!  :)  50/50 I may need the local key too if it's not the one you posted originally.

Oh, and for some reason that first hub I got didn't want to show the local key via the wizard.  I had to get it via the "pretend to be the app" method.

@jasonacox I can get you one of these bulbs. Ordered mine through through AliExpress G4 RGBW bulb I'm in Pasadena, so if I get it in the mail today, you should have it pretty quickly.

That's awesome @bnazari !  Send me your contact info so I can pay you. If you let me buy two, I'll send one to @uzlonewolf  - jason @ jasonacox.com.
@uzlonewolf I saw the FingerBot too... might just have to get one too just for the fun of it. ;)

For the life of me, I couldn't figure out why it was spitting out "json obj data unvalid" Should have taken a hint from the "unvalid" part. Turns out, the payload of the response from the bulb isn't a json, it is a string that says "json obj data unvalid" Kept thinking something is wrong with the decryption part until I did it manually and realized it was a string.

Alright, here's what I've found so far.  That first BLE+ZigBee hub I bought, https://www.amazon.com/dp/B09TZH95FG , came with firmware version 1.3.2 (WBRG1 main module) and 1.1.9 ( ZS3L ZigBee module).  It says there is a firmware update available, however it is only for the ZigBee module - not the main module.  It is 2.4.1 and can be downloaded at https: images.tuyaus.com/smart/firmware/upgrade/20221208/1670484983-si32_mg21_115200_pta_665_OTA_2.4.1.bin .  This firmware uses protocol v3.3 and works just fine with the existing code.
My 2nd hub actually came in around noon (Amazon strikes again!) and is BLE-only.  https://www.amazon.com/dp/B097XR41X4 .  This one came with firmware version 1.3.2 and only has a single CR3L module.  That firmware also uses protocol v3.3 and works just fine with the existing code.  There is a firmware upgrade for it to 1.9.9 which can be downloaded at https: images.tuyaus.com/smart/firmware/upgrade/20221109/1667990073-oem_rtl8720cm_gw_plug_UG_1.9.9.bin .  Unlike the earlier firmware, this one is protocol v3.4 and does not support status polling.  After kludging v3.4 support into my PCAP parser, it turns out the module sends the "unvalid" error to the Smart Life app as well.  With that being the case I'm not too hopeful about being able to make it work in TinyTuya.  I'll get a bit more invasive tomorrow to see what I can dig up.

Ha!    Working on my v3.4 gateway:
import time
import tinytuya

tinytuya.set_debug(True)

tinytuya.payload_dict['v3.4'][tinytuya.DP_QUERY]["command"] = {"protocol":4, "t": "int", "data": {}}

gw = tinytuya.Device( 'eb6######', address='172.20.#.#', persist=True, version=3.4 )
zigbee1 = tinytuya.Device( 'ebb0######', cid='tuya96########14', parent=gw )

print( gw.status() )
print( zigbee1.status() )

print(" > Begin Monitor Loop <")
pingtime = time.time() + 9
polltime = time.time() + 3

while(True):
    if( pingtime <= time.time() ):
        payload = gw.generate_payload(tinytuya.HEART_BEAT)
        data = gw.send(payload)
        pingtime = time.time() + 9
        if data:
            print( data )

    if( polltime <= time.time() ):
        polltime = time.time() + 3
        print( '================' )
        print( zigbee1.status() )

    data = gw.receive()

    if data:
        print( data )

I'll get a proper PR written tomorrow.

Oh, and for some reason that first hub I got didn't want to show the local key via the wizard. I had to get it via the "pretend to be the app" method.

The hub that I just picked up, eMylo 5.0 Bluetooth&3.0 ZigBee Gateway 3 In 1 , has the same issue.  Wizard didn't pick up the local key (not in tuya-raw), but I was able to get it the "app" way as you mention.  I looked at the "result" raw from the cloud.getdevices() call and there is no local_key.

(continued)
Using "API Explorer" the standard URI to pull user devices does show the local_key for my gw device, but c.getdevices() is clearly not getting it. The API curl call that works from the Explorer does show the local_key. I can't figure out what I missing in the Wizard code that isn't replicating this unless the way we are computing token/signature is off.
curl --request GET "https://openapi.tuyaus.com/v1.0/users/{USER}/devices"
--header "sign_method: HMAC-SHA256"
--header "client_id: {API_KEY}"
--header "t:<PHONE_NUMBER>387"
--header "mode: cors"
--header "Content-Type: application/json"
--header "sign: {SIGNATURE}"
--header "access_token: {TOKEN}"

getdevices() uses /v1.0/iot-01/associated-users/devices which is under the API Explorer as "Smart Home Device System" -> "Device Management" -> "Get User's Device List" and for me is not returning the local key either.

getdevices() uses /v1.0/iot-01/associated-users/devices which is under the API Explorer as "Smart Home Device System" -> "Device Management" -> "Batch query for the list of associated App user dimension devices" and for me is not returning the local key either.

Ok - I think this is overloading this Issue.  I'm moving the Wizard issue to a new issue #305 .


CCDB GE/014 - Section <IP_ADDRESS>.3

Para 88
Comment:
What are the consequences if no KDF, which is defined in SP800-56A, is used regarding security?
Proposal:
Priority: 1

There are multiple possible selections for the KAT requirement and not all of those would require a KDF.
It would seem that this could be closed since the question looks to be reading a functional test requirement statement without the context of the options that may be tested.

There is no security weakness to use the shared secret from key agreement scheme without a KDF. KDF is to derive key materials of a larger size than the shared secret.
I'd reject this comment and make no change to the SD.

KDF is there to enable the creation of longer keys from the materials provided. This is not a required step is the materials are already of sufficient length.


Set timeouts for backend connections

Output of restic version
0.15.1
What should restic do differently? Which functionality do you think we should add?
Set proper timeouts for requests. A broken network connection currently causes restic to stall waiting for 15 minutes. This delay is longer than the maximum timespan during which requests are retried. Consequently, the whole operation fails.
In addition, it is bad for performance.
Ideally, the timeouts interrupted connections which make no progress for e.g. a minute. That way the timeouts would be independent of the connection speed.

What are you trying to do? What problem would this solve?
See https://forum.restic.net/t/403-authentication-errors-with-large-data-cross-region-backup-and-restore-in-azure/5916

Apparently the TCP_USER_TIMEOUT socket option does what we want (see https://blog.cloudflare.com/when-tcp-sockets-refuse-to-die/ for an explanation). That is we should add some code similar to https://code.googlesource.com/google-api-go-client/+/master/transport/grpc/dial_socketopt.go

Another case (s3), just wanted to link in case of consistency: https://forum.restic.net/t/restic-gets-stuck-rarely/6139/3

I hit this last night against OVH's object storage at RESTIC_REPOSITORY=s3:storage.de.cloud.ovh.net/mybackups. I have no idea why but my backups took over two hours last night, and were interrupted by my other cronjob that reboots my server. I ran my backup script again and was able to reproduce it.
I assume this is something temporary and flakey with OVH's service, but it would be good if restic could error-out in this case. Perhaps a default TCP timeout of 5 minutes or so?
With
$ restic version
restic 0.11.0 compiled with go1.15.9 on linux/amd64

from Debian bullseye:
$ apt-cache policy restic
restic:
  Installed: 0.11.0-1+b5
  Candidate: 0.11.0-1+b5
  Version table:
 *** 0.11.0-1+b5 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

TCP_USER_TIMEOUT is only available on Linux and thus not suitable as a general solution.
For a generic solution, we can either use a custom RoundTripper that injects timeouts into requests or use a custom net.Conn that monitors the underlying connection.
The RoundTripper applies to individual requests (multiple requests can be multiplexed onto a single HTTP2 connection), whereas the net.Conn targets the underlying connection.
restic sends both very small requests, but also uploads/downloads of hundreds of MB. These have wildly different timeout requirements. Thus instead of using a fixed timeout, we can ensure that these requests make progress at a fixed rate. Or even simpler ensure that they make progress at all. This can be checked by enforing that read or write have handled some data in the last x minutes, as a broken connection will neither send nor receive data.
This also interacts nicely with idle connections if the IdleConnTimeout is smaller that the timeout used to detect broken connections.
Unlike a web server, there is no particular need for restic to defend agianst servers that intentionally send data with the lowest rate possible. Servers must at least be somewhat trusted.
RoundTripper
See https://blog.cloudflare.com/the-complete-guide-to-golang-net-http-timeouts
for details on available timeouts.
The http client supports an overall fixed timeout for requests, which is not suitable for us. So we'll have to assemble something out of the individual timeouts:

Dialer.Timeout
TLSHandshakeTimeout
send request body (no existing timeout)
ResponseHeaderTimeout
read response body (no existing timeout)

All steps except send/read only involve a small amount of data and thus can be handled with a fixed timeout.
http2.Transport additionally offers the following timeouts (which apply at the connection level):

WriteByteTimeout: ensures minimum progress for sending the request body
ReadIdleTimeout + PingTimeout: send pings if no data was received within the read idle timeout

These additional timeouts would be sufficient to enforce progress for send/read requests using HTTP2. However, for HTTP/1 pings are not supported by the protocol and WriteByteTimeout is currently not available.
Thus, we'd still need to build a custom solution for HTTP/1. That would involve wrapping the request/response body to monitor progress. If no progress happens, then the overall request must by canceled (indirectly via a context, as a Body cannot cancel the interaction with the underlying net.Conn).
It's not clear whether a canceled request would also break the underlying - likely broken - HTTP2 connection or not.
net.Conn
Can inject deadlines for read/write from the underlying TCP connection. This is relatively straightforward to implement. writes have to complete within a given timeout. And reads either have to receive data before the timeout, or a successfull write must happen in the meantime.
The read timeout will not interfere with idle connections, as long as these are closed before the read timeout expires.
The write timeout is actually very similar to the implementation of WriteByteTimeout in the http2.Transport. The suggested read timeout behavior is somewhat different from ReadIdleTimeout, as it does not perform active health checks.
If an upper layer sets a deadline on the connection, then our wrapper net.Conn must honor that deadline. A connection must also be considered alive if it remains within those deadline.
WriteByteTimeout & ReadIdleTimeout work on the connection level, thus there should be no need to use them in addition to a custom net.Conn wrapper.
Summary
The net.Conn approach appears to be simpler to implement. Thus, let's start with it. It is also cleanly able to get rid of broken HTTP2 connections.
Related: Repository.StreamPack
For a reliable solution, we have to redesign StreamPacks that it no longer uses requests that can
idle for a long time. This has already proven problematic in a different context, see
https://github.com/restic/restic/issues/4627 .

I assume this is something temporary and flakey with OVH's service, but it would be good if restic could error-out in this case. Perhaps a default TCP timeout of 5 minutes or so?

The description rather sounds like a stuck operation. Restic already uses TCP connection timeouts and keepalives, which will eventually detect idle broken connections. If a requests is pending on a TCP connection, then a longer system-defined timeout applies. But a 2 hour delay is likely a slightly different problem.
Either way, the approach to force each connection to (slowly) make progress, should also be able to handle that case.

Canceling an http.Request would be possible with something similar to https://github.com/ncw/swift/blob/b37a86bc3491c732a2b5ea198bc7cb307e239992/timeout_reader.go plus https://github.com/ncw/swift/blob/b37a86bc3491c732a2b5ea198bc7cb307e239992/watchdog_reader.go along with canceling the associated context.

I've found a simple way to implement requests timeouts in https://github.com/restic/restic/pull/4792 . This turned out way simpler than https://github.com/restic/restic/pull/4778 , thus let's follow that approach.


[vim] Remove unnecessary border management in nvim floating window

I noticed that some border related sources codes have been left in Neovim's create_popup function.
I think that from this commit, border had been fully controlled by fzf binary itself, and script-local s:create_popup function is never been called against opts with border property.

Merged, thanks!


Not able to integrate the Server Api with frontend in nextjs

I'm facing The integration issue Where it leads to the 404 whenever i try with useQuery
Here is the simple setup I was trying to execute Github link

There are two reasons your Route Handler can't be compiled and Next.js returns a 404.

You are trying to read a file that doesn't exist.

Since __dirname points to .next/server/app/api/graphql (at least when using next dev) you need to change path.resolve(__dirname<EMAIL_ADDRESS>to path.resolve(__dirname, "../../../../../src/utils/graphql/server/schema.graphql").
Also, you can't use TypeScript paths (@/) when using readFileSync.

type message = String isn't valid GQL.

To return a string from a query you need to change your schema like this:
type Query {
  hello: String
}

Event after the changes you stated it was still leading 404 page not found error  Response not successful: Received status code 404 Is there any project setup you might provide for the reference, It could find the handler there


Produce a technology plan

We need to produce a technology plan that details the technologies we will be using in the project. We need to justify the technologies we are using, as well as justify why we are not choosing other abstract technologies.

Closed issue as project plan has been complete, reviewed and marked as done.


Updated: fix setting update time

Addresses:
https://github.com/commaai/openpilot/issues/28777

seems like some kind of race condition on accessing the panda

can no longer reproduce the update issue with this change. still want to look into the panda set time issue.

@adeebshihadeh this seems to fix the update issue, I'll look into the panda set time issue in another PR (causes boot logs to have wrong time)

What exactly is happening? Why does it show 1 day?

What exactly is happening? Why does it show 1 day?

failed_count is 0 on first loop. LastUpdateTime gets set to incorrect system time. Because failed_count is zero
elif dt.days > DAYS_NO_CONNECTIVITY_MAX and failed_count > 1 evaluates false
and max(DAYS_NO_CONNECTIVITY_MAX - dt.days, 1) when dt.days is >14 is 1

I think it's more clear now.

dont change LastUpdateTime unless we had a successful update
dont show either type of warning unless we had a failed update (failed count > 0)
dont actually run the updater if we dont yet have a valid system time

agnos needs updating to test this further (need python 3.11), but i tested it quite a bit before the cleanup, I think its good to merge


Improve view title of references-view (fixes #172619)

This PR fixes #172619 by giving the view a more descriptive title property.

/assign @jrieken

Thanks @gjsjohnmurray


Error by adding the repo: is not a valid add-on repository

When I try to add the repo I get the following error:
https://github.com/fsaris/home-assistant-awox is not a valid add-on repository
Steps to reproduce:

Go to settings
Add-Ons
Add-On Store
In the upper right croner the three points
Repositorys
Add the link https://github.com/fsaris/home-assistant-awox

This is no addon. But a custom component see https://github.com/fsaris/home-assistant-awox#install-with-hacs-recommended


Add input fields for username and password in login view.

https://github.com/sopra-fs23-group-40/Client/commit/bf7a776aca7576e26961980efc35b73fe7521cdc#diff-482b729fa836ed7eb0edc072685c89a19d611ce1670ef677f0ab9e7f0082b2bd


Pluging has a IOS minimun compatibility in iphone?

First we want to say thanks for this great plugin.
We test the application with this pluging on a iPhone 4 with IOS 7 and the application crash when loads de calender.
The questions is if exists a mínimum version of OS in iphone for this pluging.

The same as for Xamarin.Forms: https://developer.xamarin.com/guides/xamarin-forms/getting-started/installation/

iOS 6.1 or higher

So this should work, you could try removing the iOS specific assembly XamForms.Controls.Calendar.iOS.dll and remove the XamForms.Controls.iOS.Calendar.Init(); from the AppDelegate.cs and see if it still crashes. The calendar will not work correctly when the iOS part is missing (#2) but it should at least show.
If this is the case then, there is a problem in the iOS specific code.
If you could provide me with more details on the crash, I will see what I can do to fix it.

We tried with iphone 4s ios 8 and it work fine.
So in this case we decide set this minimum version for our app like the link Xamarin.Forms provided.
Thanks.


Module cache error

V8Host.getNodeInstance().createV8Runtime<NodeRuntime>().use { runtime ->
            runtime.getNodeModule(NodeModuleModule::class.java).setRequireRootDirectory(File("/"))
            runtime.v8ModuleResolver = JavetBuiltInModuleResolver()
            runtime.getExecutor("""
                import events from "node:events"
                import stream from "node:stream"

                globalThis.a = events === stream
            """.trimIndent()).setModule(true).executeVoid()
            runtime.await()
            println("a: ${runtime.globalObject.getBoolean("a")}")
        }

This will print true, which means that the same module is returned. If you replace import stream from "node:stream" with const stream = require("node:stream"), it will print false normally.

Thank you for reporting this issue. It's quite weird. I just fixed it in the dev branch. Please wait for the next release.

Very strange, just put import events below and it will print fasle

Very strange, just put import events below and it will print fasle


Pricing individual financial instruments

I have managed to successfully install Strata using Eclipse and I have run all the example codes, but how do I price an individual financial instrument.
For example, if I don't want to use the Calculation Runner and I want to just provide my own data and price an option or a swap or a bond. Essentially, I want to use the Pricer module to price my own data.
How do I accomplish that?

This kind of question would probably be better asked on our forums.
The answer is that you can use Strata at three different levels

calculation - using CalculationRunner
measure - using classes such as SwapTradeCalculations (added very recently)
pricing - using classes such as DiscountingSwapTradePricer

In your case, we would recommend using the new measure-level API. Using the API is simple:
SwapTrade trade = ...   // create trade
RatesProvider ratesProvider = ...   // create market data
ResolvedSwapTrade resolved = trade.resolve(ReferenceData.standard());
MultiCurrencyAmount pv = SwapTradeCalculations.DEFAULT.presentValue(resolved, ratesProvider);

(Usage of the pricer-level API is very similar, but we feel the measure-level API is better suited for applications.)
As well as pricing a single trade against a single set of market data, the measure-level API provides the ability to price a single trade against a set of scenarios. If you need to price more than one trade in a mixed portfolio, we recommend using CalculationRunner.

I am sorry, I still don't understand how to create the trade.
I have taken your example, I made a public static main method and placed the code you have told me to. But how do I create the Trade and how do I reference the market data?
  public static void main(String[] args) {
	SwapTrade trade = ... ;// create trade
	RatesProvider ratesProvider = ...;//create market data
	ResolvedSwapTrade resolved = trade.resolve(ReferenceData.standard());
	MultiCurrencyAmount pv = SwapTradeCalculations.DEFAULT.presentValue(resolved, ratesProvider);

  }

The example code shows how to create trades. see SwapPricingExample and SwapTradeModelDemo. Alternatively, you can use the strata-loader project to load a trade from FpML, see FpmlDocumentParser.
The RatesProvider can be created manually or by calibrating a set of curves. To create it manually, see ImmutableRatesProvider, which has a builder that allows discount curves, forward curves and FX rates to be added. SwapEnd2EndTest contains a method that creates a rates provider which would be good to look at.
Let us know how you get on, or if you need to calibrate curves.

Thank you for you help, i worked through the examples and I understand how to use the Calculation module. I feel that is currently the most useful for my needs.
I wanted to ask how I could pass a portfolio through it. Looking at the "SwapPricingExample", instead of  creating all the trades individually, how do I pass/input the "swap-portfolio.xml" instead?
Thank you

We recommend using FpML as the trade input format. swap-portfolio.xml is in our internal Joda-Bean xml format which is not guaranteed to be stable over time. If you do want to parse
To parse FpML, use FpmlDocumentParser, which returns a List<Trade> ready for input to CalculationRunner.
If you do want to use the Joda-Bean format, TradeListParameterConverter and its superclass JodaBeanParameterConverter contain the essential code to load the data.

Is there an example of how to use the FpmlDocumentParser and is there an example FpML file?

The only code using FpML is the test case FpmlDocumentParserTest. It is not particularly hard to use - your main problem is likely to be learning FpML. The test case makes use of some example FpML documents, such as ird-ex01-vanilla-swap.xml (and others in the same directory).

I am sorry, I am a bit lost....
I have gone through the FpmlDocumentParserTest and think I understand how the structure is set out to pull the FpML file:
	String location = "classpath:com/opengamma/strata/loader/fpml/ird-ex01-vanilla-swap.xml";
	ByteSource resource = ResourceLocator.of(location).getByteSource();
	List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party1")).parseTrades(resource);

what I am unable to do is, use this code in the "SwapPricingExample". I want to run the SwapPricingExample using a FpML document, so I do not need to create all the trades manually as is done in the "SwapPricingExample".

Within the SwapPricingExample that we supply, simply replace the current createSwapTrades() method with one that loads from FpML based on the code above. The createSwapTrades() method returns List<Trade>, which matches what you get from FpML.
Once that is achieved, you will then need to ensure that the market data is available for the swaps in the FpML file.

Looking closer, you may be struggling because the file "ird-ex01-vanilla-swap.xml" is not on the classpath (it is in the test area of a different module, thus it will not be on the classpath when you run the example).
It may be easier to start with a File, as you can use File.exists() to check that the file is found. This code works on my box, but you'll have to adjust the absolute path:
File dir = new File("/dev/opengamma/strata/modules/loader/src/test/resources/com/opengamma/strata/loader/fpml/");
ByteSource resource = ResourceLocator.ofFile(new File(dir, "ird-ex01-vanilla-swap.xml")).getByteSource();

It worked great, thank you. I also tried the same code I wrote earlier but instead I changed "classpath:" with "file:" and that worked as well.
If I have more questions, I will post them on the Forums from now on.
Thank you


Cannot resolve dependency 'font-picker' in 3.02

When I try and run my project using parceljs (which worked with font-picker 2.x) i get this error 'Cannot resolve dependency 'font-picker''
Not sure whats causing it but I took a look at the package.json in node_modules and these paths dont seem to exist:
  "main": "dist/font-picker/FontPicker.js",
  "module": "dist/font-picker/FontPicker.es.js",

Thanks for reporting this, it should now be fixed. I'm going to release a new version soon, please let me know if it's still not working.


(docs) Add Building Your Docs section

Restructure a few existing pages
Add a few new pages

Follow this IA format: https://github.com/fern-api/fern/pull/3526#issuecomment-2097058724

@abvthecity can you help me fill in https://github.com/fern-api/fern/blob/a7dcbc295ed9f98a120bc841d117b6a7cba09f89/fern/pages/docs/building-your-docs/styling.mdx?plain=1#L323-L326 ?
Can do pre or post merging these changes.


OS Matching

This PR add OS end of life matching. We now have CPE's in endoflife.date we can use, because of this PR. We grab the Distro.CPEName from syft, which picks up the CPE_NAME property in /etc/os-release.
$ xeol -q fedora:29
NAME    VERSION  EOL         DAYS EOL  TYPE
Fedora  29       2019-11-26  1184      os

https://endoflife.date/fedora
There are a couple things to note about this PR:

It misses a lot of distros that don't define CPE_NAME. I'm going to create a second PR that heuristically creates cpe names for distros that don't have CPE_NAME defined, which should improve coverage a lot.
It doesn't handle EOL dates for products with ELTS support. I created #34 to track this improvement.
It doesn't use SUPPORT_END, this is tracked in #35

@witchcraze wondering if you had any thoughts here. You mentioned that you use an internal mapping to map EOL OS'. Wondering if this solution would be missing anything critical?

Sorry, my approach was usging "name" and "versionID" .
Some distribution will have several 'name'.
e.g. centos and CentOS, Fedora and Fedora Linux, Amazon Linux and Amazon Linux AMI
I did not check CPE_NAME  in /etc/os-release by some reason, but I'll ty to check in our dataset next week and share results.

@noqcks
I checked CPE_NAME in /etc/os-release in our environment

95% are no data
Show CPE was from RHEL or those rebuild distributions
Major CPE patterns are ...

cpe:/o:centos:centos:8
cpe:/o:rocky:rocky:8:GA
cpe:/o:redhat:enterprise_linux:8::baseos
cpe:/o:redhat:enterprise_linux:8.1:GA
cpe:/o:oracle:linux:8:7:server
cpe:2.3:o:amazon:amazon_linux:2

Yeah, that's what I've found as well. centos/redhat/amazon_linux/oracle are the main distros using CPE_NAME. I will need to create an OS mapping to get good coverage. Would not be good to miss Debian/Ubuntu/Suse

@witchcraze added some speculative OS matching in https://github.com/noqcks/xeol/pull/40
so it now works for any distro, even if they don't set CPE_NAME
ubuntu
$ go run main.go ubuntu:18.10

NAME    VERSION  EOL         DAYS EOL  TYPE
Ubuntu  18.10    2019-07-18  1321      os

alpine
$  go run main.go alpine:3.9

NAME          VERSION  EOL         DAYS EOL  TYPE
Alpine Linux  3.9.6    2021-01-01  788       os


When i convert the content to HTML format, highlight tags go missing.

        const contentHTML = convertFromHTML(editor_text);
        const state = ContentState.createFromBlockArray(contentHTML.contentBlocks, contentHTML.entityMap);
        const content = JSON.stringify(convertToRaw(state));

Here is the sample image

When converted to HTML:
Hello [=PercentageDiscount] [=FixedAmountDiscount]

[=PercentageDiscount]

[=FixedAmountDiscount]
[=PercentageDiscount]
[=FixedAmountDiscount]
As clear, other styling is there except highlighting.

Seems this is a problem of your HTML converter.


Addition of Leetcode Solutions 1-10 | Issue #173

📥 Pull Request
Description
I have added leetcode solution of 1-10 questions.

Fixes #173
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] Any dependent changes have been merged and published in downstream modules

@MastanSayyad Kindly check documentation change here Level 1 shall be given.

@ajay-dhangar kindly change and see if any other are also there, change them as well to Level 1


GH-35926: [C++][Parquet] Testing disable ColumnIndex by disable statistics

Rationale for this change

Allow only build Offset Index for some column by disable statistics
What changes are included in this PR?

Fix a tiny bug
Are these changes tested?

Yes
Are there any user-facing changes?
Actually no change?

Closes: #35926

cc @wgtmac @pitrou

@pitrou Mind take a look?

@pitrou @wgtmac Do you still have any comments?

The remaining CI failures are unrelated, will merge.


Rugcheck API Integrated

Pull Request Description
Provides a streamlined integration with the RugCheck API for Solana tokens, allowing developers to access and interact with key features like token reports, statistics, and voting functionality.
Related Issue
Fixes # (issue number)
#17
Changes Made
This PR adds the following changes:

Integrated Endpoints and Methods :
GET /stats/new_tokens: Fetch recently detected tokens.
GET /stats/recent: Retrieve most viewed tokens in the past 24 hours.
GET /stats/trending: Fetch trending tokens in the past 24 hours.
GET /stats/verified: Get recently verified tokens.
GET /tokens/{mint}/report/summary: Generate a summary report for a specific token.
POST /tokens/{mint}/votes: Cast a vote (upvote/downvote) for a specific token.
GET /tokens/{mint}/report: Fetch a detailed report for a specific token.
Implementation Details

This integration enables efficient access to RugCheck's token data and analytics, making it a valuable tool for developers.
Features :

Fetch recently detected tokens.
Retrieve most viewed tokens from the past 24 hours.
Get trending tokens based on votes.
Access recently verified tokens.
Generate a summary report for a specific token.
Vote on a specific token (upvote or downvote).
Retrieve a detailed report for a specific token.

Transaction executed by agent

Example transaction:
Prompt Used

Additional Notes

Checklist

[x] I have tested these changes locally
[ ] I have updated the documentation
[ ] I have added a transaction link
[ ] I have added the prompt used to test it

LGTM!
You haven't added Langchain tools for the given functions. Better to wait for #72 to be merged, then follow the new standard and update this PR. Also, could you try and see if report endpoints are working for you? I couldn't seem to get valid responses.

LGTM!
You haven't added Langchain tools for the given functions. Better to wait for #72 to be merged, then follow the new standard and update this PR. Also, could you try and see if report endpoints are working for you? I couldn't seem to get valid responses.

yeah wait lemme try it again, it was working fine for me. also yeah will add according to the new standard once that PR is merged .

LGTM!
You haven't added Langchain tools for the given functions. Better to wait for #72 to be merged, then follow the new standard and update this PR. Also, could you try and see if report endpoints are working for you? I couldn't seem to get valid responses.

yupp it worked for me. previously there was a type mismatch so ig due to that and also I've added the langchian function implementations for it. so no need of keeping thme independent. do let me know if any more update needed

LGTM!
You haven't added Langchain tools for the given functions. Better to wait for #72 to be merged, then follow the new standard and update this PR. Also, could you try and see if report endpoints are working for you? I couldn't seem to get valid responses.

yupp it worked for me. previously there was a type mismatch so ig due to that and also I've added the langchian function implementations for it. so no need of keeping thme independent. do let me know if any more update needed

Thanks, but post #72, we will also need to specify action in a new format for each tool. That's why it's best to hold off on this PR until that is merged. Otherwise, looks good, thanks.

LGTM!
You haven't added Langchain tools for the given functions. Better to wait for #72 to be merged, then follow the new standard and update this PR. Also, could you try and see if report endpoints are working for you? I couldn't seem to get valid responses.

yupp it worked for me. previously there was a type mismatch so ig due to that and also I've added the langchian function implementations for it. so no need of keeping thme independent. do let me know if any more update needed

Thanks, but post #72, we will also need to specify action in a new format for each tool. That's why it's best to hold off on this PR until that is merged. Otherwise, looks good, thanks.

cool cool, once it's merged I'll add up acc to the new structure.

heyo @simplysabir - great work
I just think we only require SolanaFetchTokenDetailedReportTool and SolanaFetchTokenReportSummaryTool as rest tools won't be used by agent in most cases.
wdyt

heyo @simplysabir - great work
I just think we only require SolanaFetchTokenDetailedReportTool and SolanaFetchTokenReportSummaryTool as rest tools won't be used by agent in most cases.
wdyt

kinda agree, rest aren't that useful. they're useful in very rare cases. so yeah will remove the rest and keep these two only

Trending tokens might be useful for building trading agents though

for that I think, something like birdeye makes more sense