Copy & paste is not working properly on Windows 10

I need to right click to paste which everything but aligned with everything else. On Mac's terminal you can just "Cmd + V" everywhere.

Good find.
It looks like a PSReadLine issue.
You can verify this by running Remove-Module PSReadLine in your session, at which point the W10 console windows' native selection and copy & paste features start working.
I suggest posting an issue there - correct, @iSazonov?

Could you please test on Linux too?

@iSazonov:
Linux terminals typically use ⌃⇧C and ⌃⇧V rather than ⌃C and ⌃V.
I can confirm that ⌃⇧C and ⌃⇧V work as expected in the default terminal on Ubuntu 16.04.

@mklement0  Thanks for the test!

After executing Remove-Module PSReadLine Ctrl + V works fine again on Windows 10 (Creators Update)/PS6beta4.

@lzybkr Could you please comment the Issue?

Another, slightly unrelated question:
When I launch "Ubuntu Bash" in PS and want to use Ctrl + V as well, I get ^V -- only right-click works. With https://conemu.github.io/ it works fine but I do not want to use it because if its preferences bloat.

@loxal: I don't think that's a PowerShell problem; bash.exe is in control of keyboard handling, and you get the same behavior whether you invoke it from PowerShell or directly, via the official shortcut.

PSReadline depends on winforms for clipboard support, but winforms is not in .Net Core. We likely need to extract the clipboard p/invoke code from winforms to get copy/paste support in PSReadline, but that still won't help on non-Windows platforms that might not support a clipboard at all.

If it work without PSReadline why we need the clipboard p/invoke ?

Cooked mode command line editing (conhost) supports basic selection and clipboard, but isn't extensible, so PSReadline uses raw mode and loses some things like clipboard support.

Is there no way to passthrough for clipboard support?

Not really,  there could be some horrible hack, but no clean way.

@lzybkr Thanks for clarify!
Unix doesn't seem to have a common clipboard 😕. I guess we have to fix at least Windows.

Native API:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms649048(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms649016(v=vs.85).aspx#_win32_Copying_Information_to_the_Clipboard
WinForms uses ComObj  OleGetClipboard https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Clipboard.cs,f4f3734655d33a95

In which version of PowerShell Core will PSReadline 2.0.0 land?

Any progress on this?

You can install PSReadLine 2.0.0-beta1. Beta2 will hopefully ship with the next preview of 6.1.

@lzybkr:
Thanks for fixing most of the issues in v2, on all platforms.
The one thing that still doesn't seem to work on Unix platforms is copying keyboard-based selections to the clipboard.
What would be required to support that?

@mklement0 - I haven't really looked into clipboard support for non-WIndows - I'd sort of assumed the only viable approach was to use an external utility like pbcopy or xclip or whatever the tool might be called.

@lzybkr:
Indeed: on macOS it is pbcopy, on freedesktop.org-compliant Linux distros (X11-based desktops)  it is the xclip utility, which, unfortunately, isn't preinstalled.
My ClipboardText module provides a PS wrapper around these (including around clip.exe on Windows), if it helps. (It only warns about a missing xclip and provides installation hints, however).


chore(dependencies): update TypeScript version

Related Ticket(s)
Refs #4101.
Description
To 3.9, as it's the minimum supported TypeScript version of Angular 10.x.
Changelog
Changed

Upgrades TypeScript dependency to 3.9 and locks to it.
Upgrades other TypeScript-related dependencies.

@asudoh thank you! I think the offline mirror is out of sync, can you run a yarn reset?

@jeffchew Sorry for that - Updated.


ldgen: override LC_ALL to C before running objdump (IDFGH-6231)

When using a Linux system configured with zh_CN.UTF-8 as $LANG, and running raw cmake command to build the project (rather than using idf.py build), output of objdump will be Chinese (like 在归档文件 libesp_pm.a 中), resulting in parsing error pyparsing.ParseException: Expected "In archive" (at char 0), (line:1, col:1) at entity.py line 129.
This commit forces objdump to use raw locale setting (C), to ensure it always make English output that's able to be parsed.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for your contribution.

Thank you for the PR. We are moving it into our internal test queue. This PR will be closed when it gets accepted or we will get back to you with requests to update.


Support multiple textareas with different textcompletes but same match

Fix for #157

Sorry for my late reply. It seems that #157 was fixed by 5300e89


HikariCP properties set but not read in datasource

Environment Details

Helidon Version: 4.0.6
Helidon SE or Helidon MP: MP
JDK version: Zulu 21.0.2
OS: Arch Linux
Docker version (if applicable):

Problem Description
When HikariCP is used with the HikariCPBackedDataSourceExtension, seems that HikariCP just receive properties in the constructor but don't use them to generate the connection pool, resulting in exception on jdbc connections creation.
My microprofile-config.properties contains the following lines:
javax.sql.DataSource.main.dataSource.jdbc.url = jdbc:postgresql:/host:5432/schema
javax.sql.DataSource.main.dataSource.username = postgres
javax.sql.DataSource.main.dataSource.password = changeMe
javax.sql.DataSource.main.dataSource.maxSize = 20
javax.sql.DataSource.main.dataSource.currentSchema = mySchema

The current workaround used is to make use of the useful event fired on CDI before the DataSource creation
@ApplicationScoped
public class MainDatasourceEventListener {

    void enhanceConfig(@Observes HikariConfig config) {
        // Seems that hikari config is not correctly initialized, so we can override some properties
        Properties properties = config.getDataSourceProperties();
        config.setUsername(getOneOf(properties, "user", "username"));
        config.setPassword(getOneOf(properties, "password", "pass"));
        config.setJdbcUrl(getOneOf(properties, "url", "jdbcUrl", "jdbc.url"));
        config.setSchema("schema");
    }

    private String getOneOf(Properties properties, String... names) {
        for (String name : names) {
            if (properties.containsKey(name)) {
                return properties.getProperty(name);
            }
        }
        return null;
    }
}

I think we can set these properties without using the constructor as HikariConfig right now just set them in datasourceProperties without changing the current configuration instance
public static void setTargetFromProperties(Object target, Properties properties) {
        if (target != null && properties != null) {
            List<Method> methods = Arrays.asList(target.getClass().getMethods());
            properties.forEach((key, value) -> {
                if (target instanceof HikariConfig && key.toString().startsWith("dataSource.")) {
                    ((HikariConfig)target).addDataSourceProperty(key.toString().substring("dataSource.".length()), value);
                } else {
                    setProperty(target, key.toString(), value, methods);
                }

            });
        }
    }

Steps to reproduce

Create a new project using MP
Add dependencies for HikariCP without using JPA dependency
Add a connection for the specific database
Check that connecting to the datasource result in an exception for invalid jdbcUrl

I believe you will find this is user error. Any property prefixed with .dataSource. will be forwarded to the data source as defined in the HikariCP documentation (scroll down to "Example property file"). Your example should therefore probably be (untested):
javax.sql.DataSource.main.dataSourceClassName = org.postgresql.ds.PGSimpleDataSource
javax.sql.DataSource.main.dataSource.url = jdbc:postgresql:/host:5432/schema
javax.sql.DataSource.main.dataSource.user = postgres
javax.sql.DataSource.main.dataSource.password = changeMe
javax.sql.DataSource.main.maximumPoolSize = 20
javax.sql.DataSource.main.dataSource.currentSchema = mySchema

See also:

https://github.com/brettwooldridge/HikariCP/blob/dev/README.md#essentials
https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
https://github.com/helidon-io/helidon/wiki/FAQ#what-value-should-i-use-for-my-connection-pools-property-that-designates-my-datasource-class-name


Rebase er linter update

Update the lint_er.py to accept .jpg as metadata files, and change logic for catching non-conforming FTK metadata filename. Tests are also added and passed. The "metadata_folder_has_one_or_less_file" function can potentially be removed, since we technically accept more than one file now due to .jpg. But it is fine to stay too, because it is a less strict condition.
This branch is rebased from "er_linter_update" because the old one has schema API script commits mixed it. "er_linter_update" can be deleted after this branch is approved.

I had to resolve some merge conflicts. I think I preserved all new features, but double that the tests still pass.


Added RegEx.search_all() for multiple matches

And updated the docs
Lets you do fancy stuff like:
var regex = RegEx.new()
	regex.compile("d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)")
	for result in regex.search_all("d01, d03, d0c, x3f and x42"):
		print(result.get_string("digit"))
		# Would print 01 03 3f 42
		# Note that d0c would not match

Hi ! Nice addition ! Why do you use < instead of < in your example ? Is that a requirement, to escape HTML ?

@Goutte Yeah, escaping the XML, to be more exact. It gets converted automatically when read by the internal docs.


Preview markdown contains whitespace

The signature preview window is styled via vim's syntax highlighting which will highlight trailing whitespace:

You can see the same problem with the preview window in the animated demo: Empty lines contain whitespace so they're highlighted.

I think the problem is that the whitespace is first trimmed away
https://github.com/nvim-lua/completion-nvim/blob/8aecb23b5421fa3fdd34a92b2b595ce29b85b82a/lua/completion/hover.lua#L261
But padding is added after trimming, which will fill empty lines with spaces:
https://github.com/nvim-lua/completion-nvim/blob/8aecb23b5421fa3fdd34a92b2b595ce29b85b82a/lua/completion/hover.lua#L162

a quick fix for me was highlight mkdLineBreak guifg=none guibg=none

@sentriz That's a possible fix, but the main issue should still be fixed. I'll look into it.

Should be fixed by the latest commit.

Fixed! Interestingly, the built-in LSP has the same bug with function signature popups though.


[nethost] Bump to .NET 8.0.3

[x] Changes comply with the maintainer guide.
[x] The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
[x] Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.
[x] The versioning scheme in vcpkg.json matches what upstream says.
[x] The license declaration in vcpkg.json matches what upstream says.
[x] The installed as the "copyright" file matches what upstream says.
[x] The source code of the component installed comes from an authoritative source.
[x] The generated "usage text" is accurate. See adding-usage for context.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is in the new port's versions file.
[x] Only one version is added to each modified port's versions file.

f you confirm the repair is complete, click "ready for review".

Thanks!


Initial split from sigstore-python

Going to merge this so I can test the GCB integration, will address comments in follow-up PRs.


Highlight groups are cleared

Describe the bug
Dashboard header has no color on sart.
:hi DashboardHeader
DashboardHeader xxx cleared

To Reproduce
I'm using this minimal vimrc:
if has('vim_starting')
  set nocompatible
endif
call plug#begin(expand('$XDG_CONFIG_HOME/nvim/plugged/'))
  Plug 'glepnir/dashboard-nvim'  " startup screen
call plug#end()

hi link DashboardHeader Comment

filetype plugin indent on         " Required!
syntax enable                     " Required!

If I run
hi link DashboardHeader Comment
manually, then the header will be green, as expected.
Expected behavior
Dashboard has colorized header on start also
:hi DashboardHeader
DashboardHeader xxx links to Comment

Finally, It works only with autocommands:
vim.cmd([[
autocmd FileType Dashboard setlocal nofoldenable nornu nonu
autocmd FileType Dashboard hi link DashboardHeader Label
autocmd FileType Dashboard hi link DashboardCenter Identifier
autocmd FileType Dashboard hi link DashboardShortCut String
autocmd FileType Dashboard hi link DashboardFooter Comment
]])

the hi define should load before the plugin load. so move thie hi command to the line 4 .


Bump unsupported CI dependencies

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1356

Relevant Lines:
1380

💛  - Coveralls


Feature: Allow multiline dependent precipices

If a recipe has many parameters, it becomes increasingly hard to manage a long list of them in one line. Ideally, it should be possible to have them use multiple lines with a backslash:
task param: \
        (subtask param "abc-1" "xyz") \
        (subtask param "abc-2" "xyz") \
        (subtask param "abc-3" "xyz")

subtask param1 param2 param3:
    echo "my super subtask {{ param1 }} {{ param2 }} {{ param3 }}"

Workarounds
I am aware that I can do it with a nested call to just, but that is undesirable because the parameters have to undergo encoding/decoding, resulting in subtle bugs and hard to read code:
task param:
    # param here must be encoded back into shell-compatible way,
    # wrapped with quotes, and hope that it does not break
    {{ just_executable() }} subtask "{{ param }}" "abc-1" "xyz"
    {{ just_executable() }} subtask "{{ param }}" "abc-2" "xyz"
    {{ just_executable() }} subtask "{{ param }}" "abc-3" "xyz"

subtask param1 param2 param3:
    echo "my super subtask {{ param1 }} {{ param2 }} {{ param3 }}"

@laniakea64 @casey thank you for the quick reply. The reason I thought it was not implemented is due to to IntelliJ Justfile plugin:


Dumpdata complains celery_taskmeta doesn't exist

When attempting to dump the entire database using dumpdata, django complains that celery_taskmeta doesn't exist.  Since django-celery doesn't require celery to be an installed-app, syncdb never creates these tables and thus dumpdata shouldn't have to ever dump them.
python manage.py dumpdata --settings=proj.settings > db.json
/home/ec2-user/django-trunk/django/db/models/fields/subclassing.py:80: DeprecationWarning: A Field class whose get_db_prep_save method hasn't been updated to take a connection argument.
new_class = super(SubfieldBase, cls).new(cls, name, bases, attrs)
Traceback (most recent call last):
File "manage.py", line 11, in
execute_manager(settings)
File "/home/ec2-user/django-trunk/django/core/management/init.py", line 438, in execute_manager
utility.execute()
File "/home/ec2-user/django-trunk/django/core/management/init.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ec2-user/django-trunk/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.dict)
File "/home/ec2-user/django-trunk/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/home/ec2-user/django-trunk/django/core/management/commands/dumpdata.py", line 110, in handle
objects.extend(model._default_manager.using(using).all())
File "/home/ec2-user/django-trunk/django/db/models/query.py", line 84, in len
self._result_cache.extend(list(self._iter))
File "/home/ec2-user/django-trunk/django/db/models/query.py", line 273, in iterator
for row in compiler.results_iter():
File "/home/ec2-user/django-trunk/django/db/models/sql/compiler.py", line 680, in results_iter
for rows in self.execute_sql(MULTI):
File "/home/ec2-user/django-trunk/django/db/models/sql/compiler.py", line 735, in execute_sql
cursor.execute(sql, params)
File "/home/ec2-user/django-trunk/django/db/backends/mysql/base.py", line 86, in execute
return self.cursor.execute(query, args)
File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute
self.errorhandler(self, exc, value)
File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
django.db.utils.DatabaseError: (1146, "Table 'swipegood.celery_taskmeta' doesn't exist")

I'm having this issue too.
Luckily my backup scripts can exclude arbitrary models. But still.

+1 Having this issue on celery==2.2.x & django-celery==2.2.x. @ShawnMilo's tip of using --exclude djcelery on the dumpdata command worked.


Make a nice GUI frontend

Python has a bunch of GUI toolkits which could be used to make an easy-to-use frontend, which could then in turn be packaged with something like Briefcase, PyInstaller, or PyOxidizer.
A GUI frontend for pyBlamscamp would primarily function best as an album.json editor and a thing to make it easier to configure the CLI encoders and upload tools, especially on Windows.
This would also make it way easier for people to download and install the application (from e.g. itch.io or a GitHub release), especially for Windows users.

Basically done as of a898bb8d5dca4fa86a856f4141e8d7e3b0beb2f8


Feat: Dark Mode Addition

Describe the feature
I'd like to add dark mode to this website. please assign it to me under GSSOC'24
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

I'll make the changes and get back to you in a few days


Update default.json with vimFx-profile

didn't set keys for paste & go/activate clipboard functionality, as it doesn't seem work in my version of FF.

Noticed, I missed adding some functionality, I've never used in VimFx, adding that now, so don't pull yet

Can't figure it out. When I mark the String "maybe " and then press the assigned button for "activate clipboard in tab, it changes and follows the url to "https://www.google.de/webhp?gws_rd=cr&dcr=0&ei=txv_WaLyFIjNkwXr9I-wBg", which is a blank google page for me. Expected behaviour (for a VimFx user, at least) would be, that it pastes "maybe " into the address bar and then presses enter, to make a normal search, with whatever search engine or go to the site, if the String is an URL. So I wont add that, as it doesn't do what a VimFx user would expect and/or is broken. Profile is as VimFx-like as it's gonna get, with the current feature set, so please pull.

@davidermined There's nothing to approve. If you agree with the changes, all you need to do is update the PR. GitHub will collapse comments made on lines of code if they change, signalling that the comment has been addressed.

Thanks for the contribution. There were a few bugs I had to fix. Please add this version of default.json to your PR. You can do a diff to see the 3 or so lines that changed.
Also, building Saka Key works on Windows. I gave my Windows VM a spin just to confirm. I followed these instructions.

Thanks!


lsp is taking more than 30 seconds to display intellisense

How do I debug nvim and lspconfig to figure out whats causing this very slow tsserver lsp startup?

typescript-language-server is extremely slow, we don't use the same server as coc/vscode do, we have to use a wrapper which implements the protocol on top of this server (https://github.com/typescript-language-server/typescript-language-server)

typescript-language-server is extremely slow, we don't use the same server as coc/vscode do, we have to use a wrapper which implements the protocol on top of this server (https://github.com/typescript-language-server/typescript-language-server)

The server is super slow on my codebase, and i don't want to use coc.
I would love to contribute if you don't have the time to fix the issue.


Problem updating v1.1.1 to v2.0.0

Core Library
@azure/msal-browser
Core Library Version
2.13.1
Wrapper Library
@azure/msal-angular
Wrapper Library Version
2.0.0-beta.3
Description
Hi,
I tried updating my project to v2 (as adviced in previous question) but I'm stuck with an error.
To be honest, I'm not an expert, but average at most in Angular.
I tried replacing my code with the new code. Also I'm using an Auth service instead of using the app.component.ts like in the examples.
My problem is, when clicking on my login button, I'm getting redirected to a page (very fast) and then back to my original website, but nothing changes. My '.. getAllAccounts().length' is still zero.
When clicking the login again i'm getting the console error message: "BrowserAuthError: interaction_in_progress: Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API."
MSAL Configuration
export function MSALInstanceFactory(): IPublicClientApplication {
  return new PublicClientApplication({
    auth: {
      clientId: '3454d924-4412-4505-9af6-e954fde72d57',
      authority: 'https://login.microsoftonline.com/510df548-a539-40b9-8716-eb24afaccf1f',
      redirectUri: environment.MSAL_redirectUri,
      postLogoutRedirectUri: environment.MSAL_postLogoutRedirectUri,
      // navigateToLoginRequestUrl: true
    },
    cache: {
      cacheLocation: BrowserCacheLocation.LocalStorage,
      storeAuthStateInCookie: isIE,
    },
    system: {
      loggerOptions: {
        loggerCallback,
        logLevel: LogLevel.Info,
        piiLoggingEnabled: false
      }
    }
  });
}

export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
  const protectedResourceMap = new Map<string, Array<string>>();
  protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);
  protectedResourceMap.set(environment.API_URL, ['api://f1c2d297-0e55-4c4f-9a97-f327b500e832/api-access']);

  return {
    interactionType: InteractionType.Redirect,
    protectedResourceMap
  };
}

export function MSALGuardConfigFactory(): MsalGuardConfiguration {
  return {
    interactionType: InteractionType.Redirect,
    authRequest: {
      scopes: ['user.read']
    }
  };
}

Relevant Code Snippets
Auth.service.ts:
import { Injectable } from '@angular/core';

import { AppSandbox } from '../app.sandbox';

import { Inject } from '@angular/core';
import { Router } from '@angular/router';
import { Location } from "@angular/common";
import { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration, MsalCustomNavigationClient } from '@azure/msal-angular';
import { AuthenticationResult, InteractionType, InteractionStatus, PopupRequest, RedirectRequest } from '@azure/msal-browser';
import { Subject } from 'rxjs';
import { filter, takeUntil } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class AuthService {
  isAuthenticated$ = this.sb.isAuthenticated$;
  isRegAuthenticated$ = this.sb.isRegAuthenticated$;
  currentUser$ = this.sb.getCurrentUser$;

  loginDisplay = false;
  private readonly _destroying$ = new Subject<void>();

  constructor(
    @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,
    private authService: MsalService,
    private msalBroadcastService: MsalBroadcastService,
    private location: Location,
    private sb: AppSandbox,
    private router: Router
  ) {
    // Custom navigation set for client-side navigation. See performance doc for details: https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/v2-docs/performance.md
    const customNavigationClient = new MsalCustomNavigationClient(authService, this.router, this.location);
    this.authService.instance.setNavigationClient(customNavigationClient);
  }

  checkADlogin(): void {
    console.log('checkADlogin');

    this.setLoginDisplay();

    this.msalBroadcastService.inProgress$
      .pipe(
        filter((status: InteractionStatus) => status === InteractionStatus.None),
        takeUntil(this._destroying$)
      )
      .subscribe(() => {
        this.setLoginDisplay();
      })
  }

  setLoginDisplay() {
    console.log('setLoginDisplay');

    this.loginDisplay = this.authService.instance.getAllAccounts().length > 0;

    if (this.loginDisplay) {
      console.log('getAllAccounts().length > 0');
    } else {
      console.log('getAllAccounts().length = 0');
    }
  }

  loginAD() {
    console.log('loginAD');

    if (this.msalGuardConfig.interactionType === InteractionType.Popup) {
      console.log('InteractionType.Popup');
      if (this.msalGuardConfig.authRequest) {
        this.authService.loginPopup({ ...this.msalGuardConfig.authRequest } as PopupRequest)
          .subscribe((response: AuthenticationResult) => {
            this.authService.instance.setActiveAccount(response.account);
          });
      } else {
        this.authService.loginPopup()
          .subscribe((response: AuthenticationResult) => {
            this.authService.instance.setActiveAccount(response.account);
          });
      }
    } else {
      console.log('NOT InteractionType.Popup');
      if (this.msalGuardConfig.authRequest) {
        console.log('if (this.msalGuardConfig.authRequest){');
        this.authService.loginRedirect({ ...this.msalGuardConfig.authRequest } as RedirectRequest);
      } else {
        console.log('NOT if (this.msalGuardConfig.authRequest){')
        this.authService.loginRedirect();
      }
    }
  }

  logoutAD() {
    if (this.msalGuardConfig.interactionType === InteractionType.Popup) {
      this.authService.logoutPopup({
        mainWindowRedirectUri: "/"
      });
    } else {
      this.authService.logoutRedirect();
    }
  }

}

Identity Provider
Azure AD / MSA
Source
Internal (Microsoft)

@jo-arroyo Will you be able to help @mylle here?

Hi @mylle, have you bootstrapped the MsalRedirectComponent? Interaction_in_progress errors are usually related to improperly handled redirects. See our redirect doc for more details on how to handle your redirect.

Hi @jo-arroyo, I did not, as I didn't see it in the Angular 9 V2 example.
I added the component to the bootstrap of app.module.ts
bootstrap: [AppComponent, MsalRedirectComponent]
Now when visiting my page, I'm getting 2 of the same errors instantly:
ERROR Error: The selector "app-redirect" did not match any elements
I tried clicking my login button, but the same thing happens.
I forgot to mention that after the fast redirect my URL changes with the addition of #code=....:
http://localhost:4200/home#code=0.ASAASPUNUTmluUCHFuskr6zPHyTZVDQSRAVFmvbpVP3nLVcgAPU.AQABAAIAAAD--DLA3VO7QrddgJg7Wevrko5iTHdT6oJe6FZUCBGLJYJWOFeuxR0JApKudUhtnoS2VYttDAbOp5wzmpuQ8sOGIWofhPl-Uhx56veUefKg_m5J-YBA9rJrL8DbZjCXH1yS3N9mBTn0-e3wvf6qBoAZSo644V6qAXGTEeJIUQHPIqWgyNx4HCTBnm0jLl3rvf9OxXDYkGnkyE7htWecUTIjJ6d_yFCVd-nv2Atowf6eKeoafIfkkGUvs0t0FZ3iP51X-SKgjqSF5sU7ERlXi0-018QI8XWtjLT440e4-f0quZXWGHkQmS4JKUqSjJ9d0B1L6Dg2BM6bfCblm_TCbLPppyZhlsdNcP6PFo-ILW-Z6cJf5EguV-hPKEd6QvXpdGC8x9ICHj4KtTwVYsTJT0BkW-AJfgo-vEzxW2lwuupTjYdMZGM76Ec7CH7gZr3U3K6Ctx1Q9CtXlfVsggLkykfBGdjcJqCdVs-UwK11irpzmEyU0s3h6Xq4WEZENKZ4t11ywjqQosodnFH35aODJpNgIaFhT1oOKYB6V1UImc6Y_I3YafFJsg3gpXYBTlcB9uaPox38gTLl2Ggo2hQvkWUCSW0ihNEX3QRLDPuYkJlUkhlAOt4DUgHumGhitWqVqTqMStWF2yCRjEZMRfzuwDXl7IlymdxGlsdlu1GOCrQHEWEjPgHznDjQC60ADZcouYScB0zhgb8lFxON5Ffhc-CMVkDxpuAi--B2F_EXHXKwCz4VHnkWKoMmEi7vUS5_4Dm36sAcZkyXe4oDK4PUyNjX_W7qBtLbp1hC_4jVW-U0KT4IQ4YIdHwIccry-T6COFsMhh2ks4Q414r7kIsAIObVc1QgWrvpC0UC3ovcprU3FeAAvGPySA-yaBtxAO4AO_LndBmdNmQhQuqpG1GzgICiIAA&client_info=eyJ1aWQiOiIxMDRmZTJmNS1iM2FhLTRjNzQtOGUxYi01MmVkNTAzMTkyNDAiLCJ1dGlkIjoiNTEwZGY1NDgtYTUzOS00MGI5LTg3MTYtZWIyNGFmYWNjZjFmIn0&state=eyJpZCI6IjlmN2RhOTQ4LTk5NDUtNGFmNC04YTdmLTUxMjBmOGYyNGZkMSIsIm1ldGEiOnsiaW50ZXJhY3Rpb25UeXBlIjoicmVkaXJlY3QifX0=&session_state=a75f561d-18f9-443d-bfde-3381fadd236a_

Hi @jo-arroyo , I also tried to change the InteractionType to Popup and I got these errors in console:

@mylle A few points:

Hi @jo-arroyo, I did not, as I didn't see it in the Angular 9 V2 example.

The Angular 9 v2 sample does not use the MsalRedirectComponent, as it demonstrates the use of handleRedirectObservable. However, MsalRedirectComponent works in Angular 9 apps too. Our samples readme shows what each sample demonstrates,

I added the component to the bootstrap of app.module.ts
bootstrap: [AppComponent, MsalRedirectComponent]
Now when visiting my page, I'm getting 2 of the same errors instantly:
ERROR Error: The selector "app-redirect" did not match any elements

The MsalRedirectComponent has a selector, "app-redirect". This selector should be added to your index.html as well. See our redirect doc for what this looks like.

I tried clicking my login button, but the same thing happens.
I forgot to mention that after the fast redirect my URL changes with the addition of #code=....:

The #code that is being returned shows that the redirect has not yet been handled. When the redirect is not handled, and you click login again, it will cause an interaction_in_progress error, as the previous interaction is not handled before you start another one. This is expected behavior when a redirect has not been handled.
As for the error you are getting with popups, please check your app registration in the Azure Portal and make sure your redirectUri is registered as type "SPA".

Hi @jo-arroyo ,
I managed to get everything to work.
I also had to change my Azure App URL redirects to SPA (instead of Web) and then everything worked.
Thanks for all the help!
Kind regards,
Niels


xv6 operating system hangs when running on  FPGA

https://github.com/jbush001/xv6-nyuzi
This boots fine under the emulator and verilog simulation, but hangs before showing the shell prompt when run on the FPGA board. This could be an issue specific to the FPGA configuration, or it could be exposing a synthesis/simulation mismatch. Should track this down.
Debugging this might be easier if #153 were implemented.

program running, entering console mode
started cpu 1
started cpu 2
started cpu 3
sb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58

Tried making this run on only one thread to check for a deadlock. Still hangs...
--- a/main.c
+++ b/main.c
@@ -29,7 +29,7 @@ main(void)
   binit();         // buffer cache
   fileinit();      // file table
   bdev_init();       // disk
-  startothers();   // start other processors
+//  startothers();   // start other processors
   kinit2(P2V(4*1024*1024), P2V(PHYSTOP)); // must come after startothers()
   userinit();      // first user process
   mpmain();        // finish this processor's setup

Made a global variable 'count' and added the following to the top of trap():
REGISTERS[REG_RED_LED] = count++;

I can see the LEDS counting off. So interrupts are enabled and it is receiving them.

Added code to dump interrupt pending register. Only LED1 is lit (indicating it is taking timer interrupts):
REGISTERS[REG_RED_LED] = __builtin_nyuzi_read_control_reg(CR_INTERRUPT_PENDING);

Disabled the timer interrupt by commenting out the IRQ enable in mpmain:
//irq_enable(IRQ_TIMER);

A theory I had is that the interrupt is stuck, so eret immediately takes another interrupt. The interrupt LED no longer is lit, but the process still hangs in the same place, which disproves this theory.

I can do ctrl-P in the terminal (process listing) and it prints the following:
1 run    initcode
("run" corresponds to the state RUNNING). So userinit has successfully executed and created an init process, which is supposedly running, but doesn't seem to have forked the shell.

Added code to indicate if a syscall occurs. The LEDs do  not turn on:
--- a/trap.c
+++ b/trap.c
@@ -116,6 +116,7 @@ trap(struct trapframe *tf)

   switch(trap_cause & 0xf){
   case TT_SYSCALL:
+    REGISTERS[REG_GREEN_LED] = 0xffff;

One issue I noticed is that the the system does not to an iinvalidate after copying the initcode into the first address space. This will probably still contain boot code.

Tried to add some code to perform iinvalidate, but still hangs:
--- a/vm.c
+++ b/vm.c
@@ -203,13 +203,16 @@ void
 inituvm(pde_t *pgdir, char *init, uint sz)
 {
   char *mem;
+  uint i;

   if(sz >= PGSIZE)
     panic("inituvm: more than a page");
   mem = kalloc();
   memset(mem, 0, PGSIZE);
-  mappages(pgdir, 0, PGSIZE, V2P(mem), PTE_W | PTE_X);
   memmove(mem, init, sz);
+  mappages(pgdir, 0, PGSIZE, V2P(mem), PTE_W | PTE_X);
+  for (i = 0; i < PGSIZE; i += CACHE_LINE_SIZE)
+      __asm__("iinvalidate %0" : : "s" (i));
 }

 // Load a program segment into pgdir.  addr must be page-aligned
@@ -243,6 +246,7 @@ allocuvm(pde_t *pgdir, uint oldsz, uint newsz)
 {
   char *mem;
   uint a;
+  uint i;

   if(newsz >= KERNBASE)
     return 0;
@@ -264,6 +268,9 @@ allocuvm(pde_t *pgdir, uint oldsz, uint newsz)
       kfree(mem);
       return 0;
     }
+
+    for (i = 0; i < PGSIZE; i += CACHE_LINE_SIZE)
+      __asm__("iinvalidate %0" : : "s" (a + i));
   }
   return newsz;
 }

One difference between simulation and FPGA is that the former by default randomizes all flops and SRAM, where the FPGA clears it. I tried disabling this by using the +randomize=0 parameter, but it still booted successfully:
nyuzi_vsim +bin=kernelmemfs.hex +randomize=0
cores 1|threads per core 4|l1i$ 16k 4 ways|l1d$ 16k 4 ways|l2$ 128k 8 ways|itlb 64 entries|dtlb 64 entries
sb: size 1000 nblocks 941 ninodes 200 nlog 30 logstart 2 inodestart 32 bmap start 58
init: starting sh
$

Hi there,
I did port xv6 to Riscv32i and succeded to run it on an fpga implementation of RV32ia.
Also on my fpga i noticed the same behaviour as you. Xv6 stuck and no shell prompt. I investigated and found that the reason (in my case) was.,that UART continuously fired interrupts because the transmit holding register was empty which consumed all the cpu power because cpu was continuosly calling the interrupt trap. The interrupt routine of uart.c should clear the interrupt source according to soecs of the UART controller 16550 by either:
1.write something to uart
Or
2.clear the transmit holding register empty interrupt by reading the ISR register of UART.
So I added the following command in uart.c. In the function void uartstart()
...
If (uart_tx_w==uart_tx_r){
ReadReg(ISR); //clear interrupt source
return;
}
And it worked!

Interesting. It's been a long time since I looked at this problem and I don't remember much about it. :smile: But thanks for the suggestion!

Interesting, I had also in mind to do something similar in the future. May I ask how did you deal with the MMU logic? I am currently studying the xv6 and for what I understood the MMU is simulated in software (vm.c, walk() function). Does it mean the risc-v core on my fpga does not need to know anything about pages?

Hi Martin,
the CPU has to do MMU logic in hardware. When vma is activated, the cpu
does the "walk" in hardware to find the appropriate physical memory
location.
The walk function in vm.c is used by the kernel to calculate the right
physical position. This is done in software, but the CPU still has to
do it in hardware.
In my implementation I choose to do the pagetable walk in the simplest
way, by walking through the page tables on every single memory read. So
I did not implement TLB (look aside buffer).
Please, have a look on my repo:
https://gitlab.com/x653/xv6-riscv-fpga
You find the implementation of the virtual memory addresses in
fpga/vma.v
Best
Micha
Am Sonntag, dem 12.02.2023 um 08:06 -0800 schrieb Martin:

Interesting, I had also in mind to do something similar in the
future. May I ask how did you deal with the MMU logic? I am currently
studying the xv6 and for what I understood the MMU is simulated in
software (vm.c, walk() function). Does it mean the risc-v core on my
fpga does not need to know anything about pages?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID:
@.***>


A question about the reward design

First of all, congratulations! This is an interesting work for DRL solving JSSP.
I have read through the paper and been quite enjoying it. I have a question regarding the reward design. So, if you could elaborate a bit, I will be much appreciated. Thanks in advance.
According to the paper, the reward is designed as:

My question is following:
I hypothesize that the term of processing time makes no difference?
Since no matter what decision is made by the agent, the total cumulated rewards will always have the same amount of processing time of all operations, i.e., it is permutation-invariant. For example, p11 + p12 + p13 + ... = p13 + p12 + p11 + ... = p12 + p13 + p11 + .... Therefore it makes no difference to the agent, and the agent will get the same amount of this reward anyway. However, the total idle time makes a lot of sense to me. So I just wondering have you ever tested that the reward is purely based on the total idle time, that is we just remove the term of processing time in the reward?
I understand that including the processing time will make the reward even denser than purely using the total idle time.

Thank you!
That's a very good observation. You are right. Over an episode, the sum of the processing time is a constant.
We haven't tried to remove it. Depending on your settings, it may or may not have an impact. For full episode rollout with gamma=1, it shouldn't have any impact, but for other settings, it could, and it might be positive.
Please keep up updated about your findings :)

Thank you!
That's a very good observation. You are right. Over an episode, the sum of the processing time is a constant.
We haven't tried to remove it. Depending on your settings, it may or may not have an impact. For full episode rollout with gamma=1, it shouldn't have any impact, but for other settings, it could, and it might be positive.
Please keep up updated about your findings :)

Very clear explanation, thank you!


Storage array discharged in firefox

Error present in firefox 43.0.4.
My code:
var a = [];
a[2] = '2';
a[100] = '100'
console.log(a);

Normal result:

Save and load my array:
localforage.setItem('arr', a, function(result) {});

localforage.getItem('arr', function(err, value) {
	console.log(value);
});

Wrong result:

The chrome is no error:

This is probably because we store undefined as null, so that it works the same across browsers.
On the other hand, I think that this is an edge case and FF is doing the right thing to fill the empty slots.

It seems that Chrome only logs the empty slots of the array but actually treats the array like an object and does not add the extra "properties".

But it turns a big problem.
Firefox: 101 iteration
Chrome & Edje: 2 iteration
var a = [];
a[2] = '2';
a[100] = '100'
console.log(a);

localforage.setItem('arr', a, function(result) {});

localforage.getItem('arr', function(err, value) {
	var i = 0;
	value.forEach(function(item, i, arr) {
		i++;
		console.log(i);
	});
});

Whoa, what an interesting bug report. Thanks, might require some breaking changes to fix?

Remove the zero values of the array is not a problem. But then lost the original numbering of the items.

By the way in the indexDB of Chrome values in the array are stored too with zero values.

The issue is how sparse arrays are handled when they are stored / retrieved. JSON.stringify on a sparse array fills all the empty slots with null. Arguably, if there is a null value declared at an index point then that is what it contains (so Firefox is correct), not an index that should be ignored.
A StackOverflow style answer would be "don't use sparse arrays", but what should happen is that where Array.isArray(value) is true it should not use JSON.stringify to convert it for storage but iterate through the valid indices using .forEach to build up an object setting the key to the valid index.

You'll probably also discover that this is different in Safari as well, since in that case it's WebSQL, thus storing JSON, thus no way to distinguish between null/undefined. So since LocalForage is supposed to work the same in WebSQL and LocalStorage as well, I doubt this is something we can actually support.
FWIW in PouchDB we basically took the policy of: if you cannot JSON.parse(JSON.stringify(obj)) whatever you store and get back the same obj, then you need to change the object you are trying to store, or accept undefined/variable behavior. This turns out to be much easier than trying to polyfill every subtle quirk of IndexedDB object cloning across browsers.


Fix: Cards not visible in Dark Mode #713

Fixes: #713
The cards which weren't visible in dark mode are visible now.
Before :
In Light Mode -

In Dark Mode -

After fix:
In Light Mode -

In Dark Mode -

Feel free to ask for more changes if required

Thank you @AkashJana18 for flagging this.

@arielweinberger, can you please review?

Thanks for your contribution @AkashJana18


[Device Support Request] Tuya TRV TS0601 _TZE204_ogx8u5z6

Problem description
I got a new "Tuya" TRV from China, which isn’t supported by the current device handlers.

Solution description
Maybe this is just another clone of existing hardware.
I tried adding a custom quirk (a copy of TS0601_trv.py) in HA but didn’t succeed. Either the signature is incorrect, or my quirk isn’t being loaded.

Screenshots/Video
Screenshots/Video
[Paste/upload your media here]

Device signature
Device signature
{
  "node_descriptor": {
    "logical_type": 2,
    "complex_descriptor_available": 0,
    "user_descriptor_available": 0,
    "reserved": 0,
    "aps_flags": 0,
    "frequency_band": 8,
    "mac_capability_flags": 128,
    "manufacturer_code": 4417,
    "maximum_buffer_size": 66,
    "maximum_incoming_transfer_size": 66,
    "server_mask": 10752,
    "maximum_outgoing_transfer_size": 66,
    "descriptor_capability_field": 0
  },
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x0051",
      "input_clusters": [
        "0x0000",
        "0x0004",
        "0x0005",
        "0xef00"
      ],
      "output_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZE204_ogx8u5z6",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}

Diagnostic information
Diagnostic information
{
  "home_assistant": {
    "installation_type": "Home Assistant Supervised",
    "version": "2024.12.4",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.13.0",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.1.0-27-amd64",
    "supervisor": "2024.12.0",
    "host_os": "Debian GNU/Linux 12 (bookworm)",
    "docker_version": "27.3.1",
    "chassis": "desktop",
    "run_as_root": true
  },
  "custom_components": {
    "chore_helper": {
      "documentation": "https://github.com/bmcclure/ha-chore-helper",
      "version": "0.1.0",
      "requirements": [
        "python-dateutil>=2.8.2"
      ]
    },
    "frigate": {
      "documentation": "https://github.com/blakeblackshear/frigate",
      "version": "5.6.0",
      "requirements": [
        "hass-web-proxy-lib==0.0.7"
      ]
    },
    "tapo_control": {
      "documentation": "https://github.com/JurajNyiri/HomeAssistant-Tapo-Control",
      "version": "6.0.1",
      "requirements": [
        "pytapo==3.3.37"
      ]
    },
    "zha_toolkit": {
      "documentation": "https://github.com/mdeweerd/zha-toolkit",
      "version": "v1.1.19",
      "requirements": [
        "aiofiles>=0.4.0",
        "pytz>=2016.10"
      ]
    },
    "grocy": {
      "documentation": "https://github.com/custom-components/grocy",
      "version": "v4.11.1",
      "requirements": [
        "pygrocy==2.0.0"
      ]
    },
    "adaptive_lighting": {
      "documentation": "https://github.com/basnijholt/adaptive-lighting#readme",
      "version": "1.22.0",
      "requirements": [
        "ulid-transform"
      ]
    },
    "hacs": {
      "documentation": "https://hacs.xyz/docs/configuration/start",
      "version": "2.0.1",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "thermal_comfort": {
      "documentation": "https://github.com/dolezsa/thermal_comfort/blob/master/README.md",
      "version": "2.2.2",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "after_dependencies": [
      "hassio",
      "onboarding",
      "usb"
    ],
    "codeowners": [
      "dmulcahey",
      "adminiuga",
      "puddly",
      "TheJulianJES"
    ],
    "config_flow": true,
    "dependencies": [
      "file_upload"
    ],
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp",
      "zha",
      "universal_silabs_flasher"
    ],
    "requirements": [
      "universal-silabs-flasher==0.0.25",
      "zha==0.0.42"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*slzb-07*",
        "known_devices": [
          "smlight slzb-07"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*conbee*",
        "known_devices": [
          "Conbee III"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      },
      {
        "type": "_uzg-01._tcp.local.",
        "name": "uzg-01*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      },
      {
        "type": "_xzg._tcp.local.",
        "name": "xzg*"
      },
      {
        "type": "_czc._tcp.local.",
        "name": "czc*"
      },
      {
        "type": "_zigbee-coordinator._tcp.local.",
        "name": "*"
      }
    ],
    "is_built_in": true,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 0.0002004799898713827
    },
    "dacf7043c550c4f620cabeadc2ebcde0": {
      "wait_import_platforms": -0.06490792601834983,
      "wait_base_component": -0.00301753100939095,
      "config_entry_setup": 33.08466217003297
    }
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 13990,
    "manufacturer": "_TZE204_ogx8u5z6",
    "model": "TS0601",
    "name": "_TZE204_ogx8u5z6 TS0601",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "quirk_id": null,
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 72,
    "rssi": null,
    "last_seen": "2024-12-21T15:29:40",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": {
        "logical_type": 2,
        "complex_descriptor_available": 0,
        "user_descriptor_available": 0,
        "reserved": 0,
        "aps_flags": 0,
        "frequency_band": 8,
        "mac_capability_flags": 128,
        "manufacturer_code": 4417,
        "maximum_buffer_size": 66,
        "maximum_incoming_transfer_size": 66,
        "server_mask": 10752,
        "maximum_outgoing_transfer_size": 66,
        "descriptor_capability_field": 0
      },
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x0051",
          "input_clusters": [
            "0x0000",
            "0x0004",
            "0x0005",
            "0xef00"
          ],
          "output_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      },
      "manufacturer": "_TZE204_ogx8u5z6",
      "model": "TS0601"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "update.tze204_ogx8u5z6_ts0601_firmware",
        "name": "_TZE204_ogx8u5z6 TS0601"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "SMART_PLUG"
      }
    ],
    "user_given_name": null,
    "device_reg_id": "5d987653f47e64333ad265cc11be5232",
    "area_id": null,
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "SMART_PLUG",
          "id": 81
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0013": {
                "attribute": "ZCLAttributeDef(id=0x0013, name='alarm_mask', type=<flag 'AlarmMask'>, zcl_type=<DataTypeId.map8: 24>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0001": {
                "attribute": "ZCLAttributeDef(id=0x0001, name='app_version', type=<class 'zigpy.types.basic.uint8_t'>, zcl_type=<DataTypeId.uint8: 32>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": 74
              },
              "0xfffd": {
                "attribute": "ZCLAttributeDef(id=0xFFFD, name='cluster_revision', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0006": {
                "attribute": "ZCLAttributeDef(id=0x0006, name='date_code', type=<class 'zigpy.types.basic.LimitedCharString.<locals>.LimitedCharString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0012": {
                "attribute": "ZCLAttributeDef(id=0x0012, name='device_enabled', type=<enum 'Bool'>, zcl_type=<DataTypeId.bool_: 16>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0014": {
                "attribute": "ZCLAttributeDef(id=0x0014, name='disable_local_config', type=<flag 'DisableLocalConfig'>, zcl_type=<DataTypeId.map8: 24>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0008": {
                "attribute": "ZCLAttributeDef(id=0x0008, name='generic_device_class', type=<enum 'GenericDeviceClass'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0009": {
                "attribute": "ZCLAttributeDef(id=0x0009, name='generic_device_type', type=<enum 'GenericLightingDeviceType'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0003": {
                "attribute": "ZCLAttributeDef(id=0x0003, name='hw_version', type=<class 'zigpy.types.basic.uint8_t'>, zcl_type=<DataTypeId.uint8: 32>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0010": {
                "attribute": "ZCLAttributeDef(id=0x0010, name='location_desc', type=<class 'zigpy.types.basic.LimitedCharString.<locals>.LimitedCharString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0004": {
                "attribute": "ZCLAttributeDef(id=0x0004, name='manufacturer', type=<class 'zigpy.types.basic.LimitedCharString.<locals>.LimitedCharString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": "_TZE204_ogx8u5z6"
              },
              "0x000c": {
                "attribute": "ZCLAttributeDef(id=0x000C, name='manufacturer_version_details', type=<class 'zigpy.types.basic.CharacterString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0005": {
                "attribute": "ZCLAttributeDef(id=0x0005, name='model', type=<class 'zigpy.types.basic.LimitedCharString.<locals>.LimitedCharString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": "TS0601"
              },
              "0x0011": {
                "attribute": "ZCLAttributeDef(id=0x0011, name='physical_env', type=<enum 'PhysicalEnvironment'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0007": {
                "attribute": "ZCLAttributeDef(id=0x0007, name='power_source', type=<enum 'PowerSource'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x000a": {
                "attribute": "ZCLAttributeDef(id=0x000A, name='product_code', type=<class 'zigpy.types.basic.LVBytes'>, zcl_type=<DataTypeId.octstr: 65>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x000e": {
                "attribute": "ZCLAttributeDef(id=0x000E, name='product_label', type=<class 'zigpy.types.basic.CharacterString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x000b": {
                "attribute": "ZCLAttributeDef(id=0x000B, name='product_url', type=<class 'zigpy.types.basic.CharacterString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0xfffe": {
                "attribute": "ZCLAttributeDef(id=0xFFFE, name='reporting_status', type=<enum 'AttributeReportingStatus'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x000d": {
                "attribute": "ZCLAttributeDef(id=0x000D, name='serial_number', type=<class 'zigpy.types.basic.CharacterString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0002": {
                "attribute": "ZCLAttributeDef(id=0x0002, name='stack_version', type=<class 'zigpy.types.basic.uint8_t'>, zcl_type=<DataTypeId.uint8: 32>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x4000": {
                "attribute": "ZCLAttributeDef(id=0x4000, name='sw_build_id', type=<class 'zigpy.types.basic.CharacterString'>, zcl_type=<DataTypeId.string: 66>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0000": {
                "attribute": "ZCLAttributeDef(id=0x0000, name='zcl_version', type=<class 'zigpy.types.basic.uint8_t'>, zcl_type=<DataTypeId.uint8: 32>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              }
            },
            "unsupported_attributes": []
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {
              "0xfffd": {
                "attribute": "ZCLAttributeDef(id=0xFFFD, name='cluster_revision', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0000": {
                "attribute": "ZCLAttributeDef(id=0x0000, name='name_support', type=<flag 'NameSupport'>, zcl_type=<DataTypeId.map8: 24>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0xfffe": {
                "attribute": "ZCLAttributeDef(id=0xFFFE, name='reporting_status', type=<enum 'AttributeReportingStatus'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              }
            },
            "unsupported_attributes": []
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {
              "0xfffd": {
                "attribute": "ZCLAttributeDef(id=0xFFFD, name='cluster_revision', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0000": {
                "attribute": "ZCLAttributeDef(id=0x0000, name='count', type=<class 'zigpy.types.basic.uint8_t'>, zcl_type=<DataTypeId.uint8: 32>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0002": {
                "attribute": "ZCLAttributeDef(id=0x0002, name='current_group', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0001": {
                "attribute": "ZCLAttributeDef(id=0x0001, name='current_scene', type=<class 'zigpy.types.basic.uint8_t'>, zcl_type=<DataTypeId.uint8: 32>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0005": {
                "attribute": "ZCLAttributeDef(id=0x0005, name='last_configured_by', type=<class 'zigpy.types.named.EUI64'>, zcl_type=<DataTypeId.EUI64: 240>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0004": {
                "attribute": "ZCLAttributeDef(id=0x0004, name='name_support', type=<flag 'NameSupport'>, zcl_type=<DataTypeId.map8: 24>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0xfffe": {
                "attribute": "ZCLAttributeDef(id=0xFFFE, name='reporting_status', type=<enum 'AttributeReportingStatus'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0003": {
                "attribute": "ZCLAttributeDef(id=0x0003, name='scene_valid', type=<enum 'Bool'>, zcl_type=<DataTypeId.bool_: 16>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              }
            },
            "unsupported_attributes": []
          },
          "0xef00": {
            "endpoint_attribute": null,
            "attributes": {},
            "unsupported_attributes": []
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {
              "0xfffd": {
                "attribute": "ZCLAttributeDef(id=0xFFFD, name='cluster_revision', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0002": {
                "attribute": "ZCLAttributeDef(id=0x0002, name='current_file_version', type=<class 'zigpy.types.basic.uint32_t'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": 74
              },
              "0x0003": {
                "attribute": "ZCLAttributeDef(id=0x0003, name='current_zigbee_stack_version', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0004": {
                "attribute": "ZCLAttributeDef(id=0x0004, name='downloaded_file_version', type=<class 'zigpy.types.basic.uint32_t'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0005": {
                "attribute": "ZCLAttributeDef(id=0x0005, name='downloaded_zigbee_stack_version', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0001": {
                "attribute": "ZCLAttributeDef(id=0x0001, name='file_offset', type=<class 'zigpy.types.basic.uint32_t'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x000a": {
                "attribute": "ZCLAttributeDef(id=0x000A, name='image_stamp', type=<class 'zigpy.types.basic.uint32_t'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0008": {
                "attribute": "ZCLAttributeDef(id=0x0008, name='image_type_id', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0006": {
                "attribute": "ZCLAttributeDef(id=0x0006, name='image_upgrade_status', type=<enum 'ImageUpgradeStatus'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0007": {
                "attribute": "ZCLAttributeDef(id=0x0007, name='manufacturer_id', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0009": {
                "attribute": "ZCLAttributeDef(id=0x0009, name='minimum_block_req_delay', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0xfffe": {
                "attribute": "ZCLAttributeDef(id=0xFFFE, name='reporting_status', type=<enum 'AttributeReportingStatus'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x000b": {
                "attribute": "ZCLAttributeDef(id=0x000B, name='upgrade_activation_policy', type=<enum 'UpgradeActivationPolicy'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0000": {
                "attribute": "ZCLAttributeDef(id=0x0000, name='upgrade_server_id', type=<class 'zigpy.types.named.EUI64'>, zcl_type=<DataTypeId.EUI64: 240>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x000c": {
                "attribute": "ZCLAttributeDef(id=0x000C, name='upgrade_timeout_policy', type=<enum 'UpgradeTimeoutPolicy'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              }
            },
            "unsupported_attributes": []
          },
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {
              "0xfffd": {
                "attribute": "ZCLAttributeDef(id=0xFFFD, name='cluster_revision', type=<class 'zigpy.types.basic.uint16_t'>, zcl_type=<DataTypeId.uint16: 33>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0004": {
                "attribute": "ZCLAttributeDef(id=0x0004, name='dst_end', type=<class 'zigpy.types.basic.uint32_t'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0005": {
                "attribute": "ZCLAttributeDef(id=0x0005, name='dst_shift', type=<class 'zigpy.types.basic.int32s'>, zcl_type=<DataTypeId.int32: 43>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0003": {
                "attribute": "ZCLAttributeDef(id=0x0003, name='dst_start', type=<class 'zigpy.types.basic.uint32_t'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0008": {
                "attribute": "ZCLAttributeDef(id=0x0008, name='last_set_time', type=<class 'zigpy.types.named.UTCTime'>, zcl_type=<DataTypeId.UTC: 226>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0007": {
                "attribute": "ZCLAttributeDef(id=0x0007, name='local_time', type=<class 'zigpy.types.named.LocalTime'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0xfffe": {
                "attribute": "ZCLAttributeDef(id=0xFFFE, name='reporting_status', type=<enum 'AttributeReportingStatus'>, zcl_type=<DataTypeId.enum8: 48>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0006": {
                "attribute": "ZCLAttributeDef(id=0x0006, name='standard_time', type=<class 'zigpy.types.named.StandardTime'>, zcl_type=<DataTypeId.uint32: 35>, access=<ZCLAttributeAccess.Read: 1>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0000": {
                "attribute": "ZCLAttributeDef(id=0x0000, name='time', type=<class 'zigpy.types.named.UTCTime'>, zcl_type=<DataTypeId.UTC: 226>, access=<ZCLAttributeAccess.Read|Write_Optional: 5>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0001": {
                "attribute": "ZCLAttributeDef(id=0x0001, name='time_status', type=<flag 'TimeStatus'>, zcl_type=<DataTypeId.map8: 24>, access=<ZCLAttributeAccess.Read|Write_Optional: 5>, mandatory=True, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0002": {
                "attribute": "ZCLAttributeDef(id=0x0002, name='time_zone', type=<class 'zigpy.types.basic.int32s'>, zcl_type=<DataTypeId.int32: 43>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              },
              "0x0009": {
                "attribute": "ZCLAttributeDef(id=0x0009, name='valid_until_time', type=<class 'zigpy.types.named.UTCTime'>, zcl_type=<DataTypeId.UTC: 226>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=False, is_manufacturer_specific=False)",
                "value": null
              }
            },
            "unsupported_attributes": []
          }
        }
      }
    }
  }
}

Logs
Logs
[Paste the logs here]

Custom quirk
Custom quirk
[Paste your custom quirk here]

Additional information
No response

Please try this custom quirk
https://github.com/prairiesnpr/zha-device-handlers/blob/add-Tuya-_TZE204_ogx8u5z6/zhaquirks/tuya/ts0601_trv_v2.py

Please try this custom quirk
https://github.com/prairiesnpr/zha-device-handlers/blob/add-Tuya-_TZE204_ogx8u5z6/zhaquirks/tuya/ts0601_trv_v2.py

Tested (I have the same device, seems like a new version of common zigbee thermostats).
Looks much better, after re-adding the device thermostat entity appeared.
There seems to be an issue with HVAC mode. When on "heat", HA reacts to the manually set target temp on the device (read).
Writing heating target values has no result.
"Failed to perform the action climate/set_hvac_mode. expected HVACMode or one of 'off', 'heat', 'cool', 'heat_cool', 'auto', 'dry', 'fan_only' for dictionary value @ data['hvac_mode']." occurs when pressing the physical device button. Ith
I think mode "auto" is not working correctly.
local_temperature_calibration is missing, which is quite important and exists at least from the readings.
Z2M has the follwing (reported working) code (maybe it helps?)
https://github.com/Koenkk/zigbee2mqtt/issues/25199#issuecomment-2552109312

Hello prairiesnpr and T3pco,
I can confirm the quirk (signature) matches, but the heating mode does not respond; however, it does reflect the set temperature on the device.
Child lock works! :D
I'm not entirely sure, but I think the "HVAC action" is also incorrect—it shows "idle" when heating is active and vice versa.

Anyway, I’d like to express my heartfelt thanks for all your efforts!

I inverted the running state and corrected an error in the system mode. Please test the new version. On the set point failure, please put ZHA in debug logging and post the logs when attempting to change the set point.

local_temperature_calibration is missing, which is quite important and exists at least from the readings.

This is exposed in the quirk. Does the climate entity have UI elements for it normally? We can expose a number; I just assumed the HA climate entity would take care of it. Does it at least show as an attribute?

I inverted the running state and corrected an error in the system mode. Please test the new version. On the set point failure, please put ZHA in debug logging and post the logs when attempting to change the set point.

debug_set_temp_heat_mode.txt
debug_switching_mode_with_button.txt
Thanks for your effort :-)
HVAC action value now seems to be correct. When heating symbol is "on" at the display, it shows heating in HA. If it's not heating (set temp below current temp) status is "off".
HVAC mode is definitly wrong with the latest version of the quirk.
Freshly initialized device has HVAC status "Off". When pressing the device button to go to scheduled mode (clock icon) - there is an error. This should be the HVAC "auto" mode I guess.
When pressing the button again to go to normal heating mode - HA switches to HVAC mode "Off".
So "Off" should be "Heat" hvac mode.
And Auto is not working. Thermostat entity shows text "Heat/Cool".
Debug logs attached.

local_temperature_calibration is missing, which is quite important and exists at least from the readings.

This is exposed in the quirk. Does the climate entity have UI elements for it normally? We can expose a number; I just assumed the HA climate entity would take care of it. Does it at least show as an attribute?

No UI element for the climate entity. It should change the current temperature value in the climate entity.
It's the "local_temperature_calibration" attribute. I can read and set values here, but they seem to have no effect.

I made a couple changes, the mode was absolutely wrong, cleaned those up. Also, updated local_temperature_calibration to match the z2m logic used in localTempCalibration2.

I made a couple changes, the mode was absolutely wrong, cleaned those up. Also, updated local_temperature_calibration to match the z2m logic used in localTempCalibration2.

sorry for late reply. tested it. sad to say but it still does not work. Readded multiple devices to verifiy that.
Setting temperatures in heat hvac mode has no action on the device itself. Value reading (when using the knob) works like in the beginning.
Auto mode still not existent (and error shows like mentioned above) - but thats not relevant.
local_temperature_calibration is a bit weird. When I adjusted the quirk file and readded the device, I saw a slider to adjust under "Configuration". After HA restart and re-adding again, local_temperature_calibration do not appear at all. I could not make it appearing again.
Hope that helps. Thank you again :)

I'm a little stumped on setting the temp, I see the traffic in the logs, correct DP, or it matches z2m anyways and correct format, thought maybe it was due to the sytem mode mismatch. At this point about all I could do would be to identify the raw incoming packet for each system mode and build a quick test to verify the logic.
On the local calibration, no idea how you sea a slider, we aren't exposing one anywhere, I may go ahead and expose one for now so we can see if it's at least working.

I'm a little stumped on setting the temp, I see the traffic in the logs, correct DP, or it matches z2m anyways and correct format, thought maybe it was due to the sytem mode mismatch. At this point about all I could do would be to identify the raw incoming packet for each system mode and build a quick test to verify the logic.
On the local calibration, no idea how you see a slider, we aren't exposing one anywhere, I may go ahead and expose one for now so we can see if it's at least working.

Thanks for your reply. I experimented with some values - I'm not sure if I screwed up my setup.
@moedude Can you please verify the last version? To double check as it does not behave for me like it should.
In parallel I try to reset my environment.

I went ahead and added some tests based on your previous logs for system_mode, just running through the possible values and ensuring they convert to the correct ZCL values. Everything lines up with the z2m converter.

I went ahead and added some tests based on your previous logs for system_mode, just running through the possible values and ensuring they convert to the correct ZCL values. Everything lines up with the z2m converter.

Tested a bit more now. Can eleminate local setup issues now.
Main issue is, that temperature change in HA entitiy do not lead to action on the device.
occupied_heating_setpoint is available and readable with currently set temperature on the device. You can even set a value (like 2800 for 28 degree). This value is then persisted and readable from the device.
When turning the knob, the set temp is shown in BA within seconds.
Still, the device do not adjust the actual temperature. Like its ignoring it. System mode is "heat".
Setting other values (like child lock) works immediately.
Idk whats causing this.

I'll double check what z2m is doing, but we may need to get an actual capture of the traffic from a Tuya hub to the device and then from ZHA to compare.

After reviewing, I think we are stuck, I don't see how we are doing anything different then what z2m is doing.
The only thing I can suggest and I'm sure you've already tried is to completly remove the device and then add it back.
It would also be interesting to know if @moedude is having the same results.
Beyond that, we need to capture the trsffic when the command is sent from a Tuya hub or z2m to when it's sent by ZHA and see what the difference is.

After reviewing, I think we are stuck, I don't see how we are doing anything different then what z2m is doing.
The only thing I can suggest and I'm sure you've already tried is to completly remove the device and then add it back.
It would also be interesting to know if @moedude is having the same results.
Beyond that, we need to capture the traffic when the command is sent from a Tuya hub or z2m to when it's sent by ZHA and see what the difference is.

Thanks for double checking. I asked for assistance in the z2m issue - maybe we can solve this together.
Re-adding etc. I did several times.
I agree we need more testers here :-)

Thinking on this more, I noticed that the z2m converter marks the device as configure: tuya.configureMagicPacket Which is defined here, https://github.com/Koenkk/zigbee-herdsman-converters/blob/8f6e15f1c5f6464766982e13281cb0d3c53ae89d/src/lib/tuya.ts#L450
We have similar logic in https://github.com/zigpy/zha-device-handlers/blob/812441104427e74e13a8168ea916597f87534d72/zhaquirks/tuya/init.py#L532
My thought is, that this device requires the enchanted packet to be sent on join to allow occupied_heating_setpoint to be set and without it, it's ignoring the command. If it indeed works in z2m, that's the only difference I see. If so, we will need to determine a way to add that same logic in a v2 quirk. Since v2 quirks use CustomDeviceV2 https://github.com/zigpy/zigpy/blob/0dc50756fb44f7438c37709dc35cf29e597c3648/zigpy/quirks/v2/init.py#L65
I'm not certain how best to add the enchantment, have to think on it a bit.

Ok, I reworked to add the enchantment on initial join. Please try the new quirk and let me know if that changes anything. You will need to repair the device.

Ok, I reworked to add the enchantment on initial join. Please try the new quirk and let me know if that changes anything. You will need to remove and rejoin the device.

Ah thats what I also found but did not expect it to be a potential thing as the device pairing works fine.
Lets see tomorrow when I can do the next testing session.
Thanks for your motivation in this :-)

Thanks for your motivation in this :-)

All good, I was trying to get some high quality Tuya examples for each device type in the repo and made the mistake of thinking yours would be easy. Now I'm just invested.


Wrong margin before the Weather&News widget (only on icon + text mode)

Describe the bug
There is some wrong space between Audioband and the Windows 10 Weather&News widget, but only when I enable icon+text mode, so i'm sure that the problem isn't related to the layout of the labels and buttons.
I have already checked the answer given in the faq but it doesn't help.
Checked common issues

[x] Unblocked the files. (Windows blocks files when installing / upgrading for some people)

Screenshots

Version Info

Windows 10 21H2
AudioBand v1.0.2

Please note that this project is pretty much abandoned, but we do have an Active Fork

Please note that this project is pretty much abandoned, but we do have an Active Fork

I don't know why but opening an issue on the fork brought me to the original repo

That is pretty weird, I see you are using my latest version too
Ill take a look and see if I can find a solution to this problem

@francescomosca TL;DR: I cannot fix this issue.
I took a look at it and there is nothing I can do to fix it, the reason they have it so big is because that its their predefined maximum size of their deskband.

The amount of "white"space is less for me because I have more text, its an issue from Windows themselves.
You can file this to Windows but I doubt they will ever adjust that (seeing as resizing a deskband is a bit of a pain to implement, and Im thankful dsafa already did that so I didnt have to)


Hook the bot up to the official server

[x] Add bot to server.
[x] Update the channel id for the bot's log.
[x] Update the channel in which verifying occurs in.

Everything updated and working (as of right now).


create scripting to automatically capture GitHub repo stats

Inspired by this work @jjasghar has done for collecting stats in the taxonomy repo, I note that it would be great to automagically capture relevant GitHub stats for the entire InstructLab project.
Red Hat OSPO does this work via Project Aspen using internal tooling, but if we had some cool magic way to pull these stats using non-internal tooling that would be groovy.
Adding this to the never ending things we need to do real soon(TM) list.

@mingxzhao this does not look as simple as adding links, but I could look into it with some python scripting :)


[README] Fix 'MapperExtenstion' typo

close #30

Codecov Report
Patch and project coverage have no change.

Comparison is base (7ccdf82) 95.00% compared to head (6e747cc) 95.00%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #31   +/-   ##
=======================================
  Coverage   95.00%   95.00%
=======================================
  Files           5        5
  Lines          80       80
  Branches        6        6
=======================================
  Hits           76       76
  Misses          4        4

Flag
Coverage Δ

unittests
95.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Is it possible to install in root environment once and then use pynvim in every virtualenv without install again?

Currently I need to install pynvim every time I create a new virtualenv, is it possible to install it in root environment once and then I can use pynvim in every virtualenv?

Here's the solution found in :help g:python3_host_prog
If you plan to use per-project virtualenvs often, you should assign one
virtualenv for Neovim and hard-code the interpreter path via
|g:python3_host_prog| so that the "pynvim" package is not required
for each virtualenv.
Example using pyenv:
    pyenv install 3.4.4
    pyenv virtualenv 3.4.4 py3nvim
    pyenv activate py3nvim
    python3 -m pip install pynvim
    pyenv which python  # Note the path

The last command reports the interpreter path, add it to your init.vim:
    let g:python3_host_prog = '/path/to/py3nvim/bin/python'

See also: https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim


Syntax for asset instructions is invalid in code source

I'm submitting a

[x] Bug report.

Bug report
Syntax for asset instructions is invalid in code source
What is the current behavior?
The project can not be executed
What is the expected behavior?
The project can be executed
Tell us the steps to reproduce the bug, and if possible share a minimal demo of the problem.
Run the project
An  error occurs at line #77 of Settings.gd file

Thanks but I have to archive this repo, it's not meant to be used. The demo remake already got merged in the official demos.


Crashes the server

Immediately crashes the server when using "#as"
Crash Archive:
https://crash.pmmp.io/view/9855739

I think that's a Windows path related issue I fixed here (0662310), however I forgot to create a release after fixing it. There's a new version available now including the fix. Please try the latest version, PHAR available from here: https://static.surva.net/osplugins/dl/AllSigns2.0.7.phar


Package missing dependancy

Hi,
Thanks for providing the wonderful tool.
There is an oversight in the setuptool dependency list. The package requires cython but it is not listed as part of the automated intallation process.
Thanks,
Hongyi

Hello @xhongyi  and thanks for the heads up.
I'll add it to the next version


Add typings for typescript support

I have added typings for Typescript support

Coverage remained the same at 91.837% when pulling 4ab7fe23880a8b003deab643827fe96a4d108197 on daniyel:add_typings into 7495c5cf782f25a9045f70e519f8ec6cc82b6206 on trendmicro-frontend:master.

Coverage remained the same at 91.837% when pulling 4ab7fe23880a8b003deab643827fe96a4d108197 on daniyel:add_typings into 7495c5cf782f25a9045f70e519f8ec6cc82b6206 on trendmicro-frontend:master.

@dbmanny18 Can you please merge this ?

@dbmanny18 Can you please merge this ?

@dbmanny18 Can you please merge this ?

I'm not a maintainer of this project unfortunately but @daniyel did a good job adding ts typings


Everytime that the plugin updates, I lose my configs

Scope
I use statblocks for a diferent system of RPG, I changed the layout to match my custom monsters. But everytime that the plugin updates I have to get my layout backup, import, then go to my creatures, save one by one again. I don't know if its a config or if the update overwrite everthing.
Discovery
Maintain user custom settings, the layout, his custom monsters
Validate
I tested in obsidian, and I use Microsoft One Drive Cloud to store my vault backup, maybe this can influence in something.
Thanks in advance

This only happens when you update the plugin? It doesn't happen if you close and reopen obsidian?

Yes, because when i went to configurations, community plugins menu, and clicked in check for updates and updated all plugins (fantasy statblock included), the problem of happened
It doesn't happen when I close and reopen obsidian, tried this right now.

@valentine195 It is a config from obsidian or the plugin?

The plugin, under the “Advanced” section.

@valentine195 under "Advenced Settings"  section there is the option: "Try to Save Data Automatically" that is cheked. And next is layout, import homebrew creatures and Bestiary. I didn't find Atomic Write option.

That is the setting I was talking about. Can you please try disabling it? I think that might be what is causing it.

Okay, I unchecked this option.


Add init() method to all classes instantiated by an service manager

Both Zend\Form\Form and Zend\InputFilter\InputFilter provide an init() method to customize a form or an input filter. These init() methods are called by the relevant service managers named FormElementManager and InputFilterManager.
I would like to suggest to standardized this and add init() method to other classes which are instantiated by a service manager, e.g. filters, validators, view helpers, controller plugins, hydrators.
What do others think about this suggestion?

See this blog article: https://mwop.net/blog/2012-07-30-the-new-init.html

Also, it's really no longer relevant now that we have delegator factories, as you can then perform your post-instantiation-but-still-initialization operations on a per-instance basis without needing to change the default factories.

Thanks for clarification. I wasn't aware of that. But for consistency wouldn't it be better for ZF3 to standardize this and remove the init() methods from both forms and input filters as well?
I am asking this because many ZF2 beginners ask me why there is init() methods only in forms and input filters...


Add option to separate non-translatable strings

This pull request adds feature requested in #22 to group strings by "translatable" attribute.

When selected all strings that have "translatable" attribute set to "false" will be placed after all of the other strings like here:

👀  Awesome! I will confirm soon.


Cache more things in the nix store?

Hey!
I am using this shell.nix file: https://github.com/vincentbernat/vincent.bernat.ch/blob/dd48c1d20523d669ff43b300dcac907a40cc431c/shell.nix.
As the input is fixed, I would expect that upon first build, entering nix shell should be fast. But it is not:
 19:20 ❱ date; nix-shell --pure --command true 2> /dev/null; date
Sun Dec  5 19:20:21 CET 2021
Sun Dec  5 19:20:26 CET 2021

Compare with:
 19:20 ❱ date; nix-shell -p hello --command true 2> /dev/null; date
Sun Dec  5 19:20:46 CET 2021
Sun Dec  5 19:20:46 CET 2021

If I remove the calls to buildPythonPackage, I still get a slow evaluation:
 19:22 ❱ date; nix-shell --pure --command true 2> /dev/null; date
Sun Dec  5 19:22:05 CET 2021
Sun Dec  5 19:22:08 CET 2021

Is there something to do to get better performances?

In fact, this is something that is solved by using flakes.


Allow setting unsorted fan speeds

With certain clocks, voltages and power levels on a Vega 64, sometimes the VRAM temperature is falsely reported as 1 °C, in some scenarios even for prolonged periods of time.
I use the VRAM temperature as the value to regulate the fan speed as in most of (if not all) the time the VRAM is up to 10 °C hotter than the Core.
The temperature being reported as 1 °C means that the fans will stay turned off even if the VRAM (and maybe the core) are heating up to death, causing instability issues. To combat this, I'd like to set the fan speed to 100 % when temp <= 2 °C just to be on the safe side.
It would be nice to be able to do something like this:
temp_input = "temp3_input"
log_level = "Error"

[[speed_matrix]]
temp = 0.0
speed = 100.0

[[speed_matrix]]
temp = 2.0
speed = 100.0

[[speed_matrix]]
temp = 3.0
speed = 0.0

# and all the rest

However, this causes following error:
ERROR amdfand            > Fan speed 1.0 for config entry 2 is lower than previous value 100.0. Entries must be sorted
ERROR amdgpu_config::fan > Curve fan speeds should be monotonically increasing, found 100 then 1

Error comes from https://github.com/Eraden/amdgpud/blob/main/crates/amdgpu-config/src/fan.rs#L300
Or, if you want to add new configs:
temp_input = "temp3_input"
log_level = "Error"
turn_off_below = 3.0
force_full_speed_at = [1.0, 80.0]

# and all the rest

Hi, can you provide some reasoning for this change? With higher and higher temperature fan speed should increase to provide efficient cooling. Dropping speed can only lead to hardware damage


Portfolio diversification Ising translator

Summary
Converts portfolio diversification instances into Pauli list
For details, please see the tutorial currently in Stefan's repo
and eventually at:
https://github.com/Qiskit/qiskit-tutorials/finance/optimization
Details and comments

Ad 1: I have reverted the changes to globals and tested with the current upstream of Terra and Aqua.
Ad 2: I have removed the folder structure.
Ad 3: Currently, these are simple classes (i.e. non pluggable). The schema logic is not used, but should be useful eventually. The idea is that you will have many providers, each offering some combination of markets, granularity (daily, etc), and price. Any user will have tokens with a subset thereof. Some "master routine" should pick for you the cheapest/preferred vendor at a given market-granularity combination. There will be more "configuration" to consider, yet, with adjustments ("what happens when a stock is split, discontinued, etc".)
Ad 4: I have removed the readmes and added some docstrings and improved error handling. We will have three tutorials in the tutorials repo. For a current draft of the data loading tutorial, see:
https://github.com/jmarecek/qiskit-tutorials/blob/master/qiskit/finance/data_providers/time_series.ipynb


feat(server):swagger support auth for standardAuth mode

…x arthas odd test

Purpose of the PR
swagger support auth for standardAuth mode and try to fix arthas odd test

subtask if #2088

Main Changes

add swagger auth annotation.
set openapi.json to whitelist.
try to simplify arthas test,try to fix the odd test failed case.

Verifying these changes
no auth model,we can try it out in swagger:

auth model,we cant try it out in swagger:

after set auth info,success:

[ ] Trivial rework / code cleanup without any test coverage. (No Need)
[ ] Already covered by existing tests, such as (please modify tests here).
[ ] Need tests and can be verified as follows:

xxx

Does this PR potentially affect the following parts?

[ ]  Nope
[ ]  Dependencies (add/update license info)
[ ]  Modify configurations
[ ]  The public API
[ ]  Other affects (typed here)

Documentation Status

[ ]  Doc - TODO
[ ]  Doc - Done
[ ]  Doc - No Need

One more thing, we need update apiversion for metrics & arthas API here:

One more thing, we need update apiversion for metrics & arthas API here: (use 0.70 for them maybe?)
Also search 0.69 in all files and also change them to 0.70

but seems we dont have related issue to direct it, can we dont use this format?
like [0.69] Issue-1748: Support Cypher query RESTful API

One more thing, we need update apiversion for metrics & arthas API here: (use 0.70 for them maybe?)
Also search 0.69 in all files and also change them to 0.70

but seems we dont have related issue to direct it, can we dont use this format?
like [0.69] Issue-1748: Support Cypher query RESTful API

issue＝ pr （number）here，and normally we need a issue before submit a pr
but here we could just use pr number as the issue number

please also supplement apiversion for https://github.com/apache/incubator-hugegraph/pull/2242

[0.69] Issue-1748: Support Cypher query RESTful API

seems [0.70] PR-999:Support Cypher query RESTful API OR ISSUE-999:Support Cypher query RESTful API,which 999 means pr number. seems the first is better

[0.69] Issue-1748: Support Cypher query RESTful API

seems [0.70] PR-999:Support Cypher query RESTful API OR ISSUE-999:Support Cypher query RESTful API,which 999 means pr number. seems the first is better

both fine to me（#number is also acceptable but not sure others opinion），u could try modify it


Grammatical correction

I made a small grammatical correction, which will improve the quality of your readme file.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for your review!

Thanks for your review!

Sure!  How would you like to proceed?  Given that we are swamped with grammatical fixes, many of which conflict with each other, I see these 2 routes:

Add a comment with a definitive recommendation when to use "that" and when to avoid it, as per my previous comment.
Decide that we should revisit this issue later.
(There may be other routes, do feel free to explain some third route and then pick it!)

Thanks!

Closing due to inability to re-establish contact.  Please feel free to re-open when ready to proceed on above comments!


Add combined eyelid parameter (for parameter opimization)

Idea: add combined eyelid parameters (left right and combined) that includes widening openness and squeezing...
EG: 0-0.2 = widen... 0.2-0.8=blink... 0.8-1.0 = squeeze...
Reason: To allow for more room for extra parameters with lip tracking.

Combined parameters already exist, not sure if this is what you're suggesting

I was saying combine them even more... from what I've seen you cannot widen without your eyes being fully open... and you cannot squeeze without your eyes being fully closed...
therefore... have a combined parameter that combines them even more (mostly because you can have more than 2 animations on a 2d blend tree)

Ooo! Awesome idea!! I'll get to work on that very soon

Just committed a working version with the merging. Unfortunately, the squeeze data is often inaccurate and I'm yet to find anyone who actually uses it so I left it out of the merge. The new parameters are called "LeftEyeLidExpanded" and "RightEyeLidExpanded". Both scale blinking to 0-0.8 and widening to 0.8-1.

Added in pre-release. Will be in next full release.
https://github.com/benaclejames/VRCEyeTracking/releases/tag/v2.0.0a


[Consumption] Polish the API and support partial resource

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.Consumption


Translate text displayed on screen

Description of the new feature / enhancement
通过截屏、截图选择显示器显示内容进行翻译，翻译后、翻译前的结果均可以进行复制
Scenario when this would be used?
外文页面，外文图片
Supporting information
No response

Select the content displayed on the monitor for translation by taking screenshots or screenshots. The results after translation and before translation can be copied.
Foreign language pages, foreign language pictures

/dup #18014