text:
Trigger function - iterative improvement and data collection for epi modelling

Will it be possible to extract information on false alarms to improve the trigger function - this could be improved through a/b testing.
In the same way it would future epidemic preparedness to know how a virus would spread for a prescribed trigger function - this is essentially the idea of https://safeblues.org/ which could be easily integrated into the app.

How do you it was a false alarm? Even if you test, false negative rate of PCR tests is quite high, probably around 20%. And we would expect most that get an alarm not to be infected. I believe in manual contact tracing, around 90% of those quarantined never test negative.
I think this would need to be collected at the local health authorities. They will note down the reason for the test ("warning of CWA") and can then collect statistics.

There is clearly a trade off casting the net (time and space) too wide and on population level a lot of the test that are triggered by the app are negative.

@vollmersj could you please make your idea a bit clearer? What do you mean by "trigger function"?
Taking an educated guess, you're proposing the following:

Have multiple ways of calculating "infection risk" and roll this out in a/b fashion to users
Measure how many people have been tested after receiving an alert through the app
Measure how many tested positive vs. negative to know which calculation is more accurate

Is that roughly the idea?

Yes that is roughly the idea. At the moment this seems to modelled in transmission_risk.pdf. However,    it is not clear if one should be more conservative in proximity and duration of contact or if this leads to too many warnings. I guess  the current testing capacity is not fully utilised. so there is a strong argument to be very conservative but capturing this data driven would be very useful and might become key if there is a second wave.
The second idea is that start with a known trigger function/distribution and simulate spread of the virus using real contacts that is the idea of  (https://safeblues.org/)[https://safeblues.org/].

Dear @vollmersj ,
thank you very much for your proposal.
To give the community a space for discussing new feature ideas or enhancements that might not be taken up immediately by the development teams, we created the cwa-wishlist repository.
This idea is one of these feature ideas or enhancements. Consequently, we will move this issue to this repository and allow the community and you to further refine it, discuss pros and cons, and evaluate alternatives.
The issue will not be closed in this repository to ensure long-term visibility. All issues in the cwa-wishlist repository will be discussed with our contracting entities. They will decide whether they will be implemented or pursued further. As soon as we have any updates, we will let you know about the details.
Best regards,
TK
Corona-Warn-App Open Source Team

authors: MikeJayDee tkowark vollmersj

repo: corona-warn-app/cwa-documentation


text:
Fix PR 1736: Complete step-by-step guide and specify date

In this pull request I have added the FAQ entries eu_dcc_export and vac_cert_booster and have also adjusted the existing entry vac_cert_booster_cwa. In the step-by-step guide of eu_dcc_export, I missed out on a couple of steps that are now included with this pull request. I have also replaced the word "click" with "tap" as it is more fitting. In vac_cert_booster_cwa, I've previously said that in a future version users will receive a notification to consider a booster vaccination if necessary. This has now been more specified to version 2.10.
eu_dcc_export:
DE:

EN:

vac_cert_booster_cwa
DE:

EN:

Regarding eu_dcc_export, the app links to this entry when it's unable to create a PDF because of the limitation that only German certificates can create a printout.
However, this FAQ entry (particularly the section "Limitation") isn't really helpfully for the user as it doesn't answer the question why it's not possible to create a PDF for the certificate.
This should be improved IHMO.

@Ein-Tim OK, there is a bit of more explanation in the blog. I suggest we can also add a link to the blog.

Add sentence with link to blog at the end to "Limitations"-section:

See also the blog article Mit Version 2.10 ist die Corona-Warn-App bereit, schnell über Auffrischungsimpfungen zu informieren.

Link to blog:

DE https://www.coronawarn.app/de/blog/2021-09-22-cwa-version-2-10/
EN https://www.coronawarn.app/en/blog/2021-09-22-cwa-version-2-10/

Add sentences with links to blogs at the end to "vac_cert_booster" FAQ article:

Link 1 to blog:

DE https://www.coronawarn.app/de/blog/2021-09-08-cwa-version-2-9/
EN https://www.coronawarn.app/en/blog/2021-09-08-cwa-version-2-9/

Link 2 to blog:

DE https://www.coronawarn.app/de/blog/2021-09-22-cwa-version-2-10/
EN https://www.coronawarn.app/en/blog/2021-09-22-cwa-version-2-10/

There is a missing full stop at the end of the sentence
"This function is primarily used to create backup copies of the certificates for your personal purposes"
I can't comment in-line because this line wasn't changed by this PR.

Also in the German text, there is a missing full stop:
"Diese Funktion dient vorrangig der Erstellung von Sicherheitskopien der Zertifikate für Ihre persönlichen Zwecke"

@MikeMcC399 full stops have been added at the end of the mentioned sentences, thanks!
@Ein-Tim blog articles are now mentioned the way @dsarkar commented it here. Mentioned blog article titles for /blog/2021-09-22-cwa-version-2-10/ may differ from the actual title in the future, since we don't know which exact title will be used yet. This will of course be changed once we know it

@larswmh @Ein-Tim @MikeMcC399 Thanks.

source: gharchive/pull-request

authors: Ein-Tim MikeMcC399 dsarkar larswmh

repo: corona-warn-app/cwa-website

license_type: permissive

license_source: github-api


text:
Fix past tense and make German text clearer (ramp down FAQs)

Description
This PR fixes a wrong past tense in "ramp_down_functionality" and fixes the German text in "ramp_down_tests".
What was changed?

https://github.com/Ein-Tim/cwa-website/blob/fix/ramp-down-updates/src/data/faq.json
https://github.com/Ein-Tim/cwa-website/blob/fix/ramp-down-updates/src/data/faq_de.json

Screenshots
This is a minor change only, if you want I can still provide screenshots for it.

@Ein-Tim
What is the planned release date for CWA 3.2?

@Ein-Tim The release is not planned before mid-April, so I think it makes sense to update the wrong tense.

@Ein-Tim Thanks for the PR, makes sense; will cross-check internally with the team.

authors: Ein-Tim MikeMcC399 dsarkar


text:
[iOS]: Add property to include clear button in edit field

In iOS, the edit field can include a button to clear the edit field of text (setting the clearbuttonmode for the edit field). Please add a property that will add this to the native edit field for iOS. While I could do my own button outside the edit field, this would not include the expected behavior under iOS. It would be better to support the built in iOS clear button. Thanks.

I figured out a way to do it, if textfield is my native text field:
textfield:setNativeProperty('clearButtonMode', 3)

I would prefer to figure out what the name of the value is, instead of using 3, but I haven't found a name that worked.
It would be preferable to be able to do this with a property like:
textfield.clearButtonMode = 'always'

Perhaps this can be added in a future version?

This is added in the newest build

source: gharchive/issue

repo: coronalabs/corona

license: MIT


text:
Configurable secondary color

Problem Statement
Currently, the secondary color is not configurable in the leaderboard.
Tasks

[ ] Add CSS Variables for a configurable secondary color to the theme.css (in the data repo https://github.com/coronasafe/leaderboard-data/blob/main/config/theme.css)
[ ] The secondary color for gray in the data repo should be Tailwind's gray color
[ ] Update tailwind config to extend to have a secondary color palette that uses the newly defined CSS variables
[ ] Replace all usages of tailwind's gray color such as bg-gray-***, text-gray-***, border-gray-***, etc. with bg-secondary-***, etc.

please assign me this issue

@rithviknishad please check and let me know if any changes are needed.

Kindly link the issue with a closing tag @HARSHDOIPHODE

This PR resolves issue #303.
Closes #303

authors: HARSHDOIPHODE rithviknishad

repo: coronasafe/leaderboard


text:
Segfault on MongoDB eBPF tracing

Hello,
Running node-agent 1.8.1 with the new eBPF tracing and ran into this problem on one of our worker nodes:
I0518 13:43:59.861092   13864 registry.go:194] TCP connection from unknown container {connection-open none 3730 10.192.6.192:53932 10.192.6.192:9100 40 592331228739525 <nil>}
panic: runtime error: slice bounds out of range [4:0]

goroutine 78 [running]:
go.mongodb.org/mongo-driver/x/bsonx/bsoncore.newBufferFromReader({0x1ef17c0, 0xc000b12600})
	/go/pkg/mod/go.mongodb.org/mongo-driver@v1.11.4/x/bsonx/bsoncore/document.go:125 +0x1f4
go.mongodb.org/mongo-driver/x/bsonx/bsoncore.NewDocumentFromReader(...)
	/go/pkg/mod/go.mongodb.org/mongo-driver@v1.11.4/x/bsonx/bsoncore/document.go:101
go.mongodb.org/mongo-driver/bson.NewFromIOReader({0x1ef17c0?, 0xc000b12600?})
	/go/pkg/mod/go.mongodb.org/mongo-driver@v1.11.4/bson/raw.go:27 +0x25
github.com/coroot/coroot-node-agent/tracing.bsonToString({0x1ef17c0?, 0xc000b12600?})
	/tmp/src/tracing/mongo.go:60 +0x25
github.com/coroot/coroot-node-agent/tracing.parseMongo({0xc0009ea260, 0x200, 0x200})
	/tmp/src/tracing/mongo.go:56 +0x225
github.com/coroot/coroot-node-agent/tracing.handleMongoQuery({0xfffffffffff43bd5?, 0x203000?, 0x29be0a0?}, {0x38?, 0x8?, 0x29be0a0?}, 0xc0009ea240, {0xc000513440, 0x3, 0x3})
	/tmp/src/tracing/mongo.go:22 +0x7c
github.com/coroot/coroot-node-agent/tracing.HandleL7Request({0xc0004bda90, 0x41}, {{{0x0?, 0x0?}, 0xc000012078?}, 0x0?}, 0xc0009ea240, 0x0?)
	/tmp/src/tracing/tracing.go:76 +0x69d
github.com/coroot/coroot-node-agent/containers.(*Container).onL7Request(0xc000241560, 0x4c6d, 0x13, 0x0, 0xc0009ea240)
	/tmp/src/containers/container.go:523 +0x312
github.com/coroot/coroot-node-agent/containers.(*Registry).handleEvents(0xc000228280, 0xc000172120)
	/tmp/src/containers/registry.go:221 +0xa2d
created by github.com/coroot/coroot-node-agent/containers.NewRegistry
	/tmp/src/containers/registry.go:89 +0x4db

It only happens on this one node out of several dozen nodes
It only happens with MongoDB

I'll try to track down some more details if I can about the MongoDB pod that it's trying to trace.

Thanks for the report!
The problem is that the eBPF code sends only the first 512 bytes of the request to userspace. It turns out that the bson library does not always handle incomplete documents correctly. Will find a way to fix this.

The only "mongo" related pod I could find on this worker node is:
https://hub.docker.com/_/mongo-express
This is a web frontend for Mongo, so perhaps the MongoDB eBPF tracer is looking for something in this pod that doesn't exist since it's not running MongoDB.

The agent captures client requests to MongoDB servers, so everything appears to be correct in this case: when a mongo-express instance calls mongo, the agent captures its queries.

@bmike78, this has been fixed in node-agent v1.8.2. Please update the agent.

@def, I don't see the error in the logs anymore, but still experiencing some issues.. It's getting OOM exit code: 137 errors..

I increased the requests and limits, even though I didn't see the node-agent hitting those limits.
I don't see the worker node initiating the OOM using stats like:

node_vmstat_oom_kill

(sum by (namespace,pod,container)
(rate(container_cpu_usage_seconds_total{container!=""}[5m])) / sum by
(namespace,pod,container)
(kube_pod_container_resource_limits{resource="cpu"})) > 0.8

In the time since I opened this issue, the original worker node was recycled, but the issue of the OOM was still present.
I deleted the pod for mongo-express and the OOM errors went away on that worker node.
The mongo-express pod respawned on a different worker node and that caused the issue to move to that worker node.

The mongo-express pod is not hosting MongoDB (it's just a web ui for Mongo), so is there a way to exclude it somehow from having the eBPF tracer from attempting to collect metrics from it?

@bmike78, could you please collect and share the CPU and memory profiles of the affected agent?
curl -o cpu_profile.tgz 'http://<coroot-node-agent-ip>:80/debug/pprof/profile?seconds=60'
curl -o mem_profile.tgz 'http://<coroot-node-agent-ip>:80/debug/pprof/heap'

@def good news, potentially.. it seems that over the weekend or due to some other changes that we are not seeing the error anymore.  I'm good to close out this issue.  Thanks!

@def It looks like the issue came back, but in a different way...
We just have one node-agent out of many clusters that is showing the OOM issue.
pprof
I did gather a memory profile and loaded it into the "go tool pprof" and found that the mondo-driver was causing the high memory issue:
http://localhost:8082/ui/source?si=alloc_space
http://localhost:8082/ui/peek?si=alloc_space
go.mongodb.org/mongo-driver/x/bsonx/bsoncore.NewDocumentFromReader
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.11.4/x/bsonx/bsoncore/document.go

  Total:           0     1.03GB (flat, cum) 86.25%
    101            .     1.03GB           ???
go.mongodb.org/mongo-driver/x/bsonx/bsoncore.newBufferFromReader
/go/pkg/mod/go.mongodb.org/mongo-driver@v1.11.4/x/bsonx/bsoncore/document.go

  Total:      1.03GB     1.03GB (flat, cum) 86.25%
    121       1.03GB     1.03GB           ???

Showing nodes accounting for 1224.32MB, 100% of 1224.32MB total
----------------------------------------------------------+-------------
      flat  flat%   sum%        cum   cum%   calls calls% + context
----------------------------------------------------------+-------------
                                            1056MB   100% |   go.mongodb.org/mongo-driver/x/bsonx/bsoncore.NewDocumentFromReader /go/pkg/mod/go.mongodb.org/mongo-driver@v1.11.4/x/bsonx/bsoncore/document.go:101
    1056MB 86.25% 86.25%     1056MB 86.25%                | go.mongodb.org/mongo-driver/x/bsonx/bsoncore.newBufferFromReader /go/pkg/mod/go.mongodb.org/mongo-driver@v1.11.4/x/bsonx/bsoncore/document.go:121
----------------------------------------------------------+-------------

Pod Name:
mongo-express-b8d6669fc-876pf
node-agent versions:
The segfaults did go away in v1.8.2.
Running v1.8.9, which is the latest version.

memory profile heap file

mem_profile file.. sorry for the format, but github or my proxy is not accepting .tgz for some reason
heap.txt

cpu_profile files.. was able to get the default "debug" and about 10s:
profile-debug.txt
profile-10s.txt

Thanks for the details, @bmike78. I'll try to figure it out!

@def memory usage is down... 30MB when it was peaking at 700MB at times on 1.8.9.
I consider this resolved.  Thank you!

repo: coroot/coroot-node-agent


text:
🛑 FashionLady.ro is down

In 5cdf03f, FashionLady.ro (https://fashionlady.ro) was down:

HTTP code: 0
Response time: 0 ms

Resolved: FashionLady.ro is back up in bd3f271.


text:
Adding Corretto-21 images, update github actions

Description of changes:
Adding Corretto-21 images using the similar approach we did for 17 and 20. The difference from 20 is that we do not have al2023-generic.

I don't see changes to bin/apply-template.py or versions.json, were those missed?

I don't see changes to bin/apply-template.py or versions.json, were those missed?

versions.json is there but +1 for the missing script changes

The work still in progress, the PR is in draft.

Do I need to update tags manually as well?

Do I need to update tags manually as well?

Run the script locally to make sure it worked, the is an GHA to run it after you merge and add the comment on your commit.

bash bin/update-dockerfiles.sh
and
python3 bin/tag-generator.py | tee .tags
do not produce any errors

missing test/test-image-corretto21-jre.yaml to fix the last 2 failures.

all checks are passed

can i access to the docker image of corretto 21?
docker pull amazoncorretto:21
fails with
Error response from daemon: manifest for amazoncorretto:21 not found: manifest unknown: manifest unknown

can i access to the docker image of corretto 21? docker pull amazoncorretto:21 fails with Error response from daemon: manifest for amazoncorretto:21 not found: manifest unknown: manifest unknown

I'm also getting this

can i access to the docker image of corretto 21? docker pull amazoncorretto:21 fails with Error response from daemon: manifest for amazoncorretto:21 not found: manifest unknown: manifest unknown

I'm also getting this

+1

The corretto 21 images have not been published to official-images/amazoncorretto yet. We expect them to be available soon and we'll post an update here when they're ready.

official-images#15408 is the PR for the update. Once that's merged images should be available on dockerhub and ecr gallery within a few hours.

authors: CasaSky SentryMan benty-amzn fbellomi lutkerd mrserb

repo: corretto/corretto-docker


text:
t is not a function on production build.

I am getting a error when I run npm run build, Webpack compiles and everything works but when I go to the site that its hosted on I get t is not a function
Everything on development works just fine its only when I run it in production mode....

Any Ideas on what could be going on?
Gist of my webpack.config.prod.js and package.json
https://gist.github.com/Penthious/2382b1619f5bb481d8cf0cdb0ce5c1e5
Node version: v7.8.0
npm version: v4.2.0
Operating system: linux
Command line used: npm run build

Is this an issue with Slingshot out of the box?

I dont think so, I am using react slingshot as my base and built off of it. But the webpack has pretty much stayed the same, only added babel-polyfill to it but I commented it out and it still gives me that error. Not sure why its breaking. I run npm run start and it works just fine but if I run it in production thats when I get the error.

Ill try to see if it gives me the same error if I use a base version of react slingshot, one moment.

Yea its just my code it seems like. Base react slingshot works just fine on my production server

Okay, closing then since not a bug in Slingshot - I'd look at line 20 in main.js though. :)

I figured it out, In my .bablerc I wasnt transforming my decorators in the production build like I was in the development build.

authors: Penthious coryhouse

repo: coryhouse/react-slingshot

license: mit

license_source: bigquery


text:
Non-fatal Exception com.smixx.fabric.SMXCrashlytics.logException

Hi we always have this error
it is in Fabric library do you have some solution?
we use v "react-native-fabric": "0.5.1",
Non-fatal Exception: java.lang.RuntimeException: Both onRight and rightTitle/rightButtonImage
            must be specified for the scene: article
       at com.smixx.fabric.SMXCrashlytics.logException(SMXCrashlytics.java:33)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:374)
       at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:162)
       at com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
       at android.os.Looper.loop(Looper.java:157)
       at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
       at java.lang.Thread.run(Thread.java:841)

sorry depend on our project

repo: corymsmith/react-native-fabric


text:
🛑 CosGrid Networks is down

In 56ab195, CosGrid Networks (https://cosgrid.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: CosGrid Networks is back up in 59c814d after 24 minutes.


text:
Update peer and create mintstake.json

Update peer and create mintstake.json

Once the chain launches ill have everyone sign a message with a memo including their peerid. Then include the txhash in the addedPeer field please

repo: cosmic-horizon/testnets


text:
support rocksdb column family

column family fits well with different iavl stores, at least it's easier to check the db states of different stores, potentially could tune db options separately.
But it seems not easy to do that transparently, without changing a few apis.

I'm generally happy to accommodate changes in this repo for our use case. Would you want to submit a proposal of the api change

Maybe the simplest way it just add a method to DB interface:
OpenSubDB(name string) DB

If can return nil if don't support similar concept.
And change here in cosmos-sdk into:
subDB := db.OpenSubDB(params.key.Name())
if subDB == nil {
    subDB = NewPrefixDB(...)
}

This change won't take advantage of atomic commit cross multiple column families, but that's another topic.

It'll need an option to switch explicitly, otherwise existing rocksdb nodes will suddenly fail.

repo: cosmos/cosmos-db


text:
02-client: merge misbehavior & header interfaces

Description
I've had to add GetHeight() temporarily to the light client implementations to satisfy the compiler. Once we complete https://github.com/cosmos/ibc-go/issues/594 we can remove them.
closes: #875
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

The reason there are so many commits in the UI commit diff is just that I branch off of main rather than the feature branch by mistake. I have since merged in the latest chains from main. Github cache is just not updating the UI unfortunately. There are no changes outside of my commit and we will squash the branch anyway.

repo: cosmos/ibc-go


text:
feat: #258 Register Counterparty Address

Description

closes: #258. Taking over https://github.com/cosmos/ibc-go/pull/358

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

WIP, I will continue on Monday with msg_server tests. In the meantime I left a question below @AdityaSripal

Ended up finding the answers to my questions via the docs :monocle_face:

WIP, I will continue on Monday with msg_server tests. In the meantime I left a question below @AdityaSripal

@colin-axner @AdityaSripal I was going to add a msg_server test but I realized no modules in the sdk or transfer module have tests.

@colin-axner @AdityaSripal I was going to add a msg_server test but I realized no modules in the sdk or transfer module have tests for the msg_server.

About a year ago when we were finishing up the transfer tests there used to be a handler on the top level of the module directory which had a corresponding handler_test.go. Right before the module was realized (or right after?), the SDK made the switch from the legacy Handler to msg_server.go. This change was done for us and left some of the code mismatched

@colin-axner @AdityaSripal I was going to add a msg_server test but I realized no modules in the sdk or transfer module have tests for the msg_server.

About a year ago when we were finishing up the transfer tests there used to be a handler on the top level of the module directory which had a corresponding handler_test.go. Right before the module was released (or right after?), the SDK made the switch from the legacy Handler to msg_server.go. This change was done for us and left some of the code mismatched
Core IBC has msg server tests

Ahhh, nice! I'll do up some msg_server tests then thank you :+1:

Codecov Report

Merging #376 (9bfd299) into ics29-fee-middleware (c63af4a) will decrease coverage by 0.32%.
The diff coverage is 31.70%.

@@                   Coverage Diff                    @@
##           ics29-fee-middleware     #376      +/-   ##
========================================================
- Coverage                 78.85%   78.53%   -0.33%
========================================================
  Files                       117      121       +4
  Lines                      9597     9656      +59
========================================================
+ Hits                       7568     7583      +15
- Misses                     1647     1691      +44
  Partials                    382      382

Impacted Files
Coverage Δ

modules/apps/29-fee/keeper/keeper.go
0.00% <0.00%> (ø)

modules/apps/29-fee/keeper/msg_server.go
0.00% <0.00%> (ø)

modules/apps/29-fee/types/keys.go
0.00% <0.00%> (ø)

modules/apps/29-fee/types/msgs.go
75.00% <86.66%> (ø)

@AdityaSripal @colin-axner I think I got everything.
If we merge this in I can do a rebase on main from @AdityaSripal branch and then do a follow up PR for the msg_server test (as the test suite scaffolding is setup already on the handshake PR)

authors: codecov-commenter colin-axner seantking


text:
chore: rename apis to align with spec

Description

Renames ProvideCounterparty to RegisterCounterparty
Tidies up some code structure and godocs

Idk if there's an issue for this. Please link if you know of one!

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against the correct branch (see CONTRIBUTING.md).
[ ] Linked to GitHub issue with discussion and accepted design, OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/).
[ ] Added relevant godoc comments.
[ ] Provide a conventional commit message to follow the repository standards.
[ ] Include a descriptive changelog entry when appropriate. This may be left to the discretion of the PR reviewers. (e.g. chores should be omitted from changelog)
[ ] Re-reviewed Files changed in the GitHub PR explorer.
[ ] Review SonarCloud Report in the comment section below once CI passes.

Looks like we're missing test func for create channel rpc


text:
WIP: Fabo/1059 test exe

Closes #1059
Description:

❤ Thank you!

Tested here: https://circleci.com/gh/cosmos/voyager/6719

repo: cosmos/voyager


text:
Fabo/ Persist session type if signed in with ledger

The type was not persisted which caused the actionmodal on refresh not to show signing with ledger.
Description:

Thank you! 🚀

For contributor:

[ ] Added entries in PENDING.md with issue # and GitHub username
[ ] Reviewed Files changed in the github PR explorer
[ ] Attach screenshots of the UI components on the PR description (if applicable)
[ ] Scope of work approved for big PRs

For reviewer:

[ ] Manually tested the changes on the UI

@fedekunze it broke somewhere else
https://github.com/cosmos/voyager/pull/2277

authors: faboweb jbibla


text:
USE_CLIENTSSL ESP32

Hi, When using ESP32 & USE_CLIENTSSL = true, flash memory exceedes 100% and compilation fails.
Can you please explain what does that option means ?

Hi @shafr, sorry for late reply but I was on holiday.
This option is relevant only with examples and is intended for MCUs where SSL handling is not included in the Arduino framework like for example STM32 or SAMD21.
Anyway, I've just tried with one of examples (lightBot.ino) and with ESP32 (with NodeMCU-32S board). The sketch compile and work as expected.
Could you better explain the problem you have identified?

Hello, thanks for reply.
Here's example of the code i'm using.
Try to compile it locally with true and false - for some reason it would not fit anymore.
https://github.com/shafr/esp-canary/blob/01677ab7d5c363664145d465e3f3b6814d9ab4f9/src/reporting/telegram.cpp#L10

I've seen your project and there are really a lot of features!
The strange thing is that trying to compile one of the examples with and without the USE_CLIENTSSL option true, the compiled size is smaller when the SSLClient library is used instead of the WiFiClientSecure included in the framework.
However, from what I have been able to see, with the latest versions of the ESP32 framework for Arduino, they have solved many bugs and the WiFiClientSecure library performs just as well.
If you want to test using SSLClient you can try changing the partition scheme.
For example with the pre-configured option
board_build.partitions = min_spiffs.csv

added to the platformio.ini file, project compile, but I don't know if the remaining 190kb filesystem space is enough for your project.

Frankly I was amazed, how does Tasmota, EspHome, MarlinFw are able to do all the functionality with such few memory. I've just recently learned about ESP8266 memory allocation (1mb at most for application code), but haven't fully figured out ESP32 one.
Thanks for the heads up, will check that.

authors: cotestatnt shafr


text:
🛑 Mainnet Smartpy (mainnet.smartpy.io) is down

In cbb9f57, Mainnet Smartpy (mainnet.smartpy.io) (https://mainnet.smartpy.io/chains/main/blocks/head/header) was down:

HTTP code: 503
Response time: 15420 ms

Resolved: Mainnet Smartpy (mainnet.smartpy.io) is back up in da6aad2.

repo: cotezos/teznodes


text:
CBLReplicatorExecutor still exists after stopping the replicator

Steps:

Create continuous push and pull replicators from REST API POST _replicate.
Start the replicators.
Observe the thread dump.
Stop the replicators.
Observe the thread dump.

I believe the native API has the same issue.
Thread dump after stop both push and pull replicators:
Full thread dump

"Acme.Utils.ThreadPool(0)-PooledThread: Acme.Serve.Serve$ServeConnection@b2d72b9@4333" daemon prio=5 runnable
  java.lang.Thread.State: RUNNABLE
      at libcore.io.Posix.recvfromBytes(Posix.java:-1)
      at libcore.io.Posix.recvfrom(Posix.java:189)
      at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:250)
      at libcore.io.IoBridge.recvfrom(IoBridge.java:549)
      at java.net.PlainSocketImpl.read(PlainSocketImpl.java:481)
      at java.net.PlainSocketImpl.-wrap0(PlainSocketImpl.java:-1)
      at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
      at java.io.InputStream.read(InputStream.java:162)
      at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:149)
      at java.io.BufferedInputStream.read(BufferedInputStream.java:295)
      - locked <0x1322> (a java.io.BufferedInputStream)
      at Acme.Serve.Serve$ServeInputStream.read(Serve.java:4290)
      - locked <0x1323> (a Acme.Serve.Serve$ServeInputStream)
      at Acme.Serve.Serve$ServeInputStream.read(Serve.java:4253)
      at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:93)
      at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2041)
      at Acme.Serve.Serve$ServeConnection.run(Serve.java:1988)
      at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1223)
      - locked <0x1102> (a Acme.Utils$ThreadPool$PooledThread)
      at java.lang.Thread.run(Thread.java:818)

"CBLReplicationExecutor-http://10.17.2.133:4984/db-push-8ead3@4613" prio=5 waiting
  java.lang.Thread.State: WAITING
     blocks CBLReplicationExecutor-http://10.17.2.133:4984/db-push-8ead3@4613
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Thread.parkFor$(Thread.java:1220)
      - locked <0x1305> (a java.lang.Object)
      at sun.misc.Unsafe.park(Unsafe.java:299)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1078)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
      at java.lang.Thread.run(Thread.java:818)

"CBLReplicationExecutor-http://10.17.2.133:4984/db-pull-5f200@4823" prio=5 waiting
  java.lang.Thread.State: WAITING
     blocks CBLReplicationExecutor-http://10.17.2.133:4984/db-pull-5f200@4823
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Thread.parkFor$(Thread.java:1220)
      - locked <0x130d> (a java.lang.Object)
      at sun.misc.Unsafe.park(Unsafe.java:299)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1078)
      at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
      at java.lang.Thread.run(Thread.java:818)

"Thread-2855@4318" prio=5 runnable
  java.lang.Thread.State: RUNNABLE
      at libcore.io.Posix.accept(Posix.java:-1)
      at libcore.io.BlockGuardOs.accept(BlockGuardOs.java:63)
      at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:89)
      at java.net.ServerSocket.implAccept(ServerSocket.java:217)
      - locked <0x1300> (a java.net.ServerSocket)
      at java.net.ServerSocket.accept(ServerSocket.java:141)
      at Acme.Serve.SimpleAcceptor.accept(SimpleAcceptor.java:40)
      at Acme.Serve.Serve.serve(Serve.java:809)
      at com.couchbase.lite.listener.LiteServer.serve(LiteServer.java:63)
      at com.couchbase.lite.listener.LiteListener.run(LiteListener.java:90)
      at java.lang.Thread.run(Thread.java:818)

"FinalizerDaemon@4854" daemon prio=5 waiting
  java.lang.Thread.State: WAITING
     blocks FinalizerDaemon@4854
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Object.wait(Object.java:423)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
      - locked <0x12fe> (a java.lang.ref.ReferenceQueue)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
      at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
      at java.lang.Thread.run(Thread.java:818)

"main@4851" prio=5 runnable
  java.lang.Thread.State: RUNNABLE
      at android.os.MessageQueue.nativePollOnce(MessageQueue.java:-1)
      at android.os.MessageQueue.next(MessageQueue.java:323)
      at android.os.Looper.loop(Looper.java:135)
      at android.app.ActivityThread.main(ActivityThread.java:5417)
      at java.lang.reflect.Method.invoke(Method.java:-1)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

"OkHttp ConnectionPool@4712" daemon prio=5 waiting
  java.lang.Thread.State: WAITING
     blocks OkHttp ConnectionPool@4712
      at java.lang.Object.wait(Object.java:-1)
      at okhttp3.ConnectionPool$1.run(ConnectionPool.java:66)
      - locked <0x1307> (a okhttp3.ConnectionPool)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
      at java.lang.Thread.run(Thread.java:818)

"OkHttp ConnectionPool@4827" daemon prio=5 waiting
  java.lang.Thread.State: WAITING
     blocks OkHttp ConnectionPool@4827
      at java.lang.Object.wait(Object.java:-1)
      at okhttp3.ConnectionPool$1.run(ConnectionPool.java:66)
      - locked <0x130f> (a okhttp3.ConnectionPool)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
      at java.lang.Thread.run(Thread.java:818)

It seems like the executor will be destroyed when the ReplicationInternal is finalized. At least from the REST POST /_replicate, it seems like the ReplicationInternal doesn't get finalized and the new one get created every time that the replicator is started from /_replicate request.

After start:
https://gist.github.com/hideki/fb77776791b7cb99ceda5f0d22ece129
After stop:
https://gist.github.com/hideki/d2083f3c6c73f70d0cd48eb78c607034

@pasin In Release 1.3.1, ReplicationInternal.finalize will never been invoked as ReplicationInternal.initializeReplicationExecutor sets up a ThreadFactory that references current ReplicationInternal instance.
As a consequence ReplicationInternal can not be garbage collected and underlying ScheduledExecutor/Thread is not collected.
@hideki A possible would be introducing a private static implementation of ThreadFactory that weak references ReplicationInternal instance.

I would suggest the usual way: make ReplicationInternal closable, by introducing close() or shutdown() method. The method would stop() the replication and then shutdown the executor, waiting endlessly for any tasks to finish. After shutdown() that instance ReplicationInternal could no longer be used, started nor stopped; basically, any method would simply fail with throw new IllegalStateException("closed").
Note that I fail to see how ReplicationInternal is thread-safe: executor is not final nor volatile and is not guarded by any synchronization/lock. Once the executor is made final, you can employ the following code to make close() thread-safe:
private final AtomicBoolean closed = new AtomicBoolean(false);
public void shutdown() {
if (closed.compareAndSet(false, true)) {
  stop();
  executor.shutdown();
  executor.awaitTermination(20, TimeUnit.SECOND);
}
}

Now, in your code, it is enough to call pullReplicator.shutdown() and pushReplicator.shutdown().
Waiting for GC is fragile as one can't really force GC: System.gc() is not guaranteed to sweep all objects. Therefore, currently the only way to stop the app is System.exit(0) which is not very nice.

@mvysny In my use case the Replication is not continuous. It is started on purpose.
When Replication.start is invoked and the current replicationInternal state is stopped, Replication.initReplicationInternal is called. This is where the leak comes from since the current replicationInternal is not reused.
Your suggestion could be used in this specific situation, ReplicationInternal.shutdown() could be called before invoking Replication.initReplicationInternal. However Replication.start will have to wait ReplicationInternal.shutdown() execution.

Hi @DavidAudrain
One-shot replicator memory leak issue is tracked by #290

authors: DavidAudrain hideki mvysny pasin

repo: couchbase/couchbase-lite-java-core


text:
Allow use of use_database in proxy_for classes

Due to the way the prepare_database function is currently implemented, it's not possible to have a class that calls use_database and proxy_for.
class Company < CouchRest::Model::Base
  use_database 'companies'
  property :slug

  proxy_database_method :slug
  proxy_for :invoices
end

class Invoice < CouchRest::Model::Base
  proxied_by :company
end

In this example, the proxy_database method of Company will always return the same database as is used by the Company class itself, due to the implementation in CouchRest::Model::Connection.prepare_database.
This PR makes the test case for this scenario fail and adds the ability to override the @_use_database instance variable in Connection module.

Thanks @ellneal
When will this PR merged to the master?

It's up to @samlown if or when this will be merged. For now @islam-askar, if you want to use all my changes you can just point at my fork:
gem 'couchrest_model', git: 'https://github.com/ellneal/couchrest_model.git', branch: 'develop'

@ellneal Thank you

Thanks for this @ellneal! This PR is now conflicting. Would you have chance to merge? There might also be some tests missing as I can't see that anything is being checked.

No problem @samlown, I'll sort the conflict out. As far as testing goes, I considered this PR more of a bug fix than feature addition, so I made the existing test cases for proxy_for fail in ab4eab4 without the changes I made in aca4dff. Is that ok?

Conflict has been resolved.

This is fixed in #218 so will merge that version. Thanks @ellneal!

authors: ellneal islam-askar samlown


text:
fix: UA-9204 Safer URL truncation

UA-9204 :rocket:
Proposed changes:
Over a year ago, PR #405 added truncation to this library. The motivation: the URL gets truncated server-side anyway, so might as well lower the request size and not send data this will be removed anyway. A reviewer points out that it may lead to invalid URIs. The risk of this was deemed low.
Fair enough, it took quite some time, but customers are getting data health warnings about invalid URLs. The URLs in question are truncated at an unfortunate point, leaving part of an %FF escape sequence (e.g. %9 or %) at the end of the URL. Long story short, this integration has URLs in an Asian language, and the URL standard mandates that any code point above 0xFF is encoded as utf-8 and embedded as escaped hex sequences. To illustrate, ツ encodes to %E3%83%84 (this code point requires 3 utf-8 bytes).
The quick and easy fix would be to simply detect a possible incomplete % sequence at the end, but that would still have the potential of truncating within a utf-8 multibyte code point, leaving it broken. I decided to go the extra mile and detect that too, and truncate the whole multibyte sequence. That effectively means URLs may get truncated to up to 11(!) characters less than the limit, as the longest 4-byte utf-8 sequence takes 12 URL characters to encode.
Validating using native APIs (e.g. URL)
In the mentioned PR, somebody suggested using the URL constructor to validate if the URL is valid. They didn't offer a suggested recovery on failure, but the most sensible is truncating one character more and trying again.

Detection
Incomplete escape sequence
Incomplete utf-8

new URL()
❌
❌

URL.canParse()
❌
❌

decodeURIComponent()
✅
✅

The only built-in method that catches these invalid URLs is decodeURIComponent though. That somewhat makes sense; it is the only method that actually needs to interpret the escape sequences and decode utf-8. It also seems behave consistently across all environments, including NodeJS.
Still, you will notice I opted to write our own solution. My main motivation is to not depend on a method that honestly is a bit of a black box, so it may end up truncating to (near) empty strings, if something else in the URL is invalid. The implementation proposed specifically checks for certain markers, so it just leaves content it doesn't deem invalid as-is. (Take some time to appreciate that double negative). I personally think this is better, because this is client-side. I'd rather see the malformed URLs (not caused by this truncation) come in server-side, if there is another error than incomplete escape sequences in there.
Of course, you may still voice your opinion if you prefer the decodeURIComponent implementation:

function isValidUrl(input: string): boolean {
    try {
        decodeURIComponent(input);
        return true;
    } catch (ignored) {
        return false;
    }
}

/**
 * Truncate a URL to an arbitrary length, taking care to not break inside a percent escape or UTF-8 multibyte sequence.
 *
 * @param input The input to truncate to the specified limit.
 * @param limit The limit to apply; if negative, no truncation is applied.
 * @returns The URL, possibly truncated to a length near limit (at most 11 characters less than limit).
 */
export function truncateUrl(input: string, limit: number): string {
    if (limit < 0 || input.length <= limit) {
        return input;
    }
    let truncated = input.substring(0, limit);
    while (truncated.length > 0 && !isValidUrl(truncated)) {
        truncated = truncated.substring(0, truncated.length - 1);
    }
    return truncated;
}

Changing the limit
As a last side-note: I don't know why the author of #405 decided to go with 128 as limit for some URLs. It seems our schema states 1024 as limit for those URLs. I don't mind increasing those truncation limits, but I believe that belongs in a separate PR from this issue fix.
How to test
I wrote unit tests that test input strings on multiple markers, with many scenarios. When switching to the alternative implementation, every test except URL_WITH_INVALID_ESCAPES behaves the same. (The latter for obvious reasons).
Checklist:

[X] Unit tests and/or functional tests are written and cover the proposed changes :exclamation:
[X] The proposed change can't affect any current customer implementation that could lead to events being rejected from our APIs or events to be miscategorized by UA.

I'll merge this on Monday, and hopefully @fvanham-coveo can help me validate it works well after deployment.


text:
Seiten umbenennen + evtl. Redirects erstellen

Gerade aufgefallen, dass die Seiten noch auf Englisch benannt sind.
Also /integration, /about und /contact - bitte auf Deutsch ändern
Redirects werden noch nicht notwendig sein, oder? Oder wird das immer zur Sicherheit angelegt?

Ob das Simm macht kommt ganz darauf an ob wir das ganze auch auf Englisch anbieten wollen. wenn Ja, sollten wir das so lassen.

Sollte das weitergehen würde ich schon die Website mehrsprachig anbieten. Du würdest dann entsprechend /de/contact und /en/contact machen? Oder wie funktioniert das via Netlify?

Ich würde das wie hier machen: https://svelte-i18n.netlify.com/about und nur den content je nach browser sprache des users ändern. Dann vllt noch nen switch zum manuellen umschalten im footer anbringen. Deshalb würde ich die Routen auch erst mal englisch lassen.

authors: alessafetzer schliflo

repo: coverified/website


text:
Snapshot testing

Snapshot framework to compare the model's current output to outputs that it's had in the past. Also added a method to easily update the snapshots.
Ran the tests and everything passes.

Do we need to be checking in the test data? This is PR is 225 files large ;).

All those files being deleted were from the old snapshot framework, which depended on them. I removed them because the new framework uses a different format (with a single file). I would argue that removing them simultaneous to the snapshot testing refactor is appropriate.

This is definitely something I'd like to land as part of supporting the new modeling work.

@tsebens Can we revisit this PR in the context of the changes being proposed here? https://docs.google.com/document/d/1VhQqMxtVYHQMIj9zFeb1DUQZ1aq1k4xIc_bYoTIqUb4/edit?ts=5e8a3a1e#

Closing as this branch is no longer relevant

authors: davidstrauss fridiculous jredding tsebens

repo: covid-projections/covid-data-model


text:
csvのデータが最新でない

大分県オープンデータカタログサイトのCSVデータが最新でない時がある

https://data.bodik.jp/dataset/f632f467-716c-46aa-8838-0d535f98b291/resource/3714d264-70f3-4518-a57a-8391e0851d7d/download/440001oitacovid19patients.csv
https://data.bodik.jp/dataset/f632f467-716c-46aa-8838-0d535f98b291/resource/96440e66-3061-43d6-adf3-ef1f24211d3a/download/440001oitacovid19datasummary.csv

CSVにない抜けた日付のデータをPDFからとってきておぎなうという方針を検討中。

県のオープンデータがPDFよりも早く更新されるようになったので対応しなくてよくなりました


text:
ANR in org.covidwatch.tags.android

Description: Crashed when launching the app from Androdi Studio
Device: Samsung A3 2017, Android 8
Crash logs:
https://gist.github.com/madim/7ae2998cac9051743a6d5c2925ea7630
Might possibly relate to: https://github.com/covid19risk/covidwatch-android/issues/80#event-3244660757

which branch is this error from?
I don't see "Context.startForegroundService" call (causing the crash) in the master or develop branch?

@prasad79 I'm not sure if it is related to this crash, but I was able to reproduce ANR in develop. It happens every time you launch the app from Android Studio
It is probably related to how we start and stop BluetoothManager (Service), because if we comment it out, ANR goes away

There is a bug indeed.
We should use only bindService and unbindService methods.

I'll update the library to the new version.
Plus fix some things related to this in the BluetoothManager

authors: Apisov madim prasad79


text:
Investigate structured logging

Description.
Currently devs use console.log with strings, which can be hard to parse and analyze.  Also, during dev, I often want to redirect logs etc.  Setting up some basic logging standards might be a good idea.
Refs:

Structured logging: https://stackify.com/what-is-structured-logging-and-why-developers-need-it/
And with Winston: https://stackify.com/winston-logging-tutorial/

In prod, winston could and should go to stdout, so it can be aggregated.  In dev, we might want this stuff going to a file, etc, for devs to debug.  Also, with better logging, we might be able to parallelize some things which are currently kept sequential for ease of reading logs.  (I know that this is not much of an issue for prod w/ Li due to the architecture, but for good testing and dev it might be helpful).

I find myself always console.table-ing the output of a source while I'm working on it, it'd be nice to do that always IMO (scraped successfully, heres the table of the output)

For "structured logging", I'd like to log things by json rather than by string, and include some base info everything (potentially source file ,source, some kind of date info, etc).  With struct logging, it's much easier to parse logs, and if we use proper logging then for duv we could choose DEBUG, INFO, etc output, and redirect to files.  For prod, it would all go to console for cloudwatch.

authors: camjc jzohrab

repo: covidatlas/li


text:
refactor!: Refactoring storage connectors to support multi-user DB storage for recall memory + metadata

Please describe the purpose of this pull request.
Recall memory and other MemGPT metadata is all stored locally - to support a hosted version of MemGPT, we need to integrate the DB connectors to support this other data.
Todos

[x] Edit storage connectors to assume that a single table is used across all users/agents (for recall/archival memory)
[x] Support recall memory storage via storage connectors
[x] Add comprehensive tests for storage connectors
[x] Update chroma
[x] Add sqllite integration
[x] Modify MemGPT configure to have options: local, postgres, lancedb

[x] local == chroma (archival) + sqlite (recall)
[ ] `postgres == postgres for everything

[x] Add deletion support for sources
[x] Create metadata tables:

[x] Sources - Store data source metadata

Supported Query Types
The following queries will be supported for each DB integration:

Vector Search
Date Search
Text Search

Postgres
✅
✅
✅

Chroma
✅
❌
❌

LanceDB
✅
❌
❌

SQLLite
❌
✅
✅

Based on the types of queries supported, each storage connector can be used/not used for the following tables:

Postgres
SQLLite
Chroma
LanceDB

Passage
✅
❌
✅
✅

Message
✅
✅
❌
❌

Document
✅
❌
✅
✅

Agent
✅
✅
❌
❌

User
✅
✅
❌
❌

Data Source
✅
✅
❌
❌

For local setups, we will use SQLLite + Chroma, and for the hosted setup, we will use Postgres.
How to test

Storage tests: poetry run pytest -s tests/test_storage.py
Archival memory tests: poetry run pytest -s tests/test_load_archival.py
Testing data loading: memgpt load ...
Testing dataset attaching: memgpt attach ...
Testing listing sources: memgpt list sources
Testing source deletion: memgpt delete source ....
memgpt run

Related issues or PRs
TODO
Is your PR over 500 lines of code?
Yes
Pushed to another PR:
Future PR:

Adding user/agent information into the database (this will be tricky to implement since we need to ensure backwards compatibility which agents created locally)
Adding a document store

Detailed todos:

[ ] Add memgpt migrate CLI function (function also called with new memgpt run)

[ ] Migrate MemGPT config info
[ ] Migrate agent config
[ ] Migrate agent recall memory
[ ] Migrate agent archival memory
[ ] Migrate loaded data sources

[ ] Add deletion support for agents
[ ] Create metadata tables:

[ ] Agents - Store created agents and attached data sources
[ ] Users - Store user configs

[ ] Migrate to pydantic models https://github.com/tiangolo/sqlmodel

[ ] MemGPTConfig
[ ] AgentConfig
[ ] Passage
[ ] Message

[ ] Migrate LanceDB integration to re-add support for LanceDB archival memory

@cpacker given the available combinations of storage backends, so you think the current configure flow makes sense? It feels a bit overly complex, but maybe its fine since we have memgpt quickstart?
We can also maybe push this to another PR and take more time to think about configuration design.

Tests ran:
From OP:

[x] Storage tests: poetry run pytest -s tests/test_storage.py

Note: run with local docker container

[x] Archival memory tests: poetry run pytest -s tests/test_load_archival.py

Note: OpenAI embeddings was freezing, added code in test to point at our hosted endpoint

[x] Testing data loading: memgpt load ...

Note: using example from docs (memgpt load directory --name memgpt_research_paper --input-files=memgpt_research_paper.pdf)
Added commit to prevent scary error message based on bad configs + some extra input sanitization on memgpt configure

[x] ⚠ Testing dataset attaching: memgpt attach ...

Works, but lots of debug output that needs to be cleaned

[x] Testing listing sources: memgpt list sources
[x] ⚠ Testing source deletion: memgpt delete source ....
[x] ⚠ memgpt run

I get a warning that either needs to be patched or silenced
Progress bars on messages also need to be silenced

Extra tests:

[ ] memgpt configure -> memgpt run w/ defaults (chroma+sqllite)
[ ] memgpt run with an old agent
[ ] on a fresh install (rm -rf ~/.memgpt, poetry install, no extras): memgpt run (should do quickstart + chroma/sqlite backend setup?)
[ ] ???

Testing memgpt load
With bad config:
[defaults]
preset = memgpt_chat
persona = sam_pov
human = basic

[model]
model = ehartford/dolphin-2.5-mixtral-8x7b
model_endpoint = http://localhost:8000
model_endpoint_type = vllm
model_wrapper = chatml
context_window = 8192

[embedding]
embedding_endpoint_type = hugging-face
embedding_model = BAAI/bge-large-en-v1.5
embedding_dim = 1024
embedding_chunk_size = 300

[archival_storage]
type = postgres
path = /Users/loaner/.memgpt/chroma
uri = postgresql+pg8000://memgpt:memgpt@localhost:8888/memgpt

[recall_storage]
type = sqlite
path = /Users/loaner/.memgpt

[metadata_storage]
type = sqlite
path = /Users/loaner/.memgpt

[version]
memgpt_version = 0.2.10

[client]
anon_clientid = ...

Results in bad error:
 % memgpt load directory --name memgpt_research_paper --input-files=memgpt_research_paper.pdf

/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:178: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_sourcesModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (SourceModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
Parsing nodes: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 15/15 [00:00<00:00, 289.88it/s]
Generating embeddings:   0%|                                                                                | 0/127 [00:00<?, ?it/s]Traceback (most recent call last):

httpcore.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol.

After fixing config with memgpt quickstart, works fine:
...
[embedding]
embedding_endpoint_type = hugging-face
embedding_endpoint = https://embeddings.memgpt.ai
embedding_model = BAAI/bge-large-en-v1.5
embedding_dim = 1024
embedding_chunk_size = 300
...

% memgpt load directory --name memgpt_research_paper --input-files=memgpt_research_paper.pdf

/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:178: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_sourcesModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (SourceModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
Data source memgpt_research_paper already exists in metadata, skipping.
Parsing nodes: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 15/15 [00:00<00:00, 301.19it/s]
Generating embeddings: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 127/127 [00:20<00:00,  6.27it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 127/127 [00:00<00:00, 259588.99it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 127/127 [00:00<00:00, 59265.31it/s]

With new commits
bad6abc and d9ed2df
Bad config = clean error:
% memgpt load directory --name memgpt_research_paper --input-files=memgpt_research_paper.pdf

/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:178: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_sourcesModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (SourceModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
Data source memgpt_research_paper already exists in metadata, skipping.
Failed to load directory from provided information.
Embeddings endpoint was provided an invalid URL (set to: 'None'). Make sure embedding_endpoint is set correctly in your MemGPT config.

Also, memgpt configure doesn't allow bad URLs:
% memgpt configure
? Select LLM inference provider: local
? Select LLM backend (select 'openai' if you have an OpenAI compatible proxy): vllm
? Enter default endpoint: http://localhost:8000
Failed to get model list from http://localhost:8000, using defaults
? Enter HuggingFace model tag (e.g. ehartford/dolphin-2.2.1-mistral-7b): ehartford/dolphin-2.5-mixtral-8x7b
? Select default model wrapper (recommended: chatml): chatml
? Select your model's context window (for Mistral 7B models, this is probably 8k / 8192): 8192
? Select embedding provider: hugging-face
? Enter default endpoint:
Endpoint must be a valid address
? Enter default endpoint:
Endpoint must be a valid address
? Enter default endpoint:
Endpoint must be a valid address
? Enter default endpoint:
Endpoint must be a valid address
? Enter default endpoint:
Endpoint must be a valid address
? Enter default endpoint: https://localhost:8000
? Enter HuggingFace model tag (e.g. BAAI/bge-large-en-v1.5): BAAI/bge-large-en-v1.5
...

Testing memgpt run

 % memgpt run

? Would you like to select an existing agent? No

🧬 Creating new agent...
->  🤖 Using persona profile 'sam_pov'
->  🧑 Using human profile 'basic'
/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:154: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_recall_memory_agentModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (MessageModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
🎉 Created new agent 'agent_9'

Hit enter to begin (will request first MemGPT message)

💭 Recognizing a new user. Time to establish a connection.
🤖 Hello, I'm Sam. It's a pleasure to meet you. How can I assist you today?
  0%|                                                                                | 0/2 [00:00<?, ?it/s]
100%|###########################################################################################################################################################| 2/2 [00:00<00:00, 855.81it/s]

> Enter your message: What do you know about me?
💭 Processing user query. Will have to dig into the Recall Memory to search for previous conversations.
🤖 As of now, my core memory holds the information that your name is Chad. Alright? To know more, would you like to look up additional information in your human memory or provide any specific
details?
  0%|                                                                                | 0/3 [00:00<?, ?it/s]
100%|##########################################################################################################################################################| 3/3 [00:00<00:00, 2334.93it/s]

> Enter your message:

Testing /attach
% memgpt run

? Would you like to select an existing agent? No

🧬 Creating new agent...
->  🤖 Using persona profile 'sam_pov'
->  🧑 Using human profile 'basic'
/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:154: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_recall_memory_agentModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (MessageModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
🎉 Created new agent 'agent_10'

Hit enter to begin (will request first MemGPT message)

/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:178: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_sourcesModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (SourceModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
💭 This is a human user signing in for the first time. Is this correct, Sam?
🤖 Hey there, Chad! As you can see, I'm Sam, chemical element number 15, and a lot more. Nice to meet you!
  0%|                                                                                | 0/2 [00:00<?, ?it/s]
100%|##########################################################################################################################################################| 2/2 [00:00<00:00, 1028.90it/s]

> Enter your message: /attach
? Select data source refactor
Ingesting 127 passages into agent_10
  0%|                                                                                | 0/2 [00:00<?, ?it/s]inserting [<memgpt.data_types.Passage object at
inserting [<memgpt.data_types.Passage object at 0x16bb38070>, <memgpt.data_types.Passage object at 0x16bb381c0>, <memgpt.data_types.Passage object at 0x16bb399f0>, <memgpt.data_types.Passage object at 0x16bb383d0>, <memgpt.data_types.Passage object at 0x16bb390c0>, <memgpt.data_types.Passage object at 0x16bb3a050>, <memgpt.data_types.Passage object at 0x16bb3a8f0>, <memgpt.data_types.Passage object at 0x16bb3a740>, <memgpt.data_types.Passage object at 0x16bb3a7d0>, <memgpt.data_types.Passage object at 0x16bb3a770>, <memgpt.data_types.Passage object at 0x16bb3a680>, <memgpt.data_types.Passage object at 0x16bb3a440>, <memgpt.data_types.Passage object at 0x16bb3a620>, <memgpt.data_types.Passage object at 0x16bb3a560>, <memgpt.data_types.Passage object at 0x16bb3a410>, <memgpt.data_types.Passage object at 0x16bb3a6e0>, <memgpt.data_types.Passage object at 0x16bb3a500>, <memgpt.data_types.Passage object at 0x16bb39150>, <memgpt.data_types.Passage object at 0x16bb3a4a0>, <memgpt.data_types.Passage object at 0x16bb3a200>, <memgpt.data_types.Passage object at 0x16bb3a3e0>, <memgpt.data_types.Passage object at 0x16bb3a2f0>, <memgpt.data_types.Passage object at 0x16bb3a2c0>, <memgpt.data_types.Passage object at 0x16bb3a260>, <memgpt.data_types.Passage object at 0x16bb38400>, <memgpt.data_types.Passage object at 0x16bb3a1a0>, <memgpt.data_types.Passage object at 0x16bb3a470>]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 19.71it/s]
Attached data source refactor to agent agent_10, consisting of 27. Agent now has 127 embeddings in archival memory.

Testing memgpt list sources
% memgpt list sources
/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:178: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_sourcesModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (SourceModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
+-----------------------+----------------------------+--------------------+--------+
|          Name         |         Created At         | Number of Passages | Agents |
+-----------------------+----------------------------+--------------------+--------+
| memgpt_research_paper | 2024-01-02 12:55:17.872492 |         0          |        |
|        refactor       | 2024-01-02 13:29:31.354933 |        127         |        |
+-----------------------+----------------------------+--------------------+--------+

Testing memgpt delete source
% memgpt delete source memgpt_research_paper
/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:178: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_sourcesModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (SourceModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})

% memgpt list sources
/Users/loaner/dev/MemGPT-2/memgpt/connectors/db.py:178: SAWarning: This declarative base already contains a class with the same class name and module name as memgpt.connectors.db.Memgpt_sourcesModel, and will be replaced in the string-lookup table.
  Model = type(class_name, (SourceModel,), {"__tablename__": table_name, "__table_args__": {"extend_existing": True}})
+----------+----------------------------+--------------------+--------+
|   Name   |         Created At         | Number of Passages | Agents |
+----------+----------------------------+--------------------+--------+
| refactor | 2024-01-02 13:29:31.354933 |        127         |        |
+----------+----------------------------+--------------------+--------+

After extra commit that cleans up success / error messages: 69849ba

Extra tests:

[ ] memgpt configure -> memgpt run w/ defaults (chroma+sqllite)
[x] memgpt run with an old agent

⚠ Fails on conversation search

[x] on a fresh install (rm -rf ~/.memgpt, poetry install, no extras): memgpt run (should do quickstart + chroma/sqlite backend setup?)

⚠ Still have extra output

[ ] ???

fresh install

memgpt run on an old agent

Need to patch bug with storage queries:
⚡🧠 [function] searching memory with conversation_search
'page'
{'query': 'banana'}
Error calling function conversation_search: SQLStorageConnector.query_text() takes 2 positional arguments but 4 were given
Traceback (most recent call last):
  File "/home/cpacker/dev/MemGPT/memgpt/agent.py", line 459, in handle_ai_response
    function_response = function_to_call(**function_args)
  File "/home/cpacker/dev/MemGPT/memgpt/functions/function_sets/base.py", line 105, in conversation_search
    results, total = self.persistence_manager.recall_memory.text_search(query, count=count, start=page * count)
  File "/home/cpacker/dev/MemGPT/memgpt/memory.py", line 313, in text_search
    self.storage.query_text(query_string, count, start)
TypeError: SQLStorageConnector.query_text() takes 2 positional arguments but 4 were given

[ ] Update to use tools instead of functions and create tool_call_id
[ ] Fix bug to have limit/count for queries

authors: cpacker sarahwooders

repo: cpacker/MemGPT


text:
Feature/get rid off boost dependency

3 additional commits to eliminate boost dependency, depends on my previous pull request

Can you take a look at these conflicts, following the merge of #135?

@glynos Thank you for a quick response. Must be fine now. Is there any particular reason why you do not maintain this uri implementation anymore?

I don't maintain it because I want to spend my time on the WhatWG spec implementation (i.e. Skyr URL). There are a lot of flaws with the original (the spec and my implementation).

authors: Liastre glynos

repo: cpp-netlib/uri


text:
Handling the 64 bit test case in a cleaner way

Rewrote test so it will compile on all 32 bit and 64 bit systems.
We now have the following distinct scenarios:

Test will pass on 64 bit systems with 64 bit longs
-> TEST().
Test should pass on 64 bit systems with 32 bit longs, but fails
due to a known implementation problem. Needs to be fixed.
-> IGNORE_TEST() for now.
Test cannot pass on 32 bit systems
-> IGNORE_TEST() always.

Should we then get the other test back that you deleted?

Why?
Would you then (assuming the 32 bit long problem was fixed) use the deleted one for 64/64 and the one in this pull request for 64/32?
E.g. I could then also flesh out the ignored test case that should pass. Using the new code there, it would compile, but fail if it wasn't ignored.
Hmm. Maybe not at all a bad idea.

We would then have:
TEST() // Original test case for pure 64 bit systems
IGNORE_TEST() // 32 bit long compatible test case
IGNORE_TEST() // Always empty for 32 bit systems

Should I do that?

Sorry, I'm slow. In this commit: https://github.com/cpputest/cpputest/commit/a4df3a62293d43bdf02c0039ed1c3aef16239ffe#diff-82d4bffd3899d43667ae495ad4b04a9a
You removed one test. Shouldn't we have that one back?

Yes, I think we should have it back.
But then, we can give pure 64 bit systems the old test back also (without the funky 32 bit max initialization constraint workaround).

P.S. Right now, I don't have a 64 bit Windows gcc environment ready for testing (we changed all back to 32 bit at work) and my Mac is 64bit (32bit Windows VM). To be frank, I find that combination detestable, so I don't use it normally (the only reason to use 64bit apps on 64 bit Win is if one of them needs that much memory all on its own :-)

Okay, I managed to test it -- sort of.

un-ignore test
compile with mingw 64 bit
hack away the pthread stuff
"fix up" Simplestring (see below) for Windows
Test passes.

SimpleString HexStringFrom(const void* value)
{
    return StringFromFormat("%llx", (long long)value);
}

So, this can be considered fully tested

32 bit Windows (my usual setup) - I?LP32
64 bit Windows with 32 bit longs (MinGW 64 bit) - LLP64 / IL32P64
Travis - LLP64 / I32LP64

Originally the test wasn't IGNOREd, but now it is. Why is this?

Could you maybe comment in the code? I am not sure I understand what exactly you are referring to here.
If you look at the new code in context (not the diff), the comments would make pretty clear what's intendend (or else, I failed miserably with this pull request :-)

Ah, now I get it. The diff is a bit confusing.
Before, the testcase was used for L64P64 (although the test is compatible with L32P64).
Now I am distingishing L64P64 with its own test case.
The old L32P64 test case is now used for L32P64 systems (Windows), and it needs to be ignored until SimpleString is fixed (one such fix would be using %llx and (long long), as detailed by the comment.
As I mentioned above, take a look at the new code in context (not the diff).

This way we make explicit that

One IGNORE_TEST() is out of necessity (no way this will ever pass on L32P32 systems)
The other IGNORE_TEST() is for code that needs fixing

Bunching these together like in my last pull request makes for less code and "fewer" conditional defines, but contradicts the principle of making explicit why we ignore certain tests, and what ultimately needs to be fixed.

But it wasn't IGNOREd before? So, why does it need to be ignored now?

The conditional define logic is different.
Before, L32P32 and L32P64 was bunched together (which it shouldn't, in my opinion) and totally IGNOREd.
So the not-IGNORED test was only run for L64P64 (now covered by the new test case).
Now, the not-IGNORED test is run on L32P64 systems, where it will compile but fail (until I twist your arm to use long long in SimpleString). Hence it now needs to be IGNOREd.......

Ok, I'll just merge it then :)

Thx :)
This is the test failing when built against MinGW-64:

and now it is ignored:

authors: arstrube basvodde

repo: cpputest/cpputest


text:
Get the decision tree for the latest timestamp when no timestamps is passed

When using get_decision_tree we must pass a integer in argument
One can get the decision tree for the latest timestamp giving a huge timestamp

Also should be done in craft-ai/craft-ai-client-js

#114 solved this.

authors: GaetanMil cloderic sperretcraft

repo: craft-ai/craft-ai-client-python


text:
No Options Presented with "Select the database engine..."

Description
Both following nitro create my-project and a follow-up attempt with nitro db add no options are presented to choose from.

Additional info

Nitro version: 2.0.7
Docker version: 20.10.6 / desktop: 3.3.3

I re-ran the operation without changing the default webroot (from web to public) and this time was prompted for a database name, but not given the option to select an engine.
FWIW both times I selected PHP 8.

Hmmm, was the database container running when you used create? nitro ls would give you the output.

@jasonmccallister Good question. :) If I run into the issue again I will pay more attention and let you know.

Hi, we are closing this issue as we have decided to retire Nitro, so no additional work will occur on this project. You can read the official blog post here https://craftcms.com/blog/retiring-craft-nitro. We appreciate everyones feedback and involvement and we look forward to refocusing our efforts on Cloud!
If you're looking for a new local development environment, we recommend DDEV and have a knowledge base article to help you with the transition: https://craftcms.com/knowledge-base/migrating-from-craft-nitro-to-ddev.

authors: jasonmccallister kerns

repo: craftcms/nitro


text:
issue with angular 4. "confirm does not exist on type 'jQueryStatic' ".

I am trying to create angular 4 Directive with the help of this directive. but I am getting an error "confirm does not exist on type 'jQueryStatic' "

@Directive({
  selector: '[confirm]'
})
export class ConfirmDirective {
  @Output('confirm-click') click: any = new EventEmitter();
  @HostListener('click', ['$event']) clicked(e) {

    //Error is commig in following code : **confirm does not exist on type 'jQueryStatic'**
    $.confirm({

      buttons: {
        confirm: () => this.click.emit(),
        cancel: () => {}
      }
    });
  }
}

please provide the solution asap. Thanks in advance.

on top of the file declare
declare const jQuery: {
    confirm: Function
};

and then in your code
jQuery.confirm();

I will making a angular4 service soon.

authors: TechnicalDiary craftpip

repo: craftpip/jquery-confirm


text:
Only EscapeKey not work

jquery-confirm version:
v3.3.4
I'm submitting a ...  (check one with "x")
[X] bug report
[ ] feature request
[ ] support request
Steps to reproduce:
https://craftpip.github.io/jquery-confirm/#escape-key
Other information:
my last version used was 3.3.0 and it was working.

@craftpip help please 😁


text:
jquery-confirm modal does not close after external function call

jquery-confirm version:
v3.3.4
I'm submitting a ...  (check one with "x")
[ ] bug report
[ ] feature request
[X] support request
Current behavior:
I have a confirm modal that has a form loaded using detach and append. The form has a submit button in it that calls an ajax submit.
All of this works fine except the jquery-confirm modal does not close when this submit button is pressed. Just not sure how to handle this - is there a method to close the modal from this button press or do i need to somehow incorporate the submit into another button in the modal?
Expected behavior:
The jquery-confirm modal should close on either the submit button press or the ajax success return called by the button. the jquery-confirm button code:
Steps to reproduce:
Related code:
buttons:{
                ACCEPT:{
                btnClass:'allowancebtn',
                text:'Accept Damage Allowance',
                action: function(accept){
                $("#cust_refund_amt").val(v.target.dataset.allowance);//this will be sell price(prc) for refund, allowance(allowance) for damage allowance
                signeeded = 1;
             var elem = $("#canvas").detach();//.appendTo("#parentNode");
             $(elem).insertBefore('.damages .damagesend');
             var elem = $("#damages").detach();//.appendTo("#parentNode");
             this.setContentAppend(elem);
              var cw = $("#canvas").innerWidth();
             var co = $("#canvas").offset();
             zkSignature.capture(cw,co);
            $.each(this.buttons, function (key, val) {
            this.hide();
    });
    return false;
                }
                },
                DECLINE:{
                btnClass:'damagebtn',
                text:'Decline Allowance',
                action: function(decline){

                }
                }
                }

Other information:

added another button to the confirm to act as submit. Problem solved.


text:
Add Sprite_sprite(tileName)

example usage

No objections, thus merging.
As discussed in linked the issue, this introduces the same semantic "inconsistency" as the already available ability to change a sprite component's appearance with new coordinates.

repo: craftyjs/Crafty


text:
[WARN ][i.c.h.n.HttpBlobHandler  ] Broken pipe

CrateDB version: 2.0.5
JVM version: openjdk-8-jre:amd64              8u131-b11-0ubuntu1.16.04.2
OS version / environment description: ubuntu 16.04
Problem description:
One node in my three nodes cluster will randomly spam with this log entry
"[WARN ][i.c.h.n.HttpBlobHandler  ] Broken pipe"
the only way to fix this is to restart this node, and a few hours later, it will pop up again.
Steps to reproduce:
I can't reproduce, but it will happen again in a few hours.

hi @leomkkwan, do you have any other logs?
are there any abnormalities in the monitoring?
are there any network issues?

Attached is the log from yesterday night to this morning. Everything seems normal, and then it started gc overhead message with broken pipe message afterward.
This is a 32 core CPU machine, when this happen, the CPU load will keep at 25%. The only way to correct this is restart this node.
The workload is purely web log insert to one big partitioned table with 2.5 Billion rows and around 600G in size.
ClickTrack-2017-07-19.zip

Sorry for the late follow up - I guess holidays kept us from replying earlier.
The Broken pipe warning can appear if a client connection is "forcefully" closed.

when this happen, the CPU load will keep at 25%. The only way to correct this is restart this node.

Do I understant this correctly in that the load is also at 25% before these
errors appear - so it does not increase?

Everything seems normal, and then it started gc overhead message with broken pipe message afterward

Depending on the load, workload and available heap, gc overhead messages can
be okay. But given your initial description those could be related to some
memory leaks that we've fixed in the latest 2.1 releases. Would it be
possible for you to upgrade and report back if you still run into this issue?

Upgrade from 2.0.7 to 2.1.5 solved all problems.
2.0.7 still have issue.
Thanks.

@leomkkwan as 2.1.5 is now our stable version and we don't support 2.0.x anymore i'm closing this ticket. if there anything similar appears in 2.1.x feel free to reopen it.

authors: joemoe leomkkwan mfussenegger

repo: crate/crate


text:
Tests: Increase timeout for testCopyFromFileWithPartitionCreation

With the recent resilience improvements to partition creation this test
is now a lot slower because we're effectively creating all partitions
sequentially.
(The bulk_size is dynamically adapted to keep the number of shards that
have to be created per node below ~10, otherwise the chance that the
wait_for_active_shards timeout is reached becomes too high and it's
likely to cause shard failures later on)

Codecov Report

Merging #6508 into master will decrease coverage by 0.07%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #6508      +/-   ##
============================================
- Coverage        83%   82.93%   -0.08%
+ Complexity    13103    13096       -7
============================================
  Files          1503     1503
  Lines         48725    48725
  Branches       5885     5885
============================================
- Hits          40445    40410      -35
- Misses         5493     5531      +38
+ Partials       2787     2784       -3

Impacted Files
Coverage Δ
Complexity Δ

...ration/aggregation/statistics/moment/Variance.java
66.66% <0%> (-33.34%)
5% <0%> (-2%)

...exceptions/GroupByOnArrayUnsupportedException.java
66.66% <0%> (-33.34%)
1% <0%> (-1%)

...a/io/crate/executor/transport/ActionListeners.java
33.33% <0%> (-22.23%)
2% <0%> (-1%)

...ion/aggregation/impl/GeometricMeanAggregation.java
59.09% <0%> (-21.22%)
11% <0%> (ø)

...lanner/projection/ColumnIndexWriterProjection.java
47.88% <0%> (-16.91%)
12% <0%> (-4%)

...peration/aggregation/impl/VarianceAggregation.java
64.7% <0%> (-15.69%)
11% <0%> (ø)

...aggregation/impl/StandardDeviationAggregation.java
64.7% <0%> (-15.69%)
11% <0%> (ø)

...io/crate/protocols/postgres/types/VarCharType.java
91.66% <0%> (-8.34%)
10% <0%> (-1%)

.../java/io/crate/blob/TransportDeleteBlobAction.java
75% <0%> (-5%)
4% <0%> (-1%)

...otocols/postgres/RetryOnFailureResultReceiver.java
88.46% <0%> (-3.85%)
10% <0%> (-1%)

... and 27 more

Continue to review full report at Codecov.

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

authors: codecov-io mfussenegger


text:
求助：我想拉取0.6.3版本，但我只能拉取到0.6.0

求助：我想拉取0.6.3版本，但我只能拉取到0.6.0

你拉的命令是啥，阿里云的机器么

不要用阿里云镜像

authors: 123444-7 ma-pony tikazyq

repo: crawlab-team/crawlab


text:
[Sitemaps] Trim Unicode whitespace around URLs, fixes #224

Trim all Unicode white space from URLs in sitemaps, sitemap indexes and feeds.

Hi @kkrugler, updated the PR, rebased to current master, added changelog entry. All occurrences of Character.isWhitespace(char ch) are now replaced by a call of isWhitespace(char c). This applies to all code of the Sitemap parser. Afaics, all other packages (eg., the robots.txt parser) only support ASCII white space.

repo: crawler-commons/crawler-commons


text:
Use environment cflags

What does this PR do?
An alternate implementation for #377 that takes the environment's CFLAGS.
Checklist before merging

If your PR involves the changes mentioned below and completed the action, please tick the corresponding option.
If a modification is not involved, please skip it directly.

[ ] If it's a extension or dependency update, make sure adding related extensions in src/global/test-extensions.php.
[ ] If you changed the behavior of static-php-cli, add docs in static-php/static-php-cli-docs .
[ ] If you updated config/xxxx.json content, run bin/spc dev:sort-config xxx.

Also, it could be useful and relatively easy to implement to support {$LIBRARY_NAME}_CFLAGS to allow setting flags for a specific library. This would enable adding debug symbols only to some libraries or to use different optimization levels depending on the library.

@dunglas Yep, almost got a patch done, just testing it now. I need to get to bed soon, but will finish it up tomorrow.
you can do icu_CFLAGS="-O3" to set just icu flags, or CFLAGS="-O3" to set all of them.

closing this PR though, as it isn't a truly viable approach (you can see progress on my fork's main branch).

@dunglas, I'm not going to continue with this as my investigation is complete and being able to optimize the libraries (even going so far as using -flto) doesn't seem to have much impact. It turns out the issue I'm hunting for may be related to libc implementations.

Ok, do you have some draft to share that I can use as as base?
@crazywhalecc are you interested in a patch adding this feature?

are you interested in a patch adding this feature?

@dunglas Does the feature you mentioned allow custom compilation commands and vars or switch glibc?
The former may require opening a proposal, as it may involve significant code modifications. The latter can be achieved by using an environment detection tool and adding specific commands.

@crazywhalecc my proposal was "just" to allow passing custom CGLAGS by setting CGLAGS (global) or ${LIBRARY_NAME}_CFLAGS (specific lib) env vars.

@dunglas I created an issue to discuss the modifications to this mode.

authors: crazywhalecc dunglas withinboredom

repo: crazywhalecc/static-php-cli


text:
MAC OS: failed to expose port 127.0.0.1:6443 -> 192.168.127.2:6443: listen tcp 127.0.0.1:6443: bind: address already in use

I installed OpenShift local last week, ran through the setup and started crc successfully.
Came back this week, and everything works except crc start:
failed to expose port 127.0.0.1:6443 -> 192.168.127.2:6443: listen tcp 127.0.0.1:6443: bind: address already in use
I don't have anything on 192.168.127.2. My current address is 192.168.127.1. So I don't know where this is coming from.
I already tried

crc stop
crc delete
crc cleanup
crc setup
crc start

No success

127.0.0.1:6443 -> 192.168.127.2:6443 it means it is try to map 6443 port from host to VM and if the port is already in use then it will fail. Can you make sure you don't have 6443 port used by any other service on your mac.
sudo lsof -i :6443

@praveenkumar Thanks so much for responding!
So, I did try checking for other services using that port, and it brought back nothing.  This is why I opened a ticket.  The error is pretty clear, which makes it confusing when there aren't other listeners on that port.  Even after I deleted the instance a couple of times, I still got the error.
My mistake could have been using the netstat command, but I don't know why.  I've always used netstat.
Anyway I just rebooted my laptop.  I have Docker Desktop installed and it is set to automatically run - I also have the kubernetes module installed there.  I shut this down as well, although I don't have any evidence that this was the cause.
In any case, I'm up and running again!  Thank you!
crc     1229 kameroncole   15u  IPv4 0x13e7794b47673dff      0t0  TCP localhost:sun-sr-https (LISTEN)

I have Docker Desktop installed and it is set to automatically run - I also have the kubernetes module installed there.

@kc0olm looks like k8s on docker desktop might be the culprit because it also use 6443 port on host (iirc). Glad that you are able to make it work. I am closing the issue for now.

repo: crc-org/crc


text:
The distance between elements in the “Attribution tab” doesn’t follow the mockup.

In the single result page, attribution tab, the distance between sections should be 24px. The sections ares:

Section title.
Attribution information as rich text.
Html information.
Link to the survey.
Verify at the source content.

Current implementation

I'm working on this

I kinda fixed it

Oops, you should have commented here
Anyways it's okay :)

will keep that in mind thanks

authors: hemanth-hk panchovm samcaspus

repo: creativecommons/cccatalog-frontend


text:
remove gulp-util dependency

Following the upgrade plan at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5 replace the gulp-util dependency with https://github.com/gulpjs/plugin-error
See https://github.com/creativelive/gulp-diff/issues/12

+1

+1

+1

+1

authors: dzoba kevvor ryanjadhav

repo: creativelive/gulp-diff


text:
Error: Class 'Schema' not found

Hi!
When I try to migrate the post table I get the error:
Error: Class 'Schema' not found

Solved, I did not add db schema.
use yii\db\Schema;
thanks for this great extension.


text:
Accessing input information in Tools

I'm trying to pass input information to my crew, but I'm having trouble accessing those inputs within my tool.
When I include these variables in prompts (goals) or descriptions, I can access them inside my tool. However, I prefer not to mention the inputs in the prompt and still access them within my tool.
Can anyone suggest the right way to achieve this? Do agents or tasks have the functionality to take inputs or configurations directly, similar to how it's done in crews?
Thank you.

+1

authors: carvalhorafael dudesparsh

repo: crewAIInc/crewAI


text:
update readme

updated build instructions
link to docs folder

Looks great.

authors: jrcheli seanvaleo

repo: criblio/appscope


text:
Fix bugs in datacube extension.

Add test.
Add schema for local validation.

So the tests run fine locally, and I don't quite understand why the datacube one fails on the CI.

I traced the problem to pystac. Works with 1.8.3, fails with 1.9.0.

Oh I see, this is from Pathlib.On Nov 16, 2023, at 9:00 AM, David Huard @.***> wrote:
@huard commented on this pull request.
In tests/test_cmip6_datacube.py:

+def test_datacube_helper():

Create item

ds = xncml.Dataset(filepath=DIR / "data" / "o3_Amon_GFDL-ESM4_historical_r1i1p1f1_gr1_185001-194912.xml")
attrs = ds.to_cf_dict()
attrs["access_urls"] = {"HTTPServer": "http://example.com"}
item = STAC_item_from_metadata("test", attrs, CMIP6ItemProperties, GeoJSONPolygon)

Add extension

dc = DataCubeHelper(attrs)
dc_ext = DatacubeExtension.ext(item, add_if_missing=True)
dc_ext.apply(dimensions=dc.dimensions, variables=dc.variables)

Validate

schema_uri = DIR / "schemas" / "datacube.json"

No, it's just syntactic sugar for the pathlib.Path object (see how DIR is defined). It's part of the standard lib and I find it clarifies manipulation of paths.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because your review was requested.Message ID: @.***>

I don't have permission to merge, let me know if there's anything else to modify.

I also can't seem to merge anymore. @fmigneault did you make any aches changes after taking over from Mathieu? Please give David and I elevated permissions.

You should both be able to merge as long as there was 1 review approval from someone else.

authors: dchandan fmigneault huard

repo: crim-ca/stac-populator


text:
你好 关于部分网站不支持查词

你好 谢谢你的插件 好可爱啊 很喜欢 。就是我发现newyorker似乎不支持查词 不知道为什么，请问有什么方法在newyorker上开启查词功能吗谢谢

还有一个小小的建议就是是否可能增加一个功能 快捷关闭查词  比如右键关闭 或者自动几秒关闭这样。

你能给个例子么，我上 https://www.newyorker.com/ 浏览没有发现问题的。点击右上的图标在最下面可以开关划词。太频繁的建议更换划词方式为按住 ctrl 查词。

你好 我刚刚又试了一遍发现是可以的 就是在前两天刚装插件的时候 划词没有sala小图标出现。谢谢你做这么好用的插件出来。

嗯，留意看简介，刚安装需要刷新已打开的页面以加载词典。

authors: crimx xxxxxdog

repo: crimx/crx-saladict


text:
Replace 'in' with ';' when using let in expressions

Fixes #61.
This PR also allows blocks to be nested, e.g.
    let result = {
        let sum = {
            let x = 5;
            let y = 10;
            x + y
        };
        sum
    }

Codecov Report

Merging #84 (9e14970) into main (7b28595) will increase coverage by 0.11%.
The diff coverage is 98.27%.

@@            Coverage Diff             @@
##             main      #84      +/-   ##
==========================================
+ Coverage   90.73%   90.85%   +0.11%
==========================================
  Files          21       22       +1
  Lines        2257     2275      +18
==========================================
+ Hits         2048     2067      +19
+ Misses        209      208       -1

Impacted Files
Coverage Δ

src/ast/expr.rs
77.77% <ø> (+5.55%)
:arrow_up:

src/ast/pattern.rs
75.00% <75.00%> (ø)

src/infer/infer.rs
95.28% <100.00%> (ø)

src/parser/decl.rs
100.00% <100.00%> (ø)

src/parser/expr.rs
100.00% <100.00%> (+0.58%)
:arrow_up:

src/parser/mod.rs
97.70% <100.00%> (+0.14%)
:arrow_up:

src/parser/pattern.rs
100.00% <100.00%> (ø)

src/parser/types.rs
93.16% <100.00%> (+0.05%)
:arrow_up:

tests/codegen_test.rs
100.00% <100.00%> (ø)

tests/integration_test.rs
98.51% <100.00%> (+0.02%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

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

authors: codecov-commenter kevinbarabash

repo: crochet-lang/crochet


text:
Fine-tune parameters of transitive vulnerability search

Currently, transtive vulnerabilities are reconstructed from report_references (or policy_processed_references for FIPS), but only from directly_referenced_by and indirectly_referenced_by.
Shouldn't it be that if certificate X references certificate Y and vuln. appears in Y, then X is possibly vulnerable as well?
We should analyze and possibly fix that.

Shouldn't it be that if certificate X references certificate Y and vuln. appears in Y, then X is possibly vulnerable as well?

This is what the transitive computation of vulnerabilitites should be. Are you saying it is implemented in reverse? :grin:

repo: crocs-muni/sec-certs


text:
Container names are not displayed on top of Stats and Top screens

Container names are not displayed on top of Stats and Top screens

Added in b244242cb24b5c9864bf6683cdcb4dc5b0db7853, available as 0.10.0-beta on the hub.

:+1:

authors: kevana kwiky

repo: crosbymichael/dockerui


text:
Ped deletion

Hi, i'm trying to delete a ped that i created by with code
    {
        int l_Handle = p_Handle;
        return Native::Function::Call(Native::Hash::DELETE_PED, &l_Handle);
    }```

But this make my game freeze / crash with a valid ped handle.
any idea ?

Take a look at the Entity-class here

THks

authors: JohnnyCrazy merydwin

repo: crosire/scripthookvdotnet

license: Zlib


text:
Unix transport: url parameter required though not used

Trying to utilize the following component configuration:
component = Component(
    transports=[
        {
            "type": "rawsocket",
            "endpoint": {
                "type": "unix",
                "path": "/tmp/crossbar.sock",
            }
        }
    ],
    realm="mine",
)

Fails with:
Traceback (most recent call last):
  File "test.py", line 16, in <module>
    realm="mine",
  File ".../lib/python3.7/site-packages/autobahn/wamp/component.py", line 461, in __init__
    _create_transport(idx, transport, self._check_native_endpoint)
  File ".../lib/python3.7/site-packages/autobahn/wamp/component.py", line 213, in _create_transport
    url=transport['url'],
KeyError: 'url'

Looking at the code, transport creator indeed requires it, but nothing is actually done with this parameter down the road (in case of unix connection again).
E.g. the following works just fine:
component = Component(
    transports=[
        {
            "type": "rawsocket",
            "url": "not-in-use",
            "endpoint": {
                "type": "unix",
                "path": "/tmp/crossbar.sock",
            }
        }
    ],
    realm="mine",
)

(note the url).
Documentation does not see to say anything about urls for unix sockets. Bug?

yep: url only makes sense for websocket, but there it has some use even when running over unix sockets. for rawsocket, no url is used for the protocol.

I'm a bit confused - doen't unix socket imply rawsocket? (Or do you really support websocket over unix socket??)

yes, crossbar supports websocket over unix domain socket. also every other protocol that crossbar supports. in general: crossbar supports every combination of:

serializer: json, msgpack, cbor, ubjson, none ("transparency mode")
framing: websocket, rawsocket
bytes transport: tcp, tls, unix domain

it also supports some combinations for "longpoll" for "framing", and we could add H2 for framing as well.

Thanks for the info. Really informative.
Just to clarity - the Component API is the one that's currently recommended, right?

Component API is recommended, yep!
@meejah ^

yes, component API is recommended.
@meejah ^

fix will land via https://github.com/crossbario/autobahn-python/pull/1083

authors: haizaar oberstet

repo: crossbario/autobahn-python


text:
关于AQS框架中addWaiter()方法的一点疑问。

 /**
     * Creates and enqueues node for current thread and given mode.
     *
     * @param mode Node.EXCLUSIVE for exclusive, Node.SHARED for shared
     * @return the new node
     */
private Node addWaiter(Node mode) {
        Node node = new Node(Thread.currentThread(), mode);
        // Try the fast path of enq; backup to full enq on failure
        Node pred = tail;
        if (pred != null) {
            node.prev = pred;
            if (compareAndSetTail(pred, node)) {
                pred.next = node;
                return node;
            }
        }
        enq(node);
        return node;
    }

在 addWaiter() 这个方法中，JDK 为何要先用一次 CAS 尝试将新的 node 添加到队尾，而不直接调用 enq() 方法来入队呢？ enq() 方法的实现也是使用 CAS 操作入队，自旋至入队成功才会退出。
/**
     * Inserts node into queue, initializing if necessary. See picture above.
     * @param node the node to insert
     * @return node's predecessor
     */
    private Node enq(final Node node) {
        for (;;) {
            Node t = tail;
            if (t == null) { // Must initialize
                if (compareAndSetHead(new Node()))
                    tail = head;
            } else {
                node.prev = t;
                if (compareAndSetTail(t, node)) {
                    t.next = node;
                    return t;
                }
            }
        }
    }

并且两个方法存在一部分相同的代码，这样设计不会冗余吗？希望得到您的解答，谢谢~

单写的内容和循环的一样，不知道是不是创造循环有什么额外的消耗吧。看他们好多写法，或者参数都是根据经验来的。

我的看法是，先尝试一次CAS入列，如果竞争不激烈会直接成功，减少消耗

我的看法是，先尝试一次CAS入列，如果竞争不激烈会直接成功，减少消耗

你看下enq方法代码，如果直接enq，竞争不激烈的话也是直接成功，没有什么额外消耗

您的邮件我已收到，我会尽快查收回复。

这是来自qq邮箱的自动回复。
您好，感谢您的来信，您的邮件已经投递到该邮箱，但您看到这封回信不代表主人已经看到您的邮件，仅代表您的信件发送成功。
 祝你快乐~

authors: CaptineNemo Dontplugin SeedZheng Sortinn pandening ruanjl

repo: crossoverJie/JCSprout