Alexa is always Listening status.

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:

Hi,
I use the other wake word model(the keyword is Hi,xiaowei) in Sensory. When i say Hi,xiaowei then the avs is always listening status until request timeout.
What is the expected behavior?

I think program should be receive stop capture directive
What behavior are you observing?

Provide the steps to reproduce the issue, if applicable:

Tell us about your environment:

What version of the AVS Device SDK are you using?
  <1.7.1>

Tell us what hardware you're using:

[ ] Desktop / Laptop
[ ] Raspberry Pi
[x] Other - tell us more:

Tell us about your OS (Type & version):

[x] Linux
[ ] MacOS
[ ] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Hi @sugrsugr , only 'Alexa' wake word is supported.
Please refer to SpeechRecognizer Interface  and Requirements for Cloud-Based Wake Word Verification

@sugrsugr , can you also post your DEBUG9 logs so we can check further?

018-05-29 03:28:28.289 [  1] I sdkVersion: 1.7.1
2018-05-29 03:28:28.585 [  3] 0 ConfigurationNode:initializeSuccess
2018-05-29 03:28:28.593 [  3] 9 MediaPlayer:createCalled
2018-05-29 03:28:28.594 [  3] 9 MediaPlayer:noOutputConversion
2018-05-29 03:28:28.595 [  3] 9 MediaPlayer:createCalled
2018-05-29 03:28:28.595 [  3] 9 MediaPlayer:noOutputConversion
2018-05-29 03:28:28.596 [  3] 9 MediaPlayer:createCalled
2018-05-29 03:28:28.597 [  3] 9 MediaPlayer:noOutputConversion
2018-05-29 03:28:28.597 [  3] 9 MediaPlayer:createCalled
2018-05-29 03:28:28.597 [  3] 9 MediaPlayer:noOutputConversion
2018-05-29 03:28:28.598 [  3] 9 MediaPlayer:createCalled
2018-05-29 03:28:28.598 [  3] 9 MediaPlayer:noOutputConversion
2018-05-29 03:28:28.598 [  3] 9 MediaPlayer:createCalled
2018-05-29 03:28:28.598 [  3] 9 MediaPlayer:noOutputConversion
2018-05-29 03:28:28.599 [  3] 5 SQLiteBluetoothStorage:create
2018-05-29 03:28:28.599 [  3] E SQLiteBluetoothStorage:create:reason=loadConfigFailed,key=bluetooth
2018-05-29 03:28:28.599 [  3] 5 CBLAuthDelegate:create
2018-05-29 03:28:28.600 [  3] 5 CBLAuthDelegate:CBLAuthDelegate
2018-05-29 03:28:28.600 [  3] 5 CBLAuthDelegate:init
2018-05-29 03:28:28.600 [  3] 5 CBLAuthDelegateConfiguration:create
2018-05-29 03:28:28.600 [  3] 5 CBLAuthDelegateConfiguration:init
2018-05-29 03:28:28.600 [  3] 5 CBLAuthDelegateConfiguration:initScopeData
2018-05-29 03:28:28.600 [  3] 9 CBLAuthDelegateConfiguration:initScopeDataSucceeded
2018-05-29 03:28:28.600 [  3] 5 SQLiteCBLAuthDelegateStorage:open
2018-05-29 03:28:28.796 [  4] 5 CBLAuthDelegate:handleAuthorizationFlow
2018-05-29 03:28:28.796 [  4] 5 CBLAuthDelegate:handleStarting
2018-05-29 03:28:28.796 [  4] 5 SQLiteCBLAuthDelegateStorage:getRefreshToken
2018-05-29 03:28:28.796 [  3] 0 CapabilitiesDelegate:CapabilitiesDelegateInit:reason=missingCapabilitiesDelegateConfigurationValue,key=capabilitiesDelegate
2018-05-29 03:28:28.796 [  4] 5 CBLAuthDelegate:handleRefreshingToken
2018-05-29 03:28:28.796 [  4] 5 CBLAuthDelegate:requestRefresh
2018-05-29 03:28:28.930 [  3] 5 CBLAuthDelegate:addAuthObserver:observer=0x7fe9d8062458
2018-05-29 03:28:28.930 [  3] 5 CBLAuthDelegate:addAuthObserver:observer=0x7fe9d804ba28
2018-05-29 03:28:28.930 [  3] 5 CapabilitiesDelegate:addCapabilitiesObserver:observer=0x7fe9d804ba30
2018-05-29 03:28:28.932 [  3] 5 InternetConnectionMonitor:startMonitoring
2018-05-29 03:28:28.933 [  5] 5 InternetConnectionMonitor:testConnection
############################################
InternetConnection  STATE: 0
############################################
2018-05-29 03:28:28.939 [  3] 9 MediaPlayer:setObserverCalled
2018-05-29 03:28:28.939 [  2] 0 MediaPlayer:handleSetObserverCalled
2018-05-29 03:28:28.939 [  3] 9 SpeechSynthesizer:addObserver:observer=0x7fe9d8064ad8
2018-05-29 03:28:28.939 [  3] 9 PlaybackRouter:create::called
2018-05-29 03:28:28.940 [  3] 9 MediaPlayer:setObserverCalled
2018-05-29 03:28:28.940 [  2] 0 MediaPlayer:handleSetObserverCalled
2018-05-29 03:28:28.940 [  3] 9 MediaPlayer:setObserverCalled
2018-05-29 03:28:28.940 [  2] 0 MediaPlayer:handleSetObserverCalled
2018-05-29 03:28:28.941 [  3] 9 AlertScheduler:setTimerForNextAlertLocked
2018-05-29 03:28:28.941 [  3] 9 AlertScheduler:executeScheduleNextAlertForRendering::no work to do.
2018-05-29 03:28:28.942 [  6] 1 AlertsCapabilityAgent:executeOnConnectionStatusChanged:status=DISCONNECTED,reason=ACL_CLIENT_REQUEST
2018-05-29 03:28:28.942 [  3] 5 NotificationsRenderer:create
2018-05-29 03:28:28.942 [  3] 9 MediaPlayer:setObserverCalled
2018-05-29 03:28:28.942 [  2] 0 MediaPlayer:handleSetObserverCalled
2018-05-29 03:28:28.942 [  3] 5 NotificationsCapabilityAgent:init
2018-05-29 03:28:28.942 [  3] 5 NotificationsRenderer:addObserver
2018-05-29 03:28:28.942 [  7] 5 NotificationsCapabilityAgent:executeInit
2018-05-29 03:28:28.943 [  7] 5 NotificationsCapabilityAgent:notifyObservers:indicatorState=0
2018-05-29 03:28:28.943 [  7] 5 NotificationsCapabilityAgent:executeProvideState:sendToken=false,stateRequestToken=0
2018-05-29 03:28:28.943 [  7] 9 ContextManager:updateStateLocked:action=updatedState,namespace=Notifications,name=IndicatorState
2018-05-29 03:28:28.943 [  3] 9 MediaPlayer:getSpeakerTypeCalled
2018-05-29 03:28:28.943 [  3] 9 MediaPlayer:getSpeakerTypeCalled
2018-05-29 03:28:28.943 [  3] 9 MediaPlayer:getSpeakerTypeCalled
2018-05-29 03:28:28.943 [  3] 9 MediaPlayer:getSpeakerTypeCalled
2018-05-29 03:28:28.943 [  3] 9 MediaPlayer:getSpeakerTypeCalled
2018-05-29 03:28:28.943 [  3] 9 MediaPlayer:getSpeakerTypeCalled
2018-05-29 03:28:28.943 [  3] 0 SpeakerManager:mapCreated:numAvsSynced=5,numLocal=1
2018-05-29 03:28:28.944 [  3] 9 MediaPlayer:getSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  2] 9 MediaPlayer:handleGetSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  3] 9 MediaPlayer:getSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  2] 9 MediaPlayer:handleGetSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  3] 9 MediaPlayer:getSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  2] 9 MediaPlayer:handleGetSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  3] 9 MediaPlayer:getSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  2] 9 MediaPlayer:handleGetSpeakerSettingsCalled
2018-05-29 03:28:28.944 [  3] 9 MediaPlayer:getSpeakerSettingsCalled
2018-05-29 03:28:28.946 [  2] 9 MediaPlayer:handleGetSpeakerSettingsCalled
2018-05-29 03:28:28.947 [  3] 9 SpeakerManager:validateSpeakerSettingsConsistencyResult:consistent=true
2018-05-29 03:28:28.947 [  3] 9 SpeakerManager:validateSpeakerSettings:volume=100,mute=false
2018-05-29 03:28:28.947 [  3] 9 SpeakerManager:updateContextManagerCalled:speakerType=AVS_SYNCED
2018-05-29 03:28:28.947 [  3] 0 ExternalMediaPlayer:createAdapters
2018-05-29 03:28:28.948 [  3] 1 AudioPlayer:addObserver
2018-05-29 03:28:28.948 [  8] 5 TemplateRuntime:onDialogUXStateChanged:state=IDLE
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=SpeechSynthesizer,name=Speak,handler=0x7fe9d80add40,policy=BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=AudioPlayer,name=ClearQueue,handler=0x7fe9d80af3c0,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=AudioPlayer,name=Stop,handler=0x7fe9d80af3c0,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=AudioPlayer,name=Play,handler=0x7fe9d80af3c0,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.FavoritesController,name=Unfavorite,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=ExternalMediaPlayer,name=Play,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=ExternalMediaPlayer,name=Login,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaybackController,name=Play,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaylistController,name=EnableRepeat,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaybackController,name=Pause,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaylistController,name=EnableRepeatOne,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaybackController,name=Previous,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.SeekController,name=AdjustSeekPosition,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaybackController,name=Next,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaybackController,name=StartOver,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.SeekController,name=SetSeekPosition,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaybackController,name=Rewind,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaylistController,name=DisableShuffle,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=ExternalMediaPlayer,name=Logout,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaybackController,name=FastForward,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaylistController,name=DisableRepeat,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.PlaylistController,name=EnableShuffle,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alexa.FavoritesController,name=Favorite,handler=0x7fe9d80fcb30,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=SpeechRecognizer,name=ExpectSpeech,handler=0x7fe9d806d750,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=SpeechRecognizer,name=StopCapture,handler=0x7fe9d806d750,policy=NON_BLOCKING
2018-05-29 03:28:28.949 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alerts,name=DeleteAlert,handler=0x7fe9d80b09d0,policy=NON_BLOCKING
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Alerts,name=SetAlert,handler=0x7fe9d80b09d0,policy=NON_BLOCKING
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=System,name=SetEndpoint,handler=0x7fe9d8120480,policy=NON_BLOCKING
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=System,name=ResetUserInactivity,handler=0x7fe9d806d308,policy=NON_BLOCKING
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Speaker,name=SetMute,handler=0x7fe9d811e7d0,policy=NON_BLOCKING
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Speaker,name=AdjustVolume,handler=0x7fe9d811e7d0,policy=NON_BLOCKING
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Speaker,name=SetVolume,handler=0x7fe9d811e7d0,policy=NON_BLOCKING
2018-05-29 03:28:28.950 [  3] 5 TemplateRuntime:getConfiguration
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=TemplateRuntime,name=RenderPlayerInfo,handler=0x7fe9d811f5d0,policy=HANDLE_IMMEDIATELY
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=TemplateRuntime,name=RenderTemplate,handler=0x7fe9d811f5d0,policy=HANDLE_IMMEDIATELY
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Notifications,name=ClearIndicator,handler=0x7fe9d80b40d8,policy=HANDLE_IMMEDIATELY
2018-05-29 03:28:28.950 [  3] 9 DirectiveRouter:addDirectiveHandlers:action=added,namespace=Notifications,name=SetIndicator,handler=0x7fe9d80b40d8,policy=HANDLE_IMMEDIATELY
2018-05-29 03:28:28.950 [  3] 9 SpeakerManager:addSpeakerManagerObserverCalled
2018-05-29 03:28:28.950 [  3] 9 SpeakerManager:addSpeakerManagerObserver:observer=0x7fe9d804ba48
2018-05-29 03:28:28.950 [  3] 5 NotificationsCapabilityAgent:addObserver
2018-05-29 03:28:28.951 [  3] 1 AudioPlayer:addObserver
2018-05-29 03:28:28.951 [  3] 5 TemplateRuntime:addObserver
2018-05-29 03:28:28.951 [  6] 1 AlertsCapabilityAgent:executeAddObserver:observer=0x7fe9d804ba68
2018-05-29 03:28:28.951 [  9] 5 TemplateRuntime:addObserverInExecutor
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:968:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:968:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_direct.c:1562:(_snd_pcm_direct_get_slave_ipc_offset) Invalid value for card
ALSA lib pcm_direct.c:1562:(_snd_pcm_direct_get_slave_ipc_offset) Invalid value for card
ALSA lib pcm_dmix.c:968:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_direct.c:1562:(_snd_pcm_direct_get_slave_ipc_offset) Invalid value for card
ALSA lib pcm_direct.c:1562:(_snd_pcm_direct_get_slave_ipc_offset) Invalid value for card
2018-05-29 03:28:29.207 [  3] I SensoryKeywordDetector:License expires on 01 Nov 2018 00:00:00 GMT
2018-05-29 03:28:29.207 [  3] I SensoryKeywordDetector:Sensory library license does not expire for at least 60 more days.
2018-05-29 03:28:29.207 [  3] I SensoryKeywordDetector:Sensory Model:Path=inputs/spot-alexa-rpi-31000.snsr
2018-05-29 03:28:29.209 [  3] I SensoryKeywordDetector:model operator point:Default OPERATING_POINT=6
sqlString SELECT * FROM sugrvoice;
mute|0
loadIntValue0
2018-05-29 03:28:29.213 [  3] 5 CapabilitiesDelegate:addCapabilitiesObserver:observer=0x7fe9d8198738
2018-05-29 03:28:29.213 [  3] 5 CapabilitiesDelegate:addCapabilitiesObserver:observer=0x7fe9d80666b0
              #    #     #  #####      #####  ######  #    #
             # #   #     # #     #    #     # #     # #   #
            #   #  #     # #          #       #     # #  #
           #     # #     #  #####      #####  #     # ###
           #######  #   #        #          # #     # #  #
           #     #   # #   #     #    #     # #     # #   #
           #     #    #     #####      #####  ######  #    #

   #####                                           #
  #     #   ##   #    # #####  #      ######      # #   #####  #####
  #        #  #  ##  ## #    # #      #          #   #  #    # #    #
   #####  #    # # ## # #    # #      #####     #     # #    # #    #
        # ###### #    # #####  #      #         ####### #####  #####
  #     # #    # #    # #      #      #         #     # #      #
   #####  #    # #    # #      ###### ######    #     # #      #

   SDK Version 1.7.1

+----------------------------------------------------------------------------+
|                                  Options:                                  |
| Wake word:                                                                 |
|       Simply say Alexa and begin your query.                               |
| Tap to talk:                                                               |
|       Press 't' and Enter followed by your query (no need for the 'Alexa').|
| Hold to talk:                                                              |
|       Press 'h' followed by Enter to simulate holding a button.            |
|       Then say your query (no need for the 'Alexa').                       |
|       Press 'h' followed by Enter to simulate releasing a button.          |
| Stop an interaction:                                                       |
|       Press 's' and Enter to stop an ongoing interaction.                  |
| Privacy mode (microphone off):                                             |
|       Press 'm' and Enter to turn on and off the microphone.               |
| Echo Spatial Perception (ESP): This is for testing purpose only!           |
|       Press 'e' followed by Enter at any time to adjust ESP settings.      |
| Playback Controls:                                                         |
|       Press '1' for a 'PLAY' button press.                                 |
|       Press '2' for a 'PAUSE' button press.                                |
|       Press '3' for a 'NEXT' button press.                                 |
|       Press '4' for a 'PREVIOUS' button press.                             |
| Settings:                                                                  |
|       Press 'c' followed by Enter at any time to see the settings screen.  |
| Speaker Control:                                                           |
|       Press 'p' followed by Enter at any time to adjust speaker settings.  |
| Firmware Version:                                                          |
|       Press 'f' followed by Enter at any time to report a different        |
|       firmware version.                                                    |
| Info:                                                                      |
|       Press 'i' followed by Enter at any time to see the help screen.      |
| Reset device:                                                              |
|       Press 'k' followed by Enter at any time to reset your device. This   |
|       will erase any data stored in the device and you will have to        |
|       re-register your device.                                             |
|       This option will also exit the application.                          |
| Quit:                                                                      |
|       Press 'q' followed by Enter at any time to quit the application.     |
+----------------------------------------------------------------------------+
2018-05-29 03:28:29.216 [  a] 5 CapabilitiesDelegate:setCapabilitiesState:newCapabilitiesState=SUCCESS
2018-05-29 03:28:29.216 [  a] 9 CapabilitiesDelegate:callingOnCapabilitiesStateChange:state=SUCCESS,error=SUCCESS
2018-05-29 03:28:29.216 [  a] 0 MessageRouter:connectionStatusChanged:reason=ACL_CLIENT_REQUEST,newStatus=PENDING
2018-05-29 03:28:29.216 [  a] 5 CBLAuthDelegate:addAuthObserver:observer=0x7fe95c002808
2018-05-29 03:28:29.217 [  b] 0 PostConnectSynchronizer:doPostConnect
onConnectionStatusChanged reason : ACL_CLIENT_REQUEST
#############################
Connecting...
#############################
onAVSEvent: EVT_AVS_CONNECTING
2018-05-29 03:28:29.217 [  6] 1 AlertsCapabilityAgent:executeOnConnectionStatusChanged:status=PENDING,reason=ACL_CLIENT_REQUEST
2018-05-29 03:28:29.217 [  b] 5 PostConnectSynchronizer:setState:from=IDLE,to=RUNNING
dispatchMessage[0]  EVT_AVS_CONNECTING(17)
UXLayer onEvent msg: EVT_AVS_CONNECTING
2018-05-29 03:28:29.217 [  c] 5 PostConnectSynchronizer:mainLoop
2018-05-29 03:28:29.217 [  c] 5 PostConnectSynchronizer:setState:from=RUNNING,to=FETCHING
2018-05-29 03:28:29.218 [  d] 5 NotificationsCapabilityAgent:provideState:stateRequestToken=1
2018-05-29 03:28:29.218 [  7] 5 NotificationsCapabilityAgent:executeProvideState:sendToken=true,stateRequestToken=1
2018-05-29 03:28:29.218 [  d] 5 VisualActivityTracker:provideState
2018-05-29 03:28:29.218 [  d] 5 AudioActivityTracker:provideState
2018-05-29 03:28:29.218 [  d] 9 SpeechSynthesizer:provideState:token=1
2018-05-29 03:28:29.218 [  7] 9 ContextManager:updateStateLocked:action=updatedState,namespace=Notifications,name=IndicatorState
2018-05-29 03:28:29.218 [  f] 5 VisualActivityTracker:executeProvideState
2018-05-29 03:28:29.218 [ 10] 5 AudioActivityTracker:executeProvideState
2018-05-29 03:28:29.218 [ 10] 9 ContextManager:updateStateLocked:action=updatedState,namespace=AudioActivityTracker,name=ActivityState
2018-05-29 03:28:29.218 [ 11] 9 ContextManager:updateStateLocked:action=updatedState,namespace=SpeechRecognizer,name=RecognizerState
2018-05-29 03:28:29.218 [ 12] 0 SpeechSynthesizer:executeProvideState:stateRequestToken=1
2018-05-29 03:28:29.218 [  f] 9 ContextManager:updateStateLocked:action=updatedState,namespace=VisualActivityTracker,name=ActivityState
2018-05-29 03:28:29.218 [ 12] 9 ContextManager:updateStateLocked:action=updatedState,namespace=SpeechSynthesizer,name=SpeechState
2018-05-29 03:28:29.218 [  e] 0 ExternalMediaPlayer:executeProvideState:sendToken=true,stateRequestToken=1
2018-05-29 03:28:29.218 [  e] 9 ContextManager:updateStateLocked:action=updatedState,namespace=ExternalMediaPlayer,name=ExternalMediaPlayerState
2018-05-29 03:28:29.219 [  e] 0 ExternalMediaPlayer:executeProvideState:sendToken=true,stateRequestToken=1
2018-05-29 03:28:29.219 [  e] 9 ContextManager:updateStateLocked:action=updatedState,namespace=Alexa.PlaybackStateReporter,name=playbackState
2018-05-29 03:28:29.219 [  d] 0 AudioPlayer:provideState:stateRequestToken=1
2018-05-29 03:28:29.219 [ 13] 0 AudioPlayer:executeProvideState:sendToken=true,stateRequestToken=1
2018-05-29 03:28:29.219 [ 13] 9 ContextManager:updateStateLocked:action=updatedState,namespace=AudioPlayer,name=PlaybackState
2018-05-29 03:28:29.219 [  d] 9 ContextManager:buildContextIgnored:namespace=VisualActivityTracker,name=ActivityState
2018-05-29 03:28:29.219 [  d] 9 ContextManager:buildContextIgnored:namespace=AudioActivityTracker,name=ActivityState
2018-05-29 03:28:29.219 [  d] 5 ContextManager:buildContextSuccessful
2018-05-29 03:28:29.219 [  d] 5 PostConnectSynchronizer:onContectAvailable
2018-05-29 03:28:29.219 [  d] 5 PostConnectSynchronizer:setState:from=FETCHING,to=SENDING
2018-05-29 03:28:29.219 [  d] 0 EventBuilder:buildJsonEventString:messageId=c1637528-afb5-4ec8-9aa9-663849c623d5,namespace=System,name=SynchronizeState
2018-05-29 03:28:29.220 [  d] 9 HTTP2Transport:enqueueRequest
2018-05-29 03:28:29.449 [  5] 0 InProcessAttachmentReader:readFailed:reason=SDS is closed
2018-05-29 03:28:29.449 [  5] 5 InternetConnectionMonitor:updateConnectionStatus:connected=true
2018-05-29 03:28:29.449 [  5] 5 InternetConnectionMonitor:notifyObserversLocked
############################################
InternetConnection  STATE: 1
############################################
2018-05-29 03:28:29.956 [  4] 5 HttpPost:doPostSucceeded:code=200
2018-05-29 03:28:29.956 [  4] 5 CBLAuthDelegate:receiveTokenResponse:code=200
2018-05-29 03:28:29.956 [  4] 5 CBLAuthDelegate:mapHTTPStatusToError:code=200,error=SUCCESS
2018-05-29 03:28:29.956 [  4] 5 CBLAuthDelegate:setAuthError:authError=SUCCESS
2018-05-29 03:28:29.956 [  4] 5 CBLAuthDelegate:setRefreshToken
2018-05-29 03:28:29.956 [  4] 5 SQLiteCBLAuthDelegateStorage:setRefreshToken
2018-05-29 03:28:31.862 [  4] 5 CBLAuthDelegate:setAuthState:newAuthState=REFRESHED
2018-05-29 03:28:31.862 [  4] 9 CBLAuthDelegate:callingOnAuthStateChange:state=REFRESHED,error=SUCCESS
###########################
Authorized!
###########################
2018-05-29 03:28:31.862 [  b] 3 HTTP2Transport:setupDownchannelStream:url=https://avs-alexa-na.amazon.com/v20160207/directives
2018-05-29 03:28:31.863 [  b] 0 HTTP2StreamPool:getStream:streamId=1,numAcquiredStreams=1
ConanManager onEvent msg: {"op":"sugrvoice.state","status":"logined","data":{"email":"","userId":"","userName":""}}
2018-05-29 03:28:33.144 [  b] 0 HTTP2Stream:receivedRequestId:value=x-amzn-requestid: 0e29d0fffece937c-00007a0e-001e0fb4-6d1221bb8f64649e-85b45811-1
2018-05-29 03:28:33.144 [  b] 0 HTTP2Transport:processNextOutgoingMessage
2018-05-29 03:28:33.145 [  b] 0 HTTP2StreamPool:getStream:streamId=3,numAcquiredStreams=2
2018-05-29 03:28:33.145 [  b] 9 HTTP2Transport:insertActiveStream:handle=0x7fe9440ed150
2018-05-29 03:28:33.761 [  b] 0 HTTP2Stream:receivedRequestId:value=x-amzn-requestid: 0e29d0fffece937c-00007a0e-001df0fb-ef176d3b31ce334e-715a3e57-81
2018-05-29 03:28:33.761 [  b] 5 PostConnectSynchronizer:onSendCompleted:status=SUCCESS_NO_CONTENT
2018-05-29 03:28:33.761 [  b] 5 PostConnectSynchronizer:stop
2018-05-29 03:28:33.761 [  b] 5 PostConnectSynchronizer:setState:from=SENDING,to=STOPPING
2018-05-29 03:28:33.761 [  c] 5 PostConnectSynchronizer:mainLoopReturning
2018-05-29 03:28:33.761 [  b] 5 PostConnectSynchronizer:setState:from=STOPPING,to=STOPPED
2018-05-29 03:28:33.762 [  b] 0 MessageRouter:connectionStatusChanged:reason=ACL_CLIENT_REQUEST,newStatus=CONNECTED
onConnectionStatusChanged reason : ACL_CLIENT_REQUEST
2018-05-29 03:28:33.762 [  b] 0 HTTP2Transport:cleanupFinishedStream:streamId=3,result=204
2018-05-29 03:28:33.762 [  6] 1 AlertsCapabilityAgent:executeOnConnectionStatusChanged:status=CONNECTED,reason=ACL_CLIENT_REQUEST
########################################
Alexa is currently idle!
########################################
2018-05-29 03:28:36.867 [ 15] 0 EventBuilder:buildJsonEventString:messageId=a2f31342-2f7f-4e56-9280-0150af57097c,namespace=Speaker,name=VolumeChanged
2018-05-29 03:28:36.867 [ 15] 9 HTTP2Transport:enqueueRequest
2018-05-29 03:28:36.868 [  b] 0 HTTP2Transport:processNextOutgoingMessage
2018-05-29 03:28:36.869 [  b] 0 HTTP2StreamPool:getStream:streamId=5,numAcquiredStreams=2
2018-05-29 03:28:36.869 [  b] 9 HTTP2Transport:insertActiveStream:handle=0x7fe9440ed150
2018-05-29 03:28:37.243 [  b] 0 HTTP2Stream:receivedRequestId:value=x-amzn-requestid: 0e29d0fffece937c-00007a0e-001dbb68-635001997211a9b1-2c80d0d2-13
2018-05-29 03:28:37.243 [  b] 0 HTTP2Transport:cleanupFinishedStream:streamId=5,result=204
2018-05-29 03:28:37.243 [  b] 0 HTTP2StreamPool:releaseStream:streamId=5,numAcquiredStreams=1
2018-05-29 03:28:37.243 [  b] 0 CurlEasyHandleWrapper:reset:responseCode=HTTP_RESPONSE_SUCCESS_NO_CONTENT
2018-05-29 03:29:11.558 [ 11] 0 AudioInputProcessor:setState:from=IDLE,to=RECOGNIZING
2018-05-29 03:29:11.558 [ 11] 9 ContextManager:updateStateLocked:action=updatedState,namespace=SpeechRecognizer,name=RecognizerState
2018-05-29 03:29:11.558 [  8] 0 DialogUXStateAggregator:setState:from=IDLE,to=LISTENING
2018-05-29 03:29:11.558 [  d] 5 NotificationsCapabilityAgent:provideState:stateRequestToken=2
onAVSEvent: EVT_AVS_LISTENING2018-05-29 03:29:11.558 [  8] 5 TemplateRuntime:onDialogUXStateChanged:state=LISTENING
2018-05-29 03:29:11.558 [  e] 0 ExternalMediaPlayer:executeProvideState:sendToken=true,stateRequestToken=2
2018-05-29 03:29:11.559 [  e] 9 ContextManager:updateStateLocked:action=updatedState,namespace=ExternalMediaPlayer,name=ExternalMediaPlayerState
############################
Listening...
############################
2018-05-29 03:29:11.558 [  7] 5 NotificationsCapabilityAgent:executeProvideState:sendToken=true,stateRequestToken=2
2018-05-29 03:29:11.558 [  d] 5 VisualActivityTracker:provideState
2018-05-29 03:29:11.559 [  d] 5 AudioActivityTracker:provideState
2018-05-29 03:29:11.559 [  f] 5 VisualActivityTracker:executeProvideState
2018-05-29 03:29:11.559 [ 10] 5 AudioActivityTracker:executeProvideState
2018-05-29 03:29:11.559 [  e] 0 ExternalMediaPlayer:executeProvideState:sendToken=true,stateRequestToken=2
2018-05-29 03:29:11.559 [  f] 9 ContextManager:updateStateLocked:action=updatedState,namespace=VisualActivityTracker,name=ActivityState
2018-05-29 03:29:11.559 [  7] 9 ContextManager:updateStateLocked:action=updatedState,namespace=Notifications,name=IndicatorState
2018-05-29 03:29:11.559 [ 10] 9 ContextManager:updateStateLocked:action=updatedState,namespace=AudioActivityTracker,name=ActivityState
2018-05-29 03:29:11.560 [  e] 9 ContextManager:updateStateLocked:action=updatedState,namespace=Alexa.PlaybackStateReporter,name=playbackState
2018-05-29 03:29:11.560 [  d] 9 ContextManager:buildContextIgnored:namespace=VisualActivityTracker,name=ActivityState
2018-05-29 03:29:11.560 [  d] 9 ContextManager:buildContextIgnored:namespace=AudioActivityTracker,name=ActivityState
2018-05-29 03:29:11.560 [  d] 5 ContextManager:buildContextSuccessful
2018-05-29 03:29:11.560 [ 11] 0 AudioInputProcessor:executeOnContextAvailable
2018-05-29 03:29:11.560 [ 11] 1 FocusManager:acquireChannel:channelName=Dialog,interface=SpeechRecognizer
2018-05-29 03:29:11.561 [ 16] 9 AudioInputProcessor:onFocusChanged:newFocus=FOREGROUND
2018-05-29 03:29:11.561 [ 11] I DirectiveProcessor:setDialogRequestIdLocked:oldValue=,newValue=56a43443-3ef7-4e6e-a23b-58f51095db7d
2018-05-29 03:29:11.561 [ 11] 0 DirectiveProcessor:scrubDialogRequestIdLocked:reason=emptyDialogRequestId
2018-05-29 03:29:11.561 [ 16] 5 AudioActivityTracker:notifyOfActivityUpdates
2018-05-29 03:29:11.561 [ 11] 0 EventBuilder:buildJsonEventString:messageId=e369455b-1429-4aed-aa2b-9290a9df92c8,namespace=SpeechRecognizer,name=Recognize
2018-05-29 03:29:11.561 [ 10] 5 AudioActivityTracker:executeNotifyOfActivityUpdates
2018-05-29 03:29:11.561 [ 11] 0 AudioInputProcessor:executeOnFocusChanged:newFocus=FOREGROUND
2018-05-29 03:29:11.562 [ 11] 9 HTTP2Transport:enqueueRequest
2018-05-29 03:29:11.613 [  b] 0 HTTP2Transport:processNextOutgoingMessage
2018-05-29 03:29:11.613 [  b] 0 HTTP2StreamPool:getStream:streamId=7,numAcquiredStreams=2
2018-05-29 03:29:11.613 [  b] 9 HTTP2Transport:insertActiveStream:handle=0x7fe9440ed150
2018-05-29 03:29:35.803 [  b] 0 HTTP2Stream:receivedRequestId:value=x-amzn-requestid: 0e29d0fffece937c-00007a0e-001de150-79f4b5d0e734dd3d-0a5905a3-19
2018-05-29 03:30:05.868 [  b] I HTTP2Transport:streamProgressTimedOut:streamId=7
2018-05-29 03:30:05.868 [  b] 0 AudioInputProcessor:onSendCompleted:status=TIMEDOUT
2018-05-29 03:30:05.868 [  b] 0 AudioInputProcessor:resetState:dueToStatus=TIMEDOUT
2018-05-29 03:30:05.869 [  b] 0 HTTP2StreamPool:releaseStream:streamId=7,numAcquiredStreams=1
2018-05-29 03:30:05.869 [ 11] 1 FocusManager:releaseChannel:channelName=Dialog
2018-05-29 03:30:05.869 [ 11] 0 AudioInputProcessor:setState:from=RECOGNIZING,to=IDLE
2018-05-29 03:30:05.869 [ 16] 9 AudioInputProcessor:onFocusChanged:newFocus=NONE
2018-05-29 03:30:05.869 [ 16] 5 AudioActivityTracker:notifyOfActivityUpdates
2018-05-29 03:30:05.870 [ 10] 5 AudioActivityTracker:executeNotifyOfActivityUpdates
2018-05-29 03:30:05.870 [ 11] 0 AudioInputProcessor:executeOnFocusChanged:newFocus=NONE
2018-05-29 03:30:05.870 [ 11] 0 AudioInputProcessor:executeOnFocusChanged:reason=Lost focus
2018-05-29 03:30:06.070 [  8] 0 DialogUXStateAggregator:setState:from=LISTENING,to=IDLE
2018-05-29 03:30:06.070 [  8] 5 TemplateRuntime:onDialogUXStateChanged:state=IDLE
########################################
Alexa is currently idle!
########################################

Hi @sugrsugr,
As @visayamv noted, only "Alexa" is supported as a wakeword.  The service is rejecting your recognize event because you are trying to use a different wakeword.  More specifically, the SpeechRecognizer.RecognizerState you are sending looks like this:
{
    "header" : {
      "namespace" : "SpeechRecognizer",
      "name" : "RecognizerState"
    },
    "payload" : {
      "wakeword" : "hi_xiao_wei"
    }
  }

The only value the service will accept for the wakeword field is "Alexa".  Let us know if you are still seeing problems after changing to an "Alexa" wakeword.
Ken

Hi @kencecka ,
Thanks for you response, even if I use other wakeword, CBL should return StopCapture directive to me instead of waiting until timeout. After the timeout, avs won't work normally, even if I use tap to talk, it is the same, unless I restart the program.

Hi @sugrsugr,
I'm probably going to need more detail to advise here.  If you are using the "alexa" wakeword, I do expect that you will receive a StopCapture directive without waiting for a timeout.  If you're seeing timeouts, then something else is going wrong.  Can you post another debug log taken from a case where you used the "alexa" wakeword?
Ken

I am closing this issue due to inactivity. Please feel free to re-open it if it has been closed in error.


mc_server_group_extend throws error if device is added with a dns name instead of ipaddress

Hi again,
first a big thanks for your help, brought me closer to a solution, and thank you for your work on this wonderful integration.
I have four Yamaha RXV-679, running HA 2021.8.3 with aiomusiccast-0.9.1,
I am still trying to get the formerly working group functionality (with mini-media-player) back again.
Current release of mini-media-player cannot use media_player's join, so I had to build it from the current dev tree at commit a3a4a69.
However, I had added the Yamaha's with their dns name in config flow.
When I try to join a mc client, the master stops playing for a second or two, and HA tells:
2021-09-06 19:50:27 WARNING (MainThread) [aiomusiccast.musiccast_device] Coordinator of <IP_ADDRESS> did not receive the expected group data update via UDP. Fetching manually.
2021-09-06 19:50:28 WARNING (MainThread) [aiomusiccast.musiccast_device] Coordinator of <IP_ADDRESS> did not receive the expected group data update via UDP. Fetching manually.
2021-09-06 19:50:28 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139976403338480] <IP_ADDRESS>: Failed to extent group by clients ['rxv679-wohnen.in.edevau.net']
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/homeassistant/components/websocket_api/commands.py", line 185, in handle_call_service
    await hass.services.async_call(
  File "/usr/lib/python3.9/site-packages/homeassistant/core.py", line 1492, in async_call
    task.result()
  File "/usr/lib/python3.9/site-packages/homeassistant/core.py", line 1527, in _execute_service
    await handler.job.target(service_call)
  File "/usr/lib/python3.9/site-packages/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await self.hass.helpers.service.entity_service_call(
  File "/usr/lib/python3.9/site-packages/homeassistant/helpers/service.py", line 658, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/lib/python3.9/site-packages/homeassistant/helpers/entity.py", line 843, in async_request_call
    await coro
  File "/usr/lib/python3.9/site-packages/homeassistant/helpers/service.py", line 695, in _handle_entity_call
    await result
  File "/usr/lib/python3.9/site-packages/homeassistant/components/yamaha_musiccast/media_player.py", line 756, in async_join_players
    await self.coordinator.musiccast.mc_server_group_extend(
  File "/usr/lib/python3.9/site-packages/aiomusiccast/musiccast_device.py", line 831, in mc_server_group_extend
    await self.mc_server_group_extend(zone, client_ips, group_id, distribution_num, False)
  File "/usr/lib/python3.9/site-packages/aiomusiccast/musiccast_device.py", line 833, in mc_server_group_extend
    raise MusicCastGroupException(
aiomusiccast.exceptions.MusicCastGroupException: <IP_ADDRESS>: Failed to extent group by clients ['rxv679-wohnen.in.edevau.net']

When I set up the Yamaha's int the config flow with their IP adresses instead of their hostname, it seems to work, HA only says in the log:
2021-09-06 19:53:10 WARNING (MainThread) [aiomusiccast.musiccast_device] Coordinator of <IP_ADDRESS> did not receive the expected group data update via UDP. Fetching manually.

DNS is set up properly, HA is able to resolve in both directions:
root@g18-hass:/etc/homeassistant/www # host rxv679-wohnen.in.edevau.net
rxv679-wohnen.in.edevau.net has address <IP_ADDRESS>
root@g18-hass:/etc/homeassistant/www # host <IP_ADDRESS>
<IP_ADDRESS>.in-addr.arpa domain name pointer rxv679-wohnen.in.edevau.net.
root@g18-hass:/etc/homeassistant/www # host rxv679-werkstatt.in.edevau.net
rxv679-werkstatt.in.edevau.net has address <IP_ADDRESS>
root@g18-hass:/etc/homeassistant/www # host <IP_ADDRESS>
<IP_ADDRESS>.in-addr.arpa domain name pointer rxv679-werkstatt.in.edevau.net.

The HA host is not on the same VLAN with the Yamahas (different building), all affected Yamahas share the same network, UDP traffic is allowed.
Would you say the it is better practice to use ip adresses instead of the host names?
Should I worry about the UDP message?
Thanks for your help.

For the time being, we only support the IP addresses for the grouping functionality, because the Yamaha devices expect an IP address provided, when we try to extend the group member list. As most users use the device discovery to add their devices, we are able to update the IP address of the device by using the serial number as single source of truth. However, we will take a look into that and see, whether it's possible to support hostnames.
Regarding your UDP problem when you use the IP address, I believe this could be related to the delays your network infrastructure leads to. We are using UDP messages to let the device tell us when something changes. And the device only sends us information about the kind of change so that we can then pull the correct information from the device. In case of grouping we have to send multiple requests and we have to wait until the device tells us that it is ready has processed the previous one. So there is some kind of structure like this:

HA HTTP -add group member-> Yamaha
HA <-updated group members- UDP Yamaha
HA HTTP -get group members-> Yamaha
HA HTTP -start distribution-> Yamaha

If we do not get the expected status information within one second, we log this message and send a request to the device. So it is like we skip step 2 from above and hope that the device is already ready. If it isn't, we try to repeat the whole process an additional time and if that fails we raise an exception (just like you had it when you were using the host names).
But maybe you have problems with the UDP connection in general. If you for example play some net-usb sources, do you get correct artist/title meta information displayed in real time in the media-control (or mini-media-player) card?

Thanks for this great and compehensible explanation. I can live with that for now, I just have to use fixed IP's for them now, no big thing. Otherwise I also have to use the DNS names for them, HA's web frontend is used via SSL (ha-proxy), and, to embed the Yamaha's web interface in the gui (for newer browsers), I have to pass their traffic also through ha-proxy, ha-proxy (currently) uses the hostname to pick the correct Amp as a backend/server.
I do not believe it could be caused by delay. Total RRT is < 3ms.
Often (not always) I see that meta informations is not updated on the Yamahas, at the beginning of a playlist, the title is displayed properly, but the following titles aren't updated, neither on the Yamahas, nor in the miniplayer. The information diplayed on the mini-player matches the Amps display, even if it's not correct.
Can you explain from where the Yamaha's and the mini players display information is taken from?
This would help to explore the apparent network issue a bit further. I have wireshark on the HA box, but currently I cannot monitor the traffic between the NAS an the Yamahas.
I'll try to set up a port mirroring for the remote Yamahas to prove your UDP packet loss theory. I did put the local Yamaha in a routed VLAN, now it has the same display-not-updated-on-song-change issue, if I can't fix it, I'll try to build a L2 VLAN for the remote Yamahas to try it without routing.

The UDP channel is the only communication channel the MusicCast device can use to send data to HA on its own. As we did not want to pull all information every second from every single device, we decided to only update the data when the device tells us, that there is a relevant change. In addition, we pull all information from every device once a minute. This way we ensure that the data are not inconsistent forever if a UDP package got lost.
If you say that information like the title are not up to date, it could also be caused by the loss of UDP packages. Without them, HA only updates information once a minute. We could discuss, whether we want to add a configuration flag in HA to define that the data should be pulled every x seconds. It's not really clean and would cause much more traffic, but it's the only way, I see, to keep data up to date, if UDP packages cannot be transmitted.


Time is incorrect on Hydra

Thread.Sleep(100) only sleeps for 75ms. DateTime.Now is wildly incorrect. A month passes in under a minute.

Fixed in d62a14085e704049a38c5a9ec35f6b093e639cf0


Add HTTPS config

[x] Add the public key and signing key to the repo
[x] Add task to assemble the certificate chain. See DigiCert docs
[x] ignore the private key
[x] Update group vars to use the proper config
[ ] Redirect 80 to 443 in nginx

By closing the http port, you mean redirecting it transparently to 443, don't you?

Actually, I had in mind to keep it closed, but now that you mention it yes, it makes sense to have the webserver redirect to https. I think a rewrite engine is needed to help deal with the headers... We definitely don't want people landing on a bare nginx page on :80 !

Thanks @gwarf I updated the ticket description to better reflect what we should do.

SSL Labs reports weak ciphers are enabled. I'll update the original ticket with this task


Added Sign Up form, validation still needs to be added

Description
Navigation Bar
Type of change
Please delete options that are not relevant.
[] New feature (non-breaking change which adds functionality)
Change Status
[] Complete, tested, ready to review and merge
Complete, but not tested (may need new tests)
Incomplete/work-in-progress, PR is for discussion/feedback
Checklist
[]My code follows the style guidelines of this project
[]I have performed a self-review of my own code
[]My code has been reviewed by at least one peer
[] I have commented my code, particularly in hard-to-understand areas
[] I have made corresponding changes to the documentation
[] My changes generate no new warnings
[] I have added tests that prove my fix is effective or that my feature works
[] New and existing unit tests pass locally with my changes
[] There are no merge conflicts

 Registration


Does "smaller percentage" in Evaluation-Notice mean "precision"?

Hi, does "samller percentange" you mentioned in Evaluation-Notice mean "precision" ? while the metric used in NOCS is mAP.

Hi, thanks for mention this very good question. In the NOCS paper, the introduction of their metric is:
"For 6D pose estimation, we report the average precision of object instances for which the error is less than m cm for translation and n° for rotation similar to [39, 30]. " (NOCS, page 6, middle right column)
However, both [39, 30](Shotton et al. 2013 and Li et al. 2018) are using the "smaller percentage" metric (same as ours), which is not mAP.
NOCS can use mAP as its metric mainly because it is based on a detection model. However, most of the other methods that do not have a per-frame level detection result cannot calculate this mAP score (Our 6pack is a tracking model). In order to achieve a fair comparison with NOCS, we re-tested all the NOCS evaluation results in "<5cm5° precision metric" which is originally introduced by [39, 30] and report the score in the experiment section of this paper.

Okay thank you.

Can I ask the difference between "smaller percentage" and "AUC (area under the curve)" ??


Dashboard: accept / reject / delete minion keys

This repo is deprecated and archived. Therefore, this issue is now closed. Thank you.


Suggestion

Use aikars Java flags in start.sh
https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

I tried this on a RPi3b+:
java -Xms800MB -Xmx800MB -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs
Result was this:

System became unresponsive within 5 minutes. Maybe some parameters can be changed to avoid this but out of the box it does not work.

Hmm. Ok I'll close it then.


[fix bug 1133702] Set date_left_program date for Alumni users.

r+wc nice work!

Coverage decreased (-0.01%) to 91.86% when pulling f551e0bbea397dd76a1fcb3c3f12ff5d07bb778f on akatsoulas:1133702-alumni-date into 01bfdaccba5e4a6166ec6fac36bd800da44ed6b0 on mozilla:master.

@glogiotatidis thanks for the review :beetle:


Add choices and documentcloud_pages to HdrCd.state_cd (in common.py)

Overview
Add choices and documentcloud_pages to the state_cd field on HdrCd the database model.
Basically, we think state_cd should be defined as a "choice field" (in Django parlance), which just means it's a field with a defined list of valid values and an intelligible definition for each value.
Our goal is for every potential choice field to include references to locations in the official documentation where the field's valid values and their meanings are described AND to have those choices included in the field's definition.
And we need your help!
What to do
Step 1: Claim this ticket by adding yourself as an Assignee (to the right)
Step 2: Find where in the official documentation state_cd's list of valid values is defined.
The best place to look first is in the .CAL layout documents: .CAL Format version 2.01 and .CAL Format version 1.05.02. These are documents that describe the layout of the .CAL file format, which is the required electronic format of any filings ingested by the CAL-ACCESS system (more on that here if you are interested).
You can start by opening the document and just searching for "state_cd". For example, if you were assigned to tackle the stmt_type field on the CvrCampaignDisclosureCd model, you would be looking for something like this::

But note that the same column might appear on multiple tables, and the list of valid values may vary depending on the table. We want to be sure to find the list of valid values for the state_cd on the HdrCd model.
Another good place to look is in the MapCalFormat2Fields document, which describes how .CAL format fields are mapped to CAL-ACCESS database table columns. Note the Valid_V column on the far right.
Step 3: Copy the DocumentCloud ID and the page number(s) where state_cd's list of valid values is defined.
The DocumentCloud ID can be found the in the URL that points to the document. For example, the url to the .CAL Format version 2.01 doc is http://www.documentcloud.org/documents/2712034-Cal-Format-201.html#document/p1, and the id is 2712034-Cal-Format-201.
And the start page we want to grab is the DocumentCloud page number, not the page number printed on the .PDF. If the list of valid values spans multiple pages, then grab the page where the list ends as well.
Step 4: Find where state_cd is defined in common.py in the /calaccess_raw/models/common.py file underneath the HdrCd class.
Since the model files are rather long, take care to be sure you find the where state_cd is defined for the HdrCd model. It should look something like this:
    class HdrCd(CalAccessBaseModel):
        # ...
        # several lines of code later...
        # ...
        state_cd = fields.CharField(
            max_length=2,
            db_column='STATE_CD',
            blank=True,
            verbose_name='State code',
            help_text='The state code value entered in the electronic filing',
        )

Step 5: Add the document references
Say you found the list of valid values listed in three places. You would list them in the documentcloud_pages attribute like this:
    class HdrCd(CalAccessBaseModel):
        # ...
        # several lines of code later...
        # ...
        state_cd = fields.CharField(
            max_length=2,
            db_column='STATE_CD',
            blank=True,
            verbose_name='State code',
            help_text='The state code value entered in the electronic filing',
            documentcloud_pages=[
                DocumentCloud(id='2711616-MapCalFormat2Fields', start_page=10),
                DocumentCloud(id='2712033-Cal-Format-1-05-02', start_page=19),
                DocumentCloud(id='2712034-Cal-Format-201', start_page=24, end_page=25),
            ]
        )

Note: You only need to specify the end_page if the list spans multiple pages.
Step 6: Update the state_cd's help_text (if necessary)
It might be missing or it might be an empty string or it might not be consistent with what you see in the documentation. Note: The entire help_text string needs to be enclosed in single- or double-quotes like this:
    help_text='This is the help text',

If the help text is really long (80+ characters), then it needs to span multiple lines like this:
    help_text='This is the help text...blah...blah...blah...blah...blah...blah...\
...blah...blah...blah',

Step 7: Define the choices
The normal Django pattern is to define choices within the model class as a tuple which contains a bunch of two item tuples. The first item of each inner tuple is the valid database column value, and the second item is the definition. It should look something like this:
    STATE_CD_CHOICES = (
        ('AAA', 'Some definition of AAA'),
        ('BBB', 'Some definition of BBB'),
        ('CCC', 'Some definition of CCC'),
        # ...and more..
    )

Then we assign this tuple of tuples to 's choice argument with a single line: choices=STATE_CD_CHOICES.
When finished, it should all look something like this:
    class HdrCd(CalAccessBaseModel):
        # ...
        # several lines of code later...
        # ...
        STATE_CD_CHOICES = (
            ('AAA', 'Some definition of AAA'),
            ('BBB', 'Some definition of BBB'),
            ('CCC', 'Some definition of CCC'),
            # ...and more..
        )
        state_cd = fields.CharField(
            choices=STATE_CD_CHOICES,
            max_length=2,
            db_column='STATE_CD',
            blank=True,
            verbose_name='State code',
            help_text='The state code value entered in the electronic filing',
            documentcloud_pages=[
                DocumentCloud(id='2711616-MapCalFormat2Fields', start_page=10),
                DocumentCloud(id='2712033-Cal-Format-1-05-02', start_page=19),
                DocumentCloud(id='2712034-Cal-Format-201', start_page=24, end_page=25),
            ]
        )

So some of these choice fields show up on multiple tables (the various office_cd fields are a good example), and of course it's rather redundant to repeat these values and their definitions over and over. In some these cases, we've consolidated these valid values into one place: calaccess_raw/annotations/choices.py.
So then instead of listing out all the choices in the tuple of tuples, we can do this:
    OFFICE_CD_CHOICES = get_sorted_choices(choices.OFFICE_CODES)
    office_cd = fields.CharField(
        choices=OFFICE_CD_CHOICES,
        # ...other stuff...
    )

If you think the field your looking at is a candidate for this sort of consolidation, let's have a conversation about it. Just post a comment below.
If you can, check the state_cd's defined choices against the actual values in state_cd's database column.
This will require you to install the app and run the updatecalaccessrawdata command. Then you can get the distinct column values with a GROUP BY query like this:
    SELECT STATE_CD, COUNT(*)
    FROM HDR_CD
    GROUP BY 1
    ORDER BY 1;

It's likely that you'll find undocumented values in database column, some of which are variants of the valid values. You can note these by repeating the same definition for each variant like this:
    OFFICE_CD_CHOICES = (
        ('GOV', 'Governor'),
        ('gov', 'Governor'),
        ('GUV', 'Governor'),
        # ...
    ),

If you're dealing with a set of choices that's been consolidated into calaccess_raw/annotations/choices.py, you can map the different variants to the same definition using the key of the choices dict like this:
    OFFICE_CD_CHOICES = (
        ('gov', look_ups.OFFICE_CODES['GOV']),
        ('GUV', look_ups.OFFICE_CODES['GOV']),
        # ...
    ),

If you're not able to check the database column values for whatever reason, don't sweat it. We'll deal with it in a later issue.
Wrap up: Review your changes and create a pull request

That's it!
PS: If any of this feels confusing, or if it doesn't seem to match up with what you are seeing, or if you have any suggestions about another approach, don't hesitate to speak up. You can post a comment below, or hit up the #california-civic-data channel on the News Nerdery Slack.

Done.


pip3 on macOS can install in funny directories

Like:
/Users/ecurtin/Library/Python//3.9/bin/omlmd

@tarilabs omlmd doesn't really work great for me at least on macOS, which is a pity, it's a very popular platform for model inferencing...
$ ./ramalama.py pull oci://quay.io/mmortari/gguf-py-example:v1
Downloading quay.io/mmortari/gguf-py-example:v1...
/Users/ecurtin/Library/Python/3.9/lib/python/site-packages/urllib3/init.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
warnings.warn(

That's weird because I made all the demos of omlmd on Mac OSX 👉 https://containers.github.io/omlmd/demos/demo/

Is the installation you are doing in a pyenv or venv?
I think in general, or at least my experience, using the global Mac OS Python environment is in general discouraged.
For another instance this is also analogously highlighted for ilab, here: https://github.com/instructlab/instructlab#:~:text=NOTE%3A The following steps in this document use Python venv for virtual environments.
Happy to follow-up online to double check which steps you followed and potential more robust alternatives?
lmk!

Maybe it's just a harmless warning and https://quay.io/repository/mmortari/gguf-py-example isn't a real model

and https://quay.io/repository/mmortari/gguf-py-example isn't a real model

if I recall I've taken that from the gguf example of llama.cpp repo and a valid gguf file but indeed not a Large Language Model

Maybe it's just a harmless warning

I don't get those warning anyways on Mac OSX during my demos, so I think it's a matter of how the library/dependencies are installed maybe?

fwiw, just tried straight from repo root now and with:
./ramalama.py pull oci://quay.io/mmortari/gguf-py-example:v1
I get just-and-only:
Downloading quay.io/mmortari/gguf-py-example:v1...

which then shows in my storage:
% ./ramalama.py list
NAME                                                   MODIFIED    SIZE
oci://quay.io/mmortari/gguf-py-example/v1/example.gguf 1 month ago 4.0K

I believe the warn from https://github.com/containers/ramalama/pull/189#issuecomment-2374391662 maybe depends on the local system environment and configuration used then?
Possibly some pip install ... was done against the Mac native global Python environment?
On Mac, my understanding that is discouraged,
and I suggest using a Python environment like example from InstructLab,
or use pipx
my2c and happy to discuss further!

...I think I see now; seems to me install.py is making use of the default pip3 from the default Mac global python environment:
https://github.com/containers/ramalama/blob/07555d59a1d85aa43136fd4f4d2d2be6c7d62943/install.py#L79-L80
what about:

using pipx instead of installing in the Mac global python environment
i.e. make for Mac pipx a depedency as homebrew brew

just "shading" omlmd sources inside the ramalama
after all is just an sdk

I could check what distributing omlmd through brew entails

please notice 2, 3 wouldn't however solve the same issue for the other dependency huggingface_hub[cli] or any future dependencies, which imho should not be installed on the end-user default Mac global python environment my2c
hence, I believe option 1 is the most preferable for the dependencies or ramalama when installed/used on Mac.
always happy to discuss further !

@tarilabs if you could try and package ramalama and omlmd via brew that would be appreciated! We should migrate to there eventually...

could try and package ramalama and omlmd via brew that would be appreciated! We should migrate to there eventually...

noted @ericcurtin eventually this will also impact however other dependencies of ramalama itself, as I noted in https://github.com/containers/ramalama/pull/189#issuecomment-2376546887


add description for migrate setting

@RackHD/corecommitters @cgx027 @iceiilin @heckj

:+1:

:+1:


feat(docker): Testing docker

Please ensure that your pull request adheres to our contribution guidelines. Thank you!

Gone to wrong branch


TypeScript Language Mode give errors of module not found

This happens when we have definitelytyped within npm package
vc code should not only see for definitelytyped in typings folder it should also see in npm package (i.e. node_modules).
This is caused when i am using angular2 and definitelytyped for angular2 are provided in npm package instead separate  definitelytyped, so make TypeScript IntelliSense so it also load from npm packages as well
Looking for active action on this issue
Thanks
Rajeev Kumar Sharma

Using .d.ts files from the the node_modules folder is supported in 0.10.6. However you need to tell the TypeScript language server to look into the node_modules folder by specifying
		"moduleResolution": "node"

in the tsconfig.json.
For more information please look at the TypeScript documentation.

Hi Dirk,
It still persist with 0.10.6 on Linux. Here are some screenshots attacked.
Thanks

Hi Dirk,
Here is my package.json file.
Thanks

@rajeevkumarsharma the problem is that you list app/app.ts in the tsconfig.json file. So the settings defined in the tsconfig.json file only apply to that file. However the code is on app/lib/rest.ts. You either need to list that file as well or don't list any files at all. If you go with the second I recommend to exclude the node_modules folder. Something like:
{
    "compilerOptions": {
        "module": "commonjs",
        "moduleResolution": "node"
    },
    "exclude": [
        "node_modules"
    ]
}

Hi Dirk,'
Now it is fine with exclude property.
Thanks for helping
Rajeev Kumar Sharma


feat: update-readme.md

Description:
A README file is a text file that describes and launches a project. It comprises information that is frequently needed to grasp the scope of the project
Commit Message
feat: update readme

see the guidelines for commit messages.
Checklist:

[x] I have performed a self-review of my own code
[x] I have documented my code in accordance with the documentation guidelines
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have run the unit tests
[x] I only have one commit (if not, squash them into one commit).
[x] I have a descriptive commit message that adheres to the commit message guidelines

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

Codecov Report

Merging #313 (bde2cc9) into main (e04844f) will decrease coverage by 0.88%.
The diff coverage is 25.00%.

@@             Coverage Diff              @@
##               main     #313      +/-   ##
============================================
- Coverage     47.10%   46.23%   -0.88%
- Complexity        0      421     +421
============================================
  Files            94      124      +30
  Lines         15294    20513    +5219
  Branches          0      284     +284
============================================
+ Hits           7205     9484    +2279
- Misses         8089    10888    +2799
- Partials          0      141     +141

Impacted Files
Coverage Δ

...ore/ibc/src/main/java/ibc/ics24/host/IBCStore.java
58.33% <16.66%> (ø)

...ibc/src/main/java/ibc/ics04/channel/IBCPacket.java
85.90% <25.00%> (ø)

...core/ibc/src/main/java/ibc/ics24/host/IBCHost.java
73.07% <50.00%> (ø)

... and 69 files with indirect coverage changes


where could I store per connection variables?

where could I store per connection variables? I mean lets picture the situation: device connects to my slave server, write multiple registers and then read holding registers, I generate values in holding registers based on written registers values. So where exactly should I keep these values in-between of onWriteMultipleRegisters and onReadHoldingRegisters calls? I'm kinda out of options here or so it seems

I'm not sure what you mean you're out of options... you have infinite options. I purposely do not implement any kind of process/register map abstraction because everyone's use case is different.
Put them in a Map<Integer, Integer> or get as complicated as you'd like?

Modbus register and coil values are not traditionally per-connection - it's supposed to be a global address space.


Runtime compilation fixes to prevent application crashes if plugins are added for runtime compilation

See https://github.com/aspnet/AspNetCore/issues/14356#issuecomment-534835920
Summary of the changes

adds public interface to influence assembly part resolution, options should enable a consumer to add additional implementations at a later point perhaps?
Wraps prior call which uses DependencyLoadContext which caused permanent application crash if files were changed to catch and discard the exception. Instead of just discarding the exception there should be a way to forward this to logs somehow as a warning?
Adds Implementation which enables resolution of references through the references specified by options

Addresses #14359 and #14356 (in this specific format)

 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.:x: taori sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

i assume 2 and 3 needs to be addressed before this could be merged. Also i'm not sure if it was correct that this merge branch is based on top of release/3.0.

I just found this line in the contribution guide: Adding or updating any external dependency requires approval from @eilon and @damianedwards. Can you guys look at https://github.com/taori/AspNetCore/commit/edbe96506f5d6e0bf4a8e5cfddffc9c101f5ca07#diff-4bd38b6233a6dfef7eefc06d3d93636f ? Perhaps it is wrong to place it at that location since then fixing the compilation issue would depend on MVC receiving a higher version so the interface is available. Perhaps i should have placed it in the same place as the other classes.

Tagging @Pilchie because he's taken over this project from me.
I don't see any dependencies changed here at all, so there's no special approval for this.
Now, having said that, .NET Core 3.0 just shipped a few days ago, so this can't go into .NET Core 3.0 anymore. If this is a request to patch something in .NET Core 3.0.x then I think that likely needs to go through Microsoft Support, but I'm not sure the exact process. @Pilchie can help out with that if that's what's being asked for here.
Otherwise I would imagine this could be a candidate for a future .NET Core 3.x release or similar.

Also tagging @pranavkm  and @mkArtakMSFT here.

@Eilon @Pilchie Okay thanks for having a look at it. I moved the IAssemblyPartResolver after all and made the interface internal since without it being extendable through options there is no point for it being public anyway.
That way this would be a self contained fix so runtime compilation can be fixed without potentially being held back by an mvc release.
My bad on changing it to release/3.0
I assumed that would be the correct branch to potentially be dropped into  3.0.x fixes as well. I assume every repo owner can change the merge target.
Also regarding the test changes:
Is there some sort of Mock framework included which would allow for testing non interface types? I attempted to add a test case which spawned those issues to begin with but Mock does not allow mocking non virtual members.

@mkArtakMSFT @pranavkm Should i change the target branch?

@taori we plan to include the referenced issue in 3.1, so this should target release/3.1 branch.
As for the actual PR, I'll leave it up to @pranavkm to look through it and see how well does this align with our design principles.

@pranavkm What is your opinion on this PR? Does it look okay or should i change something?

Thanks for the PR @taori. As discussed in the linked issue, we think there's already enough extensibility in the framework to not require these changes.


Improve custom chain module inclusion dev UX

The developer UX currently requires including custom module AppModuleBasics and including them in the Indexer type's custom module basics array at runtime. This would require extending the Indexer type before it is loaded at index command runtime. We should improve this by adding extensions to make it easy to load custom chain modules into the Indexer so it can be loaded into the probe codec.

Closed by https://github.com/DefiantLabs/cosmos-indexer/pull/122


Modify hash_test to verify correctness and stability of the hashes

Do some adjustment/simplification of the macros that set up the right
decorators on the new inline farmhash.
Some additional constexpr's, including Strutil::strhash().
Add to hash_test verification of the actual results of each of the
hashes, so we know that we don't break them over time, that they give
the same result on all platforms, and most immediately, to 100% verify
that the new constexpr inline version of the hash precisely matches
the old procedure call one.
Augment the existing benchmarking of the hashes to include
farmhash::inline.  It tries a variety of string sizes. I was worried
that the constexpr/inline version would be a performance hit because
it can't use any of the SSE intrinsics (which, ugh, aren't declared
constexpr in the headers).  But it turns out that the inline (but
SSE-free0 version is a little faster on some tests, a little slower on
other tests, overall a wash and never differing by more than
10%. Maybe that means that the inlining/constexpr makes up for the
lack of SSE? Maybe it means that the compiler optimization is adding
SSE back in well enough that losing the intrinsics isn't as bad as we
would have thought? In any case, the upshot is that this doesn't
represent a performance it, so I may consider a future change to just
go strictly with the inline constexpr versions and eliminating the
separately compiled version altogether. Will mull that over.

I pushed some fixes that were necessary to make it fully happy on Windows.

LGTM!  I tested this branch locally with my updated OSL ustring/hash PR and it worked fine.


fix: login success page redirect

Description
Success page url was wrong and re-prompting with the same authorize page, even though it did nothing.
String formatting is hard sometimes.
Testing Instructions

turbo logout -> ensure you have no tokens that'll prompt the "Existing token found!" check
turbo login -> get the login page
Ensure that when you click Authorize, and it works, that the second page is the success page.

Closes TURBO-2488

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#7558  👈
#7556
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Zertsov and the rest of your teammates on  Graphite

Merge activity

Mar 1, 1:01 PM EST: @Zertsov merged this pull request with Graphite.


WFLY-5670 Remove Hibernate (5.0/4.3) dependency on commons-collections.  Also remove EclipseLink/JPA subsystem dependency on commons-collections

I just noticed that my topic branch name is WFLY-4908, but that has no relation to the code change (just a typo).  WFLY-5670 is the correct jira


Openshift4 Mirgration

Issue 6646: https://github.com/bcgov/entity/issues/6646
Description of changes:

Created new bc, pipeline and dc templates;
Modified Jenkins files;
Modified Github actions CD script to deploy application to OCP4;

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

@pwei1018 this is a work in progress?
Safer to leave it as a Draft PR then, as no one will be able to merge it (as the label could get missed).

@pwei1018 this is a work in progress?
Safer to leave it as a Draft PR then, as no one will be able to merge it (as the label could get missed).

Sure


feat: Handle pagination

About this PR

Closes https://github.com/lenra-io/server/issues/512

Technical highlight/advice

How to test my changes

Checklist

[ ] I didn't over-scope my PR
[ ] My PR title matches the commit convention
[ ] I did not include breaking changes
[ ] I made my own code-review before requesting one

I included unit tests that cover my changes

[ ] 👍 yes
[ ] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

I added/updated the documentation about my changes

[ ] 📜 README.md
[ ] 📕 docs/*.md
[ ] 📓 docs.lenra.io
[ ] 🙅 no documentation needed

@lenra-io/devs It seems that the code generation with the new version of the API causes some problems. In fact, we used to be in the beta.17 version but now the API is in v1.0.2 with quite a lot of differences with the old beta.17.
We first need to make sure that this project is up to date with the API project before working on this pull request.

@jonas-martinez The API have been upgraded. I think you can try that again

@taorepoara It seems that you did the feature with the following PR. Although i'm not sure if this is really the case, can you please reopen this PR if i'm wrong ?
https://github.com/lenra-io/app-lib-js/pull/77


Didn't work after upgrade MacOs to monterey (Air M1)

Can not click on the section Spatial / Equalizer
At the sound icon (mac icon) doesn't show eqMac
uninstall / install the problem was not gone.

I fine with monteray, execute all programs you want to use eq mac for first (for me traktor and OBS).
then you will see the device name (eq mac mini speakers EQMAC! not cor audio. the app does crash if u open an app assigned to another audio device.

Hi, I am closing this issue due to the age and under the assumption of this should already been fixed. If you find it otherwise, please reopen this issue and comment on here.


Problem passing args to PowerShell program in launch.json

I'm trying to use Code on Windows to develop a PowerShell script. I encountered some difficulties when I tried to cut and paste a Windows path into the "args" parameter in my launch.json file.

I had to change "" to "\" to avoid a syntax error. That's inconvenient and ugly.
I haven't found a way to pass a space (blank) character embedded within a single argument.
The (x86) in the path causes PowerShell to give an error: x86 : The term 'x86' is not recognized as the name of a cmdlet, function, script file, or operable program.

So if my launch.json file contains:
        "type": "PowerShell x86",
        "request": "launch",
        "program": "${workspaceRoot}\\Compare.ps1",
        "args": ["C:\\Program Files (x86)", "arg1a arg1b"]

And the program is
Write-Output "args:", $args
Then when I run it, I get
x86 : The term 'x86' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:48
+ c:\Src\Tools\BnA\Compare.ps1 C:\Program Files (x86) arg1a arg1b
+                                                ~~~

On the other hand, if I call my program from a PowerShell window, it parses the command line with two arguments just as I want:
PS C:\Src\Tools\BnA> Compare.ps1 "C:\Program Files (x86)" "arg1a arg1b"
args:
C:\Program Files (x86)
arg1a arg1b
PS C:\Src\Tools\BnA>

I think there are some bugs here, but maybe also a limitation in the allowed json file syntax. Right now single quotes aren't allowed in the json file for quoting strings. Would it be possible to have single quotes be a "stronger" type of quote mark that avoid any sort of interpretation, string substitution, etc. as much as possible, so file paths and other sorts of strings with funny characters can be passed in to the target program without a struggle?

@JanKok the PowerShell is not part of VS Code. Please move this bug to https://github.com/PowerShell/vscode-powershell/issues

I think the real problem is lack of documentation about the format of the json files. In this particular case, I needed to know how to pass filenames containing various funny characters to the target program. This is a problem with ALL target programs and tasks regardless of language, hence, it should be documented primarily by VSCode team. I'll file an issue with vscode-docs.

@JanKok VS Code only prescribes the fact that launch.json is a json file. The structure and semantics of individual launch configs is contributed by individual debugger extensions via a schema and individual interpretations in the debug adapter.
So the PowerShell debug adapter could accept forward slashes on Windows (like the node debug adapter).
Not being able to pass a space (blank) character embedded within a single argument is definitely a problem of the PowerShell adapter and not a problem of a lack of documentation of the json format.

Thanks for the clarification. That's good to know.
The fact that both the PowerShell and code-debug (C/C++, gdb) extensions implemented argument passing in non-obvious ways indicates a need for some guidance from the VSCode team.
I'll add to my issue at vscode-docs and file issues at vscode-powershell and code-debug, but I bet most of the extension projects need to know about this issue, namely

need for detailed documentation of launch.json and similar files, in particular regarding how args are passed, and
(possibly) a need to modify how args are passed to adapt to the needs of the individual languages (but I'd prefer to see this done in a consistent way across all languages - hence my call for guidance from VSCode team).

You can use forward slashes in a path with PowerShell. WRT can you try putting single quotes inside the double quotes e.g. "'C:/program files (x86)'".

@rkeithhill in node-debug and mono-debug the debug adapter takes care of quoting arguments if they contain spaces. So
"args": [ "-g", "foo", "bar", "hello world" ]

will just work on all platforms and terminals.

thanks @weinand


Mend documentation change for client libraries

The fix suggested with #7 featured a wrong URL for the JS library, so this is mended here.

@viion Oh right I could've just edited the repo directly, but wasn't sure if that would've been uncool or not? I'm just gonna be safe and let you merge it.


[Question] why summary of request was removed from request page ?

I guess its due to rendering issues.
If we can manage rendering in frontend, we can save a bunch of requests to server.
Also we can generate csv of the rendered data with javascript.

The summary was too huge and the tables were becoming hard to manage and read from

Well, I think we can hide it and show a modal or something when show details clicked.


Add shared consts to oneOf objects

Description
Replaces https://github.com/faros-ai/airbyte-connectors/pull/865.
This PR makes the spec compatible for newer versions of Airbyte without changing the locations of anything in the resulting config object.
Type of change

[x] Bug fix
[ ] New feature
[ ] Breaking change

Related issues

Fix #1

Migration notes

Describe migration notes if any

Extra info

Add any additional information

@cjwooo before you merge, a few questions:

this is what you are trying to abide by, correct?
I do get the oneOf here but I do not get those; could you clarify?
in this iteration of the destination, is it still possible to have a single destination used by N different sources (i.e. fill several "source specific config" sections on the same destination)? Is it a problem for the current setup of CE?

Thank you @cjwooo !!

@cjwooo before you merge, a few questions:

this is what you are trying to abide by, correct?
I do get the oneOf here but I do not get those; could you clarify?
in this iteration of the destination, is it still possible to have a single destination used by N different sources (i.e. fill several "source specific config" sections on the same destination)? Is it a problem for the current setup of CE?

Yes
Every object defined in a oneOf has to have a const property, even if it's the only object, to be rendered properly in the Airbyte UI. The purpose of making it a oneOf at all is to have each source's config options in their own block in the Airbyte UI. Otherwise, all the configs would be displayed at the same "level" in the UI and it'd be impossible to determine which config applies to which source, plus ordering would be a mess.
Yes you can still configure multiple source configs.

You are not answering why, as far as I can tell, there are 2 nested oneOf: one in spec.json, and one in each source config.


Schlage BE469 scheduling does not work FYI

Just wanted to let you know if you are considering the Schlage BE469 deadbolt.  ive tested it and the scheduling function of the app does not work with this deadbolt.

duplicate https://github.com/ethayer/user-lock-manager/issues/35


a build error when CONFIG_MULTITHREADING=n

build command:
west build -b mimxrt1050_evk samples/hello_world
link error file: drivers/serial/uart_mcux_lpuart.c: 345:k_sleep(K_MSEC(1));
the Implementation of k_sleep is z_impl_k_sleep in sched.c, but not compiled, see kernel/CMakeLists.txt.
Maybe need a nop delay implementation for k_sleep when CONFIG_MULTITHREADING=n
@carlescufi

No, as documented in this page, CONFIG_MULTITHREADING=n is only supported on selected platforms and on a subset of drivers. If you'd like that UART driver to work without threads you will need to modify it so it doesn't use k_sleep(), at least conditionally.


Laying out multiple widgets next to each other

Often you want to group widgets together and lay the widget boxes out. This be best encapsulated as multiple parameterized classes. It would be great if paramnb.Widgets accepted a list of parameterized classes/instances and provided some options for specifying layout of the corresponding widget boxes and display parameters.

Previously we've used the Jupyter Dashboards notebook extension to do such layout, so that each group of widgets can control some different region of the page (one set of widgets above one plot, another above a different one, another as a bunch of global settings, etc.).  This works well in both notebook and dashboard form, because the widgets can then be associated with the particular cell they apply to in the notebook, and then the whole set of plots and widgets can be assembled into a dashboard whose layout is controlled by the notebook extension, not the code in the notebook.
Here, it sounds like you are proposing laying out the entire thing within one notebook cell, or at least doing complicated layouts within that cell, and possibly then combining the result of several such cells into an overall dashboard using the notebook extension.  That capability would certainly be useful, but we should try to be very clear about how we are expecting it to be used, and what it is not expected to do, to avoid having to solve general layout issues of the sort that Bokeh's kiwi addresses.
I think this notebook discusses related ideas.

This notebook from the Shaolin project discusses related ideas. I was able to run it using the datashader examples environment then conda installing networkx, pip installing 'planarity', git cloning the shaolin repo, and doing python setup.py develop inside that repo.
Some highlights of possible changes to ParamNB that might be related to what's in Shaolin:

Allowing multiple classes per Widgets instance? (proposed by @philippjfr above)
Allowing multiple Widgets calls to be combined into one cell (laid out alongside)? E.g. a HoloViews-style + operator, like: Widgets() + cols(Widgets()+Widgets(),1) (though cols isn't even yet available for hv, just proposed)
Making individual widgets accessible after Widgets() creation, to allow options to be changed on them per parameter.  (Presumably by supporting [] or .attribute access by parameter name.)
Allowing multiple callbacks in the same Widgets class
Possible layout specification language?  If we had such a thing, should consider whether it could be shared (at least by copy-paste) with holoviews; see related HoloViews issue.  Note that the HoloViews issue has only two digits in its number, while current issues have four, so you can tell this is a longstanding request!

I have the non crucial dependencies used for the shaolin examples. Now it only need pandas, numpy and ipywidgets.
Now it should be also possible to install it using pip install shaolin.
Later today I will upload an example of how it can be used with datashader if you are interested.


[HOLD for payment 2024-11-07] [$250] Exit survey response auto-validates without any user action.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.49-0
Reproducible in staging?: yes
Reproducible in production?: yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @suneox
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1729102027380939
Action Performed:

Go to settings.
Switch to Expensify Classic.
Select a reason and click Next.

Expected Result:
On the survey response page, errors should not be shown until the user clicks “Next” or focuses out of the survey response input.
Actual Result:
Upon navigating to the survey response page, the form validates automatically without any user action.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Standalone
[ ] Android: HybridApp
[x] Android: mWeb Chrome
[x] iOS: Standalone
[ ] iOS: HybridApp
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/106a82ee-3f8e-4ab9-9de5-0f64ead0e383

https://github.com/user-attachments/assets/5b61abbf-02cb-46fb-b31c-0afe4c4a05e2

Add any screenshot/video evidence

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021846936289595366564
Upwork Job ID:<PHONE_NUMBER>595366564
Last Price Increase: 2024-10-17
Automatic offers:

suneox | Reviewer | 104592534

Issue OwnerCurrent Issue Owner: @
Issue OwnerCurrent Issue Owner: @bfitzexpensify

@bfitzexpensify I’ve reported this issue and have more context on it, so I can assist with reviewing the proposal as a C+.

@suneox Can you reproduce the issue in MacOS: Chrome / Safari?

Can you reproduce the issue in MacOS: Chrome / Safari?

This issue can only be reproduced on MacOS/Safari, iOS/Safari and does not occur on MacOS/Chrome, Android/Chrome
https://github.com/user-attachments/assets/92f98a08-7892-4c7a-a6e6-15b3ef5d90ba

Proposal
Please re-state the problem that we are trying to solve in this issue.
The exit survey input field shows validation error when open the page.
What is the root cause of that problem?
On the page, we have a text input and a ref which calls updateMultilineInputRange.
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx#L123-L131
In updateMultilineInputRange, we do 2 things, setting the selection to the last character and scroll the input to the last line.
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/libs/updateMultilineInputRange/index.ts#L17-L24
On safari, setting the selection will focus on the input. There is a comment about that but was removed here.
Because we focus the input too early, the input gets blurred which I think is already a known issue which is why we delay an input focus. This is similar to iOS. updateMultilineInputRange has a file for iOS only which immediately focus on the input.
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/libs/updateMultilineInputRange/index.ios.ts#L22-L24
So, this issue happens on iOS native too.
Note that the updateMultilineInputRange index.ts file checks for setSelectionRange and value which only exists on web, so basically updateMultilineInputRange is only made for web.
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/libs/updateMultilineInputRange/index.ts#L17
What changes do you think we should make in order to solve the problem?

As mentioned before, updateMultilineInputRange does 2 things, setting the selection to the last character and scroll the input to the last line. We need to scroll the input to the last line immediately when mounted, but we need to delay setting the selection. The delay is happening inside useAutoFocusInput, so the solution is to duplicate the updateMultilineInputRange logic to useAutoFocusInput.

Accept a new param called shouldUpdateMultilineInputRange for useAutoFocusInput.
When the input callback ref is called, scroll the textinput
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/hooks/useAutoFocusInput.ts#L52-L58

if (shouldUpdateMultilineInputRange && ref && 'scrollTop' in ref) {
    ref.scrollTop = ref.scrollHeight;
}

When it's time to focus, set the selection
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/hooks/useAutoFocusInput.ts#L27-L30

if (shouldUpdateMultilineInputRange && inputRef.current && 'setSelectionRange' in inputRef.current) {
    const length = inputRef.current.value.length;
    (inputRef.current as HTMLInputElement).setSelectionRange(length, length);
}

Change all the ref type to AnimatedTextInputRef to fix the typing.
Pass true to useAutoFocusInput.
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx#L43
Remove updateMultilineInputRange here
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx#L123-L131

For step 2 & 3, we can optionally create a platform-specific file for that to make it cleaner.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Upon navigating to the survey response page, the form validates automatically without any user action.
What is the root cause of that problem?

In Safari, calling the setSelectionRange function:
https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx#L128
always causes the input to focus. This is standard behavior in Safari. If we attempt to set focus earlier, the input blurs, triggering validation logic tied to the onBlur event.

What changes do you think we should make in order to solve the problem?

We need to make sure, we only call the updateMultilineInputRange if the input is focused by updating condition:

So we can remove:

https://github.com/Expensify/App/blob/780e09e10fbd33f9806e5e1b30a22bd3703de742/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx#L127-L129
then add:
                            onFocus={(el) => {
                                if (hasSetRangeRef.current) {
                                    return;
                                }
                                hasSetRangeRef.current = true;
                                updateMultilineInputRange(inputRef.current);
                            }}

to this. hasSetRangeRef is a ref flag to make sure we only call the set selection range one time.
What alternative solutions did you explore? (Optional)

Cool, assigned you @suneox

The error seems to come from how the form validation is configured. Instead of running the validation when the screen opens, we should trigger it only when the "Next" button is clicked. One way to fix this is by using a form validation library like Zod or Yup, and tying the validation logic to the button's onPress event. This way, the validation will only run when the user interacts with the form.
Another option is to manage the error state manually, where we keep error messages in the component’s state and trigger validation only on button click. We could also consider moving all the error handling logic into a separate file to keep the code cleaner and more manageable.

https://www.upwork.com/freelancers/~01f528c40dce80e597
<EMAIL_ADDRESS>

and if it is only for specific device tell me the device names and i will shear you my thoughts 10Q

@fasileds Welcome to Expensify! First, please take some time to read through the guidelines on how to contribute to this project. This will help you understand the process and expectations for contributing effectively.

@truph01 proposal LGTM it’s a simple solution to handle this issue.
🎀 👀 🎀 C+ reviewed

If we apply the selected solution, the text input scroll to bottom will only happen on focus.
https://github.com/user-attachments/assets/c6534a56-a07d-4fa9-a814-18f904ab5640
This is how it behaves currently.
https://github.com/user-attachments/assets/55eacea3-d17e-4ca9-86fb-b788dcd256aa
I mentioned this in my proposal too

We need to scroll the input to the last line immediately when mounted, but we need to delay setting the selection.

If we apply the selected solution, the text input scroll to bottom will only happen on focus.

I don’t think it’s a big issue since this behavior currently happens in other areas as well, like in the task description.
https://github.com/user-attachments/assets/fc03f27f-0bcd-4226-80d9-c651ac5b0531

It happens in task description because it uses a markdown text input, which doesn't have setSelectionRange.
https://github.com/Expensify/App/blob/66cf824036a51183d73dab2cc621901e43fe3196/src/libs/updateMultilineInputRange/index.ts#L17-L24
We scroll immediately to the bottom to solve this issue. If we are fine to change it back, then I think we can just remove updateMultilineInputRange.
Or we can just take input.scrollTop = input.scrollHeight; and not the setSelectionRange because looks like all platforms by default set the selection to the end already.

We scroll immediately to the bottom to solve this https://github.com/Expensify/App/issues/21654.

@bernhardoj Thanks for pointing out the implementation history. Since we already have issue coverage for the case of setting scrollTop immediately so we can proceed with your solution.

I have updated the selected proposal
cc: @neil-marcellini

Ok, I'm good with @bernhardoj's proposal too

PR is ready
cc: @suneox

Issue not reproducible during KI retests. (First week)

BugZero Checklist:

[ ] [Contributor] Classify the bug:

Bug classification

Source of bug:

[ ] 1a. Result of the original design (eg. a case wasn't considered)
[ ] 1b. Mistake during implementation
[ ] 1c. Backend bug
[ ] 1z. Other:

Where bug was reported:

[ ] 2a. Reported on production
[ ] 2b. Reported on staging (deploy blocker)
[ ] 2c. Reported on a PR
[ ] 2z. Other:

Who reported the bug:

[ ] 3a. Expensify user
[ ] 3b. Expensify employee
[ ] 3c. Contributor
[ ] 3d. QA
[ ] 3z. Other:

[ ] [Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment:

[ ] [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion:

[ ] [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

Regression Test Proposal Template

[ ] [BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue:

Regression Test Proposal
Precondition:

Test:

Do we agree 👍 or 👎

Payment summary:
@suneox to be paid $250 for C+ work - paid via Upwork ✅
@bernhardoj to be paid $250 via NewDot Manual Requests for contributor work

Requested in ND.

$250 approved for @bernhardoj


unable to locate pass.lst

python instagram.py Sami09.1 pass.lst 16
please respon

Take a look at this

@Pure-L0G1C
python instagram.py Sami09.1 pass.lst 16
[!] Unable to locate pass.lst
how to solve this


Specialize * and / to Number

to close #42 and close #50

Codecov Report

Merging #54 (8352ae3) into dev (bb9edac) will increase coverage by 0.01%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##              dev      #54      +/-   ##
==========================================
+ Coverage   95.60%   95.62%   +0.01%
==========================================
  Files           7        8       +1
  Lines         410      411       +1
==========================================
+ Hits          392      393       +1
  Misses         18       18

Impacted Files
Coverage Δ

src/arithmetic.jl
97.05% <100.00%> (ø)

src/CategoricalDistributions.jl
100.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Testing has just segfaulted on Julia 1?? Cannot reproduce on my mac.
Going to retry CI.


How to save or resume draft editing ? in which format should I saved?

Describe the bug
I want to save editing as draft and continue or you can say resume from my draft section?
To Reproduce
Steps to reproduce the behavior:

Add image
Add text
Then how to save draft?
If draft can be done then in which format should be I have to saved?
If I resume my work from draft then that bitmap should be editable.

Expected behavior
I want to allow User to saved draft and resume his work where he left,

Duplicate of #119


check/update links to asset documentation once changes to flutter website land

https://github.com/flutter/website/pull/8710 is going to update the Adding assets and images. Once this lands, we should take a pass through the relevant code to make sure links still work and have up-to-date titles.

https://github.com/flutter/website/pull/8710 was merged.


Write tests for distro-downloading

Write tests for the downloading mechanism. For the three cases, each one negative, one positive:
positive:

ohai-emacs
bodil/ohai-emacs
github.com/bodil/ohai-emacs

negative:

nonexisting
nonexisting/nonexisting
domain.tld/nonexisting/nonexisting

I use ohai-emacs in these examples, because I don't usually use this distribution.

Resolved with 2e0d5bc4f1c5e20016a72e4a3db952bab2817f5c


overworld | Item list as checkbox, not numbers

Motivation
In the playtest, players were confused bc you can only gather 1 of each item, but item list in overworld ui showed amounts -> led players to believe there were more items to gather
Implementation
Change the amount displayed to a checkbox that is checked the first time the amount reaches 1

replaced by #362 as it was more clear & more usable for the final game


Thank you for this great work - Arcanum 031

Arcanum runs great with 031.
You made it possible for me to play this game comfortably.
Is there any way to donate you some money?

Thanks! I'm not accepting donations though. This is just a hobby project I work on from time to time, I'm not looking to make any money with it.