Update to use updated LUNQ library

I have updated several files which use LUNQ incorrectly, and have replaced the redundant method calls with for loops.

"wontfix" definitely doesn't apply to this, as this IS the fix.


Documentation Request

Please provide us with the following information:

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [ ] feature request
- [ X] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Mention any other details that might be useful
I would like to build a working verision of this demo in my environment. Could you provide some documentation on what is required. The whitepaper is vague and doesn't include specifics based on the code provided.

Thanks! We'll be in touch soon.

Pdf is here:
http://aka.ms/AADExternalidentities


Fix issue with multiple optionals in Python lists

Fixes an issue with emitted lists where the Optional[] wrapper could be repeated. This is purely a cosmetic bug fix, Optional[Optional[X]] has the same type as Optional[X] in mypy.

This would probably be nice as a 1.4.7 release


Global instances

The issue of global instances---i.e. top-level control or parser instantiation---came up at the LDWG meeting on Monday, March 27th, 2017.
The Problem
What should the P4_16 spec say about global instantiation, if anything?  Here are some situations to consider.

If a control is instantiated at the top level but (a) not used in another control, and (b) not passed as an argument to a package, then is that instance dead code?  Can the control plane install rules to its tables?

If a control or parser is instantiated at the top level and used exactly once in another control or parser, is this equivalent to instantiating it locally in the namespace where it is used, and can the compiler inline it?

If a control or parser is instantiated at the top level, can it be used more than once?  Does this differ from how a control or parser instantiated locally (inside another control or parser) can be used?

Do we need to revisit this issue at the 5/8 meeting? We've now resolved #129 differently.

Closed by #197


[Bug]: Connection refused error on WSL2

Describe the bug
Running WSL2 with Ubuntu. Installed autogenstudio via pip. Ran it with the standard autogenstudio ui --port 8081 command.
The web ui works fine, but when I try to chat, I get a connection refused with a lengthy error message.
Here is the error message:
jynx@TJ-Desktop:~$ autogenstudio ui --port 8081
INFO:     Started server process [414]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8081 (Press CTRL+C to quit)
INFO:     <IP_ADDRESS>:43710 - "GET / HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /images/svgs/welcome.svg HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /app-0b19e7b3b3630760e904.js HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /framework-0e118549f33203964972.js HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /webpack-runtime-d26758facd302421ecb4.js HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /page-data/app-data.json HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /page-data/index/page-data.json HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /favicon-32x32.png?v=46131b614287332146ea078703a67d38 HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /318ce576f236b79fd96f75904c13f6e55c3eee57-8feabdf57edb2a6eecc8.js HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /6c05b3ab656a8bfc225a64b3d73a36a92f83c05e-6dce912a9a9b963cded5.js HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET /component---src-pages-index-tsx-3209e5a7b17734fbd11c.js HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43764 - "GET /manifest.webmanifest HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43710 - "GET<EMAIL_ADDRESS>HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:43710 - "GET<EMAIL_ADDRESS>HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:43710 - "GET<EMAIL_ADDRESS>HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:43710 - "GET<EMAIL_ADDRESS>HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:43726 - "GET /page-data/gallery/page-data.json HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43742 - "GET /page-data/build/page-data.json HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43742 - "GET /page-data/gallery/page-data.json HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43726 - "GET /page-data/build/page-data.json HTTP/1.1" 304 Not Modified
userproxy (to primary_assistant):

i'm writing to you from autogen studio. can you give me an overview of what kiund of thigns i can use autogen for? what's a good starting project for it?

--------------------------------------------------------------------------------
userproxy (to primary_assistant):

test

--------------------------------------------------------------------------------
userproxy (to primary_assistant):

Write a python script to plot a sine wave and save it to disc as a png file sine_wave.png

--------------------------------------------------------------------------------
userproxy (to primary_assistant):

test

--------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
    yield
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 206, in connect_tcp
    sock = socket.create_connection(
  File "/usr/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 67, in map_httpcore_exceptions
    yield
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 231, in handle_request
    resp = self._pool.handle_request(req)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 268, in handle_request
    raise exc
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 251, in handle_request
    response = connection.handle_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
    raise exc
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
    stream = self._connect(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 205, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 887, in _request
    response = self._client.send(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 915, in send
    response = self._send_handling_auth(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 943, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 980, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 1016, in _send_single_request
    response = transport.handle_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 230, in handle_request
    with map_httpcore_exceptions():
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 84, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
    yield
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 206, in connect_tcp
    sock = socket.create_connection(
  File "/usr/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 67, in map_httpcore_exceptions
    yield
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 231, in handle_request
    resp = self._pool.handle_request(req)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 268, in handle_request
    raise exc
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 251, in handle_request
    response = connection.handle_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
    raise exc
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
    stream = self._connect(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 205, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 887, in _request
    response = self._client.send(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 915, in send
    response = self._send_handling_auth(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 943, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 980, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 1016, in _send_single_request
    response = transport.handle_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 230, in handle_request
    with map_httpcore_exceptions():
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 84, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
    yield
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 206, in connect_tcp
    sock = socket.create_connection(
  File "/usr/lib/python3.10/socket.py", line 845, in create_connection
    raise err
  File "/usr/lib/python3.10/socket.py", line 833, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 67, in map_httpcore_exceptions
    yield
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 231, in handle_request
    resp = self._pool.handle_request(req)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 268, in handle_request
    raise exc
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 251, in handle_request
    response = connection.handle_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
    raise exc
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
    stream = self._connect(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 124, in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 205, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 887, in _request
    response = self._client.send(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 915, in send
    response = self._send_handling_auth(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 943, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 980, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_client.py", line 1016, in _send_single_request
    response = transport.handle_request(request)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 230, in handle_request
    with map_httpcore_exceptions():
  File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/jynx/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 84, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/jynx/.local/lib/python3.10/site-packages/autogenstudio/web/app.py", line 68, in add_message
    response_message: Message = chatmanager.chat(
  File "/home/jynx/.local/lib/python3.10/site-packages/autogenstudio/chatmanager.py", line 29, in chat
    flow.run(message=f"{message_text}", clear_history=False)
  File "/home/jynx/.local/lib/python3.10/site-packages/autogenstudio/workflowmanager.py", line 191, in run
    self.sender.initiate_chat(
  File "/home/jynx/.local/lib/python3.10/site-packages/autogen/agentchat/conversable_agent.py", line 621, in initiate_chat
    self.send(self.generate_init_message(**context), recipient, silent=silent)
  File "/home/jynx/.local/lib/python3.10/site-packages/autogen/agentchat/conversable_agent.py", line 398, in send
    recipient.receive(message, self, request_reply, silent)
  File "/home/jynx/.local/lib/python3.10/site-packages/autogen/agentchat/conversable_agent.py", line 551, in receive
    reply = self.generate_reply(messages=self.chat_messages[sender], sender=sender)
  File "/home/jynx/.local/lib/python3.10/site-packages/autogen/agentchat/conversable_agent.py", line 1193, in generate_reply
    final, reply = reply_func(self, messages=messages, sender=sender, config=reply_func_tuple["config"])
  File "/home/jynx/.local/lib/python3.10/site-packages/autogen/agentchat/conversable_agent.py", line 708, in generate_oai_reply
    response = client.create(
  File "/home/jynx/.local/lib/python3.10/site-packages/autogen/oai/client.py", line 278, in create
    response = self._completions_create(client, params)
  File "/home/jynx/.local/lib/python3.10/site-packages/autogen/oai/client.py", line 543, in _completions_create
    response = completions.create(**params)
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_utils/_utils.py", line 271, in wrapper
    return func(*args, **kwargs)
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/resources/chat/completions.py", line 643, in create
    return self._post(
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 1112, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 859, in request
    return self._request(
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 911, in _request
    return self._retry_request(
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 982, in _retry_request
    return self._request(
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 911, in _request
    return self._retry_request(
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 982, in _retry_request
    return self._request(
  File "/home/jynx/.local/lib/python3.10/site-packages/openai/_base_client.py", line 921, in _request
    raise APIConnectionError(request=request) from err
openai.APIConnectionError: Connection error.

INFO:     <IP_ADDRESS>:43710 - "POST /api/messages HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:43726 - "GET /component---src-pages-gallery-index-tsx-f78f5f06ef65ea97e302.js HTTP/1.1" 304 Not Modified
INFO:     <IP_ADDRESS>:43742 - "GET /component---src-pages-build-tsx-10ec7cd0147b32ec3a0b.js HTTP/1.1" 304 Not Modified

Steps to reproduce
see above
Expected Behavior
not a connection refused error when trying to talk to the model
Screenshots and logs
No response
Additional Information
No response

Hi
What model are you using?
You must also specify the model you intend to use in the workflow config UI (and remove all others)

using OpenAI GPT4. Is this the right configuration?

Under models … can you confirm you have an api key? Eg when you select gpt-4-1106-preview … can you ensure you have your api key setup there also.

It wasn't set there before (I set it via an environment variable before).
I added that and the model base url but the issue persists

Your key seems long. Is this Azure Open AI or OpenAI?
Note:

For azure openai, you will need to fill in all the fields (see below)
For openai you only need to provide model name and api key

For azure openai you will need to set the following

model - which is the deployment id or engine
api key .. from azure
base url .. from azure
model type ..  -  "azure"
api version ... which must be what you get from azure.

Also note that you should only have this model in your list of models.

I'm having the same issue on WSL2 Ubuntu 22.04 under Windows 11.
In my case there weren't any models set for the userproxy agent, but they were set for primary_assistant.
I've added gpt-4-1106-preview to the userproxy agent, the same as it was set for primary_assistant.
I've also set my OPENAI_API_KEY envvar and added the API key to the models of both agents but still getting the connection error.
Is there anything useful I can send you to help you debug this?

Hmmm, I'm getting the same error using a native Windows install with Miniconda. WSL2 doesn't seem to be the culprit. Maybe there's something missing in the userproxy agent config?

Yes, I have an API key setup there, as well as an environment variable set. I've also put the base url in as https://api.openai.com/v1

I've tried with WSL2, Miniconda, as well as docker in a ubuntu 22.04 image and seem to be getting the same error. I am also on windows 11.  I also tried it on another ubuntu 22.04 physical server I had.  After digging a little bit I see the default model is gpt-4-1106-preview, when looking at my rate limits on my account I do not see that available.  After some digging it appears that you had to have a certain amount of money spent using API keys when OpenAI released it.  I'm not sure if that is the issue, I tried removing that model from the primary agent but still getting the OpenAI connection error. I saw the other default model was gpt-3.5-turbo-16k, I tried just setting the agent to use this as it appears I do have access to that model in my openai settings page.    Is there a more in depth guide in setting it up than the blog post?  I see the blog post mentions config and it seems to save that info but I don't see any hidden folder or anything from the directory I'm running it in, nor anything in the home directory like ~/.autogen or anything of that nature.

Getting same error here -- just running native Windows 10.

Can people on this error confirm my above suspicion by going to:
https://platform.openai.com/playground?assistant=new

And check in the models drop down if you have gpt-4-1106-preview, that may rule out if that's the underlying issue

I believe I have configured correctly, I have active API key entered and I did check on my playground, I do have gpt-4-1106-preview available, still getting connection error as well. Wasn't able to set it up for a local model through text-generation-webui either. I am able to use autogen without studio UI

Can people on this error confirm my above suspicion by going to: https://platform.openai.com/playground?assistant=new

And check in the models drop down if you have gpt-4-1106-preview, that may rule out if that's the underlying issue

Yes, gpt-4-1106-preview exists in the model drop down.

I'm seeing an error as well. As you can see it is letting me use the `gpt-4-1106-preview` agent on the OpenAI website. Also, when I modify my autogen agents to only use GPT-3.5 the error persists.

@vannestn thanks for confirming.  I also tested this in the playground and got the same error even with gpt-3.5.  I dug into it a little it and looked at my limits and some articles.

Looked like I was in the free tier usage.  I bought $10 worth of credits to jump me to tier 1.

After that I was able to use the playground with that model:

I tried upgrading autogen ui via (pip install -U autogen), and creating a new API key and running the UI again but still getting the same connection error.  I'm not sure if I should wait a little bit, like it takes a few minutes to propagate my tier upgrade, but at least I figured out the OpenAI issue now with the error.  Maybe if I get some more time later I will test some more.

When I bought new credits with Open AI, their own playground UI wasn’t able
to use the credits until a day later. Maybe it’s a fraud prevention
measure. After a day had passed, the playground was able to run an agent
for me. Haven’t run the Autogen program yet but I’ll let you know how it
goes.
On Mon, Jan 22, 2024 at 9:25 AM Anthony Oliver @.***>
wrote:

@vannestn https://github.com/vannestn thanks for confirming. I also
tested this in the playground and got the same error even with gpt-3.5. I
dug into it a little it and looked at my limits and some articles.
image.png (view on web)
https://github.com/microsoft/autogen/assets/492564/5b5c385a-7f5a-4b65-9584-305fca23fdc3
Looked like I was in the free tier usage. I bought $10 worth of credits to
jump me to tier 1.
image.png (view on web)
https://github.com/microsoft/autogen/assets/492564/494fe718-bff4-42e7-9cc6-934e22e74ca1
After that I was able to use the playground with that model:
image.png (view on web)
https://github.com/microsoft/autogen/assets/492564/5920f22c-82aa-49d6-b46d-de6b514d6bb3
I tried upgrading autogen ui via (pip install -U autogen), and creating a
new API key and running the UI again but still getting the same connection
error. I'm not sure if I should wait a little bit, like it takes a few
minutes to propagate my tier upgrade, but at least I figured out the OpenAI
issue now with the error. Maybe if I get some more time later I will test
some more.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/autogen/issues/1272#issuecomment-1904469395,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFMAWCX7ALKMLAJICV5LHKTYP2OHJAVCNFSM6AAAAABB37QDMSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBUGQ3DSMZZGU
.
You are receiving this because you were mentioned.Message ID:
@.***>


Graphite table support

This PR adds support for the Graphite font tables: Feat, Glat, Gloc, Silf, Sill providing ttx XML support as well.

Nice! Do you plan adding unit tests? Something like this, for example. Tests help a lot when maintaining a large codebase.

Thank you Martin for working on this! 👍
Yes, some simple tests would be nice to have.
one minor suggestion I was thinking of, that fontTools/ttLib/tables/grUtils.py module could named more explicitly graphiteUtils maybe?

Are the specs for these tables available online?
Can these tables be implemented using the otData machinery?  I prefer not adding more hand-coded table parsing if we can avoid it.

The specs are available as part of the Graphite source tree in doc/GTF.txt. I did consider trying to use the otData machinery but it would have involved so many extensions to the core supporting types and a huge growth in what are already big files that I felt it better to use the old approach. I did try to use it for the Feat table, but gave up after it refused to accept any table with a version > 1! The otData machinery is very tightly tied together and hard to open up and as such is really only good for tables that are part of the OT machinery and that can make best use of the monolithic structure.
Now, if I were starting again on the Graphite binary format, I would probably go for something much closer in style to the OT structures to make use of such machinery. But even then I don't know how close I would get.

Test are in.

I'm done fiddling subject to fixing up review comments.


Undo of Decoupling

Design DLL is deeply embedded in code.

The decoupled version is inside a folder called Dev but does not compile yet. I've reinstated the last working copy, so there should be no issues.

I'm also intending to recreate the palette upgrade tool that was implemented into my repo with a few added features.


Disabled categories show in permission settings form for TAs

When categories have been disabled, any pre-created categories still show up in the Permission settings "Add Rule" form.
If no categories, should the "All Categories" dropdown be hidden?
Also when checking permissions, if "no categories" is selected, should any previous category-scoped permissions created for the TA assume "the entire gradebook"?  I guess it comes down to a syncing issue between the category settings and category-scoped permissions.

Confirmed.


ngxAlias doesn't infer type correctly

Given that isLoading$: Observable<boolean>.
Then as isLoading in the below template is inferred as type false | true | null. But it can never be null.
<ng-container *ngxAlias="(isLoading$ | async) === true as isLoading"></ng-container>

I'm reporting this here because *ngIf seems to work.

Not sure if the problem is with *ngxAlias or the Angular Language Service

Hi! Thanks for opening this issue. The union with null actually comes from the async pipe itself. The problem here is that your assumption

But it can never be null.

is, in general, not correct. For of(true) that's the case, but for of(true).pipe(delay(1000)) it isn't. The ngIf directive narrows the type because it doesn't render the template if the value is null, but ngxAlias exists for the very purpose of not conditionally rendering the template, so null is a valid type produced by async.
I'll close this as it both works as intended and is more of a topic of the async pipe, but feel free to ask if anything is unclear. If you search for "AsyncPipe null" in the issues of angular/angular, you'll find a bunch of issues revolving around this as well.

I'm comparing boolean | undefined | null from the AsyncPipe to === true this assures the type is not null.

Oh, whoops, I misread that. Let me reopen to look into this.

Since you seem to be using VS Code, in the settings for the language service, do you have the experimental Ivy support enabled? If not, does it work if you enable it?

Sorry for not providing that info up front. Yes I'm using VSCode. I have the experimental Ivy support enabled.
Without that enabled isLoading is any

Angular Language Service Version: 11.2.2
VSCode:
Version: 1.53.2 (user setup)
Electron: 11.2.1
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041

This looks like an issue either with the language service or @angular/core to me. If you hover over the directive itself, the context type is correct:
declare (property) NgxAliasDirective<boolean>.ngxAlias: boolean

versus without === true:
declare (property) NgxAliasDirective<boolean | null>.ngxAlias: boolean | null

The directive does already declare its context type to forward it correctly, which to my knowledge is really all I can do, see https://github.com/TNG/ngx-structurals/blob/master/projects/ngx-structurals/src/lib/ngx-alias/ngx-alias.directive.ts#L52-L55.
Would you mind opening an issue on angular/angular for this?

Not at all. I initially started typing this issue in the angular language service repo. But then I couldn't reproduce the issue using angular native directives. So figured they'd just send me your way :)

I definitely know that the "built-in" directives used to have, and as far as I know still do have, some special treatment in the language service. Please do link the issue here as well after you opened it. Thanks!

https://github.com/angular/vscode-ng-language-service/issues/1137

@all-contributors please add @snebjorn for bug

@snebjorn Do you want to try if changing NgxAliasContext#ngxAlias to ngxAlias: T = null! (and likewise for $implicit) works as expected? Maybe also enable strict: "true" in the tsconfig. If so, you can PR it.

yay appears to work 🎉

Not sure how to write a test for it though. As typescript doesn't really work in the html

@all-contributors please add @snebjorn for code

@snebjorn And this is now released in 1.2.1. Thanks for your contribution!

@Airblader thank you for the quick response and swift resolution :)


Using foreign characters causes empty slug

When you create a thread with a subject of "한글 테스트" for example its slug will be empty and you can't access it. We'll need to make sure that a slug gets generated for these.

Any preference on what we set the slug to?
Perhaps something like /thread-1?

@joedixon yep sounds good


Dependency updates

Initially this started as dependency updates but has turned into updating wgpu as well, because some of this stuff was causing painful duplication.
image had default features enabled which brought in various image dependencies for things like EXR / DDS / HDR / etc. It seems better to have this as a default of "jpeg", "png" (which was possibly intended by the original PR).
The onle one from that list I was uncertain about skipping was .ico and webp: https://github.com/image-rs/image/blob/main/Cargo.toml#L70
(Or we could do "None" by default but that might confuse users)
412 -> 399
Updated softbuffer & copypasta to avoid duplicate x11rb/x11rb-protocol.
-> 392
More random stuff -> 369
Minor:

Made so im is workspace feature
Updated bitflags in editor-core as the majority of deps use v2, still have some deps using v1

Other stuff, updating wgpu & resvg/usvg -> 385

I'm not sure about having the window be 'static for wgpu. It has this via an Arc — so it won't lose the window handle while it has it — but that means when we drop the surface it should drop the window and then everything's fine?
Possibly need to test with multiple windows or something to ensure there's no leakage, but I think it should be good.

I don't like the SVG_FONT_DATABASE. Updating resvg was nice, but it requires a fontdb::Database reference. We have one in cosmic-text but it isn't exposed at all. I could just pair this with another pr to add a function to expose that on cosmic-text (and while I'm at it maybe update our cosmic-text's deps)

I'll need to open another pr for the floem-vger as it needs updates wgpu

Depends on: https://github.com/lapce/cosmic-text/pull/5
https://github.com/lapce/vger-rs/pull/8
Once I've decided on the 'static bit (and finished up) then it will probably be a:
Merge cosmic -> I update vger PR -> merge vger PR -> update this PR -> merge this PR


riot.route not working in ie for 2.3.1

I have this setup for riot routing -
var router = function(page,id) {
function change_page(current_page){
RiotControl.trigger('page_changed', current_page, xmenu.last_page)
xmenu.last_page = current_page;
}
page = !page ? 'home' : page;
change_page(page);
}
// Riot router
riot.route(router)
// Execute router function once for rendering the items
riot.route.exec(router);
when I click a link with href="#home" or set location.hash the callback function 'router' is never called in ie11 works fine in chrome and ff.

@TimWillis it looks a bug. I'm fixing another issue on the example below maybe related.
https://github.com/riot/examples/tree/gh-pages/router-page-switcher
Wait a little. Thanks.

I'm stuck on the same issue :cry:

I can confirm this issue on IE 11 and Edge. The cause seems to be the 'popstate' event (used for URL change detection) which is not correctly implemented in IE/Edge (see https://connect.microsoft.com/IE/Feedback/Details/1528993).
I'm currently using the following workaround:
window.addEventListener('hashchange', function() {
    riot.route.exec();
});

I'm stuck too!  the router works in Chrome + Firefox but NOT work in IE 11 and IE Edge
Here the plnkr samples (using the latest 2.3.11),
http://plnkr.co/edit/YZpDmc?p=preview

I am working on this issue...soon I will make a pull request


Felaqua doesn't update if no pet detected.

Think this might be a bug
But sometimes the felaqua says XX water has been removed because it didn't see a microchip.
The Dev in chrome shows a log with a new actual weight and change however the HA entity doesn't update.

Tested a few more times working perfect when it knows who drank but doesn't update for when it says so much has been removed.
Any way to get round this? The notifications I see in the Dev tools for chrome shows it generates a notification and current weight updates.

Im on it :) cant promise I will finish it today but it will come really soon :)

so, I think it should show always the correct values ;)
but! :D I also implemented this config flow/click-to-config **** so gl updating 😅 maybe you have to delete the config enter from your configuration.yaml and re-add it via the "integrations" menu... (hint: top field is sure petcare username/mail and the lower one the password :D)

@blair287, I think it should show always the correct values ;)
but! :D I also implemented this config flow/click-to-config **** so gl updating 😅 maybe you have to delete the config enter from your configuration.yaml and re-add it via the "integrations" menu... (hint: top field is sure petcare username/mail and the lower one the password :D)

I managed to update, awesome work on making it able to be added via the UI! Was gonna be my next suggestion 🤣
Looks really good now would you be able to use custom icons if I sent you the SVG images for the entities like feeder, flap, hub and felaqua?

@benleb
It's working! It saw the change even with no pet identified! Great work 👌


Bug report: RuntimeError: asyncio.run() cannot be called from a running event loop

Describe the bug
Trying to use a related property within an async function does not work because asyncio.run is used to load related values on first read of the related property.
To Reproduce
Pseucodoe to reproduce the behavior:
class SomeModel(AsyncSqlModel):
    columns = ('id', 'parent_id')
    parent: AsyncRelatedModel

    async def check(self):
        return self.parent is not None

SomeModel.parent = async_belongs_to(SomeModel, SomeModel, 'parent_id')

some = run(SomeModel.query().first())
assert not run(some.check())

Expected behavior
The attempt to load the relation on first read of the property should not produce an error.
Platform and Version (please complete the following information)

Platform/device: desktop
OS: Ubuntu
Python Version: 3.11rc1
Sqloquent Version 0.4.2

It did not resolve it. Idk why GitHub automatically closed the issue when it hasn't done this for previous commits referencing issues.

Related StackOverflow question

Temporary solution will be to use nest-asyncio as a dependency and make some documentation notes about the ResourceWarnings that it sometimes produces and how they can be avoided by not using this feature (i.e. by calling model.relation().reload() before accessing model.relation for the first time).

Temporary solution in place. Will create a new issue to finally resolve the ResourceWarnings in the future.


split screen

multiple players playing from the same game instance

each player will have their own SceneView with its viewpoint entity set as the respective player entity. the views will be displayed using a splitscreen container widget

need to refine Session code to have concepts of both networked clients and local clients


Watch folder is not working as expected

Hi @crazy-max
I have a folder mapping for the watch folder:
- /volume1/docker/rutorrent-main/watched:/downloads/watched
AutoWatch/AutoLabel are configured like:

Inside the container the permission looks good

The folder tv contains 93 items but they are not added to my download location /tv folder...
Do you have any hints? Is there a scan frequency? Can we configure it?
Thanks

@the-lazy-fox Watch folder is already handled by rtorrent through /data/rtorrent/watch/ folder. No need to use the one from ruTorrent.

The folder tv contains 93 items but they are not added to my download location /tv folder...

Also you cannot use sub folders in the watch directory. You have to place to place the torrents directly inside.

Hello @crazy-max,
Yes the rtorrent one is working but doesn't manage the autolabelling and subfolders assignment like rutorrent does. Plus it doesn't remove the .torrent file when grabbing it.
This is why, with my current image (linuxserver), I always used the rutorrent one which manage all of them (labeling, folder assignment, removal on grab)
This is why I'm opening this issue has I don't get why it's not working currently.

@the-lazy-fox Just tested and works fine for me.
Create watched folder with some subfolders:
mkdir -p ./watched/test1 ./watched/test2
chown -R 1000:1000 ./watched

Create ./data/rutorrent/plugins-conf/autotools.php configuration to adjust some settings and enable debug:
<?php

        // set interval for schedule command in seconds
        $autowatch_interval = 15;

        // set "true" to enable debug output
        $autodebug_enabled = true;

Update compose configuration and bind mount watched folder:
version: "3.2"

services:
  rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    ports:
      - target: 6881
        published: 6881
        protocol: udp
      - target: 8080
        published: 8080
        protocol: tcp
      - target: 9000
        published: 9000
        protocol: tcp
      - target: 50000
        published: 50000
        protocol: tcp
    env_file:
      - "./rtorrent-rutorrent.env"
    volumes:
      - "./data:/data"
      - "./downloads:/downloads"
      - "./passwd:/passwd"
      - "./watched:/watched"
    ulimits:
      nproc: 65535
      nofile:
        soft: 32000
        hard: 40000
    restart: always

Compose up and enable autowatch:

Wait 15 seconds and Torrents are added as expected:

Check rutorrent logs in ./data/rutorrent/rutorrent.log, everything looks fine:
[18.03.21 21:44:44]
[18.03.21 21:44:44] AutoWatch: --- begin ---
[18.03.21 21:44:44] AutoWatch: enabled          : 1
[18.03.21 21:44:44] AutoWatch: autostart        : 0
[18.03.21 21:44:44] AutoWatch: path_to_watch    : /watched/
[18.03.21 21:44:44] AutoWatch: get_directory    : /downloads/temp/
[18.03.21 21:44:44] AutoWatch: torrent file     : /watched/test2/testa.torrent
[18.03.21 21:44:44] AutoWatch: save data to     : /downloads/temp/test2/
[18.03.21 21:44:44] AutoWatch: torrent added    : 1A226D376383920991351EFEF2DF76FD2FF9F493
[18.03.21 21:44:44] AutoWatch: torrent file     : /watched/test1/test0.torrent
[18.03.21 21:44:44] AutoWatch: save data to     : /downloads/temp/test1/
[18.03.21 21:44:44] AutoWatch: torrent added    : 608DB27A37CD74C8A2B2340CAC6314AE0BCABDCE
[18.03.21 21:44:44] AutoWatch: --- end ---
[18.03.21 21:44:44]
[18.03.21 21:44:44] AutoLabel: --- begin ---
[18.03.21 21:44:44] AutoLabel: enabled         : 1
[18.03.21 21:44:44] AutoLabel: template        : "{DIR}"
[18.03.21 21:44:44] AutoLabel: get_directory   : /downloads/temp/
[18.03.21 21:44:44] AutoLabel: d.get_directory : /downloads/temp/test2/testa
[18.03.21 21:44:44] AutoLabel: d.get_custom3   :
[18.03.21 21:44:44] AutoLabel: d.is_multy_file : 1
[18.03.21 21:44:44] AutoLabel: label           : "test2"
[18.03.21 21:44:44] rtExec: d.set_custom1
[18.03.21 21:44:44] AutoLabel: --- end ---
[18.03.21 21:44:44]
[18.03.21 21:44:44] AutoLabel: --- begin ---
[18.03.21 21:44:44] AutoLabel: enabled         : 1
[18.03.21 21:44:44] AutoLabel: template        : "{DIR}"
[18.03.21 21:44:44] AutoLabel: get_directory   : /downloads/temp/
[18.03.21 21:44:44] AutoLabel: d.get_directory : /downloads/temp/test1
[18.03.21 21:44:44] AutoLabel: d.get_custom3   :
[18.03.21 21:44:44] AutoLabel: d.is_multy_file :
[18.03.21 21:44:44] AutoLabel: label           : "test1"
[18.03.21 21:44:44] rtExec: d.set_custom1
[18.03.21 21:44:44] AutoLabel: --- end ---
[18.03.21 21:44:59]
[18.03.21 21:44:59] AutoWatch: --- begin ---
[18.03.21 21:44:59] AutoWatch: enabled          : 1
[18.03.21 21:44:59] AutoWatch: autostart        : 0
[18.03.21 21:44:59] AutoWatch: path_to_watch    : /watched/
[18.03.21 21:44:59] AutoWatch: get_directory    : /downloads/temp/
[18.03.21 21:44:59] AutoWatch: --- end ---

Thanks for your feedback.
Could you please post your autotools.php file?


Chef workstation error

Hi Team,
please provide solution to below error.
I have used two ec2 ubuntu 14.4 installation for chef server and workstation.
I have used knife ssl fetch command also to place the valid certificate under .chef/trusted_certs
Use knife ssl check to troubleshoot your SSL configuration.
If your Chef Server uses a self-signed certificate, you can use
knife ssl fetch to make knife trust the server's certificates.
Original Exception: OpenSSL::SSL::SSLError: hostname "ec2-52-74-246-20.ap-south
east-1.compute.amazonaws.com" does not match the server certificate
root@ip-172-31:/home/ubuntu/chef-repo# knife ssl check
Connecting to host ec2-52-74-246-20.ap-southeast-1.compute.amazonaws.com:443
ERROR: The SSL cert is signed by a trusted authority but is not valid for the gi
ven hostname
ERROR: You are attempting to connect to:   'ec2-52-74-246-20.ap-southeast-1.com
pute.amazonaws.com'
ERROR: The server's certificate belongs to 'ip-172-31-30-179.ap-southeast-1.comp
ute.internal'

Thanks for filing a GitHub Issue.
At Chef, we use GitHub Issues to track bugs and feature requests. Questions like "How do I .... with Chef?" are better answered by our awesome community on the Chef mailing lists, or on StackOverflow. (Please pick only one place to ask your question, however, as it's considered impolite to post the same question to multiple forums.)
You can find information about joining and asking questions on our mailing lists here. On StackOverflow, please tag your question with the "chef" label so that it shows up in this list.
We will be closing your issue. Please get in touch with the community via the above mechanisms in order to find a solution to your problem.


Port STDOUT as s-c-s source

From @sabbyanandan on November 14, 2015 0:14
As a developer, I'd like to move stdout module from XD to s-c-s repo, so I can use it as source to build streaming pipeline.
Acceptance:

stdout as source module is available in spring-cloud-stream-modules repo
maven repo includes stdout module with respective group/artifact/version detail

Copied from original issue: spring-cloud/spring-cloud-stream-modules#69

This issue was moved to spring-cloud-stream-app-starters/app-starters-release#7


⚠ Processors has degraded performance

In 56d544f, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 98 ms

Resolved: Processors performance has improved in 56ac684.


write some unit tests

This will require persistent dev credentials that we could use as environment vars to run real tests on the account API:

[ ] Account
[ ] Data-AMQP
[ ] Data-MQTT
[ ] Management

For MQTT and AMQP you could use a public broker. See the tests in the NodeJS SDK

@cambierr Maybe i will try to add some unit tests in my free time, what do you things about it?

@makowskimateusz this would be great !


EnvoyFilter for Cluster match is not applied

Bug Description
Hello, I'm trying to implement a TLS termination in the sidecar side for outbound connections to a specific service through an EnvoyFilter but it's not applied.
My idea is to use HTTPS to call another service within the mesh, but still use mTLS between proxies. For example the ServiceA will query https://service-b.service.consul, this will resolve to service-b.default and the request should still use mTLS between sidecars. It would look something like:
ServiceA --(HTTPS)-->(TLS termination)ServiceAproxy(initiates mTLS)--(mTLS)-->ServiceBproxy--(plain text)-->ServiceB
The EnvoyFilter I'm trying to use is the following:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: custom-envoy-filter
spec:
  configPatches:
    - applyTo: CLUSTER
      match:
        cluster:
          name: "outbound|443||service-b.service.consul"
        context: SIDECAR_OUTBOUND
      patch:
        operation: INSERT_FIRST
        value:
          transport_socket:
            name: "envoy.transport_sockets.tls"
            typed_config:
              "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"
              common_tls_context:
                tls_certificates:
                  - certificate_chain:
                      filename: /etc/certs/consul-external/tls.crt
                    private_key:
                      filename: /etc/certs/consul-external/tls.key
                validation_context:
                  trusted_ca:
                    filename: /etc/certs/ca/ca.crt

But I'm getting the following error from the istio proxy logs:
warning	envoy config	gRPC config for type.googleapis.com/envoy.config.cluster.v3.Cluster rejected: Proto constraint validation failed (ClusterValidationError.Name: value length must be at least 1 characters): transport_socket {
  name: "envoy.transport_sockets.tls"
  typed_config {
    [type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext] {
      common_tls_context {
        tls_certificates {
          certificate_chain {
            filename: "/etc/certs/consul-external/tls.crt"
          }
          private_key {
            filename: "/etc/certs/consul-external/tls.key"
          }
        }
        validation_context {
          trusted_ca {
            filename: "/etc/certs/ca/ca.crt"
          }
        }
      }
    }
  }
}

And I can't see it applied in the clusters config:
~ istioctl proxy-config cluster netutils-bd8c7fbd-kjvmb.default --fqdn service-b.service.consul -o json
[
    {
        "name": "outbound|443||service-b.service.consul",
        "type": "STRICT_DNS",
        "connectTimeout": "10s",
        "loadAssignment": {
            "clusterName": "outbound|443||service-b.service.consul",
            "endpoints": [
                {
                    "locality": {},
                    "lbEndpoints": [
                        {
                            "endpoint": {
                                "address": {
                                    "socketAddress": {
                                        "address": "service-b.default",
                                        "portValue": 443
                                    }
                                }
                            },
                            "metadata": {
                                "filterMetadata": {
                                    "istio": {
                                        "workload": ";;;;Kubernetes"
                                    }
                                }
                            },
                            "loadBalancingWeight": 1
                        }
                    ],
                    "loadBalancingWeight": 1
                }
            ]
        },
        "circuitBreakers": {
            "thresholds": [
                {
                    "maxConnections":<PHONE_NUMBER>,
                    "maxPendingRequests":<PHONE_NUMBER>,
                    "maxRequests":<PHONE_NUMBER>,
                    "maxRetries":<PHONE_NUMBER>,
                    "trackRemaining": true
                }
            ]
        },
        "dnsRefreshRate": "5s",
        "respectDnsTtl": true,
        "dnsLookupFamily": "V4_ONLY",
        "commonLbConfig": {
            "localityWeightedLbConfig": {}
        },
        "transportSocket": {
            "name": "envoy.transport_sockets.tls",
            "typedConfig": {
                "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext",
                "commonTlsContext": {
                    "tlsCertificateSdsSecretConfigs": [
                        {
                            "name": "default",
                            "sdsConfig": {
                                "apiConfigSource": {
                                    "apiType": "GRPC",
                                    "transportApiVersion": "V3",
                                    "grpcServices": [
                                        {
                                            "envoyGrpc": {
                                                "clusterName": "sds-grpc"
                                            }
                                        }
                                    ],
                                    "setNodeOnFirstMessageOnly": true
                                },
                                "initialFetchTimeout": "0s",
                                "resourceApiVersion": "V3"
                            }
                        }
                    ],
                    "combinedValidationContext": {
                        "defaultValidationContext": {
                            "matchSubjectAltNames": [
                                {
                                    "exact": "spiffe://cluster.local/ns/default/sa/service-b"
                                }
                            ]
                        },
                        "validationContextSdsSecretConfig": {
                            "name": "ROOTCA",
                            "sdsConfig": {
                                "apiConfigSource": {
                                    "apiType": "GRPC",
                                    "transportApiVersion": "V3",
                                    "grpcServices": [
                                        {
                                            "envoyGrpc": {
                                                "clusterName": "sds-grpc"
                                            }
                                        }
                                    ],
                                    "setNodeOnFirstMessageOnly": true
                                },
                                "initialFetchTimeout": "0s",
                                "resourceApiVersion": "V3"
                            }
                        }
                    },
                    "alpnProtocols": [
                        "istio-peer-exchange",
                        "istio"
                    ]
                },
                "sni": "outbound_.443_._.service-b.service.consul"
            }
        },
        "metadata": {
            "filterMetadata": {
                "istio": {
                    "config": "/apis/networking.istio.io/v1alpha3/namespaces/default/destination-rule/service-b",
                    "default_original_port": 443,
                    "services": [
                        {
                            "host": "service-b.service.consul",
                            "name": "service-b.service.consul",
                            "namespace": "default"
                        }
                    ]
                }
            }
        },
        "filters": [
            {
                "name": "istio.metadata_exchange",
                "typedConfig": {
                    "@type": "type.googleapis.com/envoy.tcp.metadataexchange.config.MetadataExchange",
                    "protocol": "istio-peer-exchange"
                }
            }
        ]
    }
]

I would also like to point out that the EnvoyFilter documentation mention ClusterMatch but it actually doesn't exists in the EnvoyFilter template in v1alpha3.
Version
$ istioctl version
client version: 1.12.2
control plane version: 1.12.1

$ kubectl version --short
Client Version: v1.20.1
Server Version: v1.20.14

Additional Information
No response

Rejected configs do not show up in the config dump
On the ClusterMatch - the left column (name) is what you want for yaml, the ClusterMatch name is the proto/go type (https://istio.io/latest/docs/reference/config/networking/envoy-filter/#EnvoyFilter-EnvoyConfigObjectMatch)

Oh my bad regarding the documentation, now makes more sense!
Do you have any insight on the error related to the cluster match  ClusterValidationError.Name: value length must be at least 1 characters ?
From the documentation I can't identify any missing field.

Pretty cryptic error but I think I see what is going on.
You are doing an insertion of a clsuter with spec
          transport_socket:
            name: "envoy.transport_sockets.tls"
            typed_config:
              "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"
              common_tls_context:
                tls_certificates:
                  - certificate_chain:
                      filename: /etc/certs/consul-external/tls.crt
                    private_key:
                      filename: /etc/certs/consul-external/tls.key
                validation_context:
                  trusted_ca:
                    filename: /etc/certs/ca/ca.crt

That is not a full cluster config - it only has the transport_socket. So its missing name (and I am sure plenty of other fields - that is just the first error).
Maybe you want MERGE instead of INSERT?

Thanks for the reply @howardjohn,
With the merge we don't see any error or warning when applying it, but the configuration doesn't get applied.
The dump of the cluster config is the same as the original I posted in the first post.
Is it possible that the transport_sockets.tls.v3.DownstreamTlsContext is not compatible with a cluster configuration and we need to implement it in another layer?
We already tried using FILTER_CHAIN and it worked if we filtered by the port 443, but did nothing when we added the sni filter in it, the change is not applied in the config and we don't see any error in the logs.
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: custom-envoy-filter
spec:
  configPatches:
    - applyTo: FILTER_CHAIN
      match:
        context: SIDECAR_OUTBOUND
        listener:
          portNumber: 443
          filterChain:
            sni: "service-b.service.consul"
      patch:
        operation: MERGE
        value:
          transport_socket:
            name: "envoy.transport_sockets.tls"
            typed_config:
              "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"
              common_tls_context:
                tls_certificates:
                  - certificate_chain:
                      filename: /etc/certs/consul-external/tls.crt
                    private_key:
                      filename: /etc/certs/consul-external/tls.key
                validation_context:
                  trusted_ca:
                    filename: /etc/certs/ca/ca.crt

Applying it only with portNumber: 443 works for any outbound HTTPS request, but the side effect is that terminates any TLS connection and affects any HTTPS connection.
Our goal was to only terminate it for traffic that was internal to the mesh so the proxies could use mTLS.

Hello,
I've finally found the solution for this setup.
From one hand the DownstreamTlsContext is not compatible with the CLUSTER config, so I finally used the FILTER_CHAIN.
The SNI filter wasn't working because the listeners didn't have this information, so I had to create a VirtualService in order to define the SNI for that host and then I could use it in the EnvoyFilter to match the listener I was interested in.
Find the final configuration below
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: service-b-test
spec:
  hosts:
  - "service-b.service.consul"
  tls:
    - match:
      - port: 443
        sniHosts:
          - service-b.service.consul
      route:
        - destination:
            host: service-b.default.svc.cluster.local
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: custom-envoy-filter
  namespace: istio-system  # root namespace in order to apply it in all the namespaces
spec:
  workloadSelector:
    labels:
      app.kubernetes.io/component: microservice
  configPatches:
    - applyTo: FILTER_CHAIN
      match:
        context: SIDECAR_OUTBOUND
        listener:
          portNumber: 443
          filterChain:
            sni: "service-b.service.consul"
      patch:
        operation: MERGE
        value:
          transport_socket:
            name: "envoy.transport_sockets.tls"
            typed_config:
              "@type": "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext"
              common_tls_context:
                tls_certificates:
                  - certificate_chain:
                      filename: /etc/certs/consul-external/tls.crt
                    private_key:
                      filename: /etc/certs/consul-external/tls.key
                validation_context:
                  trusted_ca:
                    filename: /etc/certs/ca/ca.crt


Import block-list from Mastodon

Please add the possibility to import block-lists that have been exported from Mastodon.
The exported csv contains the following:
domain,severity,reject_media,reject_reports,public_comment,obfuscate
example:
domain.tld,suspend,false,false,"racism, discrimination, lolicon",true
I suppose we'll only need domain, severity and public_comment for Fediseer.
severity is either suspend (censor) or silence (treat as hesitated?)
public_comment is in the format "free string", and could be treated as "reason 1, reason 2, reason 3"
(referring to https://matrix.to/#/!vzuoKDBMbcFToIJwxv:discuss.online/$E4paE0mlzpYm1sKfeuG0Gy2b1ysIqV22PJ2Rpl-c4R0?via=matrix.org&via=lemmy.world&via=aria-net.org)

Any particular reason why you want to use csv instead of importing from api?

Is importing by API = sync?
That didn't do anything for me.

Nope, not currently, but I can download the reasons using api and I think it's better than importing csv, I was just curious if there's a reason why you want to do it using csv.

Ah, I see.
No, API is absolutely fine.
I was suggesting CSV import only due to my limited knowledge & imagination. 😉


Add default WinMD references to the desktop templates.

For Universal Windows templates the xaml build targets and C++ build targets add the platform WinMDs to the reference list. However this doesn't happen for desktop templates , because the TargetPlatformIdentifier is not set to UAP.
We have two options:

Set TargetPlatform to UAP
Explicitly add the references.

Since these are desktop templates, option 2 seems preferable.
A possibly even better solution would be the WinRT targets to add the references. However we would have to fight the default C++ build targets to have them stop automatically adding the references and that would be quite a bit of work and possibly break xaml.
Fixes #780

Will this also fix https://github.com/microsoft/cppwinrt/pull/774#issuecomment-716960570? cc @DHowett

We've been told by the VC project system folks in no uncertain terms that wildcards are explicitly disallowed in vcxprojs (outside of a Target that generates them!) and they'll go out of their way to break them. This solution may conflict with that.

I am personally not a fan of this solution either. Problem is that there is no good way to add them one by one explicitly as the folder location differs per version and VS doesn't add and the C++ targets don't add any WinMD for non-UAP projects.

The project system isn't exactly abounding in support for C++ developers. Much of this is making the best of some bad choices.

Let's hold off on merging this for now. I'm gonna add a target that adds the platform winmds and then have desktop templates opt-in. That's probably a better solution.

isn't exactly abounding in support for C++ developers. Much of this is making the best of some bad choices.

I'll try to find a good (or at least much better) choice here.

We've been told by the VC project system folks in no uncertain terms that wildcards are explicitly disallowed in vcxprojs (outside of a Target that generates them!) and they'll go out of their way to break them. This solution may conflict with that.

Thanks for calling this out @DHowett

Updated with a target that mimics what the xaml targets do, including keeping the support for the existing overrides. I don't think we have to document this as we already have CppWinRTOverrideSDKReferences.


WSS not connecting

Hi guys,
I have issues connecting with my mqtt server(Mosquitto) from the library.
I am successfully able to connect to it from other clients with the following details.
    client.beginSSL("dev.trackbox.com.mx", 8443,  "/", "mqtt");
   client.setReconnectInterval(2000);
   // initialize mqtt client
   mqtt.begin(client);
   // connect to mqtt broker
   mqtt.connect("arduino", "saniot", "Test123");
Result:
[ 15491][E][WiFiClientSecure.cpp:144] connect(): start_ssl_client: -1
I do not want the client to validate the server certs.
And Im not sure how to enable verbose logs.
Appreciate any help 🙏
The server is just for development purpose. I will bring it down after the issue is resolved.
Test Connection from other client:

Something in your code is wrong. Does this example work as is to your host?
https://github.com/hideakitai/MQTTPubSubClient/blob/main/examples/WiFiMQTToverWebSocketSecure/WiFiMQTToverWebSocketSecure.ino

Thank you so much for the quick response.
No. The example doesnt work as well. I get a timeout error.
[image: image.png]
[image: image.png]
Although the MQTT clients on PC and online are able to connect to the same
server.
https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.www.avast.com
https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Mon, Feb 19, 2024 at 4:51 PM Hideaki Tai @.***>
wrote:

Something in your code is wrong. Does this example work as is to your host?
https://github.com/hideakitai/MQTTPubSubClient/blob/main/examples/WiFiMQTToverWebSocketSecure/WiFiMQTToverWebSocketSecure.ino
—
Reply to this email directly, view it on GitHub
https://github.com/hideakitai/MQTTPubSubClient/issues/34#issuecomment-1953246730,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIGQ4FPSDMHGHE3T7QH4IE3YUPJN5AVCNFSM6AAAAABDP6KEOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJTGI2DMNZTGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Regards
SANJAY

I can't see images. Maybe it's not a problem of this library. Also refer https://community.hivemq.com/t/how-to-connect-to-hivemq-cloud-from-arduino/762

I am not using HIVE MQ. I just used their MQTT client to show that the connection is working.
My server details are :
host: dev.trackbox.com.mx
port: 8443
path: /mqtt
username: saniot
password: Test123
protocol: wss

are you able to connect to my server with these details?

Sorry, I don't have the time or device to try it now. Because your error is [ 15491][E][WiFiClientSecure.cpp:144] connect(): start_ssl_client: -1, somewhere in this function fails.
https://github.com/espressif/arduino-esp32/blob/bc769fd35a1d4ee26f453e9965412b7e3a8d2dc8/libraries/WiFiClientSecure/src/ssl_client.cpp#L56
Please try to ask the arduino-esp32 repo.
Also, you can select the debug log level from Tool > Core Debug Level in Arduino IDE.

Sure.
Just a questions, using your library is it possible to skip certificate validation?

It's not related to this library. Please refer https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFiClientSecure


Avoid highlighting props in TSX and JSX tags

Hey! Thanks for this awesome plugin!
After being annoyed with https://github.com/p00f/nvim-ts-rainbow/issues/118 for quite some time, I decided to take a stab at fixing it. I believe I arrived at an implementation that fixes the problem and avoids highlighting props in TSX and JSX tags. Only the tag names and the tag delimiters (<, >, </, and />) are highlighted.
As a bonus, I added support for highlighting self-closing elements. They are a separate treesitter node type that should be taken into account when computing the levels as well.
Verification
I've used the following TSX file:
import type { Component } from "solid-js";

import logo from "./logo.svg";
import styles from "./App.module.css";

const App: Component = () => {
  return (
    <div class={styles.App} data-comparison={1 < 2 && 1 > 2}>

          Another Level

          Edit src/App.tsx and save to reload.

          Another{" "}

            level{" "}

              With some em{" "}
              <span data-comparison={1 < 2 && 1 > 2}>
                And another one {">"} aabc / abc

              <span children={Nested} />

          {" "}
          of components

          Learn Solid

  );
};

export default App;

I didn't find any problems there at first glance.

no false-positive highlights for > and < that are not part of JSX elements on lines 7, 22, and 23
self-closing tags are highlighted (lines 9, 25, 26)
props are not highlighted by nvim-ts-rainbow
JSX delimiters are highlighted the same way the element name is

Highlighting jsx files (javascriptreact)
During testing I noticed that JSX in jsx files (the ones with the jsx extension) is not highlighted the same way it is in tsx files. I reported https://github.com/p00f/nvim-ts-rainbow/issues/126 as it seems separate from the problem this PR solves

Thanks for the contribution!


9999407-java-duplicate-code-exact-fixer

62420488-77Java fixer to fix duplicate code exactCAP issue id: 62420488-77

https://devgraph-alp.atlassian.net/browse/CC-139466
Automated QE Check Result: FAILED
ValidateAllDuplicateLinesAreExactlyTheSame: FAILED
Expression did not match in other instance assertFalse(view.contains(project));
ValidateDuplicateCodeIsEqualOrMoreThanMinimumDuplicateLines: SUCCESS
ValidateDuplicateCodeStartLineIsCorrect: SUCCESS
ValidateDuplicateCodeEndLineIsCorrect: SUCCESS
ValidateThatDuplicateCodeShouldBeExtracted: SUCCESS
ValidateOnlyRemovedLinesAreAddedIntoExtractedCodeWithSomeExceptions: FAILED
Original code assertFalse(view.contains(projectA)); does not match the extracted code assertFalse(view.contains(project));
ValidateAddedCodeHasCorrectAccessModifier: SUCCESS
ValidateThatCallToExtractedMethodIsSameAtAllPlaces: FAILED
Call to extracted method are not the same at all places:
ListView view = getView33961(projectA); // CAP AL
ListView view = getView33961(project); // CAP AL
ValidateImportsAreCorrect: SUCCESS
ValidateExtractedMethodIsInCorrectLocation: SUCCESS
ValidateFilesModifiedInPrMatchesTheFileInJira: SUCCESS
ValidateMethodParameterOnExtractedCodeIsProperlyUsed - : SUCCESS
Parameters: project
ValidateMethodParameterAndArgumentsAreSame: FAILED
The argument does not match the parameter
Argument name is "projectA" while parameter name is "project"
ValidateThatDeletedLinesMatchesTheDuplicateCodesInJira: FAILED
Lines are not expected to be deleted:
[assertFalse(view.contains(projectA));]
validateHandlingOfVariableAssignmentIsCorrect: SUCCESS
List of variables assigned with new values:
Local Variables: [view]
ValidateThatAllDeletedLinesAreTheSameAtAllPlaces: FAILED
Number of deleted lines are not the same on all instances
ValidateAddedCodeAreRelatedToDuplicateCodeFixing: SUCCESS
ValidateVariablesUsedInsideExtractedCodeAreAccessible: SUCCESS
ValidateMethodCanBeStatic: SUCCESS

Valid fix


Issue with openzeppelin contract when generating a function with return type as int and no modfier

GIVEN
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.6.0 <0.9.0;

import<EMAIL_ADDRESS>
contract TstNonFungibleToken is ERC20 {
    constructor() public ERC20("Bla", "BLA") {}

    function getWithView() public view returns (int)
    {
        return 1;
    }

    function getWithoutView() public returns (int)
    {
        return 1;
    }
}

THEN "Compile and code generate CSharp contract definition"
WILL generate the definitions with a string as return type for the get function without the view modifier:

Probably the function without view is seen as a transaction.

Probably the function without view is seen as a transaction.

Yes, the service categorizes it as such, views are queries otherwise transactions (this avoids lots of noise) But you can use the Function Messages directly to do either.

Yes, the service categorizes it as such, views are queries otherwise transactions (this avoids lots of noise) But you can use the Function Messages directly to do either.


Version 4.5 release notes are missing

Latest installer available is for 4.5

Hi @SeanFeldman, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, AZPRBOT;

@SeanFeldman : Thanks for your contribution to the Azure documentation! The author, @tamram, has been notified to review your proposed change.

Looks good.
#sign-off

@tamram - Hi Tamra, are you able to add any text under this added release notes heading for 4.5? Thanks, Katie
#hold-off

@tysonn please merge this PR.

@tysonn, can we please merge this? I will update afterwards to add the new text, which I have ready. I don't seem to be able to edit off of this patch.

@tysonn, Please see PR #30240 (now merged). I have duplicated the change made here (which was to add the header with no content), and also added the necessary text under the header.
@SeanFeldman, thanks for your contribution. You caught our inadvertent omission.

@tamram all good :)

@tamram - closing as discussed as a duplicate.
@SeanFeldman - the change is live at https://azure.microsoft.com/en-us/documentation/articles/storage-use-emulator/.

Great! Thanks @KatieCumming


⚠ GitLab Server has degraded performance

In a7afa02, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11796 ms

Resolved: GitLab Server performance has improved in e5908f1.


[zaffre.glterminal] - Error executing terminal fn

Hello,
I am trying to use zaffre as a dependency in a new project that I created with lein.  I tried to run the example code that is in the Quickstart, but I am met with an error.
project.clj
core.clj
error printed to console after starting with lein run
Do you know what I am doing wrong?  I was able to run the examples in this repository without problem.
Owen

Hi Owen,
Good catch! I forgot to update readme after a change to the do-frame macro. Try changing
(zat/do-frame 33 (zat/clear! terminal) ))))

to
(zat/do-frame terminal 33 (zat/clear! terminal) ))))

I'll also point out that the do-frame macro calls clear and refresh so you can omit those calls if you like. :)

That fixes it, thank you.


Clarify Presentation Request Interior  Requested_Attributes syntax and semantics

This is is related to https://github.com/hyperledger/aries-cloudagent-python/issues/155
In that it is the result of trying to create a proof of equality to a string using the "requested_attributes" field in the presentation request. Apparently the "requested_predicates" field in the presentation request only applies to integer valued fields in the credential and does not have an equality predicate, only <,>,<=,>= or range using two predicates?.
The documentation on how to use the requested_attributes and requested_predicates fields his sparse.
The best I could find is here but is frustratingly incomplete.
https://github.com/hyperledger/aries-rfcs/tree/master/features/0037-present-proof
Through trial and error I was able to get several variants of a proof of name to work.  It would be extremely helpful to get confirmation of what actually is being proven.
In general explicit documentation of the syntax and semantics with seminal examples of proof requests would be most helpful.
The example is simple. Request proof that the name field in credential has a specific value.
In this case "Alice Jones".
The two most relevant examples follow.
In this first example in the requested_attributes block a list of restrictions is provided. The document  https://github.com/hyperledger/aries-rfcs/tree/master/features/0037-present-proof  does not show restrictions as a field in the requested_attributes block but I found it in an example somewhere and it worked when the only restriction was the credentials_def_id. So I tried adding a value restriction.  This worked and is explicit enough that I believe it is proving the the name is a string with the value "Alice Jones"
A)
{
  "connection_id": "d965bd54-affb-4e11-ba8e-ea54a3214123",
  "version": "1.0.0",
  "name": "Proof of Name",
  "requested_attributes":
  [
    {
      "name": "name",
      "restrictions":
      [
        {
          "cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default"
        },
        {
          "value": "Alice Jones"
        }
      ]
    }
  ],
  "requested_predicates":
  [

  ]
}

The document  https://github.com/hyperledger/aries-rfcs/tree/master/features/0037-present-proof  gives an example where is just includes  multiple fields in the requested_attributes block including name, value, and credentials_def_id so I tried that. It worked but I am not sure what was proven.  Is this equivalent to the example above. It is not clear.
B)
{
  "connection_id": "d965bd54-affb-4e11-ba8e-ea54a3214123",
  "version": "1.0.0",
  "name": "Proof of Name",
  "requested_attributes":
  [
    {
      "name": "name",
      "value": "Alice Jones",
      "cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default"
    }
  ],
  "requested_predicates":
  [

  ]
}

I also tried a mixture that also worked but not sure what was proven.
C)
{
  "connection_id": "d965bd54-affb-4e11-ba8e-ea54a3214123",
  "version": "1.0.0",
  "name": "Proof of Name",
  "requested_attributes":
  [
    {
      "name": "name",
      "value": "Alice Jones",
      "restrictions":
      [
        {
          "cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default"
        }
      ]
    }
  ],
  "requested_predicates":
  [

  ]
}

This fourth one does not restrict the value so I don't think it is proving that name equals "Alice Jones" but merely that the name field exists but maybe not.
D)
{
  "connection_id": "d965bd54-affb-4e11-ba8e-ea54a3214123",
  "version": "1.0.0",
  "name": "Proof of Name",
  "requested_attributes":
  [
    {
      "name": "name",
      "restrictions":
      [
        {
          "cred_def_id" : "3avoBCqDMFHFaKUHug9s8W:3:CL:13:default"
        }
      ]
    }
  ],
  "requested_predicates":
  [

  ]
}

I looked at the presentation exchange records and found some fields that might explain what was proven but they are not documented so its merely a guess.
I think the revealed attributes shows what is proven but not sure
A)
"requested_proof": {
      "revealed_attrs": {
        "a88aff02-454b-4256-b3de-09edde2620fb": {
          "sub_proof_index": 0,
          "raw": "Alice Jones",
          "encoded": "72896232743708443677449555551687504476536417389324439453514323796296385992918"
        }
      },
      "self_attested_attrs": {},
      "unrevealed_attrs": {},
      "predicates": {}
    },

B)
"requested_proof": {
      "revealed_attrs": {
        "55cce48e-c037-4e11-8f97-8988056d57c1": {
          "sub_proof_index": 0,
          "raw": "Alice Jones",
          "encoded": "72896232743708443677449555551687504476536417389324439453514323796296385992918"
        }
      },
      "self_attested_attrs": {},
      "unrevealed_attrs": {},
      "predicates": {}
    },

C)

 "requested_proof": {
      "revealed_attrs": {
        "c4e9d3e5-0143-4e1d-b7d6-ba49fb4b29a4": {
          "sub_proof_index": 0,
          "raw": "Alice Jones",
          "encoded": "72896232743708443677449555551687504476536417389324439453514323796296385992918"
        }
      },
      "self_attested_attrs": {},
      "unrevealed_attrs": {},
      "predicates": {}
    },

D)
"requested_proof": {
          "revealed_attrs": {
            "f5d03520-f97b-4a95-9dca-562b76023877": {
              "sub_proof_index": 0,
              "raw": "Alice Jones",
              "encoded": "72896232743708443677449555551687504476536417389324439453514323796296385992918"
            }
          },
          "self_attested_attrs": {},
          "unrevealed_attrs": {},
          "predicates": {}
        },

Because all four are the same it makes me wary that I am not interpreting it correctly.  I do not trust that I understand what is being proven.  As it seems that if they are proving the same thing then there are 4 different ways to request the proof.

The full presentation exchange records for each of the four proof requests are given here
https://github.com/SmithSamuelM/leopy/blob/master/src/demo/FaberAliceCredential.md

Awesome stuff @SmithSamuelM.  Especially the full sequence of data.
The immediate answer I have for you is not helpful: Questions and requests for changes about the behaviour of proof requests and proofs belong in the indy-sdk repo, not in aries. The reference material in aries-rfc 0037 is likewise intentionally vague and points to indy-sdk as a reference because in theory an Aries agent should/will be able to use the same proof request/proof messages for a different verifiable credentials model.  That does not help the person trying to learn Aries and ACA-Py, and so I'll try to see what we can do to address that, without too much duplication of indy-sdk documentation/details.
The "restrictions" in indy-sdk proof requests are query parameters for finding credentials in the wallet that can be used for proofing the specific attribute (claim).  Thus, since all of your proofs are based on restrictions that successfully return the single credential in your wallet all of them work.  The restrictions are passed to a "WQL" (Wallet Query Language) routine in the indy-sdk that returns a set of references to credentials in the wallet that is then used in the indy-sdk code that generates the proof.  Ideally, the controller ensures that if multiple credentials are returned, one is selected to be used for each attribute. For example a controller might show a user the list of credentials that could be used to satisfy the claim from the proof and allow the user to select one. Or, the controller might randomly select one from the set. Depends on the business requirements.
A predicate is processed after the a credential has been selected to satisfy the requested attribute (claim). The predicate is an expression that is evaluated to true or false using the encoded value.
As discussed last week, the "equal" predicate is (claimed to be) of marginal value in a ZKP since if you know the value already, proving it as an expression is not useful. The indy team did add "equals" as a "restriction", hence why it is now working when used there.
The encoding scheme is "controversial" (shall we say) in the current Indy. For predicates to work the issuer and the verifier must agree on the encoding, there is nothing in indy schema or in the indy-sdk on what that encoding should be.  Some work has been done on trying to codify that, but it's not been fully fleshed out, last I checked.  The Rich Schema (aka AnonCreds 2.0) work includes support for defining the encoding as part of what goes on the ledger, and that should address that issue.
Raw values accompany the encoded values, but are not used in the proof generation process. Done properly, the encoded value should derive from the raw value (so the verifier can check), and be able to be used as a predicate.  At times achieving both of those requirements might be challenging. It is optional to include or not (aka reveal) the raw values.  I think that is also a problem - the verifier should be be able to say what values must be revealed.
Self-attested attributes are not signed in the current implementation, which is not ideal. Evidently that is to be addressed in the AnonCreds 2.0 release.
Hope this helps.

@swcurran   Much appreciate the thoughtful response. Your answer on the details was very informative but doesn't really answer my question =(  trying to understand more.  I will dig deeper into the Indy SDK documentation.  Based on the recent Hyperledger Indy Contributor and Aries working group calls it seems that going forward presentation proofs of Indy AnonCredsZKPs will be an Aires plugin not merely an Indy SDK library element. Intuitively, from a documentation perspective, an Aries cloud agent that exposes an API for presenting proofs should be discoverable and understandable from the ACA side. This means some significant distillation of the use of the proofs via the ACA-py interface. Especially because there is some modulation of the underlying libraries by the API. (ie some of the fields names and other things are slightly changed. Otherwise it becomes really difficult for new adopters of the Aries platform to get up to speed. I am working with a bunch of new devs to get up to speed on ACA but have frustration that the only way to actually understand how to use the meat of ACA (VC and presentation proofs for Indy AnonCreds) is to acquire what constitutes extensive background knowledge on the now deprecated Indy SDK. I get that asking for the ACA devs to provide a distillation of this information  this is a heavy lift (especially for BC Gov) who are carrying most of the water. So help is always greatly appreciated But it appears that the the VC anoncreds from Indy SDK stuff at least from an Agent perspective will now be part of Aires.      If Aries-rfc 0037 (and 0036) are intentionally vague then new RFCs that are not intentionally vague are needed to document in detail how to use indy anoncredes presentation proofs in ACA.

Given that restrictions handle the equality contraints (was not obvious) then the predicates which are really limited to integer threshold predicates (in this sense the naming is confusing as restrictions are predicates) is understandable. One could create the equivalent of an equality integer predicate by creating a range predicate with only one integer in the range.   So understanding restrictions given the multiple ways to express them is the goal. Integer threshold predicates are inherently more understandable (at least on the surface).

I definitely agree on the need for documentation that gets the developer up to speed quickly is crucial, and you are right, it should be driven from Aries.  We don't have the capacity to do that on our own - the team or absolute knowledge of the workings of indy.  That has been an ongoing challenge in the community.  We're getting a lot better.
It appears that the restrictions "value equals" implementation that was done recently in Indy has a bug in it - at least that's the current theory, as we are also struggling with what you are seeing.  Nick was investigating that last night.  We should know more today and will get the information to the Indy team if that's the case.


🧽  Reorganize folder structure

We have a lot of top-level folders, requiring to scroll a bit before the README.md is visible. We could reorganize that so that all the apollo- folders are under a common top-level folder.
It would also be an opportunity to make the top-level build the composite build by default so that someone opening it in IntelliJ has all integration-tests in the IDE

This is now done. The top-level build is still the libraries cause it's easier/faster to open


Autofix on save leaves empty import

VS Code version
1.88.1
Extension version
2.2.2
Biome version
1.7.2
Operating system

[ ] Windows
[X] macOS
[ ] Linux

Description
When noUnusedImports is enabled, autofix on save leaves an empty import.
Steps to reproduce
Given:
biome.json:
{
    "$schema"<EMAIL_ADDRESS>    "linter": {
      "enabled": true,
      "rules": {
        "correctness": {
          "noUnusedImports": "warn"
        }
      }
    }
  }

.vscode/settings.json:
{
    "editor.codeActionsOnSave": {
      "quickfix.biome": "explicit"
    }
  }

index.ts:
import { A, B } from 'foo';

// edit this comment and save the file

When I save index.ts and the autofix runs, I end up with an empty import:
import {} from 'foo';

Expected behavior
Import is removed.
Does this issue occur when using the CLI directly?
Not sure / Not applicable
Logs
No response

If it helps narrow the issue down, I can't repro this with biome lint --apply. The import statement is fully removed. I also can't repro with code actions in my editor (not VS Code), however I'm applying them manually.

I have the same issue and the empty import is not removed on save, with biome lint --apply or with biome check --fix. VS Code 1.92.2, Biome extension 2.3.0, Biome 1.8.3, macOS

Same issue for me using VS Code extension v2.3.0

This doesn't seem to be an issue when using source.fixAll.biome instead of quickfix.biome.

@OliverJAsh can you close the issue?

Sure, but I think the documentation still needs to be updated to mention the new command.


S3ResponseError

hello，I use s3-parallel-put and getting a trouble
python s3-parallel-put  --bucket=reocar-test --host=<IP_ADDRESS>:7480 --log-filename=/tmp/s3pp.log --dry-run --limit=1 .
Traceback (most recent call last):
File "s3-parallel-put", line 459, in
sys.exit(main(sys.argv))
File "s3-parallel-put", line 430, in main
bucket = connection.get_bucket(options.bucket)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 509, in get_bucket
return self.head_bucket(bucket_name, headers=headers)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 542, in head_bucket
raise err
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
but i have  this bucket and my bucket can upload file or down
I have been set access-key and secret-key in environment .
root@ceph1:~/s3-parallel-put-master# s3cmd ls
2018-08-02 05:46  s3://reocar-test
when i used
python s3-parallel-put  --bucket=s3://reocar-test --host=<IP_ADDRESS>:7480 --log-filename=/tmp/s3pp.log --dry-run --limit=1 .
Traceback (most recent call last):
File "s3-parallel-put", line 459, in
sys.exit(main(sys.argv))
File "s3-parallel-put", line 430, in main
bucket = connection.get_bucket(options.bucket)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 509, in get_bucket
return self.head_bucket(bucket_name, headers=headers)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 556, in head_bucket
response.status, response.reason, body)
boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request
my host is ceph rgw s3  not   Amazon AWS S3
Did i miss some thing ? Thankyou !

HI,
Try using the following -
python s3-parallel-put --bucket="reocar-test" --host=<IP_ADDRESS>:7480 --log-filename="/tmp/s3pp.log" --dry-run --limit=1 .

Note the double quotes for the bucket and the log-filename switches.

@iCHAIT
Thank you! I sloved it.


Changing default version of the api - JS alert

As we noticed with @weierophinney after changing default version of the api, when we try to go somewhere else JS alert: "You will lose unsaved changes if you leave this page" is shown.
Default version of api is changed (saved).
Expected behavior: Alert shouldn't be shown in that case.

I've also noted this with other actions: saving changes to a service, saving filters or validators, etc.

This repository has been closed and moved to laminas-api-tools/api-tools-admin-ui; a new issue has been opened at https://github.com/laminas-api-tools/api-tools-admin-ui/issues/8.


The Future of the /var/jb Root Path

The Future of the /var/jb Root Path
Since the SSV security mechanism of ios15, jailbreak has encountered great challenges and difficulties, but with the efforts of big names such as xina and opa334, we have seen a new dawn. They use the rootless mechanism to successfully avoid the restrictions of SSV, Let the jailbreak enter a new era.
But for the /var/jb root path, I have been very worried. Rootless jailbreak stores all data and files in it, it is a completely fixed path. All jailbreak apps, deamon, tweaks will refer to this path, and hard Encoded into the final released binary.
So what is /var/jb, it is the interface of rootless jailbreak, once the jailbreak community in the rootless era forms this specification, it is very difficult for anyone to change and adjust it.
But the fixed path is very easy to be detected, only one line of code is needed to call the acess/stat function, and any ios development rookie can detect it.
Although we can temporarily remove the /var/jb symlink (like xina15 did), but I think this is a lazy way, and this way will cause two things that will cause major trouble in the future:
1: It's really annoying that people have to repeatedly remove and restore it when opening different apps, and people get tired of it very quickly.
2: Almost all jailbreak apps, deamon, tweaks will use this path, when you temporarily remove it, maybe a jailbreak app, deamon, tweak is accessing this path, or is about to access this path, and then they will not be able to find it Well, this would create a confusing situation.
I think we have a better way to deal with this problem, first we add a random suffix to the /var/jb path, like /var/jb-xxxxx, and then use environment variables as the rootless jailbreak interface, for example, we Create an environment variable named "JBRoot" and set it to /var/jb-xxxx, we can also easily access this environment variable:
in shell code:
cd $JBRoot
in Objective-C code:
NSString* my_file_path = [NSString stringWithFormat:@"%s/my_file_path", getenv("JBRoot")];
in C/C++ code:
char my_file_path[PATH_MAX]={0};
snprintf(my_file_path, sizeof(my_file_path), "%s/my_file_path", getenv("JBRoot"));
So what is the difference between this method and the fixed path of directly using /var/jb?
The difference is that the fixed path of /var/jb is visible to all processes, but environment variables can be set individually for each process. In the future, we can create a blacklist, and we can choose to hide the "JBRoot" environment variable for Some APPs. In this way, they will not be able to detect the existence of /var/jb-xxxx, and will not interfere with other rootless jailbreak apps/deamon/tweak's access to /var/jb-xxxx.
Why is hiding /var/jb so important and urgent?
Some people may ask, even if we hide /var/jb, there are still many other ways to detect jailbreak, why do we have to deal with /var/jb first.
First of all, the data in the file system is the easiest to detect. As I said before, any rookie in ios development can detect the existence of /var/jb with a single line of code. This will make the detection of /var/jb very difficult Widespread and ubiquitous, eventually a large number of apps will detect this path, making jailbreaking difficult to use if you don't handle /var/jb.
Secondly, the /var/jb path is used as the interface standard for rootless jailbreaks, and every jailbreak app/deamon/tweak will use it, and it is hard-coded into the released binary, which means that if we do not deal with it now, we will not be able to deal with this problem in the future up.
As a loyal jailbreak fan, I have witnessed the brilliance of jailbreak from ios5 to ios9, and also witnessed the wisdom of the jailbreak community starting from ios10, and starting from ios15, jailbreak has entered a new era, I sincerely hope that the masters of the jailbreak community can consider this issue.

this is not possible, /var/jb needs to exist and there is nothing I can do about it. also there is no point in trying to hide it as on Fugu15 Max there are other paths that can be checked (e.g. /usr/lib/systemhook.dylib).
In terms of "dealing with it", you're already months (or even years?) late for that, /var/jb is set in stone and this cannot be changed. But again even if you did, there is no possible way to stuff things in a folder that apps cannot find.

besides the issue doesn't belong here, I have enabled issues on my fork now


Setup tools: php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory

While using laravel-mysql.yml with act throws error
[Testing Laravel with MySQL/Laravel (PHP 7.2)-1]   ❗  ::error::The process '/usr/bin/bash' failed with exit code 1
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
[Testing Laravel with MySQL/Laravel (PHP 7.2)-1]   ❌  Failure - Setup PHP, with composer and extensions
[PHP Lint/PHP Lint                             ]   ⚙  ::set-output:: php-version=
| ✓ PHP Installed PHP
|
| ==> Setup Tools
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
[Testing Laravel with MySQL/Laravel (PHP 7.4)-3]   ⚙  ::set-output:: php-version=
| ✓ PHP Installed PHP
|
| ==> Setup Tools
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| ✓ composer Added composer 2.1.8
|
| ==> Setup Extensions
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
| php: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory
|<EMAIL_ADDRESS>line 107: ext_dir: parameter null or not set
Version

[x] v2
[ ] v1

Runners

[ ] GitHub Hosted
[x] Self Hosted using act

Operating systems

Ubuntu 20.4
PHP versions

php-7.2, php7.3, php-7.4
To Reproduce
Use the yml file laravel-mysql.yml

@chintandave-simformsolutions
Duplicate #494
It is recommended to use shivammathur/node images for running setup-php on act.
https://hub.docker.com/r/shivammathur/node
act -P ubuntu-latest=shivammathur/node:latest

Refer to: https://github.com/shivammathur/setup-php#local-testing-setup
for other images, you will have to specify the runner as self-hosted.
- name: Setup PHP
  uses: shivammathur/setup-php@v2
  env:
    runner: self-hosted
  with:
    php-version: '8.0'