cache with Redis

Describe the bug
When using Redis storage, I got a TypeError
TypeError: Cannot read properties of undefined (reading 'id')
    at o (D:\dev\axios-cache\node_modules\axios-cache-interceptor\dist\index.cjs:2:5515)

To Reproduce
code repo: https://github.com/Alexis90/axios-cache-debug.git
const client = redis.createClient({
  url: process.env.REDIS_URL,
});

const redisStorage = buildStorage({
  async find(key) {
    const result = await client.get(`axios-cache:${key}`);
    return JSON.parse(result);
  },

  async set(key, value) {
    await client.set(`axios-cache:${key}`, JSON.stringify(value), {
      PXAT: canStale(value) ? value.expiresAt : undefined,
    });
  },

  async remove(key) {
    await client.del(`axios-cache:${key}`);
  },
});

setupCache(axios, {
  storage: redisStorage,
});

app.get("/api/ditto", async (req, res) => {
  const result = await axios.get("https://pokeapi.co/api/v2/pokemon/ditto");
  res.status(200).json(result.data);
});

Expected behavior
Set the request response into Redis storage as a cache automatically
Additional context

Axios: 1.3.4
Axios Cache Interceptor: 1.0.1
What storage is being used: Redis
Node Version: 18
Browser (if applicable): Chrome

Thanks! I'm out of town today, but I'll look into it as soon as possible.

canStale(value) is the issue here as in the case of a new or loading cache state value.data is undefined but is used in the canStale:
export function canStale(value: CachedStorageValue): boolean {
  const headers = value.data.headers;

  return (
    Header.ETag in headers ||
    Header.LastModified in headers ||
    Header.XAxiosCacheEtag in headers ||
    Header.XAxiosCacheStaleIfError in headers ||
    Header.XAxiosCacheLastModified in headers
  );
}

using the latest version of both redis and axios-cache-interceptor the redis store example should be:
const client = redis.createClient({
    url: process.env.REDIS_URL
});

const redisStorage = buildStorage({
    async find(key) {
        if (!client.isOpen) await client.connect();
        const result = await client.get(`axios-cache:${key}`);
        return JSON.parse(result);
    },

    async set(key, value) {
        if (!client.isOpen) await client.connect();
        await client.set(`axios-cache:${key}`, JSON.stringify(value), {
            PXAT: (value.data !== undefined && canStale(value)) ? value.createdAt + value.ttl : undefined,
        });
    },

    async remove(key) {
        if (!client.isOpen) await client.connect();
        await client.del(`axios-cache:${key}`);
    },
});

setupCache(axios, {
    storage: redisStorage,
});

Hmm, seems out that any error thrown by an adapter, TypeError: Cannot read properties of undefined (reading 'id') is thrown because the response interceptor is not able to handle it. I'll add a try catch to help further errors.

About the error itself, it was a problem when canStale was called with a non-cache storage value, which was fixed by #514.


Drafts that become published posts end up with ids that look like timestamps - acceptable?

Fixed for now by deleting id when publishing a draft


Support for version 3

Thoughts on providing support for version 3 of the OpenAPI specification?
https://blog.readme.io/an-example-filled-guide-to-swagger-3-2/

Thanks for the info. I'll look into it.
It looks like the new spec is trying to describe the same thing in a different format. I think all we need just a new parser for v3.

More details on the spec can be found here: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0-rc0/versions/3.0.md

V3 spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md

Hello
Have you time schedule to do that ? Or news ?
Thanks

been busy lately but should be able to work on this project next month (hopefully)

Hey I am willing to work on this. But sadly I am "brand new" to node. So, it will be really helpful if you can give me some pointers.

Hey Gmishx,
Thanks I definitely could use your help. I'm really short on time these days.
So you want to look at the parse function make sure you check v2 / v3 appropriately. Then simply make parseV3 function.
In parseV3, you want to start by getting a structure and start filling in information from json input. I feel like many things are similar with V2 but haven't had time to look at V3 Schema closely

Thanks for the pointers @twskj. I am trying to get the hang of Node.
I kind of got the idea how you wrote the parser and have confidence that can write it for V3 as well.

Has this been solved?

Still in WIP

👍 re supporting "openapi":"3.0.1"


Manually remove specific features from feature definitions list

Hello,
Is it possible to remove a few features from a feature definition list,. after saving a feature definition using: ft.save_features(features, "feature_definitions.json") ?
For example I need to remove 10 specific definitions correctly, without corrupting the json of the file structure?
Is it possible to do so at the moment using specific code or functionality?
Thanks a lot for your help,
Jon

Yes, you can do this.
Let's say you wanted to select features that had the amount in its name. You can check for this by using the get_name function on the feature definitions.
import featuretools as ft

es = ft.demo.load_mock_customer(return_entityset=True)
feature_matrix, feature_defs = ft.dfs(entityset=es,
                                      target_entity="customers")

features_with_amount = []
for x in feature_defs:
    if 'amount' in x.get_name():
        features_with_amount.append(x)
ft.save_features(features_with_amount, 'feature_definitions.json')

Amazing, thank you so much!


Add PromptFormatter functionality

Currently the watsonx provider doesn't have a chat API to automatically add the tags for the prompt used.
The idea is to introduce the PromptFormatter to perform this operation automatically if it is enabled (quarkus.langchain4j.watsonx.chat-model.prompt-formatter=true).
Here an extract from the documentation I wrote

When creating prompts using watsonx.ai, it's important to follow the guidelines of the model you choose. Depending on the model, some special instructions may be required to ensure the desired output. For best results, always refer to the documentation provided for each model to maximize the effectiveness of your prompts.
To simplify the process of prompt creation, you can use the prompt-formatter property to automatically handle the addition of tags to your prompts. This property allows you to avoid manually adding tags by letting the library handle the formatting based on the model's requirements. This functionality is particularly useful for models such as ibm/granite-13b-chat-v2, meta-llama/llama-3-405b-instruct, and other supported models, ensuring consistent and accurate prompt structures without additional effort.
To enable this functionality, configure the prompt-formatter property in your application.properties file as follows:
quarkus.langchain4j.watsonx.chat-model.prompt-formatter=true
When this property is set to true, the system will automatically format prompts with the appropriate tags. This helps to maintain prompt clarity and improves interaction with the LLM by ensuring that prompts follow the required structure. If set to false, you'll need to manage the tags manually.
For example, if you choose to use ibm/granite-13b-chat-v2 without using the prompt-formatter, you will need to manually add the <|system|>, <|user|> and <|assistant|> instructions:
quarkus.langchain4j.watsonx.api-key=hG-...
quarkus.langchain4j.watsonx.base-url=https://us-south.ml.cloud.ibm.com
quarkus.langchain4j.watsonx.chat-model.model-id=ibm/granite-13b-chat-v2
quarkus.langchain4j.watsonx.chat-model.prompt-formatter=false

@RegisterAiService
public interface LLMService {

    public record Result(Integer result) {}

    @SystemMessage("""
        <|system|>
        You are a calculator and you must perform the mathematical operation
        {response_schema}
        """)
    @UserMessage("""
        <|user|>
        {firstNumber} + {secondNumber}
        <|assistant|>
        """)
    public Result calculator(int firstNumber, int secondNumber);
}

Enabling the prompt-formatter will result in:
quarkus.langchain4j.watsonx.api-key=hG-...
quarkus.langchain4j.watsonx.base-url=https://us-south.ml.cloud.ibm.com
quarkus.langchain4j.watsonx.chat-model.model-id=ibm/granite-13b-chat-v2
quarkus.langchain4j.watsonx.chat-model.prompt-formatter=true

@RegisterAiService
public interface LLMService {

    public record Result(Integer result) {}

    @SystemMessage("""
        You are a calculator and you must perform the mathematical operation
        {response_schema}
        """)
    @UserMessage("""
        {firstNumber} + {secondNumber}
        """)
    public Result calculator(int firstNumber, int secondNumber);
}

The prompt-formatter supports the following models:

mistralai/mistral-large
mistralai/mixtral-8x7b-instruct-v01
sdaia/allam-1-13b-instruct
meta-llama/llama-3-405b-instruct
meta-llama/llama-3-1-70b-instruct
meta-llama/llama-3-1-8b-instruct
meta-llama/llama-3-70b-instruct
meta-llama/llama-3-8b-instruct
ibm/granite-13b-chat-v2
ibm/granite-13b-instruct-v2
ibm/granite-7b-lab
ibm/granite-20b-code-instruct
ibm/granite-34b-code-instruct
ibm/granite-3b-code-instruct
ibm/granite-8b-code-instruct

I have moved the PR into a draft because I have a refactor in mind. The idea is to remove the QuarkusPrompFormatter class and move all the logic into the PrompFormatter implementations. Another feature I can add is the use of the tools. For now, I'm going to enable the tools only for the mistral-large model. Tomorrow I will work on these changes.

In the last commit I did a refactoring of the prompt formatter functionality. What I have done is to remove the QuarkusPromptFormatter class and move all the logic into the classes that implement the PromptFormatter interface. I also added new methods to the interface to allow the use of the tools for the watsonx provider.
Today it is possible to use the tools if the developer chooses mistral-large as model.
In the next days I will try to implement the tools for the llama3.1 model as well.


Support rollback_reason for tcc grpc transaction

Codecov Report

Merging #317 (7e4beb8) into main (09cdabc) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #317   +/-   ##
=======================================
  Coverage   97.20%   97.21%
=======================================
  Files          48       48
  Lines        2755     2761    +6
=======================================
+ Hits         2678     2684    +6
  Misses         47       47
  Partials       30       30

Impacted Files
Coverage Δ

dtmcli/dtmimp/trans_base.go
94.52% <ø> (ø)

dtmcli/dtmimp/utils.go
93.95% <100.00%> (+0.04%)
:arrow_up:

dtmcli/tcc.go
100.00% <100.00%> (ø)

dtmgrpc/dtmgimp/utils.go
100.00% <100.00%> (ø)

dtmgrpc/tcc.go
100.00% <100.00%> (ø)

dtmsvr/api.go
100.00% <100.00%> (ø)

dtmsvr/trans_class.go
100.00% <100.00%> (ø)

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 90470eb...7e4beb8. Read the comment docs.


Update Composer dependencies (2022-02-22-00-07)

Visual regression test passed!
View the visual regression test report


Other bridges ?

If anyone wants to contribute code to support for a new bridge, feel free to open an issue about this.
I'll be glad to help you where possible.
Bridges supported

[x] Mattermost
[x] IRC
[x] Gitter
[x] Xmpp
[x] Slack
[x] Discord
[x] Hipchat (cheated by using xmpp ;-)
[x] Telegram
[x] Rocket.Chat
[x] Matrix
[x] sshchat
[x] Twitch (is just irc, see https://github.com/42wim/matterbridge/wiki/Section-Twitch-(basic))
[x] Zulip
[x] Whatsapp - thanks to @KrzysztofMadejski
[x] Keybase - thanks to @hyperobject
[x] msteams (Microsoft Teams)
[x] Nextcloud Talk - thanks to @gary-kim
[x] Mumble - thanks to @s3lph
[x] vk - thanks to @ivanik7
[x] Harmony - thanks to @pontaoski

Not supported anymore

[x] Steam: Upstream library has no support for steam chat anymore. See here for more info.

3rd party via matterbridge API

[x] Minecraft
[x] Facebook Messenger
[x] Reddit
[x] Discourse
[x] Counter-Strike, half-life and more

Not going to be implemented by me, but PR's welcome

Line - too much red tape,EULA for a developer. PR welcome
Let's chat - can be used with XMPP bridge (https://github.com/sdelements/lets-chat/wiki/XMPP)
Glip - not possible, no API ?
Wechat - too much red tape, too little english. PR welcome
Tox - no pure go library. PR welcome
Hangouts - dirty hack (https://github.com/rogora/hangish/issues/28). Couldn't get it to work. PR welcome
signal - no golang library. PR welcome

possibly https://github.com/nanu-c/textsecure/ or https://github.com/RadicalApp/libsignal-protocol-go

wire - no golang library. PR welcome
mixer.com - no golang library. PR welcome
deltachat - PR welcome
Treema - PR welcome

possibly https://github.com/o3ma/o3

Skype - PR welcome
Viber - PR welcome

works with webhook / callbacks. No streaming API. Shouldn't be hard.
possible libraries to use:

https://github.com/mileusna/viber
https://github.com/strongo/bots-api-viber

groupme - PR welcome

possible library to use: https://github.com/densestvoid/groupme

Hangouts chat (go library available, but not a free service $$) #409
Cisco WebEx teams: looks easy, https://github.com/jbogarin/go-cisco-webex-teams, but caveats #660

Obsolete

stride (https://bitbucket.org/atlassian/go-stride)

Currently supported: IRC, mattermost, gitter, xmpp
Next in line: slack
To be considered: whatsapp, fb messenger, mail

Sidenote:
Awesome project and thanks for taking the time and publishing it openly.

Support for Rocket.Chat would be great. See https://github.com/RocketChat/Rocket.Chat

Thanks for the feedback.
I'm also trying to make the config more flexible to combine multiple bridges in a gateway, more or less like the example in issue #9
Any comments ?
[Bridge "mattermost1"]
protocol=mattermost
..mattermostoptions..

[Bridge "irc1"]
protocol=irc
..ircoptions..

[Bridge "irc2"]
protocol=irc
..ircoptions..

[Bridge "gitter1"]
protocol=gitter
..gitteroptions..

[Channel "test"]
mattermost="testing"
irc="#test"

[Channel "stuff"]
mattermost="general"
irc="#stuff"
gitter="42wim/stuff"

[Gateway "gateway1"]
bridge=mattermost1
bridge=irc1
channel=test
enable

[Gateway "test2"]
bridge=mattermost1
bridge=irc2
bridge=gitter1
channel=stuff
enable

Would like to suggest discord support :) https://github.com/reactiflux/discord-irc/issues/100

@jleclanche well, discord support has just been added in current master ;-)
Also decided to use your TOML configuration file because gcfg was not expressive enough.

would like Telegram https://github.com/FruitieX/teleirc

@lagleki unfortunately telegram needs a phone-number to join (and I'm not willing to give mine). On the other hand the bot API is implemented in Go, so it would be quite easy to add it.
If you're willing to be my test-user I can try to add it.

Unsure how easy it'd be to add, but being able to bridge to hipchat would be a nice to have.

@42wim I'll gladly offer myself for that (telegram), might even (if I find enough spare time) send a PR

@jlsjonas thanks! Please let me know the results in #80

Would be really nice to see mattermost to Skype group chat. Sameroom.io offers this as service so I imagine they are using Microsoft's API.  This would be worth making a donation on its own.

@tobru rocket.chat support got just added, feedback welcome :-)

@pgladwin seems that there's a rest API for skype on https://docs.botframework.com/en-us/skype/chat/
That's good news, no .net SDK needed.

Could a possible additional bridge to add be Matrix?
There are several already existing bridges and an Application Service API spec. (Though admittedly it's still marked as unstable)

@ace13 matrix support added in master :-)
For channel names you'll have to use the room internal ID (looks like !QJFqjsGJwmQzbuBfff:matrix.org)
You'll also need a dedicated bot user to avoid loops.
So for example
[matrix.test]
Server="https://yourhomeserver" (e.g. https://matrix.org)
Login="yourlogin"
Password="yourpass"

[[gateway]]
  enable=true
  [[gateway.inout]]
  account="matrix.test"
  channel="!QJFqjsGJwmQzbuBfff:matrix.org"

 [[gateway.inout]]
 ..your other bridges ..

Got a question for Let's chat support (https://github.com/sdelements/lets-chat) but it seems quite dead to me. If you want this bridge added, please add the :+1: to this message.

Line. It already has an API support in Go language too! 😉
https://devdocs.line.me/en/?go#messaging-api

@tomoeuehara looks interesting, but signup unfortunately only works with phonenumber.
I'm willing to accept PR's for this protocol, or if someone sends me a test login/password (DM @42wim on twitter) I can take a look myself.

@42wim DM sent :D

If you do something like this:
[Channel "stuff"]
mattermost="general"
irc="#stuff"
gitter="42wim/stuff"
How will you know where your reply is going?
An example of the current configuration can be found in the README: https://github.com/42wim/matterbridge/#examples or sample config
https://github.com/42wim/matterbridge/blob/master/matterbridge.toml.simple

Dear @42wim,
Your tube system looks exact what we need, only is the integration with skype something we would like to see.
It's on your list at the top, so can you give something of an status? Does it comes in an few days, weeks, months or was it only an idea and have you no plans to relize this idea?

hi @Tck13
Thank you for your interest.
Skype doesn't have a go library, so I'll need to implement a lot myself (or wait until such a library pops up).
Which only could happen when I have a lot of free time, maybe july/august.
So sorry, but unless someone else implements it, it won't be available soon. (and I don't make any promises for july/august :-)

@42wim Wechat Enterprise 企业微信 would be excellent! Most of these services are blocked and/or unusable here in China for various reasons, but wechat Enterprise is severely lacking. I was hoping to write a bridge between our slack org and wechat so that our foreign teams can use slack and our chinese teams can use wechat, but then I found this excellent project. Unfortunately I have no Go experience.
There does seem to be two different libraries, (https://github.com/chanxuehong/wechat.v2/ and https://github.com/chanxuehong/wechat) but my understanding of Go and chinese is too poor to really dig in and try to figure it out myself.  However, I do know that Wechat enterprise 企业微信 has a robust API, with full support for incoming and outgoing webhooks:
http://qydev.weixin.qq.com/wiki/index.php?title=首页
A long shot, but let me know what you think.

@nickolasclarke Thanks for the suggestion.
I see a couple of issues unfortunately.

documentation is too much chinese for me.
it needs a signup with a mobile phone. (I don't want to use this kind of service, so I can't test it)
wechat seems to have a lot of red tape for creating and testing accounts.

So this is not something I'm going to implement, but I'm happy to accept code from someone for who those 3 things aren't an issue.

How about Steam and TOX support?
I am not sure if they would work but thats the two go-libs i found so far:
Steam --> https://github.com/Philipp15b/go-steam
TOX --> https://github.com/kitech/go-toxcore

@TomTheDragon steam looks feasible, got a poc running :-) You willing to test soon ?:)
Haven't looked into tox yet

@42wim sure, i really would like to test it :)

@TomTheDragon it's in master now.
A couple of things:
Authentication

I only have it tested with 2FA enabled. If you have 2FA steamguard enabled you'll get a prompt to type in the 2FA code in when matterbridge starts.
Authcode by mail should also work, you can add that in the config or you'll get a prompt too.  (not tested)
No steamguard enabled should just work. (not tested)
It works fine with your own account, but you better make a separate bot account if you really want to use this.

Channels
You cannot use channel names, you'll have to use the channel/chatids, a long number that you can find in the URL of your browser if you click on "enter this chat" room on a group page.
Please open a new issue for feedback/issues with the steam bridge.
[steam]
[steam.gamechat]
#login/pass of your bot.
#Use a dedicated user for this and not your own account!
#REQUIRED
Login="yourlogin"
Password="yourpass"

#steamguard mail authcode (not the 2FA code)
#OPTIONAL
Authcode="ABCE12"

[[gateway]]
  enable=true
  [[gateway.inout]]
  account="steam.gamechat"
  channel="12345678912345678"

 [[gateway.inout]]
 ..your other bridges ..

@42wim seriously your ability to produce/hook up gateway after gateway really astounds me.

@jleclanche thanks for the kind words, but the hard work is mostly done by the creators of the different libraries. I'm doing the easy part :-)

@42wim
Steam works perfectly like it should, thx again :)
Had any luck with TOX so far?

@TomTheDragon ok, nice to hear.
I've been looking into TOX, it seems still early (alpha releases) and it doesn't have pure go libraries.
So I'm not going to add it, but I'm open for PR if someone else wants to do this.

@42wim
Hm.. ok then, would be really cool to see TOX support one day, since TOX is an really interesting and really great working (open) p2p/serverless protocol ;)
But how about Hangouts? I could not find any pure Hangouts go libs so far but maybe you can work with the Hangouts client they use in the Slangouts project? --> https://github.com/gpavlidi/slangouts

@TomTheDragon Yes, I looked into the hangouts thing a while ago.
But it has some issues:

I couldn't get it to work with my test account
After looking into the code I saw it uses a dirty hack where I'm not comfortable with, see https://github.com/rogora/hangish/issues/28

Actually, Skype will be very desired.
May be it will even help more people to give up Skype finally %)

For Skype bridging you can lookup code of https://github.com/EionRobb/skype4pidgin/tree/master/skypeweb project - it works with skype directly via web API.

@MurzNN It is probably better to use third party library than to re-implement it for this project.
Rationale:
It is not official API and there is a big chance, it will change like ICQ protocol in late 2000-th. In the sme time, @42wim already does a lot of work integrating all the protocols together.

Is anyone working on bridging Microsoft Teams?

Vk.com is popular instant messaging service, based on social network, like Facebook.com.
Vkontakte already have node.js npm package, that provides api to work with vk.com site: https://github.com/olnaz/node-vkapi
Will be good to create mattermost bridge based on this library. The API must be almost same as in Facebook social network.

@dluciv here is third party node.js library for skype: https://github.com/ocilo/skype-http There are already Matrix bridge that work based on this library: https://github.com/matrix-hacks/matrix-puppet-skype
I'll try to find go implementation of it for mattermost.

Here is Skype implementation in Go:

https://github.com/strongo/bots-framework
https://github.com/andrewdruzhinin/go-skype

Another suggestion is add support for libpurple library: libpurple project provide good API for work with many instant messaging services via one interface: https://developer.pidgin.im/wiki/WhatIsLibpurple
libpurple library already have plugins to many instant messaging services (XMPP, Telegram, Skype, etc), here is list of supported networks via plugins: https://developer.pidgin.im/wiki/ThirdPartyPlugins
So implementing support for libpurple library will add bridge ability to many networks at once.

@MurzNN thanks for your time looking into this.

vk: haven't looked into it yet, may be possible (on my list to look at later)
skype: the 2 skype implementations in go you found are prototype/pocs and not usable
libpurple: there's a WIP for a purple go library https://github.com/kitech/go-purple but using this means using cgo and this won't work on windows. But if anyone wants to implement this, I'll merge that PR

@sapg AFAIK no one is looking into microsoft teams. To add this I need a go library or someone implementing this themselves.

What would you think of RSS support? It would help with having only one bot doing all the bridging. I don't know if RSS output would be useful - maybe? At least RSS input, as with that you could get all the feeds you need in any chat matterbridge supports.

@BFlorry I'm not sure how you see RSS, you want to poll a RSS feed and dump this info in a channel?

Yes, RSS is good idea - poll RSS feed and post new articles to IM channels. Matrix.org IM have this feature via bot https://github.com/matrix-org/go-neb#user-content-rss-bot

@42wim Yes, exactly. @MurzNN defined this better than me.

That really sounds out of scope for matterbridge; the primary feature of the bridges being that they are 2-ways.
OTOH it makes a good case for a plugin system...

Yes, that's out of scope.
I'm not sure of a plugin system either, I have a basic API that can be used for this.
@nikkyai was creating a bot based on this https://github.com/NikkyAI/pyCord
I'm open for feedback on the API

Will be good to see also bridge to Viber IM network - it have Bots and useful API https://developers.viber.com/docs/api/

Speaking of bot framework's rest api, support for that would allow support for:

[x] skype
[ ] WeChat
[ ] facebook
[ ] groupme
[ ] web chat (custom bot framework chat tool)

Updated the initial message to summarize my answers about different bridges/protocols

sshchat (https://github.com/shazow/ssh-chat) support added

Threema is an widely used messenger, which also seems to have an open-source implementation on github --> https://github.com/o3ma

Mumble support (of course only it's text chat) would be a really nice feature, and a go library already seems to exist: https://github.com/layeh/gumble

Facebook Messenger would be cool.

would there be support for creating a stub issue for each platform? that way, ppl can +1 and track updates and convo around the ones they care about, rather than a mega-thread? This thread could be converted into an epic that links the others from the OP
particularly interested in your perspective, @42wim

That would create a lot of "low traffic" issues I think.
I try to keep the first comment updated with the current state.
Of course if the chatter in this thread would explode for a specific bridge, another issue can be opened.

Zulip - https://github.com/zulip/zulip

@jheiselman started working on Zulip, poc works. I hope you're willing to test the final version in a few days :)

Zulip support has been added 🎉

Skype would be pretty sweet. If someone wanted to tackle it and create an issue for it, I wouldn't mind tossing some cash on Bountysource or something for it.

@54 Skype represents a unique pain point. There is no official API and the only SDK has to use the Microsoft's BotFramework platform. Further, their SDK is C# or Node.js only. Someone would have to take time to port it to Go.

I have found fresher library for Viber in Go https://github.com/mileusna/viber

@MurzNN thanks for the update. I've added those. Facebook isn't an option though because it doesn't seem to support group chat for bots.

signal - no golang library. PR welcome

There is a Go Signal library: https://github.com/RadicalApp/libsignal-protocol-go
Although it is a bit old ( Latest commit d09bcab on Apr 14, 2017 )

As @jheiselman explains:

[discord]  lil5: I took a look at that go library for libsignal-protocol-go and it only covers the encryption method, not the service API

- taken from the matterbridge chat

@nickolasclarke  I am author of vim-chat which support qq and weechat, and I would like to help test this two lib.
and I think you can also check mojo-webqq and mojo-weixin which are perl lib for qq and weechat.

For WeChat we can also lookup https://github.com/littlecodersh/ItChat project in Go lang.

FYI, Seems ppl are working on a tox fork: https://github.com/envsh/matterbridge
Asked about upstreaming here: https://github.com/envsh/matterbridge/issues/24
cc @TomTheDragon

@jaykul suggested Spectrum: https://github.com/42wim/matterbridge/issues/628
It's a little different model than most, but it feels worth tracking. I can imagine a Zulip/Spectrum gateway feeling very natural to someone who prefers both.

Thanks to @KrzysztofMadejski the Whatsapp protocol is now supported.

There is this golang implementation for the signal protocol:
https://github.com/morph027/textsecure
It is used by this gateway project:
https://gitlab.com/morph027/signal-web-gateway
According to the issues it seems to be working.

Not a general purpose golang library, but this could probably help getting a Microsoft Teams bridge to work:
https://github.com/bzon/prometheus-msteams

Thanks to @hyperobject keybase bridging is now possible.

Thanks to @hyperobject keybase bridging is now possible.

Checked the Viber API, seems have they doesn't supports receiving messages, only sending.

I've started working Microsoft Teams support.
Looking for alpha/beta testers who have an active Teams (not just a test setup)
I'll open a new issue for further discussion about msteams if there are actually people with active setups who want to help test it.

@42wim I'll gladly participate in testing msteams, we do (unfortunately) have a active msteams setup.

@gardar what's the best way to contact you? If you're on twitter you can dm @42wim

@42wim probably best to reach me @gardar on freenode

https://github.com/nanu-c/textsecure/
Go client library for Signal.

There is this golang implementation for the signal protocol:
https://github.com/morph027/textsecure

More up to date version seems to be this:
https://github.com/nanu-c/textsecure/

QQ support could be interesting, it would create accesses to chinas number one messaging network ;)
https://github.com/catsworld/qq-bot-api

Great work. Could it be possible to have  bridge to Microsoft Teams as well? Teams seems to get populair and I have seen teams integrations with slack as well

@pdwonline msteams support will be available in 1.17.x, you can try the PR here: https://github.com/42wim/matterbridge/pull/967

Threema support would be awesome.

Signal would be awesome!

This might be a Go based library for a Nextcloud Talk bot:
https://github.com/pojntfx/nextcloud-talk-jitsi-bot

Threema support would be awesome.

Could be a start, but apparently something changed in Threema and it stopped working:
https://github.com/poVoq/thrempp

An RSS/Atom feed?

What about Wickr?

Mozilla Hubs VR chat would be cool. https://hubs.mozilla.com/
There is a Golang based WIP bot-bridge to Matrix that might be a good starting point:
https://gitlab.com/rek2/gohubsbot

would be nice to support for email

QQ support could be interesting, it would create access to chinas number one messaging network ;)
https://github.com/catsworld/qq-bot-api

Any updates on this maybe? I can help if there is some testing that needs to be done.

Forgot to update this issue:

Nextcloud Talk has been added in 1.18.0 - thanks to @gary-kim
Mumble has just been added - thanks to @s3lph

What about Delta Chat? It's just an email client with Autocrypt which looks like and works like WhatsApp.

What about Delta Chat? It's just an email client with Autocrypt which looks like and works like WhatsApp.

There is a go repo for autocrypt not sure how far it is in development
https://github.com/autocrypt/go-autocrypt

Threema support would be awesome.

Could be a start, but apparently something changed in Threema and it stopped working:
https://github.com/genofire/thrempp

It might also be worth to take a look at OpenMittsu [1]
[1] https://github.com/blizzard4591/openMittsu
and/or the official Threema API Gateway [2] which would incur costs of CHF 0,02/message
shrug this feels like SMS cost pitfalls are back for messengers.
[2] https://gateway.threema.ch/en

Another option for Signal: https://gitlab.com/signald/signald-go
Works via the signald deamon though: https://gitlab.com/thefinn93/signald

Another option for Signal: https://gitlab.com/signald/signald-go
Works via the signald deamon though: https://gitlab.com/thefinn93/signald

Doesn't seem possible using a GPL3 library on matterbridge (Apache)

Ah, yes. Didn't think of that. But since this is dependent on an external system anyways, maybe Matterbridge could use it as some sort of plugin that isn't included in the main branch?

https://github.com/coffeemakr/threema
Maybe this will will be made to work, not that the Threema client is open-source.

I am starting to work on a groupme bridge. https://github.com/42wim/matterbridge/issues/1356

I am starting to work on a groupme bridge. https://github.com/42wim/matterbridge/issues/1356

vk bridge has been added, thanks to @ivanik7  🎉

vk bridge has been added, thanks to @ivanik7  🎉

I'd like to request YouTube live chat bridge:
https://developers.google.com/youtube/v3/live/docs/liveChatMessages

Want suggest to community the workaround for bridging networks, that not yet supported in Matterbridge itself.
This way is to use [Matrix] bridges for bridge the room in remote network to some Matrix room, and then - bridge that Matrix room to other needed network using Matterbridge. List of supported bridges: https://matrix.org/bridges/

Thata an idea. A matrix server in matterbridge. :)

Another option for Signal: https://gitlab.com/signald/signald-go
Works via the signald deamon though: https://gitlab.com/thefinn93/signald

Doesn't seem possible using a GPL3 library on matterbridge (Apache)

signald is not a library, it's a standalone daemon. It's perfectly fine to write a GPL3 "glue" that connects to the signald daemon.

Would support for Zoom chat be possible? https://marketplace.zoom.us/docs/api-reference/zoom-api/

I started working on signal based on https://gitlab.com/signald/signald. Because signald is an external component, there is no licensing issue, but https://gitlab.com/signald/signald-go cannot be used, given it's GPL3. My initial commit used it, because I misunderstood the author's intentions on re-licensing https://gitlab.com/signald/signald-go/-/issues/7
Work is in https://github.com/petermolnar/matterbridge/tree/signald

I would like to see a bridge for the Kik-Messanger. They also provide an Api for that.

I started working on signal based on https://gitlab.com/signald/signald. Because signald is an external component, there is no licensing issue, but https://gitlab.com/signald/signald-go cannot be used, given it's GPL3. My initial commit used it, because I misunderstood the author's intentions on re-licensing https://gitlab.com/signald/signald-go/-/issues/7
Work is in https://github.com/petermolnar/matterbridge/tree/signald

does this https://github.com/hacktor/signal-irc-telegram-gateway help somehow?

It seems like official API support for Threema will stay paid service only. But they recently published the Threema-web communication protocol, so a bridge use similar to how it is currently done with WhatsApp seems feasible: https://github.com/threema-ch/app-remote-protocol

any news about the Threema WebClient API thing? :)

Zammad?

https://github.com/tulir/whatsmeow
Will probably become useful soonish.

For QQ, there is https://github.com/Mrs4s/MiraiGo.
For Wechat, there is https://github.com/songtianyi/wechat-go, but the author is not updating it anymore because he's account get banned by tencent because of the repo.

New Golang Threema bot library: https://github.com/karalabe/go-threema

It might be time to revisit Signal. The original issue post above mentions one library possibility but it was underdeveloped and did not have a compatible license. Since then both of those points have changed somewhat:

An alternative approach to licensing issues was taken already by this project for the whatsappmulti support which uses a GPL3 library and just isn't included in the binary release.
There are two active forks of the Go library for Signal, crossie's and tulir's. Most of the work was done in the former, the latter is by the author of the whatsappmulti library being used by this project and specifically tuned for use behind the scenes on Whatsapp (which still uses the Signal protocol).

All this to to say the stage appears to be clear if somebody wanted to jump in and contribute this. I believe there would be some work to wrap the signal protocol library into something that would specifically access the Signal Inc. service and facilitate device registration and such, but there don't seem to be any major roadblocks to it being possible.

@alerque Yes indeed, we can do it the same way as with whatsapp multidevice.
As usual, I'm open to PR's to support this.

Threema support would be awesome.

Could be a start, but apparently something changed in Threema and it stopped working:
https://github.com/genofire/thrempp

You may want to check if the following Go implementation works for matterbridge:
Open-source implementation of the Threema protocol in Go. [4] https://github.com/o3ma/o3
It might also be worth to take a look at OpenMittsu [1]
[1] https://github.com/blizzard4591/openMittsu
adding a link to the Threema protocol analysis by Jan Ahrens [3] https://blog.jan-ahrens.eu/2014/03/22/threema-protocol-analysis.html
and/or the official Threema API Gateway [2] which would incur costs of CHF 0,02/message shrug this feels like SMS cost pitfalls are back for messengers.
[2] https://gateway.threema.ch/en

i agree. Threema support would finally make matterbridge useful for me once again.

The older Discouse Bubble chat integration is not maintained and depreciated these days, but the Discourse team is working on a first party chat system right inside Discourse:
https://meta.discourse.org/t/introducing-discourse-chat-beta/210734
https://github.com/discourse/discourse-chat
Would be probably cool to have support for that in Matterbridge.

Hi, it would be great to have support for https://wire.com/ <---> Rocket.Chat integration.
I like to send some money to this integration.

Yes, RSS is good idea - poll RSS feed and post new articles to IM channels. Matrix.org IM have this feature via bot https://github.com/matrix-org/go-neb#user-content-rss-bot

Please add RSS support, poll RSS feed and post new articles.

Looks like the new Discourse chat feature is nearing a release: https://meta.discourse.org/t/discourse-chat/230881

Bridge to the chat of a BigBlueButton video conferencing room. A PoC for bridging to Matrix is now available https://git.fairkom.net/chat/bbb-chat-bridge

https://blog.discourse.org/2022/08/discourse-chat-is-now-available-try-it-out-today/
It supports incoming webhooks, so it could probably work similar to Slack/Discord etc.

No idea if that will work, but there is a tencentqq Golang lib:
https://github.com/Mrs4s/MiraiGo
(Found via: https://gitlab.com/xiayesuifeng/matrix-tencentqq-bridge )

Wouldnt it be easier to send your messages directly to the CCP

As opposed to sending them directly to the NSA as with many of the currently supported services? 😅

Add bridge
cabal p2p/decentralized chat. No server exists

Syncplay gateway support would be lovely. https://github.com/Syncplay/syncplay/discussions/574 has some links on the protocol details in the end of the original post.

deltachat - PR welcome

hi @42wim, for deltachat there is a new WIP library at: https://github.com/deltachat/deltachat-rpc-client-go
I am really loving matterbridge and will probably play with it but I am really new to Golang so not sure if I will be able to make something worthy of a PR, but maybe at least some 3rd party API client

SimpleX is an privacy first decentralised messenger that doesn't even have user IDs and which I have been enjoying on iOS and Android. I would like to Matterbridge it in the future. However:

[ ] They talk of groups v2 and their roadmap includes public groups for the future so it's not yet the time.

https://github.com/simplex-chat/simplex-chat/blob/stable/README.md#roadmap

[ ] They don't yet even have a desktop client although I am not sure if this would particularly affect Matterbridgeability, https://github.com/simplex-chat/simplex-chat/issues/2281
[ ] Everything currently maintained in their GitHub is Haskell, while I understand Matterbridge appreciates Go libraries?

https://github.com/simplex-chat

groupme - PR welcome

possible library to use: densestvoid/groupme

I'm interested in this; any pointers on how one might get started with it?

Sam Porter Bridges

onbody work with Viber ?

I would very much love to see Simplex in the list.


#1194 copy button not working in example page : fixed

Issue: #1194
now the pr has right commit.

Great work thanks!
@all-contributors please add @Arnab-Bhakta for code and bug


[Question] Quick Explorer preview doesn't work without Hover Editor plugin?

Just tried Quick Explorer for the first time. Everything seems to work fine for me except the preview of the file did not work. I could navigate the files with the keyboard perfectly well but it wouldn't show a pop-up preview of the file I had navigated to. It was only upon installing and enabling the Hover Editor plugin that the file preview started working. I tried this on a fresh vault with no other community plugins and saw the same result: without Hover Editor enabled, the preview doesn't work. Is this just me or anyone else see this?

Looks like this is a new issue with Obsidian 1.5, as it works fine for me on Obsidian 1.4.16.  I'll investigate when I get the chance.

Also, it looks like the popups actually are appearing, but for some reason they have zero width and a very short height.  I've put in a request for info from the Obsidian devs, as I'm guessing this is due to a change in the positioning algorithm for popups that was added in the 1.5 versions.  The problem also affects the Pane Relief plugin.

Thanks @pjeby . Yes notice that it does appear but with no width/height and therefore no content visible. My workaround - installing Hover Editor does make the full pop-up appear though for the time being.

Ok, heard back from devs, there was a code check added that cancels loading the popup if a menu is open.  Looks like they will be backing it out, as it turns out the issue they were trying to fix is actually fixed somewhere else and that check isn't needed.  Not sure yet when the update would be released, so in the meantime you'll need to use Hover Editor if you want previews with 1.5.

Ah perfect, will wait for the update then which will hopefully restore that functionality without having to rely on Hover Editor. Cheers @pjeby.
I'll leave this open for now, just in case anyone runs into the same issue on the current version and scratches their head like I did. At least this can help in the meantime.


RFC: Multi-Route support

MultiRoute Support
Progress so far
Lots of great thought put into this PR: https://github.com/cloudflare/wrangler/pull/224, as well as some great points about problems mapping routes to Wrangler projects outlined below.
The problem(s)
null Workers
The biggest hurdle we have to handle in Wrangler is “off” routes; routes that are set to a “null” or “no-op” worker. This is tricky because:

routes are set at the zone-level, but they can point to any Worker published to the account level. A “many-to-many” relationship.
Wrangler projects are scoped to a single Worker which can be deployed to many routes across many zones, including workers.dev. This is a one-to-many relationship. But when defining routes, we need to be able to deal with those “null” workers, which are not represented as a Worker in Wrangler, but rather just an “off” state.

You can’t just compose all the routes for the project, either, because it is likely that there are other scripts on the zone that are not represented in the toml.
How is this handled elsewhere?
The Cloudflare Dashboard
The Cloudflare Zoned Dashboard UI actually presents a user with all of the routes configured on their zone, which includes potentially many workers, including routes pointing at a null Worker. This approach would be awkward in the context of Wrangler, which is generally concerned with a single worker script, not all scripts associated with an account.
Cloudflare Serverless Plugin
The Serverless Plugin doesn't currently concern itself with deleting old routes on deploy; however a later addition to the underlying tooling library includes a function for removing a route, so I imagine some subsequent steps used by the developing team to handle removing routes.
I believe that implementing this much is sufficient for a first pass at this feature; it will unblock loads of people.
Proposed solutions/workarounds
PHASE 1: PUT all routes in toml (Parity with Serverless plugin)
This will unblock most users. The downside is it potentially leaves behind unwanted routes, but the route option does that today, too. This can support both on and off routes, with the same downsides. Users will need to handle conflicts in the dashboard (we can provide a quick link by using their zone id to fill in the appropriate url).
PHASE 1.5: Sync "on" routes (one step above parity with Serverless plugin)
We can be reasonably certain that if a user publishes a script, any routes associated with that script name that are not in their toml can be removed.
PHASE 2: Guide users through handling conflicts
Any route specified in a user's toml, but associated with a different script, even a null worker, might cause unnecessary problems for users with complex routing tables. There are a couple of ways to provide users with the appropriate feedback:
wrangler publish --dry-run
NOTE: This is a straw man. The wording and presentation of this information is fully up for debate, but I'd like to focus on the concept, namely that by querying the api for the list of routes, Wrangler can provide the user with the information they need to make decisions about their deployments.
Passing a --dry-run flag to wrangler publish could do the work of diffing the existing routes against the specified routes, outputting a formatted list of anticipated modifications and conflicts:
For example, let's say we are deploying a worker called cache to a zone with the following routes already deployed:
"https://vsnginx.workers-tooling.cf":                     "cache"
"https://vsnginx.workers-tooling.cf/cache":               "cache"
"https://workers-tooling.cf/snippets/cache":              "cache"
"https://workers-tooling.cf/snippets/cache*":             "cache"
"qr.workers-tooling.cf/":                                 "qr-generator"
"*serve-assets.workers-tooling.cf/*":                     "serve-assets"
"workers-tooling.cf/foo/*":                               "hello-world-dev-foo"

Let's say I define the following routes in my wrangler.toml (for the purpose of this illustration, I will ignore the on/off concept and just include a list of routes):
routes = [
    "https://vsnginx.workers-tooling.cf",
    "https://workers-tooling.cf/snippets/cache",
    "https://workers-tooling.cf/snippets/cache*",
    "qr.workers-tooling.cf/",
    "*serve-assets.workers-tooling.cf/*",
    "vsnginx.workers-tooling.cf/*",
    "workers-tooling.cf/foo/*"
]

Running wrangler publish --dry-run should output the following table illustrating how this will affect the user's routing table:
M "https://vsnginx.workers-tooling.cf":                     "cache"
D "https://vsnginx.workers-tooling.cf/cache":               "cache"
M "https://workers-tooling.cf/snippets/cache":              "cache"
M "https://workers-tooling.cf/snippets/cache*":             "cache"
C "qr.workers-tooling.cf/":                                 "qr-generator"
C "*serve-assets.workers-tooling.cf/*":                     "serve-assets"
A "vsnginx.workers-tooling.cf/*":                           "cache"
C "workers-tooling.cf/foo/*":                               "hello-world-dev-foo"

`M` = `maintained` - this route already points to this script
`D` = `deleted` - this route points to this script but is not in the toml and so will be deleted
`C` = `conflicts` - this route currently points to a different script and may break it
`A` = `added` - this route does not currently exist and will be added

This shows me that I have three routes that would potentially break other workers running on my zone (those marked C). Which brings us to...
wrangler publish --overwrite-routes
On a normal wrangler publish, wrangler should make the same check against the routes list as in the dry run, and throw an error if any conflicts exist, printing the offending route patterns to the console. This gives the user the option to either update their routes list, or run wrangler publish again, passing an --overwrite-routes flag that will point the conflicting flags to the project script; effectively this is the user saying "I know those routes exist, go ahead and update them anyway".
PHASE 3: Route subcommands
We can optionally give the user the ability to handle routes individually by providing utilities for CRUD operations on routes, as well as listing routes. I would defer this in favor of the flag until it is requested, but it does give users more granular control over their routing tables.
What about those pesky "null" workers?
For a phase 1, we can simply add "off" routes the same way we would "on" routes; that is, just make the same kind of PUT request and let the cards land where they will. I believe this will fail if the route is already pointing to another worker, including the current worker. We could nudge this in the direction of being okay with changing a route from being "on" for this worker to being "off", but not the other way around.
For phase 2, we can treat null workers very similarly to just another conflicting worker:

v deployed | in toml >
Worker "on"
Worker "off"

route points to this worker
Stay the same
Update

route points to null worker
Conflict
Stay the same

route points to other worker
Conflict
Conflict

Where a conflict will cause wrangler publish to bail unless passed the --overwrite-routes flag.
Open Questions
All or nothing vs one-at-a-time
The above solution assumes that it is better to fail the entire deploy than to deploy only to some routes, which requires that we query the API for the list of routes before taking action. I'm not stoked about this; I would rather build this into the API, but at the moment we are just trying to unblock folks and see if this kind of an approach solves their problems. If we think it's acceptable to just try every route and return the errors to the user, that is still an option (this is how Serverless works), and the fact is that under the hood we will still have to individually POST or PUT every specified route in series rather than defining them in bulk; however defining the interface as a bulk put now makes transitioning the implementation smoother in the future.
How far do we take this?
I've proposed three phases to this work; the first phase gives us parity with the Serverless Plugin, but without the level of support of the Cloudflare Dashboard UI. This would unblock many users, but may cause problems with more complex multiroute use cases.
The second phase offers what I consider to be the minimum of protection against unexpected behavior. I am happy to write a proof of concept of this solution, but I think it will take more development and is perhaps best suited to a later revision.
The third phase gives routes first class status in wrangler. This one feels like overkill at the moment.
Solved Problems
Wrangler environments
The route key in the wrangler.toml cannot be inherited by other environments, since inheriting would stomp the original deployment. routes should likewise not be inherited, but be required as an explicit configuration.

All or nothing vs one-at-a-time

I agree. I'd love to see us start fixing issues like this closer to the API level. I think the less wrangler can be a wrapper for an API that doesn't do what it should, the better. With that, I don't think we should build a wrapper around the API to perform bulk route uploads. I think we should build the simplest solution first (Phase 1) and see if we can work with Core for a new endpoint.
The level of detail on Phase 2/3 design on this RFC is fantastic if we were to build it today, but I think we should get an MVP out (Phase 1) and see what errors users find themselves coming across. It's better to move fast, collect user feedback, and improve even if it means less than perfect initial DX.  Though I agree users may get some abandoned routes, we shouldn't assume that will be a major issue and start to build out 1.5. After we collect some feedback, we should maybe start building 1.5 and come back to the detail outlined in Phase 2/3.

I'm really excited about this!
Some thoughts:

I suppose I have some nits about the wording in phase 2 for --dry-run (I love this flag btw). Should maintained -> unchanged and conflict -> overwrite? I feel like using overwrite is especially meaningful because it's the only type of conflict a user would experience when publishing workers to pre-existing routes.
I like the idea of putting phases 1 and 1.5 together for a release. I feel like they are a good pair; rolling out an initial phase of multiroute support with sync capabilities would be super compelling for users by itself!
The all-or-nothing approach makes sense; I like the atomicity of it. Something we'll need to consider is whether the routes API allows for an atomic route upload; right now it looks like each upload has to happen individually, which is not ideal (esp. if an route upload fails... do we have to go back and unroll all the previous route uploads in that wrangler publish invocation?)  https://api.cloudflare.com/#worker-routes-update-route

I'd say that phase 1 and 1.5 together seem muy bueno, and that if we were only doing phase 1, we'd likely want to have "delete" functionality. However, "delete" functionality doesn't really make as much sense as syncing. I think that 1.5 is MVP for this feature, as I would not expect a route to continue to exist after removing it from my manifest.

@gabbifish that's the comment, yeah, is that whatever wrangler does to provide the appearance of atomicity will likely be a leaky abstraction over what the API currently supports. We might be able to convince the platform team to prioritize a bulk upload endpoint (a Serverless framework deploy of a worker with lots of routes hammers on the API for little good reason), but the design needs to be worked out first. The best we can do at this juncture to implement 1.5 is to query the existing routes for the zone and do our best, but with the added complexity of "null worker" zones, handling a work flow that involves multiple clients will be tricky.

Issue is not solved.

@balupton we did ship some multiroute support a few versions ago, however not every feature listed here was included, just the ability to deploy to many routes on the same zone. which version of wrangler are you currently running, and is there a specific feature that you are missing to do what you want with it?

I am wondering how to exclude certain routes in the wrangler.toml.
Given the example here in the docs to exclude cat.png -> https://developers.cloudflare.com/workers/platform/routes#matching-behavior
*example.com/images/cat.png -> <no script>
*example.com/images/*       -> worker-script

Doesn't appear as though this is supported in the wrangler.toml

@ashleymichal should I open up a new issue for this ^^

Made a new issue in #1817 for exclude route support, otherwise, we support the rest of the proposal here.

Are there any plans for supporting #1817?


Exception in tablet bar

Combination app:bb_tabletMode="true" and app:bb_titleTypeFace="fonts/Panton-Regular.ttf" leads to Exception. I know why, but you need fix it.

It's fixed in the upcoming 2.0.2 version, which will be released tomorrow.


Fix EGL vendor issue

The location is inconsistent at best. It' smissing in ubuntu 22.04 install, but it's there in a ubi8 test. I think the best thing for the recipe to do is just put it in both places just in case.

OS
File

Ubuntu 16.04
/usr/local/share/glvnd/egl_vendor.d/10_nvidia.json

Ubuntu 18.04
/usr/share/glvnd/egl_vendor.d/10_nvidia.json

Ubuntu 20.04
/usr/share/glvnd/egl_vendor.d/10_nvidia.json

Centos 7
/usr/local/share/glvnd/egl_vendor.d/10_nvidia.json

Centos 8
/usr/local/share/glvnd/egl_vendor.d/10_nvidia.json


Documentation change for example docker-compose.yml in readme

In your example docker-compose.yml, you have "command: headscale serve".  That throws an error, probably because headscale changed something.  Using "command: serve" works.

Yep, updated to  reflect the latest headscale


Remove the IANA registries

If we consider we design EBML only for Matroska (for now or forever) we may not need the IANA registries at all. We just need to document the 2 existing DocType (matroska and webm).
For EBML IDs we can always create new documents to define them with their path in the header. We probably don't need a registry for that either.
This might lower the scrutiny needed to get the EBML spec through (although we do want to have it as clean as possible).
Reported-By: Robert Sparks<EMAIL_ADDRESS>

I think we should keep the IANA registry here.


FHIR to HL7 library detects when the FHIR path to a resource is not a resource

User Story:
As a developer, I want to know when a FHIR path for an element resource evaluates to a non-resource type, so I can detect the problem and correct the schema.
Description/Use Case
One can specify a FHIR path for a resource, but that path needs to evaluate to a resource (of Base type) and not a primitive value in order to use it as a focus resource for the rest of the evaluation.
Risks/Impacts/Considerations
Dev Notes:

This feature is similar to what was implemented for conditions where it detects if the result is a Boolean or not.
We cannot throw a warning as it can severely affect the value we get for a given element.

Acceptance Criteria

The FHIR to HL7 library throws a SchemaException if a value FHIR path evaluates to a non resource.

OBE implemented in #6102


FR: Add ability to cancel/filter some commands

For some reason key promoter triggers a reminder for extract note content when I just click the text area the vault—would be great to filter for this

that is od, I am already checking for that.
Do you click any specific text, or just an empty area?
Do you use the new live preview or the old one?

new live preview.
for some reason it happens when text is like this
- [[a link]
-

here's a recording:

Could you check in the developer console(Ctrl/Cmd+Shift+I) what gets printed when you click that link?
As I don't have access to insider builds I need that output to make sure the new editor gets ignored.

here's what I see:
MouseEvent {isTrusted: true, screenX: 972, screenY: 329, clientX: 141, clientY: 708, …}
altKey: false
bubbles: true
button: 0
buttons: 0
cancelBubble: false
cancelable: true
clientX: 141
clientY: 708
composed: true
ctrlKey: false
currentTarget: null
defaultPrevented: false
detail: 1
eventPhase: 0
fromElement: null
isTrusted: true
layerX: 105
layerY: 16
metaKey: false
movementX: 0
movementY: 0
offsetX: 105
offsetY: 16
pageX: 141
pageY: 708
path: (16) [div.HyperMD-list-line.HyperMD-list-line-1.cm-line, div.cm-content, div.cm-scroller, div.cm-editor.ͼ1.ͼ2.ͼ4.ͼc, div.markdown-source-view.cm-s-obsidian.mod-cm6, div.view-content, div.workspace-leaf-content, div.workspace-leaf.mod-active.has-pane-relief-label.stayopen, div.workspace-split.mod-vertical.mod-root, div.workspace, div.horizontal-main-container, div.app-container.is-left-sidedock-collapsed.is-right-sidedock-collapsed, body.is-frameless.mod-windows.theme-light.hider-scroll.css-settings-manager.show-titlebar.show-head…, html, document, global]
relatedTarget: null
returnValue: true
screenX: 972
screenY: 329
shiftKey: false
sourceCapabilities: InputDeviceCapabilities {firesTouchEvents: false}
srcElement: div.HyperMD-list-line.HyperMD-list-line-1.cm-line
target: div.HyperMD-list-line.HyperMD-list-line-1.cm-line
timeStamp: 12441454.5
toElement: div.HyperMD-list-line.HyperMD-list-line-1.cm-line
type: "click"
view: global {0: Window, 1: Window, window: global, self: global, document: document, name: "", location: Location, …}
which: 1
x: 141
y: 708
__proto__: MouseEvent

I have just added a check for the new editor, I hope I got the correct one.

thanks so much!!


CLOUD-666 fixed links in documentation

@matyix or @keyki or @martonsereg

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1067/

500 : undefined https://cloudbreak.sequenceiq.com/api-docs

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1069/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1070/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1071/

Please rebase -i these commits

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1072/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1073/


adding a simple wrapper script

so you don't have to remember the docker commands

Should add some info on how to alias this or something: http://unix.stackexchange.com/questions/146419/creating-an-alias-for-a-bash-script
Be nice to run something like dgo vendor, dgo build, etc.

@treeder done. hopefully they're clear

+1 this is awesome thanks @treeder and @arschles keep up the great work!

Sweet, thanks @arschles

:+1:


[Bug] Hide downloaded media doesn't work

https://user-images.githubusercontent.com/75091899/207065210-c7f95edf-ea95-4b1f-acb0-ee5a38541cfd.mp4
i granted storage permission to the app despite it didn't ask for it but the feature still doesn't work
Android 8, miui 8
Huawei p8 lite 2017

Question: does this feature hide cache? when the app loads images these are technically downloaded somewhere in my phone so does this feature hide them?

If the feature not working is normal for some reason, inform the user of the said reason

i granted storage permission to the app despite it didn't ask for it but the feature still doesn't work Android 8, miui 8 Huawei p8 lite 2017

Thanks, I will look into it.
Maybe if it's buggy on some os version and cannot be fixed, then better be removed.

Question: does this feature hide cache? when the app loads images these are technically downloaded somewhere in my phone so does this feature hide them?

It lives on app cache (/data/data/io.chaldeaprjkt.boorusphere/cache, only accessible if you're rooted), so it's hidden by default.


Dot files are copied from assets to build

I noticed that e.g. Vim swap files in assets are being copied over to my build directory.
        build/ab-testing/.abtools.css.swp
        build/ab-testing/.sample-size.css.swp

Yeah, uzu copies public/ and themes/**/assets/ wholesale. The reason for this is that the user might have a hiddent file that they want to keep within their uzu project.
I use vim too and I use something like this im my .vimrc that moved the backup dir. The .swp files will be saved in there instead.
set backupdir=~/.vim/backup//
set directory=~/.vim/swp//

Hope that helps. I have added a note to the README about this too.

Ok. In the future a config option that behaves similarly to .gitignore would be nice.

It would be useful. Let's use this issue to capture ideas around the config option for now. Maybe something like this:
exclude_files:
    - '*.swp'              # any files with .swp extension
    - 'path/to/dir'        # specific directory
    - 'path/**/tmp'        # any folders called tmp inside of any dir under path
    - 'path/to/file'       # specific file
    - '*string-to-match*'  # any dir / file with string-to-match in name

I would also like to make the copy behavior more rsync-like.
Right now using cp is fast. Whatever replaces it needs to be relatively speedy (and work on Windows) so builds don't get hit with huge file copy cost for each build.

I like the exclude_files ideas. At least for my projects, I doubt that custom file copy logic will begin to compare to the template rendering times described in #10, so I'm in favor of using an exclusion list.

@evanmiller I have added an exclude option that allows you to specify file names and folder names to exclude from copying.
# List of directories and files to exclude from build/
exclude:
  - node_modules
  - packages.json
  - yarn.lock

It will exclude any file or folder that matches full / partially any of the strings in that list.

@scmorrison Thanks. Does globbing work with this feature? My original goal was to exclude files matching .*.swp

No, not yet. But something like .swp should work to catch anything with .swp extension.


chore(circleci): Removing offending with on cleanup_on_close

Purpose
After closing a PR any idle prnet should be cleaned up, and it was not working this is to fix the problem
For reviewers

Related Github issues

Changes

Tests

Deployment Considerations
Version Notes
{ major | minor | patch }

NOTE: Include the version notes in the squash commit message

/deploy

Deployed prnet successfully

/cleanup

prnet cleaned-up successfully


b/190640998: Add fuzz test for MessageReader

Notes
This fuzz tests the buffering, chuck reading, and gRPC delimiter parsing logic in MessageReader.
The flow is as follows:

Add fuzzed data to an input stream, split across multiple chunks
Call MessagerReader to parse the data from the input stream
If more buffering is needed, re-run steps 1-2

Why fuzz this target?

It parses gRPC wire data
It handles untrusted downstream client input
It buffers data

Testing done

Ran in fuzzing mode locally, no crashes

cc @shuoyang2016


Outer End Gateways (the ones that send you to the obby platform) should generate (and I also suggest the ability to turn off generation of magma spawners)

Hello, and also I'd like to apologize for making another suggestion. I know I've already made one earlier though, and I need to thank you for implementing it.
I suggest that the outer end gateways, the ones that randomly generate throughout the outer end, should spawn in the Skyblock world generation. Bedrock is already extremely limited, and it would be kind of sad to have to sacrifice the exit end portal or one of the 20 main end gateways for a wither killer. Wither rose farms would also be a lot better with outer end gateways. I feel like it'd fit the "generate almost nothing except for a few things" theme this mod has.
Also, I feel like it'd make sense to be able to disable magma spawner generation and if you implement end gateways, those as well, with a /skyblock command.
Thank you for your time!

Implemented in 3.2.2


Update plan-defender-for-servers-data-workspace.md

changed from TVM to MDVM

@bmansheim
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

#sign-off


'All Programs' list doesn't automatically update when directory contents change

Probably the best approach here would be to observe all locations (and sub-directories) for changes and update when any of them change. We might also need to watch for app foreground/background events.

Related to #130.

Fixed in f6061f0eede38cc4060665f55397103038211851.


Encounter error when using github action microsoft/setup-msstore-cli@v1

I am getting the following error on the .Net Framework not being detected when using the github action
Run msstore reconfigure --tenantId *** --sellerId *** --clientId *** --clientSecret ***
You must install or update .NET to run this application.
Framework: 'Microsoft.NETCore.App', version '8.0.0' (x64)

By default, the setup task picks up the latest version of the tool, and it just got updated with dotnet 8. You have to add the setup dotnet task before this task:
- uses: actions/setup-dotnet@v3
  with:
    dotnet-version: '8.0.x'

The agents haven't been updated yet, so you need this until they have it installed by default.


Release Helm Template Render stand alone....

The template processing engine used by helm is more that just a combination of GO text/Templates and Sprig.
I believe that the additional functions/feature that helm has layers on top could well be useful for general template process outside of Helm/Kubernetes
So I suggest that, if possible, the template engine be split out of core helm and made stand alone..

AFIK, this is the architecture for v3. @adamreese, maybe you can confirm?

Please see how helm template uses pkg/action (which uses pkg/engine) to run the template engine.


Support for microphone event and loudness

@pelikhan,
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


Creating graph/edge model in ArangoDb FOXX app

Can somebody help me with following issue. I'm writing custom FOXX app in ArangoDB and I need to create graph/edge model file,but i can't find out any document about it

@pluma what is currently "the way" to do it? Directly use the "db" object?

You could create a regular Model for your edges with _to and _from attributes. If you are using 2.6 or newer, the repository's save method will handle saving to edge collections correctly.
For graphs there is no special support in Foxx itself, so you'd probably just use the regular API (org/arangodb/general-graph I think).

@fceller  @pluma  thank you very much:)


Complete NOSTR chat tab - Breakdown work products and post Bounties

Features on Chat Tab:
MVP Features:

Default group chat connected to public chat thread for #flashsupport on nostr
chat list populated with all contacts from the contact tab
Ability to add a contact to chat tab using npub or nostr hex pubkey or NIP-05 username
Ability to zap a contact in the chat window

Version 2 Features:

Ability to add/join a group chat or public room
Progressive alignment with features on arcade.city

⚡⚡⚡Bounty is negotiable for completion of these features ⚡⚡⚡

Tasks broken out into smaller bounties.
Remaining Bounties to be posted:

[ ] Ability to add a contact to chat tab using npub or nostr hex pubkey or NIP-05 username
[ ] Ability to zap a contact in the chat window
[ ] Ability to add/join a group chat or public room
[ ] Progressive alignment with features on arcade.city

Closing.


Add explicit dependency on libselinux-python

[x] Installs cleanly on a fresh build of most recent master branch
[ ] Upgrades cleanly from the most recent release
[x] Updates documentation relevant to the changes
[x] Rebases cleanly onto the latest master

For minimal Centos targets
Fixes #1247

SELinux-python is installed in the collectd role, but that's moving to an addon.


Uninstall

How to Uninstall this TaskbarTool as it hampering my performance?

How to Uninstall this TaskbarTool as it hampering my performance?

Do you find the solution? I have the same trouble.


Make timeSinceLastRender protected

As issue #54 states, it's a useful information for the user. e.g. interpolation/extrapolation between frames.

Can you also update CHANGELOG.md with the information that now this variable is protected? Thanks.
We could also add private set, as this is usually not something you'd like to modify manually. Do you agree?

Fair enough!

Thanks.


Adding whitespaces to the feature section

Pull Request Template

Please provide all of the details below. Pull requests missing any of the information below will be closed!

Sumarise what this PR fixes: Adding whitespaces to the feature section
Fixes #: 50ee002bb3ecd8f3489cea5d5f98b27ea3745846
Checklist:
(Add an x between the brackets to check the items)

[x] I have sumarised what this PR fixes above
[x] I have provided the issue ID/URL above
[x] This PR fixes only the issue mentioned above (create seperate PRs for seperate issues)
[x] I was the first one to claim the issue or I created the issue

Hey @afrazz
You have attached a commit id as the issue number, if you could resolve the merge conflict and attach the issue number the PR resolves that would be perfect.
Regards

Closing this PR due to the age and conflicts. Feel free to resolve and reopen 🙂


Consider calling View.isInEditMode() to allow layout to work in layout editor

Adding a BlurLayout to a layout XML file and then opening the Android Studio layout editor causes an exception in the editor because the renderscript components aren't available. Consider making the view's behavior a no-op when in edit mode using the View.isInEditMode(). I will try to submit a PR for this but it may be a few days.

Great idea. Feel free to make a PR and we'll get it in asap, otherwise I'll address it at some point.


Logo Proposal

Good day Sir @hectorm  I am a graphic designer and i am interested in designing a logo for your good project. I will be doing it as a gift for free. I just need your permission first before i begin my design. Hoping for your positive feedback. Thanks and best regards! - Tobaloidee

Of course, all contributions to this project are welcome. Will the final result be in SVG format? Thanks!

yes, ill make it in SVG..ty for the feedback..Will start my design now..

Here's what i came up with based on the infos in the readme..
concept: Shield to represent the idea of blocking and i put a visible "h" inside for hBlock.
i made a favicon and 3 logotype versions. please let me know if you have suggestions

I like it. I'll take the first version (all red), you should do a PR adding the SVG logo at the beginning of the README.md. I really appreciate this contribution, thank you very much.

Will prepare the files and make a PR..Im glad you liked it!
On Mon, Jul 9, 2018, 10:10 PM Héctor Molinero Fernández, <
<EMAIL_ADDRESS>wrote:

I like it. I'll take the first version (all red), you should do a PR
adding the SVG logo at the beginning of the README.md. I really appreciate
this contribution, thank you very much.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hectorm/hBlock/issues/18#issuecomment-403492781, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AiXACCVgXIjmI5Z35edMn9GI_sQNGE9fks5uE2RugaJpZM4VG8dH
.

Here's the PR #19 Sir, Thanks again! best regards to the project! - Tobaloidee

Looks good. I only have the doubt about what typeface the logo uses, simply to prevent any problem with the license. Thanks again.

I have also modified both images to reduce margins and correctly center some elements.

Favicon

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!--

That font is owned by Adobe and I don't have the rights to use it. Could you use some similar font with a permissive license?
In this thread there are some recommendations:
https://graphicdesign.stackexchange.com/questions/350/web-safe-alternative-to-myriad-pro-font

here Sir pls check this i i use Source Sans Pro and i think it is better

I updated my PR just now Sir..

Merged. I'm very pleased with your contribution, thanks!

Hi @hectorm  I have made different file formats and variations of your new logo and you can all download it on the link below:
SVG-PNG-Ai
Best regards again! :+1:
-Tobaloidee

Thank you! I will definitely add to the repository the version with the text at the bottom.

Hi @tobaloidee, I just wanted to let you know that I found this project in Steemit and I have made the suggested modifications. I have also rewritten the SVG by hand.

Hi @hectorm i have already did the modifications too in my laptop..i just forget to update my linked drive with the modified version..i am on my way home now

Btw, do you want me to make a logo for hblock resolver too?

Here is the link for the updated logo version @hectorm
ModifiedVersion
Thanks!

For hBlock Resolver I'm thinking of reusing the same logo, changing the color and putting an "r" instead of an "h" (or maybe both). I would like to use a shape other than a shield, but I'm still not sure which one.
Anyway, I have a trip soon and I will be offline for a few weeks, so I will not progress on this at the moment.


Determine the license to use

I used OSET for the server, but there are different considerations for the client than the server. The client isn't just for government to use.
Consider dual-licensing, if that's viable? OSET and MIT/Apache.

Not OSET. It's trouble. MIT or Apache.

Closed with 730cfae73f74abe0f7215010522a472ebc3f7c45.


getServerSession example using app router

Hey, thanks for your reply to my question about the use of getServerSession in your library. I have taken the information you gave me and seem to have created a working, build-able example which uses getServerSession alongside the new app router. Even though it builds, it does appear to be a bit janky. The main differences between my fork and your app router example are my route.ts and me/page.tsx files.
Two main sources of jankiness are here (where I define the authOptions provider details & callbacks you provided) and here (where I call getServerSession with the authOptions as an argument).
I am not that well-versed in Typescript so I rely on @ts-expect-error to make it work (maybe @qwertyuiop6 might know the proper implementation?), but I am almost confident that I am passing provider details into getServerSession improperly.
Let me know what you think!

Sorry to bother you, @qwertyuiop6.
Could you take a look at this PR and tell me if all is well here? I still have no experience with app routing.

I'm sorry, I just noticed this message.
I took a look at the implementation of next-auth . The authOptions of getServerSession  does not require providers.
So you can simply change getAuthOptions to be like this:
export function getAuthOptions(req?: NextRequest): AuthOptions {
	return {
		providers: req
			? [
					SteamProvider(req, {
						clientSecret: process.env.STEAM_SECRET!,
						callbackUrl: 'http://localhost:3000/api/auth/callback',
					}),
			  ]
			: [],
		callbacks: {
			jwt({ token, account, profile }) {
				if (account?.provider === PROVIDER_ID) {
					token.steam = profile;
				}
				return token;
			},
			session({ session, token }) {
				if ('steam' in token) {
					// @ts-expect-error
					session.user.steam = token.steam;
				}
				return session;
			},
		},
	};
}

Thanks for the clarification @qwertyuiop6! Seems to make sense to me now too.
@Nekonyx time permitting, let me know if there is anything I can do to make it merge ready.

Always appreciate another another set of eyes, haven't ever done a PR before this one. :)

@bryanzack please don't change package.json/pnpm-lock.yaml related to module itself. It scares me a bit x)

@Nekonyx Ah okay, sorry about that. Just so I know, should PR's not include those files?

@Nekonyx Ah okay, sorry about that. Just so I know, should PR's not include those files?

If the module works well with<EMAIL_ADDRESS>and does not require<EMAIL_ADDRESS>it is better not to raise the minimum supported version of next.js

@Nekonyx Ah okay, sorry about that. Just so I know, should PR's not include those files?

If the module works well with<EMAIL_ADDRESS>and does not require<EMAIL_ADDRESS>it is better not to raise the minimum supported version of Next

Good point! I hadn't even thought about that

@Nekonyx Ah okay, sorry about that. Just so I know, should PR's not include those files?

If the module works well with<EMAIL_ADDRESS>and does not require<EMAIL_ADDRESS>it is better not to raise the minimum supported version of Next

Hi @Nekonyx, nextjs launched a stable version of the app router in version 13.4. Previously, this was an experimental feature, and additional fields need to be declared in next.config.js are no longer needed. I think we should support the latest stable version. Instead of staying in the experimental version.
Maybe we should do a feasibility test and upgrade the nextjs dependency in all the examples to the latest.

It doesn't matter if next.js only upgraded the minor version. The module will continue to support both next.js 13.3, 13.4, and any 13.x versions until the major version is changed to 14.


Make DeleteDisk return synchronously

Doc says it returns synchronously. Prevent users from doing an extra "get operation" call.

LGTM

Thanks @ahmetalpbalkan !


Update state of (mouse) botton in move handler

This PR (delete as applicable)

Fixes a bug

Describe the changes below:
Update state of (mouse) botton in move handler. #3779

this.buttons has been updated in last commit. Please review it.

Sorry I add another PR about tween which is not related to issue of mouse event.
(BTW, How to submit multiple PRs?)

Here is a new PR, add Offset, OffsetPoint methods of polygon shape.


Cocoapods version does not have reachabilityToInternet

The library in example is ok
However the package downloaded from cocoa pods does not have reachabilityToInternet function

Bump, if you could please make another release for Cocoapods that would be brilliant!

Updated.

hmmm... v1.4.1, which I think is the release that fixes this, does not appear to be available via cocoapods.  1.4 is all I can pull via pod install.

Apparently someone else has claimed my pod. Once the dispute is fixed I'll update the pod trunk.

This issue can be closed?

Yes I think so, thank you very much.
On Mon, Jun 13, 2016 at 11:33 PM, Julien Lavergne<EMAIL_ADDRESS>wrote:

This issue can be closed?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kstenerud/KSReachability/issues/11#issuecomment-225617815,
or mute the thread
https://github.com/notifications/unsubscribe/ABL4hBGyi76BjWLWpCtDBzrFWT8Ymd1Vks5qLXhLgaJpZM4CzCUn
.

--
Best regards,
Fei Wen
Tel: (+1)<PHONE_NUMBER>


[incubator/zookeeper] Add SSL support

This adds both quorum and client SSL support.  It accepts certificate
material in kubernetes.io/tls format (i.e., compatible with cert-
manager).  Client or server support can be configured separately,
and if client SSL support is enabled, plain-text client connections
are disabled.
Signed-off-by: James E. Blair<EMAIL_ADDRESS>
Is this a new chart
No
What this PR does / why we need it:
Adds SSL support.
Which issue this PR fixes
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] DCO signed
[ ] Chart Version bumped
[ ] Variables are documented in the README.md
[ ] Title of the PR starts with chart name (e.g. [stable/mychartname])

I'd like to take a different approach, will open a revised PR.


Expo SDK App: BridgeServer is running but cachedVideoUrl fails

Describe the bug
Added as documented in docs CacheManagerProvider:
const lfuPolicyRef = useRef(new LFUPolicy(5))

<CacheManagerProvider cachePolicy={lfuPolicyRef.current}>
...

And verified that BridgeServer inside CacheManagerProvider starts listening to the port.
After that, I added the following to the Video component:
const { setVideoPlayUrlBy, cachedVideoUrl } = useAsyncCache()
console.log(`cachedVideoUrl: ${cachedVideoUrl}`)

That actually gives a valid-looking url:
 LOG  cachedVideoUrl: http://<IP_ADDRESS>:55144/dev/getFile/o2ek4rbht3h26818s3zf74ug/video.m3u8?__hls_origin_url=http%3A%2F%2F<IP_ADDRESS>%3A8787%2Fdev%2FgetFile%2Fo2ek4rbht3h26818s3zf74ug%2Fvideo.m3u8

But the Video component produces this error with function onError:
{"error":{"localizedRecoverySuggestion":"","domain":"NSURLErrorDomain","localizedFailureReason":"","localizedDescription":"Could not connect to the server.","code":-1004},"target":353}

Expected behavior
Work as expected, as it works without caching.
Smartphone (please complete the following information):

Device: iPhone12
OS: iOS16.6.1
Expo SDK Version [e.g. 22]

Additional context
I haven't tested on an example without Expo SDK yet.
Question
Any ideas why this could appear?

It seems bridge server working. You can try some CDN url

The reason maybe on your local running server:

Because it in private, could you check your device have the same network with you local server, by enter your m3u8 url on your safari phone.
If it working, can you check NSAppTransportSecurity in info.plist, does it allow connect to http without ssl

If this issues still having, can you give me your demo server that I can debug

@nguyenvanphituoc thanks for the fast reply!
So basically I tried to replace my local server URL with your example CDN URL and it didn't help.
I mean, the Video from CDN URL is working but when I try to pass it through setVideoPlayUrlBy and get cachedVideoUrl - it fails with this TypeError: Network request failed if use fetch, and this if place in Video component: {"error":{"localizedRecoverySuggestion":"","domain":"NSURLErrorDomain","localizedFailureReason":"","localizedDescription":"Could not connect to the server.","code":-1004},"target":353}.
Here are some screenshots I made. The first one - is when I just place CDN URL in the Video component, second - is from my local running server, third and fourth - are in Safari (CDN URL also opens).
I think this might be some problem with GCDWebServer or that it runs with Expo Development Client. But it looks like that bridge server just doesn't accept requests.
Here's the full project with server and app (that can be installed and served by: pnpm i & pnpm dev - but still need to install the build on simulator or phone): link. But if you prefer some Minimal Reproducible Example - I can make it too. Just let me know!

If it working, can you check NSAppTransportSecurity in info.plist, does it allow connect to http without ssl

Also, regarding this question - I created a new build with NSAppTransportSecurity and NSAllowsLocalNetworking set to true as in Apple Docs here. But still the same error. The "Network request failed" for url http://<IP_ADDRESS>:53902/x36xhzz/x36xhzz.m3u8?__hls_origin_url=https%3A%2F%2Ftest-streams.mux.dev%2Fx36xhzz%2Fx36xhzz.m3u8.

I can confirm that it's working correctly when used with https (http videos still don't work but I just fall back on direct load when local). The problem was that CacheManagerProvider was inside the react-navigation component, when I moved it to the _layout.tsx outside of the <Tabs> component - it worked.
Closing issue as resolved.


Have to change  Microsoft.VSTS.Common.StackRank

Have to change namespace Microsoft.VSTS.Common.Rank to Microsoft.VSTS.Common.StackRank

@hahaysh : Thanks for your contribution! The author, @KathrynEE, has been notified to review your proposed change.

you really nice.
have a good day.


Feature request: Double-click in pixel history navigates to relevant event in event browser

A nice convenience would be if you double-click on an event in the pixel history it displayed and selected that event in the Event Browser, opening the parent nodes if necessary. Thanks for all your work on this wonderful tool!

What version are you running? For me on both the C# and Qt UI double clicking the pixel history events does exactly that. That's the intention, the help text even says so:

I'm running 0.34, and it's weird - using a capture I took yesterday, it works as advertised, but in an earlier capture (long since deleted) double-clicking was doing nothing, prompting this request. Apparently I hit some sort of UI bug I can no longer reproduce? If I see it again I'll send the capture your way, otherwise this is a non-issue.


make exclude from date words configurable

https://github.com/microsoft/vscode-pull-request-github/blob/2856712a3b7c52b150c2d99542d43643a4050d47/src/issues/stateManager.ts#L15-L15

More context
https://github.com/microsoft/vscode-pull-request-github/blob/2856712a3b7c52b150c2d99542d43643a4050d47/src/issues/stateManager.ts#L31-L33


Fix all issues that appear on PostgreSQL database

PDOException: SQLSTATE[42883]: Undefined function: 7 ERROR:  el operador no existe: ` character varying
SELECT COUNT(*) FROM "comment" WHERE model = 'yeesoft\post

https://github.com/yeesoft/yii2-comments/pull/16/files


Improve .env file

add the domain and the ports and add some documentation for this file

add to that, explain how to configure the app parameters.yml (not everyone is aware of this):
parameters:
    database_driver: pdo_mysql
    database_host: mysql
    database_port: null
    database_name: mydb
    database_user: user
    database_password: userpass


pull request for e2e test at 12/16/2016 00:45:19

:white_check_mark: Validation status: passed
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.


Proposal  - Add to the docs,  how to make vuex-orm and vuex-persistedstate play nice together

So,  i have been trying to find a way for the user to refresh his browser and not lose the store data that is being set with vuex-orm,  and the way to do it is like so,
since the plugin list is immutable, you need to make sure your vuex-persistedstate comes AFTER the vue-orm plugin,  or  VuexORM.install(database)
a deeper explanation involves how the internals of vuex-persistedstate,
to make it short,  it will make all of the plugins/ modules ABOVE  it, persistant like you would expect,  but not what comes after it on the list.
if i am wrong, please correct me.
hope this helps
import Vue from 'vue'
import Vuex from 'vuex'

// your model imports here
import createPersistedState from 'vuex-persistedstate'

// ORM
import VuexORM from '@vuex-orm/core'

Vue.use(Vuex)
const database = new VuexORM.Database()

database.register(MyModel, 'mymodels')

const store = new Vuex.Store({
  modules: {
 // your store modules here
  },
  plugins: [

    VuexORM.install(database),  // database store init comes FIRST (or, before the `vuex-persistedstate`)
    createPersistedState()
  ],
});

export default store

Related to https://github.com/vuex-orm/vuex-orm/issues/269

@eladyaniv01 Thank you for posting this. I struggled for half a day trying to figure out why state clearly visible in the localStorage wasn't being hyrdrated to vuex.


Support deserializing flattened untagged enum

Getting error while flattening enum inside struct:
value: Error("can only flatten structs and maps", line: 6, column: 5)'

Source code: https://gist.github.com/r8d8/2940b5490a90204e5052809eae9b8868
serde version 1.0.51

I released Serde 1.0.53 with a fix -- after a cargo update your code should work as written.


Real Arm shaking using Moveit Servo publish_joint_velocities

Description
At the moment I'm working with an UR5e and try to implement the Moveit Servo using the "publish_joint_velocities" option. Starting from a desired cartesian pose, I implemented a PID to obtain a TwistStamped message to send to my servo topic. In simulation everything works well, but when i try the code on my real arm, it starts shaking.
To understand what was happening, while keeping the real arm still, i considered a small movement along one axis as my desired pose (so that my linear velocity along that axis would have kept being constant) and used a fake topic as "command_out_topic" in order to plot the result of the servo node.
I don't know if i should set some values or something else to avoid this oscillation
This is how i defined the servo params file

Your environment

ROS Distro: Humble
OS Version: e.g. Ubuntu 22.04

Expected behaviour
I expected to obtain, if not really a constant value on the joints, one with a really small vibration
Actual behaviour
I obtained a huge oscillation on the resulting joint velocities (the one in figure).

Uploaded the same image of my servo params file twice, sorry


Backports to iron

A manual backport PR to fix conflicts of open backports.
Replaces #837 #853 #862 #866

Doing such backports and releasing them one day before sync makes it really hard to depend on these packages. For our ur_controllers this backport meant that we were not able to adjust to the API changes in time for the sync, and our builds now failing in the buildfarm.

Hm, maybe we haven't thought about the API break of renaming read_state_from_hardware while backporting (I think this is the only break here). We should work on bringing the scaled JTC upstream into this package (#301, I guess this is the conflict here?).

Sorry for the inconvenience caused guys.
I'd suggest also following this up with the ROS Boss for Iron. Releases too close to the sync are typically held. The entire purpose of the testing repo is to give some mileage to new releases before they go into sync.


Corrected SA1205 code fix for nested types (fixes #2114)

Fixes https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/2114.
Code fix and unit tests updated. Also improved existing unit tests to cover more cases.

Current coverage is 93.33%

Merging #2118 into master will decrease coverage by -0.02% as of 8307ac5

@@            master   #2118   diff @@
======================================
  Files          566     566
  Stmts        35946   36016    +70
  Branches      2315    2318     +3
  Methods
======================================
+ Hit          33557   33617    +60
- Partial        761     762     +1
- Missed        1628    1637     +9

Review entire Coverage Diff as of 8307ac5

Powered by Codecov. Updated on successful CI builds.

 I made some kind of boo boo here... :-)

Works, but unnecessarily complex according to coverage report. Discarding this pull request and trying again.


Fix delete function in repository

Change delete function in repository

Nice project!
Thanks to the owner and all contributors 😄

Thank you for raising this PR. I'll be closing it as the main branch is already up-to-date with the changes you suggested. Appreciate your contribution!


feature: support this metric: Daily Conversion Date

The metric namedDaily Conversion Date % should be developed.
Example Request
GET /metrics?id=conversion&dimensions=date&aggregate=distinct

Example Response
{
  "metric": "conversion",
  "dimensions": ["date"],
  "aggregation": "distinct",
  "data": {
    "2020-10-09": [
      {
        "sessions": 100,
        "purchases": 10,
        "value": "10.00"
      }
    ],
    "2020-10-10": [
      {
        "sessions": 1000,
        "purchases": 250,
        "value": "25.00"
      }
    ]
  }
}

fixed at #20


Fix transformation of regex with lookahead/lookbehind

Fixes transformation of lookbehind/lookahead.
Before fix:
transform(/^xy(?=z)/).to_s) #=> "xy(?:?=z)"

After fix
transform(/^xy(?=z)/).to_s) #=> "xy(?=z)"

It works for positive/negative lookahead/lookbehind and for named capture groups

@mattwynne spelling fixed

Spasibo!

Рад помочь :)


Please allow to change restart policy on running containers

It would be nice if the restart policy is change-able for running containers.

This one requires Portainer to define a new interface to connect to the Docker update API: https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/update-a-container

Didn't say it was easy. Its just something I'd like to see, on a functional level. I understand you have to prioritize everything though...

Yes, I'm just adding comments for future work on it :)

I would really like to see this feature, too

Stopped containers as well, so you can stop auto restart when machine reboots


Deployment according to tps

Explain your changes:
Make the deployment of zkapp accounts in zkapp scheduler respect the transactions_per_second of the graphql config
Explain how you tested your changes:
*
Checklist:

[x] Dependency versions are unchanged

Notify Velocity team if dependencies must change in CI

[ ] Modified the current draft of release notes with details on what is completed or incomplete within this project
[x] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[x] All tests pass (CI will check this if you didn't)
[x] Serialized types are in stable-versioned modules
[x] Does this close issues? List them

Closes #13145

!ci-build-me

!ci-build-me

!ci-build-me

!ci-build-me

!approved-for-mainnet


DateTime serialization contains additional '-' character.

It looks like the DateTime serialization to ISO8601 contains an additonal hyphen (-) character.
If I had to guess the formatter is producing a "-5" instead of "5" for the timezone value.
using System;
using Utf8Json;

namespace ConsoleApp6
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var item = new
            {
                Date = DateTime.Now
            };

            var result = JsonSerializer.ToJsonString(item);

            // Produced Output: {"Date":"2017-09-27T14:31:17.1876168-0-5:00"}
            // Correct Output:  {"Date":"2017-09-27T14:31:17.1876168-05:00"}
        }
    }
}

I can't reproduce your error
My output is:
{"Date":"2017-09-27T22:48:45.1747779+01:00"}
but it might be related to your negative TZ diff.

sorry and thanks, I've released v1.0.3.


failure to import moto with boto version 2.9.6

I used pip to install moto on an old develop machine and ran into problems trying to import the library due to missing features in an older boto version:
>>> import moto
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/moto/__init__.py", line 14, in <module>
    from .kinesis import mock_kinesis  # flake8: noqa
  File "/usr/local/lib/python2.7/dist-packages/moto/kinesis/__init__.py", line 2, in <module>
    from .models import kinesis_backends
  File "/usr/local/lib/python2.7/dist-packages/moto/kinesis/models.py", line 3, in <module>
    import boto.kinesis
ImportError: No module named kinesis

>>> import boto.kinesis
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named kinesis

>>> import boto
>>> boto.__version__
'2.9.6'

upgrading to the most recent release of boto solved my issues.  kinesis was introduced in boto version 2.20.0, so I thought the laziest solution would be to make this a minimum requirement to installation of moto.  I did not verify that this version is sufficient.

Closed with #314