stm32: Document user configurable write-block-size

Is your enhancement proposal related to a problem? Please describe.
https://github.com/zephyrproject-rtos/zephyr/pull/67919 introduces configurable write-block-size support in STM32F4 flash driver.
This possibility was already available on STM32F1 flash driver.
This could be useful from application side as it can speed up flash writes.
Issue is that this possibility is not documented outside driver and it is likely that most users will miss this.
Describe the solution you'd like
Document this property behavior in a binding.
Besides, since only a specific range of values are supported, it would be nice to re-define it from int to enum.
Hence, proposal is to add per series variants of st,stm32-nv-flash with new write-block-size prop defined as an enum with proper description.

I've been looking at this issue and some things aren't clear to me.
I see that for the STM32F4 series it is possible to configure the write block size through bits 9:8 of the FLASH_CR register. No problems here.
However, for the STM32F1 series, the documentation only mentions half-word write operations.
Taking a closer look at the flash_stm32f1x.c file and investigating the previous commits, it seems that in the past this file was used for the F0, F1, F3, L0 and L1 series. But I'm not sure if that's still the case. @erwango can you confirm it please? See #25245 and 21fe559eb76aa2b6b74260cd70a0fe6fd8311fa0.
Below is a summary of the supported block sizes for each series according to the information I found in the documentation.

Series
Supported block sizes
Reference

F0
half-word
Section 3.2.2 of RM0091

F1
half-word
Section 2.3.3 of PM0068

F3
half-word
Section 4.2.3 of RM0316

F4
byte, half-word, word, double word
Sections 3.3 and 3.9.7 of RM0090

L0
byte, half-word, word
Section 3.2 of RM0377

L1
byte, half-word, word, double word
Section 3.2 of RM0038

So, when you say to add per series variant of st,stm32-nv-flash does that mean only for F1 and F4 series or for all the series above?
Having this clarified, I think I can tackle this issue.

Thanks @ggrs for looking into this. You're fully right, and this is now configured based on device tree compatible (st,stm32f1-flash-controller in case of this driver, used for f0, f1, f3, l0 and l1).
This means that F4 and L1 have the possibility to configure block size. So a new compatible (ex: st,stm32f4-nv-flash) would apply to L1 and F4.


feat(config): add read initial options helper

Summary
Add readInitialOptions function to the jest-config package. This helper function can be useful for consumers of the jest programmatic API. It exposes the functionality that jest uses to read config from different sources.
Test plan
I've added integration tests to the jest-config package. I couldn't add tests for a jest.config.mjs file, because it kept being read as a cjs file. I think this has to do with babel transforming.
To add a test for a jest.config.ts file, I had to enable --experimental-vm-modules to run jest on jest. If you see problems with this, I can also remove the jest.config.ts test altogether (or we can fix it somehow?)
I've tested it on the integration test suite in StrykerJS, and it works as expected.
Closes #13348

@SimenB I think readInitialOptions is a bit more clear than readRawOptions. Do you agree?
I've decided to make the API a bit more precise; instead of 5 positional arguments, we now have 2 of which the second argument is an "options" parameter, where you are forced to explicitly name each option you want to override.

I don't know why the circleci tests are failing 😟

I've added integration tests to the jest-config package.

Integration test should be in e2e/ directory. That way there's no need for experimental flags either

@SimenB thanks for the fast review!
With regards to --experimental-vm-modules, reading from a jest.config.ts files without doesn't seem to work in e2e directory either. I've pushed it now so we can see the error in CI.
I get this weird Segmentation fault error right before the test process crashes:
nicojs@NicoJ01 ~/github/jest (feat/read-initial-options)$  cd /home/nicojs/github/jest ; /usr/bin/env 'NODE_OPTIONS=--require /home/nicojs/.vscode-server/bin/74b1f979648cc44d385a2286793c226e611f59e7/extensions/ms-vscode.js-debug/src/bootloader.bundle.js --inspect-publish-uid=http' 'VSCODE_INSPECTOR_OPTIONS={"inspectorIpc":"/tmp/node-cdp.943-83.sock","deferredMode":false,"waitForDebugger":"","execPath":"/home/nicojs/.nvm/versions/node/v16.15.0/bin/node","onlyEntrypoint":false,"autoAttachMode":"always","mandatePortTracking":true,"fileCallback":"/tmp/node-debug-callback-45176a3390f07d11"}' /home/nicojs/.nvm/versions/node/v16.15.0/bin/node ./node_modules/.bin/jest readInitialOptions.test
Debugger attached.

 RUNS  e2e/__tests__/readInitialOptions.test.ts
Segmentation fault

The e2e test for reading jest.config.ts lives here. Perhaps there is some clue?
Just an idea – would you consider using the pattern from the mentioned file for the e2e test in this PR? It works well with simple fixtures as in this case.

The difference between jest.config.ts.test.ts and these new e2e tests is that I'm using the readInitialConfig API directly, while the other tests are spawning a new jest instance. It probably has to do with that.
The problem lies in this line of code:
https://github.com/nicojs/jest/blob/c2dffe995af845ccc0bd4affc936d8013f90bf19/packages/jest-config/src/readConfigFileAndSetRootDir.ts#L112

I don't know why a import expression would yield such an error 🤷♀

If I did not miss something, this e2e test is passing:
import * as path from 'path';
import execa = require('execa');
import {cleanup, writeFiles} from '../Utils';

const DIR = path.resolve(__dirname, '../read-initial-options');

beforeEach(() => cleanup(DIR));
afterAll(() => cleanup(DIR));

test('reads a jest.config.ts file', async () => {
  writeFiles(DIR, {
    'jest.config.ts': "export default {jestConfig: 'jest.config.ts'};",
    'package.json': '{}',
    'readConfig.js': `
      const {readInitialOptions} = require('jest-config');
      async function readConfig() {
        console.log(await readInitialOptions());
      }
      readConfig();
    `,
  });

  const {stderr, stdout} = await execa('node', ['readConfig.js'], {cwd: DIR});

  expect(stderr).toBe('');
  expect(stdout).toMatch("jestConfig: 'jest.config.ts'");
});

Yeah, exactly. This is what I was thinking later as well. That approach will also work for a jest.config.mjs file I think. Probably the root cause is jest running tests in a node VM (at least, that is my understanding now).
I will update this PR tomorrow morning.

I've fixed my test 🎉
Don't know why some pipelines are failing 😢

https://github.com/facebook/jest/releases/tag/v29.2.0


Proper use of collection in Firestore

Documents with different types should be in different collections:
https://console.firebase.google.com/u/0/project/element-did/database/firestore/data~2F

This is a ticket for improving the firestore adapter... low priority


support redis auth, ttl sync, speed control

Fork Update
support redis auth
support ttl sync
sync speed control
Thanks.

@nixtrace any chance of merging this?

Is the project dead? can't see much activity for a while now ...

Hi, thanks for the PR!
We will take a look soon.

Hi!
We just refactored and released Rump 1.0.0 with TTL sync, auth and many other features.
The codebase is very different than before, this PR can't be merged.
Thanks!


Opening files on macOS is broken

@thomaswulz We need to revisit this issue. Opening files on macOS does not work properly anymore. If a file already exists, selfie now appends data to the file rather than overwriting it. Could you please look into this?

After doing some testing on a macOS VM, it seems like existing files are actually overwritten from the start, but without getting truncated first. I tried various flag combinations, but unfortunately I was unable to find a sequence of open calls that works properly on all OSs.

@thomaswulz Any other ideas? What exactly is the problem with the original solution?

The original code before my PR didn't work properly on Windows as existing files would not be opened in binary mode, so every \n would get turned into \r\n instead.
Since the flags of the open syscall differ so much between platforms, I think it should be possible for selfie to determine the platform it's running on by calling open with specific flag values and checking the result. Then, the code in open_write_only could just use the result of this check to invoke open with the right flags for the current OS instead of trying multiple combinations. Seems a bit hacky though. The only other idea I can think of is to check the platform at compile time using #ifdef or something.

@thomaswulz Yeah, I think we need to do something like that. I'd prefer a solution without #ifdef. Since opening files on macOS seems to work for all kinds of flags, the solution may be to use read and write calls. For example, we may open a dummy binary file called, say, OS using the flags for macOS, then write to it, and finally read from it to see if the content differs. Then we know if it is Windows or not. If not, we can continue and check if truncation is done or not, to differentiate macOS and Linux.

Fixed: https://github.com/cksystemsteaching/selfie/commit/6eaeea6d6a7aebd3f2752033d04ea6ff312332a2


Read documents as arrays instead of objects

Current serialiser does not work with objects having iterators inside.

Implementation will be changed with another PR.


feat(middleware-correlationid): added ability for custom logger

What did you implement:
I've added the ability to add custom loggers to the correlationId middleware
Closes #98
Blocked by https://github.com/getndazn/dazn-lambda-powertools/pull/220

How did you implement it:
I've added an optional argument for the middleware library to allow you to write your own correlation logger, with it defaulting to the powertool logger. There for not causing a breaking change.

How can we verify it:
Use the correlationId middleware library and add the constructLoggerFn with your own custom logger.

Todos:

[x] Write tests
[x] Write documentation
[ ] Fix linting errors
[x] Make sure code coverage hasn't dropped
[ ] Provide verification config / projects / resources
[x] Enable "Allow edits from maintainers" for this PR
[x] Update the messages below

Is this ready for review?: Yes
Is it a breaking change?: NO

@lkhari can you explain the use case here? why only add custom logger constructor in the correlation IDs middleware, that seems like a really odd thing to do. If you want to support a customer logger, wouldn't it be better to add that support directly to the logger module so that it can proxy all the requests to your customer logger?

To be honest, the use case came from https://github.com/getndazn/dazn-lambda-powertools/pull/220 PR, when I wanted to expose the log library. And I interpreted an issues that middleware-correlationId was a little too coupled to the logger.
This PR is really just a first stepping stone in decoupling the two libraries and allowing other people to use their own Logger.

The fact that they are tightly coupled is by design - in the same way that iPhone, mac and airpods are design to work great together even if they're not necessary so good with other devices. It's even in our readme An **integrated** suite of powertools for Lambda functions that .... The philosophy for this project was always "use our modules together and everything just works" and while some extensibility would be nice, extensibility should not impede on that.

I quite like this approach as it will allow us to attach our own loggers to the context (which is where I want them), without touching the internal logs written by powertools (which would be a right pain to modify)
At DAZN, we use our own logger (not powertools) and currently have a middy middleware which effectively reproduces the logger functionality of middleware-correlation-ids by looping over all records and attaching the correct logger to them, and to the context. Being able to avoid this would be a quick win for us.
I need to think about this some more, but I think trying to patch in the whole powertools-logger with a custom logger would be annoyingly complex, so limiting it to the loggers which are exposed by powertools to the application (ie, this middleware) is a good middle-ground

@simontabor why do you think injecting a custom logger through the powertools logger would be annoyingly complex? Making that the injection point would make it work for all the middleware in this suite and not just correlation IDs.

I can see the benefits of both sides. I like that the idea of proxy to encourage these good practices, but it could be problematic when a dev wants to use a function not exposed by our proxy-logger, which could then lead to this repo getting a lot more request for more functionality.
Turning the logger into a proxy, seems a bit wrong, since it's title is powertool-logger not a proxy for another logger. Although you can say it's already a proxy for console.log, other loggers like Winston just classifies console.log as a type of transport.
Regardless of the idea to make powertool-logger a proxy or not. Encouraging modularity is usually a positive if done well. This current PR doesn't dissuade people to using the powertool-logger, because it's there by default, and adds the ability to change/remove the logger which is optional.
It could be argued, from another point of view, that adding the logger to the Records, is extra functionality from the automatically extract correlation IDs from the invocation event. i.e. not really single responsibility and maybe shouldn't be there at all, since people already using their own logger may think it's just wasting memory.  To be honest with the point I've just written, I could see a comment of improvement in this code would be to actually lazy load the default logger.

@lkhari but it could be problematic when a dev wants to use a function not exposed by our proxy-logger - based on the change you're making here, the goal is to allow the middleware to call the custom logger, right? If that's the case, those calls won't be using any custom logic in your custom logger anyway. And outside of the middlewares in this suite of tools, you can still use your own logger however you'd like.
Turning the logger into a proxy, seems a bit wrong - as you said, console.log is just a transport, it just so happens to be the only one right now. If the semantic of proxying calls is the problem, then we can call them transports instead and create a well-defined interface, but ultimately it's just some API that our logger calls when it needs to log a message.

based on the change you're making here, the goal is to allow the middleware to call the custom logger, right? If that's the case, those calls won't be using any custom logic in your custom logger anyway. And outside of the middlewares in this suite of tools, you can still use your own logger however you'd like.

Sorry, my PR description was a bit lacking. The PR goal is to allow the middleware to attach a custom logger to the Records coming in from SQS, Kinesis, etc. It doesn't allow the middleware to call the customer logger but it takes in a function which allows the dev to write the way their logger is constructed. So for
A good example is wanting to use Winston over powertool-logger, for it's format capablilties or extra log levels like verbose and http. Allowing me to do:
middy((event)=>{
   event.Records[0].logger.profile('test'); // unsupported by powertool
   event.Records[0].logger.verbose('This is a log level not supported by powertool logger');
   event.Records[0].logger.profile('test')
})
.use(captureCorrelationIds({
      sampleDebugLogRate: 0, (correlationId)=>new LoggerThatTakesInCorrelationID(correlationId)
    }))

Once #220 is merged this PR would be a lot more clear.
You are right, we can still use our own logger however we'd like, without this PR. But we are also enforcing that the users also has our logger attached to their records. Which seems like unnecessary bloat.

@simontabor why do you think injecting a custom logger through the powertools logger would be annoyingly complex? Making that the injection point would make it work for all the middleware in this suite and not just correlation IDs.

Because whatever logging interface is defined by powertools will leak across the entire user's application. Basically, what @lkhari said!
Let's say, for example, I want to use Winston as my logger. Powertools then decides "ok I'll let you set a logger, just give me a function which accepts (level, message, params)". Great!
However, now I'm restricted to using the proxied interface, especially when using record.logger attached by the correlationIds middleware. I can't use any of the additional features which Winston, or any other logger, provides.
The only real limitation that this introduces is that powertools can't write any logs internally (it doesn't do this at the moment anyway) without having a proxied interface defined to ensure compatibility.
I think we should attach the "root" logger to the main Lambda context to further support this, ie context.logger = constructLoggerFn(correlationIds)


Storage failover performance

In reviewing the article https://docs.microsoft.com/en-us/azure/storage/common/storage-disaster-recovery-guidance it states that failover typicaly can take upto an hour.  Why is the storage account so slow to fail over once initiated?  I would expect to be able to read/write to a RA-GRS account much faster since all that needs to be done is to change DNS and make writable.  I am assuming the time is driven by the time it takes to replicate storage TO LRS, is there any plans to address the performance time in the future?  btw my testing validated the long time required approximately 20 minutes for about 100mb blob storage.
-Johnny Galindo

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

ID: d8314bbb-3e1b-7a68-dcd1-f7dfe34221a2
Version Independent ID: 5c26cb3f-ec5c-b028-f456-53998a67749e
Content: Disaster recovery and storage account failover - Azure Storage
Content Source: articles/storage/common/storage-disaster-recovery-guidance.md
Service: storage
Sub-service: common
GitHub Login: @tamram
Microsoft Alias: tamram

Thanks for the feedback! We are currently investigating and will update you shortly.

@byte-master
An account failover usually involves some data loss. It's important to understand the implications of initiating an account failover.
Data loss can occur because replication is asynchronous, so if there are writes that haven’t been synchronized yet they may be lost.  This makes it critical to not initiate a failover too quickly.  A short term outages are often mitigated within minutes (if not seconds), and don’t involve data loss (as local transactions are synchronous and asynchronous replication is simply delayed, not lost).  It’s only when the system is completely non-recoverable (e.g. if a meteor strike took out a data center) that we really want to invoke failover and deal with the potential for data loss (in the meteor strike case, the data is clearly lost).  That’s why we quote an hour, if we switch too fast, we risk losing data that we otherwise wouldn’t lose.
When a customer manually fails over, and there is no underlying Azure failure, the system may wait for transactions to drain out to minimize data loss.
Switching makes the account LRS (which doesn’t require copying any data) because we have to stop replicating data.  Maintaining replication would require reversing replication direction and (in the outage case) would also mean we were trying to replicate to a storage stamp that was no longer available, so we wouldn’t be able to meet any redundancy guarantees (which is why re-establishing GRS is a manual operation).  Applications that were counting on that redundancy or using region specific URLs would break and costs would be incurred in re-establishing GRS.  Until GRS is re-established, applications would (at best) be operating in a degraded mode (without GRS backup).
The size of the storage account isn’t important (to failover), the data is already replicated.  It’s only the data in flight that’s a concern, and in a true, full outage, it’s either there or it’s not (which is why data loss is a risk).  (Size of data is important when re-establishing GRS since the data must be copied to a new region.)
All this can make GRS failover a costly (and even slightly risky) operation. It’s designed as a way to minimize data loss and disruption to a business in the case of major outages. It’s not an optimal solution for high-availability solutions except as a defense in depth strategy when paired with other technologies (e.g. GZRS storage which add synchronous zonal replication, Cosmos DB with multiple write regions, or other synchronization technologies).
Which, again, is why we don’t want to failover too quickly: we don’t want to create extra work and expense for the customer, risk breaking applications, or put them into a non-replicating state if we don’t absolutely have to.


Automated cherry pick of #1271: lbagents: 增加deploy支持

Cherry pick of #1271 on release/2.10.0.
#1271: lb: lbbackendgroups: 去掉多余lbbg.DoPendingDelete()

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@fc417ae). Click here to learn what that means.
The diff coverage is 0.49%.

@@               Coverage Diff                @@
##             release/2.10.0   #1332   +/-   ##
================================================
  Coverage                  ?   7.89%
================================================
  Files                     ?     371
  Lines                     ?   58029
  Branches                  ?       0
================================================
  Hits                      ?    4580
  Misses                    ?   53048
  Partials                  ?     401

Flag
Coverage Δ

#aFlag
7.89% <0.49%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/loadbalanceragents.go
3.35% <ø> (ø)

pkg/compute/models/loadbalancerbackendgroups.go
2.59% <ø> (ø)

pkg/mcclient/options/loadbalanceragents.go
0% <0%> (ø)

pkg/compute/models/loadbalanceragents_deploy.go
0.52% <0.52%> (ø)

Continue to review full report at Codecov.

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

/lgtm
/approve


Two slided Instagram flowtiles

Summary of changes

Addition of two targets (flow_national_instagram_png and flow_cartogram_instagram_png) and functions (national_ig and cartogram_ig) to plot Instagram sized national flow timeseries (slide 1) and state flow timeseries (slide 2)
Addition of two output pngs flow_cartogram_ig.png & flow_national_ig.png.

Note

USGS lower left logo is still a bit fuzzy even after increasing width

I can't link it because I'm not logged in to IG on my govt computer, but Elmera, I'd suggest you take a look at the IG version I created of this simply for reference. I had a brief convo with Cee about potential directions for this, and i expect they'll fill you in on some other takeaways from that convo.
I really like this two slide version you have and I am interested in working together to upload this to our TEST IG account to see how it looks

Summary of changes

added new restyle_legend function to then input into flow_national_instagram_png & flow_cartogram_instagram_svg targets
added flow_label and source_label to top of _targets.R
added showtext=TRUE to ensure fonts are enabled
adjusted plot_state_cartogram to have adjustable sigma, x_offset, and y_offset values and added new plot_cart_ig target that has adjusted sigma, x_offset, and y_offset values.
added rm_facet_clip function to flow_cartogram_instagram_svg to drop the strict border
adjusted naming (plot_left to plot_nat and plot_right to plot_cart`) for instagram targets
added |> magick::image_scale() to usgs_logo as well as title_flow (streamflow title) to avoid fuzzyness of images

Updates Instagram Versions

One comment Nicole had that I think is good - the color legend here is drawn horizontally but the areas in the charts are stacked vertically. it's  a bit counterintuitive to interpreting the charts. Does not need to be address in this PR, but we should think about that more

Chatted with Althea about disabling showtext and theres two approaches:

run c(flowtiles_list, showtext_auto(enable = FALSE)) - this would rerun the pipeline and export pngs with those showtext commands disabled
add a note in README for users to manually disable showtext commands by running showtext_auto(enable = FALSE) in the console

I think option 2 is the best approach here as we don't really want the pipeline to be ran again with the fonts disabled. I've adjusted the README to reflect this now.
@ceenell let me know what you think and if there's any remaining edits - otherwise, I think we can merge in.


[iOS/iPadOS] - icons/icon font not loading correctly

Description
When using either of the well-known vector icon packages (@expo/vector-icons OR react-native-vector-icons), not a single icon loads and instead a question mark is rendered (it is even coloured in the correct way).
I am using the latest version of the package in connection with the new react-native architecture
on version 0.71.2. Fabric renderer and concurrency are additionally enabled.
All steps in the documentation were considered but the outcome is still the same.
The icons are displayed as following:

Android devices are not affected by this issue.
Version
0.71.2
Output of npx react-native info
[...]
@expo/webpack-config: 0.17.4
babel-preset-expo: 9.2.2
expo: 48.0.0-beta.0 (also on 47.X.X)
react: 18.2.0
react-dom: 18.2.0
react-native: 0.71.2
react-native-web: 0.18.12
@expo/vector-icons: 13.0.0
OR
react-native-vector-icons: 9.2.0 (even with the latest commit/status of the repository)
[...]
Steps to reproduce
Use the mentioned packages in an environment with new architecture, fabric and concurrency enabled while using a virtualised or physical iOS/iPadOS device.
Snack, code example, screenshot, or link to a repository
import { MaterialCommunityIcons } from "@expo/vector-icons"

[...]

<MaterialCommunityIcons color="blue" name="close" size={24} />

OR
import MaterialCommunityIcon from "react-native-vector-icons/MaterialCommunityIcons"

[...]

<MaterialCommunityIcon color="blue" name="close" size={24} />

You should open this issue against the issue tracker of the packages like:
https://github.com/oblador/react-native-vector-icons/issues
Please get back here if they point you in this being a problem of React Native core


Migrate to bot account

Summary

[x] Use a bot account to send ephemeral messages

Ticket Link

Closes #63.

Codecov Report

Merging #115 into master will decrease coverage by 0.54%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master     #115      +/-   ##
==========================================
- Coverage   44.58%   44.03%   -0.55%
==========================================
  Files           8        8
  Lines         812      822      +10
==========================================
  Hits          362      362
- Misses        423      433      +10
  Partials       27       27

Impacted Files
Coverage Δ

server/manifest.go
100.00% <ø> (ø)

server/plugin.go
52.55% <9.09%> (-1.63%)
:arrow_down:

server/command.go
72.48% <100.00%> (ø)

Continue to review full report at Codecov.

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

Thanks for having fixed the tests @jespino! I was trying to understand the origin of this, as I am learning to do tests, and I was blocked

@DHaussermann Can we test this in release testing?


⚠ gorzdrav.org has degraded performance

In 71d7915, gorzdrav.org (https://gorzdrav.org) experienced degraded performance:

HTTP code: 200
Response time: 1497 ms

Resolved: gorzdrav.org performance has improved in ee7d9e9.


Fix tinymce issues when using precompiled assets

Changes tinymce to use tinymce-rails
This fixes tinymce asset compilation issues in production
Fixes #365

@cmckni3 could you please confirm me if there is no errors with this change?
I am still solving my personal problems without free time.
Thanks.

There's nothing wrong with this change.

perfect!


Forever Loading - Devices Tab

Hi,
I am new to the work of zigbee, so I bought a Sonoff Zigbee 3.0 USB Dong but I get issue to load zigbee2mqtt. I have 2 issues running the zigbee2mqtt in Home assistant (OS) . May I know if any of you have hints to me? thank you very much in advance.

The frontend of zigbee2mqtt is just kept loading on the Devices tab.
Even I click "permit to join", the TRV (HY368) cannot join.

There is no error in the logs in zigbee2mqtt and mosquito broker.  I see a warning in Supervisor log.
21-12-06 17:39:46 WARNING (MainThread) [supervisor.addons.options] Unknown option 'new api' for Zigbee2mqtt
The home assistant is newly installed and only 2 add-ons are installed.
Information:

zigbee2mqtt (1.22.1-1)
Mosquitto broker 6.0.1
core-2021.11.5
supervisor-2021.10.8
Home Assistant OS 6.6

H/W

Raspberry Pi4
Sonoff Zigbee 3.0 USB Dong (original firmware)

Thank you so much.

Got same setup and  devices is stuck on "Loading..", rest of the menus seems to work. Got 2 error messages in Supervisor log, but don't know if they are related:
1-12-06 21:48:24 INFO (SyncWorker_7) [supervisor.docker.addon] Starting Docker add-on zigbee2mqtt/zigbee2mqtt-aarch64 with version 1.22.1-1
21-12-06 21:48:24 ERROR (MainThread) [asyncio] Task exception was never retrieved
future: <Task finished name='Task-1553' coro=<HomeAssistantWebSocket.async_send_command() done, defined at /usr/src/supervisor/supervisor/homeassistant/websocket.py:106> exception=TypeError('Received message 257:None is not str')>
and
21-12-06 21:53:20 WARNING (MainThread) [supervisor.api.ingress] Ingress for MaiS_ZfCat7KBykXz83R2XQUGgCaZZoBgUziEO5PjZg not available

I have the same error since I have updated to V 1.22.1-1.

I have switched to ZHA and working fine. Guess it may be some compatibility issues.

Same issue

Same issue

Same issue here.

core-2021.11.5
supervisor-2021.10.8
Home Assistant OS 6.6
Zigbee2MQTT 1.22.1-1
Mosquitto broker 6.0.1
RPi 4 with USB SSD
TI CC2652P USB zigbee stick

No errors in logs
No devices added yet (new install of Z2M)
Frontend:  Loading, please wait
I have a similar setup on a Proxmox VM except core-2021.11.1 and Zigbee2MQTT 1.18.1-1 with no issues.

Same here
core-2021.11.5
supervisor-2021.10.8
Home Assistant OS 6.6
Zigbee2MQTT 1.22.1-1

Same here, guess its back to conbee for me.
CORE-2021.12.3
supervisor-2021.12.2
Home Assistant OS 7.0
Zigbee2MQTT 1.22.1-1

@Koenkk any word on this?

Same here, also in Version 1.22.1-1.
The Edge Version does work.

Can you provide the debug log when starting z2m?
See https://www.zigbee2mqtt.io/guide/usage/debug.html on how to enable debug logging.

Same here. Home assistant upgraded today but same issue on previous version. Channel changed from 11 to 25.
core-2021.12.3
Mosquitto broker: 6.0.1
zigbee2mqtt:  1.22.1-1
Home Assistant OS 7.0
supervisor-2021.12.2
host: Qnap and Virtual machine
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] socat.sh: executing...
[03:38:07] INFO: Socat not enabled, marking service as down
[cont-init.d] socat.sh: exited 0.
[cont-init.d] zigbee2mqtt.sh: executing...
[03:38:08] INFO: MQTT available, fetching server detail ...
[03:38:08] INFO: Previous config file found, checking backup
[03:38:08] INFO: Creating backup config in '/config/zigbee2mqtt/.configuration.yaml.bk'
[03:38:08] INFO: Adjusting Zigbee2mqtt core yaml config with add-on quirks ...
[cont-init.d] zigbee2mqtt.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[03:38:10] INFO: Handing over control to Zigbee2mqtt Core ...
><EMAIL_ADDRESS>start
> node index.js
Zigbee2MQTT:debug 2021-12-18 03:38:19: Loaded state from file /config/zigbee2mqtt/state.json
Zigbee2MQTT:info  2021-12-18 03:38:19: Logging to console and directory: '/config/zigbee2mqtt/log/2021-12-18.03-38-15' filename: log.txt
Zigbee2MQTT:debug 2021-12-18 03:38:19: Removing old log directory '/config/zigbee2mqtt/log/2021-12-18.03-13-27'
Zigbee2MQTT:info  2021-12-18 03:38:19: Starting Zigbee2MQTT version 1.22.1 (commit #unknown)
Zigbee2MQTT:info  2021-12-18 03:38:19: Starting zigbee-herdsman (0.13.176)
Zigbee2MQTT:debug 2021-12-18 03:38:19: Using zigbee-herdsman with settings: '{"adapter":{"concurrent":null,"delay":null,"disableLED":false},"backupPath":"/config/zigbee2mqtt/coordinator_backup.json","databaseBackupPath":"/config/zigbee2mqtt/database.db.backup","databasePath":"/config/zigbee2mqtt/database.db","network":{"channelList":[25],"extendedPanID":[221,221,221,221,221,221,221,221],"networkKey":"HIDDEN","panID":6754},"serialPort":{"path":"/dev/ttyUSB0"}}'
Zigbee2MQTT:info  2021-12-18 03:38:20: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2021-12-18 03:38:20: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20210708,"transportrev":2},"type":"zStack3x0"}'
Zigbee2MQTT:debug 2021-12-18 03:38:20: Zigbee network parameters: {"channel":25,"extendedPanID":"0x00124b0024c9ea69","panID":6754}
Zigbee2MQTT:info  2021-12-18 03:38:20: Currently 0 devices are joined:
Zigbee2MQTT:warn  2021-12-18 03:38:20: `permit_join` set to  `true` in configuration.yaml.
Zigbee2MQTT:warn  2021-12-18 03:38:20: Allowing new devices to join.
Zigbee2MQTT:warn  2021-12-18 03:38:20: Set `permit_join` to `false` once you joined all devices.
Zigbee2MQTT:info  2021-12-18 03:38:20: Zigbee: allowing new devices to join.
Zigbee2MQTT:info  2021-12-18 03:38:20: Connecting to MQTT server at mqtt://<IP_ADDRESS>:1883
Zigbee2MQTT:debug 2021-12-18 03:38:20: Using MQTT login with username: homeassistant
Zigbee2MQTT:info  2021-12-18 03:38:20: Connected to MQTT server
Zigbee2MQTT:info  2021-12-18 03:38:20: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online'
Zigbee2MQTT:debug 2021-12-18 03:38:20: Received MQTT message on 'zigbee2mqtt/bridge/info' with data '{"commit":"unknown","config":{"advanced":{"adapter_concurrent":null,"adapter_delay":null,"availability_blacklist":[],"availability_blocklist":[],"availability_passlist":[],"availability_whitelist":[],"cache_state":true,"cache_state_persistent":true,"cache_state_send_on_startup":true,"channel":25,"elapsed":false,"ext_pan_id":[221,221,221,221,221,221,221,221],"homeassistant_discovery_topic":"homeassistant","homeassistant_legacy_entity_attributes":true,"homeassistant_legacy_triggers":true,"homeassistant_status_topic":"hass/status","last_seen":"disable","legacy_api":true,"log_directory":"/config/zigbee2mqtt/log/%TIMESTAMP%","log_file":"log.txt","log_level":"warn","log_output":["console","file"],"log_rotation":true,"log_symlink_current":false,"log_syslog":{},"pan_id":6754,"report":false,"soft_reset_timeout":0,"timestamp_format":"YYYY-MM-DD HH:mm:ss"},"availability":false,"ban":[],"blocklist":[],"device_options":{},"devices":{},"experimental":{"output":"json"},"external_converters":[],"frontend":{"port":8099},"groups":{},"homeassistant":true,"map_options":{"graphviz":{"colors":{"fill":{"coordinator":"#e04e5d","enddevice":"#fff8ce","router":"#4ea3e0"},"font":{"coordinator":"#ffffff","enddevice":"#000000","router":"#ffffff"},"line":{"active":"#009900","inactive":"#994444"}}}},"mqtt":{"base_topic":"zigbee2mqtt","force_disable_retain":false,"include_device_information":false,"server":"mqtt://<IP_ADDRESS>:1883","user":"homeassistant"},"ota":{"disable_automatic_update_check":false,"update_check_interval":1440},"passlist":[],"permit_join":true,"queue":{},"serial":{"disable_led":false,"port":"/dev/ttyUSB0"},"whitelist":[]},"config_schema":{"definitions":{"device":{"properties":{"debounce":{"description":"Debounces messages of this device","title":"Debounce","type":"number"},"debounce_ignore":{"description":"Protects unique payload values of specified payload properties from overriding within debounce time","examples":["action"],"items":{"type":"string"},"title":"Ignore debounce","type":"array"},"filtered_attributes":{"description":"Filter attributes from publish payload.","examples":["temperature","battery","action"],"items":{"type":"string"},"title":"Filtered publish attributes","type":"array"},"filtered_optimistic":{"description":"Filter attributes from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).","examples":["color_mode","color_temp","color"],"items":{"type":"string"},"title":"Filtered optimistic attributes","type":"array"},"friendly_name":{"description":"Used in the MQTT topic of a device. By default this is the device ID","readOnly":true,"title":"Friendly name","type":"string"},"icon":{"description":"The user-defined device icon for the frontend. It can be a link to an image (not a path to a file) or base64 encoded data URL like: image/svg+xml;base64,PHN2ZyB3aW....R0aD","title":"Icon","type":"string"},"optimistic":{"default":true,"description":"Publish optimistic state after set","title":"Optimistic","type":"boolean"},"qos":{"description":"QoS level for MQTT messages of this device","title":"QoS","type":"number"},"retain":{"description":"Retain MQTT messages of this device","title":"Retain","type":"boolean"},"retention":{"description":"Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5","title":"Retention","type":"number"}},"required":["friendly_name"],"type":"object"},"group":{"properties":{"devices":{"items":{"type":"string"},"type":"array"},"filtered_attributes":{"items":{"type":"string"},"type":"array"},"friendly_name":{"type":"string"},"optimistic":{"type":"boolean"},"qos":{"type":"number"},"retain":{"type":"boolean"}},"required":["friendly_name"],"type":"object"}},"properties":{"advanced":{"properties":{"adapter_concurrent":{"description":"Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)","requiresRestart":true,"title":"Adapter concurrency","type":["number","null"]},"adapter_delay":{"description":"Adapter delay","requiresRestart":true,"title":"Adapter delay","type":["number","null"]},"baudrate":{"description":"Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600","examples":[38400,57600,115200],"requiresRestart":true,"title":"Baudrate","type":"number"},"cache_state":{"default":true,"description":"MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant","title":"Cache state","type":"boolean"},"cache_state_persistent":{"default":true,"description":"Persist cached state, only used when cache_state: true","title":"Persist cache state","type":"boolean"},"cache_state_send_on_startup":{"default":true,"description":"Send cached state on startup, only used when cache_state: true","title":"Send cached state on startup","type":"boolean"},"channel":{"default":11,"description":"Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)","examples":[15,20,25],"maximum":26,"minimum":11,"requiresRestart":true,"title":"ZigBee channel","type":"number"},"elapsed":{"default":false,"description":"Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg","title":"Elapsed","type":"boolean"},"ext_pan_id":{"description":"Zigbee extended pan ID, changing requires repairing all devices!","items":{"type":"number"},"requiresRestart":true,"title":"Ext Pan ID","type":"array"},"homeassistant_discovery_topic":{"description":"Home Assistant discovery topic","examples":["homeassistant"],"requiresRestart":true,"title":"Homeassistant discovery topic","type":"string"},"homeassistant_legacy_entity_attributes":{"default":true,"description":"Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates","title":"Home Assistant legacy entity attributes","type":"boolean"},"homeassistant_legacy_triggers":{"default":true,"description":"Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd","title":"Home Assistant legacy triggers","type":"boolean"},"homeassistant_status_topic":{"description":"Home Assistant status topic","examples":["homeassistant/status"],"requiresRestart":true,"title":"Home Assistant status topic","type":"string"},"ikea_ota_use_test_url":{"default":false,"description":"Use IKEA TRADFRI OTA test server, see OTA updates documentation","requiresRestart":true,"title":"IKEA TRADFRI OTA use test url","type":"boolean"},"last_seen":{"default":"disable","description":"Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message","enum":["disable","ISO_8601","ISO_8601_local","epoch"],"title":"Last seen","type":"string"},"legacy_api":{"default":true,"description":"Disables the legacy api (false = disable)","requiresRestart":true,"title":"Legacy API","type":"boolean"},"log_directory":{"description":"Location of log directory","examples":["data/log/%TIMESTAMP%"],"requiresRestart":true,"title":"Log directory","type":"string"},"log_file":{"default":"log.txt","description":"Log file name, can also contain timestamp","examples":["zigbee2mqtt_%TIMESTAMP%.log"],"requiresRestart":true,"title":"Log file","type":"string"},"log_level":{"default":"info","description":"Logging level","enum":["info","warn","error","debug"],"title":"Log level","type":"string"},"log_output":{"description":"Output location of the log, leave empty to supress logging","items":{"enum":["console","file","syslog"],"type":"string"},"requiresRestart":true,"title":"Log output","type":"array"},"log_rotation":{"default":true,"description":"Log rotation","requiresRestart":true,"title":"Log rotation","type":"boolean"},"log_symlink_current":{"default":false,"description":"Create symlink to current logs in the log directory","requiresRestart":true,"title":"Log symlink current","type":"boolean"},"log_syslog":{"properties":{"app_name":{"default":"Zigbee2MQTT","description":"The name of the application (Default: Zigbee2MQTT).","title":"Localhost","type":"string"},"eol":{"default":"/n","description":"The end of line character to be added to the end of the message (Default: Message without modifications).","title":"eol","type":"string"},"host":{"default":"localhost","description":"The host running syslogd, defaults to localhost.","title":"Host","type":"string"},"localhost":{"default":"localhost","description":"Host to indicate that log messages are coming from (Default: localhost).","title":"Localhost","type":"string"},"path":{"default":"/dev/log","description":"The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).","examples":["/var/run/syslog"],"title":"Path","type":"string"},"pid":{"default":"process.pid","description":"PID of the process that log messages are coming from (Default process.pid).","title":"PID","type":"string"},"port":{"default":123,"description":"The port on the host that syslog is running on, defaults to syslogd's default port.","title":"Port","type":"number"},"protocol":{"default":"tcp4","description":"The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).","examples":["udp4","tls4","unix","unix-connect"],"title":"Protocol","type":"string"},"type":{"default":"5424","description":"The type of the syslog protocol to use (Default: BSD, also valid: 5424).","title":"Type","type":"string"}},"title":"syslog","type":"object"},"network_key":{"description":"Network encryption key, changing requires repairing all devices!","oneOf":[{"title":"Network key(string)","type":"string"},{"items":{"type":"number"},"title":"Network key(array)","type":"array"}],"requiresRestart":true,"title":"Network key"},"pan_id":{"description":"ZigBee pan ID, changing requires repairing all devices!","oneOf":[{"title":"Pan ID (string)","type":"string"},{"title":"Pan ID (number)","type":"number"}],"requiresRestart":true,"title":"Pan ID"},"report":{"description":"Enables report feature (deprecated)","readOnly":true,"requiresRestart":true,"title":"Reporting","type":"boolean"},"rtscts":{"description":"RTS / CTS Hardware Flow Control for serial port","requiresRestart":true,"title":"RTS / CTS","type":"boolean"},"soft_reset_timeout":{"description":"Soft reset ZNP after timeout","minimum":0,"readOnly":true,"requiresRestart":true,"title":"Soft reset timeout (deprecated)","type":"number"},"timestamp_format":{"description":"Log timestamp format","examples":["YYYY-MM-DD HH:mm:ss"],"requiresRestart":true,"title":"Timestamp format","type":"string"}},"title":"Advanced","type":"object"},"availability":{"description":"Checks whether devices are online/offline","oneOf":[{"title":"Availability (boolean)","type":"boolean"},{"properties":{"active":{"description":"Options for active devices (routers/mains powered)","properties":{"timeout":{"default":10,"description":"Time after which an active device will be marked as offline in minutes","requiresRestart":true,"title":"Timeout","type":"number"}},"requiresRestart":true,"title":"Active","type":"object"},"passive":{"description":"Options for passive devices (mostly battery powered)","properties":{"timeout":{"default":1500,"description":"Time after which an passive device will be marked as offline in minutes","requiresRestart":true,"title":"Timeout","type":"number"}},"requiresRestart":true,"title":"Active","type":"object"}},"title":"Availability (object)","type":"object"}],"requiresRestart":true,"title":"Availability"},"ban":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Ban (deprecated, use blocklist)","type":"array"},"blocklist":{"description":"Block devices from the network (by ieeeAddr)","items":{"type":"string"},"requiresRestart":true,"title":"Blocklist","type":"array"},"device_options":{"type":"object"},"devices":{"patternProperties":{"^.*$":{"$ref":"#/definitions/device"}},"propertyNames":{"pattern":"^0x[\\d\\w]{16}$"},"type":"object"},"experimental":{"properties":{"output":{"description":"Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\"state\": \"ON\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)","enum":["attribute_and_json","attribute","json"],"title":"MQTT output type","type":"string"},"transmit_power":{"description":"Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)","requiresRestart":true,"title":"Transmit power","type":["number","null"]}},"title":"Experimental","type":"object"},"external_converters":{"description":"You can define external converters to e.g. add support for a DiY device","examples":["DIYRuZ_FreePad.js"],"items":{"type":"string"},"requiresRestart":true,"title":"External converters","type":"array"},"frontend":{"properties":{"auth_token":{"description":"Enables authentication, disabled by default","requiresRestart":true,"title":"Auth token","type":["string","null"]},"host":{"default":"<IP_ADDRESS>","description":"Frontend binding host","requiresRestart":true,"title":"Bind host","type":"string"},"port":{"default":8080,"description":"Frontend binding port","requiresRestart":true,"title":"Port","type":"number"}},"title":"Frontend","type":"object"},"groups":{"patternProperties":{"^.*$":{"$ref":"#/definitions/group"}},"propertyNames":{"pattern":"^[\\w].*$"},"type":"object"},"homeassistant":{"default":false,"description":"Home Assistant integration (MQTT discovery)","title":"Home Assistant integration","type":"boolean"},"map_options":{"properties":{"graphviz":{"properties":{"colors":{"properties":{"fill":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"font":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"line":{"properties":{"active":{"type":"string"},"inactive":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}},"title":"Networkmap","type":"object"},"mqtt":{"properties":{"base_topic":{"description":"MQTT base topic for Zigbee2MQTT MQTT messages","examples":["zigbee2mqtt"],"requiresRestart":true,"title":"Base topic","type":"string"},"ca":{"description":"Absolute path to SSL/TLS certificate of CA used to sign server and client certificates","examples":["/etc/ssl/mqtt-ca.crt"],"requiresRestart":true,"title":"Certificate authority","type":"string"},"cert":{"description":"Absolute path to SSL/TLS certificate for client-authentication","examples":["/etc/ssl/mqtt-client.crt"],"requiresRestart":true,"title":"SSL/TLS certificate","type":"string"},"client_id":{"description":"MQTT client ID","examples":["MY_CLIENT_ID"],"requiresRestart":true,"title":"Client ID","type":"string"},"force_disable_retain":{"default":false,"description":"Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration","requiresRestart":true,"title":"Force disable retain","type":"boolean"},"include_device_information":{"default":false,"description":"Include device information to mqtt messages","title":"Include device information","type":"boolean"},"keepalive":{"default":60,"description":"MQTT keepalive in second","requiresRestart":true,"title":"Keepalive","type":"number"},"key":{"description":"Absolute path to SSL/TLS key for client-authentication","examples":["/etc/ssl/mqtt-client.key"],"requiresRestart":true,"title":"SSL/TLS key","type":"string"},"password":{"description":"MQTT server authentication password","examples":["ILOVEPELMENI"],"requiresRestart":true,"title":"Password","type":"string"},"reject_unauthorized":{"default":true,"description":"Disable self-signed SSL certificate","requiresRestart":true,"title":"Reject unauthorized","type":"boolean"},"server":{"description":"MQTT server URL (use mqtts:// for SSL/TLS connection)","examples":["mqtt://localhost:1883"],"requiresRestart":true,"title":"MQTT server","type":"string"},"user":{"description":"MQTT server authentication user","examples":["johnnysilverhand"],"requiresRestart":true,"title":"User","type":"string"},"version":{"default":4,"description":"MQTT protocol version","examples":[5],"requiresRestart":true,"title":"Version","type":["number","null"]}},"required":["base_topic","server"],"title":"MQTT","type":"object"},"ota":{"properties":{"disable_automatic_update_check":{"default":false,"description":"Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.","title":"Disable automatic update check","type":"boolean"},"update_check_interval":{"default":1440,"description":"Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.","title":"Update check interval","type":"number"}},"title":"OTA updates","type":"object"},"passlist":{"description":"Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!","items":{"type":"string"},"requiresRestart":true,"title":"Passlist","type":"array"},"permit_join":{"default":false,"description":"Allow new devices to join (re-applied at restart)","title":"Permit join","type":"boolean"},"serial":{"properties":{"adapter":{"default":"auto","description":"Adapter type, not needed unless you are experiencing problems","enum":["deconz","zstack","zigate","ezsp","auto"],"requiresRestart":true,"title":"Adapter","type":["string"]},"disable_led":{"default":false,"description":"Disable LED of the adapter if supported","requiresRestart":true,"title":"Disable led","type":"boolean"},"port":{"description":"Location of the adapter. To autodetect the port, set null","examples":["/dev/ttyACM0"],"requiresRestart":true,"title":"Port","type":["string","null"]}},"title":"Serial","type":"object"},"whitelist":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Whitelist (deprecated, use passlist)","type":"array"}},"required":["mqtt"],"type":"object"},"coordinator":{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20210708,"transportrev":2},"type":"zStack3x0"},"log_level":"warn","network":{"channel":25,"extended_pan_id":"0x00124b0024c9ea69","pan_id":6754},"permit_join":true,"restart_required":false,"version":"1.22.1"}'
Zigbee2MQTT:debug 2021-12-18 03:38:20: Received MQTT message on 'zigbee2mqtt/bridge/devices' with data '[{"definition":null,"endpoints":{"1":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"10":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"11":{"bindings":[],"clusters":{"input":["ssIasAce"],"output":["ssIasZone","ssIasWd"]},"configured_reportings":[],"scenes":[]},"110":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"12":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"13":{"bindings":[],"clusters":{"input":["genOta"],"output":[]},"configured_reportings":[],"scenes":[]},"2":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"3":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"4":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"47":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"5":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"6":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"8":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Coordinator","ieee_address":"0x00124b0024c9ea69","interview_completed":true,"interviewing":false,"network_address":0,"supported":false,"type":"Coordinator"}]'
Zigbee2MQTT:debug 2021-12-18 03:38:20: Received MQTT message on 'zigbee2mqtt/bridge/groups' with data '[]'
Zigbee2MQTT:debug 2021-12-18 03:38:20: Received MQTT message on 'zigbee2mqtt/bridge/extensions' with data '[]'
Zigbee2MQTT:debug 2021-12-18 03:38:21: Received MQTT message on 'zigbee2mqtt/bridge/config' with data '{"commit":"unknown","coordinator":{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20210708,"transportrev":2},"type":"zStack3x0"},"log_level":"warn","network":{"channel":25,"extendedPanID":"0x00124b0024c9ea69","panID":6754},"permit_join":true,"version":"1.22.1"}'
Zigbee2MQTT:warn  2021-12-18 03:38:21: Using experimental new availability feature
Zigbee2MQTT:info  2021-12-18 03:38:21: Started frontend on port <IP_ADDRESS>:8099
Zigbee2MQTT:info  2021-12-18 03:38:21: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"commit":"unknown","coordinator":{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20210708,"transportrev":2},"type":"zStack3x0"},"log_level":"debug","network":{"channel":25,"extendedPanID":"0x00124b0024c9ea69","panID":6754},"permit_join":true,"version":"1.22.1"}'

Same issue on Homeassistant OS with Conbee2.
Edge version works fine.


chore: update protobuf files and wasm client

When bumping the wasm artefact I've been isolating that change to a single commit like here and including build details in commit-sha.txt. This really just a workaround until the nilvm repo is open source but its helpful if/when we need to bisect problems.
I've re-run the pipeline and ran it locally, but with this commit tests are now failing.

My fault, I should create it as a draft until the needed changes are merged into the nilvm repo. I tested the commit locally running the nillion-devnet from the branch that contains the changes are pending to merge and the tests are working fine. Anyway, I update the PR to draft until they are merged.
Sorry for the inconvenience.

Hi ya, looks good! Some suggestions from me:

Its not immediately clear that chore: remove particles is also a wasm package bump ... might be worth making that distinction but not a show stopper by any stretch
Given the updated protobuf files (and assuming you're looking to release and updated npm package?), I would also bump the client-vm PATCH

Regarding the first point, do you mean adding a comment in the PR?


Let the DispReconstructor also compute a score for the sign prediction

Here a plot of the distribution for LST in prod5 (only 50k events, simple model config):

Looks as expected, I would say


Mount directories outside of working dir in cog run

It's currently impossible to mount directories outside of the working directory when doing cog run.
It's common to keep datasets in separate folders than the working directory when training models, so in order for Cog to be a viable ML dev tool it ought to support mounting directories.

I second this, it would be very useful, we store models on another location as well.
An option to follow symlinks in the src folder would work as well :)


CI/CD: need to fix GitHub Release stage

Should be fixed - we will find out

Still failing:
Searching for tags associated with target commit: 01cbfc4af2b2e01151cf865607aaa7b7f209d4e2
Found a tag for target commit: 01cbfc4af2b2e01151cf865607aaa7b7f209d4e2
Computing changes made in this release...
Fetching the latest published release...
No releases are published yet in the repository.
Fetching the initial commit...
##[error]An unexpected error occurred while fetching the initial commit.
##[error]Error: Not Found


TypeError: decoding str is not supported

Running it with the following command:
python3 safaribooks.py --cred "lrodrigues@gmail.com:pass"<PHONE_NUMBER>638
Gets the following error message:
Error in sys.excepthook:
Traceback (most recent call last):
File "safaribooks.py", line 104, in unhandled_exception
self.exit("Unhandled Exception: %s (type: %s)" % (o, o.class.name))
File "safaribooks.py", line 90, in exit
self.error(str(error))
File "safaribooks.py", line 87, in error
self.out(output)
File "safaribooks.py", line 73, in out
sys.stdout.write("\r" + " " * self.columns + "\r" + str(put, "utf-8", "replace") + "\n")
TypeError: decoding str is not supported
Original exception was:
Traceback (most recent call last):
File "safaribooks.py", line 1039, in
SafariBooks(args_parsed)
File "safaribooks.py", line 281, in init
self.display.intro()
File "safaribooks.py", line 123, in intro
self.out(output)
File "safaribooks.py", line 73, in out
sys.stdout.write("\r" + " " * self.columns + "\r" + str(put, "utf-8", "replace") + "\n")
TypeError: decoding str is not supported

temporary fix change 73 line to:
        sys.stdout.write("\r" + put + "\n")

thanks @gudata , had the same issue and this helped. Could you do a PR and ping the author?

hi how add this please
temporary fix change 73 line to:
    sys.stdout.write("\r" + put + "\n")

can show me in image please

hi how add this please
temporary fix change 73 line to:
    sys.stdout.write("\r" + put + "\n")

can show me in image please

@varta2014 open file safaribooks.py with some text editor then go to line 73, replace that line with above

I used this temporary fix and it worked for me to download a book


Project Status - Abandoned (?)

Is there any active fork of this project?

Bump bump, lot of Pull request with nice fixes.

We've just published a Vue 3 Upgrade of the multiselect component here: https://github.com/SuadeLabs/vue3-multiselect. The idea is that it is a simple replacement for this component, without needing to tweak anything. Not too sure if this is what you are looking for, but it might help

Awesome! Works fine for me in a huge project. <3
Thank you!

We've just published a Vue 3 Upgrade of the multiselect component here: https://github.com/SuadeLabs/vue3-multiselect. The idea is that it is a simple replacement for this component, without needing to tweak anything. Not too sure if this is what you are looking for, but it might help

Wow, thank you for doing this! . . . I was getting ready to try a v3 migration in a large app and pretty sure this is the one component that was going to be a nightmare for me.  If I hit issues I will try and help out on your repo/post issues.

Thanks to @mattelen, we just released v3.0.0-alpha.1 under the next tag. See https://github.com/shentao/vue-multiselect/tree/next


NRF52840 USB Dongle and general NRF5x support

the Holyiot store on Aliexpress has some nice compact NRF52840 usb dongles. They also expressed interest in releasing a "nano" version of the dongle if there was enough of an order quantity.
I have bought this dongle and intend to integrate with my mitosis style keyboard and do away with the pro-micro style receiver, and I'd like to contribute to keyplus if development is going to be picked up again.
There are two approaches I see to adding nrf51/nrf52 support. The first would be to use Nordic's ESB libraries - which would allow backwards compatibility with nrf24 based designs. The Nordic SDK has allowed redistribution of SDK files from v12 onward, however, the ESB library is released under a restricted 5-clause BSD license that might not be compatible with the MIT license of this firmware. I'm not sure about the legalities of reverse engineering the protocol and writing our own ESB library.
The other option would be to write a custom link layer via the free nrfx drivers. This would obviously be a lot more work and there would be no backwards compatibility with nrf24 devices.
I have also thought about the BLE implementation (nrf51 peripherals and nrf52/PC host), but my 16kB nrf51 boards do not seem to be enough to run FOSS BLE implementations like mynewt or zephyr for anything but the most basic BLE beacon examples without security. The Nordic s130 softdevice will work with a 16kB nrf51822 and leave enough RAM for a basic application, but the majority of Keyplus would have to be implemented on the central/host side. 32kB devices should have no problem either way.
How should we approach this? It would be simpler to use the Nordic ESB library and softdevices. It would also allow implementation of concurrent ESB and BLE connections. Obviously for the softdevice, people would have to download it from the Nordic website and flash it themselves/copy it into the Keyplus directory. The ESB library should be okay to distribute with the source, provided we can work with the 5-clause Nordic license. Apologies for the large post, just putting my thoughts on this matter down.

Interesting thoughts.
Having a easy to buy smallish dongle would be nice, but I doubt we would generate enough volume for a true nano dongle to be developed. So personally I'm more likely to stick to the Logitech dongle.

This is something that I'm interested in too. I actually ordered this nrf52840 dongle the other day to play with.

The first would be to use Nordic's ESB libraries

A while ago I used the nrf24 ESB library to get some basic matrix scanning + nrf24 RF working. It seems pretty straight forward to get it working. Haven't got any USB/BT stuff going yet.  That code is a bit old (I was using the preview dev kit), but I try clean it up and get something committed to the repo soon.

The Nordic SDK has allowed redistribution of SDK files from v12 onward, however, the ESB library is released under a restricted 5-clause BSD license that might not be compatible with the MIT license of this firmware

The MIT license is compatible with Nordics 5-clause license, so no worries there.

Obviously for the softdevice, people would have to download it from the Nordic website and flash it themselves/copy it into the Keyplus directory.

The way keyplus is designed, you can configure it via USB. So most people can just flash a pre-compiled binary which includes the softdevice.

Awesome. While my nrf52 dongle arrives in the next 20-60 days, is atmega32u4 support working? I would like to get the nrf51 communicating with nrf24 modules but only have a couple of pro micros available.

Hi there,
This is a really great project! Just see this for a while, and must say something about nrf52840 because I am working on it. See trkeyboard.com and nine-fox.com, nine-fox.com/pad

To use a module like holyiot or other.
This would be really great if the pcb has enough space and only 1 module is needed. Thats to say, the price is affordable and looking is acceptable. However, for a space limited keyboard, eg, a 4x4 pad, 40%, 60%, using a such large module is quite limited. For a split keyboard, eg, wireless split keyboard like mitosis, you may need 3 modules, the prices will be really high. In my keyboard, eg, https://geekhack.org/index.php?topic=99719.0, I need four 840 chips. If I used a module, the price will be very high. So I would suggest to use chip directly instead a module.

Avoid to use atmega32u4
If you choose to use this nrf52840, get rid of avr. AVR is not a wireless targeted chip, that's to say, its high power cost. If you want to create a keyboard with a long battery life, leave it.

The firmware is different
If you choose to use nrf52840, get rid of all source codes of avr parts. You may need to implement a totally new one. It needs huge work but it is needed, because the mechanism is totally different between avr and 840.

840 is still buggy.
I just got the product notification before China New year from nordic that the improved product will be on market later this year. Also, the latest sdk 15.3 contains bugs(It cost me a lot time to find them and fix them), see the devzone.nordicsemi.com

The communication protocol.
I would suggest to use BLE to communicate. Not only its simple and easy to implement, but also the device with BLE support can connect to it, without the dongle, for example, iPad or iPhone. With the same work, the code can be used in another scenario.

Anyway, this is really a great chip and you can implement a lot of keyboard using it. Good luck with it!
Thanks,
nine-fox

@bezmi Hey made a lot of progress on this now. The nrf52840 dongle code now is basically equivalent to the nRF24LU1+ version.  Here's some pre-compile code if you want to give it a go: keyplus-f9a0f8c.tar.gz.  The hex file was compiled for the Nordic nRF52840 dongle and you can flash it easily with nRFconnect.  I'm not sure if it will run on the Holyiot dongle without modification since it expects a bootloader/mbr to be in place.
Do you know if the Holyiot dongle comes flashed with a bootloader?  I looked at the store page and it breaks out the SWD pins, but it'd be annoying for people if that's required to flash it.
I've also made a lot of progress on BLE. I've got multi-protocol BLE and ESB working.  Right now I'm using my two Xmega+nRF24 and unifying mouse with a nRF58204-DK relaying the keystrokes/mouse over BLE. The performance seems to be pretty good for the keyboards. You can notice that the latency of the mouse is bit higher, but it's still usable.
The main things left to do now are combine the different modes (USB+ESB-rx,  BLE+ESB-rx, ESB-tx) so that they will work all together. And there's a couple of things that still don't work over BLE yet (layout updates, mouse pairing). I might start look into making a PCB for an nRF52840 board too.

@nine-fox
1. Yeah, I'll have to look around cheap options, but price isn't too much of a concern for me run now since I don't plan on mass producing it or anything.
3. The code runs on a few different chips already, so it's modular enough to support both AVR/ARM without too much difficulty.
5. Yeah BLE is more convenient.  I'm going to try and support both ESB and BLE since they both have there advantages.  Also, in my firmware you can remap the mouse buttons of Logitech Unifying mice like a keyboard with the ESB firmware, so it's nice to have both options.

That's awesome! Unfortunately I'm super busy with my final semester of uni until mid June, so i won't be able to do much testing until then. The HolyIOT dongle doesn't come with a bootloader, but the casing is easy enough to remove for access to the SWD pins. Obviously this isn't ideal for the average keyboard builder, but I purchased it solely based on the compactness.
This gives me more motivation to work on ESB compatibility for my nrf51 keyboard, because I should now have a device that will work with keyplus for testing.
How is the current draw over BLE? I've assumed it would be a little too much for the coin cells, so was envisioning a scenario where we could have the split transmitters (esb tx) communicating to PC via nrf52840 (esb rx + USB), with the nrf52840 dongle also able to relay keystrokes to secondary devices over BLE.

How is the current draw over BLE? I've assumed it would be a little too much for the coin cells

Yeah, BLE+ESB will probably use about ~10mA when it's in use since it needs to leave the RF receiver on to listen for ESB packets. So too much for a coin cell.   You could get this lower by using BLE for inter-keyboard communication like I think nine-fox is doing, but I think there'd be some extra complications especially if you have more than 2 devices.
Wake-up receivers might allow for a really low power version, but they're still being developed/researched so not viable at the moment. However, they are being considered for WiFi (802.11ba), so they'll probably make their way to Bluetooth chips too.


Enhancement: Content moderator schedule error prevention

[ ] Allow easier reshuffle for the content mod
[x] Make sure nothing will break with presentations/participants if a room gets deleted or edited
[x] Don't allow any room changes after the presentation has been released
[ ] After programme is released don't allow switching rooms/timeslots - only adding a presentation/room or removing a presentation
[ ] Bug: Autoassign sets room/timeslot for not approved presentations as well

Will reopen at some point


DIVSQRT vectorial lane synchronization

In the case where some lanes experience faster or slower execution than lane 0, the pipeline can become unsynchronized.
This can currently only happen if some lanes in the vectorial DIVSQRT unit handle special cases while others don't, but could in theory happen with any variable-latency unit (which we currently don't have).

I addressed this issue here. I tested it, and it seems it works.
https://github.com/pulp-platform/fpnew/commit/827d1b4ec7f2ba40592c8c6502936860e58a27ca

Problem with 827d1b4ec7f2ba40592c8c6502936860e58a27ca
fpnew hangs when it performs a comparison. I will fix this.


Move to ES6 RxJS

Can't use this out of the box, rxsj-es doesn't include Observable.spawn for some reason.


Can't Object.create on a polymorphic type, even after instanceof Object check

I can't get the following to work:
export default function headerSupport<X: Object>(collection: X):
  X & {withHeaders: (theHeaders: Object) => X}
{
  if (collection instanceof Object) {
    return Object.assign(Object.create(collection), {
      withHeaders(theHeaders: Object): X {
...

Flow complains that
mindfront-react-components/meteor/collection/headerSupport.js:22
 22:     return Object.assign(Object.create(collection), {
                ^ call of method `assign`
 22:     return Object.assign(Object.create(collection), {
                              ^^^^^^^^^^^^^^^^^^^^^^^^^ Object.create. This type is incompatible with
 17: export default function headerSupport<X: Object>(collection: X): X & {withHeaders: (theHeaders: Object) => X} {
                    ^ some incompatible instantiation of `X`

But since my code checked that collection instanceof Object, Object.create(collection) will absolutely work at runtime and should not be considered an error.  Basically it should accept any X where typeof X === 'object', since null is a valid argument as well.
Looking in the core flow defs, I see
    static create(o: any, properties?: any): any; // compiler magic

What is this compiler magic?

Even casting to (collection: any) doesn't stop the error, which seems to totally violate the type signature from the core flow defs.

Closing since this issue hasn’t seen a lot of activity. Sorry about that 😣
Please reopen with a reproduction on https://flow.org/try if you are still having issues!


The browser refreshes itself when I invalidate the session.

Hi,
I've got some strange behaviour which I have not seen before.
When I call this.get('session').invalidate(); the following happens:

The session data is deleted (expected)
Redirected back to the login page. (expected)
The browser then reloads the whole app. (not expected)

Has anyone else come across this?

The reload is expected actually - see http://ember-simple-auth.com/api/classes/ApplicationRouteMixin.html#method_sessionInvalidated.

@marcoow  Thanks for pointing that out...  facepalm


🚧 FileSystem API in web-app

Replaces download link generation with FileSystemAccess API implementation of streaming downloads for tdf3 (and html wrapped, kinda) containers. Works fine for tdf files (not HTML wrapped) of arbitrary size.
HOWEVER: the showSaveFilePicker is unsupported by Playwright, so any CI implementation might have to mock the whole thing.

Moved this work into the bigger demo PR https://github.com/opentdf/client-web/pull/164


issue with pandoc and proselint

I try to lint a pandoc file, and get an error. ft=markdown does not have any error.
Steps to reproduce
Set ft=pandoc. Make sure proselint is installed. Run neomake.
Output from (verbose) NeomakeInfo
Error detected while processing function neomake#Make[11]..<SNR>305_Make[32]..neomake#GetEnabledMakers[28
]..neomake#GetMaker[23]..neomake#makers#ft#pandoc#proselint:
line    1:
E117: Unknown function: neomake#makers#ft#markdown#proselint
E15: Invalid expression: neomake#makers#ft#markdown#proselint()
Error detected while processing function neomake#Make[11]..<SNR>305_Make:
line   32:
E171: Missing :endif

Broken by https://github.com/neomake/neomake/pull/1134, will fix it later.


942310 regular suspected error

Describe the bug
There may be a problem with [\"'`]\s+and\s*?=\W in the 942310 rule. You can view this part in the /util/regexp-assemble/regexp-942310.data file. By analyzing the regularity, There can only be \s between [\"'`] and and, and \w cannot be after and, such as " and =;, but I check related payloads such as: AND 1=1 AND '%'='   Unable to be hit, more related payloads can refer to:
https://github.com/payloadbox/sql-injection-payload-list ,
https://www.netsparker.com/blog/web-security/sql-injection-cheat-sheet/ .
Maybe I didn’t find the corresponding detection payload, let’s take a look at it together~

Steps to reproduce

Expected behaviour

Actual behaviour

Additional context

Your Environment
CRS version v3.4/dev

CRS version (e.g., v3.2.0):
Paranoia level setting:
ModSecurity version (e.g., 2.9.3):
Web Server and version (e.g., apache 2.4.41):
Operating System and version:

Hi again @NiceYouKnow :wave:
Thanks again for your very welcome issue!
We'll investigate it shortly.

I searched all source files for and.
The regexes that contain and and detect AND 1=1 AND '%'=' are:
regexp-942400.data:\band\b\s+\d{1,10}\s*?[=<>]
regexp-942400.data:\band\b\s+'[^=]{1,10}'\s*?[=<>]
regexp-942400.data:\band\b\s+\d{1,10}
regexp-942400.data:\band\b\s+'[^=]{1,10}'
regexp-942400.data:\band\b ?\d{1,10} ?[=<>]+
regexp-942400.data:\band\b ?['"][^=]{1,10}['"] ?[=<>]+
Rule 942400 is at PL2.
We have to discuss if we want to extend the detection at PL1 or PL2 is enough...

AND 1=1 AND'%'=' is just an example. What I want to express is that

["'`]\s+and\s*?=\W

may have a problem, and I cannot understand the payload it can hit.

Ok, I misunderstood your problem. 😀
I also don't know which payload was meant here with this regex:
["']\s+and\s*?=\W`
Some examples that probably don't make sense 😉  But so we can understand the pattern:
https://regex101.com/r/olcs1Q/1
Maybe someone with SQLi knowhow can help us?
@theMiddleBlue can you help us here?

Hi @theMiddleBlue
Do you know what payload should be detected with [\"']\s+and\s*?=\W` in rule 942310 (https://github.com/coreruleset/coreruleset/blob/v3.4/dev/util/regexp-assemble/regexp-942310.data#L1) and if this makes sense or if we have a problem with this regex?
I tried to write some examples which probably don't make sense:
https://regex101.com/r/olcs1Q/1
Could you please help us here?

Hi @franbuehler sorry for being late. Agree with you, It doesn't make sense to me too. If we're talking about SQL I doubt that and = represents a valid syntax.

Could somebody come up with a status update here?

My idea is to remove this regularity because it doesn't make sense to me. I don't know what others think. thanks~ ^~^

Yes, in my opinion this regex can be removed from the source file and the regex can be regenerated for the rule 942400.
And @theMiddleBlue confirms this too.
Would we like @NiceYouKnow to do a PR here?

Thank you @NiceYouKnow.
A PR sounds like a decent plan, yes.

@franbuehler, The modified rule should be 942310, not 942400, ^~^~. I'll submit PR later.

Thank you @NiceYouKnow. I co-assigned the issue to you too.

I don't agree that we should remove it. We don't know what it does and it is different enough from the rest that it appears to be there on purpose (e.g. not just copy pasta). For example, why does the match require at least one space after the quotes? That seems very specific.
Since we don't know what it does we open us up to an attack. Of course, I'm no SQL expert, it's conceivable that the expression contains an error that cripples the rule. I just want to be sure that we know what we are doing here.

During our monthly issue chat meeting, we decided to first find out the intention behind this rule before removing it.
Could you please wait with your PR @NiceYouKnow?

We talked this through in our issue chat. In the end we are not really sure what this part of the regex is all about, but we are not 100% sure it's benign / an error.
So we concluded we are going to ask @theMiddleBlue to take this to twitter and ask if any of the red teamers out there can come up with an example attacking payload that is being matched by the regex in https://regex101.com/r/olcs1Q/1?
If we do not get any useful feedback, we will drop it and the PR by @NiceYouKnow is welcome.
@theMiddleBlue can you help us here? If yes, please do your tweet and the CRS twitter will RT.

This is a bit of a guess, but maybe it's helpful…
The oldest comments I could find that are related to this regular expression gave some "Example Payloads Detected" which made use of compound assignment, e.g. aa" =+ - "0
That made me wonder if the =\W part of the regex was designed to catch =+ and =-. Could it be looking for payloads like ' AND =+ 1?

@theMiddleBlue can you help us here? If yes, please do your tweet and the CRS twitter will RT.

https://twitter.com/AndreaTheMiddle/status/1427618583354413076?s=20

I looked up the relevant information and found nothing to match.
https://github.com/payloadbox/sql-injection-payload-list
https://www.netsparker.com/blog/web-security/sql-injection-cheat-sheet/

Thank you guys. Retweeted with the coreruleset account. We'll see.

OK, no responses to the tweet and nothing substantial to confirm the idea the regex is correct. Thank you for your alternative proposal @RedXanadu.
So I guess it's time for your fix / PR @NiceYouKnow. Thank you for your support.

I just spent some time with this too. The longer I look at it the more it seems to me that the expression contains at least one typo. For the expression to match there must be an engine accepting something like AND = which doesn't make sense because there is no left hand side to the =. Unless there existed a "boolean compound assignment" somewhere (e.g. x := y AND= z).
While the idea of compound operators sounded promising at first, I haven't been able to find any operator where the = is the the first of the two characters. In every dialect the = is always the last character of the compound operator. Even if there where such an operator, the observation above still holds: there would be no left hand side to the operator.
In conclusion, I think the odds of opening us up to an attack are slim (even if there were an exploit, it doesn't seem to be widely known) and I think we should remove the expression.
Thanks @NiceYouKnow, these kinds of issues are so hard to find and we really need the support of CRS users to help us improve the quality of the rules.


Add getting-started guide for Hyperchains

Add "Running a Hyperchains node" under:

The goal is to import the README from https://github.com/hirosystems/stacks-hyperchains/blob/master/README.md#getting-started

Relates to https://github.com/hirosystems/stacks-hyperchains/issues/139.

Just a bad mockup based on our docs homepage, but I feel like the `Get Started` is getting very cluttered. I would love to see a high-level split based on Product/Type (eg Node/API, Stacks.js, Clarity, Gaia, etc.) and then have each things get its own `Getting Started` section.  —  _Just thinking out loud..._

First draft of the readme file is on Notion: https://www.notion.so/hiropbc/Subnets-Readme-md-1fa867fbdeec47b4bde9f93943f09901

The possible approaches to solve the issue is noted in the Notion page: https://www.notion.so/hiropbc/Creating-sub-module-and-link-to-refer-files-from-a-different-Git-repo-d2a888dbc9a34bc695bb08bf21218c12

If we have to copy over content either from the source repo to docs or vice-versa through submodules and symlink'ing, that I am not sure would be ideal for us. Both the approaches defined in the doc rely on this model, so we may want to drill into the pros & cons more carefully.
FWIW, I ran into a few interesting threads on this subject with Docusaurus.
1- A very insightful discussion at https://github.com/facebook/docusaurus/discussions/6086 — and specifically, the docusaurus-plugin-remote-content approach works without much lift locally on my fork. I can get the remote repo MD file (eg: https://github.com/sabbyanandan/error/blob/master/docs/test.md) in a directory of choice within the Docs repo at build time and use it at will afterward. And this copying over will work on every upstream change automatically. Perhaps some basic delta/file-diffing in action to trigger the copy event. In the same discussion, there is also the approach of having multiple docusaurus sites, one for each product repo, and then centrally assembling them with redirects etc. It sounds complex, but worth reading the specifics.
2- The use of @docusaurus/plugin-content-docs plugin discussed at: https://stackoverflow.com/questions/60783595/is-there-a-way-to-have-two-docs-in-docusaurus-2/68162605#68162605 is worth reading. Unfortunately, this plugin's path property is relative to the repo, so it doesn't work with remote repos. But with a combination of docusaurus-plugin-remote-content and this plugin, we could create a good structure with different "docs folder" for each product, so the product-specific MD files we import are separated cleanly.
I am no expert with Docusaurus, so please take all this with a grain of salt. If we look more, there are probably other approaches, too. Ultimately, we want to ensure the approach we select sets up for easy importing and reuse of existing MD files (instead of duplicating), and less maintenance overhead.
WDYT, @LakshmiLavanyaKasturi?
Also, @trichards-hiro, you may have a more profound understanding of these plugins or may even have other ideas. It'd be great to hear your thoughts.

@sabbyanandan  symlinking would mean there is no copy over. The code resides in a single location and the other is just a copy of the original. Changing one automagically changes the other and there is no copy over part.
I have not worked with docusaurus before and this is my first time working with it. I need to go over the documentation in a more detailed fashion to understand this better.
@trichards-hiro  do you have any suggestions over what would be relevant or easy to implement for our use case?

https://github.com/rdilweb/docusaurus-plugin-remote-content/discussions/44

All the possible approaches are noted on the Notion page: https://www.notion.so/hiropbc/Docusaurus-plugins-to-get-remote-content-to-docs-repo-d2a888dbc9a34bc695bb08bf21218c12
Developers can weigh in and suggest the approach that they want to go with.

Updated developer feedback from Clarinet, Stacks.js, and API teams on this Notion page.

This is complete


Bug in SbeOtfDecoder.cpp in case Ir::CHAR:

Hi,
I am using the SbeOtfDecoder to decode the CME message and I found it is not decoding the messages correctly in the case Ir::CHAR:
            case Ir::CHAR:
                if (f.length(index) == 1)
                {
                    std::cout << " type=CHAR value=\"" << (char)f.getUInt(index) << "\"";
                }
                else
                {
                    char tmp[1024];

                    // copy data to temp array and print it out.
                    f.getArray(index, tmp, 0, f.length(index));
                    std::cout << " type=CHAR value=\"" << std::string(tmp, f.length(index)) << "\"";
                }

in the else statement, the string we get will not get null terminator sometimes. I was just wondering how to solve this issue.
Thanks.

C++ OTF decoder has been significantly changed. So, closing.


libsql / Turso Web build

I am just doing some preliminary research on what it would take to create a Turso flavor of the wasm build for use in flutter WEB.
Their recent announcement about offline writes is quite exciting, but I have a multiplatform app that uses drift currently running on Android, iOS and Web so I'm trying to understand where this work would need to happen. Would there need to be a custom build of libsql for wasm?

It's probably easier to write a Dart wrapper around the official JS SDK for turso and then use that instead of using the sqlite3.wasm shipped with sqlite3.dart.
package:sqlite3 has its own custom sqlite3 build that is different from what Turso is doing (they've forked the upstream sqlite3 wasm builds, which is a different setup).
The last time I've checked, the actual synchronization bits weren't in libSQL directly and instead parts of different Rust crates, I'm not sure how they end up being compiled for the web in the end. Looking at this, probably not at all.
We have an example here that shows how to do custom sqlite3 compilations with extensions written in Rust for the web. That might be useful as a starting point to port parts of the synchronization stuff over.
(if you don't need offline functionality on the web though, you can use drift_hrana already without any external WebAssembly modules).


Review depends on modifiers

For dictionaries and lists, depends on doesn't reflect changes. We can use https://docassemble.org/docs/initial.html#on change instead

We'll worry about situations where depends on isn't enough later when we do a final review of the review screen and check for more bugs there.


Register 103 PMV Openness

HI
My York heatpump have value range from 0 to 480 -so I add filter to get value in % -can you confirm that in your HeatPump (Midea) is similar range? If yes we can update to get this value in percent ;)
Code changes this move in range 0-480 to 0-100%:
  # Register: 103
  - platform: modbus_controller
    modbus_controller_id: "${devicename}"
    name: "PMV Openness"
    id: "${devicename}_pmv_openness"
    icon: mdi:valve
    register_type: holding
    address: 0x67
    value_type: U_WORD
    unit_of_measurement: "%"
    filters:
    - calibrate_linear:  #York have movement 0-480
      - 0 -> 0.0
      - 480 -> 100.0

Good one, I see the same on our heat pump indeed. We also have a Midea clone btw, an Airwell.

The same one on my original Midea...


Streaming agent message content reconnect/disconnect but should not during token streamings

cc @lasryaric

Assigning to @lasryaric


Edited API docs

Edited the subpoint in API docs

@amchew  Actually, the content's good - if you want me to 'fix' the bullets, let me know

@jwargo Hey! Yes, please 'fix' the bullets whichever way you see fit/following the pattern.
Essentially the goal is: Full access and Read only API tokens are sub points under step 6.

I'm closing this PR in the public repo and making one in the private repo. fyi @jwargo


Fix 'w' encoding.

Fails with "Type check failed in push to Buf; expected uint8 but got array[int]..."
Needs append rather than push.

Thanks!  I would also be indebted to you if you could write some tests for this!

It's in progress :-)
But tests will break the build until the issue I posted a few days ago is
resolved. I haven't just fixed that one because I'm not sure of the
implications or the best way to resolve it.
Kevin.
On Tue, 22 May 2018 at 20:15, Elizabeth Mattijsen<EMAIL_ADDRESS>wrote:

Thanks! I would also be indebted to you if you could write some tests for
this!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lizmat/P5pack/pull/2#issuecomment-390938866, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFoZt6dAGefFF_KBvaHs8y4-Ilig0F9Jks5t0-VVgaJpZM4UH3KR
.

Oops, I missed your first Issue… will look at that after some sleep

On 23 May 2018, at 00:05, kjpye<EMAIL_ADDRESS>wrote:
It's in progress :-)
But tests will break the build until the issue I posted a few days ago is
resolved. I haven't just fixed that one because I'm not sure of the
implications or the best way to resolve it.
Kevin.
On Tue, 22 May 2018 at 20:15, Elizabeth Mattijsen<EMAIL_ADDRESS>wrote:

Thanks! I would also be indebted to you if you could write some tests for
this!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lizmat/P5pack/pull/2#issuecomment-390938866, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFoZt6dAGefFF_KBvaHs8y4-Ilig0F9Jks5t0-VVgaJpZM4UH3KR
.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.


Issue with calling java function with String[] param from javascript

I am puzzled about how to do with the String[] type param in javet javascript for java function. Would you give me some advice ? The next is my code.
public final class FileManager {
	public static void zip(
		String toZipPath,
		boolean toZipPathIsAbs,
		String[] fromFilePaths,
		String basePath,
		boolean basePathIsAbs) throws IOException{
	 ...
	}
}

console.log(newFile);
console.log(isAbs);
console.log(files);
console.log(parentPath);
console.log(isAbs);
javet.package.efw.file.FileManager.zip(newFile,isAbs, files, parentPath,isAbs);
//---------------the debug output is the next. The zip function does not run.--------------
/*
upload/startup.bat.zip
false
["upload/startup.bat"]
upload
false
*/

I found the info from the help document. Does it means I must change the java function param from
String[] to ArrayList ?

Please check #351 out. Object.seal() can help with that.


Create an intro

Add an intro about yourself: who are you, what is your strength, why are you here.

Write briefly and succinctly.

Hello! I'm a novice Frontend Developer seeking for an opportunity to extend and master my web development skills and knowledge. I'm trying to write effective code and keep it clean, matching recent coding standards.
Currently, I'm targeting a Trainee position in Frontend development.


Image scaling is performed incorrectly (in all detection models!)

When using MaskRCNN I found that there is a severe bug in the image-scaling functionality in torchvision for all detection models that use GeneralizedRCNNTransform.
The scaling namely always scales down to the passed min_size argument, even if the image size respects the min_size and max_size constraints.
I'm surprised that no-one every noticed this erroneous behavior. Probably, no-one every noticed as everyone uses the default (800/1333) min/max parameters, which have minimum effect on the output of the model training.
However, once you start using a `min_size' of let's say 1 pixel, all images are scaled down to 1 pixel, even though they they adhere to the set size constraints.
The issue is here:
https://github.com/pytorch/vision/blob/5181a854d8b127cf465cd22a67c1b5aaf6ccae05/torchvision/models/detection/transform.py#L61C1-L61C83
In my view, the current implementation should be changed from
            scale_factor = min(self_min_size / min_size, self_max_size / max_size)

To:
            # If the image adheres to the min/max constraints, do not scale it.
            if min_size >= self_min_size and max_size <= self_max_size:
                scale_factor = 1.0
            else:
                # Prefer the max_size to be respected. Note that as an effect, the smallest side of the image
                # can be smaller than self_min_size.
                scale_factor = min(self_min_size / min_size, self_max_size / max_size)

Tried to make a pull request for this, but don't have rights.
How should we continue?

Thanks for clarifying, that explains why the behavior is not as described in the code documentation.
I would still suggest to then update the documentation of the code to reflect the actual scaling behavior and to document the hidden _skip_resize = True argument.
The current description is very incomplete and suggests that images with a resolution between min_size and max_size are not scaled.
See the Faster RCNN documentation here: https://github.com/pytorch/vision/blob/2ae6a6d546b90f3ec35dfe56b2034321714eabc1/torchvision/models/detection/faster_rcnn.py
"min_size (int): minimum size of the image to be rescaled before feeding it to the backbone"
What I should do then is do the scaling before calling the MaskRCNN model code and pass the _skip_resize parameter.

Great, this makes it clear to the user that there is some non-trivial min/max scaling behavior, which would have avoided the issue in my case.
Thanks!


add credt admin's function

Codecov Report

Merging #245 (5c0a91d) into master (15de88a) will decrease coverage by 0.01%.
The diff coverage is 85.71%.

@@            Coverage Diff             @@
##           master     #245      +/-   ##
==========================================
- Coverage   70.44%   70.42%   -0.02%
==========================================
  Files          53       53
  Lines       15370    15415      +45
==========================================
+ Hits        10827    10856      +29
- Misses       4543     4559      +16

Impacted Files
Coverage Δ

pallets/credit/src/lib.rs
71.00% <75.00%> (-0.57%)
:arrow_down:

pallets/credit/src/benchmarking.rs
87.89% <100.00%> (+0.23%)
:arrow_up:

pallets/credit/src/tests.rs
100.00% <100.00%> (ø)

pallets/staking/src/tests.rs
99.88% <100.00%> (+<0.01%)
:arrow_up:

Continue to review full report at Codecov.

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


Uzbek translation

This is my first time contributing to an Uzbek translation, and I'm hopeful that others will join in to refine and enhance this work. As of now, I'm the only maintainer working on this, but I welcome others who are interested in collaborating to ensure a well-rounded translation. If anyone is interested, please feel free to comment below so we can maintain this together as a team.

I agree with that guy!

I can assist him @AbdullayevAbdurashid


Authentication Service

Fixes #106 and #109

Do not merge yet. I will add a commit fixing the lint warnings.

Do not merge yet. I will add a commit fixing the lint warnings.

Ready to merge

Ready to merge