[bug] an unexpected keyword argument 'favicon_path'

After setting up the docker container using docker-compose.yml file, I continued to download books. The first two books failed to download. I looked at the docker logs, the related information is as follows:
2024-12-18 13:04:04,047 - backend - INFO - Starting download loop
2024-12-18 13:04:04,079 - __main__ - INFO - Starting Flask application on <IP_ADDRESS>:8084
 * Serving Flask app 'app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (<IP_ADDRESS>)
 * Running on http://<IP_ADDRESS>:8084
 * Running on http://<IP_ADDRESS>:8084
Press CTRL+C to quit
<IP_ADDRESS> - - [18/Dec/2024 13:04:06] "GET /request/api/status HTTP/1.1" 200 -
➜  calibre_web_downloader docker logs calibre-web-automated-book-downloader
2024-12-18 13:04:04,047 - backend - INFO - Starting download loop
2024-12-18 13:04:04,079 - __main__ - INFO - Starting Flask application on <IP_ADDRESS>:8084
 * Serving Flask app 'app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (<IP_ADDRESS>)
 * Running on http://<IP_ADDRESS>:8084
 * Running on http://<IP_ADDRESS>:8084
Press CTRL+C to quit
<IP_ADDRESS> - - [18/Dec/2024 13:04:06] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:36] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/static/js/main.js HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/static/css/styles.css HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:04:52,707] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:04:52,710 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/static/favicon.ico HTTP/1.1" 500 -
2024-12-18 13:05:00,363 - network - INFO - GET: https://annas-archive.org/search?index=&page=1&display=table&acc=aa_download&acc=external_download&lang=en&sort=&ext=epub&ext=mobi&ext=azw3&ext=fb2&ext=djvu&ext=cbz&ext=cbr&lang=en&q=Heidi
<IP_ADDRESS> - - [18/Dec/2024 13:05:03] "GET /request/api/search?query=Heidi HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:05:07] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:05:37] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:05:52] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:07] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:06:14,285 - network - INFO - GET: https://annas-archive.org/md5/14b2e97fd747d2cf40cb36819c8b106f
<IP_ADDRESS> - - [18/Dec/2024 13:06:18] "GET /request/api/info?id=14b2e97fd747d2cf40cb36819c8b106f HTTP/1.1" 200 -
2024-12-18 13:06:26,536 - network - INFO - GET: https://annas-archive.org/md5/14b2e97fd747d2cf40cb36819c8b106f
2024-12-18 13:06:27,840 - backend - INFO - Book queued: Miss Delacourt Has Her Day
<IP_ADDRESS> - - [18/Dec/2024 13:06:27] "GET /request/api/download?id=14b2e97fd747d2cf40cb36819c8b106f HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:27] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:06:29,054 - network - INFO - GET_CF: https://annas-archive.org/slow_download/14b2e97fd747d2cf40cb36819c8b106f/0/2
<IP_ADDRESS> - - [18/Dec/2024 13:06:37] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:06:43,175 - book_manager - INFO - Downloading Miss Delacourt Has Her Day from https://nrzr.li/d3/y/1734534398/10000/g5/zlib1/pilimi-zlib-5550000-5579999/5579454~/ZuQ7doNirq4ixQawcNqOwQ/Miss%20Delacourt%20Has%20Her%20Day%20--%20Heidi%20Ashworth%20--%202014%20--%2014b2e97fd747d2cf40cb36819c8b106f%20--%20Anna%E2%80%99s%20Archive.mobi
2024-12-18 13:06:43,175 - network - INFO - Downloading from: https://nrzr.li/d3/y/1734534398/10000/g5/zlib1/pilimi-zlib-5550000-5579999/5579454~/ZuQ7doNirq4ixQawcNqOwQ/Miss%20Delacourt%20Has%20Her%20Day%20--%20Heidi%20Ashworth%20--%202014%20--%2014b2e97fd747d2cf40cb36819c8b106f%20--%20Anna%E2%80%99s%20Archive.mobi
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/static/css/styles.css HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/static/js/main.js HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:06:46,699] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:06:46,700 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/static/favicon.ico HTTP/1.1" 500 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:07] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:37] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/static/css/styles.css HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/static/js/main.js HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:07:43,410] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:07:43,412 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/static/favicon.ico HTTP/1.1" 500 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/static/css/styles.css HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/static/js/main.js HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:07:45,897] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:07:45,898 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/static/favicon.ico HTTP/1.1" 500 -
2024-12-18 13:08:04,923 - backend - INFO - Book 14b2e97fd747d2cf40cb36819c8b106f download failed
<IP_ADDRESS> - - [18/Dec/2024 13:08:07] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:08:27,722 - network - INFO - GET: https://annas-archive.org/search?index=&page=1&display=table&acc=aa_download&acc=external_download&lang=en&sort=&ext=epub&ext=mobi&ext=azw3&ext=fb2&ext=djvu&ext=cbz&ext=cbr&lang=en&q=WIND%20AND%20TRUTH
<IP_ADDRESS> - - [18/Dec/2024 13:08:31] "GET /request/api/search?query=WIND%20AND%20TRUTH HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:08:37] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:08:45] "GET /request/api/status HTTP/1.1" 200 -
➜  calibre_web_downloader docker logs calibre-web-automated-book-downloader
2024-12-18 13:04:04,047 - backend - INFO - Starting download loop
2024-12-18 13:04:04,079 - __main__ - INFO - Starting Flask application on <IP_ADDRESS>:8084
 * Serving Flask app 'app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (<IP_ADDRESS>)
 * Running on http://<IP_ADDRESS>:8084
 * Running on http://<IP_ADDRESS>:8084
Press CTRL+C to quit
<IP_ADDRESS> - - [18/Dec/2024 13:04:06] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:36] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/static/js/main.js HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/static/css/styles.css HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:04:52,707] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:04:52,710 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:04:52] "GET /request/static/favicon.ico HTTP/1.1" 500 -
2024-12-18 13:05:00,363 - network - INFO - GET: https://annas-archive.org/search?index=&page=1&display=table&acc=aa_download&acc=external_download&lang=en&sort=&ext=epub&ext=mobi&ext=azw3&ext=fb2&ext=djvu&ext=cbz&ext=cbr&lang=en&q=Heidi
<IP_ADDRESS> - - [18/Dec/2024 13:05:03] "GET /request/api/search?query=Heidi HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:05:07] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:05:37] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:05:52] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:07] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:06:14,285 - network - INFO - GET: https://annas-archive.org/md5/14b2e97fd747d2cf40cb36819c8b106f
<IP_ADDRESS> - - [18/Dec/2024 13:06:18] "GET /request/api/info?id=14b2e97fd747d2cf40cb36819c8b106f HTTP/1.1" 200 -
2024-12-18 13:06:26,536 - network - INFO - GET: https://annas-archive.org/md5/14b2e97fd747d2cf40cb36819c8b106f
2024-12-18 13:06:27,840 - backend - INFO - Book queued: Miss Delacourt Has Her Day
<IP_ADDRESS> - - [18/Dec/2024 13:06:27] "GET /request/api/download?id=14b2e97fd747d2cf40cb36819c8b106f HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:27] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:06:29,054 - network - INFO - GET_CF: https://annas-archive.org/slow_download/14b2e97fd747d2cf40cb36819c8b106f/0/2
<IP_ADDRESS> - - [18/Dec/2024 13:06:37] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:06:43,175 - book_manager - INFO - Downloading Miss Delacourt Has Her Day from https://nrzr.li/d3/y/1734534398/10000/g5/zlib1/pilimi-zlib-5550000-5579999/5579454~/ZuQ7doNirq4ixQawcNqOwQ/Miss%20Delacourt%20Has%20Her%20Day%20--%20Heidi%20Ashworth%20--%202014%20--%2014b2e97fd747d2cf40cb36819c8b106f%20--%20Anna%E2%80%99s%20Archive.mobi
2024-12-18 13:06:43,175 - network - INFO - Downloading from: https://nrzr.li/d3/y/1734534398/10000/g5/zlib1/pilimi-zlib-5550000-5579999/5579454~/ZuQ7doNirq4ixQawcNqOwQ/Miss%20Delacourt%20Has%20Her%20Day%20--%20Heidi%20Ashworth%20--%202014%20--%2014b2e97fd747d2cf40cb36819c8b106f%20--%20Anna%E2%80%99s%20Archive.mobi
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/static/css/styles.css HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/static/js/main.js HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:06:46,699] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:06:46,700 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:06:46] "GET /request/static/favicon.ico HTTP/1.1" 500 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:07] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:37] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/static/css/styles.css HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/static/js/main.js HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:07:43,410] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:07:43,412 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:07:43] "GET /request/static/favicon.ico HTTP/1.1" 500 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/static/css/styles.css HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/static/js/main.js HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:07:45,897] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:07:45,898 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:07:45] "GET /request/static/favicon.ico HTTP/1.1" 500 -
2024-12-18 13:08:04,923 - backend - INFO - Book 14b2e97fd747d2cf40cb36819c8b106f download failed
<IP_ADDRESS> - - [18/Dec/2024 13:08:07] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:08:27,722 - network - INFO - GET: https://annas-archive.org/search?index=&page=1&display=table&acc=aa_download&acc=external_download&lang=en&sort=&ext=epub&ext=mobi&ext=azw3&ext=fb2&ext=djvu&ext=cbz&ext=cbr&lang=en&q=WIND%20AND%20TRUTH
<IP_ADDRESS> - - [18/Dec/2024 13:08:31] "GET /request/api/search?query=WIND%20AND%20TRUTH HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:08:37] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:08:45] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:09:07] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:09:38] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:09:46] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:09:51,330 - network - INFO - GET: https://annas-archive.org/md5/52a9200d486b0857b006bf39206e22d2
2024-12-18 13:09:53,630 - backend - INFO - Book queued: An Ugly Truth: Inside Facebook's Battle for Domination
<IP_ADDRESS> - - [18/Dec/2024 13:09:53] "GET /request/api/download?id=52a9200d486b0857b006bf39206e22d2 HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:09:53] "GET /request/api/status HTTP/1.1" 200 -
2024-12-18 13:09:54,928 - network - INFO - GET_CF: https://annas-archive.org/slow_download/52a9200d486b0857b006bf39206e22d2/0/2
2024-12-18 13:10:01,299 - book_manager - INFO - Downloading An Ugly Truth: Inside Facebook's Battle for Domination from https://nrzr.li/d3/y/1734534596/10000/g4/libgenrs_nonfiction/4132000/52a9200d486b0857b006bf39206e22d2~/q5llQkLY0epomGn6K_pXIw/An%20Ugly%20Truth%3A%20Inside%20Facebook%27s%20Battle%20for%20Domination%20--%20Sheera%20Frenkel%3B%20Cecilia%20Kang%20--%202021%20--%20HARPERCOLLINS%20--%209780062960672%20--%2052a9200d486b0857b006bf39206e22d2%20--%20Anna%E2%80%99s%20Archive.epub
2024-12-18 13:10:01,299 - network - INFO - Downloading from: https://nrzr.li/d3/y/1734534596/10000/g4/libgenrs_nonfiction/4132000/52a9200d486b0857b006bf39206e22d2~/q5llQkLY0epomGn6K_pXIw/An%20Ugly%20Truth%3A%20Inside%20Facebook%27s%20Battle%20for%20Domination%20--%20Sheera%20Frenkel%3B%20Cecilia%20Kang%20--%202021%20--%20HARPERCOLLINS%20--%209780062960672%20--%2052a9200d486b0857b006bf39206e22d2%20--%20Anna%E2%80%99s%20Archive.epub
<IP_ADDRESS> - - [18/Dec/2024 13:10:08] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:10:38] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:10:46] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:11:08] "GET /request/api/status HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:11:23] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [18/Dec/2024 13:11:23] "GET /request/static/js/main.js HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:11:23] "GET /request/static/css/styles.css HTTP/1.1" 304 -
<IP_ADDRESS> - - [18/Dec/2024 13:11:23] "GET /request/api/status HTTP/1.1" 200 -
[2024-12-18 13:11:24,105] ERROR in app: Exception on /request/static/favicon.ico [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: favicon() got an unexpected keyword argument 'favicon_path'
2024-12-18 13:11:24,106 - __main__ - ERROR - 500 error: 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
<IP_ADDRESS> - - [18/Dec/2024 13:11:24] "GET /request/static/favicon.ico HTTP/1.1" 500 -

Hi, sorry this happened
The favicon issue is a red herring,  its just unable to find the favicon to display on the browser title. (but thank you for the report, I fixed it and deployed an updated version)
I just tried for the book "An Ugly Truth: Inside Facebook's Battle for Domination", and it seems to be working fine
Note that it does take some time to download books, from a few minutes up to 15 minutes (in some cases there are wait times and throttling applied)
Did the "Download Status" say "error" ?
If it says "queued" or "downloading", give it some time, it should auto refresh


BUGFIX-#165-number: Categories Sidebar UI issue

BUGFIX#165 : The UI box on the tags in dark theme is removed and the UI now aligns well with the rest and there is no alignment change while changing from light to dark.
Summary
The issue was related to the UI miss alignment of the tags under category due to the addition of an box in the dark theme. The purpose of this pr is to remove the styling css of tags section in the dark theme to make it aligned with the light themed UI.
Description
I first identified the location of the styling and then removed the dark theme clause from the inline style of tailwind css to remove the dark box in the UI
Issues Addressed

Earlier n left sidebar inside Categories Container there is a box showing, while change on Theme On Repetitive switch of Theme There can be seen under the "Categories Box", there is a box over "Tags" which was causing a UI Error.
This issue was solved by removing the box with bg-dark from the tags section to make the toggle more user friendly as seen in the before and after images below.

Images
Before

After

I meant

Anyways will do it myself, kindly follow from next time


Clean up deprecated ManagedIdentityCredential code paths

Now that we have GA'd the changes to delegate MI implementations to MSAL, we can clean up all deprecated code paths and *ManagedIdentitySource types.

Closing as duplicate of https://github.com/Azure/azure-sdk-for-js/issues/31208


Update media3 to 1.2.1

This update is required to fix a Dolby Atmos issue that was fixed in version 1.2.1.
Change log here.
A lot of APIs are now marked as @UnstableApi. Do we prefer to suppress per-case as done in this PR or globally suppress them?

For their demos and libraries, they suppress it by adding lint.xml:
<?xml version="1.0" encoding="utf-8"?>
<lint>
  <issue id="UnsafeOptInUsageError">
    <option name="opt-in" value="androidx.media3.common.util.UnstableApi" />
  </issue>
</lint>

File: https://github.com/androidx/media/blob/release/libraries/lint.xml
So alternatively we can do the same: https://github.com/tidal-music/tidal-sdk-android/pull/110
I see these @UnstableApi has always been there (prior to v1.2.1) but the way they were suppressed have changed and hence why we see this issue now.


Idea for Fuzzy Matching for Names with Initials

Names with initials are not included in the fuzzy matching process because a single letter change–usually the initial–is sometimes used to distinguish between two speakers who have the first and last name but are different people.
It would be great if we could still perform fuzzy matching with these names, but ignore the middle initial.

@stephbuon find this out and then get back to alexander


Rename input box should adjust width according to input

VSCode Version: 1.7
OS Version: OS X 10.11.6

Steps to Reproduce:

Rename something
Enter something long

It does but it has a lower limit of 20 characters to allow you to type a longer name then you currently have without the need to scroll. Also, the box has a frame, some padding etc which means perfect alignment without a tiny font inside (or h-scrolling) isn't possible.
Closing as-designed


Add visibility check to Aimbot that is enforced when 'Wallshoot' is off

The Aimbot should only acquire targets that are visible from your camera and not behind geometry. We already have a way to verify if a world position is within your viewport so now we need a way to verify the player is physically visible. The visibility check for a player object should ideally consider the best bone position but in the event that only part of the player is visible, such as a limb, then the visibility method should be capable of returning the best bone out of what is visible...

If only a right arm and right leg are visible of a given player, the visibility check will return the best bone out of those visibly available which would be in this order as a general example :  right upper arm > right thigh > right forearm.
So, in conclusion the visibility check would return the upper arm first in this visibility case.

The visibility check should do a physics raycast check from the player's camera position (in the main thread) to the provided bone position to determine if there is any blocking geometry. If the raycast fails, then there is no geometry in the way. The distance the ray cast travels should be limited by a small degree so as to not collide with the geometry of armor or items that the potential target player is wearing (such as armor, weapon, backpack, vests, etc) since understandably this geometry will always be present.
This design should suffice in 99% of cases to check for visibility, however the best 1:1 approach would be not to limit the ray cast's travel distance for checking geometry collision, and instead include player equipped items/armor as part of the potentially visible player component.
I started working on this enhancement and still need to test/debug - I will be sure to post in this thread with any updates or successes.

+1

Hi all, great news! It's done.
1.  I finished implementing and testing a fast visibility check that is very accurate - I added the following to the CameraExtensions (Note the importance of the layer mask here):

private static RaycastHit _ray;
private static readonly LayerMask _layer_mask = 1 << 12 | 1 << 16 | 1 << 18 | 1 << 31 | 1 << 22;
public static bool IsPlayerBoneVisible(this Camera camera, Player player, Vector3 target_bone)
{
	return (Physics.Linecast(camera.transform.position, target_bone, out _ray, _layer_mask) && _ray.collider && _ray.collider.gameObject.transform.root.gameObject == player.gameObject.transform.root.gameObject);
}

2.  And then I wrote a nearly perfect method for scanning and returning the best bone to target out of only the parts of the Player that is currently visible:

public static Vector3 GetBestVisibleBone(Player player, float cached_distance = 0.0f)
{
	Vector3 null_position = Vector3.zero;

	if (Aimbot._camera == null)
		return null_position;

	PlayerBones bones = player.PlayerBones;
	if (bones == null)
		return null_position;

	float null_distance = 3.0f;
	float min_distance = 7.5f;
	float distance = (cached_distance != 0.0f) ? cached_distance : Vector3.Distance(Aimbot._camera.transform.position, player.Transform.position);
	//Don't check for visibility if player is extremely close to the camera because visibility has weird behavior at this distance
	if (distance <= null_distance)
	{
		render_text_player_visible = $"TARGET TOO CLOSE";
		return player.PlayerBones.Spine1.position;
	}

	if (distance <= min_distance && Aimbot._camera.IsPlayerBoneVisible(player, player.PlayerBones.Spine1.position)) //Stick to one bone if we're very close to the player
	{
		//Visibility debug
		render_text_player_visible = $"TARGET: [{player.name}->{player.PlayerBones.Spine1.name}]";
		return player.PlayerBones.Spine1.position;
	}
	else if (distance > min_distance)
	{
		//Make a collection of target bones starting with the most important followed by the other bones in order of vitality
		IEnumerable<AimBone> target_bones = new AimBone[16] {
			new AimBone(bones.Neck),
			new AimBone(bones.Head),
			new AimBone(bones.Shoulders[0]),
			new AimBone(bones.Shoulders[1]),
			new AimBone(bones.Spine1),
			new AimBone(bones.Upperarms[0]),
			new AimBone(bones.Upperarms[1]),
			new AimBone(bones.Forearms[0]),
			new AimBone(bones.Forearms[1]),
			new AimBone(bones.Pelvis),
			new AimBone(bones.LeftPalm),
			new AimBone(bones.LeftThigh1),
			new AimBone(bones.RightThigh1),
			new AimBone(bones.LeftThigh2),
			new AimBone(bones.RightThigh2),
			new AimBone(bones.KickingFoot)
		}; //Hybrid AimBone class is necessary due to differing bone transform types that do not share interfaces/inheritance

		//Scan the desired bones for visibility
		foreach (AimBone bone_info in target_bones)
		{
			bool is_visible = Aimbot._camera.IsPlayerBoneVisible(player, bone_info.Position);
			if (is_visible)
			{
				//Visibility debug
				render_text_player_visible = $"TARGET: [{player.name}->{bone_info.Name}]";
				return bone_info.Position;
			}
		}
	}

	return null_position;
}

3.  The above method uses a translation class I wrote that can accept the different Transform types (This is necessary because Transform and BifacialTransform do not share an interface or inheritance). So, this just simplifies the work needed to use the different types which represent the bones. Please note the comment about C# dynamic type, as it was tried and found not to be supported with the current EFT/AKI binaries - even with CSharp and ReflectionType libraries provided - which is why this simple class is so convoluted.

//NOTE: This used to use dynamic type originally but that requires Microsoft.CSharp.dll v4 and related dependencies which are not currently supported in EFT/AKI
public class AimBone
{
	private readonly string _name;
	public string Name { get { return _name; } }
	private readonly object _bone;
	public object Bone { get { return _bone; } }
	private readonly Vector3 _bone_position;
	public Vector3 Position { get { return _bone_position; } }

	public AimBone(object aim_bone)
	{
		if (aim_bone is Transform)
		{
			_name = ((Transform)aim_bone).name;
			_bone_position = ((Transform)aim_bone).position;
		}
		else if (aim_bone is BifacialTransform)
		{
			_name = ((BifacialTransform)aim_bone).Original.name;
			_bone_position = ((BifacialTransform)aim_bone).position;
		}
		else
		{
			_name = "Unsupported Bone Type";
			_bone_position = Vector3.zero;
		}

		_bone = aim_bone;
	}
}

@sailro, I would very much appreciate if this could be implemented in the master branch. Also, if anyone would like please feel free to optimize these methods if you find a faster/simpler way to do something, I gave it my best effort. Lastly, you may notice how I strongly type all of my variables, I prefer it this way for readability but it has no runtime impact either way AFAIK.

Could you show how you integrate this with the current code?

Could you show how you integrate this with the current code?

Sure thing! Here is how my Update method looks like for the Aimbot class, which acquires the Vec3 target position 'target_pos' through usage of #GetBestVisibleBone. I'm still in the process of adding a FOV calculation so this will surely change, but I will document that as another enhancement soon:
protected override void UpdateWhenHold()
{
	GameStateSnapshot? state = GameState.Current;
	if (state == null)
		return;

	Player? localPlayer = state.LocalPlayer;
	if (localPlayer == null)
		return;

	Aimbot._camera = state.Camera;
	if (Aimbot._camera == null)
		return;

	if (localPlayer.Weapon.IsMeleeWeapon())
		return;

	Vector3 nearestTarget = Vector3.zero;
	float nearestTargetDistance = float.MaxValue;

	//GameState ensures 'Hostiles' list will not include your own Player object, so no need to check for it here
	foreach (var player in state.Hostiles)
	{
		if (player == null)
			continue;

		float distance = Vector3.Distance(Aimbot._camera.transform.position, player.Transform.position);
		if (distance >= nearestTargetDistance || distance > this.MaximumDistance)
			continue;

		Vector3 target_pos = GetBestVisibleBone(player, distance); //Find the best visible bone for this potential target, also behaves as a full visibility check
		if (target_pos == Vector3.zero) //Empty Vec3 means no bone was visible, therefore this target is completely behind geometry
		{
			render_text_player_visible = (render_text_player_visible != "TARGET TOO CLSOE") ? "NO VISIBLE TARGET" : render_text_player_visible;
			continue;
		}

		//I'm 82% sure this isn't necessary but do it anyway just incase Target magically teleports off screen
		Vector3 screenPosition = Aimbot._camera.WorldPointToScreenPoint(target_pos);
		if (!Aimbot._camera.IsScreenPointVisible(screenPosition))
			continue;

		//Used to get the speed of the Ammo we're currently using - still need to account for ballistic arc and deceleration
		AmmoTemplate? template = localPlayer.Weapon?.CurrentAmmoTemplate;
		if (template == null)
			continue;

		//This needs some work - it is under-estimating the destination when target is farther away and slowing down or over-estimating when target is farther away but stationary or moving quickly - we should check when target becomes stationary and reset the target position
		nearestTargetDistance = distance;
		float travelTime = (distance / template.InitialSpeed);
		target_pos.x += (player.Velocity.x * travelTime);
		target_pos.y += (player.Velocity.y * travelTime);

		nearestTarget = target_pos;
	}

	if (nearestTarget != Vector3.zero)
		AimAtPosition(localPlayer, nearestTarget, this.SmoothPercent);
}

Also, on another note, I like your improvement to the #NormalizeAngle that was included in the Aim smoothing enhancement! Looks good 👍
I'll try to get a fork up soon and keep it up to date w/ your Master branch since I plan on supporting only latest version EFT/AKI - making proper pull requests where applicable - and then that fork can act as an experimental features test bed if we'd like.

Since it's been 8 days I think that's longer than ""in the next few days"" lol, so here is my complete source on visibility checks. I reconstructed IsPlayerBoneVisibile3 from looking at EFT source in dnSpy, it is too accurate sometimes and I think the layer masks need adjusted, otherwise it could be better than IsPlayerBoneVisible2...
//This is faster and somehow more accurate
public static bool IsPlayerBoneVisible2(this Camera camera, Vector3 target_bone)
{
	GameStateSnapshot? current = GameState.Current;
	if (current == null) return false;

	Player? local_player = current.LocalPlayer;
	if (local_player == null) return false;

	//Vector3 camera_position = camera.transform.position;
	Vector3 fireport = local_player.Fireport.position;
	fireport.y = (fireport.y + Aimbot._sight_adjustment);
	Vector3 direction = (target_bone - fireport);
	float distance = (Vector3.Magnitude(direction) * 0.975f);

	return !(Physics.Raycast(fireport, direction, distance, GClass503.HighPolyWithTerrainMask.value, QueryTriggerInteraction.UseGlobal));
}

//This is experimental
public static bool IsPlayerBoneVisible3(this Camera camera, Vector3 target_bone)
{
	return !GClass420.LinecastPrecise(camera.transform.position, target_bone, out _ray, GClass1974.HitMask, true, _rays, new Func<RaycastHit, bool>(CameraExtensions.IsIgnored));
}

GClass420 will break on the next update. EFT is using a simple obfuscator changing non public names for every release.
So the best way is to avoid depending on those generated names (perhaps next time it will be GClass421 instead of GClass420), you should find an alternative way to get access, perhaps using Reflection.
Like I did here: https://github.com/sailro/EscapeFromTarkov-Trainer/blob/master/Features/Commands.cs#L138

Silent-aim is now using visibility check

I updated this issue's title with respect to your latest additions.
Now the two goals of this issue are as follows:

Improve the visibility checking procedure by changing the way in which we get the player's target bone;
This proposed improvement should add & implement a new method, or replace the existing method #TryGetHeadTransform,
and name it #TryGetVisibleTransform.
https://github.com/sailro/EscapeFromTarkov-Trainer/blob/2d8d89194ccab74fe0a6e0561fd36c90699cb92f/Features/Aimbot.cs#L258

Method summary:  Create a shortened list of vital bone types from a provided Player argument, then loop through each one in order of vitality and immediately return the first bone that is visible. If none are visible the Aimbot should skip the current Player in the hostiles list.

Use #IsTransformVisible camera extension method for determining if current bone should be returned.
https://github.com/sailro/EscapeFromTarkov-Trainer/blob/2d8d89194ccab74fe0a6e0561fd36c90699cb92f/Extensions/CameraExtensions.cs#L17

Considerations:  Replace references to #TryGetHeadTransform. Specifically in the #TryGetNearestTarget method:
https://github.com/sailro/EscapeFromTarkov-Trainer/blob/2d8d89194ccab74fe0a6e0561fd36c90699cb92f/Features/Aimbot.cs#L160

With the above proposed changes added, the Non-Silent Aimbot will then naturally be performing visibility checking through the new bone-scanning method and then the visibility check for the Silent Aimbot can be removed. https://github.com/sailro/EscapeFromTarkov-Trainer/blob/2d8d89194ccab74fe0a6e0561fd36c90699cb92f/Features/Aimbot.cs#L100 In both mentioned cases this is necessary thanks to #TryGetNearestTarget now using the new bone scan method.

Example snippet of bone-scanning for visible transform, implemented and tested in earlier versions:
PlayerBones bones = player.PlayerBones;

//Make a collection of target bones ordered by vitality (Head, Neck, Body, Pelvis, Upper Arms, Upper Legs)
IEnumerable<AimBone> target_bones = new AimBone[16] {
	new AimBone(bones.Head),
	new AimBone(bones.Neck),
	new AimBone(bones.Spine1),
	new AimBone(bones.Pelvis),
	new AimBone(bones.Upperarms[0]),
	new AimBone(bones.Upperarms[1]),
	new AimBone(bones.LeftThigh1),
	new AimBone(bones.RightThigh1)
}; //Used a hybrid AimBone class due to differing bone transform types with no mutual interface/inheritance

//LINQ is short and sweet but this will add ~150ms to the Aimbot targeting due to the added overhead
//return target_bones.FirstOrDefault(bone => _camera.IsTransformVisible(bone.Position));

//Use foreach here instead since it is faster than LINQ and Aimbot needs to be fast
foreach (AimBone bone in target_bones)
	if (_camera.IsTransformVisible(bone.Position))
		return bone.Position;


Add an alias for 'stepout'

Please add an alias for 'stepout'.
Fox example, 'up',

@swors you can absolutely add a default alias if you'd like, the process for contributing this is actually very easy, simply add the alias here.
Also, you can define your own aliases via the configuration file that should be found in $HOME/.dlv/config.yaml.

@derekparker
Yes, I've modified the source code and build a private version for myself. But I still think that it is better to set a  default official alias.
'$HOME/.dlv/config.yaml' is great. Thank you very much.

I don't think up is a great choice since gdb uses it for something else.

@aarzilli My mistake. up is not suitable. Maybe 'finish' which used by gdb is a better choice

finish is one letter shorter than stepout

+1 for up aliased to stepout, I'm familiar with that from pdb.

This should probably be closed. so is now an alias:
stepout (alias: so) --------- Step out of the current function.

Yes, thank you.


Creating  Custom Page Preloader Using Vue.js

Proposed title of article
Creating Custom Page Preloader Using Vue.js
Proposed article introduction
Loading is very crucial for our website success. It keeps users engaged for those milliseconds to wait for a while before they can actually see all the content. Sometimes users may even think that the site is down, adding a well-designed pre-loader fills this gap and shows the user a progress indicator during the page load.
In this article, we will cover as much as possible to help the reader understand how one can create custom page preloaders (what users see on websites before the main content of the web page is loaded) using Vue.js. The reader will also understand its design, how to add and hide the preloader once the web page loads.
Key takeaways
The reader will understand:

The importance of page preloaders.
How to design and create preloaders using Vue.js
How to add preloaders to web pages after creation.

Article quality
This article not only will it equip the reader with the knowledge of preloaders and how they are applied in websites but also the implementation using Vue.js in web page creation.
References
N/A.
Conclusion
N/A
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Hi @dentex22
Thank you for your response and we thank you for submitting your topic. After some careful consideration it struck us that this topic may be a bit over saturated throughout other blog sites and official documentations as previously mentioned on your topic form by our content moderator.
We typically refrain from publishing content that is covered widely on the net or other blogs. As we're more interested in original, practitioner-focused content that takes a deeper dive into programming-centric concepts.
We believe this is the best way for students to build a great portfolio (for potential employers) is by building what does not exist and what can provide the most value.
You are more than welcome to pursue another more in depth topic


Cannot install with knife from supermarket

When I attempt to install seven_zip from Supermarket I encounter the following error:
$ knife supermarket install seven_zip
Installing seven_zip to C:/Users/user/my/path/ops/chef/cookbooks
Checking out the master branch.
Pristine copy branch (chef-vendor-seven_zip) exists, switching to it.
Downloading seven_zip from Supermarket at version 2.0.1 to C:/Users/user/my/path/ops/chef/cookbooks/seven_zip.tar.gz
Cookbook saved: C:/Users/user/my/path/ops/chef/cookbooks/seven_zip.tar.gz
Removing pre-existing version.
Uncompressing seven_zip version 2.0.1.
Removing downloaded tarball
19 files updated, committing changes
ERROR: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of git commit -m "Import seven_zip version 2.0.1" -- seven_zip ----
STDOUT: On branch chef-vendor-seven_zip
nothing to commit, working directory clean
STDERR:
---- End output of git commit -m "Import seven_zip version 2.0.1" -- seven_zip ----
Ran git commit -m "Import seven_zip version 2.0.1" -- seven_zip returned `1```

$ knife -v
Chef: 12.12.13

This is on a Windows 10 host.  I'm pretty new to Chef so if there is something I'm missing about this I'm all ears.

Not sure, but you should use Berkshelf instead of the old school Chef monolithic repo.


Aliases / Tags for compendiums in searches

Searches for both systemutvikling and programvareutvikling should be able to return the programvareutvikling compendium etc.

We've got tags now.
I guess next up is taking advantage of them when searching.

Renamed this to be about searching for tags and aliases.

Fixed in https://github.com/stianjensen/wikipendium.no/pull/376.


LoadBalancer: 'service.beta.kubernetes.io/aws-load-balancer-type: nlb' annotation exists regardless of platform type

When Submariner gateway is deployed using LoadBalancer service, 'service.beta.kubernetes.io/aws-load-balancer-type: nlb' annotation exists regardless of platform type.
For example [1]  is the submariner-gateway manifest for when Submariner deployed on ARO.
This should be treated as low severity, as it should not affect the LoadBalancer service, but only may cause confusion.
[1]
kind: Service
apiVersion: v1
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
resourceVersion: '622004'
name: submariner-gateway
uid: c3dca72e-bf5b-46ed-bed5-14cfb02b90d8
creationTimestamp: '2023-04-19T13:49:20Z'
managedFields:
- manager: kube-controller-manager
operation: Update
apiVersion: v1
time: '2023-04-19T13:49:20Z'
fieldsType: FieldsV1
fieldsV1:
'f:metadata':
'f:finalizers':
.: {}
'v:"service.kubernetes.io/load-balancer-cleanup"': {}
subresource: status
- manager: submariner-operator
operation: Update
apiVersion: v1
time: '2023-04-19T13:49:20Z'
fieldsType: FieldsV1
fieldsV1:
'f:metadata':
'f:annotations':
.: {}
'f:service.beta.kubernetes.io/aws-load-balancer-type': {}
'f:ownerReferences':
.: {}
'k:{"uid":"34d24fcc-6ec8-4bb9-b146-e6c531b46e27"}': {}
'f:spec':
'f:allocateLoadBalancerNodePorts': {}
'f:externalTrafficPolicy': {}
'f:internalTrafficPolicy': {}
'f:ports':
.: {}
'k:{"port":4490,"protocol":"UDP"}':
.: {}
'f:name': {}
'f:port': {}
'f:protocol': {}
'f:targetPort': {}
'k:{"port":4500,"protocol":"UDP"}':
.: {}
'f:name': {}
'f:port': {}
'f:protocol': {}
'f:targetPort': {}
'f:selector': {}
'f:sessionAffinity': {}
'f:type': {}
namespace: submariner-operator
ownerReferences:
- apiVersion: submariner.io/v1alpha1
kind: Submariner
name: submariner
uid: 34d24fcc-6ec8-4bb9-b146-e6c531b46e27
controller: true
blockOwnerDeletion: true
finalizers:
- service.kubernetes.io/load-balancer-cleanup
spec:
clusterIP: <IP_ADDRESS>
externalTrafficPolicy: Local
ipFamilies:
- IPv4
healthCheckNodePort: 32488
ports:
- name: cable-encaps
protocol: UDP
port: 4500
targetPort: 4500
nodePort: 31778
- name: natt-discovery
protocol: UDP
port: 4490
targetPort: 4490
nodePort: 30513
internalTrafficPolicy: Cluster
clusterIPs:
- <IP_ADDRESS>
allocateLoadBalancerNodePorts: true
type: LoadBalancer
ipFamilyPolicy: SingleStack
sessionAffinity: None
selector:
app: submariner-gateway
gateway.submariner.io/status: active
status:
loadBalancer: {}

@yboaron does it make sense to try and fix this for 0.15 or is it too risky?

@yboaron does it make sense to try and fix this for 0.15 or is it too risky?

IMO we shouldn't fix it for 0.15, as it is just an annotation that doesn't affect service functionality.

I think we can delete the "service.beta.kubernetes.io/aws-load-balancer-type": "nlb" annotation also for AWS case,
as 'nlb' value isn't supported anymore, it should be 'nlb-ip' or 'external',  check [1] for more details.
[1]
https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/service/annotations/#traffic-routing


sheets

client-esm/applications/sheets

[ ] ActorSheetV2
[ ] AmbientSoundConfig
[ ] AmbientLightConfig
[ ] ItemSheetV2
[ ] RegionBehaviorConfig (Blocked by #2574)
[ ] RegionConfig (Blocked by #2574)
[ ] UserConfig

Possible that some of these are blocked by schema updates.

Starting on actor.

I'll pick up UserConfig

AmbientSoundConfig and AmbientLightConfig render contexts will need an update after the CONFIG updates are merged in.


Don't assume deck is the username

For the shortcut creation, don't assume deck as the username. This fixes the shortcuts on desktop Linux, and if Valve ever change the username on Steam Deck specifically, you won't need to update it for new installs.

@LiamDawe hey brother I like these changes... would $HOME work better or would it be the same?

Yes, even better. I've changed it over to use $HOME and tested it with a fresh Battle.net install just fine on my desktop and it grabs the correct home folder with my username.


PublishError: getBuildInfo error: {code: 1081, message: error request}

flutter_distributor --version
0.4.5
PublishError: PublishError: PublishError: getBuildInfo error: {code: 1081, message: error request}
#0      AppPackagePublisherPgyer.getBuildInfo (package:flutter_app_publisher/src/publishers/pgyer/app_package_publisher_pgyer.dart:136:7)

#1      AppPackagePublisherPgyer.publish (package:flutter_app_publisher/src/publishers/pgyer/app_package_publisher_pgyer.dart:40:23)

#2      FlutterAppPublisher.publish (package:flutter_app_publisher/src/flutter_app_publisher.dart:30:12)

#3      FlutterDistributor.publish (package:flutter_distributor/src/flutter_distributor.dart:251:39)

#4      FlutterDistributor.release (package:flutter_distributor/src/flutter_distributor.dart:345:13)

#5      CommandRunner.runCommand (package:args/command_runner.dart:212:13)

https://www.pgyer.com/doc/view/api?xcx=1
1081	非法请求


Upgrade some packages to deal with security issue seen from npm audit

Requirements
No.
Description of the Change
'npm audit' found critical security issues. Package upgrade resolves some of these issues.
Alternate Designs
Refer to npm audit to fix security issues.
Why should this be in core?
Critical security issue maybe resolved.
Benefits
Critical security issue maybe resolved.
Possible Drawbacks
Tested on Debian 10, so far it's ok. Not tested on windows or other platform yet.
Applicable issues
There are still 25 vulnerabilities to be reviewed.
                   === npm audit security report ===

found 25 vulnerabilities (1 low, 24 moderate) in 32373 scanned packages
25 vulnerabilities require manual review. See the full report for details.

@papandreou, believe 26 of these are related to AG-B.
Are they also being addressed as part of #3412?

@plroebuck, I'll take a look. There are still some vulnerabilities left with the latest ag-b. Some of them appear to be buried many levels deep, so it could take some time to get it all sorted out. I've installed depfu in those of the intermediate repos that are within my control, let's see :)

Tracking the progress here: https://github.com/assetgraph/assetgraph-builder/issues/628


Promo Codes permission not available

Describe the bug
I am looking to create a Promotion Code for my connected user but I am not able to do so because of No permissions error.

These are permissions the user already have:
subscription_read,customer_read,connected_account_read,user_email_read,coupon_read,coupon_write,product_read,invoice_read,invoice_write,quote_read,credit_note_read,credit_note_write

To Reproduce
Steps to reproduce the behavior:

Add these permissions to your Stripe app: subscription_read,customer_read,connected_account_read,user_email_read,coupon_read,coupon_write,product_read,invoice_read,invoice_write,quote_read,credit_note_read,credit_note_write
Try to run:

 const promotionCode = await stripe.promotionCodes.create({
    coupon: couponId,
}, { stripeAccount: accountId });

See Error: No Permissions for this resource

Expected behavior
I should be able to create a promocode for my connected user.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS] N/A
Browser [e.g. chrome, safari] N/A
Stripe CLI - N/A

Additional context

Request ID: req_HJFlZ7oKgT4A3q
I have already tried adding promotion_code_write and it doesn't recognize the permission when I try to upload the app

thanks for reporting @bdcorps ! We are working on adding a new permission to handle this case and will let you know when it is available

hi @bdcorps . promotion_code_read and promotion_code_write are now available to use


[Feature] Change asset important statements to use new way with @ prefix

issue here is img src does not take a SVG but rather a string so using @ here will trigger error, best to rewrite return as  and aria-labelledby


Missing sbt-assembly plugin

I am trying to import project to intellij. There is a missing sbt dependency
/Users/fabrizio/Documents/workspace_personal/spooq/build.sbt:58: error: not found: value assembly assembly / mainClass := Some("com.github.supermariolabs.spooq.Application") ^ [error] Type error in expression

Merged, thanks for the contribution!


Exceptions being shown on dashboard is different from notifications

When we get a notification for certain errors in our application, the notification that we receive via Slack and/or Github is different than the error that we see on the web client dashboard.  The web client's error appears to be incorrect.
Example:
On the dashboard we see:

In Slack, we see:

@ConradIrwin closed with no comment?

This doesn't make any sense to me at all — have you seen this problem since? If so, can you link me to the errors?

@ConradIrwin well then that would have been a better way to advance this issue than closing it without asking for more information IMO.
I no longer have access to the errors.  This issue was causing more problems than just having a different error show up in the dashboard vs in Slack.  Specifically we we were not able to properly ignore certain errors.  Since this issue wasn't responded to within any reasonable amount of time, we had to find a service that didn't have this problem and so we moved to Honeybadger.
I'm not sure what else you're looking for to get more info.  There's an error that shows up when the Slack notification is sent (as in the screenshot above) and there's an error that shows up when you click "details" (also in the separate screenshot above).  In a lot of situations for us they were two completely different things.
You can find our project here: https://bugsnag.com/the-kompanee-1/goodscout if you want to dive into it.  But like I said, we're on Honeybadger now so this no longer directly affects us.


"CA1416: Validate platform compatibility" error on WinUI XAML code-behind code

Steps to reproduce the bug

Create a C# desktop WinUI 3.0 application
Compile the application

Expected behavior
No warnings are shown, WinUI is anyway a Windows framework.
Gotten behavior
warning CA1416: This call site is reachable on all platforms. on WinUI API calls are generated.
Build Log
Build started...
Restored D:\winui\AStarDemo\AStarDemo\AStarDemo.csproj (in 87 ms).
Restored D:\winui\AStarDemo\AStarDemo (Package)\AStarDemo (Package).wapproj (in 147 ms).
1>------ Build started: Project: AStarDemo, Configuration: Debug x64 ------
1>D:\winui\AStarDemo\AStarDemo\MainWindow.xaml.cs(33,13,33,29): warning CA1416: This call site is reachable on all platforms. 'ContentControl.Content.set' is only supported on: 'Windows'.
1>D:\winui\AStarDemo\AStarDemo\App.xaml.cs(46,13,46,32): warning CA1416: This call site is reachable on all platforms. 'Window.Activate()' is only supported on: 'Windows'.
1>AStarDemo -> D:\winui\AStarDemo\AStarDemo\bin\x64\Debug\net5.0-windows10.0.19041.0\AStarDemo.dll
1>Done building project "AStarDemo.csproj".
2>------ Build started: Project: AStarDemo (Package), Configuration: Debug x64 ------
2>D:\winui\AStarDemo\AStarDemo (Package)\AStarDemo (Package).wapproj : warning NU1701: Package 'Microsoft.ProjectReunion.InteractiveExperiences 0.8.0' was restored using 'net5.0-windows10.0.19041, .NETCoreApp,Version=v3.1, .NETCoreApp,Version=v3.0, .NETCoreApp,Version=v2.0, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, net5.0-windows10.0.17763, net6.0-windows10.0.17763, .NETFramework,Version=v4.6.1' instead of the project target framework 'UAP,Version=v10.0.17763'. This package may not be fully compatible with your project.
2>Done building project "AStarDemo (Package).wapproj".
========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Version Info
WinUI 3.0
Project Reunion 0.8.0 Stable
NuGet package version:
    <PackageReference Include="Microsoft.ProjectReunion" Version="0.8.0" />
    <PackageReference Include="Microsoft.ProjectReunion.Foundation" Version="0.8.0" />
    <PackageReference Include="Microsoft.ProjectReunion.WinUI" Version="0.8.0" />
    <Manifest Include="$(ApplicationManifest)" />

Windows app type:

UWP
Win32

Yes

Windows 10 version
Saw the problem?

21H1
Yes

Device form factor
Saw the problem?

Desktop
Yes

Xbox

Surface Hub

IoT

Try adding a [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows10.0.17763.0")] attribute anywhere, for example at the top of App.xaml.cs.

I guess that will do it, but it kind of weird to expect all WinUI developers to do that for what is a Windows specific framework after all.

Adding [assembly: System.Runtime.Versioning.SupportedOSPlatform("windows10.0.17763.0")] definitely works and that wouldn't be a problem doing that in my opinion but this attribute has to be taken from autogenerated AssemblyInfo.cs and apparently it is not taken from there. This is the problem. In my case I see that AssemblyInfo is autogenerated and located in one of the sub-folders inside obj folder and contains
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows10.0.19041.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows10.0.17763.0")]
but that doesn't work. The compiler anyway expects me to but SupportedOSPlatformAttribute somewhere in the project files.


CVE-2024-45338

Fixes https://github.com/aserto-dev/azm/security/dependabot/9

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

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

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
2636

Relevant Lines:
4025

💛  - Coveralls


[2.6] Support for multiple private registries is broken

Rancher Server Setup

Rancher version: 2.6.4

Describe the bug
RKE supports multiple private registries:
https://rancher.com/docs/rke/latest/en/config-options/private-registries/

Create or edit a cluster/rke cluster template and directly modify the RKE yaml.
Click Edit Yaml button and create multiple registry entries like so

  private_registries:
    - ecr_credential_plugin: {}
      is_default: true
      url: my-private-registry
      user: tobias
      password: secure
    - ecr_credential_plugin: {}
      is_default: false
      url: my-private-registry-2
      user: frank
      password: securepw2

Try to submit it and you will be greeted with an error "resourceVersion should not be set on objects to be created"

Relevant broken function:
https://github.com/rancher/rancher/blob/dfe44512d12d5674607be1848e53ce83f5b67e6c/pkg/controllers/management/secretmigrator/clusters.go#L661
Should be assigned to @cmurphy as she wrote the secret migrator code.

SURE-4708

Verified on v2.6.6-rc1

Created 2 rke1 templates with and without parameter override with two private registries in each
Verified cluster creation with the 2 private registries work as expected.
Verified by creating an rke1 custom cluster with 2 private registries - Clusters were created without any error.

Verified upgrade from 2.6.5 where issue is reproduced to v2.6.6-rc1

Created 2 rke1 templates with and without parameter override with two private registries in each
Verified cluster creation with the 2 private registries work as expected.
Verified by creating an rke1 custom cluster with 2 private registries - Clusters were created without any error.

Release note template
Synopsis of issue: if more than one private registry was specified for the cluster, the secret for the registry credentials only contained the credentials for the last registry. Now the logic is fixed to keep all registry credentials.
Resolved (or not): resolved
Workaround: for versions before the fix, the credential secret can be edited to include credentials for all registries.
Versions: v2.6.4-v2.6.6, v2.5.13-v2.5.15


Remove references to BookKeeping from readme

BookKeeping section is no longer used in the exercise test cases. This PR removes the documentation in the readme.
Closes #838

Thanks for doing this @kevinsamoei :heart:


Travis

Goes green for builds in https://github.com/atlassian/unicreds/tree/atlassian. Does require you to enable Travis builds for your repository.

After a few tweaks we have a working CI setup.
Thanks for your help.


License

Hi,
It seems the content of this repository does not have any license. Could you please add a license to the content of this repository so we know how we can use it in our code?
Thanks for your great work!

License added. Thank you so much.


New command: m365 spo folder sharinglink remove

Usage
m365 spo folder sharinglink remove [options]
Description
Removes a sharing link from a folder
Options

Option
Description

-u, --webUrl <webUrl>
The URL of the site where the file is located

--folderUrl [folderUrl]
The server- or site-relative decoded URL of the folder. Specify either folderUrl or folderId but not both

--folderId [folderId]
The unique ID (GUID) of the folder. Specify either folderUrl or folderId but not both

-i, --id <id>
The sharing link ID

-f, --force
Don't prompt for confirmation

Examples
Removes a specific sharing link from a folder by id without prompting for confirmation
m365 spo folder sharinglink remove --webUrl https://contoso.sharepoint.com/sites/demo --folderId daebb04b-a773-4baa-b1d1-3625418e3234 --id 1 --force

Removes a specific sharing link from a folder by url with prompting for confirmation
m365 spo folder sharinglink remove --webUrl https://contoso.sharepoint.com/sites/demo --fileUrl /sites/demo/shared%20documents/Folder --id 1

Default properties
No response
Additional Info
The API call to removea sharing link can be found on the following documentation:  https://learn.microsoft.com/en-us/graph/api/permission-delete?view=graph-rest-1.0&tabs=http
Please try to use the SP REST API v2.1 as much as possible to reduce the need for extra Graph permissions.

you have a small glitch in -i, --id <id>] it should be -i, --id <id> without the ]. Also I would write sharing link ID instead of The ID of the sharing link.
Besides that LGTM 👍
@pnp/cli-for-microsoft-365-maintainers anyone else for a 👀

My remarks:

Instead of Removes a sharing link of a folder, I'd use Removes a sharing link from a folder
folderUrl should allow server and site-relative URLs
folderId unique ID are 2 words
Let's add a remark with the Graph docs for the request
Let's add a remark that says that we should use v2.1 SP REST API endpoint as much as possible, this to reduce the need for people to consent extra Microsoft Graph permissions on their app registration.

The specs look good enough for me. Would you like to work on this @MathijsVerbeeck, or open it up?

You can open it up. I do still have some research however on how to retrieve the driveitemid from a folder, as this is not that straightforward as with a file. Should I post this procedure on every command (maybe add it in the specs)?

Can I take this as well? I will be working on the List command today.

All yours @Saurabh7019 . Thanks for your help!


✨ add support for Font Awesome 6

Is your feature request related to a problem? Please describe.
Font Awesome 6 is out, we should add support for it https://fontawesome.com/

@oblador any update on this? 😛

Alternative: Official FontAwesome library for React Native


silex 2

Any chance of updating it to silex 2 / propel 2?

No, the project is dead. If you wish to take the ownership let me know.
S.


Allow impl-specific platform_config values.

This specifies that implementations may provide their own types to be passed as platform_config, and that other implementations should ignore things they don’t recognize.

Per the discussion at Friday’s meeting about allowing users to pass in rich objects, this is roughly what I was thinking would be the best approach. It’s pretty much what I said there, and tl;dr

Implementations can choose to accept their own rich types raw.
Other implementations should ignore ones they don't recognize and act as if nothing was passed.

I only vaguely remember who was most involved in that discussion, so please R+ anybody who seems relevant.

@pablo-gar bump, since this a spec change I would like all reviewers' approval. (If I misremembered the conversation and you didn’t have an opinion on this, you can remove yourself from the reviewers list (or approve if you think this is a good idea anyway).)


Update configure-host-pool-personal-desktop-assignment-type.md

No longer supported -Force option on the command.
Update-AzWvdSessionHost (Az.DesktopVirtualization) | Microsoft Docs
https://docs.microsoft.com/en-us/powershell/module/az.desktopvirtualization/update-azwvdsessionhost?view=azps-7.3.2

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

#label:"aq-pr-triaged"

@Heidilohr @femila - Can you review this old PR and determine whether it needs to be closed or merged?
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.

@MicrosoftDocs/public-repo-pr-review-team

This command was updated to remove the -Force option. #please-close


Invalid content /en/testnets/erc20-converter/erc20-getting-started/

Where does the issue occur?
Link to the file or location on the website where the issue occurs. Optionally add screenshots for context.
Describe the issue
A clear and concise description of what the issue is.
Expected changes
A clear and concise description of what you expected to change.
Additional context
Add any other context about the problem here.
AGIX adding token to Meta-mask wallet NO longer says "Add Tokens" replaced with "Import Tokens" then select "custom tokens"

Thank you for your feedback!
AGIX ERC20 converter is now live on mainnet. Please see updated tutorials here: https://bridge.singularitynet.io/


Update VM extension test + runner test refactor

Hi @xindzhan, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;


[compiler] Optional description for @pattern

TypeSpec supports several validations, like @pattern. For most validations, for example: @minValue, the error message that should be given when validation fails is obvious. However, for @pattern, the regular expressions given are often difficult to understand, and we've found that there are some use cases for attaching an optional description to the pattern for readability and for use when surfacing validation errors to end users.
I propose augmenting the definition of @pattern like this:
extern dec pattern(target: string | bytes | ModelProperty, pattern: valueof string, description?: valueof string);

The description can state what the pattern checks for. For example:
@pattern("^[a-zA-Z0-9_]{3, 24}$", "must be between 3 and 24 alphanumeric characters and underscores")
id: string;

@witemple-msft please add a size estimate


Test1

⚠ Pre-Checklist
Note: please complete ALL items in the following checklist, and remove this section before submitting.

I have read through the CONTRIBUTING.md documentation.
This PR is using a label (bug, feature, etc.)
My code has the necessary comments and documentation (if needed).
I have added relevant tests
I will remove this section (⚠ Pre-Checklist) when submitting this PR

Summary

Key Points

[ ] This is a breaking change.
[ ] Documentation (new or existing) is updated.

Description
Describe what this PR does and what problems it tries to solve in a few sentences.
Related Issues
Will this PR close any open issues? If yes, would you please mention the issue(s) here?
Current Behavior
Describe the current behavior of this issue, if relevant.
New Behavior
Describe the newly updated behavior, if relevant.
Screenshots
Include any relevant screenshots here.


[CodeCompletion] Look through optional when determining the function type of a called overload

This is an even more minimal and low-risk version of https://github.com/apple/swift/pull/63515
rdar://97339983

@swift-ci Please test


[Web]: Trying to terminate (ctrl + c) a stuck hot restart throws the Dart compiler exited unexpectedly. error

Steps to Reproduce

Upgraded to new version of Flutter (2.0.3)
Running flutter app in chrome

Code
class SomeClass {
  static addMeta(String tags) {
    html.Element? htmlVal = html.document.querySelector('head');
    htmlVal?.setInnerHtml(
      tags,
      validator: AllowAll(),
    );
  }
}

class AllowAll implements html.NodeValidator {
  @override
  bool allowsAttribute(
      html.Element element, String attributeName, String value) {
    return true;
  }

  @override
  bool allowsElement(html.Element element) {
    return true;
  }
}

Logs

Logs

/Volumes/aayush/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev
/Volumes/aayush/flutter/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot --sdk-root
/Volumes/aayush/flutter/bin/cache/flutter_web_sdk/ --incremental --target=dartdevc --debugger-module-names
--experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
/var/folders/0x/x_vhjhhx4158f5p25jstgzbw0000gn/T/flutter_tools.KzsueB/flutter_tool.kXtMAk/app.dill --libraries-spec
file:///Volumes/aayush/flutter/bin/cache/flutter_web_sdk/libraries.json --packages
/Users/aayush/Desktop/coderaayush/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts
--track-widget-creation --filesystem-root /var/folders/0x/x_vhjhhx4158f5p25jstgzbw0000gn/T/flutter_tools.KzsueB/flutter_tools.svHG3q
--filesystem-scheme org-dartlang-app --initialize-from-dill build/b1b715402d823b7fd5c2b68d2edcb2ce.cache.dill.track.dill --platform
file:///Volumes/aayush/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill --sound-null-safety
[  +20 ms] <- compile org-dartlang-app:/web_entrypoint.dart

[+43309 ms] Waiting for connection from debug service on Chrome... (completed in 48.5s)
[   +2 ms] Synced 36.7MB.
[   +2 ms] <- accept
[   +3 ms] Caching compiled dill
[+1589 ms] Using Google Chrome 89.0.4389.90

[+10795 ms] [CHROME]:
[   +2 ms] [CHROME]:DevTools listening on ws://<IP_ADDRESS>:55369/devtools/browser/d9385e66-90e9-4f84-88fd-52a2a491e78c
[+3016 ms] DwdsInjector: Received request for entrypoint at http://localhost:55335/main_module.bootstrap.js
[  +10 ms] MetadataProvider: Loading debug metadata...
[  +45 ms] MetadataProvider: Loaded debug metadata
[  +19 ms] DwdsInjector: Injected debugging metadata for entrypoint at http://localhost:55335/main_module.bootstrap.js
[+6312 ms] DevHandler: Debug service listening on ws://<IP_ADDRESS>:55390/XgeHLh-hctQ=/ws

[  +82 ms] Debug service listening on ws://<IP_ADDRESS>:55390/XgeHLh-hctQ=/ws
[   +4 ms] 💪 Running with sound null safety 💪
[  +40 ms] 🔥  To hot restart changes while running, press "r" or "R".
[        ] For a more detailed help message, press "h". To quit, press "q".
[+43309 ms] Waiting for connection from debug service on Chrome... (completed in 48.5s)
[   +2 ms] Synced 36.7MB.
[   +2 ms] <- accept
[   +3 ms] Caching compiled dill
[+1589 ms] Using Google Chrome 89.0.4389.90

[+10795 ms] [CHROME]:
[   +2 ms] [CHROME]:DevTools listening on ws://<IP_ADDRESS>:55369/devtools/browser/d9385e66-90e9-4f84-88fd-52a2a491e78c
[+3016 ms] DwdsInjector: Received request for entrypoint at http://localhost:55335/main_module.bootstrap.js
[  +10 ms] MetadataProvider: Loading debug metadata...
[  +45 ms] MetadataProvider: Loaded debug metadata
[  +19 ms] DwdsInjector: Injected debugging metadata for entrypoint at http://localhost:55335/main_module.bootstrap.js
[+6312 ms] DevHandler: Debug service listening on ws://<IP_ADDRESS>:55390/XgeHLh-hctQ=/ws

[  +82 ms] Debug service listening on ws://<IP_ADDRESS>:55390/XgeHLh-hctQ=/ws
[   +4 ms] 💪 Running with sound null safety 💪
[  +40 ms] 🔥  To hot restart changes while running, press "r" or "R".
[        ] For a more detailed help message, press "h". To quit, press "q".
[+148709 ms] Performing hot restart...
[  +14 ms] Initializing file store
[  +29 ms] Skipping target: gen_localizations
[   +7 ms] complete
[  +13 ms] Scanned through 521 files in 11ms
[        ] Waiting for connection from debug service on Chrome...
[   +5 ms] <- recompile org-dartlang-app:/web_entrypoint.dart 431af7b4-4c2d-48be-8b75-52f9bf780c12
[        ] package:coderaayush/helpers/flutter_hamlet.dart
[        ] <- 431af7b4-4c2d-48be-8b75-52f9bf780c12
[ +361 ms] Waiting for connection from debug service on Chrome... (completed in 365ms)
[        ] Synced 0.1MB.
[        ] <- accept
[  +10 ms] DwdsVmClient: Attempting a hot restart
[   +2 ms] DwdsVmClient: Attempting to disabling breakpoints and resume the isolate
[  +29 ms] DwdsVmClient: Successfully disabled breakpoints and resumed the isolate
[        ] DwdsVmClient: Attempting to get execution context ID.
[        ] DwdsVmClient: Got execution context ID.
[        ] DwdsVmClient: Issuing $dartHotRestart request.
[ +299 ms] DwdsVmClient: $dartHotRestart request complete.
[        ] DwdsVmClient: Waiting for Isolate Start event.
[+7924 ms] Ignoring terminal input: "r" because we are busy.
[+28494 ms] Ignoring terminal input: "r" because we are busy.

[✓] Flutter (Channel stable, 2.0.3, on Mac OS X 10.15.7 19H524 darwin-x64, locale en-NP)
    • Flutter version 2.0.3 at /Volumes/aayush/flutter
    • Framework revision 4d7946a68d (2 days ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/aayush/Library/Android/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/aayush/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.90

• No issues found!

@coder-Aayush
Can you provide a complete minimal reproducible code sample alongwith steps as when do you get the error you mentioned ?

Here is the Code
import 'package:flutter/material.dart';
import 'dart:html' as html;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      home: NewMethod(),
    );
  }
}

class NewMethod extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SomeClass.addMeta('tags');
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}

class SomeClass {
  static addMeta(String tags) {
    html.Element htmlVal = html.document.querySelector('head');
    htmlVal?.setInnerHtml(
      tags,
      validator: AllowAll(),
    );
  }
}

class AllowAll implements html.NodeValidator {
  @override
  bool allowsAttribute(
      html.Element element, String attributeName, String value) {
    return true;
  }

  @override
  bool allowsElement(html.Element element) {
    return true;
  }
}

When I edit SomeClass class and terminate hot restart then I will get this error.
I need to terminate hot restart process because it will never complete hot restart.
the Dart compiler exited unexpectedly.

@coder-Aayush
Thanks for the code sample. I ran flutter run -d chrome, edited SomeClass class  or NewMethod class and pressed r to hot restart which didn't restart and was stuck. Then I did CTRL + z to suspend the process, but didn't see the error you mentioned.
Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety

🔥  To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".

Performing hot restart...                                          197ms
Restarted application in 198ms.

Performing hot restart...                                              ⣽
zsh: suspended  flutter run -d chrome
dhs@Dhss-MacBook-Pro int_test_demo %

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.3, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.0.3 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 4d7946a68d (4 days ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.18.1

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • Mac OS X 10.15.4 19E2269
      darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

! Doctor found issues in 1 category.

Are these correct steps to replicate the error, or is there something different which replicates the error you see ?
Thanks.

@coder-Aayush
Thanks for the code sample. I ran flutter run -d chrome, edited SomeClass class or NewMethod class and pressed r to hot restart which didn't restart and was stuck. Then I did CTRL + z to suspend the process, but didn't see the error you mentioned.
Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety

🔥  To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".

Performing hot restart...                                          197ms
Restarted application in 198ms.

Performing hot restart...                                              ⣽
zsh: suspended  flutter run -d chrome
dhs@Dhss-MacBook-Pro int_test_demo %

flutter doctor -v
Are these correct steps to replicate the error, or is there something different which replicates the error you see ?
Thanks.

Try CTRL + C

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety

🔥  To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".

Performing hot restart...                                         105.6s
the Dart compiler exited unexpectedly.
the Dart compiler exited unexpectedly.
dhs@Dhss-MacBook-Pro int_test_demo %

flutter doctor -v

[✓] Flutter (Channel stable, 2.0.3, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.0.3 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 4d7946a68d (4 days ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.18.1

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • Mac OS X 10.15.4 19E2269
      darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

! Doctor found issues in 1 category.

May be related / similar to : https://github.com/flutter/flutter/issues/58536

i m facing the same issue which is wasting alot of time

each time i do some changes i reload the page manually

Seems like the problem is that hot restart is stuck, not the error?

I am unable to reproduce the error thrown while trying to terminate the stuck hot restart on the latest master and stable channels. The current problem seems to be that hot restart gets stuck after changes are made to the SomeClass  class.
Code Sample
  flutter doctor -v
[✓] Flutter (Channel master, 3.11.0-2.0.pre.55, on macOS 13.3 22E252 darwin-arm64, locale en-NG)
    • Flutter version 3.11.0-2.0.pre.55 on channel master at /Users/dammya/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 835b892d7f (4 days ago), 2023-05-07 01:30:22 +0530
    • Engine revision 23f730efbf
    • Dart version 3.1.0 (build 3.1.0-83.0.dev)
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (4 available)
    • sdk gphone arm64 (mobile)  • emulator-5554                        • android-arm64  • Android 11 (API 30) (emulator)
    • iPhone 14 Pro Max (mobile) • D7F3302D-D66F-4B89-B8CF-DBEE1CDB5449 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 112.0.5615.137

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[✓] Flutter (Channel stable, 3.7.12, on macOS 13.3 22E252 darwin-arm64, locale
    en-NG)
    • Flutter version 3.7.12 on channel stable at /Users/dammya/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (3 weeks ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (4 available)
    • sdk gphone arm64 (mobile)  • emulator-5554                        •
      android-arm64  • Android 11 (API 30) (emulator)
    • iPhone 14 Pro Max (mobile) • D7F3302D-D66F-4B89-B8CF-DBEE1CDB5449 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 112.0.5615.137

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!


More flexible scaling options

Clear and concise description of the problem
Currently, I find that the "large" option is still a bit small, it's hard to following when searching through the 13 000+ materials icons.
Suggested solution
Instead of small and large option, maybe we could get a "+/-" option, so we can scale however big/small we like ?

Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

I guess we could have a slider, PR welcome if you want to work on that!


Add chemeleon

Add chameleon: templating library: 98 star, 59 forks

Closed due to the repo has not added to vinta/awesome-python yet. Please reopen when the repo has added.


update tenant token demo to v0.30

Pull Request
What does this PR do?
Update demo to v0.30

Update tenant-token demo to v0.30
Migrate MS server to MS cloud and deployed backend to DO.
Bumped meilisearch-js version to v0.30.0
Bumped instant-meilisearch to 0.10.1
Generation of tenant token with API KEY UID.
API Keys changed as a result of the update.
Update README

PR checklist
Please check if your PR fulfills the following requirements:

[ ] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)?
[x] Have you read the contributing guidelines?
[x] Have you made sure that the title is accurate and descriptive of the changes?

Thank you so much for contributing to Meilisearch!

Hi @CaroFG. Thank you for the review. I made the changes and followed the first approach using the default search API key.

@CaroFG thank you very much 🙌


Role-based security issue - User with no permission has acces to some admin pages/controls

Some pages and controls are available in admin area without permissions.
Steps to reproduce:
First, create custom role, leave all permission unchecked, then create active user with this role.
Then sign in at /admin. 401Unauthorized Error page is displayed, no left-nav displayed.

Enter direct admin page url p.ex. /admin/cms, /admin/velocity/meta-data
User has full acces to page and controls.
Expected result: User should get 401 page/

Grant Edit permission for some section, p.ex. for Products. Leave Delete permission unchecked.
Go to Products page, check some items in grid, then select Delete from dropdown above, press Submit.
Checked items deleted.
Expected result: user should get 401 page

It'l be great, if user could see just controls allowed by role setings (grid actions, mass-delete option, Add-button etc.)

@legrillon
Thanks for reporting this bug.

@legrillon
Thanks for reporting this bug.