mWeb - room-Inviting an user to room via secondary contact displays member count incorrectly

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.13
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Go to https://staging.new.expensify.com/home
Tap on a room chat -- header -- invite
Enter a secondary contact of a user eg<EMAIL_ADDRESS>and invite to room
Tap back button
Note members count

Expected Result:
Inviting an user to room via secondary contact must display member count correctly
Actual Result:
Inviting an user to room via secondary contact must display member count correctly
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/4791a6fd-da17-4143-a063-6271aed4beec
View all open jobs on GitHub

@stephanieelliott  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Proposal
Please re-state the problem that we are trying to solve in this issue.
mWeb - room-Inviting an user to room via secondary contact displays member count incorrectly
What is the root cause of that problem?
The issue is not caused by using the secondary contact to add a member to a room but instead when a user adds a member who's personal detail doesn't exist in onyx a new optimistic personal detail is created then after a while the real personal detail representing the member comes and the optimistic personal detail will be deleted but the accountID of the optimistic personal detail still exists in report.participants list so the members count will be wrong as we display the participants length here
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/ReportDetailsPage.tsx#L305-L306
What changes do you think we should make in order to solve the problem?

We should filter particpants whose personal details doesn't exist just the same as what we use in RoomMemebersPage here
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/RoomMembersPage.tsx#L174-L180
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
room-Inviting a user who you have no contact before displays member count incorrectly
What is the root cause of that problem?
The issue is not caused by using the secondary contact to add a member to a room (as indicated in OP) but instead when a user adds a member who's personal detail doesn't exist in onyx a new optimistic personal detail is created then after a while the real personal detail representing the member comes from BE and the optimistic personal detail will be deleted but the accountID of the optimistic personal detail still exists in report.participants list so the members count will be wrong as we display the participants length here
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/ReportDetailsPage.tsx#L305-L306
What changes do you think we should make in order to solve the problem?

We should filter particpants whose personal details doesn't exist just the same as what we did in RoomMemebersPage here
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/RoomMembersPage.tsx#L174-L180
We should change
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/ReportDetailsPage.tsx#L138-L141
to
const participants = useMemo(() => {
        const shouldExcludeHiddenParticipants = !isGroupChat && !isSystemChat;
        const participantAccountIDs = ReportUtils.getParticipantsAccountIDsForDisplay(report, shouldExcludeHiddenParticipants);
        return participantAccountIDs?.filter((accountID) => !!personalDetails?.[accountID]);
    }, [report, isGroupChat, isSystemChat, personalDetails]);

What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
room-Inviting a user who you have no contact before displays member count incorrectly
What is the root cause of that problem?
The issue is not caused by using the secondary contact to add a member to a room (as indicated in OP) but instead when a user adds a member who's personal detail doesn't exist in onyx a new optimistic personal detail is created then after a while the real personal detail representing the member comes from BE and the optimistic personal detail will be deleted but the accountID of the optimistic personal detail still exists in report.participants list so the members count will be wrong as we display the participants length here
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/ReportDetailsPage.tsx#L305-L306
What changes do you think we should make in order to solve the problem?

We should filter particpants whose personal details doesn't exist just the same as what we did in RoomMemebersPage here
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/RoomMembersPage.tsx#L174-L180
We should change
https://github.com/Expensify/App/blob/b0f810df06c3df866b7fdbed4959f8f1fef803ed/src/pages/ReportDetailsPage.tsx#L138-L141
to
const participants = useMemo(() => {
        const shouldExcludeHiddenParticipants = !isGroupChat && !isSystemChat;
        const participantAccountIDs = ReportUtils.getParticipantsAccountIDsForDisplay(report, shouldExcludeHiddenParticipants);
        return participantAccountIDs?.filter((accountID) => !!personalDetails?.[accountID]);
    }, [report, isGroupChat, isSystemChat, personalDetails]);

We can also check and do the same for workspace members too if needed.
What alternative solutions did you explore? (Optional)

@stephanieelliott the title of the OP is a lit bit misleading as it suggests the problem is caused by using the secondary contact to invite the member but the problem is caused by the member being invited was a member with which the current user had no contact before. So to reproduce it, you should test by adding a member with which you had no contact before.
And also I suggest you update the title of the issue accordingly Thx. 👍

Proposal
Please re-state the problem that we are trying to solve in this issue.
Inviting user we never chat before to a room will make an extra count to the room member count.
What is the root cause of that problem?
When we are searching for a new user, the app will generate a random optimistic account ID.
https://github.com/Expensify/App/blob/5e6527613d0f234fcb22507b878697a2bec356c5/src/libs/OptionsListUtils.ts#L1748-L1749
When we invite the user, the app will optimistically merge the generated account ID to the room participants.
https://github.com/Expensify/App/blob/5e6527613d0f234fcb22507b878697a2bec356c5/src/libs/actions/Report.ts#L2809-L2836
However, we never clear the optimistic report participant. This logic is used for both invite to room and group, but the issue doesn't happen in a group chat because the API for invite to group chat returns a response when success that will clears the optimistic report participant.
What changes do you think we should make in order to solve the problem?

Fix it in the BE so invite to room also returns a response to clear the optimistic report participant.
OR
Fix it in the FE by clearing the optimistic report participant in success data.
const participantsSuccessData = inviteeAccountIDs.reduce(
    (reportParticipants, accountID: number) => ({...reportParticipants, [accountID]: null}),
    {},
);
const successData: OnyxUpdate[] = [
    {
        onyxMethod: Onyx.METHOD.MERGE,
        key: `${ONYXKEYS.COLLECTION.REPORT}${reportID}`,
        value: {
            participants: participantsSuccessData,
            pendingChatMembers: successPendingChatMembers,
        },
    },
];

Thanks @FitseTLT! I see what you mean -- updated the title and action steps to make that more clear.

Given that it affects any user you've not previously had contact with (not secondary logins) and persists on the workspace, I think this is worth fixing. Adding labels to get the proposals reviewed.

Okay yep, I think it makes the most sense to copy the group chat behavior on the backend. I should be able to get to that early next week!
To confirm, if we do that, we shouldn't need any front end fixes, right?

This did need an incredibly minor front end adjustment, so I went ahead and did that myself. Both PRs will be in review in a sec!

The second PR is held on https://github.com/Expensify/App/pull/46825 which is merged but not yet on prod , so we should be able to resume this soon.

still waiting on deploy to prod, will likely be Monday due to earnings, Friday...

So this ends up with the correct amount, but it takes a while to get there. It doesn't get higher than it should but if I'm the only person in a room and then I invite another person, it stays 1 for a while, before switching to 2. @ZhenjaHorbach (or others) do you want to give this a look and see if there's anything we can do optimistically on the front end that might make this cleaner?
Or if I need to update the backend again we can do that.

Oh weird! I just tested again (in order to take the video) and it works like a charm. Maybe something was happening on the backend.
Are we good to close, or do we need any payments handled?

Hey @ZhenjaHorbach I extended the offer to you in Upwork, can you accept when you get a sec? https://www.upwork.com/nx/wm/offer/103546715

Summarizing payment on this issue:

Contributor: N/A internal
Contributor+: @ZhenjaHorbach $250 via Upwork -- PAID

Upwork job is here: https://www.upwork.com/jobs/~01b5145e9ee0c2aee8


Call silence_errors for every thread

Fixes error messages not being silenced in a multi-threaded setting as mentioned in https://github.com/aldanor/hdf5-rust/issues/155#issuecomment-1090189833

Looks good!
Mention in the changelog?

(on a side note, I think we should switch to using once_cell... I guess this will be a part of a big overhaul once I get to it)

Added an entry to the changelog

I guess clippy needs to be fixed first in one of the PRs so we can rebase the rest on it and the builds are green?


support QT 5.11

Hi. Thanks for you great work. Is possible provide a support for 5.11?
Best regard Eugene

Hi Eugene,
Thank you for you appreciation. For now, the work to support Qt 5.11 has not been evaluated. I have no idea of how much effort it would take to do it.
Actually, when Qt 5.8 was released, we tried to make QtRPi compatible, which failed. They changed a lot of things in the compilation which made it very hard to part QtRPi.
I don't know if and when QtRPi will support more recent version of Qt. If you have any MR about this, I'll be glad to review it.
Robin


Revert "Merge pull request #584 from amshinde/switch-to-scsi"

This reverts commit 494b46c5bfa0c305fa3e2ad9d15ca12af2c148a5, reversing
changes made to e475a8fcc486f83b1719166aa8e5a936c14f72e5.
THIS IS A TEST PR.

lgtm

Hi @sboeuf - I see that this is a test PR, but please can you explain why this revert is needed? In fact, could you raise an issue with full details?

@jodh-intel yes that was a test PR, let me talk with @amshinde before we take a decision about this.

@jodh-intel We are seeing  some random failures with hotplug test for virtio-scsi:
https://github.com/clearcontainers/runtime/pull/1039
I'll be taking a look at this today to see what the exact issue is.

The issue was due to an old version of agent being used in our CI. We can close this now. I have rerun CI for this VC PR: https://github.com/containers/virtcontainers/pull/649
Once that passes, we can close this PR.

@amshinde sounds good to me :)

#649 passed as expected, let's close this then !


EXC_BAD_ACCESS occasionally when reloading app

Every once in a while, when I reload my application the whole program will crash with the following message:  Thread 1: EXC_BAD_ACCESS.
The file with the issue is RTCVideoViewManager.m, and on the call stack, I see RTCVideoTrack dealloc and RTCVideoView.cxx_destruct.

This issue forces me to restart the whole app from XCode instead of just reloading.
In the React Native Debugger, I see the following message:
Invalidating <RCTCxxBridge: 0x1c05b7300> (parent: <RCTBridge: 0x1c42a4680>, executor: RCTWebSocketExecutor)

please refers to:
https://github.com/oney/react-native-webrtc/issues/403#issuecomment-355933392
https://github.com/oney/react-native-webrtc/issues/386#issuecomment-352701183
We couldn't find any way to around it currently.
If anyone knows, please share it here with love :+1:

Please try with the latest release, I haven't seen this happen for ages now, I hope we fixed it!

Still facing this issue on react native 0.57.0, any suggest how to fix it?


Update design doc reference link of PLEG

Decouple of #37745 (because the author didn't do it for 2 months) for /language UK

Duplicated


Test

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

#sign-off

Invalid command: '#sign-off'. Only the assigned author of one or more file in this PR can sign off. @tysonn

#hold-off

Docs Build status updates of commit 8e69607:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

CSIDevDocsPublic/authorfile51.md
:bulb:Suggestion

Details

docfx.json
:white_check_mark:Succeeded

CSIDevDocsPublic/authorfile51.md

Line 3, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'This article discusses issues and fixes planned for the Acrolinx report.' is duplicated in 'CSIDevDocsPublic/authorfile1.md(3,14)', 'CSIDevDocsPublic/authorfile10.md(3,14)', 'CSIDevDocsPublic/authorfile11.md(3,14)', 'CSIDevDocsPublic/authorfile12.md(3,14)', 'CSIDevDocsPublic/authorfile13.md(3,14)'....

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

PRMerger Results

Issue
Description

Json File
This PR contains json file(s).

Repository root file
This pull request contains a file submitted to the root of the repository.


Slight typo: vnd.org.cncf....

In filtering examples, you reference the artifact type application/vnd.org.cncf.notary.v2. I think you mean to use application/vnd.cncf.notary.v2 (no org.), since this makes it seem like it's a reverse-domain-name scheme referring to cncf.org which is unaffiliated with the CNCF (https://cncf.io).
This is moot if filtering is pinned for later (#68), or if specific example media types are removed (#66), but in case those don't come to pass, we should fix the typo.

@imjasonh, thanks for the catch. We've had a number of changes to names. Please feel free to make the PR, or I can do some cleanup as part of #66


updating lock screen background without generating cache?

As of now I have a script that takes a snapshot of my screen before I lock and locks the screen with the snapshot of my screen as the background of the lockscreen. With the -u option, it generates an image cache and it's a bit slow for locking purposes. I was wondering if there is any way to just set the lock screen background without generating a cache. Thanks for your time

not possible currently, but you can just take the i3lock-color statement from the script.

The script was not meant to be used the way you are using, it exists for soul purpose of making locking faster by caching modified images.


allow a config value to be used for maximum series count when plotting

Expected Behavior

would like to be able to plot chart as many series as i want during backtests and live
Actual Behavior

throws error of "Exceeding maximum series count: Each backtest can have up to 10 series in total"
Potential Solution

add a config value for the amount to check for
Reproducing the Problem

create a backtest to plot 11 indicators
System Information

Checklist

[ ] I have completely filled out this template
[ ] I have confirmed that this issue exists on the current master branch
[ ] I have confirmed that this is not a duplicate issue by searching issues

[ ] I have provided detailed steps to reproduce the issue

sorry, already present

similar to #4792 but I'd like it to be configurable and it looks like it hasn't merged to master.

Closing as the solution for Q1 2023 is unlimited charting and removing these limits.


Fix warnings revealed by PureScript v0.14.1

Description of the change
Links to purescript-contrib/governance#37

Checklist:

[ ] Added the change to the changelog's "Unreleased" section with a link to this PR and your username
[ ] Linked any existing issues or proposals that this pull request should close
[ ] Updated or added relevant documentation in the README and/or documentation directory
[ ] Added a test for the contribution (if applicable)

Not entirely sure what to do with:
https://github.com/purescript-contrib/purescript-formatters/blob/6347c2c50b78445f0a10ed2496fddbdf4e3d382a/test/src/DateTime.purs#L200-L201
Should this be removed or exported?

What does git blame show for that? If it's not being used, it was likely there when someone was debugging the code or something. I'm leaning towards removing it.

It should be removed.

What does git blame show for that? If it's not being used, it was likely there when someone was debugging the code or something. I'm leaning towards removing it.

It points to (a squashed) #17; that seems to be the case though so I went ahead and removed it


Json.Decode.lazy documentation confusing.

I think that the Json.Decode.lazy function documentation is not clear because it talks about object and required which are not defined anywhere.
Here is the comment that I am talking about:
https://github.com/elm-lang/core/blob/5.0.0/src/Json/Decode.elm#L479-L482

Thanks for the report! The docs were from an API experiment.


Using data from useQurey as dependency of useEffect will cause useEffect endless running.

Describe the bug
Context
My data model is based on the backend API data, which is got by the useQuery, There is a derived state based on the server data, which has it's own setter but depends on the backend source data as well. So I write my code as follows:
function App() {
  const [derivedState, setDerivedState] = useState({});
  const { data = {} } = useQuery(someService);
  useEffect(() => {
    console.log("side effect happening");
    setDerivedState(data);
  }, [data]);
  return <div>{derivedState}</div>
}

But I found that the useEffect hooks will run endlessly once I set default value for data.
To Reproduce
Reproduce link: https://codesandbox.io/s/jolly-goldberg-56239?file=/src/index.js
Expected behavior
No endless running of the useEffect hooks.
Screenshots
No
Desktop (please complete the following information):

OS: Win 10
Browser: chrome
Version: 88.0.4324.190

Additional context
Note: Removal of the default value will not cause this problem.

I don’t see an infinite loop when doing:
const { data = {} } = useQuery('key', service);

Hmmm, maybe it's a particular situation when using it with a custom hook, could you please check on the link I provided?

I did and I don't have it. can you maybe provide an example where I don't need to change anything to reproduce the behaviour - maybe I'm doing that step differently than you?
That being said: when useQuery returns undefined for data, you assign it to an empty object, which is a new referential object every time. Then, you build an effect on top of it. Imo, this is bound to run more often then you'd expect (although not indefinitely).
I'm also not sure what problem you are trying to solve with this. Putting derived state into state and calculating it via useEffect is usually an antiPattern - useMemo would be a better fit.
I can assure you that data returned from useQuery is referentially stable if the same data structure has been returned by the query.

Ok, i think i got something:

react-query returns undefined
You reassign to empty object
The effect runs
The effect calls setState
Your component re-renders
react-query returns undefined
You reassign to a new empty object
The effect runs

Repeat a lot, but not indefinitely. It stops as soon as data arrives, and react-query returns the stable data.

Weird.....
Here's a link which you can directly see much much more console and errors without change any single line of code.
Yes, I know it's kinda antiPattern. But in this way,  it's convenient for me to not mutate the data source here and then get the computed data using useMeMo. I wanna directly set my derived state, that's why I'm not using useMemo, maybe you could provide me some other way of doing this?

Yes, it would stop once the data arrived, but sometimes the browser just get crashed...

You are not passing a key as the first argument to useQuery like I did ;)
i see many options how to fix this, but nobe of them have anything todo with the library itself. Here’s how I’d fix it:
const { data } = useQuery(...)
const derivedData = useMemo(() => ..., [data])

you can also do this with useEffect if you really want to. data can be undefined here so if you work with it, use optional chaining.
If you must assign a default value to data, don’t use an inline object. The reference will change every render - extract it to a const outside of the react component and the effect will run only once.

Sure I've already known the fix to that problem.
The reason I put up with this issue is I think default value is not the reason of much render if  I use my own pure hooks, which you can find in my demo.
So here I think it's the library which caused this issue and it's not very straightforward for people to locate where the issue is, cause default value is everywhere.
If you don't think it's a library bug，maybe you could just warn the user on the doc in case they run into my condition.

Try this
only set if something comes in
function useDerivedState(service) {
  const [derivedState, setDerivedState] = useState({});
  // if replace useMyHook with useQuery, the side effect will running endlessly
  const { data } = useQuery(service);
  useEffect(() => {
    console.log("side effect happeni1ng");
    if (data) setDerivedState(data);
  }, [data]);
  return [derivedState];
}

or
pull it up to make it stable
const defaultState = {}
function useDerivedState(service) {
  const [derivedState, setDerivedState] = useState({});
  // if replace useMyHook with useQuery, the side effect will running endlessly
  const { data = defaultState  } = useQuery(service);
  useEffect(() => {
    console.log("side effect happeni1ng");
    setDerivedState(data);
  }, [data]);
  return [derivedState];
}

Try this
only set if something comes in
function useDerivedState(service) {
  const [derivedState, setDerivedState] = useState({});
  // if replace useMyHook with useQuery, the side effect will running endlessly
  const { data } = useQuery(service);
  useEffect(() => {
    console.log("side effect happeni1ng");
    if (data) setDerivedState(data);
  }, [data]);
  return [derivedState];
}

or
pull it up to make it stable
const defaultState = {}
function useDerivedState(service) {
  const [derivedState, setDerivedState] = useState({});
  // if replace useMyHook with useQuery, the side effect will running endlessly
  const { data = defaultState  } = useQuery(service);
  useEffect(() => {
    console.log("side effect happeni1ng");
    setDerivedState(data);
  }, [data]);
  return [derivedState];
}

or
move it to the setDerivedState call
function useDerivedState(service) {
  const [derivedState, setDerivedState] = useState({});
  // if replace useMyHook with useQuery, the side effect will running endlessly
  const { data } = useQuery(service);
  useEffect(() => {
    console.log("side effect happeni1ng");
    setDerivedState(data || {});
  }, [data]);
  return [derivedState];
}

Thanks for your solutions, I had taken the first solution in my code.
But just as I mentioned above, it's not Intuitive for me when writing code like that, I believe most of the people who write react hooks would not have this consideration when they implement derived state using useEffect and the default value.
Again, the reason I come up with this issue is I think the default value is NOT the reason for much render. Because if I use my own hook, the much render disappeared.  I'm not a react hooks expert, maybe my implementation is too simple to reach the core problem of this bug. It's Intuitive for me to write code like that, so I want the running result is also Intuitive, and it would be great if the library can do the work to keep my coding intuition.

In your custom solution, you initialize the state with null, so you never assign the default value object, because this:
const { data = {} } = useMyHook(service);
only assigns empty object if data is undefined
basically, this effect will always run:
const obj ={}
useEffect(() => console.log('effect'), [obj])

@TkDodo, yes you are totally right. Thanks for your in-time and patient answer. Cheers.


regression: can't build source jar (java.util.zip.ZipException: duplicate entry: monocle/std/String.scala)

java.util.zip.ZipException: duplicate entry: monocle/std/String.scala
spotted in the Scala community build at e.g https://scala-ci.typesafe.com/job/scala-2.13.x-integrate-community-build/152/consoleFull
reproducible locally with:
++2.12.1
coreJVM/packageSrc

if this hasn't shown up in your own CI, probably it's because your CI runs don't package up source JARs
I believe the responsible commit is f7177b589b59171a2a72e27202f195bd50ee73f0
cc @mjjc

Thank you very much @SethTisue for the bug report and for your investigation.
@n4to4 @xuwei-k do you have an idea how to fix it?
monocle] [error] (coreJVM/compile:packageSrc) java.util.zip.ZipException: duplicate entry: monocle/std/String.scala

@julien-truffaut
Looks like core/jvm/src/main/scala/monocle/std/String.scala should have been renamed to something like core/jvm/src/main/scala/monocle/std/PlatformSpecificString.scala

LGTM, thanks!


Monthly emails broken in Google Inbox

From Frederik: "A tool like Litmus will help to debug" https://litmus.com

Is there any system to make sure funded projects are actually useful? For example, is this OS really more secure?

It's the "wisdom of the crowd"
Same applies to Kickstarter projects or blog posts that people actually end up reading.
It's up to all of us to spread the word about the projects that actually make sense and that we want to see succeeding in the world.

I kinda gave up three years ago, but an object in motion remains in motion and all that. Happy your team are doing well. All I can manage is the odd impressive animation.

Ironically, three years ago I started learning.

I suggest http://www.empowering-communities.org/

fixed.


Update accepted TS version

Support any 2.x version. By idea the 2.x line should not
break API and is safe to use.

Note: Make a stricter hold on version 2.x incase we break in future.


Broken. Needs revamp?

Is re-scoped-model broken per Readme? Or is it just the codesandbox build?
Seems package and example build locally.
Thank you, sir.

Sorry for the late reply. I checked out the CI logs and it seems that the codesandbox build is broken, as Parcel cannot resolve the react library. I need to check this out, thank you!

Nice. Well done, @LXSMNSYC


Update README.md

Adding information about solving slow application under passenger with message_bus running

thanks, will clean up the docs based on the example


Fixes indentation issues and formats the code

Checklist

[x] I have read the Contribution & Best practices Guide.
[x] My branch is up-to-date with the Upstream development branch.

Short description of what this resolves:
Fixes indentation issues and formats the code
Partially Fixes #1297

@mayank8318 @duttaditya18 I have opened a PR #1932 which fixes the Travis. Actually, the sponsors section of FOSSASIA 2017 has some broken links which change frequently. That's why Travis often fails. What do you think, should we remove that test?


Build the consent page using claims and scope stored in context. handle accept and deny scenarios

Build the consent page using claims and scope stored in context. handle accept and deny scenarios
accept - call auth code API
deny - display pop-up

@MonobikashDas Please add your comments and close this task


Upgrade Party!

Upgrade to latest Querqy when it is released (probably 4.10)
Bump Solr
Bump to latest SMUI
Run through the scripts to verify things still work.

@pbartusch and I are going to chat about how to get the Rules.txt into ZK, instead of doing the filesystem writing out of file, which would be more SolrCloud "native" approach.   This is a direct hack, but would work.
Longer term, we'll have a proper API in Querqy in Solr that will get the rules.txt into ZK but @renekrie is still working on this.

4.10.lucene810.0 it is for querqy-solr (just released)

@pbartusch here is the issue to track bumping SMUI and Querqy dependencies.

hi @renekrie , just talked to @epugh ...
we should consider updating the chorus setup to use spellings (ReplaceRewriter) and maybe a separate decompound rewriter.
for now, I will deactivate both for SMUI in chorus, but maybe we can deal with this extension in a follow-up CR?


The filters should work properly if the Visible Individually is on for any variant of the configurable product.

Bagisto Version: Master
Steps To reproduce--
1. Log in as an admin.
2. Create a configurable item and on Visible Individually for any variant.
3. Login as a customer.
4. Search the created product by category.
5. Try to filter the product by price.
Expected result: The filters should work properly if the Visible Individually is on for any variant of the configurable product.
Actual result: The filters are not working for the variant of any configurable product. Please find the screen recording Here

Sorting by price in ascending order also not working properly

Hi @merdiano
Thanks for reporting we will fix it and will reflect it in the upcoming released

@jitendra-webkul
I have taken a pull from the master and now, this issue is fixed. so I am closing this issue.
And I have attached a screenshot Here, for future reference.


Cannot migrate from rest to nessie

Hi I am trying to migrate from rest to nessie but I am getting unable to load AWS credentials although I put the environment variables of AWS
can you show an example for migrating from rest to nessie

@tamarinkeisari we use github issues for code related stuff.
Mind heading over to our Zulip chat and ask there?


404 page is broken

See image. It just says "Hello" overtop the SLSA logo and no text in the body.

Fixed with fbda021a82f8f1a0d76e37aac2c73b833aa2f939


content validation report: fixing broken internal links

@MandiOhlinger,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:warning: Validation status: warnings

File
Status
Preview URL
Details

biztalk/adapters-and-accelerators/install-biztalk-adapter-pack-2013-r2-and-2013.md
:warning:Warning
View
Details

biztalk/adapters-and-accelerators/update-or-uninstall-the-biztalk-adapter-pack-2016.md
:warning:Warning
View
Details

biztalk/adapters-and-accelerators/accelerator-swift/disassembling-inbound-batches.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/fileact-interact/step-2a-add-file-receive-locations-for-fileact-store-and-forward-scenario.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/install-biztalk-adapter-pack-2013-r2-and-2013.md

Line 576: [Warning] Invalid file link:(~/adapter-sap/install-custom-rfcs-for-the-data-provider-for-sap.md).
Line 837: [Warning] Invalid file link:(~/adapter-sap/install-custom-rfcs-for-the-data-provider-for-sap.md).

biztalk/adapters-and-accelerators/update-or-uninstall-the-biztalk-adapter-pack-2016.md

Line 247: [Warning] Invalid file link:(~/adapter-sap/install-custom-rfcs-for-the-data-provider-for-sap.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:warning: Validation status: warnings

File
Status
Preview URL
Details

biztalk/adapters-and-accelerators/install-biztalk-adapter-pack-2013-r2-and-2013.md
:warning:Warning
View
Details

biztalk/adapters-and-accelerators/update-or-uninstall-the-biztalk-adapter-pack-2016.md
:warning:Warning
View
Details

biztalk/adapters-and-accelerators/accelerator-swift/disassembling-inbound-batches.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/fileact-interact/step-2a-add-file-receive-locations-for-fileact-store-and-forward-scenario.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/install-biztalk-adapter-pack-2013-r2-and-2013.md

Line 576: [Warning] Invalid file link:(~/../adapter-sap/install-custom-rfcs-for-the-data-provider-for-sap.md).
Line 837: [Warning] Invalid file link:(~/../adapter-sap/install-custom-rfcs-for-the-data-provider-for-sap.md).

biztalk/adapters-and-accelerators/update-or-uninstall-the-biztalk-adapter-pack-2016.md

Line 247: [Warning] Invalid file link:(~/../adapter-sap/install-custom-rfcs-for-the-data-provider-for-sap.md).

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

biztalk/adapters-and-accelerators/accelerator-swift/disassembling-inbound-batches.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/fileact-interact/step-2a-add-file-receive-locations-for-fileact-store-and-forward-scenario.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/install-biztalk-adapter-pack-2013-r2-and-2013.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/update-or-uninstall-the-biztalk-adapter-pack-2016.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

biztalk/adapters-and-accelerators/accelerator-swift/disassembling-inbound-batches.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/fileact-interact/step-2a-add-file-receive-locations-for-fileact-store-and-forward-scenario.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/install-biztalk-adapter-pack-2013-r2-and-2013.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/update-or-uninstall-the-biztalk-adapter-pack-2016.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

biztalk/adapters-and-accelerators/accelerator-swift/disassembling-inbound-batches.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/fileact-interact/step-2a-add-file-receive-locations-for-fileact-store-and-forward-scenario.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/install-biztalk-adapter-pack-2013-r2-and-2013.md
:white_check_mark:Succeeded
View

biztalk/adapters-and-accelerators/update-or-uninstall-the-biztalk-adapter-pack-2016.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


refactor routes.ts and app.tsx

organizing the routes outside of App.tsx

this will NOT change the behavior of the app what so ever *

@YanivWein24 I merged @blumental-dev's changes since you opened this so you need to add the new routes he added and resolve conflicts


caches: enable static mirror lib on Windows

Enable building and installation for the static mirror library on Windows.

@swift-ci please test


Add documentation on helper methods

Closes https://github.com/blakeembrey/sql-template-tag/issues/9.

Pull Request Test Coverage Report for Build 58

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 56:
0.0%

Covered Lines:
45

Relevant Lines:
45

💛  - Coveralls


Message lost because emqx operator reconcile frequently

Describe the bug
The emqx operator reload the emqx_auth_mysql very frequently. When the message come to emqx when emqx_auth_mysql is reloading and the cache need to be refreshed, the message will failed because the hook is disappearing. Since the result will cache, so the client will failed until cache refreshed.
To Reproduce
Deploy the emqx by emqx operator , and auth by mysql.
Expected behavior
The message will not dropped.
Anything else we need to know?:
Broker EMQX with v4.4.3
EMQX operator with
Environment details::

Kubernetes version:
Cloud-provider/provisioner:
emqx-operator version: 1.2.0
Install method: e.g. helm/static manifests

Sorry about, could you please give me some log for reloader emqx_auth_mysql ?  this is very helpful in solving this problem

2022-12-03T14:57:47.837206+00:00 [notice] Application: emqx_auth_mysql. Exited: stopped. Type: temporary.
2022-12-03T14:57:47.837400+00:00 [info] [Plugins] Stop plugin emqx_auth_mysql successfully
2022-12-03T14:57:47.838600+00:00 [error] [Plugins] Write File "/mounted/plugins/data/loaded_plugins" Error: erofs
2022-12-03T14:57:47.847704+00:00 [debug] Adding Defaults
2022-12-03T14:57:47.847835+00:00 [debug] Right Hand Side Substitutions
2022-12-03T14:57:47.847910+00:00 [debug] Applying Datatypes
2022-12-03T14:57:47.848200+00:00 [debug] Validation
2022-12-03T14:57:47.848365+00:00 [debug] Applied 1:1 Mappings
2022-12-03T14:57:47.848514+00:00 [debug] Running translation for emqx_auth_mysql.server
2022-12-03T14:57:47.848935+00:00 [debug] Running translation for emqx_auth_mysql.password_hash

This log is from EMQX cluster. Another question: where to get the log of emqx operator?

What other logs do you want to know? The plugins were not restarted since I remove emqx oprator, and no more message dropped due to Not authorized anymore.

The plugins were not restarted since I remove emqx oprator, and no more message dropped due to Not authorized anymore.

So stranger, could you please update EMQX Operator to 1.2.8 and try again ?
If this issue is still, please let me know the EMQX container log, the EMQX reloader container log, the EMQX Operator container log ( you can get EMQX Operator pod in emqx-operator-system namespace ), and any other information you think would be useful, thanks

Log from EMQX cluster：
2022-12-03T14:57:47.442744+00:00 [debug]<PHONE_NUMBER>01315@<IP_ADDRESS>:55270 [MQTT] SEND PUBACK(Q0, R0, D0, PacketId=63997, ReasonCode=0)
2022-12-03T14:57:47.837206+00:00 [notice] Application: emqx_auth_mysql. Exited: stopped. Type: temporary.
2022-12-03T14:57:47.837400+00:00 [info] [Plugins] Stop plugin emqx_auth_mysql successfully
2022-12-03T14:57:47.838600+00:00 [error] [Plugins] Write File "/mounted/plugins/data/loaded_plugins" Error: erofs
2022-12-03T14:57:47.847704+00:00 [debug] Adding Defaults
2022-12-03T14:57:47.847835+00:00 [debug] Right Hand Side Substitutions
2022-12-03T14:57:47.847910+00:00 [debug] Applying Datatypes
2022-12-03T14:57:47.848200+00:00 [debug] Validation
2022-12-03T14:57:47.848365+00:00 [debug] Applied 1:1 Mappings
2022-12-03T14:57:47.848514+00:00 [debug] Running translation for emqx_auth_mysql.server
2022-12-03T14:57:47.848935+00:00 [debug] Running translation for emqx_auth_mysql.password_hash
2022-12-03T14:57:47.849036+00:00 [debug] Applied Translations
2022-12-03T14:57:48.002993+00:00 [debug]<PHONE_NUMBER>01315@<IP_ADDRESS>:36522 [MQTT] RECV <<50,192,2,0,35,50,4,...>>
2022-12-03T14:57:48.003252+00:00 [debug]<PHONE_NUMBER>01315@<IP_ADDRESS>:36522 [MQTT] RECV PUBLISH(Q1, R0, D0, Topic=202112281201315616176/publish, PacketId=30344, Payload=<<35,35,27,2,48,xxxxxxx>>)
2022-12-03T14:57:48.003925+00:00 [warning]<PHONE_NUMBER>01315@<IP_ADDRESS>:36522 [Channel] Cannot publish message to<PHONE_NUMBER>01315/publishdue to Not authorized.
2022-12-03T14:57:48.004047+00:00 [debug]<PHONE_NUMBER>01315@<IP_ADDRESS>:36522 [MQTT] SEND PUBACK(Q0, R0, D0, PacketId=30344, ReasonCode=135)
2022-12-03T14:57:48.032847+00:00 [info] [Plugins] Started plugins: [emqx_auth_mysql]
2022-12-03T14:57:48.032936+00:00 [info] [Plugins] Load plugin emqx_auth_mysql successfully

And I am sorry , because this is the production environment. It is a risk to reproduce it.

1.6701544253086896e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "stationemqx-emqx-2-retainer", "namespace": "prod-stationemqx-2"}
1.6701544253088424e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "exchange-emqx-dashboard", "namespace": "prod-exchangeemqx"}
1.670154425308951e+09   DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "exchange-emqx-retainer", "namespace": "prod-exchangeemqx"}
1.6701544253090365e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "emqxbroker-rule-engine", "namespace": "pre-exchange-emqx"}
1.6701544253091166e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "emqxbroker-management", "namespace": "pre-exchange-emqx"}
1.670154425317561e+09   DEBUG   events  Normal  {"object": {"kind":"ConfigMap","namespace":"pre-exchange-emqx","name":"emqxbroker-plugins-config","uid":"f727a182-72b3-43dd-b787-bd83432963a2","apiVersion":"v1","resourceVersion":"76717074"}, "reason": "Updated", "message": "Update resource successfully"}
1.6701544258570118e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544264061954e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544269666483e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544269753249e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "emqx-prometheus", "namespace": "prod-stationemqx-2"}
1.6701544269754632e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "exchange-emqxauthmysql", "namespace": "pre-exchange-emqx"}
1.6701544269840934e+09  DEBUG   events  Normal  {"object": {"kind":"ConfigMap","namespace":"pre-exchange-emqx","name":"emqxbroker-plugins-config","uid":"f727a182-72b3-43dd-b787-bd83432963a2","apiVersion":"v1","resourceVersion":"76717081"}, "reason": "Updated", "message": "Update resource successfully"}
1.6701544275951638e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_auth_mysql to container emqx successfully"}
1.6701544282024267e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_auth_mysql to container emqx successfully"}
1.6701544288377151e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_auth_mysql to container emqx successfully"}
1.670154428846684e+09   DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "emqxbroker-retainer", "namespace": "pre-exchange-emqx"}
1.6701544288468287e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "stationemqx-emqx-2-management", "namespace": "prod-stationemqx-2"}
1.670154428855722e+09   DEBUG   events  Normal  {"object": {"kind":"ConfigMap","namespace":"prod-stationemqx-2","name":"stationemqx-emqx-2-plugins-config","uid":"71036272-d8fd-40c4-91d8-9165d2445d89","apiVersion":"v1","resourceVersion":"76717096"}, "reason": "Updated", "message": "Update resource successfully"}
1.670154429457018e+09   DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"prod-stationemqx-2","name":"stationemqx-emqx-2","uid":"3c156e18-af31-4df6-9d5a-929cd3878a4a","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715936"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.670154430069236e+09   DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"prod-stationemqx-2","name":"stationemqx-emqx-2","uid":"3c156e18-af31-4df6-9d5a-929cd3878a4a","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715936"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544307623181e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"prod-stationemqx-2","name":"stationemqx-emqx-2","uid":"3c156e18-af31-4df6-9d5a-929cd3878a4a","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715936"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544307697613e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "emqxbroker-dashboard", "namespace": "pre-exchange-emqx"}
1.6701544307801445e+09  DEBUG   events  Normal  {"object": {"kind":"ConfigMap","namespace":"pre-exchange-emqx","name":"emqxbroker-plugins-config","uid":"f727a182-72b3-43dd-b787-bd83432963a2","apiVersion":"v1","resourceVersion":"76717111"}, "reason": "Updated", "message": "Update resource successfully"}
1.6701544313120747e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_dashboard to container emqx successfully"}
1.6701544318441486e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_dashboard to container emqx successfully"}
1.6701544323835957e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"pre-exchange-emqx","name":"emqxbroker","uid":"0c47dbe0-7cde-4d47-ba5a-4b7fffe37847","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715938"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_dashboard to container emqx successfully"}
1.6701544323907194e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "exchange-emqx-rule-engine", "namespace": "prod-exchangeemqx"}
1.670154432390865e+09   DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "exchange-emqx-management", "namespace": "prod-exchangeemqx"}
1.6701544323993552e+09  DEBUG   events  Normal  {"object": {"kind":"ConfigMap","namespace":"prod-exchangeemqx","name":"exchange-emqx-plugins-config","uid":"5c035d72-1cc0-4134-9185-afbab1ba631e","apiVersion":"v1","resourceVersion":"76717123"}, "reason": "Updated", "message": "Update resource successfully"}
1.6701544330627728e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"prod-exchangeemqx","name":"exchange-emqx","uid":"ce8af907-a8d4-46e5-91d3-0f8b155d654c","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715942"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544337655463e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"prod-exchangeemqx","name":"exchange-emqx","uid":"ce8af907-a8d4-46e5-91d3-0f8b155d654c","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715942"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544344218457e+09  DEBUG   events  Normal  {"object": {"kind":"EmqxBroker","namespace":"prod-exchangeemqx","name":"exchange-emqx","uid":"ce8af907-a8d4-46e5-91d3-0f8b155d654c","apiVersion":"apps.emqx.io/v1beta3","resourceVersion":"76715942"}, "reason": "Exec", "message": "exec emqx_ctl plugins reload emqx_management to container emqx successfully"}
1.6701544344314559e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "emqx-prometheus", "namespace": "prod-exchangeemqx"}
1.6701544344316096e+09  DEBUG   controller.emqxplugin   Reconcile EmqxPlugin    {"reconciler group": "apps.emqx.io", "reconciler kind": "EmqxPlugin", "name": "station-emqxauthmysql", "namespace": "prod-stationemqx-2"}
1.6701544344402394e+09  DEBUG   events  Normal  {"object": {"kind":"ConfigMap","namespace":"prod-stationemqx-2","name":"stationemqx-emqx-2-plugins-config","uid":"71036272-d8fd-40c4-91d8-9165d2445d89","apiVersion":"v1","resourceVersion":"76717142"}, "reason": "Updated", "message": "Update resource successfully"}

Hi, @stayhungry001 I commend update EMQX Operator to 1.2.8, the 1.2.0 is to old, in 1.2.0, EMQX Operator use emqx_ctl to manager EMQX Plugins, it is very inefficient, and in some boundary conditions will applied wrong plug-in configuration
And in 1.2.8, we solved thie error log: 2022-12-03T14:57:47.838600+00:00 [error] [Plugins] Write File "/mounted/plugins/data/loaded_plugins" Error: erofs
But update EMQX Operator will make restart EMQX Pod, so be carefully, I think you should test it.

This issue has been automatically marked as stale because it has not had recent activity.
It will be closed.
Thank you for your contributions.


fix core_depthplot

Changes made to ipmag in commit 0c98d00f226553b0a9f8648ac729348cac18fd36 appear to have been overwritten, not sure how.

This commit 44a1b483540ae7027bfabccab4bb3ffdf349d3ab overwrote core_depthplot so that it no longer works with MagIC data model 3.  I think this was just an accident/git mess up.
@Caoimhinmg, I plan to change the core_depthplot function back to where it was as of this commit:  3001f9aa99e067931a8b254deadc6d9e59991949.  That (use correct file name defaults in core_depthplot if data_model_num is 3) and 0c98d00f226553b0a9f8648ac729348cac18fd36 (have core_depthplot default to DM 3, update it to work with DM 3) are the two commits that appear to be overwritten.  Let me know if this seems incorrect.


Added a link to search for content in Teams private channels

@markjjo - for your review.

@mahage-msft PR merged. Thanks for adding this. I may add same note to a few other topics.


Cannot remove embeds nor components from a message

ComponentContext.edit_origin and SlashMessage.edit (SlashMessage._slash_edit) do not support using an empty list [] for the embeds nor components keyword argument, which prevents removing them from a message.

Going to add onto this - this seems to be due to how the library check for equality and the existence of kwargs. Empty lists are falsey values in Python, and since the library does if kwarg.get("kwarg") in order to see if a kwarg exists, this means that even if the kwarg exists, since [] is falsey, the library also mistakenly thinks it's false and so doesn't exist.
This can be solved simply by using is not None for those checks instead, Might make the PR myself to fix this, who knows.


[Issue] azd up should create a new directory for better dx

Describe the bug
Like every other common developer cli-tool (like git), azd should create the directory when azd up is ran.
Expected behavior
Create a directory with the name of the template
Environment
Information on your environment:
azd version 0.3.0-beta.1

We'll want to consider side effects of doing this, like azd up runs multiple commands assuming current directory, if azd init puts in a subfolder, then we'll need to execute sub commands in the context of that new subfolder.
This should be achievable now that we have --cwd option.

Needs investigation and discussion on what other CLI's/tools do.

Closing in favour of https://github.com/Azure/azure-dev/issues/181


[Event Request] Codeunit 80 - f(x) FinalizePosting

Hi!
We need an additional event before the CreateOutboxSalesInvTrans/CreateOutboxCrMemoTrans in f(x) FinalizePosting in the Sales-Post codeunit. We need the IsHandled pattern to be included.

Thanks!

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


"Application error: a client-side exception has occurred" on drilldown page

🐛 Bug Report
🔎 Describe the Bug
When hovering the mouse on the Session Replay graph I get "Application error: a client-side exception has occurred (see the browser console for more information)."
🔄 Reproduction Steps
After running a session, go to Session Drilldown and hover the mouse on the Session Replay graph.
🙁 Expected Behavior
Application not crashing :)
📸 Screenshots

🔍 Additional Context
From the browser console
145-b1c31d5a593e826b.js:1 TypeError: e.substring is not a function
at d (layout-daab6a9ae5cf92e0.js:1:17848)
at page-71a73c4069089a9a.js:1:6154
at Array.map ()
at I (page-71a73c4069089a9a.js:1:5940)
at Y (page-71a73c4069089a9a.js:1:9712)
at rk (fd9d1056-241e146bacb67727.js:1:40370)
at iB (fd9d1056-241e146bacb67727.js:1:116379)
at o4 (fd9d1056-241e146bacb67727.js:1:94632)
at fd9d1056-241e146bacb67727.js:1:94454
at o3 (fd9d1056-241e146bacb67727.js:1:94461)
at oQ (fd9d1056-241e146bacb67727.js:1:91948)
at oj (fd9d1056-241e146bacb67727.js:1:91373)
at MessagePort.w (145-b1c31d5a593e826b.js:6:29386)
Thank you for helping us improve Agentops!

@adunato thanks for posting this-- looking into it now!

@adunato, do you have the session id that you were looking that? That would be tremendously helpful in troubleshooting! Thanks!

@siyangqiu here's the session id (sorry, I couldn't find a way to export it in text format)

Update: I now see a change of behaviour. Yesterday I could not select any action in the "session replay" tab but I could see a well formatted output in the "action" tab for the action selected by default. Now the crash issue has disappeared without me doing anything other than restarting my machine, but the action tab is lacking any meaningful data (see screenshot).
For context I'm using crew.ai with Anthropic LLM, let me know if I should close this bug and open another one related to the data visualisation.

Update: I now see a change of behaviour. Yesterday I could not select any action in the "session replay" tab but I could see a well formatted output in the "action" tab for the action selected by default. Now the crash issue has disappeared without me doing anything other than restarting my machine, but the action tab is lacking any meaningful data (see screenshot).
For context I'm using crew.ai with Anthropic LLM, let me know if I should close this bug and open another one related to the data visualisation.

@adunato We fixed the crashing bug, but you're right-- this isn't good either. We can keep this issue alive.
Your data should be good, but the way it renders is wrong now. Will have a fix in ASAP.

I wrote a custom callback handler for this and now it works OK, but I think using crewai + Anthropic on agentops require quite a bit of customisation on both event formatting (issue discussed here) but also agent tagging (@track_agent) wasn't working for me out of the box.
For reference here's my messy code for the callback handler
`"""Callback Handler that prints to input file."""
from future import annotations
from typing import TYPE_CHECKING, Any, Dict, List, Optional
from langchain_core.callbacks.base import BaseCallbackHandler
from langchain_core.utils import print_text
from langchain.schema.output import LLMResult
from langchain_core.outputs.chat_generation import ChatGenerationChunk
if TYPE_CHECKING:
from langchain_core.agents import AgentAction, AgentFinish
from log.text_handler import TextHandler
import agentops
from agentops import record_function
from agentops import ActionEvent, LLMEvent
from crewai.agent import CrewAgentExecutor
import re
import ast
class CrewAIAnthropicAgentCallbackHandler(BaseCallbackHandler):
def flatten_dict_to_string(self, input_dict):
    # Create list to hold key-value pairs in string format
    flattened = []
    for key, value in input_dict.items():
        # Add the key-value pair as a string to the list
        flattened.append(f"{key}: {value}")
    # Join all elements in the list into a single string, separated by ", "
    return ", ".join(flattened)

def extract_partial_variables_string(self, data_string):
    # Regular expression to find the partial_variables dictionary
    pattern = r"partial_variables=\{(.*?)\}"
    # Search the string using the pattern
    match = re.search(pattern, data_string, re.DOTALL)
    if match:

        # Replace \' with " outside of words
        # fixed_data = re.sub(r"(?<!\\)'", '"', match.group(1))
        fixed_data = match.group(1)
        return fixed_data.replace(r"'", "")

    return ""

def extract_goal(self,text):
    # Updated regex pattern to include \', after the value inside single quotes
    match = re.search("goal:\s*(.+?),", text)
    if match:
        return match.group(1)  # This returns the content within the single quotes right before the sequence \',
    return None  # Returns None if no match is found

def extract_role(self,text):
    # Updated regex pattern to include \', after the value inside single quotes
    match = re.search("role:\s*(.+?),", text)
    if match:
        return match.group(1)  # This returns the content within the single quotes right before the sequence \',
    return None  # Returns None if no match is found

def extract_backstory(self,text):
    # Updated regex pattern to include \', after the value inside single quotes
    match = re.search("backstory:\s*\"(.+)\"", text)
    if match:
        return match.group(1)  # This returns the content within the single quotes right before the sequence \',
    return None  # Returns None if no match is found

def extract_agent_details(self, serialized):
    partial_variables = self.extract_partial_variables_string(serialized["repr"])
    goal = self.extract_goal(partial_variables)
    role = self.extract_role(partial_variables)
    backstory = self.extract_backstory(partial_variables)
    agent_details = f"goal:{goal}\n role:{role}\n backstory:{backstory}"
    return agent_details

def __init__(self, color: Optional[str] = None, file_path: Optional[str] = None) -> None:
    self.color = color
    self.file_path = file_path
    self.file = None
    if file_path:
        self.file = open(file_path, 'a')  # Open for appending
    self.text_handler = TextHandler(file_path)

def __del__(self):
    if self.file:
        self.file.close()

def _print(self, message: str) -> None:
    if self.file:
        self.file.write(message + '\n')
    else:
        print(message)

def on_chain_start(
    self, serialized: Dict[str, Any], inputs: Dict[str, Any], **kwargs: Any
) -> None:
    """Print out that we are entering a chain."""
    agent_details = self.extract_agent_details(serialized)
    self.text_handler.print_text(f"on_chain_start:{agent_details}")
    agentops.record(ActionEvent(action_type="on_chain_start", params=self.flatten_dict_to_string(inputs)+"\n\n"+agent_details))

def on_chain_end(self, outputs: Dict[str, Any], **kwargs: Any) -> None:
    """Print out that we finished a chain."""
    self.text_handler.print_text(f"on_chain_end:{self.flatten_dict_to_string(outputs)}")
    agentops.record(ActionEvent(action_type="on_chain_end", returns=self.flatten_dict_to_string(outputs)))

def on_llm_start(
        self, serialized: Dict[str, Any], prompts: List[str], **kwargs: Any
    ) -> Any:
        """Run when LLM starts running."""
        self.text_handler.print_text(f"on_llm_start:{prompts[0]}")
        agentops.record(LLMEvent(prompt=prompts[0], returns="on_llm_start"))

def on_llm_end(self, response: LLMResult, **kwargs: Any) -> Any:
    """Run when LLM ends running."""
    chat_generation_chunk = response.generations[0][0];
    self.text_handler.print_text(f"on_llm_end:{chat_generation_chunk.text}")
    agentops.record(LLMEvent(completion=chat_generation_chunk.text, returns="on_llm_end"))

def on_agent_action(
    self, action: AgentAction, color: Optional[str] = None, **kwargs: Any
) -> Any:
    """Run on agent action."""
    self.text_handler.print_text(f"on_agent_action:{action.log}")
    agentops.record(ActionEvent(action_type="on_agent_action", returns=action.log))

def on_tool_end(
    self,
    output: Any,
    color: Optional[str] = None,
    observation_prefix: Optional[str] = None,
    llm_prefix: Optional[str] = None,
    **kwargs: Any,
) -> None:
    """If not the final action, print out observation."""
    output = str(output)
    if observation_prefix is not None:
        self.text_handler.print_text(f"\n{observation_prefix}")
    self.text_handler.print_text(output, color=color or self.color)
    if llm_prefix is not None:
        self.text_handler.print_text(f"\n{llm_prefix}")

def on_text(
    self,
    text: str,
    color: Optional[str] = None,
    end: str = "",
    **kwargs: Any,
) -> None:
    """Run when agent ends."""
    self.text_handler.print_text(text, color=color or self.color, end=end)

def on_agent_finish(
    self, finish: AgentFinish, color: Optional[str] = None, **kwargs: Any
) -> None:
    """Run on agent end."""
    agentops.record(ActionEvent(action_type="on_agent_finish", returns=finish.log))
    self.text_handler.print_text(f"on_agent_finish:{finish.log}")
    self.text_handler.print_text(finish.log, color=color or self.color, end="\n")

`
And how I handled Agent tagging
`class ArticleSectionWriter(Agent):
agent_ops_agent_id: UUID4 = Field(
default_factory=uuid.uuid4,
frozen=True,
description="Unique identifier for the object, not set by user.",
)
agent_ops_agent_name: str = Field(default="ArticleSectionWriter")
def __init__(__pydantic_self__, **data):
    super().__init__(**data)
    Client().create_agent(__pydantic_self__.agent_ops_agent_id, __pydantic_self__.agent_ops_agent_name)

`

Update: I now see a change of behaviour. Yesterday I could not select any action in the "session replay" tab but I could see a well formatted output in the "action" tab for the action selected by default. Now the crash issue has disappeared without me doing anything other than restarting my machine, but the action tab is lacking any meaningful data (see screenshot).

@adunato We've been updating the dashboard (separate from this SDK) and that's what you are seeing 😊. The [object Object] issue should not be fixed!
I'll let you confirm that the output is good before closing.

I wrote a custom callback handler for this and now it works OK, but I think using crewai + Anthropic on agentops require quite a bit of customisation on both event formatting (issue discussed here) but also agent tagging (@track_agent) wasn't working for me out of the box.
For reference here's my messy code for the callback handler
from __future__ import annotations

from typing import TYPE_CHECKING, Any, Dict, List, Optional

from langchain_core.callbacks.base import BaseCallbackHandler
from langchain_core.utils import print_text
from langchain.schema.output import LLMResult
from langchain_core.outputs.chat_generation import ChatGenerationChunk

if TYPE_CHECKING:
    from langchain_core.agents import AgentAction, AgentFinish

from log.text_handler import TextHandler

import agentops
from agentops import record_function
from agentops import ActionEvent, LLMEvent
from crewai.agent import CrewAgentExecutor
import re
import ast

class CrewAIAnthropicAgentCallbackHandler(BaseCallbackHandler):

    def flatten_dict_to_string(self, input_dict):
        # Create list to hold key-value pairs in string format
        flattened = []
        for key, value in input_dict.items():
            # Add the key-value pair as a string to the list
            flattened.append(f"{key}: {value}")
        # Join all elements in the list into a single string, separated by ", "
        return ", ".join(flattened)

    def extract_partial_variables_string(self, data_string):
        # Regular expression to find the partial_variables dictionary
        pattern = r"partial_variables=\{(.*?)\}"
        # Search the string using the pattern
        match = re.search(pattern, data_string, re.DOTALL)
        if match:

            # Replace \' with " outside of words
            # fixed_data = re.sub(r"(?<!\\)'", '"', match.group(1))
            fixed_data = match.group(1)
            return fixed_data.replace(r"'", "")

        return ""

    def extract_goal(self,text):
        # Updated regex pattern to include \', after the value inside single quotes
        match = re.search("goal:\s*(.+?),", text)
        if match:
            return match.group(1)  # This returns the content within the single quotes right before the sequence \',
        return None  # Returns None if no match is found

    def extract_role(self,text):
        # Updated regex pattern to include \', after the value inside single quotes
        match = re.search("role:\s*(.+?),", text)
        if match:
            return match.group(1)  # This returns the content within the single quotes right before the sequence \',
        return None  # Returns None if no match is found

    def extract_backstory(self,text):
        # Updated regex pattern to include \', after the value inside single quotes
        match = re.search("backstory:\s*\"(.+)\"", text)
        if match:
            return match.group(1)  # This returns the content within the single quotes right before the sequence \',
        return None  # Returns None if no match is found

    def extract_agent_details(self, serialized):
        partial_variables = self.extract_partial_variables_string(serialized["repr"])
        goal = self.extract_goal(partial_variables)
        role = self.extract_role(partial_variables)
        backstory = self.extract_backstory(partial_variables)
        agent_details = f"goal:{goal}\n role:{role}\n backstory:{backstory}"
        return agent_details

    def __init__(self, color: Optional[str] = None, file_path: Optional[str] = None) -> None:
        self.color = color
        self.file_path = file_path
        self.file = None
        if file_path:
            self.file = open(file_path, 'a')  # Open for appending
        self.text_handler = TextHandler(file_path)

    def __del__(self):
        if self.file:
            self.file.close()

    def _print(self, message: str) -> None:
        if self.file:
            self.file.write(message + '\n')
        else:
            print(message)

    def on_chain_start(
        self, serialized: Dict[str, Any], inputs: Dict[str, Any], **kwargs: Any
    ) -> None:
        """Print out that we are entering a chain."""
        agent_details = self.extract_agent_details(serialized)
        self.text_handler.print_text(f"on_chain_start:{agent_details}")
        agentops.record(ActionEvent(action_type="on_chain_start", params=self.flatten_dict_to_string(inputs)+"\n\n"+agent_details))

    def on_chain_end(self, outputs: Dict[str, Any], **kwargs: Any) -> None:
        """Print out that we finished a chain."""
        self.text_handler.print_text(f"on_chain_end:{self.flatten_dict_to_string(outputs)}")
        agentops.record(ActionEvent(action_type="on_chain_end", returns=self.flatten_dict_to_string(outputs)))

    def on_llm_start(
            self, serialized: Dict[str, Any], prompts: List[str], **kwargs: Any
        ) -> Any:
            """Run when LLM starts running."""
            self.text_handler.print_text(f"on_llm_start:{prompts[0]}")
            agentops.record(LLMEvent(prompt=prompts[0], returns="on_llm_start"))

    def on_llm_end(self, response: LLMResult, **kwargs: Any) -> Any:
        """Run when LLM ends running."""
        chat_generation_chunk = response.generations[0][0];
        self.text_handler.print_text(f"on_llm_end:{chat_generation_chunk.text}")
        agentops.record(LLMEvent(completion=chat_generation_chunk.text, returns="on_llm_end"))

    def on_agent_action(
        self, action: AgentAction, color: Optional[str] = None, **kwargs: Any
    ) -> Any:
        """Run on agent action."""
        self.text_handler.print_text(f"on_agent_action:{action.log}")
        agentops.record(ActionEvent(action_type="on_agent_action", returns=action.log))

    def on_tool_end(
        self,
        output: Any,
        color: Optional[str] = None,
        observation_prefix: Optional[str] = None,
        llm_prefix: Optional[str] = None,
        **kwargs: Any,
    ) -> None:
        """If not the final action, print out observation."""
        output = str(output)
        if observation_prefix is not None:
            self.text_handler.print_text(f"\n{observation_prefix}")
        self.text_handler.print_text(output, color=color or self.color)
        if llm_prefix is not None:
            self.text_handler.print_text(f"\n{llm_prefix}")

    def on_text(
        self,
        text: str,
        color: Optional[str] = None,
        end: str = "",
        **kwargs: Any,
    ) -> None:
        """Run when agent ends."""
        self.text_handler.print_text(text, color=color or self.color, end=end)

    def on_agent_finish(
        self, finish: AgentFinish, color: Optional[str] = None, **kwargs: Any
    ) -> None:
        """Run on agent end."""
        agentops.record(ActionEvent(action_type="on_agent_finish", returns=finish.log))
        self.text_handler.print_text(f"on_agent_finish:{finish.log}")
        self.text_handler.print_text(finish.log, color=color or self.color, end="\n")

And how I handled Agent tagging
class ArticleSectionWriter(Agent):
    agent_ops_agent_id: UUID4 = Field(
        default_factory=uuid.uuid4,
        frozen=True,
        description="Unique identifier for the object, not set by user.",
    )
    agent_ops_agent_name: str = Field(default="ArticleSectionWriter")

    def __init__(__pydantic_self__, **data):
        super().__init__(**data)
        Client().create_agent(__pydantic_self__.agent_ops_agent_id, __pydantic_self__.agent_ops_agent_name)

This is amazing, thanks for writing this. Curious, other than the [object Object] thing (which @siyangqiu mentioned has been fixed), what does the callback handler you wrote help with?
FYI- we have an open PR with CrewAI that should close today. This should obviate the need for any advanced integration stuff with Crew https://github.com/joaomdmoura/crewAI/pull/411.
When that closes, Crew should work much more easily.

Update: I now see a change of behaviour. Yesterday I could not select any action in the "session replay" tab but I could see a well formatted output in the "action" tab for the action selected by default. Now the crash issue has disappeared without me doing anything other than restarting my machine, but the action tab is lacking any meaningful data (see screenshot).

@adunato We've been updating the dashboard (separate from this SDK) and that's what you are seeing 😊. The [object Object] issue should not be fixed!
I'll let you confirm that the output is good before closing.

Great, it now displays the output correctly 😊
Thanks for fixing this, I will close the issue.

This is amazing, thanks for writing this. Curious, other than the [object Object] thing (which @siyangqiu mentioned has been fixed), what does the callback handler you wrote help with?
FYI- we have an open PR with CrewAI that should close today. This should obviate the need for any advanced integration stuff with Crew joaomdmoura/crewAI#411.
When that closes, Crew should work much more easily.

Thanks for the update. It gives me more control on the events being traced but mostly allows me to filter out boilerplate logging information and only print out relevant content. Comparison screenshot below between using agentops.langchain_callback_handler (after the fix) and the custom callback handler I wrote.

Closed as now action output is displayed correctly.


Question: Does this plugin work with energy products?

Hi:
The only examples and discussion I can see is for vehicles. Teslemetry supports energy products (powerwalls and solar), so I wanted to check if the Homebridge plugin also supported those.
Thanks

It will, but currently doesnt. To help me with this, can you describe the kind of things you would want to do with your energy products in Homekit?

It will, but currently doesnt. To help me with this, can you describe the kind of things you would want to do with your energy products in Homekit?

I currently connect to my Powerwall via the local API and I want to have a backup process in place in case that stops working. Also, there are certain attributes (e.g. stormwatch status etc.) that are not available via local API. I'm particularly interested in setting up alerts when stormwatch kicks in and goes off as I can then shut off major power consuming devices (HVAC, oven etc.).
I'm reluctant to set up an instance of Home Assistant as I already have multiple automation products (Hubitat, Node-RED, Homebridge, Apple Home)!

Attached are examples of the data that I'm gathering from my Powerwall.... hope this gives some idea of what I'm using it for.  Let me know if you have any questions.. Thanks again.

I have added some basic switches in the latest release such as battery export, and storm watch participation.

Thanks - I have to upgrade my instance of HB before I can use the plug-in.


[1.21.1] ring of repair not work in enderchest

ring of repair work in player inventory, not work in enderchest.
version
gobber 2.10.14
neoforge 21.1.61

I just tested this out in my latest modpack and it works fine for me.   I'm guessing some other mod is affecting it.


Add facet results to search page iterator

closes #10149

Can one of the admins verify this patch?

The API shape looks good.

I need to update some other docs I will add samples in that docs PR


running project with js error

I've stripped out the ts and replaced with js but cant get index.js to read them i think.
After running prisma deploy and then yarn dev i'm getting the following error:
[nodemon] starting `node -r dotenv/config src/index.js`
/Users/prisc_000/code/BHYV/airbnb-server/node_modules/graphql-yoga/node_modules/graphql-tools/dist/schemaGenerator.js:311
        Object.keys(resolveFunctions[typeName]).forEach(function (fieldName) {
               ^

TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at /Users/prisc_000/code/BHYV/airbnb-server/node_modules/graphql-yoga/node_modules/graphql-tools/dist/schemaGenerator.js:311:16
    at Array.forEach (<anonymous>)
    at addResolveFunctionsToSchema (/Users/prisc_000/code/BHYV/airbnb-server/node_modules/graphql-yoga/node_modules/graphql-tools/dist/schemaGenerator.js:303:35)
    at _generateSchema (/Users/prisc_000/code/BHYV/airbnb-server/node_modules/graphql-yoga/node_modules/graphql-tools/dist/schemaGenerator.js:90:5)
    at Object.makeExecutableSchema (/Users/prisc_000/code/BHYV/airbnb-server/node_modules/graphql-yoga/node_modules/graphql-tools/dist/schemaGenerator.js:102:20)
    at new GraphQLServer (/Users/prisc_000/code/BHYV/airbnb-server/node_modules/graphql-yoga/dist/src/index.js:89:53)
    at Object.<anonymous> (/Users/prisc_000/code/BHYV/airbnb-server/src/index.js:5:16)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
[nodemon] app crashed - waiting for file changes before starting...

This is index.js. Error is on const server on line 5.
const { GraphQLServer } = require('graphql-yoga')
const { Prisma } = require('./generated/prisma')
const { resolvers, fragmentReplacements } = require('./resolvers')

const server = new GraphQLServer({
  typeDefs: './src/schema.graphql',
  resolvers,
  context: req => ({
    ...req,
    db: new Prisma({
      // typeDefs: 'src/generated/prisma.graphql',
      fragmentReplacements,
      endpoint: process.env.PRISMA_ENDPOINT,
      secret: process.env.PRISMA_SECRET,
      debug: true,
    }),
  }),
})

server.start(({ port }) =>
  console.log(`Server is running on http://localhost:${port}`),
)

Any idea on what is going on here?
graphqlconfig.yml
projects:
  app:
    schemaPath: src/schema.graphql
    includes:
      - 'queries/{booking,queries}.graphql'
    extensions:
      endpoints:
        default: 'http://localhost:4000'
  prisma:
    schemaPath: "src/generated/prisma.graphql"
    includes: ["database/seed.graphql"]
    extensions:
      prisma: database/prisma.yml
      prepare-binding:
        output: src/generated/prisma.js
        generator: prisma-js

figured it out. working repo is https://github.com/idkjs/graphql-server-example
Converting from typescript to js

First change all file names to js then remove any typings. vscode will tell you where they are in problems tab.

deps: yarn add babel-cli babel-preset-env babel-plugin-transform-object-rest-spread -D
To get this to run I had to change the start scripts and add "babel" property to package.json

  "scripts": {
    ...
    "babel-node": "babel-node --presets=env",
    "start": "nodemon -e js,graphql -x babel-node src/index.js",
    "build": "rm -rf dist && graphql prepare",
    ...
  },
  ...
    "babel": {
    "presets": ["env"],
    "plugins": ["transform-object-rest-spread"]
  },

Set up dotenv for es6 by adding src/env.js then calling it from src/index.js. solution in this issue
See src/env.js and src/index.js
Change graphqlconfig.yml prepare-bindings to:

prepare-binding:
        output: src/generated/prisma.js
        generator: prisma-js


± small fix for hash condition check => changed to case insensitive.

when hash check is case sensitive, it cause the framework to keep updating the affected file when feed file FileChecksumCondition's hash value contains lower case chars.
Making string comparison to ignore case solves the issue.

Thanks!


Added translation to Czech language

I have added Czech translation to the sphinx-proof.
PS. This is my first commit - I hope that I have done everything correctly.

thanks @tomastalasek for this PR. Sorry for the delay in getting back to you.
Is there a simple example that we could add to the test cases?

I guess we can just do the conversion part in one test case. Testing for each language will be a bit hectic. What do you think @mmcky? @tomastalasek can you update the branch with the latest master, so the test cases pass.

Hi @AakashGfude Aska and @mmcky. I have updated the branch as requested. But I have a question the "test case". I am not sure, what I should do (as I stated, this is my first commit and I am more mathematician than programmer). Can you please give me hint? Thanks

Hi @tomastalasek, thank you for updating. Don't worry we will not deal with a test case here. I will create a test case for translations in a separate PR.

Codecov Report

Merging #75 (cfce89e) into master (2b8c71a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #75   +/-   ##
=======================================
  Coverage   88.26%   88.26%
=======================================
  Files           6        6
  Lines         358      358
=======================================
  Hits          316      316
  Misses         42       42

Flag
Coverage Δ

pytests
88.26% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

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 2b8c71a...cfce89e. Read the comment docs.

thanks @tomastalasek and @AakashGfude


Leading zeros

I do have a similar issue with a phone number which get trimmed the first 0 from the phone prefix !
// Export clients to .csv file
return Excel::create('clients_list', function($excel) use ($clients) {
$excel->sheet('Clients', function($sheet) use ($clients) {
$sheet->setColumnFormat(array(
//id
"A" => "0",
//name
"B" => "@",
//phone
"C" => "@",
));
$sheet->fromArray($clients);
});
})->download('csv');
I did used @ for the set column format for the value I expect to be shown as a phone number<PHONE_NUMBER> but I get 722334455
Please tell me where I do wrong ?

Check this similar issue #613 .

I am getting same issue as @malutanpetronel, please provide a solution for this.

I solved it from @simplenotezy response on https://github.com/Maatwebsite/Laravel-Excel/issues/764


chore: add space after exacts

Too often tempted to change these during other PRs, so doing a mass edit here.

Note, we might want to do the same thing for other formatting errors from #4519


Updated Pre-reqs

Added subnet delegation info

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

Thanks , i've created a new PR #40920
This one can be abandoned.  How do i do that?


Register containers configuration in discovery service

In order to prepare Container Rebalancing (https://github.com/docker/swarm/issues/599), Scalling and Global Schduling (https://github.com/docker/swarm/issues/601) we could save the containers configuration in the discovery service, using SwarmID.
Using something like /swarm/containers///

Write by the nodes through discovery.Register
Watch by the manager through discovery.Watch

With this info the manager will be able to know wich containers are down and take action.
Do you think it's a good starting point for rebalancing/scalling/auto-scalling ?

Closing due to lack of activity. Please reopen if you wish to continue discussing it.


[Bug]: string inline snapshot diff when running one or all test

Version
29.2.2
Steps to reproduce

git clone https://github.com/renovatebot/renovate.git
git checkout bug/jest-snapshot-error
yarn install
yarn jest lib/workers/repository/updates/generate.spec.ts --coverage false

Expected behavior
jest should not escape newlines in string snapshots, like this
      expect(res.commitMessage).toMatchInlineSnapshot(`
        "

        | datasource | package     | from  | to    |
        | ---------- | ----------- | ----- | ----- |
        | npm        | another-dep | 5.1.1 | 5.1.2 |
        | npm        | some-dep    | 5.1.0 | 5.1.2 |
        | docker     | some-dep    | 5.1.0 | 5.1.2 |
        "
      `);

it works, when i only run that single test, but fails when running all tests of that file
Actual behavior
jest formats the snapshot wrong (same happens for snapshot file)
      expect(res.commitMessage).toMatchInlineSnapshot(
        `"\\n\\n| datasource | package     | from  | to    |\\n| ---------- | ----------- | ----- | ----- |\\n| npm        | another-dep | 5.1.1 | 5.1.2 |\\n| npm        | some-dep    | 5.1.0 | 5.1.2 |\\n| docker     | some-dep    | 5.1.0 | 5.1.2 |\\n"`
      );

Additional context
No response
Environment
System:
    OS: Linux 5.10 Ubuntu 22.04.1 LTS 22.04.1 LTS (Jammy Jellyfish)
    CPU: (32) x64 AMD Ryzen 9 5950X 16-Core Processor
  Binaries:
    Node: 16.17.1 - /usr/bin/node
    Yarn: 1.22.19 - /usr/bin/yarn
    npm: 8.19.2 - ~/src/renovate/node_modules/.bin/npm
  npmPackages:
    jest: 29.2.2 => 29.2.2

@SimenB Anything missing in this report?

This is expected, because Jest snapshots are formatted as full JavaScript string literals including the double quotes:
x.toMatchInlineSnapshot(`"str"`)

and not
x.toMatchInlineSnapshot(`str`)

Within a double-quoted JavaScript string, line breaks would not be valid, only escaped ones are.
What you're asking for would require removing that layer of indirection (string literal inside the snapshot string) and instead have the string (or other JavaScript value) directly in the toMatchInlineSnapshot() call:
x.toMatchInlineSnapshot(`str`)
x.toMatchInlineSnapshot(4)
x.toMatchInlineSnapshot({ complex: ['thing'] })

This would be a really cool feature (and was intended as the final evolution of inline snapshots) but it's extremely complicated to build and so I'm not sure if/when it will ever happen.
In the meantime, for the specific "string-inside-string" use case, I believe there are alternative snapshot serializers available that can do this. Maybe https://github.com/ikatyang/jest-snapshot-serializer-raw can, I don't recall for sure.

@jeysal I thin k you didn't understood my bug report. If i only run that single test, jest will format as expected, but if i run all tests of that file, jest will change the format to the actual behavior.
So there's at least a bug, the format shouldn't change. The same happens for normal snapshots (snap files).

Hi, you're right. My apologies, we have few people looking at the tons of issues coming in so I skim over things pretty quickly, that's what happens then I guess :sweat_smile:
This is really strange then, looks like there must be some jest-snapshot state kept across snapshots, if running other tests vs not running them causes this issue to appear.
I didn't manage to reproduce this on a brand new folder with a single test file though and you have a lot of config, so I'm afraid we need a minimal reproduction to be able to track this down for this to become actionable.

will try to create a minimal reproduction.
can we reopen this issue please?

You can either create a new one with a minimal repro because this one already contains a lot of clutter that won't be relevant to the actual bug.
Or if you change this to a minimal repro that we can reproduce, we can reopen. For now, we don't even know if there is a bug in Jest or somewhere in your config/project.


documentation error: wrong kibana version

on the default index example, it should curl against version 5.4.0 and not 5.4.1

Did you mean "5.4.2" instead of "5.4.1" maybe?
If you use the Kibana UI to create your index pattern it generates this:
❯ curl 'http://localhost:9200/.kibana/_search?pretty'
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "hits" : {
    "total" : 2,
    "max_score" : 1.0,
    "hits" : [
      {...},
      {
        "_index" : ".kibana",
        "_type" : "config",
        "_id" : "5.4.2",
        "_score" : 1.0,
        "_source" : {
          "buildNum" : 15117,
          "defaultIndex" : "logstash-*"
        }
      }
    ]
  }
}

Anyway, nice catch! 👍  I'll fix that later today.

Closed in 5d5cb49

actually no, for me it only works with 5.4.0, which kinda makes sense since that's the Kibana version you're pulling in the Dockerfile. All other version will not trigger an error but will also not do anything

You're probably using an old commit then, the current version is 5.4.3:
https://github.com/deviantony/docker-elk/blob/36ca7e52a56f2cb83377682743d233c2ffdd0050/kibana/Dockerfile

that's true! should've have looked at the history ;)
Best regards,
Cristóvão Cordeiro
R&D Project Manager
8 Rue du Bois-du-Lan
1217 Meyrin
Geneva
Switzerland
On 30 June 2017 at 16:00, Antoine Cotten<EMAIL_ADDRESS>wrote:

You're probably using an old commit then, the current version is 5.4.3:
https://github.com/deviantony/docker-elk/blob/
36ca7e52a56f2cb83377682743d233c2ffdd0050/kibana/Dockerfile
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deviantony/docker-elk/issues/141#issuecomment-312274776,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD3Dl6OP4i5pTKS0iABbT14ygi7a64pwks5sJP9jgaJpZM4OKjU7
.


Music start with latency (7seconds before music start)

Description
Music start but with latency (7seconds), i host it on linux (debian, ubuntu) vps.
Thank's for help
Version info
Client used: I use the last Releases
Output of java -version:
openjdk 13.0.7 2021-04-20
OpenJDK Runtime Environment (build 13.0.7+5-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 13.0.7+5-Ubuntu-0ubuntu120.04, mixed mode)

Version:        3.4
Build:          1257
Build time:     26.10.2021 14:18:37 UTC
Branch          master
Commit:         a364833
Commit time:    26.10.2021 14:15:20 UTC
JVM:            13.0.7
Lavaplayer      1.3.96-original

What's your network speed and hardware specs? Might be that your server or network is overloaded and struggling to buffer audio.

can u reply?

could be just bot having 10% cpu usage and 32mb ram

Hey, no i find solution the problem is the network of my vps


Page state cannot be maintained

Switching pages reinitializes, Page state cannot be maintained. And Use of mixin 'AutomaticKeepAliveClientMixin' is ineffective.

I hope you can optimize the code here!

hi @ModWU 请问你有办法解决 这个问题吗

https://pub.flutter-io.cn/packages/carousel_view
这是我的插件，可以暂时修改你的代码，不过你需要修改一下flutter框架中的类，为Element类添加一个方法


[FIXED] Unexpected error lists/statuses: "undefined"(Not Found) updating tweets

Hi All,
I just restarted my W7 x64 and got this messeage when I try to see my lists.
I'm using Chrome Version 38.0.2125.104 m (64-bit), and Silverbird <IP_ADDRESS>.
Does anyone knows why is this happening?
Is there any Log file to check so I can give you further information?
Thanks in advance
Diego

is there any new progress for about this issue? or anyone publish the custom .crx to Chrome Web Store already? I simple can't found a small extension like sb which supporting lists function except TweetDeck(used for a while and feel a bit of fat)

https://github.com/studioddtonline/Silverbird-M just use this :)

List worked again! Thank you SOOOOOOOOOOOOOOOOO much!!!
On Wed, Feb 18, 2015 at 12:23 AM, Jacob Groß<EMAIL_ADDRESS>wrote:

https://github.com/studioddtonline/Silverbird-M just use this :)
—
Reply to this email directly or view it on GitHub
https://github.com/cezarsa/silver_bird/issues/429#issuecomment-74696415.

Thanks a lot @kurtextrem ! Lists are working fine now with your extension. :+1:

Thanks @itsanti!  It Worked!

Worked for me too @itsanti . Chromium 45.0.2454.101, Silverbird <IP_ADDRESS>

Why hasn't this been merged back into the master?

@fredzannarbor The last code change was over four years ago and, as such, the project or its author should be considered dead.
You should not expect any further releases from this project and I'd advise you to check out one of the forks, such as Silverbird-M.


Adding Player puts cursor before the default name

Try to select all the text in that field
Something like this at the end of IndexController.addPlayer :
document.getSelection().setBaseAndExtent(
    newPlayerEl.nameEl,
    0,
    newPlayerEl.nameEl,
    newPlayerEl.nameEl.value.length
)

maybe this should be a helper function like "PlayerDisplayElement.highlightName()" thaat focuses and selects

fixed in 67b0e7ecb1f1281f0498b0fc756a462dfe4d0cd8


Add support for mindreader-node-oneblock-suffix

mindreader-node-oneblock-suffix is not a supported configuration option. It should be added to be in line with ethereum firehose

mindreader-node-merge-and-store-directly

We are removing that setting, now mindreader-node-merge-threshold-block-age can take the values: 'never', 'always' and a <duration>.
Behavior was not clear with the other flag. Those changes will make it through on sf-ethereum and other chains, firehose-arweave will act as a testbed.

mindreader-node-enforce-peers

This was heavily Ethereum centric and the implementation relied on internal Geth RPC calls which would need to be ported  with some investigation. Moreover, it would involve for now dealing with thegarii which is not something I want.
If we go with a native node instrumentation, we could check it at that time if it's possible to dynamically add peers.

mindreader-node-one-block-suffix has been added by @maoueh on 2022-04-07, can we close this issue ?

Indeed, I did not realize, was simply rename to mindreader-node-one-block-suffix.