Scenechange with spawning bug

Issue Type
Bug
Description
Found a bug with spawning and scene changeing.
If an object is spawned while the client is loading a scene. It can then potentially be added to the "SpawnManager.spawnedObjects" after the NetworkSceneManagement moves the objectsToKeep from the old scene to the new scene. The gameobject spawned while loading is then destroyed by the unloadScene.
You would think that this would not be possible since the objectsToKeep is moved when the new scene is loaded and therefore all objects added after that should be loaded to the new scene. But it seems that when "sceneLoad.completed" gets called  the scene is still set to the old scene.
A fix for this would be to have like a 1 frame delay after the scene is loaded before moving the objectsToKeep and unloading the old scene.
Your Environment

Unity Version: 2017.3.1f1
MLAPI Version (Commit # or release version): d0da38948706d8417b3193d4493dba3c2275b8e9

Closing this for now. Neither of us are able to reproduce.


Use start.sh without Dockerfile?

I'm not sure how to trigger my start.sh file without running wifi-connect without balenaOS + Docker. Is this possible?
I would like to do something similar to the balena-wifi-connect-example and show visual feedback before and after connection to a network.
Right now, wifi-connect seems to run on start-up, which means I can't plug in to run my script if wifi isn't available.

@majorz After thinking about this more, a possible solution could be to provide an option to prevent wifi-connect from running when the device boots.
That way, I could  create my own service to run wifi-connect via a customized script that handles the different wifi network states (connected, not connected, etc) and shows feedback.
Please let me know if there’s a way to do this manually with the current version (without a Docker).

Closing this as I wrongfully assumed that wifi-connect automatically runs on boot, when this doesn't seem to be the case.

@majorz Is my understanding correct that the wifi-connect won't automatically run at boot unless programmed to do so?

This is correct.


Replace gogo proto imports with golang proto

It looks like goimports has been pulling gogo/protobuf into some of our packages instead of google/protobuf. Replace these with the correct package and update the package lock.

/azp run


Godeps for easy compilation

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "aws-godep" git@github.com:Altiscale/containerd.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.


refactor: Extract verification method ID generation to a separate class

Currently, the strategy to generate the verification key IDs only supports an arbitrary set of DID methods, and the IDs are derived from hardcoded strings, which can be too restrictive for some use cases.
For example, if one adds DID methods (such as did:web) using third-party plugins, the current method will always raise an error. Also, one might want to have more advanced ways of deriving the verification key ID, for example when multiple verification methods are used for a given DID and are rotated regularly.
This PR allows for more flexibility by extracting the verification key ID generation to a separate class so that plugins can switch implementations depending on the needs using injection. For example, for the key rotation use-case cited above, the implementation could be switched to one that dynamically returns the correct verkey ID, even if different did methods are used. I believe this solution avoids breaking changes, and keeping the current strategy as the default one allows keeping backward compatibility.
Let me know if you have any comments/suggestions.

Please up date the branch to include changes to main.

Ready to merge, but @dkulic or @dbluhm — could you answer @TimoGlastra ’s last question:

However, I think we should provide more than just the issuer_id/did to determine the verification_method_id. In ACA-Py's current model dids only have a single key, but as we already know the public key, the proof type, etc.. I think it would be good to pass it, so once ACA-Py starts supporitng multiple keys for a did, this interface won't have to change.

Please update to the base branch and we're ready to merge this one. It will be included in 0.8.2.


feature: add custom properties for dialog

Feature
To have custom properties for Dialog
Scenario
A dev can add property such as persistent if the requirement is to close dialog via button action only.
Update

Added the property attribute
Added dialog custom property to example as well

@darrenfang  Please review this

We need the default persistent props for the dialog!👍


Trigger llm output retrieval on server

Implements https://github.com/OpenPipe/OpenPipe/issues/33
This PR includes changes to both the frontend and backend. On the frontend, cells switch from triggering LLM completions via mutations to pure polling. On the backend, LLM completions are triggered when new experiments, prompt variants, or scenarios are created or updated. We use graphile workers to make the requests to LLM providers asynchronously, so our prompt and scenario creation requests can return early.
Changes

Rename ModelOutput table to ScenarioVariantCell, make output variables optional
Create new ModelOutput table with only output variables
Add CellRetrievalStatus enum
Add migrateScenarioVariantOutputData.ts script to migrate existing data to new schema
Change OutputCell to only poll, add hard refetch arrow in top right
Add graphile workers to carry out LLM calls
Increase MAX_AUTO_RETRIES from 3 to 10

Ok this is good enough, let's get it in and iterate from there.


Document the SpringBootExtension

Support was added for SpringBoot Uber jar applications in 2.6 release. Here is the extension for it: https://github.com/OpenLiberty/ci.gradle/blob/master/src/main/groovy/io/openliberty/tools/gradle/extensions/SpringBootExtension.groovy
Need to create a document describing that extension and add a link to it either at the bottom of the readme, in the deploy.md, or in the libertyExtensions.md.

Docs for our Maven plugin SpringBoot support: https://github.com/OpenLiberty/ci.maven/blob/master/docs/spring-boot-support.md

It has been added here: https://github.com/OpenLiberty/ci.gradle/blob/master/docs/spring-boot-support.md#spring-boot-support

It has been added here: https://github.com/OpenLiberty/ci.gradle/blob/master/docs/spring-boot-support.md#spring-boot-support


refactor: reusable content syntax

Part of RM-8041

🧰 Changes
Updates the reusable content syntax to be just the tag name.
🧬 QA & Testing

Broken on production.
Working in this PR app.

This PR was released!
🚀 Changes included in v6.71.0


add logs back to cli

was missed in a prev refactor

LGTM, thanks for tidying up my mess.
Might try and add a simple test which calls each CLI command this evening if you don't get to it first.

thanks for tidying up my mess.

heh, im the one who merged it 😅

going to merge this now, we can push a test in a follow up


Uncaught TypeError: currentFontSize.toLowerCase is not a function

Attempted to change the User interface font size. This error occured immediately after beginning to type.
Atom Version: 1.2.4
System: Microsoft Windows 8.1 Pro
Thrown From: atom-material-ui package, v1.0.1
Stack Trace
Uncaught TypeError: currentFontSize.toLowerCase is not a function
At /C:/Users/tva/.atom/packages/atom-material-ui/lib/config.coffee:143

TypeError: currentFontSize.toLowerCase is not a function
    at setFontSize (file:///C:/Users/tva/.atom/packages/atom-material-ui/lib/config.coffee:1:1)
    at file:///C:/Users/tva/.atom/packages/atom-material-ui/lib/config.coffee:1:1
    at C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\src\config.js:588:20
    at Emitter.module.exports.Emitter.emit (C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\node_modules\event-kit\lib\emitter.js:86:11)
    at Config.module.exports.Config.emitChangeEvent (C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\src\config.js:773:29)
    at Config.module.exports.Config.setRawValue (C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\src\config.js:565:19)
    at Config.module.exports.Config.set (C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\src\config.js:226:14)
    at SettingsPanel.module.exports.SettingsPanel.set (C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\node_modules\settings-view\lib\settings-panel.js:196:28)
    at C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\node_modules\settings-view\lib\settings-panel.js:242:26
    at Emitter.module.exports.Emitter.emit (C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\node_modules\event-kit\lib\emitter.js:86:11)
    at C:\Users\tva\AppData\Local\atom\app-1.2.4\resources\app.asar\node_modules\text-buffer\lib\text-buffer.js:1276:25

Commands
     -8:09.2.0 settings-view:check-for-package-updates (atom-workspace.workspace.scrollbars-visible-always.theme-atom-material-syntax.theme-atom-material-ui)
     -7:33.5.0 window:decrease-font-size (atom-text-editor.editor.is-focused)
  3x -6:00.2.0 core:backspace (atom-text-editor.editor.is-focused)
     -5:47.4.0 core:save (atom-text-editor.editor.is-focused)
     -4:03.1.0 core:undo (atom-text-editor.editor.is-focused)
     -3:56.5.0 core:save (atom-text-editor.editor.is-focused)
  2x -3:31.6.0 core:undo (atom-text-editor.editor.is-focused)
     -3:29.9.0 core:save (atom-text-editor.editor.is-focused)
  2x -2:51.4.0 core:backspace (atom-text-editor.editor.is-focused)
     -2:48.3.0 core:save (atom-text-editor.editor.is-focused)
  2x -0:04.0 core:backspace (atom-text-editor#atom-material-ui.fonts.fontSize.editor.mini.is-focused)

Config
{
  "core": {
    "themes": [
      "atom-material-ui",
      "atom-material-syntax"
    ]
  },
  "atom-material-ui": {
    "ui": {},
    "tabs": {},
    "fonts": {}
  }
}

Installed Packages
# User
atom-material-syntax, v0.2.6
atom-material-ui, v1.0.1
file-icons, v1.6.12
language-jade, v0.6.2
linter, v1.11.3
linter-csslint, v1.1.0
linter-jscs, v3.2.0
linter-pylint, v1.1.1
linter-scss-lint, v2.4.0
linter-xmllint, v1.1.0
minimap, v4.16.2
pigments, v0.19.1

# Dev
No dev packages

That's… strange. /lib/config.coffee is only 73 lines. You probably have an issue with old settings. If you don't mind, open DevTools console inside Atom and type:
atom.config.set('atom-material-ui')
That should reset your settings (which should've happened automatically)

This is happening again today after update...
Uncaught TypeError: currentFontSize.toLowerCase is not a function
/home/c0m3tx/.atom/packages/atom-material-ui/lib/config.coffee:143
Already tried resetting configuration, but it didn't work.

I can confirm this. Just happened after atom.config.set('atom-material-ui').

Moreover that file doesn't seem to even exist on my computer...

I'm not exactly sure what the problem is, but looks like it might be related to cache. Try deleting ~/.atom/compile-cache and restarting Atom. Also open your ~/config.cson and remove all references to atom-material-ui.
BTW, you can change UI font size using a text input in the theme's settings.

BTW, you can change UI font size using a text input in the theme's settings.

That's what's causing the error for me. :smile:
I'll try clearing the cache.

I had the same problem today and that fix worked for me too, thanks!


Won’t go on the bottom bar

No matter what I do, the module stays in the middle

position: "bottom_bar", is set in your config entry. It is the default. If you need help please move this conversation to the MagicMirror forum. Post a topic in troubleshooting and I will be happy to help you there.


Add information about IAM Access Role needed for KeyVault VM

In the documentation, we have no information about IAM Access role that we must add to our KeyVault Ressource else if we received following error.
error": {
"code": "AuthorizationFailed",
"message": "The client 'XXXX' with object id 'XXXX' does not have authorization to perform action 'Microsoft.EventGrid/eventSubscriptions/write' over scope '/subscriptions/XXX/resourceGroups/XXX_Dynamics/providers/Microsoft.Web/sites/D365FO-EventGrid-ESB-Product/providers/Microsoft.EventGrid/eventSubscriptions/XXX' or the scope is invalid. If access was recently granted, please refresh your credentials."
}

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 055168f2-4423-1246-9663-1d0b14696666
Version Independent ID: 2ec22b82-5bc0-bdb1-b630-ffcbaf1180dd
Content: Business events and Azure Event Grid - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/business-events/how-to/how-to-eventgrid.md
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @Sunil-Garg
Microsoft Alias: sunilg

@Jared @.***>

From: Pistoler00z @.>
Sent: Tuesday, July 5, 2022 12:44:58 AM
To: MicrosoftDocs/dynamics-365-unified-operations-public @.>
Cc: Sunil Garg @.>; Mention @.>
Subject: [MicrosoftDocs/dynamics-365-unified-operations-public] Add information about IAM Access Role needed for KeyVault VM (Issue #4065)
In the documentation, we have no information about IAM Access role that we must add to our KeyVault Ressource else if we received following error.
error": {
"code": "AuthorizationFailed",
"message": "The client 'XXXX' with object id 'XXXX' does not have authorization to perform action 'Microsoft.EventGrid/eventSubscriptions/write' over scope '/subscriptions/XXX/resourceGroups/XXX_Dynamics/providers/Microsoft.Web/sites/D365FO-EventGrid-ESB-Product/providers/Microsoft.EventGrid/eventSubscriptions/XXX' or the scope is invalid. If access was recently granted, please refresh your credentials."
}

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 055168f2-4423-1246-9663-1d0b14696666
Version Independent ID: 2ec22b82-5bc0-bdb1-b630-ffcbaf1180dd
Content: Business events and Azure Event Grid - Finance & Operations | Dynamics 365https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fdynamics365%2Ffin-ops-core%2Fdev-itpro%2Fbusiness-events%2Fhow-to%2Fhow-to-eventgrid&data=05|01|sunilg%40microsoft.com|cc73ee46e5bc40c9582d08da5e5a42b5|72f988bf86f141af91ab2d7cd011db47|1|0|637926039009730298|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=d7whqclHCrAPYpgvUJny25Yg8JVf6%2FPbFUWGKDUI3kM%3D&reserved=0
Content Source: articles/fin-ops-core/dev-itpro/business-events/how-to/how-to-eventgrid.mdhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FDynamics-365-Unified-Operations-Public%2Fblob%2Fmain%2Farticles%2Ffin-ops-core%2Fdev-itpro%2Fbusiness-events%2Fhow-to%2Fhow-to-eventgrid.md&data=05|01|sunilg%40microsoft.com|cc73ee46e5bc40c9582d08da5e5a42b5|72f988bf86f141af91ab2d7cd011db47|1|0|637926039009730298|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=JUmbg3NTtmpVlgQ4h5vG3By1ouQGF0G2c%2FHnNux3bqI%3D&reserved=0
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @Sunil-Garghttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSunil-Garg&data=05|01|sunilg%40microsoft.com|cc73ee46e5bc40c9582d08da5e5a42b5|72f988bf86f141af91ab2d7cd011db47|1|0|637926039009730298|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=%2FxOsqFByB4%2FK%2FTvA0O1ClBUX%2FjmKUZ%2BL4Pmc%2FDkzBgo%3D&reserved=0
Microsoft Alias: sunilg

—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fdynamics-365-unified-operations-public%2Fissues%2F4065&data=05|01|sunilg%40microsoft.com|cc73ee46e5bc40c9582d08da5e5a42b5|72f988bf86f141af91ab2d7cd011db47|1|0|637926039009730298|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=4SWmxIkGSYFeklBXhfFJfIxMjIJseVAbJRotLAgGOIs%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHNKDW4VYOQ6CP5TANCXC23VSPRXTANCNFSM52VHPL3Q&data=05|01|sunilg%40microsoft.com|cc73ee46e5bc40c9582d08da5e5a42b5|72f988bf86f141af91ab2d7cd011db47|1|0|637926039009730298|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=UljM2AhG%2FwPuE%2F66XiLjFTkBMveapQ92O1EYL4CaqUU%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

Hi Jared,
To resolve this error, we had to add a azure role to our KeyVault ressource, access policies was not enough.


No causal masking

Hi,
I don't see where to input the causal target mask so that the network can't simply copy tokens to the output. When I train without it, the performance is terrible, so I assume the network just learns to copy the future tokens.
I don't believe this is implemented to feed one example through the network all at once, as is done when training, only built for autoregressive decoding.

That's a very good observation, thanks. Indeed the architecture was only here for inference.
I just improved the model to make training work - it now trains like a regular transformer. I included a toy example under examples/training_example.py which does training + inference and it seems to work well.
Feel free to open a new issue if something doesn't work for you.


Added important bug fix

This is a serious bug I just discovered. Please merge my PR to fix it. Thanks.

merge i

merge it

!!!!! merge it !!!!!!

Omg is that the real Micah baker??!

IT IS! now merge my PR, please


error: redefinition of 'struct tm'

In file included from ../src/pebble.h:5:0,
                 from ../src/MyProject.cpp:1:
/home/jasper/.pebble-sdk/SDKs/current/sdk-core/pebble/chalk/include/pebble.h:7892:8: error: redefinition of 'struct tm'
In file included from /home/jasper/.pebble-sdk/SDKs/current/sdk-core/pebble/chalk/include/pebble.h:22:0,
                 from ../src/pebble.h:5,
                 from ../src/MyProject.cpp:1:
/home/jasper/pebble-dev/pebble-sdk-4.3-linux64/arm-cs-tools/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/include/time.h:44:8: error: previous definition of 'struct tm'
In file included from ../src/pebble.h:5:0,
                 from ../src/MyProject.cpp:1:
/home/jasper/.pebble-sdk/SDKs/current/sdk-core/pebble/chalk/include/pebble.h:7914:80: error: declaration of C function 'int strftime(char*, size_t, const char*, const tm*)' conflicts with
In file included from /home/jasper/.pebble-sdk/SDKs/current/sdk-core/pebble/chalk/include/pebble.h:22:0,
                 from ../src/pebble.h:5,
                 from ../src/MyProject.cpp:1:
/home/jasper/pebble-dev/pebble-sdk-4.3-linux64/arm-cs-tools/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi/include/time.h:69:11: error: previous declaration 'size_t strftime(char*, size_t, const char*, const tm*)' here
Waf: Leaving directory `/home/jasper/MyProject/build'

I tried delete #include<time.h> of pebble.h in sdk, processed cleaned and recompiled, and it passed. However there was nothing showed in the emulator.
My OS: Xubuntu 16.04 x64;
SDK Tool: 4.3-linux64

I've encountered this problem trying to compile C++ code for the pebble as well.  Did you resolve the issue?

@MrJasper Did you figure this out? I wasn't able to reproduce it quickly and meant to get back around to this.

I'm still having this problem!


Add Dynamicrafter library

This PR adds https://github.com/Doubiiu/DynamiCrafter, a popular text-to-video model, as a library.
To do:
Ensure dynamicrafter PRs are merged on the respective model repos

[ ] https://huggingface.co/Doubiiu/DynamiCrafter_1024/discussions/1
[ ] https://huggingface.co/Doubiiu/DynamiCrafter_512/discussions/1
[ ] https://huggingface.co/Doubiiu/DynamiCrafter_512_Interp/discussions/1
[ ] https://huggingface.co/Doubiiu/DynamiCrafter/discussions/3

Thanks, I've updated the PRs, have to say that the workflow to do this is pretty hard, not easy to find.
It's only documented here how you can manage and update a PR locally which you've opened on the web interface.
I'm in contact with the Dynamicrafter author on Slack and will wait for him to merge the PRs above before merging this one.

Thanks for updating the PRs! This will prove useful! Let us know once it's merged :smiley:

I've updated the PRs, have to say that the workflow to do this is pretty hard, not easy to find.
It's only documented here how you can manage and update a PR locally which you've opened on the web interface.

Arf yes, what I usually do is to use the browser to navigate through the file on the PR ref revision, select the file I want to edit and edit it. In the example below I don't have the edit button because it's not my PR but you see the idea.
https://github.com/huggingface/transformers/pull/32054/commits/ff0997872e5164312fc9b3933990066b0d1974d9

Regarding the PRs, I think that https://huggingface.co/Doubiiu/DynamiCrafter_512_Interp/discussions/1/files should be image-to-video IIUC. And https://huggingface.co/Doubiiu/DynamiCrafter_1024/discussions/1/files, https://huggingface.co/Doubiiu/DynamiCrafter_512/discussions/1/files, https://huggingface.co/Doubiiu/DynamiCrafter/discussions/3/files should have text-to-video as pipeline_tag and image-to-video in tags since they support both.


Energy Use Trends - Overlap in Data Labels

Seeing a lot of overlap in data labels on the line chart. Since this is likely an inherited issue I'll tag as nice to have.
example - id = 24598

┆Issue is synchronized with this Asana task

I've got an attempted fix in place. It looks pretty good on the example provided, and I've checked 10 or so additional buildings - all look good, but some additional testing would be helpful.

Will test today

This seems to be performing pretty well - thanks!


how to update opts out of the controller tag files?

var opts= {
      title: 'I want to behave!',
      items: [
        { title: 'Avoid excessive coffeine', done: true },
        { title: 'Hidden item', hidden: true },
        { title: 'Be less provocative' },
        { title: 'Be nice to people' }
      ]
};
riot.mount('todo', opts)

setTimeout(function(){
    opts.title = 'New Title';
    // how to trigger the update event in here

}, 1000);

By using the return value of the mount method:
//  like this
var tags = riot.mount('todo', opts)

opts.title = 'foo'
tags[0].update()

it's a new feature in V2.0.9?

Nope. The mount method has returned the tag instances since 2.0.0.

You wouldn't know about this feature from the docs though. Not good.

i'm using V2.0.7, in firefox i got a undifined about tags:
//  like this
var tags = riot.mount('todo', opts)
console.log(tags); // undefined

Yea, there was a bug in 2.0.7, which was later fixed in 2.0.8: https://github.com/muut/riotjs/issues/314

@aurri  thanks


AC-10 mitigation (concurrent sessions) (V16-AC-10)

In order to mitigate risk from our lack of implementation for NIST 800-53 control AC-10, we want to ensure unusually high concurrent session numbers result in alerts to operators.
Acceptance Criteria

[ ] If an account has more than 3 active sessions via opslogin UAA, an alert is sent
[ ] If an admin account has more than 3 active sessions via customer UAA, an alert is sent
[ ] If a non-admin account has more than 2 active sessions via customer UAA, an alert is sent

Implementation notes

Change logs.cloud.gov to refer to the admin scope, rather than a space role, to determine who's an administrator
Write a script that counts up the number of tokens for each user in [opslogin|customer] UAA with admin scope and emits that number to Riemann where we alert if > 3
Write a script that counts up the number of tokens for each user in customer UAA without admin scope and emits that number to Riemann where we alert if > 2

Notes
Reference comments from the AO on our justifications.

We should also figure out what our requirements would be if UAA had session management, so we can communicate them back to the UAA devs.  They seemed receptive to adding concurrent session control to their backlog last time I spoke with them about it.

The NIST guidance doesn't say how many concurrent sessions should/shouldn't be allowed, only suggests that the number of sessions should be tracked and limited. It doesn't even suggest the specific goal or risk being mitigated by having this control!
I think to be useful for us, we'd want to specify how many concurrent sessions are allowable. For example, we might determine that operators typically have one web-based session and one CLI session active at a time when working on an average day, and rarely if ever need a third session (eg from another machine). So I think we'd want to the ability to set the limit to two, and have the oldest session ended when that number is exceeded. What do you think?
(Alternatively, I've seen in some SaaS that you get a banner at the top of the screen when you have multiple sessions active, saying "You have X other sessions active. Click here for details or here to log them out." I don't think that's all that useful here since we have CLI sessions as well, so the banner won't typically be seen.)

(Plus it'd be difficult to implement across all of the relying-parties for UAA.)

we might determine that operators typically have one web-based session and one CLI session active at a time when working on an average day, and rarely if ever need a third session

I think it's important to note that a session != a token in UAA.  A session just means that you aren't prompted to authenticate again when authorizing applications, getting one-time passcodes etc.
Once you've cf login --sso for example to establish a CLI session, UAA isn't keeping a "session" alive for you, it's just issued a token with a defined lifetime, and the cf client uses it to perform actions on your behalf.
If the goal is to make visible which applications have active tokens we could do that today by  updating uaa-extras to use the already available APIs (https://docs.cloudfoundry.org/api/uaa/#list-tokens , https://docs.cloudfoundry.org/api/uaa/#revoke-tokens) to allow users to inspect and revoke any active tokens.
We could still start a discussion about adding concurrent session control to UAA with Pivotal but I think it'd be a lot less important (maybe not needed?) if we gave users the ability to manage their tokens.
Thoughts?
cc: @NoahKunin

I think tokens ~= sessions for our purposes here. Providing explicit user-management of those tokens is a nice-to-have thing, but it's really not needed for compliance AFIACS.
I think we're good if we just have something that revokes the oldest tokens to reach the "no more than N" threshold. What do you think?

I said above:

The NIST guidance doesn't say how many concurrent sessions should/shouldn't be allowed, only suggests that the number of sessions should be tracked and limited. It doesn't even suggest the specific goal or risk being mitigated by having this control!

But as we found in our further discussion in Slack FedRAMP is more explicit in their assignment:

The information system limits the number of concurrent sessions for each [Assignment: organization-defined account and/or account type] to [FedRAMP Assignment: three (3) sessions for privileged access and two (2) sessions for non-privileged access].

As discussed with our AO for the POAM, we're just going to do alerting for now and see what data we can gather from that about how disruptive a hard restriction would be. I've edited the initial post to reflect this story as groomed in that direction.
(Further work to expose token listing and revocation to users is a nice-to-have for a future time,  but it's not in scope here until we see a demonstrated user need for it.)

I moved @LinuxBozo 's token audit script to cg-deploy-monitoring as a cron job to periodically send counts to riemann. We also updated the uaa credentials broker to set token expiration. We're going to check out the token counts in influxdb next week to understand how to set alerting thresholds--although it's already clear that many users have more than two or three tokens at a time. We also have a wippr at https://github.com/18F/cg-riemann-boshrelease/pull/64 for alerting that we're holding off on for now.
@mogul: should we move this back to ready or grooming until we have enough data in influx for alerting, or close and make a second story, or do something else?

Can we document the influx query / command to run to get these counts by day?

Not sure of the most useful query / queries to look at, but here's a start:
influxdb/492997b6-1444-4bc4-8a87-c60274d7792b:~# curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=production" --data-urlencode 'q=select perentile("value", 10) as p10, percentile("value", 50) as p50, percentile("value", 90) as p90 from "
uaa-token-audit" where time > (now() - 5d) group by time(1d)'
{
    "results": [
        {
            "series": [
                {
                    "name": "uaa-token-audit",
                    "columns": [
                        "time",
                        "p10",
                        "p50",
                        "p90"
                    ],
                    "values": [
                        [
                            "2017-01-27T00:00:00Z",
                            1,
                            1,
                            11
                        ],
                        [
                            "2017-01-28T00:00:00Z",
                            1,
                            2,
                            12
                        ],
                        [
                            "2017-01-29T00:00:00Z",
                            1,
                            1,
                            9
                        ],
                        [
                            "2017-01-30T00:00:00Z",
                            1,
                            1,
                            9
                        ],
                        [
                            "2017-01-31T00:00:00Z",
                            1,
                            1,
                            8
                        ],
                        [
                            "2017-02-01T00:00:00Z",
                            1,
                            1,
                            9
                        ]
                    ]
                }
            ]
        }
    ]
}

We need to look at our data once our current secret rotation effort is complete to determine what else to do here.

Updates
Reviewed logged params and added user's email.
Discovered the current expire time is 30 days, so many users have persisting tokens.
Identifying the average range or token expiration method we should implement.

[@jmcarp - Josh Carp] Fixed the expire tokens yesterday to be 3 days.

https://cloudfoundry.slack.com/archives/uaa/p1487280330001967
Requesting if UAA will integrate the token limit.
Backup requests:

Control the number of active tokens
Request the current active tokens, sorted by time
Delete multiple tokens in a single request
Check the status of multiple tokens in a single request
Only return tokens that are active (not-revoked) from a user-id

Current status:
We need clarity from FedRamp requirements around number of tokens.
Question for [@brittag - Britta Gustafson] [@mogul - Bret Mogilefsky] : Are the tokens per user OR tokens per user on a client. For example, Person gets two tokens across all the applications they are authenticated on? Or do they get two authenticated tokens, per application that they need to be authenticated into.
Please note, option 1 is not possible.
--
Ideal outcomes based on result:

UAA handles everything.
UAA is okay with feature. We write the PR (java). It gets accepted.
We make a database trigger that checks for the number of sessions on a user-id per client-id. Based on exceeding certain threshold, trigger will remove oldest session accordingly.

I believe tokens per user on a client should be ok. References, for context:

FedRAMP rqeuirement: The information system limits the number of concurrent sessions for each [Assignment: organization-defined account and/or account type] to [FedRAMP Assignment: three (3) sessions for privileged access and two (2) sessions for non-privileged access].
"Supplemental Guidance" at https://web.nvd.nist.gov/view/800-53/Rev4/control?controlName=AC-10

Still waiting on Cloud Foundry on UAA feature request.

Is waiting for upstream our answer for this?
If we don't intend to solve this temporarily with our own job to prune tokens while we wait on upstream can we close this issue?

If waiting for upstream is acceptable, then yes, I think we should close this. I just pinged upstream asking for details at https://github.com/cloudfoundry/uaa/issues/540#issuecomment-281788536.

We're going to document our plan to wait for the upstream fix, ACs updated accordingly.

We started the Deviation Request Form here: https://docs.google.com/document/d/1EbE0jze4pPYczuGOYD6CNWngXu3e9diISOnIOwawfxE/edit#heading=h.gjdgxs

The next step is for Lenny to put in a few more technical details and then Britta will polish the writing.

This Deviation Request Form at https://docs.google.com/document/d/1EbE0jze4pPYczuGOYD6CNWngXu3e9diISOnIOwawfxE/edit# still needs: request number (Britta will figure that out upon submitting it), and a bit more writing to explain our planned remediation and justify why we're doing it.

Added updates to the Deviation Request Form

Followup work is tracked at https://favro.com/card/1e11108a2da81e3bd7153a7a/18F-3556


Fix typos and casing, improve formatting

Hi @Viijay-Kr, hope you're well!
Just a quick PR to fix typos and casing and improve some formatting

@karlhorky Thanks a lot for the PR . Really appreciate it , I ll update the version and merge this one

@karlhorky for some reason I don't why upsteam actions are not working , I can fix that later but for now I've opened
#58 which has your changes plus version upgrade


[Fix] Add <|eos|> as a stop token

This PR adds <|eos|> as a stop token in the logic of detecting the stop token.

#33


Fix unhandled JSON.parse()

Timesync doesn't catch an error when parsing JSON response. So it ends with unhandled error thrown both on server and in browser.
In PR I added catch block and I reject request.post() promise which in turn calls timesync.on('error') handler.

Thanks Jiri, makes sense :+1:

Fixed now in v1.0.5


WIP: remove optional revNat

This change is

test-me-please

Coverage increased (+0.1%) to 44.557% when pulling 24bdd6fdd9e87452143022abc1260993cc93aa79 on pr/brb/refactor-lb-next-v1 into fc44651ca9c425897fa4761edb71ed32b27a8e1a on master.

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please


chore: update nuxt version for docs

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@ca658b0). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main     #392   +/-   ##
=======================================
  Coverage        ?   86.36%
=======================================
  Files           ?        3
  Lines           ?      198
  Branches        ?       35
=======================================
  Hits            ?      171
  Misses          ?       27
  Partials        ?        0

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Fuel demo

DO NOT MERGE OR REVIEW
Description
This Draft PR is just a way of publishing the code for the demo in a safe place until the actual demo day. After that, this PR should be discardable.

The demo was done so I close this draft PR


fix join bug with memory management

The join proc did not correctly do a zng.Record.Keep() while building
the join set array causing the underlying batch to be freed while
record references still existed.  The fix is to call keep in the right
place.  Also, the joinkey memory could also be freed while in use
so it's now copied to a buffer in the join proc struct.
This bug happened more often with a 'join' proc at the front of the
pipeline (with no split) because the splitter proc otherwise keeps a ref on each
batch so this bug was better hidden from the downstream consumer.

oops... I committed is-has on the wrong branch.  I'll rebase without that commit...


Broken link on project description

Hello,

The link to documentation in project description is broken: https://godoc.org/github.com/couchbaselabs/go-couchbase
Maybe it should be replaced to https://godoc.org/github.com/couchbase/go-couchbase

Fixed, thank you.


add feature account setting & big changes

ketika anjim

Gg bah
On Sun, Sep 11, 2022, 12:08 PM Arie @.***> wrote:

ketika anjim
You can view, comment on, or merge this pull request online at:
https://github.com/dio-nugraha/PPDB/pull/5
Commit Summary

bd49b03
https://github.com/dio-nugraha/PPDB/pull/5/commits/bd49b0364ab758c1f1fc709e91ab7232bbab62ee
add feature account setting & big changes

File Changes
(15 files https://github.com/dio-nugraha/PPDB/pull/5/files)

M action/proses_tambah_jurusan.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-d10a5a3422eb68b5cbcdd01128a36a75926ca94b2d065ca64e781d31fda0f83b
(9)
A action/proses_user_setting.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-28d08478c915e7ff9358bc8c540fb3352f4fc74f6b4a8c35c6a105aaa0670ae2
(53)
A asset/photoProfile/631d4738ae3f6-1662863160.png
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-bbf897ad0bf2796049058283774733995299f2490518648feb91674ef05eb226
(0)
R asset/photoProfile/blank-profile.png
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-7f7834dd086379efff3ff5f8b5fc493f831810c892ce36b1827065052c67118f
(0)
M auth/login-action.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-3416b3913cacb51abcf58b52e2280c1ba73bbf4fca8977822007de2c9389ca4c
(2)
M auth/login.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-d550c2818b3a7e37eafcff29f0a5b8be3ab1a86a6494f6361c39acb12b15c6bc
(4)
M daftarsiswa.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-20fc35b8a925baefd391624e02fb7c82da5f08227e1feaae088f97890fe4507d
(73)
M editjurusan.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-0cd5d32df0a1544fbc401718a3e1fa1f911d3a72ad996a0641d8642e5e8238b2
(56)
M editsiswa.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-9f0822888c23d3c40227b26ae16588242c6135d3da9c24c871f87b8238d039f6
(75)
M index.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-7413d6453f901e939bbd840c8f0d1c7b20c2ca0e7f71741e4e07c6cf036f16c0
(147)
M jurusan.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-18c36b133f00e49db1c7b9bcf0c60649601ce0ffc2546b38ed77e63d91bf8904
(60)
M koneksi.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-cffc167cffa529e6e7d9cf5b7491f3a1298ea79a1f37417a33003e075acd012a
(2)
M setting.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-64110336655c350b46cdf7543ecaf2459e83fc9ac8f1fc2fc0b502e30b37db57
(113)
M tambah_jurusan.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-f884eca917c57b19c62acea3f730e0f71e64a2ff45a25680d1481b2c386acc88
(64)
M tambahdata.php
https://github.com/dio-nugraha/PPDB/pull/5/files#diff-02de82fffa2b9fa770a9230477354563ca34b8c33955f2b7e713c53d49df1d63
(79)

Patch Links:

https://github.com/dio-nugraha/PPDB/pull/5.patch
https://github.com/dio-nugraha/PPDB/pull/5.diff

—
Reply to this email directly, view it on GitHub
https://github.com/dio-nugraha/PPDB/pull/5, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANRC43NEEIM3FSAYE4WRIZDV5VSLFANCNFSM6AAAAAAQJTYGMA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Palestine

I will add Palestine data today to the spreadsheet to make the 123rd state party. I am actually really proud of this moment. Could be a game changer!

Awesome. Let me know when it's updated.

Ok I believe this data for the State Party map is in there.

I already migrated the state parties data to the new system, so don't add anything else, just send it to me.

Ok. Only other thing that I did was create a new Palestine Preliminary Examination in the spreadsheet "Palestine II".


Integrate FERC Form 1 2022 data

We recently discovered that FERC was missing some data (it wasn't getting pulled by the extractor), so we're working on re-jiggering the extractor to fix this: https://github.com/catalyst-cooperative/ferc-xbrl-extractor/issues/105 and #2810
Once that's done, we'll be ready to integrate the FERC 2022 data

[ ] Add the new Zenodo archive DOI values to pudl/workspace/datastore.py.
[ ] Run the datastore script to download the new year of data.
[ ] Add the new year to the years in etl_full.yml and etl_fast.yml.
[ ] Add the new year to the working_partitions in pudl/metadata/sources.py
[ ] Clone the FERC1 data into SQL
[ ] Launch dagit and refresh code location
[ ] (update alembic?)
[ ] Materialize the raw asset group and debug.
[ ] Materialize the clean asset group and debug.
[ ] Run the fast ETL and debug.
[ ]
[ ] Update the validation test min/max rows

Closed because this issue has been taken up in #2811.


fix: deepseek coder tokenizer error

Disabling the fast tokenizer results in an error when running the example.
https://huggingface.co/mlx-community/deepseek-coder-6.7b-instruct-4-bit/discussions/1

Thanks!


Update repo structure to match other azure-sdk repos

Based on https://github.com/Azure/azure-sdk/blob/master/docs/engineering-system/repo-structure.md which is trying to add some consistency across our azure-sdk repo's we should move to a model where we have a root sdk folder and one directory per package under that folder. Like:
sdk\<service name>\<package name>\README.md
sdk\<service name>\<package name>\*src*
sdk\<service name>\<package name>\*tests*
sdk\<service name>\<package name>\*samples*

Examples:
sdk\keyvault\Microsoft.Azure.Management.KeyVault\README.md
sdk\keyvault\Microsoft.Azure.Management.KeyVault\src
sdk\keyvault\Microsoft.Azure.Management.KeyVault\tests
sdk\keyvault\Microsoft.Azure.Management.KeyVault\samples
sdk\keyvault\Microsoft.Azure.KeyVault\README.md
sdk\keyvault\Microsoft.Azure.KeyVault\src
sdk\keyvault\Microsoft.Azure.KeyVault\tests
sdk\keyvault\Microsoft.Azure.KeyVault\samples

A few things that we know needs to be updated when we make this restructuring:

The README files in the azure-rest-api-specs repo needs to be updated so the autorest tools can still function. We also need to stage the updates so that we don't disrupt too many in-flight PRs.
The build/CI scripts need to be updated so they understand the new structure. We should probably stage it so it understands both structures in the short term to enable incremental moving and minimize disruptions.
The documentation configuration system needs to be updated so it knows the new location of the README files and we don't break the documentation automation process.

Template project updated to new structure with PR https://github.com/Azure/azure-sdk-for-net/pull/5298.


SQLAlchemyDataLayer is missing  a get_element method

The SQLAlchemyDataLayer is missing  a get_element method. Interacting with elements is therefore broken when this data layer is used.
I was trying to fix this, mirroring the implementation in ChainlitDataLayer. It looks like the method needs to return an ElementDict based on the thread_id and element_id. This maps to the columns threadId and id in the elements SQL table.
    async def get_element(
        self, thread_id: str, element_id: str
    ) -> Optional["ElementDict"]:
        query = f"""SELECT * FROM elements WHERE "id" = :element_id AND "threadId" = :thread_id"""
        parameters = {"element_id": element_id, "thread_id": thread_id}
        records = await self.execute_sql(query=query, parameters=parameters)
        if not records:
            return None
        element = records[0]
        return ElementDict(**element)

I figured that part out, but then the elements don't actually show up. I am not getting any errors, though. I am a bit lost here, because I have a hard time tracing the execution after the ElementDict is returned because of all the async code, which is new to me.
How does this ElementDict interact with the storage? How and where is the actual Element created? Maybe this has something to do with the LocalStorageClient I am using:
from chainlit.data import BaseStorageClient

import mimetypes
from pathlib import Path
from typing import Any, Coroutine, Union

async def write_file(
    root: str | Path, object_key: str | Path, content: str | bytes, mime: str
):
    path = Path(root) / (str(object_key) + mimetypes.guess_extension(mime))
    Path(path).parent.mkdir(parents=True, exist_ok=True)

    if isinstance(content, bytes):
        with open(path, "wb") as f:
            f.write(content)
    else:
        with open(path, "w") as f:
            f.write(content)

    return {"object_key": object_key, "path": str(path.absolute())}

class LocalStorageClient(BaseStorageClient):

    def __init__(self, dir: Union[str, Path]) -> None:
        super().__init__()
        self.dir = Path(dir)
        self.dir.mkdir(parents=True, exist_ok=True)

    async def upload_file(
        self,
        object_key: str,
        data: Union[bytes, str],
        mime: str = "application/octet-stream",
        overwrite: bool = True,
    ) -> Coroutine[Any, Any, Any]:

        return await write_file(
            root=self.dir, object_key=object_key, content=data, mime=mime
        )

Any help would be appreciated!

Hi @Simon-Stone,
I encountered this exact same issue a month ago, and it's unfortunately really complicated. While I do have a solution, I have no idea if this is the correct or optimal one.
 I also wanted to do the exact same thing as you, because I am implementing this for my company, and we didn't want to use any cloud storage.
Let me explain the conflict that you are encountering as simply as possible:

Chainlit built support (in a quite hardcoded way you will see from below) for using cloud file storage (like AWS S3) for storing elements and accessing those elements via a URL.
Cloud file storage serves those elements via a URL per file which directly links you to the element's bytes.
We are trying to store our files on a local file server, which does NOT inherently expose our files via a URL.
Chainlit's frontend is always trying to access elements via URL to display them.
You need to therefore expose your file server in some way so that elements can be accessed via URL.

Why is Chainlit only able to use URL to display elements? Element has a path parameter, why can't we just store our elements in that like you are attempting to do? The issue here is that neither the  ElementDict class nor the SQL table schema actually store the path value for Element at all. That means your code currently running return {"object_key": object_key, "path": str(path.absolute())} isn't actually doing anything with the path you are passing it. Take a look at the create_element() function in sql_alchemy.py, which uses your upload_file() function. It is actually just inserting url and object_key into your SQL table if you look here.
I would say just add path as a column in your SQL table schema and get it to work, but you would need to change every instance of Chainlit using URL from element throughout the entire project, and at that point you would effectively be forking it for your use case.
Thus, you need your elements to be accessible via a URL that corresponds to the file path that they reside within. To do this in my case, I basically but all of my storage elements into a folder under the public folder, which is mounted to the app with FastAPI, meaning its contents are accessible from the client via a URL.
Then, you just adjust your create_element() functions and your upload_file() functions to save elements and then in SQL save the URL that accesses the element instead of the path.
Here is the code I wrote to do that:
@queue_until_user_message()
async def create_element(self, element: "Element"):
    logger.debug(f"DataLayer: create_element(element_id = '{element.id}')")
    if not getattr(context.session.user, 'id', None):
        raise ValueError("No authenticated user in context")
    if not self.storage_provider:
        logger.warn(f"DataLayer: create_element error. No storage_client is configured!")
        return
    if not element.for_id:
        return

    content: Optional[Union[bytes, str]] = None

    if element.path:
        async with aiofiles.open(element.path, "rb") as f:
            content = await f.read()
    elif element.url:
        async with aiohttp.ClientSession() as session:
            async with session.get(element.url) as response:
                if response.status == 200:
                    content = await response.read()
                else:
                    content = None
    elif element.content:
        content = element.content
    else:
        raise ValueError("Element url, path or content must be provided")

    if content is None:
        raise ValueError("Content is None, cannot upload file")

    context_user = context.session.user

    user_folder = getattr(context_user, "id", "unknown")
    file_object_key = os.path.join(user_folder, element.id)
    if element.name:
        file_object_key = os.path.join(file_object_key, element.name)

    if not element.mime:
        element.mime = "application/octet-stream"

    uploaded_file = await self.storage_provider.upload_file(
        object_key=file_object_key, data=content, mime=element.mime, overwrite=True
    )
    if not uploaded_file:
        raise ValueError(
            "DataLayer Error: create_element, Failed to persist data in storage_provider"
        )

    element_dict: ElementDict = element.to_dict()

    element_dict["url"] = uploaded_file.get("url")
    element_dict["objectKey"] = uploaded_file.get("object_key")
    element_dict_cleaned = {k: v for k, v in element_dict.items() if v is not None}

    # ... Upsert into SQL

And my custom storage client:
from chainlit.config import config, DEFAULT_HOST
import mimetypes
import os

class FSStorageClient(BaseStorageClient):
    """
    Class to enable File System storage for ChainLit elements.
    """
    def __init__(self, storage_path: str, url_path: str):
        self.storage_path = storage_path
        self.url_path = url_path
        if not os.path.exists(self.storage_path):
            os.makedirs(self.storage_path, exist_ok=True)

        # Get serving URL
        host = config.run.host
        port = config.run.port

        if host == DEFAULT_HOST:
            self.url = f"http://localhost:{port}{os.environ.get('CHAINLIT_ROOT_PATH', '')}"
        else:
            self.url = f"http://{host}:{port}{os.environ.get('CHAINLIT_ROOT_PATH', '')}"

    async def upload_file(self, object_key: str, data: Union[bytes, str],
                          mime: str = 'application/octet-stream', overwrite: bool = True) -> Dict[str, Any]:

        try:
            # Clean file key and attempt to steal extension
            object_key, s_existing_extension = os.path.splitext(object_key)

            if s_existing_extension == "":
                # Guess extension if there is none
                s_file_extension = mimetypes.guess_extension(mime)
            else:
                s_file_extension = s_existing_extension
            s_object_key_final = object_key + s_file_extension
            s_object_key_url = s_object_key_final.replace("\\", "/")

            s_file_path = os.path.join(self.storage_path, s_object_key_final)

            # Ensure directory exists, Python does not create them automatically
            os.makedirs(os.path.dirname(s_file_path), exist_ok=True)

            # If we should not overwrite, fail if file exists
            if not overwrite and os.path.exists(s_file_path):
                return {}

            logger.debug(f"FSStorageClient, uploading file to: '{s_file_path}'")

            # Open the file in binary write mode
            async with aiofiles.open(s_file_path, "wb") as f:
                # Check if data is of type str, if yes, convert to bytes
                if isinstance(data, str):
                    data = data.encode('utf-8')
                await f.write(data)

            # Calculate URL for this file
            s_file_url = f"{self.url}/{self.url_path}/{s_object_key_url}"

            logger.debug(f"FSStorageClient, saving access URL as: '{s_file_url}'")

            return {"object_key": s_object_key_final, "url": s_file_url}

        except Exception as e:
            logger.warn(f"FSStorageClient, upload_file error: {e}")
            return {}

Then, you define your storage client as follows in your app.py:
fs_storage_client = FSStorageClient(
    storage_path=os.path.join(os.getcwd(), "public", "storage"),
    url_path="public/storage"
)

Hopefully this helps you get it working!

Wow, thank you so much for the thorough explanation and the detailed example code! So much appreciated! I will give this a try ASAP.

Still parsing what you shared here. Did you also create a get_element method for the data layer? Or am I misunderstanding how retrieving an element should work?

Still parsing what you shared here. Did you also create a get_element method for the data layer? Or am I misunderstanding how retrieving an element should work?

@Simon-Stone Oh so technically yes I did, but I am pretty sure it's never used. I have mine here for reference though:
async def get_element(self, thread_id: str, element_id: str) -> Optional[ElementDict]:
    logger.debug(f"DataLayer: get_element, thread_id='{thread_id}', element_id='{element_id}'")
    s_query = "SELECT TOP 1 * FROM dbo.elements WHERE id = :id"
    d_parameters = {"id": element_id}
    ld_result = await self.execute_sql(query=s_query, parameters=d_parameters)
    logger.debug(f"DataLayer: get_element, element result: {ld_result}")
    if ld_result and isinstance(ld_result, list):
        d_element_data = ld_result[0]
        return ElementDict(**d_element_data)
    return None

I just ran through some tests to confirm and it never gets called from what I can tell. The reason I think they don't need it is because for the current chat window, they just use a temporary folder under .files to store images and display them in the current chat, and there would be no need to retrieve from the SQL database to get your element data. They already can have images display in the chat when you don't have a data layer at all, so they had to make support for this functionality. In the case when you resume old chats and need the element data, they're always calling the get_all_user_threads() method. In that method, they are already getting all of the elements in all of the user's threads and then adding those elements to the thread's data.
However, if you aren't seeing any elements show up whatsoever in the current chat window, you may just have an issue with your implementation. If you shared some of your app.py code I could skim over it.

@Simon-Stone Nice, I'm glad you figured it out! You provided a very succinct explanation, I appreciate that.
I imagine not supporting local storage is just one of those things you can't predict in early development; you're trying to think about every possible thing users may want and you have to make some assumptions or you'll develop forever and never release your project (I'm a victim of this). I can see users saying the exact same thing if Chainlit only supported local file storage. Chainlit is fantastic in terms of feature completeness, it's just going to take a long time to polish out all of the loose ends.
I am really surprised that implementing that get_element() ended up working for you, I ran through everything element related in my chat app (having AI send an image/audio, I sent image/audio, I tried returning to an old chat with elements and resuming it) but nothing triggered my get_element() function. Do you notice what actions end up triggering the function in your app? I'd love to see if maybe I just missed something.
Thank you!

Hi @Simon-Stone,
I encountered this exact same issue a month ago, and it's unfortunately really complicated. While I do have a solution, I have no idea if this is the correct or optimal one.
 I also wanted to do the exact same thing as you, because I am implementing this for my company, and we didn't want to use any cloud storage.
Let me explain the conflict that you are encountering as simply as possible:

Chainlit built support (in a quite hardcoded way you will see from below) for using cloud file storage (like AWS S3) for storing elements and accessing those elements via a URL.
Cloud file storage serves those elements via a URL per file which directly links you to the element's bytes.
We are trying to store our files on a local file server, which does NOT inherently expose our files via a URL.
Chainlit's frontend is always trying to access elements via URL to display them.
You need to therefore expose your file server in some way so that elements can be accessed via URL.

Why is Chainlit only able to use URL to display elements? Element has a path parameter, why can't we just store our elements in that like you are attempting to do? The issue here is that neither the  ElementDict class nor the SQL table schema actually store the path value for Element at all. That means your code currently running return {"object_key": object_key, "path": str(path.absolute())} isn't actually doing anything with the path you are passing it. Take a look at the create_element() function in sql_alchemy.py, which uses your upload_file() function. It is actually just inserting url and object_key into your SQL table if you look here.
I would say just add path as a column in your SQL table schema and get it to work, but you would need to change every instance of Chainlit using URL from element throughout the entire project, and at that point you would effectively be forking it for your use case.
Thus, you need your elements to be accessible via a URL that corresponds to the file path that they reside within. To do this in my case, I basically put all of my storage elements into a folder under the public folder, which is mounted to the app with FastAPI, meaning its contents are accessible from the client via a URL.
Then, you just adjust your create_element() functions and your upload_file() functions to save elements and then in SQL save the URL that accesses the element instead of the path.
Here is the code I wrote to do that:
@queue_until_user_message()
async def create_element(self, element: "Element"):
    logger.debug(f"DataLayer: create_element(element_id = '{element.id}')")
    if not getattr(context.session.user, 'id', None):
        raise ValueError("No authenticated user in context")
    if not self.storage_provider:
        logger.warn(f"DataLayer: create_element error. No storage_client is configured!")
        return
    if not element.for_id:
        return

    content: Optional[Union[bytes, str]] = None

    if element.path:
        async with aiofiles.open(element.path, "rb") as f:
            content = await f.read()
    elif element.url:
        async with aiohttp.ClientSession() as session:
            async with session.get(element.url) as response:
                if response.status == 200:
                    content = await response.read()
                else:
                    content = None
    elif element.content:
        content = element.content
    else:
        raise ValueError("Element url, path or content must be provided")

    if content is None:
        raise ValueError("Content is None, cannot upload file")

    context_user = context.session.user

    user_folder = getattr(context_user, "id", "unknown")
    file_object_key = os.path.join(user_folder, element.id)
    if element.name:
        file_object_key = os.path.join(file_object_key, element.name)

    if not element.mime:
        element.mime = "application/octet-stream"

    uploaded_file = await self.storage_provider.upload_file(
        object_key=file_object_key, data=content, mime=element.mime, overwrite=True
    )
    if not uploaded_file:
        raise ValueError(
            "DataLayer Error: create_element, Failed to persist data in storage_provider"
        )

    element_dict: ElementDict = element.to_dict()

    element_dict["url"] = uploaded_file.get("url")
    element_dict["objectKey"] = uploaded_file.get("object_key")
    element_dict_cleaned = {k: v for k, v in element_dict.items() if v is not None}

    # ... Upsert into SQL

And my custom storage client:
from chainlit.config import config, DEFAULT_HOST
import mimetypes
import os

class FSStorageClient(BaseStorageClient):
    """
    Class to enable File System storage for ChainLit elements.
    """
    def __init__(self, storage_path: str, url_path: str):
        self.storage_path = storage_path
        self.url_path = url_path
        if not os.path.exists(self.storage_path):
            os.makedirs(self.storage_path, exist_ok=True)

        # Get serving URL
        host = config.run.host
        port = config.run.port

        if host == DEFAULT_HOST:
            self.url = f"http://localhost:{port}{os.environ.get('CHAINLIT_ROOT_PATH', '')}"
        else:
            self.url = f"http://{host}:{port}{os.environ.get('CHAINLIT_ROOT_PATH', '')}"

    async def upload_file(self, object_key: str, data: Union[bytes, str],
                          mime: str = 'application/octet-stream', overwrite: bool = True) -> Dict[str, Any]:

        try:
            # Clean file key and attempt to steal extension
            object_key, s_existing_extension = os.path.splitext(object_key)

            if s_existing_extension == "":
                # Guess extension if there is none
                s_file_extension = mimetypes.guess_extension(mime)
            else:
                s_file_extension = s_existing_extension
            s_object_key_final = object_key + s_file_extension
            s_object_key_url = s_object_key_final.replace("\\", "/")

            s_file_path = os.path.join(self.storage_path, s_object_key_final)

            # Ensure directory exists, Python does not create them automatically
            os.makedirs(os.path.dirname(s_file_path), exist_ok=True)

            # If we should not overwrite, fail if file exists
            if not overwrite and os.path.exists(s_file_path):
                return {}

            logger.debug(f"FSStorageClient, uploading file to: '{s_file_path}'")

            # Open the file in binary write mode
            async with aiofiles.open(s_file_path, "wb") as f:
                # Check if data is of type str, if yes, convert to bytes
                if isinstance(data, str):
                    data = data.encode('utf-8')
                await f.write(data)

            # Calculate URL for this file
            s_file_url = f"{self.url}/{self.url_path}/{s_object_key_url}"

            logger.debug(f"FSStorageClient, saving access URL as: '{s_file_url}'")

            return {"object_key": s_object_key_final, "url": s_file_url}

        except Exception as e:
            logger.warn(f"FSStorageClient, upload_file error: {e}")
            return {}

Then, you define your storage client as follows in your app.py:
fs_storage_client = FSStorageClient(
    storage_path=os.path.join(os.getcwd(), "public", "storage"),
    url_path="public/storage"
)

Hopefully this helps you get it working!

Hello, thank you to share it, I’m trying to understand your solution because I would like to implement local storage as well. I would like to ask for more information on how you made this modification regarding the function @queue_until_user_message() async def create_element(self, element: "Element") which I saw is in the sql_alchemy.py file of the Chainlit project. I understand that you had to modify the Chainlit source code, correct? Also, regarding this part: # ... Upsert into SQL; it seems to me that it should refer to:
columns = ", ".join(f'"{column}"' for column in element_dict_cleaned.keys())
placeholders = ", ".join(f":{column}" for column in element_dict_cleaned.keys())
query = f"INSERT INTO elements ({columns}) VALUES ({placeholders})"
await self.execute_sql(query=query, parameters=element_dict_cleaned)
— which, if I understood correctly, needs to be modified with the new column containing the paths of the files stored in local storage?
Finally, did you add local storage as a parameter to the SQLAlchemy data?
cl_data._data_layer = SQLAlchemyDataLayer(conninfo=f"postgresql+asyncpg://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DB}", storage_provider=local_storage)


stacks which use EdgeFunctions must have an explicitly set region

Environment information
System:
  OS: macOS 12.7.3
  CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
  Memory: 40.34 MB / 8.00 GB
  Shell: /bin/zsh
Binaries:
  Node: 20.14.0 - ~/.nvm/versions/node/v20.14.0/bin/node
  Yarn: undefined - undefined
  npm: 10.7.0 - ~/.nvm/versions/node/v20.14.0/bin/npm
  pnpm: undefined - undefined
NPM Packages:
  @aws-amplify/backend: 1.0.0
  @aws-amplify/backend-cli: 1.0.1
  aws-amplify: 6.3.8
  aws-cdk: Not Found
  aws-cdk-lib: Not Found
  typescript: 5.4.5
AWS environment variables:
  AWS_PROFILE = rnrnstar-us
  AWS_STS_REGIONAL_ENDPOINTS = regional
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
No CDK environment variables

Description
I tried to create an EdgeFunction with cdk, but the following error occurred because backend.createStack does not allow you to set the region.
Unable to build the Amplify backend definition.
Caused By: Error: stacks which use EdgeFunctions must have an explicitly set region
at EdgeFunction.createCrossRegionFunction (/Users/suzumuradaichi/github/MiracleLinkMaker/node_modules/aws-cdk-lib/aws-cloudfront/lib/experimental/edge-function.js:1:7079)
Resolution: Check your backend definition in the amplify folder for syntax and type errors.

Hey @rnrnstar2, thank you for reaching out. The issue is currently being tracked on https://github.com/aws-amplify/amplify-backend/issues/1663. PR providing additional information on this: https://github.com/aws-amplify/amplify-backend/pull/1675
Closing this issue as duplicate.


feat(python): enable waf telemetry metrics tests

Description
Enable WAF Telemetry Metrics for Python

Side note: you can change the Pr status to ready for review when it's ready :) (I usually skips draft PR in my daily PR review unstack slot)

CI is failing on activated tests

Fixed, could you review @cbeauchesne ? thanks!


Add AWS Cloud Provider Integration docs

I've decided to focus on a single platform for this guide. I'm shifting focus to cover more configuration options such as RBAC, TLS bootstrapping, and add-ons. Too much time required to keep the IaaS bits in sync with AWS.


Account for stake measurements that are located outside the glacier outlines provided by RGI

Some stake measurements might be so outdated that they no longer intersect with the recorded RGI glacier outlines due to glacier retreat. As a result, these stakes cannot be matched with a specific glacier or assigned an RGI code. However, to make these historical data usable, it's important to find a way to still associate these measurements with a glacier and obtain an RGI code.
One possible solution is to group or cluster nearby stakes and identify those with a similar RGI. Another approach could involve using a graphical user interface (GUI) that allows users to select points and manually assign them to a glacier.

We could possibly use geopandas.sjoin_nearest to do this: https://geopandas.org/en/stable/docs/reference/api/geopandas.sjoin_nearest.html
I think this would work if the problem is generally that these points are associated with retreating glacier tongues such that we can expect that the nearest geometry is the correct one.
If we use this we might set a default max_distance such that in case of incorrect POINT_LAT and POINT_LON we do not connect the point with an arbitrary RGIId.


[1.2] SQLSTATE[01000]: Warning: 1265 Data truncated for column 'authenticatable_id' at row 1

PHP & Platform
8.1.23 - Ubuntu 22.04.3 LTS WSL
Database
MySQL 8.0.33-0ubuntu<IP_ADDRESS>
Laravel version
10.10
Have you done this?

[X] I have checked my logs and I'm sure is a bug in this package. - [X] I can reproduce this bug in isolation (vanilla Laravel install) - [ ] I can suggest a workaround as a Pull Request

Expectation
Just installed this package did not change anything, following the documentation, attestation does not work and I need help . Thanks :)
Description
[2023-09-24 08:12:33] local.ERROR: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'authenticatable_id' at row 1 (Connection: mysql, SQL: insert into webauthn_credentials (authenticatable_id, authenticatable_type, id, user_id, alias, counter, rp_id, origin, transports, aaguid, public_key, attestation_format, updated_at, created_at) value (detail in the stack logs).
I used ulid instead of id in the users table.
Reproduction
async function func_registerkey () { new WebAuthn().register().then(response => { alert('Registration successful!') }).catch(error => { console.log(error); alert('Something went wrong, try again!') }); }
Stack trace & logs
shell [2023-09-24 08:12:33] local.ERROR: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'authenticatable_id' at row 1 (Connection: mysql, SQL: insert into `webauthn_credentials` (`authenticatable_id`, `authenticatable_type`, `id`, `user_id`, `alias`, `counter`, `rp_id`, `origin`, `transports`, `aaguid`, `public_key`, `attestation_format`, `updated_at`, `created_at`) values (01hanwjtzrrn2mf7wfpa9ns6jb, App\Models\User, Ki0iUkN3NYMdIQnQxRgyGQ, c9b23794b1fa48cdb9f6b31440c28958, ?, 0, https://dev.test, https://dev.test, ?, 531126d6-e717-415c-9320-3d9aa6981239, eyJpdiI6InlaS2ZPdmxuL1cxajdPdWRYcHk2OVE9PSIsInZhbHVlIjoiU3owM3RuNy9nZCtHRi80dDlUMVFPZ0FCUFAvamZUYlJDL0ZXY0cyS0ZZS3dLdTdWTUVNUVU2dURTbXJrRlZ2Skw5RFQ5dUltanBoV1ZkWllMSUJIYXBmQTlHS2w0b3dLWCt3T1RsUXp0UXhrc0xXQkpqamZPZ3kvcFVVY0hWVVRwZTkrVU1VSjlnUzNXQ2dBR1lVT0F5ZHRLOUVMZWdoM0NJWGYwY1U5OEtWellLNkt1Yk5sRVV6WmdFM3RZVTg0MDhMVGNpR29kSUZmUk90dy94TkJNV3VNVUJWTDdPYjdTaTV5SG9mRzh2aFdXWW83S2Q5YVpDUlh3VlU2VWpyTiIsIm1hYyI6ImQ2NTcxZWY1YzQxYzA3NTIzNDY3ZWY1NmQ1ZWQ1MDUyZDQyYzZjYzg4ZDI5YjE1OWQyZTI5ODE3YjY4ZWRkM2YiLCJ0YWciOiIifQ==, none, 2023-09-24 08:12:33, 2023-09-24 08:12:33)) {"userId":"01hanwjtzrrn2mf7wfpa9ns6jb","exception":"[object] (Illuminate\\Database\\QueryException(code: 01000): SQLSTATE[01000]: Warning: 1265 Data truncated for column 'authenticatable_id' at row 1 (Connection: mysql, SQL: insert into `webauthn_credentials` (`authenticatable_id`, `authenticatable_type`, `id`, `user_id`, `alias`, `counter`, `rp_id`, `origin`, `transports`, `aaguid`, `public_key`, `attestation_format`, `updated_at`, `created_at`) values (01hanwjtzrrn2mf7wfpa9ns6jb, App\\Models\\User, Ki0iUkN3NYMdIQnQxRgyGQ, c9b23794b1fa48cdb9f6b31440c28958, ?, 0, https://dev.test, https://dev.test, ?, 531126d6-e717-415c-9320-3d9aa6981239, eyJpdiI6InlaS2ZPdmxuL1cxajdPdWRYcHk2OVE9PSIsInZhbHVlIjoiU3owM3RuNy9nZCtHRi80dDlUMVFPZ0FCUFAvamZUYlJDL0ZXY0cyS0ZZS3dLdTdWTUVNUVU2dURTbXJrRlZ2Skw5RFQ5dUltanBoV1ZkWllMSUJIYXBmQTlHS2w0b3dLWCt3T1RsUXp0UXhrc0xXQkpqamZPZ3kvcFVVY0hWVVRwZTkrVU1VSjlnUzNXQ2dBR1lVT0F5ZHRLOUVMZWdoM0NJWGYwY1U5OEtWellLNkt1Yk5sRVV6WmdFM3RZVTg0MDhMVGNpR29kSUZmUk90dy94TkJNV3VNVUJWTDdPYjdTaTV5SG9mRzh2aFdXWW83S2Q5YVpDUlh3VlU2VWpyTiIsIm1hYyI6ImQ2NTcxZWY1YzQxYzA3NTIzNDY3ZWY1NmQ1ZWQ1MDUyZDQyYzZjYzg4ZDI5YjE1OWQyZTI5ODE3YjY4ZWRkM2YiLCJ0YWciOiIifQ==, none, 2023-09-24 08:12:33, 2023-09-24 08:12:33)) at /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Connection.php:801) [stacktrace] #0 /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Connection.php(755): Illuminate\\Database\\Connection->runQueryCallback() #1 /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Connection.php(581): Illuminate\\Database\\Connection->run() #2 /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Connection.php(533): Illuminate\\Database\\Connection->statement() #3 /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3338): Illuminate\\Database\\Connection->insert() #4 /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1968): Illuminate\\Database\\Query\\Builder->insert() #5 /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1309): Illuminate\\Database\\Eloquent\\Builder->__call() #6 /var/www/projects/evangeline/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1137): Illuminate\\Database\\Eloquent\\Model->performInsert() #7 /var/www/projects/evangeline/vendor/laragear/webauthn/src/Http/Requests/AttestedRequest.php(83): Illuminate\\Database\\Eloquent\\Model->sav

I just tried my workaround, and it works perfectly at least for attestation. So in the migration file there is this line
 $table->morphs('authenticatable', 'webauthn_user_index');

that is responsible for creating these two columns in the database:
authenticatable_type and authenticatable_id.

By default, those two columns uses BigInt and Varchar data types respectively and if you are using ULID instead of ID as primary in your users table eventually you will get the same error as I do which is:
SQLSTATE[01000]: Warning: 1265 Data truncated for column 'authenticatable_id' at row 1 (Connection: mysql, SQL: insert into 'webauthn_credentials'
that error occured because ( as far as I know ) the data being inserted or updated is too long for the column's data type. So eventually I changed the authenticatable_id column's data type to CHAR with the length of 26 (the default data type and length of ULID) and it just works at least for the attestation for the time being.

It works just fine. Thx :)


Need to add failed transactions to blocks & charge fees

In order to prevent DDoS attacks, we need to add failed transactions to blocks and charge for the gas costs as well.

https://github.com/ainblockchain/ain-blockchain/pull/506


Bug: Grid snapping issue

On a grid-enabled canvas, when a box is placed with a 1-unit buffer from the edge, resizing the opposite side will sometimes glitch the side near the edge.
There's a gif in this issue: https://github.com/thousandetherhomepage/ketherhomepage/issues/4#issuecomment-333950549
I also managed to reproduce it in https://mauricius.github.io/vue-draggable-resizable/ but couldn't get it reliably or on the same corner. I got it working on the bottom right corner, same idea.
Not quite sure what the underlying issue is.

Actually it might be something on my end, the glitchy behaviour I reproduced is subtly different (I think more to do with the size of the grid that I wasn't accounting for). Will re-open if I can get more info.

Okay, I think the issue is indirectly with reviewDimensions:
I was supplying :x="..." and :y="..." values which change later, but I was expecting them to only be used when the component is initialized.
Would it make more sense to change reviewDimensions to check {this.left, this.top, this.width, this.height} instead of {this.x, this.y, this.w, this.h}?
I believe it would be equivalent, and the state would remain more internally consistent. What do you think?

In fact, it seems this.{x,y,etc} are never updated after initialization, so perhaps that check is incorrect as it is now?

Actually I've also noticed a glitch when using the grid prop, limited to top and left edges, but I don't know if this is your issue. I just looked into it and is related to the round operation on height and width respectively.
I'm more and more convinced to use another approach on the future development of the component, maybe using https://github.com/storybooks/storybook, because testing all of these edge cases is really difficult using standard unit tests. Unfortunately these weeks I'm pretty busy at work, so I will not be able to look into it very soon.


Config: Update eipw.toml

When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met:

The PR edits only existing draft PRs.
The build passes.
Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
If matching on email address, the email address is the one publicly listed on your GitHub profile.

welcome
في الاثنين، ٢٠ نوفمبر ٢٠٢٣, ١٠:١١ ص EIP Review Bot @.***>
كتب:

EIP Review Bot is running...
—
Reply to this email directly, view it on GitHub
https://github.com/ethereum/ERCs/pull/108#issuecomment-1818354690, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BA22KCEWCINWPPDECQTTW2LYFL7CJAVCNFSM6AAAAAA7SNW24WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJYGM2TINRZGA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add ability to queue a stack from the cli

(unless I'm just unaware of the command, but it seems like av pr queue does not have any options for that. If it is there, pls document lol)

(unless I'm just unaware of the command, but it seems like av pr queue does not have any options for that. If it is there, pls document lol)
I'm not sure I follow what you are suggesting. To queue the stack PRs via the CLI, you checkout the branch at the top of the stack (or partial stack) that you want to queue, run av pr queue.


Load IDataView in generated console project

Image Classification

[ ] Read from memory - Issue

Text

[ ] Load into IDataView from csv
[ ] Load into IDataView from SQL

@beccamc I think this is a good candidate to track in #1638

Project with notes that Luis and I discussed for how training file should look:
SQLExampleCode.zip

PR with updated IDataView code for text scenarios. https://github.com/dotnet/machinelearning-tools/pull/1620

Here are the sample training files for image and text. SampleTraining.zip

Note: we need to add the file header and separator information for the file

This has been validated in bug bashes. One outstanding issue - https://github.com/dotnet/machinelearning-modelbuilder/issues/2440


Flush WAL as fast as possible on start-up

This addresses complaints of long start-up times when there is lots of data sitting in the WAL.

@dgnorton suggested this a few days ago.
cc @benbjohnson
Triggered by: https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/influxdb/JSwpWVeaxOE/UyQQDd2WBtMJ


chores stuff -- Linter, Add test coverage, readme

Putting this as an issue for tracking

[ ] Linter
[ ] Test-coverage  90%
[ ] Comprehensive Readme

fixed in #31


Schema validate CIM XML for time series

Synopsis:
We need to coordinate some issues for use of schema validation, and B2B validations in general, before we can implement the XML Schema validation.
Acceptance criteria

It has been determined what HTTP status code should be returned on failed schema validations
It has been determined where the code XML schema validation should live
The process of determining what to do with results from B2B validation has been started and the status written on this story

API Management:
Talked with Mighty Ducks and Architect. The API Management will just forward the call to the correct domain endpoint for each message sent from outside.
It will be up to each individual domain to send the correct HTTP status code and response back to the sender. A process will be started to determine how and what to reply so that the market participants will get the same type of response from each domain.
XML schema validation:
It has been agreed that schema validation should probably be a nuget package so all domains can share it, but the location has not yet been determined.
Architect input to requirements: We should aim for providing a new implementation of XmlReader so that each domain only have to make a single passthrough of the CIM XML fall when building their internal objects. While the domain builds, the Reader should check the schema and provide a way for the domain to check that at the end of the process.

Answers to ACs:
It has been determined what HTTP status code should be returned on failed schema validations - We should respond with HTTP 400 Bad request on schema validations

Test of story:

HTTP status code returned on failed schema validations is determined
It is verified that the determined place for the code XML schema validation exists
According to the Answers to ACs the process has started

In conclusion, this story is tested to be correct


Internal server error on napari-chatgpt plugin page

Description

https://napari-hub.org/plugins/napari-chatgpt is erroring out due to 500 server error with the GET https://napari-hub.org/plugins/napari-chatgpt operation. This is the only plugin that has this issue.
Moreover, data for the plugin is available via the API: https://api.napari-hub.org/plugins/napari-chatgpt, so we presume this may be a frontend error

PR: https://github.com/chanzuckerberg/napari-hub/pull/1026


Converting node object to string

Is there a reliable way to convert all (or most) node instances to a human textual representation? All the methods I've tried leave too many escape characters or type information in the string...
For example, node.toJSON().object produces [\"name\": JSON.JSON(node: Node.Node.string(\"name\"))], however I'd like it to just be ["name" : "name"]
Any ideas?

Encoding to JSON with pretty print enabled would give you a good printout.
// your node object
let foo: Node = .string("hi")

// convert to JSON
import JSON
let json = try JSON(node: foo)

// output pretty print
let output = try json.serialize(prettyPrint: true)
print(output)

Thanks!


a issue about background like traffic cone or road line isn't constrained by the BEV layout

hello, thank you for your excellent work!
I had a problem when I was trying to run inference.py. Though the model successfully output the video, but in this video, only the instance like car was constrained by BEV layout, the background like traffic cone and road line wasn't constrained by BEV layout, meanwhile the ego vehicle remained stationary in video.
I have already check the input 19 channels (10 for depth, 3 for bounding boxes, 3 for
road maps, and 3 for camera pose embeddings) for control net and didn't find any mistake.
Could you help me out with this? thank you!

Could you give me some examples for that  so I can check the possible problem?

Thank you so much for your reply! I've already send some inference results to your email this morning from<EMAIL_ADDRESS>The index for results in "nuscenes2d_temporal_infos_train.pkl" are [1827:1832] and [1828:1833].

Hi, sorry for the late reply,  it seems that I didn't receive your pictures, could you please send them one more time?
Best,
Yuqing
-----原始邮件-----
发件人:Miayui @.>
发送时间:2024-10-31 16:39:43 (星期四)
收件人: wenyuqing/panacea @.>
抄送: "Yuqing Wen" @.>, Comment @.>
主题: Re: [wenyuqing/panacea] a issue about background like traffic cone or road line isn't constrained by the BEV layout (Issue #30)
Thank you so much for your reply! I've already send some inference results to your email this morning from @.*** The index for results in "nuscenes2d_temporal_infos_train.pkl" are [1827:1832] and [1828:1833].
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

hi, thank you for your reply, I can't send the pictures to your github mail cause they are too big, so I send to your school e-mail<EMAIL_ADDRESS>please cheak it~

Hi, sorry, maybe there is something wrong?  I cannot find your email.

Maybe the mail is in the trash?

Hi, I'm very sorry I've checked all the mail but cannot find your email. Or maybe can you attach some images here?


Make SpeckleView Dockable in Revit.

First draft is just a floating form. I've not even handled the logic for it to stay on top of Revit.

FYI, this one is not as straightforward as it might seem at first, DockableWindow has its own API in Revit.
Reading list

http://thebuildingcoder.typepad.com/blog/2013/05/a-simpler-dockable-panel-sample.html
http://spiderinnet.typepad.com/blog/2014/10/revit-net-api-create-custom-dockable-pane-dockablepane-pt-1.html

@fraguada I merged in some boilerplate code for setting up dockable windows in the Revit project. PR https://github.com/speckleworks/SpeckleRevit/pull/14.
The dockable window is registered at application startup with additional command data being accessed when the Ribbon command is run. There is also a special workflow for safely running transactions on a Revit document from a modeless dialog. This is shown the form_MainDock and ExtCmdModeless classes.
I have only ever done dockable forms with WPF forms in Revit so it appears there may be a need to switch from CefSharp.Winforms to CefSharp.Wpf (I am not familiar with CefSharp and its uses)


docs(csrf): Add usage example

Description

Adds client usage example for CSRF middleware.
Slightly modifies the existing server example to make it more copy pastable.
References to external links for some related concepts.

Doc link: https://litestar-org.github.io/litestar-docs-preview/3256/usage/middleware/builtin-middleware.html#csrf

automerge screws me yet again

I can just make these changes in https://github.com/litestar-org/litestar/pull/3212 sorry to spam


Create a C library that wraps lua and the djot code

If we had a C library, it would be easy to use from other languages via ffi.
The easiest route to this would be simply building in liblua.a + the djot sources.
I don't think this would be too complicated, because we don't have any external Lua dependencies.

In terms of an API, one would probably want a function that initializes the module (loading and interpreting the djot code and returning a Lua state), a function that cleans up, and functions that wrap the Lua library functions.

Another approach is to create a one-file version of the djot code, and then load it using Lua's C API.

This short lua script, run from djot's source directory, will produce a single-file version of djot:
-- combine modules into one file

local modules = {"djot", "djot.ast", "djot.attributes", "djot.block",
                 "djot.emoji", "djot.html", "djot.inline", "djot.json",
                 "djot.match"}

for _,module in ipairs(modules) do
  print(string.format('package.preload["%s"] = function()', module))
  local path = module:gsub("%.","/") .. ".lua"
  local f = assert(io.open(path, "r"))
  local content = f:read("*all")
  print(content)
  print('end\n')
end

print('local djot = require("djot")')
print('return djot')

I added a simple example of embedding the lua code in a C program under the clib directory. Next steps: make a proper C library.

Updated to add compilation to wasm/js and a demo of the library running in the browser.  We can use this to replace the live playground.

Next step would be to expose functions that allow manipulation of the AST before rendering. This is more complex.


Allow pretending for DDL statements

If the Connection is pretending, the DDL statements should not run
Since affectingStatement already handles pretending, its fine to just pass through to that method which will return 0 as normal, allowing the generated SQL to be captured

Fixed in https://github.com/colopl/laravel-spanner/pull/170.


Url does not remove leading / trailing control characters

Bug Report
Description
Leading/trailing C0 Control is not removed correctly
For input
"\u001b\u0004\u0012 http://example.com/\u001f \u000d"

Expected parsing result: http://example.com/
Current parsing result: "%1B%04%12%20http://example.com/%1F"
Spec reference: basic url parser 1.3

This is not a bug. This is a feature.
Please note that WHATWG provides a living standard, i.e., the document changes over time. At the time of implementation the bullet point 1) was not there. Also I don't think it has any real impact (afaik not all evergreen browsers support this - hence websites will not make any use of this).
For 2) it was never stated that Url supports this - this was a decision for simplification (any contribution here welcome).

Port number validation is not returning failure when port number is larger than 65535

I don't see any error here. Ports are currently 16-bit, however, who knows when (or if) this will change. It should be up to the specific requester to then block a request (let's say the port is 99999 - what should we do about it? Just drop the port? note that invalid URLs will result to a default URL -> it will have potential negative side-effects) if its doing something invalid.
The only thing I see from this list that should be tackled is "Leading/trailing C0 Control is not removed correctly".
I've edited the title to reflect this correctly. Thanks!

Thanks for the explanation.
The leading/trailing control characters problem is the only one need to be fixed now, but actually I do want to discuss about something else as well, I will open a feature issue later about it. I have removed unrelated topic in this issue.
For this particular bug, I will send a separate PR later today.

Thanks for the adjustment and the great PR!
Landed in devel.


Custom document key

Is there a way to specify a custom document key? I would like to write security rules like this and not sure if your awesome library allows it. 🙂
    match /geofire/{uid} {
      allow read: if true;
      allow write: if request.auth.uid == uid;
    }

Yea, just as you would do this in firebase...
firestore.collection('geofire').doc(uid).set({
  // custom stuff here
});

You can do this with geofirestore:
geofirestore.collection('geofire').doc(uid).set({
  // custom stuff here
});


Payload Too Large error is thrown on devnet for transactions involving 3 zkApp accounts

The following error is thrown on devnet with o1js 0.18.0:
Error: Transaction failed with errors:
- {"statusCode":413,"statusText":"Payload Too Large"}
    at Object.send (/Users/mike/Documents/DeFi/MinaNFT/minanft-lib/node_modules/o1js/dist/node/index.cjs:20902:15)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at sendTx (/Users/mike/Documents/DeFi/MinaNFT/minanft-lib/experimental/payload.issue.test.ts:640:14)
    at Object.<anonymous> (/Users/mike/Documents/DeFi/MinaNFT/minanft-lib/experimental/payload.issue.test.ts:601:5)

The same code works as intended on the local blockchain and Zeko. It occurs only on tx that include three zkApp accounts:

2 usual zkApp accounts
1 token zkApp account

The code to reproduce the issue:
https://github.com/dfstio/minanft-lib/blob/master/experimental/payload.issue.test.ts
It may be related to https://github.com/o1-labs/o1js/issues/1245#issuecomment-1972951258

The tx that is causing this error:
payload-issue.json

Hey @dfstio thanks for the issue reported!
I noticed that you save txn payload into the file before txn gets proved that most likely will include additional "weight" to the request.
I also noticed that you're using the Mina Explorer's Proxy to broadcast the transaction (send payload). Most likely that proxy has some request payload size limits. Can you please confirm if the issue happens to you using other broadcasting services as well (maybe your own node with graphql endpoint enabled, or the Lightnet)?

I've tested, in addition, the https://api.minascan.io/node/devnet/v1/graphql endpoint and Lightnet; the error is being thrown only when using https://proxy.devnet.minaexplorer.com/graphql.
I've moved the code that serializes the tx after tx.prove(); below are the files that were produced for all three endpoints:
payload-issue-lightnet.json
payload-issue-minaexplorer.json
payload-issue-minascan.json

Discussion on discord:
https://discord.com/channels/484437221055922177/583400552487059546/1232023018276917349

the error is being thrown only when using https://proxy.devnet.minaexplorer.com/graphql.

Thank you! I think we also need to check with other public txns broadcasting services if they have request size limits.
We are going to raise it.

The issue is resolved by increasing the limit on  https://proxy.devnet.minaexplorer.com/graphql and tx is now successful:
https://devnet.minaexplorer.com/transaction/5JuoKLjxvdYCHtByWmFR43uZXTgwtDUJvxhpu5N3qjpZrUZV8kMh


Graphical Interface Won't Run

Recent setup of the Allsky setup on my Raspberry Pi 4. I keep trying to get the GUI running, but I get connection refused each attempt. I have also tried to load in the local browser on the RPi.
Attempted to install again and the below is the install log. Any help would be appreciated!
`* Installation of the webserver
Hit:1 http://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:2 http://archive.raspberrypi.org/debian buster InRelease
Hit:3 http://linux.teamviewer.com/deb stable InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
avahi-daemon is already the newest version (0.7-4+b1).
hostapd is already the newest version (2:2.7+git20190128+0c1e29f-6).
lighttpd is already the newest version (1.4.53-4).
php7.3-cgi is already the newest version (7.3.4-2).
dnsmasq is already the newest version (2.80-1+rpt1).
0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.
already enabled
Run "service lighttpd force-reload" to enable changes
Job for lighttpd.service failed because the control process exited with error code.
See "systemctl status lighttpd.service" and "journalctl -xe" for details.

Configuring lighttpd

Changing hostname to allsky

Setting avahi-daemon configuration

Adding the right permissions to the web server

Retrieving github files to build admin portal
Cloning into '/var/www/html'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 1771 (delta 0), reused 1 (delta 0), pack-reused 1767
Receiving objects: 100% (1771/1771), 2.72 MiB | 5.96 MiB/s, done.
Resolving deltas: 100% (610/610), done.
mkdir: cannot create directory '/etc/raspap': File exists

Modify config.sh

The Allsky Portal is now installed
You can now reboot the Raspberry Pi and connect to it from your laptop, computer, phone, tablet at this address: http://allsky.local
`

I will give it a try tonight on the RPi4 I just received. It seems that lighttpd.conf may have an error in it and the service fails to start properly.

@thomasjacquin thanks. let me know if you need me to try anything.

Alright, there was a syntax error. I have fixed the code. Can you try re-installing it?

@thomasjacquin do I need to remove anything or just run gui/install.sh again?

The following should be enough:
git clone https://github.com/thomasjacquin/allsky.git
cd allsky
sudo gui/install.sh

@thomasjacquin i had to do a clean install of allsky, but it worked after that. thanks!


Add discussion as features of project

Hi,
Could you add the discussion feature of the github project ?
I would like to inform you about this study : https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8753602/
Adding Calcium ions to the solution could improve the structure.
I'm currently disolving egg shells in white vinegar and lemon juice (separately) in order to test it, but i don't have the scientifical processes to be rigorous

Hi @Vaadasch -- thanks for the suggestion! I've opened up the discussions feature. Feel free to move your idea/suggestion over there for others to discuss.


Shared preference adding

custom shared preference added

user name and user email displayed over on nav header layout (works only for google login)


fix parse() arguments to match the documented types

Problem
What problem are you trying to solve? What issue does this close?
The pdf2md say it will receive the following type:
@param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} pdfBuffer
 * Passed to `pdfjs.getDocument()` to read a PDF document for conversion

However, it only works with BinaryData type.
Solution
How did you solve the problem?
I add a type check and make the first argument convert to docOptions depends on the type given:
if (typeof docOptions === "string" || docOptions instanceof URL) {
  docOptions = { url: docOptions };
} else if (docOptions instanceof ArrayBuffer || ArrayBuffer.isView(docOptions)) {
  docOptions = { data: docOptions };
}

This should match the docs of pdfjs:
https://mozilla.github.io/pdf.js/api/draft/module-pdfjsLib.html

I don't think we need to be holier than the pope:
https://github.com/mozilla/pdf.js/blob/12875359c387d7e2d312c50748833b3c52d986aa/src/display/api.js#L234
function getDocument(src) {
   // ...

   if (typeof src === "string" || src instanceof URL) {
      src = { url: src };
    } else if (isArrayBuffer(src)) {
      src = { data: src };
    }

    // ...
}


torch.aten.randperm

Hi @frafranz, are you still working on this op?

Hi Vivek,
sadly I have not had time recently to work on this op, and cannot say yet
when I‘ll be able to get back to it.
On Wed, Aug 14, 2024 at 09:29 Vivek Khandelwal @.***>
wrote:

Hi @frafranz https://github.com/frafranz, are you still working on this
op?
—
Reply to this email directly, view it on GitHub
https://github.com/nod-ai/SHARK-Turbine/issues/355#issuecomment-2288041643,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASPHYHYP2SF7JDWQNBXV46TZRMBMTAVCNFSM6AAAAABB5ON2UCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBYGA2DCNRUGM
.
You are receiving this because you were mentioned.Message ID:
@.***>


fix(scheduler): only update application service definition once

The problem here is that multiple process types will let the last process type win out. Instead let the first one win

Code LGTM

Current coverage is 83.11%

Merging #573 into master will not affect coverage as of 11c59bc

@@            master    #573   diff @@
======================================
  Files           36      36
  Stmts         2310    2310
  Branches       334     334
  Methods          0       0
======================================
  Hit           1920    1920
  Partial        114     114
  Missed         276     276

Review entire Coverage Diff as of 11c59bc

Powered by Codecov. Updated on successful CI builds.