Support offline notify

What is the purpose of the change

Send readonly in Shutdown Hook
Support gracefulShutdown QoS command

Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #12211 (92297c3) into 3.2 (3552347) will decrease coverage by 0.02%.
The diff coverage is n/a.

:exclamation: Current head 92297c3 differs from pull request most recent head cc0dd1e. Consider uploading reports for the commit cc0dd1e to get more accurate results

@@             Coverage Diff              @@
##                3.2   #12211      +/-   ##
============================================
- Coverage     69.55%   69.54%   -0.02%
  Complexity        2        2
============================================
  Files          1596     1599       +3
  Lines         65548    65593      +45
  Branches       9539     9545       +6
============================================
+ Hits          45594    45618      +24
- Misses        15568    15587      +19
- Partials       4386     4388       +2

see 33 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[BUG] volume attaching, stopping, and detaching

Describe the bug
When trying to create a volume attached to a stateFulSet longhorn is stuck on attaching, and failing after a while, and retrying.
The error I get is: failed to attach: rpc error: code = Aborted desc = volume pvc-6de20396-e1a7-4588-bc48-22957e28d016 is not ready for workloads

To Reproduce
Steps to reproduce the behavior:

Install and configure Longhorn
Apply Kubernetes manifest with VolumeClaimTemplate (ReadWriteOnce, 2Gi)
Wait for errors to pop up

Expected behavior
I would expect Longhorn to create a volume that is attached to the host of the pods.
Log or Support bundle
If applicable, add the Longhorn managers' log or support bundle when the issue happens.
You can generate a Support Bundle using the link at the footer of the Longhorn UI.
longhorn-support-bundle_1ce5ecf1-d4d1-4cf9-a685-dcc243202457_2022-04-19T05-57-02Z.zip
Environment

Longhorn version: v1.2.4
Installation method: Kubectl
Kubernetes distro k3s v1.22.7+k3s1:

Number of management node in the cluster: 1
Number of worker node in the cluster: 3

Node config

OS type and version: Debian GNU/Linux 11 in LXC
CPU per node: 4
Memory per node: 4096
Disk type(e.g. SSD/NVMe): SSD
Network bandwidth between the nodes: 1Gbit

Underlying Infrastructure : Proxmox Virtual Environment
Number of Longhorn volumes in the cluster: 1

Additional context
Add any other context about the problem here.

@TobiasS1402
pvc-6de20396-e1a7-4588-bc48-22957e28d016 is deleted in support bundle.
For pvc-18a6173b-11ef-4b68-a2e1-6ad1c24f2c7e-e-874a00aa, I noticed the log message.
Have you installed and started the iscsi daemon on each node?
https://longhorn.io/docs/1.2.4/deploy/install/#installing-open-iscsi
2022-04-19T05:53:52.759259932Z time="2022-04-19T05:53:52Z" level=warning msg="pvc-18a6173b-11ef-4b68-a2e1-6ad1c24f2c7e-e-874a00aa: time=\"2022-04-19T05:53:28Z\" level=warning msg=\"FAIL to discover due to Failed to execute: nsenter [--mount=/host/proc/1/ns/mnt --net=/host/proc/1/ns/net iscsiadm -m discovery -t sendtargets -p <IP_ADDRESS>], output , stderr, iscsiadm: iscsid is not running. Could not start it up automatically using the startup command in the /etc/iscsi/iscsid.conf iscsid.startup setting. Please check that the file exists or that your init scripts have started iscsid.\\niscsiadm: can not connect to iSCSI daemon (111)!\\niscsiadm: iscsid is not running. Could not start it up automatically using the startup command in the /etc/iscsi/iscsid.conf iscsid.startup setting. Please check that the file exists or that your init scripts have started iscsid.\\niscsiadm: can not connect to iSCSI daemon (111)!\\niscsiadm: Cannot perform discovery. Initiatorname required.\\niscsiadm: Could not perform SendTargets discovery: could not connect to iscsid\\n, error exit status 20\""

@derekbit I reinstalled my cluster and i installed open-iscsi and nfs on every node to make sure and it still is having the same issue. I'll attach another support bundle.
longhorn-support-bundle_11dcf33e-557e-404f-8bae-0dc1c4eb2bcd_2022-04-23T09-14-51Z.zip
.

Hello @TobiasS1402,
I also saw the iSCSI issue in your longhorn-manager log.
Just found you installed the longhorn on Debian GNU/Linux 11 in LXC. Longhorn cannot work properly in LXC environment and please refer to https://github.com/longhorn/longhorn/issues/2585.

Thanks for your input @derekbit, I am closing the issue.


Release 3.0.0

@buzzdeee : I am not sure if you are getting notifications about new releases, so here'a a ping. :) It would be great if you could release a new OpenBSD package with v3.0.0. :)

@gdubicki  thanks for the notification.
I don't get update notifications, but usually look here: https://portroach.openbsd.org/sebastian reitenbach<EMAIL_ADDRESS>whenever time permits.
going to update puppetboard


Previous years (last year's) year is displayed in the various statements throughout SIMS

User story
a) As a student user, I want to see the actual previous years tax return year displayed in the statement so that I can verify that I did claim them.
b) As a student user, I want to see the actual previous years tax return year displayed for my partner inserted automatically to the text so that I know what tax return information I need to use.
c) As a student user, I want to see the actual previous years tax return year displayed for my dependant so that I can claim the appropriate amount.
d) As a student user, I want to see the actual previous years tax return year displayed for my financial information so that I can provide the most accurate information.
e) As a support user, I want to see the previous years tax return year displayed in the statement so that I can verify that my information is correct.
Acceptance Criteria
a) Student user: Family information > Add dependants section

[ ] Revise: "Declared on taxes due to a disability" to " Was this dependant claimed on your "<insert year>" tax return?"
[ ] Autoupdate to previous years tax return (last years) on each program year application in the "Was this dependant claimed on your "<insert year>" tax return?"

b) Student user Student Partner information

[ ] Revise "I have been authorized by my partner to submit their financial information including their net income (previous tax year's return's Line 15000 information)" to ""I have been authorized by my partner to submit their financial information, including their total reported income from their "<insert year>" tax return."
[ ] Revise "What was your partner’s income (as shown on line 15000 ... " to "Enter your partners reported total income from line 15000 of their "<insert year>" income tax return.  If they did not file a "<insert year>" income tax return, enter their total income from all sources both inside and outside of Canada."
[ ] Autoupdate to previous years tax return (last years) for "<insert year>" income tax return?"

Note: For this question insert year is added  to signify that the correct program year should be entered for each application

Ref #3342 re content fixes
c) Student user proof of dependant income

[ ] Autoupdate to previous years tax return (last years) for "[xx]*"

d) Student > Financial information section needs to have the same. See below

[ ] Autoupdate "2020" in four areas with previous years income tax return year "<insert year>" (TBD)

2020 Income tax return

line 15000 of your 2020 income tax return

if you did not file a 2020 income tax return

My total income in 2020 was

[ ] Autoupdate previous year for "2020" income tax return to "<insert year>" income tax return

[ ] Autoupdate previous year for 15000 of your "2020" income tax return to "<insert year>"

[ ] Autoupdate previous year for if you did not file a "2020" income tax return to "<insert year>"

[ ] Autoupdate previous year for My total income in "2020" was to "<insert year>"

Ref #3311 #162
e) Support user supporting information

[ ] Revise text "Enter your reported total income ....needed)" to "Enter your reported total income from line 15000 of your "<insert year>" income tax return. This income will be matched with Canada Revenue Agency records.  If you did not file a "<insert year>" income tax return, enter your total income from all sources both inside and outside of Canada."
[ ] Autoupdate to previous years tax return (last years) for "<insert year>" income tax return?"

Ref #3322 re content fixes
Additional context

If the dependant was claimed on the last year's tax return, the actual year needs to be displayed (TBD)
For this question the program year needs to be updated to previous years on each program year application (TBD)
@JerPearson for further explanation

@astridSABC Can you review this ticket to update it or see if its is still necessary after all the changes to dynamic year and years in questions in general.


Docs review

Inclusion of doc for datesDisabled (was in code but wasn't in docs)
Added description of all options in README.md

Great work @trestini! Thank you very much for your help!


Crash in Android 8.0.0

We have seen this from a Android 8.0.0 device in the while, apparently causing a complete crash of the app.
OS Version: Android 8.0.0 (R16NW.A520WVLSECTJ1)
Report Version: 104

Exception Type: Unknown (SIGSEGV)

Application Specific Information:
Segfault

Thread 0 Crashed:
0   libc.so                         0x7ee620f758        pthread_mutex_lock
1   libc.so                         0x7ee61c6b4c        readdir
2   split_config.arm64_v8a.apk      0x7ebac4eccc        idr
3   split_config.arm64_v8a.apk      0x7ebac4fb84        Java_com_aheaditec_talsec_1security_security_Natives_a
4   base.odex                       0x7ec50fcdfc        oatexec

We couldn't reproduce this issue. How often do you encounter this issue? Each startup, once in a while, etc.? How many devices are affected by this issue?
We have experienced a similar issue which should be fixed in the latest version. Could you specify which version do you use?

Hello.
We have successfully replicated given issue on the older version of freeRASP. Issue should be fixed in the newest version of freeRASP.
Talsec Team


PDFTK Fill form not working

Is there any issues with PDF form or I am doing something wrong?
I am using Mac on El Capitan
PdfForms::PdftkError - failed to fill form with command
"/usr/local/bin/pdftk" "/Users/bahire/Documents/NetbeansProjects/onboarding/lib/pdf_templates/IBC Resale Certificates.pdf" fill_form "/var/folders/7w/b15y7t8j6010_x6hkw53h93mzjc4qr/T/pdf_forms-fdf20150729-65729-13927kb" output "/Users/bahire/Documents/NetbeansProjects/onboarding/tmp/pdfs/IBC Resale Certificates_filled.pdf" flatten 2>&1
command output was:
failing form data has been saved to /var/folders/7w/b15y7t8j6010_x6hkw53h93mzjc4qr/T/20150729162322.fdf:

To diagnose this, could you take the generated fdf file (from the 'failing form data has been saved to' line) and

make sure it isn't empty
try to fill your form directly calling pdftk on the command line:

/usr/local/bin/pdftk path_to_your_form.pdf fill_form path_to_form_data.fdf output result.pdf

Running into the same problem now. The generated .fdf has all field data I wanted to fill, form filling just does not happen. Appending verbose to the command also does not print any output, the process is stuck doing nothing.
I'm running pdftk 2.02 on OS X 10.11 Beta (15A262e)

Does that mean even the command line from my comment above does not fill the form? I have just tried and on Yosemite with pdftk 2.02 it works like a charm. So might be a pdftk/OSX beta issue.
One other thing to try would be using XFDF instead of FDF - for that to happen pass data_format: 'Xfdf' to the initializer.

I've been doing form fills with pdftk for a while now, and prior to 10.11 beta everything was fine.  Once I installed the beta I can't execute anything from command line (or in my application -- it just hangs.  There's an issue with the beta.  I've filed a issue but no response from Apple.  I can run the same commands from my windows box and everything is fine too.  I'm not sure what's going on.

I've been doing form fills with pdftk for a while now, and prior to 10.11 beta everything was fine. Once I installed the beta I can't execute anything from command line (or in my application -- it just hangs. There's an issue with the beta. I've filed a issue but no response from Apple. I can run the same commands from my windows box and everything is fine too. I'm not sure what's going on.

Is there any logs I can give to make this work? Can I have PDFTK on virtual windows and fill from there ?

Yes, PDFtk on windows works of course.  And PDFtk still works on OS X 10.10.  I have a virtual windows box running and do my form fill testing there since upgrading to 10.11 beta.  I have a Stack Overflow question on PDFtk and OS X 10.11 that describes what I've done so far: http://stackoverflow.com/questions/32505951/pdftk-server-on-os-x-10-11

I have been having the same issue with fill_form, however generate_fdf seems to work fine now (was having a problem with it hanging). I have 10.11 public beta.

It seems like PDFtk generally has problems with OS X 10.11 (El Capitan): http://stackoverflow.com/questions/32505951/pdftk-server-on-os-x-10-11

@nerdinand Yes I ran into the same issue!

@ghost202 fill_form doenst work for me. It stucks at command and nothing happens.

@ghost202 fill_form doenst work for me. It stucks at command and nothing happens.

Those who are getting issues for PDFTK on El Capitan please read below updates. Worked for me.

Thank you for your patience. I have successfully tested this pdftk installer and binary on OS X 10.11, El Capitan:
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg
I will update our PDF Labs site soon to reflect this update.
If you already have pdftk installed from the old installer, this should install right on top of it without a problem -- it shouldn't be necessary to remove the old pdftk before installing this one.
Note that this installer/binary has not yet been tested on older versions of OS X.
Please let me know how this works for you.
I want to thank Aaron for opening this thread and for bringing helpful attention to the problem we were having with the build tools. I also want to thank the MacPorts team for their professional and timely work!
Best Regards-
Sid Steward, PDF Labs

This fix is in: http://stackoverflow.com/questions/32505951/pdftk-server-on-os-x-10-11

The solution I have updated on ticket is same and I just tested and now its working. Its a lifesaver. :)

I'm still having this issue with the latest binary on the website. I can confirm that the OSX downloader on the website does not work but the above linked 10.11 binary does work great.
Should this be included in the downloads page?

you're right, I added it to the installation section of the readme.

I am getting same issue with the OS-X 10.11.4. Its working with 10.11.5 - beta version. I am trying installing PDFTK with brew to check if that makes any difference.
Anyone here with the same issue?

@bhushangahire I just checked and i'm getting the same hanging issue with 10.11.4. I can't remember when I upgraded. I'm also using the last release in the above 10.11 URL from a while back. In the mean time I might just run it in an Ubuntu VM for development.

Yes I am doing the same now. Setting up the Vagrant for dev env. One of my Mac is on 10.11.5 Beta which works.

Oh nice! I'll just wait it out then 😄  Thanks! 👍

I have this with centos but it didnt not worked for me. See if its working for you. I am creating one with Ubuntu now. https://github.com/bhushangahire/vagrant-centos-rails-passenger

I recently found out that its also not working on CentOS7 version. But works on Cent OS 6

nothing this gem can do anything about. Please refer to pdflabs.com for supported operating systems and instructions about how to build from source. Or use a Linux distribution that provides a working pdftk package (Debian is known to work).


Revert "Avoid excessive database traffic when doing pull replications"

Reverts cloudant/sync-android#225 due to a bug in the detection of previous revisions during a transaction. See slack history for full information.

+1


SQS Message Attributes are not being passed as job params

An example of a message from beanstalk with message attributes. These are not being passed to Jenkins jobs as params. We also checked error logs for hudson security and there was no mention that they were even attempted.
It is the expectation that sqs_ is prefixed to each of these message attribute Names correct?
Environment -> sqs_Environment ?
Only the default params are being passed:
sqs_body
sqs_messageId
sqs_bodyMD5
sqs_receiptHandle

There definitely seems like something is not functioning appropriately in SQSTrigger.java

When we read the message in the SQS Queue, we get a json with a dict called "Records". Is there a way to get the Message Body as a dict in Jenkins so that we can access Records details ?? That would be very helpful while using the same queue for different jobs.

Never Mind. I got it through a previous issue https://github.com/jenkinsci/aws-sqs-plugin/issues/16. Im gonna try this and update here.
P.S. the issue 16 is still open


Chose fee: we shoudl show the L-BTC logo, not the one of the asset we are sending

https://www.loom.com/share/ad654c3f4e0e4f3b8935799cd493c4af

I actually don't understand the value 0.39243994 shown. It seems to me that the logo is actually correct because you're sending 1000 fUSD. I just would have expected value 1000.00 under that logo.
Am i missing something?

According to zeplin, the logo and balance should be the one of the selected fee asset. https://zpl.io/VKXeeYE
Note that the "not selected yet" case isn't handled however in zeplin, I would let L-BTC by default and change logo/balance if USDT or other assets are selected

Agreed, i would also show the fee amount to pay in LBTC by default, even if no asset selected yet


Switch to new access logger and add JSON format

Following on from #1408 this PR adds the remaining functionality (and tests) for access logging including appenders for the current (extended common) log format and JSON.

Hi @emilevauge and @rjshep,
The idea behind #1381 was to log X-Forwarded-* request headers if present.
Theses headers (‘X-Forwarded-For: ’, ‘X-Forwarded-Proto: <original_proto>’ and ‘X-Forwarded-Host: <original_host>’) are set by upstream servers when traefik is behind a reverse-proxy or a load-balancer.
These are supposed to be superseded by the Forwarded header but I’ve never seen it in the wild.
From what I see in the new access logger, these headers could be stored in the Logdata structure if present to be used in a custom log format if wanted.

@mildis Yes the forwarded headers could be added into the CoreLogData map and then set within access log.Logger.ServeHTTP.  Rather than me adding more to what's already a large PR, can I suggest you wait until this PR is accepted and merged and then submit your own PR with the necessary changes?

@rjshep Yes I'm fine with that. I'm new to Go : it will also be easier for me to get where should I change the code once integrated.

Thanks for the comments @timoreimann.  I'll work through the necessary changes over the next day or so.

Hey @rjshep, we just tagged v1.3.0-rc1. As we had issues while reporting branch v1.2 into master due to your PR #1408, we decided to revert it in #1541.
We will re-apply it in the coming days.
In the meantime, please don't rebase this PR for now

@rjshep Travis CI seems to hang -- it sometimes does and only seems to get fixed by another (hash-modifying) push.
Maybe you can take the opportunity to squash the commits.

@rjshep IIRC, you should refrain from rebasing until #1571 merges. I'll make sure I review that one by end of tomorrow too.

We are ready, #1571 is merge! It's time to rebase! 😃

@rjshep a nice trick to push a hash-changing commit without actually changing content is to do this:
git commit --amend --no-edit

Thanks @timoreimann that's what I did - Googling suggested it too!

Due to SemaphoreCI, I close and reopen the PR.

@rjshep Awesome job 🎉
Could you squash your commits?

@rjshep
After a long discussion with other maintainers, I'm very sorry to announce that we will finally not merge this PR.
Let me explain why:

It is really big: ~2000 lines added is really hard to review. We (maintainers) need to be confident in each PR we merge because we need to maintain this code later. For the years to come.
It is really low level. Reimplementing all the log appender/formatter things into Traefik is not what we prefer. A lot of libraries are doing this very well and we think we should not reinvent the wheel. We would also prefer not having a custom JSON marshaller and instead marshall a simple struct.
We don't really need the complexity of being able to configure custom fields. At least in the first iteration. Most people will probably just want to push the whole logs into a log aggregator.
We realized that we can achieve the same thing using Logrus but with much less code, more flexibility, and better support. We already use it for application logs. It offers a simple way to manage structured logs and already has a JSON formatter. Besides, Logrus offers several hooks that allow to export logs to a lot of useful backends (Elasticsearch, Sentry, Syslog...).

We failed.
We failed because our process failed.
We didn't took the time to discuss on a real design review between maintainers before making code reviews.
You work really hard on following our recommandations after each reviews.
As your PR was really big, we couldn't took as much time as it was required to deeply review it.
We should have told you on the first day that we wouldn't merge it because of the size.
We failed. And I'm really sorry for this.
We will not make the same mistake again in the future (for sure), and we are working on it: the process is being reviewed, we will automate a lot of time consuming tasks, this will give more time to make deep reviews, etc.
We would perfectly understand if you were angry at us as you made a really great job and we sucked...
Please accept our apologies, we are small team, and will get better at this.

To be continued here #1647


Return NaN instead of false

As stated in #17, should we respect what Number() did?

By the way I think we can return NaN on converting [], too...

Throwing a proper error is better in my opinion, but returning NaN is fine as well. We can ignore the [] case since there is no case in the source code that the argument will be an array. Also, iirc, [] ~= "" so +[] = +"" = 0.

I think returning NaN for the function that return string is inappropriate. Number() returns NaN because NaN is a reserved number that indicate invalid number, but it still has number type. It is some sort of in-band signaling. If you want your function to be consistent like Number(), you can use "" (zero-length string) as an error value. By this way, it has the same string type, has a value that can't occur from a valid input and you can detect it with a simple condition. Anyway, JavaScript is a dynamic-typed language, so you can return anything of any type you want. For that reason, using false is fine considering nowadays we have === operator to check for it.

that's a good point, maybe we can just use false like before 👌

For proper error we can make it opt-in like Baht.throwError = true


Use poetry, update dependencies

I've switched to poetry for version management
I've updated the support dependencies
I've refactored the code to work with the newer APIs, particularly of bayesian optimziation

@Ternion1063  - I seem to have vastly reduced permissions on this repository. can you please update so I have at least maintainer rights? I need to be able to close issues and merge PRs to maintain this software.

You should be added now as a maintainer, let me know if this doesn't work or if there's any other repositories to be added to.


I want to improve home page UI

The design here is very basic using new templates will make it a better home page and will make better impact

@Vaishnavigowda27 can you show some sample which you going to implement


a chat component

.

Preview UI
Here is the updated Vue code for the chat component based on your requirements:
In this updated code:

The Chat component is used to wrap the chat messages and input field.
The ChatMessage component is used to display individual chat messages.
The ChatInput component is used to allow users to input and send messages.
The messages array holds the chat messages with sender information.
The sendMessage function adds a new user message to the chat and simulates a bot response after 1 second.

Preview UI
Here is the Vue code for the chat component based on your requirements:
This code creates a chat component with user and bot messages. Users can send messages through the chat input, and bot responses are simulated after a short delay.

Preview UI
Here is the updated Vue code for the chat component based on your requirements:
In this updated code:

The Chat component is used to wrap the chat messages and input field.
The ChatMessage component is used to display each chat message with different types (received or sent).
The ChatInput component is used to allow users to input and send messages.
The messages array holds the chat messages with their types (received or sent).
The sendMessage function adds a new sent message to the chat.

Preview UI
Here is the Vue code for the chat component based on your requirements:
In this implementation, the chat component includes a list of messages with alternating senders (user and bot) and an input field for sending new messages. The sendMessage function adds a new user message to the chat and simulates a bot response after 1 second.

Preview UI
Here is the Vue code for a chat component based on your requirements:
In this chat component, users can send messages and receive responses from a bot. The messages are displayed in a chat interface with alternating sender styles.

Preview UI
Here is the updated Vue code for the chat component based on your requirements:
In this updated code:

The Chat component is used to wrap the chat messages and input field.
The ChatMessage component is used to display chat messages with different senders (user or bot).
The ChatInput component is used to allow users to input and send messages.
The messages array holds the chat messages.
The sendMessage function adds a user message to the chat and simulates a bot response after a delay.

Preview UI
Here is the Vue code for the chat component based on your requirements:
In this implementation, the chat component includes a list of messages with alternating senders (user and bot) and an input field for sending new messages. The sendMessage function adds a new user message to the chat and simulates a bot response after 1 second.

x Build failed in 949ms
error during build:
Error: [vite:load-fallback] Could not load /home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat (imported by src/Preview.vue): ENOENT: no such file or directory, open '/home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat'

x Build failed in 1.09s
error during build:
Error: [vite:load-fallback] Could not load /home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat (imported by src/Preview.vue): ENOENT: no such file or directory, open '/home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat'

x Build failed in 1.03s
error during build:
Error: [vite:load-fallback] Could not load /home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat (imported by src/Preview.vue): ENOENT: no such file or directory, open '/home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat'

x Build failed in 1.05s
error during build:
Error: [vite:load-fallback] Could not load /home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat (imported by src/Preview.vue): ENOENT: no such file or directory, open '/home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat'

x Build failed in 1.08s
error during build:
Error: [vite:load-fallback] Could not load /home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat (imported by src/Preview.vue): ENOENT: no such file or directory, open '/home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat'

x Build failed in 1.03s
error during build:
Error: [vite:load-fallback] Could not load /home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat (imported by src/Preview.vue): ENOENT: no such file or directory, open '/home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/components/ui/chat'

Preview UI


Remove some null checks for optional SplunkIO parameters

A lot of the SplunkIO parameters are supposed to be optional parameters, yet there are checks to make sure these parameters are not null. This PR will rid of these erroneous null checks.

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

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

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

cc @johnjcasey for a 2nd look / merging this

got it, sgtm


win now shows after everything is loaded; no white empty box anymore

adding show: false to the window options & calling win.show() on did-finish-load makes the window wait until everything is loaded.

Hi there!
I don't know if this change is good or bad, because RuneBook is pretty slow at loading window contents so it takes a few seconds to be fully operational. While it is a good thing from an esthetic perspective to show the window only when it's ready, I don't think it's a good thing for the overall user experience, because launching it takes more than expected (apparently); instead, showing the empty window as a placeholder might help reducing the perceived waiting time.
That being said, what's your main motivation behind this proposed change?

I've committed this already on my pull request. It was a truly bug

Ok, not seeing anything for a longer time is not that nice too. But what about a small loading window?
My problem is, that whenever i launch the program, it really feels like a website, which it shouldn't in my opinion. When you start seeing the ui come up, it also takes some time until everything is ready.

What about a splash screen with the RuneBook logo?

Splashscreen is now added to my master branch.


CCJSqlParserUtil.parse && return AND

Describe the bug
Version:3.1
Database:Postgres
Postgres database has some spec symbol like "&&" to do some operate，But,  CCJSqlParserUtil.parse method parse result is change to "AND", How to resovle or work around
To Reproduce
Steps to reproduce the behavior:

Example SQL: SELECT * from Table WHERE (field_1 && ?)
Parsing this SQL using CCJSqlParserUtil.parse with this statements
Return SelectBody is SELECT * from Table WHERE (field_1 AND ?)

how to resovle

how to resolve

JSqlParser at the moment parses && directly into an AndExpression.  It does not yet preserve the input syntax. I will look into this.

enough，thx


How to replicate Windows/Phone splash screen

I've tried renaming my splash to include -Windows and -Phone in the filename, but I can't get it to work. What's the key to gettinig separate splash screens looked up?

This doesn't appear to be a question about a sample in this repo. You can open a support case with our Developer Support team for general platform support questions:

Visit http://aka.ms/storesupport and sign-in with your Microsoft account
Under the “App Development” section choose "Windows 10 universal app development", then choose the appropriate problem type and category to get engaged through a formal support channel.

I am referring to https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/SplashScreen/
In https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/SplashScreen/cs/Assets, we see splash-*-sdk.png
In https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/SplashScreen/cs/Package.appxmanifest#L19, only splash-sdk.png is referred to. I'm curious how that was triggered. I can't find any documentation of it.

It may just be junk left over from test versions of the sample.

It works on desktop, at least. The filenames don't seem to be getting transformed during the build process (I see the two variants in the Appx directory). I'm hoping to use this to get a portrait splash screen on IoT Core.

From what I can tell, it's just a leftover from the Windows 8 samples. The desktop version of the sample says in its Package.appxmanifest
<m2:SplashScreen Image="Assets\splash-Windows-sdk.png" ...

and the Phone version says
<m3:SplashScreen Image="Assets\splash-Phone-sdk.png"

so it's a compile-time thing not a runtime thing.

Weird. I can't find any of that. Do you mind telling me where to find it?
I packaged up the sample and then dove into the appx files, and I see
<uap:SplashScreen Image="Assets\Splash-sdk.png" BackgroundColor="#00B2F0"/>
inside AppxManifest.xml for both x86 and arm.
Thanks!

I'm referring to the old Windows 8 sample, which the Windows 10 sample was copied from.

Ok, I've now deployed to IoT Core, and verified the Windows splash is used, not the Phone splash, so this is not the secret tool I was hoping for. Thanks for the help.


Feature: Token Classification

Closes #12

Codecov Report
Attention: Patch coverage is 0% with 698 lines in your changes are missing coverage. Please review.

Project coverage is 0.00%. Comparing base (1d92562) to head (f6bb1d9).

Files
Patch %
Lines

src/models/bert/token_classification/model.rs
0.00%
101 Missing :warning:

src/models/bert/text_classification/model.rs
0.00%
94 Missing :warning:

...ce_classification/token_classification/training.rs
0.00%
89 Missing :warning:

src/models/bert/text_classification/config.rs
0.00%
59 Missing :warning:

src/models/bert/token_classification/config.rs
0.00%
59 Missing :warning:

src/bin/infer.rs
0.00%
45 Missing :warning:

...nce_classification/token_classification/batcher.rs
0.00%
44 Missing :warning:

...ence_classification/text_classification/batcher.rs
0.00%
40 Missing :warning:

src/bin/train.rs
0.00%
36 Missing :warning:

...e_classification/token_classification/inference.rs
0.00%
31 Missing :warning:

... and 10 more

Additional details and impacted files
@@          Coverage Diff           @@
##            main     #19    +/-   ##
======================================
  Coverage   0.00%   0.00%
======================================
  Files         14      23     +9
  Lines        690    1148   +458
======================================
- Misses       690    1148   +458

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Enable/Disable users

Issue/Task Number: 446
Closes #446
Overview
This PR adds the possibility to disable end users and admins.
Changes

Add /user.enable_or_disable and /admin.enable_or_disable

Implementation Details
The implementation closely follows the way wallets can be enabled/disabled.
When a user is disabled, all its authentication_tokens are invalidated
Usage
To enable/disable a user call:

/user.enable_or_disable with

{
    "enabled": false,
    "id": "some_id"
}

or
{
    "enabled": false,
    "provider_user_id": "some_id"
}

To enable/disable an admin call:

/admin.enable_or_disable with

{
    "enabled": false,
    "id": "some_id"
}

Impact
Run migrations to add the enabled field to users.
New APIs.

Please check again


ModelAdmin search/filter destroys admin interface when admin locale is set to Czech or Slovak language

When the admin interface is in Czech (cs) or Slovak (sk) language, searching for a dataobject using filter in a custom ModelAdmin and clicking on a found entry completely breaks admin interface, e.g. left menu is doubled.
This problem is probably applicable for other languages as well, I just checked these two.
However, there is no issue when locale is set to english/german etc.

Fixed in #3564


Is this package compatible with ROS kinetic?

Hi.
I'm using ROS kinetic, is this package compatible with kinetic?
I'm having trouble catkin_make.
If it doesn't support kinetic, what do I need to change to be able to use kinetic?

Hi,
the package was developed under ROS Noetic.
The problem to be used in another ROS distro, like Kinetic, is that the nav_core::BaseLocalPlanner plugin requires different parameters in its constructor.
For Kinetic, a tf::TransformListener is required whereas a tf2_ros::Buffer is employed in the Noetic plugin.
So, if you want to use the package in Kinetic, you would need to recode the class sfw_planner_ros (which inherits from nav_core::BaseLocalPlanner).

Thank you very much.


Update fabricbot.json to have new contacts for services

Changed GitHub contacts for ARM, ARM subservices, and API Management per request.

@lilyjma Can you merge this or close if no longer relevant


nixos/systemd-udev-trigger: don't restart on upgrades

Motivation for this change
Closes #86123
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Are changes to udev rules still updated with this change?

@matthewbauer Figured out this issue is only happens on Nvidia Optimus setup. Will need to do more research. Closing for now.


Added test_rated_point_sum

Codecov Report

Merging #195 into master will increase coverage by 3.35%.
The diff coverage is 75%.

@@            Coverage Diff             @@
##           master     #195      +/-   ##
==========================================
+ Coverage   63.06%   66.42%   +3.35%
==========================================
  Files          15       15
  Lines         685      685
  Branches       99       99
==========================================
+ Hits          432      455      +23
+ Misses        162      137      -25
- Partials       91       93       +2

Impacted Files
Coverage Δ

atcoder-problems-backend/src/sql/models.rs
11.11% <0%> (ø)
:arrow_up:

...tcoder-problems-backend/src/sql/rated_point_sum.rs
92% <100%> (+92%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0e71b49...cb12921. Read the comment docs.


"[rtsp source] ERR: invalid transport header: invalid source ()" failure when server is opening an RTSP stream from a camera introduced at 0.18.0.

Which version are you using?
v0.17.17 -> 0.18.0 and higher
Which operating system are you using?

[X] Linux amd64 standard

Describe the issue
When using RTSP camera (the camera is a little old) the server used to be able to open the stream and proxy it. Some change introduced to version 0.18.0 now throws a "[rtsp source] ERR: invalid transport header: invalid source ()" and server will not proxy the stream.
The camera stream is being authenticated using digest authentication in the RTSP URI.
I went back through several of the releases and the issue appeared at the transition from 0.17.17 to 0.18.0.
Not sure if this is a bug or just an unsupported camera or a camera that doesn't return the correct information. Adding it as a bug because it used to work.
Describe how to replicate the issue

# rtsp-simple-server.yml
paths:
  garage:
    source<EMAIL_ADDRESS>
VLC can open this URI.
Start rtsp-simple-server
Obfuscated some of the parameters with XXXX, not sure which ones are important.
This is the server debug log of a failing open, a subset of a working open/proxy is further below.
pkerney@quartz:~/rtsp$ ./rtsp-simple-server rtsp-simple-server.yml.good
2022/06/10 13:34:11 INF rtsp-simple-server v0.18.0
2022/06/10 13:34:11 INF [metrics] listener opened on <IP_ADDRESS>:9998
2022/06/10 13:34:11 DEB [path garage] created
2022/06/10 13:34:11 DEB path manager created
2022/06/10 13:34:11 INF [path garage] [rtsp source] started
2022/06/10 13:34:11 INF [RTSP] listener opened on :7554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2022/06/10 13:34:11 DEB [path garage] [rtsp source] connecting
2022/06/10 13:34:11 INF [RTMP] listener opened on :1935
2022/06/10 13:34:11 INF [HLS] listener opened on :8888
2022/06/10 13:34:11 INF [API] listener opened on <IP_ADDRESS>:9997
2022/06/10 13:34:11 DEB [path garage] [rtsp source] c->s OPTIONS rtsp://<IP_ADDRESS>/live/0/MAIN RTSP/1.0
CSeq: 1
User-Agent: gortsplib

2022/06/10 13:34:11 DEB [path garage] [rtsp source] s->c RTSP/1.0 200 OK
CSeq: 1
Cache-Control: no-cache
Content-Length: 0
Public: OPTIONS, DESCRIBE, SET_PARAMETER, SETUP, PLAY, PAUSE, TEARDOWN, GET_PARAMETER
Server: RtpRtspFlyer

2022/06/10 13:34:11 DEB [path garage] [rtsp source] c->s DESCRIBE rtsp://<IP_ADDRESS>/live/0/MAIN RTSP/1.0
Accept: application/sdp
CSeq: 2
User-Agent: gortsplib

2022/06/10 13:34:12 DEB [path garage] [rtsp source] s->c RTSP/1.0 401 Unauthorized
CSeq: 2
Server: RtpRtspFlyer
WWW-Authenticate: Digest realm="turing",nonce="b6d9516e9XXXXd69df3222"
WWW-Authenticate: Basic realm="/"

2022/06/10 13:34:12 DEB [path garage] [rtsp source] c->s DESCRIBE rtsp://<IP_ADDRESS>/live/0/MAIN RTSP/1.0
Accept: application/sdp
Authorization: Digest username="XXXX", realm="turing", nonce="b6d9516XXXX9df3222", uri="rtsp://<IP_ADDRESS>/live/0/MAIN", response="78acb1XXXX5c6e673"
CSeq: 3
User-Agent: gortsplib

2022/06/10 13:34:12 DEB [path garage] [rtsp source] s->c RTSP/1.0 200 OK
CSeq: 3
Content-Base: rtsp://<IP_ADDRESS>/live/0/MAIN
Content-Length: 493
Content-Type: application/sdp
Server: RtpRtspFlyer

v=0
o=RTSP 1659513XXXX16416 16595XXXX61809 IN IP4
s=RTSP Server
e=NONE
t=0 0
a=recvonly
a=x-dimensions:1920,1080
m=video 0 RTP/AVP 96
c=IN IP4 <IP_ADDRESS>
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64002a;sprop-parameter-sets=Z2QAKqwsaoHgCJ+WbgICAgQ=,aO4xshs=
a=Media_header:MEDIAINFO=494D4B48010100000400010000000000000000000000000000000000000000000000000000000000;
a=appversion:1.0
b=AS:5000
a=control:rtsp://<IP_ADDRESS>/live/0/MAIN/trackID=0

2022/06/10 13:34:12 DEB [path garage] [rtsp source] c->s SETUP rtsp://<IP_ADDRESS>/live/0/MAIN/trackID=0 RTSP/1.0
Authorization: Digest username="XXXX", realm="turing", nonce="b6d9516XXXXd69df3222", uri="rtsp://<IP_ADDRESS>/live/0/MAIN/trackID=0", response="b3a04ae7XXXX9ee411e"
CSeq: 4
Transport: RTP/AVP;unicast;client_port=32560-32561;mode=play
User-Agent: gortsplib

2022/06/10 13:34:12 DEB [path garage] [rtsp source] s->c RTSP/1.0 200 OK
CSeq: 4
Cache-Control: no-cache
Server: RtpRtspFlyer
Session: 830717776
Transport: RTP/AVP/UDP;unicast;source=;client_port=32560-32561;server_port=3046-3047;ssrc=45dcb578

2022/06/10 13:34:12 INF [path garage] [rtsp source] ERR: invalid transport header: invalid source ()
^C2022/06/10 13:34:16 INF shutting down gracefully
2022/06/10 13:34:16 INF [path garage] [rtsp source] stopped
2022/06/10 13:34:16 DEB [path garage] destroyed (terminated)
2022/06/10 13:34:16 INF [API] listener is closing
2022/06/10 13:34:16 INF [RTSP] listener is closing
2022/06/10 13:34:16 DEB path manager is shutting down
2022/06/10 13:34:16 INF [HLS] listener is closing
2022/06/10 13:34:16 INF [RTMP] listener is closing
2022/06/10 13:34:16 INF [metrics] listener is closing
2022/06/10 13:34:16 INF waiting for external commands
pkerney@quartz:~/rtsp$

For a good session with v0.17.17 we get
2022/06/10 13:48:38 DEB [path garage] [rtsp source] s->c RTSP/1.0 200 OK
CSeq: 4
Cache-Control: no-cache
Server: RtpRtspFlyer
Session: 348403432
Transport: RTP/AVP/UDP;unicast;source=;client_port=16176-16177;server_port=3050-3051;ssrc=eeb7ed41

2022/06/10 13:48:38 INF [path garage] [rtsp source] ready
2022/06/10 13:48:38 DEB [path garage] [rtsp source] c->s PLAY rtsp://<IP_ADDRESS>/live/0/MAIN RTSP/1.0
Authorization: Digest username="XXXX", realm="turing", nonce="7cbddc704XXXXa6c2f6d2", uri="rtsp://<IP_ADDRESS>/live/0/MAIN", response="db2a93XXXX1f1cc41e9"
CSeq: 5
Range: npt=0-
Session: 348403432
User-Agent: gortsplib

2022/06/10 13:48:38 DEB [path garage] [rtsp source] s->c RTSP/1.0 200 OK
CSeq: 5
Server: RtpRtspFlyer
Session: 348403432

2022/06/10 13:49:08 DEB [path garage] [rtsp source] c->s GET_PARAMETER rtsp://<IP_ADDRESS>/live/0/MAIN RTSP/1.0
Authorization: Digest username="XXXX", realm="turing", nonce="7cbddc704XXXXc2f6d2", uri="rtsp://<IP_ADDRESS>/live/0/MAIN", response="37f53ffff3XXXXb2397bdb"
CSeq: 6
Session: 348403432
User-Agent: gortsplib

2022/06/10 13:49:08 DEB [path garage] [rtsp source] s->c RTSP/1.0 0

2022/06/10 13:49:38 DEB [path garage] [rtsp source] c->s GET_PARAMETER rtsp://<IP_ADDRESS>/live/0/MAIN RTSP/1.0
Authorization: Digest username="XXXX", realm="turing", nonce="7cbddc70XXXXca6c2f6d2", uri="rtsp://<IP_ADDRESS>/live/0/MAIN", response="37f53fffXXXX2397bdb"
CSeq: 7
Session: 348403432
User-Agent: gortsplib

2022/06/10 13:49:38 DEB [path garage] [rtsp source] s->c RTSP/1.0 0

Did you attach the server logs?

yes - inline above
Did you attach a network dump?

no

Tried v0.19.1-18-gf41e595_linux_amd64.tar.gz from another thread and issue is resolved.

fixed in v0.19.2.


add TFTransformer exmaple and restructure

We can move this PR here: https://github.com/databricks/spark-deep-learning/pull/106


Hub namespace missing in latest release

Can you share more information, like a screenshot or the error log? I can't reproduce.

Closing due to lack of activity.


Update the commands doc to explain SWs

R: @addyosmani
My attempt to explain what's going on with service workers in the different serving environments.
Closes #770

LGTM. Thanks Jeff!


Failed tasks when scaling composer

After a discussion with @mik-laj it seems that there's one problematic scenario when task was executed but will be tried for a next execution. Here are probably cases:
✅ send task > msg ack SUCCESS > execute SUCCESS
✅ send task > msg ack SUCCESS > execute FAILED
✅ send task > execute SUCCESS > msg ack SUCCESS (ack late)
✅ send task > execute FAILED > msg ack FAILED  (ack late)
❌ send task > execute SUCCESS > msg ack FAILED  (ack late)
In cases 1-3, the task is removed from a queue and is properly executed in Airflow (fail or SUCCESS no matter). In case 4, task will be rescheduled and the second execution will fail too because state FAILED (set by first execution) will not be proper state for execution. So, no harm done.
In case 5, task is executed and marked as SUCCESS in Airflow, however the msg is still in a queue (because of ack fail), thus a worker will try to consume it one more time. And then the second execution of the task will change it state to FAILED because state SUCCESS (set by first execution) is not a proper state for execution. This change of state is harmful because something was done (like dumping data) but Airflow will treat this as not done.
Other cases like ack msg and no task execution are not as problematic because the task's state will be set to failed due to time out.
The solution to case 5 seems to make worker to ignore already executed tasks.

@potiuk @mik-laj WDYT?

I am not sure it's a huge problem. By definition all tasks of airflow are idempotent so there is no harm in doing something the second time (other than time needed). It's one of the reason why we insist so much on the idempotency of the tasks.
Note that checking the state at sending task time does not solve all the problems. There is also another case - probably rare but possible - race condition due to parallelism of execution. We can hit the case when ack failed, task succeeded but it has not yet recorded the state in the database and we retry it in the meantime (and state is recorded just after we sent retry task).
This is the scenario:
send_task -> execute SUCCESS (but status not yet recorded in the DB - in progress) -> msg ack Failed() -> start_retrying (checked status in the DB)  -> (executing tasks records SUCCESS in the DB) -> retrying
Not sure if we can do anything about that one though (and whether it is needed due to idempotency of Airflow tasks) .
The only thing that comes to my mind is to double-check the status at execution time by the executing task (not by the sender) - so do what you described in 5. but on the receiving side.
So if we run the task and find that state is set to success, we should immediately finish with state = SUCCESS. Maybe that's a better solution ?

I am not sure it's a huge problem. By definition all tasks of airflow are idempotent so there is no harm in doing something the second time (other than time needed). It's one of the reason why we insist so much on the idempotency of the tasks.

Idempotency is not a problem here (at least not main problem). The problem is that airflow changes state of already executed task and that in my opinion is wrong.
Whole schedule - execute cycle has completed and task A is SUCCESS. But then it happens that message "hey execute task A" is still in queue (due to some error). And because worker is "dumb" he takes the task because "whoa, here's something I have to consume". And he tries to consume but he can't so he changes the state of A to FAILED.
The proper scenario in for this case assumes that worker is smart and do "whoa, here's something I have to consume but I already did that, so I will just acknowledge it". No state change.

So if we run the task and find that state is set to success, we should immediately finish with state = SUCCESS. Maybe that's a better solution ?

That would required some change to TI deps checks. On the other hand we can implement "custom pre-check" that will be run by worker before execution.


[WIP] Change Ubuntu xenial packages to allow either docker-engine or docker.io

Follows #1171

Depends on Docker >= 1.9

Drops the future-proofing against future Docker releases

The Ubuntu docker.io/xenial-updates=1.12 package seems to work nicely:
docker.io:
  Installed: 1.12.1-0ubuntu13~16.04.1
  Candidate: 1.12.1-0ubuntu13~16.04.1
  Version table:
 *** 1.12.1-0ubuntu13~16.04.1 500
        500 http://mirrors.digitalocean.com/ubuntu xenial-updates/universe amd64 Packages
        100 /var/lib/dpkg/status
     1.10.3-0ubuntu6 500
        500 http://mirrors.digitalocean.com/ubuntu xenial/universe amd64 Packages
kontena-server:
  Installed: 0.16.0.dev4-1
  Candidate: 0.16.0.dev4-1
  Version table:
 *** 0.16.0.dev4-1 100
        100 /var/lib/dpkg/status
kontena-agent:
  Installed: 0.16.0.dev4-1
  Candidate: 0.16.0.dev4-1
  Version table:
 *** 0.16.0.dev4-1 100
        100 /var/lib/dpkg/status

With the docker engine getting the right options etc:
root     11834  0.7  6.7<PHONE_NUMBER>8 ?        Ssl  12:58   0:02 dockerd -H fd:// --insecure-registry="<IP_ADDRESS>/19"

Need to test with the docker.io/xenial=1.10 package, which I ssume is probably going to be broken..

We need some kind of Breaks for docker.io=1.10* due to weave breakage with the Go 1.6 Docker engine (LP#1574904). Not sure how to express a conflict with a range of package versions though. This approach does not work:
Breaks: docker.io (>= 1.10), docker.io (<< 1.11)
Because it's or, and breaks on pretty much any docker.io version:
apt policy docker.io
docker.io:
  Installed: 1.10.3-0ubuntu6
  Candidate: 1.12.1-0ubuntu13~16.04.1
  Version table:
     1.12.1-0ubuntu13~16.04.1 500
        500 http://mirrors.digitalocean.com/ubuntu xenial-updates/universe amd64 Packages
 *** 1.10.3-0ubuntu6 500
        500 http://mirrors.digitalocean.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status

dpkg -i deb/kontena-agent_0.16.0.dev6-1_all.deb deb/kontena-server_0.16.0.dev6-1_all.deb
dpkg: regarding .../kontena-agent_0.16.0.dev6-1_all.deb containing kontena-agent:
 kontena-agent breaks docker.io (>= 1.10)
  docker.io (version 1.10.3-0ubuntu6) is present and installed.

dpkg: error processing archive deb/kontena-agent_0.16.0.dev6-1_all.deb (--install):
 installing kontena-agent would break docker.io, and
 deconfiguration is not permitted (--auto-deconfigure might help)
dpkg: regarding .../kontena-server_0.16.0.dev6-1_all.deb containing kontena-server:
 kontena-server breaks docker.io (>= 1.10)
  docker.io (version 1.10.3-0ubuntu6) is present and installed.

dpkg: error processing archive deb/kontena-server_0.16.0.dev6-1_all.deb (--install):
 installing kontena-server would break docker.io, and
 deconfiguration is not permitted (--auto-deconfigure might help)
Errors were encountered while processing:
 deb/kontena-agent_0.16.0.dev6-1_all.deb
 deb/kontena-server_0.16.0.dev6-1_all.deb

apt install docker.io/xenial-updates && apt policy docker.io
docker.io:
  Installed: 1.12.1-0ubuntu13~16.04.1
  Candidate: 1.12.1-0ubuntu13~16.04.1
  Version table:
 *** 1.12.1-0ubuntu13~16.04.1 500
        500 http://mirrors.digitalocean.com/ubuntu xenial-updates/universe amd64 Packages
        100 /var/lib/dpkg/status
     1.10.3-0ubuntu6 500
        500 http://mirrors.digitalocean.com/ubuntu xenial/universe amd64 Packages

Gives:
dpkg -i deb/kontena-agent_0.16.0.dev6-1_all.deb deb/kontena-server_0.16.0.dev6-1_all.deb
dpkg: regarding .../kontena-agent_0.16.0.dev6-1_all.deb containing kontena-agent:
 kontena-agent breaks docker.io (>= 1.10)
  docker.io (version 1.12.1-0ubuntu13~16.04.1) is present and installed.

dpkg: error processing archive deb/kontena-agent_0.16.0.dev6-1_all.deb (--install):
 installing kontena-agent would break docker.io, and
 deconfiguration is not permitted (--auto-deconfigure might help)
dpkg: regarding .../kontena-server_0.16.0.dev6-1_all.deb containing kontena-server:
 kontena-server breaks docker.io (>= 1.10)
  docker.io (version 1.12.1-0ubuntu13~16.04.1) is present and installed.

dpkg: error processing archive deb/kontena-server_0.16.0.dev6-1_all.deb (--install):
 installing kontena-server would break docker.io, and
 deconfiguration is not permitted (--auto-deconfigure might help)
Errors were encountered while processing:
 deb/kontena-agent_0.16.0.dev6-1_all.deb
 deb/kontena-server_0.16.0.dev6-1_all.deb

I'll leave this at the following:
Depends: docker-engine (>= 1.9) | docker.io (>= 1.11), resolvconf
Any hypothetical docker.io version 1.9 packages might work, but I don't think those exist in any distro release (trusty and jessie are at 1.6). The Debian/Ubuntu docker.io package version 1.10 is broken. The Ubuntu docker.io package version 1.11 is fixed:

However, after these things, when using the new docker.io package, I could no longer observe the problems I saw with weave. Success!

AFAIK any upstream docker-engine package should work, because they were built with Go 1.5 up to and including the 1.11 version. The 1.12 version is built with Go 1.6, but it includes the workaround for older Docker clients.
`apt-cache policy docker-engine
docker-engine:
  Installed: 1.11.2-0~xenial
  Candidate: 1.12.2-0~xenial
  Version table:
     1.12.2-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
     1.12.1-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
     1.12.0-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
 *** 1.11.2-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
        100 /var/lib/dpkg/status
     1.11.1-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
     1.11.0-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages

docker version
Server:
Version:      1.11.2
API version:  1.23
Go version:   go1.5.4
Git commit:   b9f10c9
Built:        Wed Jun  1 22:00:43 2016
OS/Arch:      linux/amd64

LGTM!

Quick testing with a redis service seems to work with the docker-engine=1.11.2-0~xenial release, which is the oldest available docker-engine release in the upstream docker API repos for xenial.
Dunno about 1.9, 1.10, I suppose they should work, but not going to bother testing.


fix: auto timezone: handle if timezone server is not reachable

In case the timezone server is not reachable we use know the
last known timezone instead of falling back to timezone +/-0.
When the we receive a answer from timezone server, it will be
checked if the timezone has changed. Only iff the timezone has
changed the new value will be stored in the config.

I have test your modifyed files. But now the "Zeitzone" is the complete time at 0 but i need +1 for germany.
No jumping but wrong the hole time. Do you have any idea?
br Sascha

Hello again,
it does not work for me.
Attached the output of the seriell log in Arduino.
14:10:11.462 -> Load config.
14:10:11.462 -> *WM: [1] AutoConnect
14:10:11.462 -> *WM: [2] Connecting as wifi client...
14:10:11.462 -> *WM: [3] STA static IP:
14:10:11.462 -> *WM: [2] setSTAConfig static ip not set, skipping
14:10:11.462 -> *WM: [1] Connecting to SAVED AP: XXXX
14:10:11.462 -> *WM: [3] Using Password: XXXX
14:10:11.462 -> *WM: [3] WiFi station enable
14:10:11.462 -> *WM: [3] enableSTA PERSISTENT ON
14:10:11.462 -> *WM: [1] connectTimeout not set, ESP waitForConnectResult...
14:10:13.367 -> *WM: [2] Connection result: WL_CONNECTED
14:10:13.414 -> *WM: [3] lastconxresult: WL_CONNECTED
14:10:13.414 -> *WM: [1] AutoConnect: SUCCESS
14:10:13.414 -> *WM: [1] STA IP Address: <IP_ADDRESS>
14:10:13.414 -> *WM: [3] unloading
14:10:16.505 -> Old timezone: 0
14:10:16.505 -> New timezone: 3600
14:10:16.505 -> Save config.
14:10:24.924 ->
14:10:24.924 ->  ets Jan  8 2013,rst cause:4, boot mode:(3,6)
14:10:24.924 ->
14:10:24.924 -> wdt reset
14:10:24.924 -> load 0x4010f000, len 3584, room 16
14:10:24.924 -> tail 0
14:10:24.924 -> chksum 0xb0
14:10:24.924 -> csum 0xb0
14:10:24.924 -> v5d3af165
14:10:24.924 -> ~ld
14:10:24.971 ->
14:10:25.025 -> Load config.
14:10:25.072 -> *WM: [1] AutoConnect
14:10:25.072 -> *WM: [2] Connecting as wifi client...
14:10:25.072 -> *WM: [3] STA static IP:
14:10:25.072 -> *WM: [2] setSTAConfig static ip not set, skipping
14:10:25.072 -> *WM: [1] Connecting to SAVED AP: XXXX
14:10:25.072 -> *WM: [3] Using Password: XXXX
14:10:25.072 -> *WM: [3] WiFi station enable
14:10:25.072 -> *WM: [3] enableSTA PERSISTENT ON
14:10:25.072 -> *WM: [1] connectTimeout not set, ESP waitForConnectResult...
14:10:26.976 -> *WM: [2] Connection result: WL_CONNECTED
14:10:26.976 -> *WM: [3] lastconxresult: WL_CONNECTED
14:10:26.976 -> *WM: [1] AutoConnect: SUCCESS
14:10:27.030 -> *WM: [1] STA IP Address: <IP_ADDRESS>
14:10:27.030 -> *WM: [3] unloading
14:10:27.177 -> Old timezone: 3600
14:10:27.177 -> New timezone: 0
14:10:27.177 -> Save config.
14:11:03.166 -> Old timezone: 0
14:11:03.166 -> New timezone: 3600
14:11:03.166 -> Save config.
14:13:01.123 -> Old timezone: 3600
14:13:01.123 -> New timezone: 0
14:13:01.123 -> Save config.

Hi,
I checked my local repo and found changes I haven't pushed.
Could you check if it works for you with the update?

i thnink now it looks better and ==200  makes more sense than greater than 0.

I've merged it to the master branch. And yes, ==200 makes more sense than 0 :)


Add ability to set node temporarly offline

Looking forward to server migrations between nodes it would be beneficial to add the ability to mark nodes as temporarily disabled in the panel.
So instead of showing servers on these nodes as "error", they could be marked as "maintenance" or similar.

duplicate of #142


CameraPositionState.projection lags

I'm using CameraPositionState.projection to map LatLng locations and dimensions to screen coords for plotting custom markers. I noticed that when panning the map my markers would stay at their old on-screen positions for a few seconds before jumping to the updated position; it seems like the projection is not being updated every time the view is recomposed at a new position. I found that by reading the state's position before projection I could force the update. Even if this behaviour is deliberate for reasons of efficiency I think  it needs to at least be documented, because it took me a long time of tinkering to find this workaround.
Environment details

Specify the API at the beginning of the title (for example, "Places: ...")
OS type and version: Android 13; Evolution X 7.5 | Menudo | fajita | OFFICIAL
Library version and other environment information: maps-compose 2.11.4

Steps to reproduce

Use code which reads CameraPositionState.projection similar to the example below.
Run the app and pan the map.
Notice the marker failing to pan with the map.

Code example
@Composable
fun AngelMap(
    location: LatLng,
    modifier: Modifier = Modifier,
) {
    val displayDensity = remember { Resources.getSystem().displayMetrics.density.toDouble() }
    val cameraPositionState = rememberCameraPositionState {
        position = CameraPosition(
            location,
            19.0F,
            0.0F,
            0.0F
        )
    val styleOptions = remember { MapStyleOptions(mapStyleOptions) }
    val mapProperties = MapProperties(
        isBuildingEnabled = true,
        isIndoorEnabled = true,
        isMyLocationEnabled = false,
        mapStyleOptions = styleOptions,
        mapType = MapType.NORMAL,
    )
    val mapUiSettings = remember { MapUiSettings() }

    Box(modifier = modifier) {
        GoogleMap(modifier = Modifier.matchParentSize(),
            properties = mapProperties,
            uiSettings = mapUiSettings,
            cameraPositionState = cameraPositionState,
        )
        Column(
            modifier = Modifier
                .fillMaxSize(),
            verticalArrangement = Arrangement.Top,
        ) {
            // Uncommenting the following line fixes the issue
            // cameraPositionState.position
            cameraPositionState.projection?.let { projection ->
                // In my real app additional markers are plotted in a loop
                AngelMapMarker(
                    location = location,
                    size = 10,
                    projection = projection,
                    displayDensity = displayDensity,
                )
            }
        }
    }
}

@Composable
fun AngelMapMarker(
    location: LatLng,
    size: Double,
    projection: Projection,
    displayDensity: Double,
) {
    val cornerPolar = location.addingMetres(north = size, east = -size)
    val centrePx = projection.toScreenLocation(location)
    val cornerPx = projection.toScreenLocation(cornerPolar)
    val dxPx = centrePx.x - cornerPx.x
    val dyPx = centrePx.y - cornerPx.y
    val radiusPx = sqrt((dxPx * dxPx + dyPx * dyPx).toDouble())
    val radiusDp = (radiusPx / displayDensity).dp
    val cornerXDp = (cornerPx.x.toDouble() / displayDensity).dp
    val cornerYDp = (cornerPx.y.toDouble() / displayDensity).dp

    // fillColour and strokeColour also need to be defined

    // Outer circle
    Box(
        modifier = Modifier
            .offset(cornerXDp, cornerYDp)
            .size(radiusDp)
            .clip(CircleShape)
            .background(fillColour)
            .border(width = 2.dp, color = strokeColour, shape = CircleShape),
        contentAlignment = Alignment.Center,
    ) {
        // Other stuff inside the circle
    }
}

Stack trace
N/A

If you would like to upvote the priority of this issue, please comment below or react with :+1: so we can see what is popular when we triage.
@realh Thank you for opening this issue. 🙏
Please check out these other resources that might help you get to a resolution in the meantime:

Check the issue tracker - bugs and feature requests for Google Maps Platform APIs and SDKs
Open a support case - Get 1:1 support in Cloud Console.
Discord - chat with other developers
StackOverflow - use the google-maps tag

This is an automated message, feel free to ignore.


To Complete Viewpoint SPV04b  Physical Internal Exchange

https://github.com/GfSE/SAF-Specification/blob/main/developing-saf/viewpoints/Physical-Internal-Exchange-Viewpoint.md
Assumed priority: medium

Review concerns , also remove redundant concerns, and add Rationale to concerns
add example
reference SEHB5

I'd rather use port nesting when modeling interfaces with pin-out description for three reasons:
1 nested ports are normative and thus easier to understand.
2 nested ports reinforce the analogy with the physical port that they are meant to represent. So you see an interaction point as a single physical element.
3 I do not see a dependency between the pin and the TCP/IP signal, but rather an allocation. I see thus the containment relationship in a nested port represent better this situation.
"the delegation of SOI element interfaces to SOI boundary interfaces" I would rather speak of delegation in terms of interaction points <> and not interfaces <>. We are not actually identifying interfaces but interaction points in this Viewpoint. The interfaces are identified in the "Physical Interface Definition Viewpoint"
"states [,] to which other SOI elements the interfaces are connected to"
"assigns interface specifications definitions to interfaces interaction points"
"defines the usage of interfaces, e.g., if only a subset of the interfaces is used" How? I would use spezialisation of <> in the "Physical Interface Definition Viewpoint" for this.
Concern: "What are data / information items exchanged?"
Concern: "What are is the protocols description for exchanging items on an interface?"
Concern: "What kind of information is exchanged and processed within the system?" The <> Elements are neither visible in the Viewpoint nor there is a Viewpoint to describe the interaction elements in SAF.
Unclear how to model SW-Elements in the Viewpoint. Are they references of the HW-Elements? Do they have their own Interfaces? or use the Interfaces of the HW-Elements?
Concern: "Which interface partners does a HW item have?" Ports broadcast <> Elements to all compatible conected <>. If we need more detail, wether a compatible conected <> a "partner" is or not, we need to extend the profile of SAS to add that semantic. I do not think it is necessary.
Presentation: I would recommend too, to add a table of allocatin between the <> and the corresponding <>

The VP focusses on internal interfaces. The first thing that jumps the eye are the "external" connectors to the diagram frame. For completeness and understandability (and borrowed from SPV01), ok. But can we reformat the view to make clear what is on center stage here?

same comment as on SPV01b regarding "non-nested" ports.
A bit to laissez-faire for my taste, I would put the physical connector in fron row, with additional information inside.

Wording: one time system /system element is used another time SOI / SOI element - we should stick with one terminology

What additional information the system or a system element needs to generate to enable testing?
--> Focus is on interface and (see item flow) what information is transferred and not about functions. Therefore rewording of concern proposed:
What additional information the system or a system element needs to transmit or received to enable testing?

Nesting ports for connector/flow is compulsory in SysML 2.0

I've updated the concerns, descriptions, example and have set the vp to released, since i believe we have the basics covered.
Especially the concerns have been reworked, beeing more abstract.
Anything left should go into a new issue.


Question : how to update without on_click() ?

I want to create an app that shows the time.
how to update widget without on_click() ?
impl State for MainViewState {
fn init(&mut self, r: &mut Registry, ctx: &mut Context) {
println!("init");
}
fn update(&mut self, _: &mut Registry, ctx: &mut Context) {
    //how to update the time without mouse click
}

what I mean is I want automatic update but i can`t find any method like :
on_load() or on_start() or on_create() to trigger the update
also there is no timer in default widgets

You can check https://github.com/redox-os/orbtk/issues/305 there is an example. A more comfortable way will come.


chore: remove deprecated completions API

Chore: Remove Deprecated Completions API
Context:
The v1 Completions API has been deprecated and is no longer supported. It needs to be removed from the codebase to maintain a clean and up-to-date system.
Tasks:

[ ] Identify all references to the deprecated v1 Completions API in the codebase
[ ] Remove the deprecated API endpoints and associated route handlers
[ ] Update any client code or SDKs that rely on the deprecated API to use the newer version
[ ] Remove any documentation or references to the deprecated API from the codebase and external resources
[ ] Ensure that the removal of the deprecated API does not introduce any breaking changes to the system
[ ] Run comprehensive tests to verify that the system functions correctly after the removal
[ ] Update any relevant configuration files or build scripts to reflect the removal of the deprecated API
[ ] Communicate the removal of the deprecated API to relevant stakeholders and provide guidance on migrating to the newer version

Closing this issue because the Continue-dev plugin seems to require this legacy endpoint, so we should keep it for now.
Opened a related issue to fix that endpoint: https://github.com/defenseunicorns/leapfrogai/issues/819


[Roadmap]: Web Browsing in AutoGen

Background
Web browsing is quickly becoming a table-stakes capability for agentic systems. For several months, AutoGen has offered basic web browsing capabilities via the WebSurferAgent and browser_utils module. The browser_utils provides a simple text-based browsing experience similar to LYNX, but converts pages to Markdown rather than plain text. The WebSurferAgent then maps incoming requests to operations in this text-based browser. For example, if one were to ask 'go to AutoGen's GitHub page', the WebSurferAgent would map the request to two function calls: web_search("autogen github"), and visit_page(url_of_first_search_result).
Markdown is convenient because modern HTML is very bloated, and Markdown strips most of that away, while leaving essential semantic information such as hyperlinks, titles, tables, etc. A simplified or restricted subset of HTML would likely have worked as well, but we take advantage of the fact that OpenAI's models are quite comfortable with Markdown.
An important design element of the WebSurferAgent is that it basically just maps natural language to browser commands, then outputs the text content of the virtual viewport as a message to other agents. In this way, it leaves all planning and interpretation to other agents in the AutoGen stack.
This arrangement is surprisingly powerful and led to our top submission on GAIA, but has some obvious limitations:

First: Our use of the python requests library means that we are only considering the raw HTML returned for each page visit. If any components of the page are loaded dynamically by JavaScript, we cannot see them.
Second: Since the pages are immediately converted to Markdown, we see only a snapshot of the content and cannot interact with them (e.g., to fill in forms). It's as if we hit print, and are now studying the paper copy.
Third: At no step of the process are we considering the visual material of the page. As multi-modal models become increasingly popular, DocVQA is becoming useful and important.

To grow AutoGen's web browsing capabilities and overcome the above-mentioned limitations, the following roadmap is proposed:
Roadmap
Enhanced Markdown browsing
Given the general simplicity and utility of the existing Markdown-based solution, and in the spirit of starting a to-do list with tasks already complete, PR #1929 proposed enhancing the Markdown browsing in AutoGen in the following ways:
- [x] Supplement the `requests` library with headless browsers powered by Selenium and/or Playwright. This allows them to appear as regular web browsers (e.g., in their User-Agents) and also to execute JavaScript before converting pages to Markdown.
- [x] Abstract web search, providing an easy way to replace Bing, and a means of operating without a Bing API key
- [x] Allow the Markdown browsers to access the local file system (providing directory listings, opening documents, etc.)
- [x] Greatly expanding file format support (since we're already converting HTML to Markdown, why stop there? We can also convert pptx, docx, xlsx, pdf, etc.)

Importantly, 1929 combines ideas and code from numerous other PRs including #1534, #1733, #1832, #1572, and possibly others. Each author @vijaykramesh, @signalprime, @INF800, @gagb is credited here.
However, there is more to do on Markdown browsing before we can consider this wrapped up:
- [ ] Tests need to be added to #1929
- [ ] We need documentation, and the WebSurferAgent notebook needs to be updated
- [ ] All above-mentioned co-contributors are invited to co-author a blog post
- [ ] #1682 needs to be merged so that [read_page_and_answer](https://github.com/microsoft/autogen/blob/0a524834940defce079094591d9ed72539503981/autogen/agentchat/contrib/web_surfer.py#L269) can optimally do Q&A (this should be improved, or perhaps abstracted anyway)
- [ ] When Selenium falls back to requests to download files, we should take the User-Agent and Cookies from the browser and pass them to `requests`. #1733 already does this very nicely, and I would like to integrate that here.

Vision-based Interactive Browsing
As handy as it is, Markdown-based browsing will only ever get us so far. To address limitations two and three above, we need to take an interactive and multimodal approach similar to WebVoyager. Such systems generally work using Set-of-Mark prompting -- they take a screenshot of the web page, add labels and obvious bounding boxes to each interactive component, and then ask GPT-v to select elements to interact with via their visual labels. This solves the localization and grounding problem, where vision models have trouble outputting real-world coordinates (e.g., where a mouse should be clicked).
Here again, I want to acknowledge that @shauppi has already demonstrated an initial replication of the WebVoyager work, which is fantastic. I hope that we can maybe work together on this, but ultimately AutoGen likely needs a vision-based web surfing agent as part of its core offering.
Patterned after our existing WebSurferAgent, I propose that any MultimodalWebSurferAgent should adhere to the following design principle:
MultimodalWebSurferAgent should focus only on mapping natural language instructions to low-level browser commands (e.g., scrolling, clicking, visiting a page, etc.) and output both text and a screenshot of the browser viewport. All other planning will be left to other agents in the AutoGen stack.
Importantly, AutoGen is working to support multimodality through the agent stack, and by outputting both screenshots and page text in messages to other agents, we can then use MultimodalWebSurferAgent in many different agent configurations.
This is where the following roadmap and task list lead us:
- [ ] Create a MultimodalWebSurferAgent, similar to WebSurferAgent, but that takes a `Playwright` page or browser context instead of a Markdown browser
- [ ] Support the 7 core WebVoyager function calls: Click. Input. Scroll. Wait. Back. Web Search. Answer.
- [ ] Provide an abstraction for localizing elements in MLM responses, and provide Set-of-Mark bounding boxes and prompts as one implementation.
- [ ] Related to set-of-mark prompting, explore the accessibility tree (AXTree) for focusable elements, and fully-resolved aria labels and roles (see existing proof of concept)
- [ ] Explore allowing the agent to write and run JavaScript code in the page's context (it would become a new execution environment for agents)
- [ ] Ensure compatibility with both vision-capable and text-only conversation partner agents (vision-capable agents should also receive screenshots)
- [ ] Ensure screenshots and page text snapshots are synchronized.
- [ ] Support downloads (perhaps falling back to the Markdown approach above)

Fantastic roadmap and description @afourney!

@BeibinLi  I'd love to hear your thoughts on this part of the design proposal in particular:

Fantastic roadmap and description @afourney!

I'm hoping it might form the basis of a blog post later.

Yesssssss

@afourney Yes, ideally it will work.
Do you want to use GPT-4V for MultimodalWebSurfer or for all agents? I think using GPT-4V for all agents might produce better results. See #2013.
Caveat: GPT-4V is not good enough for reading tables and other tasks, and we will need OCR and other rule-based methods for the VisionCapability, which will be then added to the other agents who will talk with the MultimodalWebSurfer.

@afourney Got it! Then, yes, this design would work.

Great design! One technology difficulty is to label each interactive components in web. Webvoyager seems to use a separate interactive segmentation model. Correct bounding boxes should be the pre-requirements to mapping natural language instructions to low-level browser commands

Great design! One difficulty is to label each interactive components in web. Webvoyager seems to use a separate interactive segmentation model. Correct bounding boxes should be the pre-requirements to mapping natural language instructions to low-level browser commands. I think it is hard for GPT-4v to directly label each element.

Yes. Good point. I want to abstract this step so that we can substitute in different implementations. https://github.com/schauppi/MultimodalWebAgent has a good approach to this. I've also had reasonable results using the accessibility AXTree to enumerate interactive components (focusable, etc.). Once we know which elements are interactive, we can decorate them with the labels and outlines.

I was going to say this but for GUIs

I was going to say this but for GUIs

General apps or GUIs would require a different mechanism to capture the window and generate events, but the principle would be very similar — we just wouldn’t have the DOM for perfect segmentation, and info.

@afourney got it!

Actually this may not be a good idea.  If we can use agents to automate web browsing, how many jobs might be eliminated?

@afourney you should check out our recently released browsergym :)
It is meant to be a flexible framework build upon playwright. It already supports most of the features you describe (AXTree, screenshots, different action spaces).
Disclaimer: I am one of the authors of the library.

1929 is merged. Will have new about multi-modal support soon.


Remove pagination, sort dict entries

This PR fixes...
This PR fixes #79 . The dictionary wasn't sorting in a case-insensitive way.
What I did...

Removed the sorting from the graphql query (we no longer need it because it seems it can't be case-insensitive)
Removed pagination. Pagination depended on the graphql query, so it we're going to use pagination it will have to be a bit different.
Removed pageInfo from the graphql query. We're not paginating so it wouldn't return anything.
Added a data property for holding sorted entries
Created a method to sort the array of data and used it in the created hook

How to test...
Navigate to /dictionary. Check that:

All dictionary entries are now printed on one page
Entries are sorted in alphabetical order whether or not they start with upper/lowercase letter.

I learned...
GraphQL has some limitations, and also I need to learn more about it! 😆 😭

Some words have the verbiage of "Replace with your own definition" (ex: Avatar, Backlog, Brand Book, etc.), but when I click on the word it's not sending me to Github to add anything. Instead, I only have the option of clicking "Back to Dictionary" and the page appears to load half way (see screenshot link below).

Should there be a definition listed already listed on these or a screen to edit the pre existing definition?

When I click on "Back to Dictionary" this brings me back to the beginning of the dictionary. I'm not sure if the logic was built that way on purpose, but while testing I have to go through all the pages or remember which word I left off on.

Pages 6 and 7 list End User and End Users, seems to be a duplicate entry for the same thing.

Pages 8 and 9 list Heat Map and Heat Maps, seems to be a duplicate entry for the same thing.

Pages 17-27 start with lowercase words in alphabetical order. Should these be in alphabetical order with the capital letters first then lowercase after (see example below) or as is with capital letters first in alphabetical order and then the lowercase letters in alphabetical order at the end?

Ex:

Abstract
agile
analytics
App

I'm a bit confused on the printing on one page portion. Should all the words print just on one page in print preview? If so, this is how the print preview looks for me:

Some words have the verbiage of "Replace with your own definition" (ex: Avatar, Backlog, Brand Book, etc.), but when I click on the word it's not sending me to Github to add anything. Instead, I only have the option of clicking "Back to Dictionary" and the page appears to load half way (see screenshot link below).

The page loads all the way, but the background color doesn't extend to the bottom of the screen (which isn't a good thing - it needs to be done still.).

Should there be a definition listed already listed on these or a screen to edit the pre existing definition?

So, in Forestry, we were trying to get some better messaging for the contributors by having "Replace with your own definition" be the default text. It really backfired, because now all the words have definitions, but not the ones we want! Long story short, the code is working properly, but our admin process has a bug to fix! We'll need to open another card for that.

When I click on "Back to Dictionary" this brings me back to the beginning of the dictionary. I'm not sure if the logic was built that way on purpose, but while testing I have to go through all the pages or remember which word I left off on.
This shouldn't be an issue anymore, since we removed the pagination. It will still go to the top of the page, but I think that's ok (though if it's a feature you think would be valuable, let's discuss and make a card for it!).

Pages 6 and 7 list End User and End Users, seems to be a duplicate entry for the same thing.
Pages 8 and 9 list Heat Map and Heat Maps, seems to be a duplicate entry for the same thing.
It looks like people have created a couple of extra definitions. We can delete these, but they should in their own card, since it's a bit outside the scope of this work.

Pages 17-27 start with lowercase words in alphabetical order. Should these be in alphabetical order with the capital letters first then lowercase after (see example below) or as is with capital letters first in alphabetical order and then the lowercase letters in alphabetical order at the end?
This shouldn't be an issue, since we've removed the pagination, they should all be printed together.

I'm a bit confused on the printing on one page portion. Should all the words print just on one page in print preview? If so, this is how the print preview looks for me:

We're not aiming at printing the dictionary. I think I see (let me know if I'm wrong, though!) where it could be confusing, though - when I use the word "print," I mean it should show up on the website, but not that you should have to print it out. I should have explained that earlier, sorry!
After re-reading all of these comments again, I think you may have been looking at the live site? The testing needs to be done on the deploy preview environment. To get to the preview envrionment, click on the "details" link on the very bottom row of the checks area (screenshot below).

Re-reviewed using the correct deploy preview below. This looks all good now and I added 2 separate issues for the duplicate entries for "End User" and "Heat Map"
https://deploy-preview-80--cherryontech.netlify.app/dictionary/