Getting stuck on loop "Last transmitted timestamp is simply 0 and hence continuing" when calling /call API

bolna-app-1   | future: <Task finished name='Task-33' coro=<write_request_logs() done, defined at /usr/local/lib/python3.10/site-packages/bolna/helpers/utils.py:414> exception=TypeError("object of type 'NoneType' has no len()") created at /usr/local/lib/python3.10/asyncio/tasks.py:337>
bolna-app-1   | source_traceback: Object created at (most recent call last):
bolna-app-1   |   File "/usr/local/bin/uvicorn", line 8, in <module>
bolna-app-1   |     sys.exit(main())
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
bolna-app-1   |     return self.main(*args, **kwargs)
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1078, in main
bolna-app-1   |     rv = self.invoke(ctx)
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
bolna-app-1   |     return ctx.invoke(self.callback, **ctx.params)
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
bolna-app-1   |     return __callback(*args, **kwargs)
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/main.py", line 410, in main
bolna-app-1   |     run(
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/main.py", line 578, in run
bolna-app-1   |     server.run()
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/server.py", line 61, in run
bolna-app-1   |     return asyncio.run(self.serve(sockets=sockets))
bolna-app-1   |   File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
bolna-app-1   |     return loop.run_until_complete(main)
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/bolna/agent_manager/task_manager.py", line 1341, in __first_message
bolna-app-1   |     await self._synthesize(create_ws_data_packet(self.kwargs.get('agent_welcome_message', None), meta_info= meta_info))
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/bolna/agent_manager/task_manager.py", line 1172, in _synthesize
bolna-app-1   |     self.__convert_to_request_log(message = text, meta_info= meta_info, component="synthesizer", direction="response", model = self.synthesizer_provider, is_cached= True, engine=self.tools['synthesizer'].get_engine())
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/bolna/agent_manager/task_manager.py", line 626, in __convert_to_request_log
bolna-app-1   |     asyncio.create_task(write_request_logs(log, self.run_id))
bolna-app-1   |   File "/usr/local/lib/python3.10/asyncio/tasks.py", line 337, in create_task
bolna-app-1   |     task = loop.create_task(coro)
bolna-app-1   | Traceback (most recent call last):
bolna-app-1   |   File "/usr/local/lib/python3.10/site-packages/bolna/helpers/utils.py", line 423, in write_request_logs
bolna-app-1   |     component_details = [message['data'], None, None,len(message['data']), message['cached'], None, message['engine']]
bolna-app-1   | TypeError: object of type 'NoneType' has no len()
bolna-app-1   | 2024-05-19 07:00:31.360 INFO {task_manager} [__check_for_completion] Last transmitted timestamp is simply 0 and hence continuing
bolna-app-1   | 2024-05-19 07:00:33.361 INFO {task_manager} [__check_for_completion] Last transmitted timestamp is simply 0 and hence continuing
bolna-app-1   | 2024-05-19 07:00:35.362 INFO {task_manager} [__check_for_completion] Last transmitted timestamp is simply 0 and hence continuing
bolna-app-1   | 2024-05-19 07:00:37.363 INFO {task_manager} [__check_for_completion] Last transmitted timestamp is simply 0 and hence continuing
bolna-app-1   | 2024-05-19 07:00:38.771 INFO {telephony} [_listen] call stopping
bolna-app-1   | 2024-05-19 07:00:39.363 INFO {task_manager} [__check_for_completion] Last transmitted timestamp is simply 0 and hence continuing
bolna-app-1   | 2024-05-19 07:00:39.364 ERROR {deepgram_transcriber} [transcribe] Error in transcribe:
bolna-app-1   | 2024-05-19 07:00:41.362 INFO {task_manager} [__check_for_completion] Last transmitted timestamp is simply 0 and hence continuing
Gracefully stopping... (press Ctrl+C again to force)

@saksham003 thanks for reporting this. Can you also paste the agent config you tried? Also, did you take the latest pull?

@prateeksachan yes I did pull the latest changes.
Here's the agent config I used -
{
  "agent_config": {
    "agent_name": "Nuvae",
    "agent_type": "Pre Authorization Agent",
    "agent_welcome_message": "Hi, my name is Neha.",
    "tasks": [
      {
        "task_type": "conversation",
        "call_cancellation_prompt": null,
        "hangup_after_LLMCall": false,
        "hangup_after_silence": 10,
        "incremental_delay": 100,
        "interruption_backoff_period": 100,
        "number_of_words_for_interruption": 3,
        "optimize_latency": true,
        "task_config": {
          "hangup_after_silence": 10
        },
        "tools_config": {
          "llm_agent": {
            "max_tokens": 100,
            "family": "openai",
            "model": "gpt-3.5-turbo",
            "agent_flow_type": "streaming",
            "use_fallback": true,
            "temperature": 0.2,
            "base_url": null
          },
          "synthesizer": {
            "audio_format": "wav",
            "buffer_size": 100,
            "provider": "elevenlabs",
            "provider_config": {
                "voice": "Rachel",
                "model": "eleven_multilingual_v2",
                "voice_id": "21m00Tcm4TlvDq8ikWAM"
            },
            "stream": true
          },
          "transcriber": {
            "model": "deepgram",
            "stream": true,
            "language": "en",
            "endpointing": 400,
            "keywords": ""
          },
          "input": {
            "provider": "twilio",
            "format": "wav"
          },
          "output": {
            "provider": "twilio",
            "format": "wav"
          }
        },
        "toolchain": {
          "execution": "parallel",
          "pipelines": [["transcriber", "llm", "synthesizer"]]
        }
      }
    ]
  },
  "agent_prompts": {
    "task_1": {
      "system_prompt": "You will always be very concise and brief with your responses.  You will be very helpful and kind. Customers will call you and give their order. You will follow this script. You will ONLY ask 1 question at a time. Once you get an answer you will move on to the next one. \n 1) You will start your conversation by saying. \"Hi! I am Rachel from Pizza Square. Am I speaking to Michael from 345 Palm Square?\" All your responses should be as long as this one.) \n 2) You will ask the customer what they would like to order. Only ask the next question once you have a clear answer to this question. If the customer wants assistance, you will ask them about their preferences. \n 3) You will ask the customer for the required size - regular, medium, or large. If the customer has follow up questions, you will clarify, that the small is for 1 person and 4 dollars, the medium is for 2 people and 7 dollars and the large is for 4 people and 11 dollars. Only ask the next question once you have a clear answer to this question. \n 4) Once confirmed, you will ask whether the customer wants to pay the amount of for the chosen pizza via card or cash. \n 5) You will then tell the customer that their pizza is in the oven and will reach within 30 minutes. \n You have options of 3 pizzas. You will only give description if the user asks for it.  \n 1) The BBQ Chicken - Which has Chicken, Mushrooms, Olives in a tomato base 2) The Pesto Dominator - Which has Chicken, Bacon and Ham in a green base. This is the best-selling pizza. 3) The Veg Ultimate - Which has tofu, mushrooms, olives, tomatoes in a tomato base. "
    }
  }
}

@saksham003 can you make sure the docker image you're building is recreating from the latest master? The logs you've posted seem to be from an earlier time. Can you delete the local docker image and try again? docker images -a | grep "bolna"
In the meantime, I'll add a check to re-create the images in case of changes via docker.

@saksham003 have just pushed changes in 97e9daa20b31efcbb7f0f89f7b79139e618640a6 related to docker commands. Can you please check and let us know.
https://github.com/bolna-ai/bolna/blob/58cbfb907c697046cfdce5e013f9dc450717807d/README.md?plain=1#L55-L57

@saksham003 Thanks for the logs. Let me check this - this one seems to be a different issue from deepgram's end.

@saksham003 I'm not able to reproduce the transcriber issue as per your logs. Can you make sure you've added deepgram's token DEEPGRAM_AUTH_TOKEN in your environment file?
The other error related to synthesizer Error in synthesizer: 'NoneType' object has no attribute 'encode' you can ignore for now, working on a fix for that in parallel.
If you're still unable to get the trascriber working, would like to get on a call and debug it. Can you please mark any slot on https://calendly.com/bolna/30min?

@prateeksachan Yes I've added DEEPGRAM_AUTH_TOKEN in .env file. Everything was functioning correctly for me a few days ago, but I have now started encountering this error unexpectedly.

@prateeksachan any update on this issue

@saksham003 I've removed a few things and introduced agent_welcome_message that should fix the synthesizer exceptions in 5daac5b660b66c3d2367537be8468fde9651c645. Can you check once.
Also, can you also re-verify that you're able to connect to Deepgram and there's no considerable latency.
I've tried out the agent_config which you'd posted.
{
  "agent_config": {
    "agent_name": "test",
    "agent_type": "bolna_test",
    "agent_welcome_message": "Hi, my name is Rachel.",
    "tasks": [
      {
        "task_type": "conversation",
        "call_cancellation_prompt": null,
        "hangup_after_LLMCall": false,
        "hangup_after_silence": 10,
        "incremental_delay": 100,
        "interruption_backoff_period": 100,
        "number_of_words_for_interruption": 3,
        "optimize_latency": true,
        "task_config": {
          "hangup_after_silence": 10
        },
        "tools_config": {
          "llm_agent": {
            "max_tokens": 100,
            "family": "openai",
            "model": "gpt-3.5-turbo",
            "agent_flow_type": "streaming",
            "use_fallback": true,
            "temperature": 0.2,
            "base_url": null
          },
          "synthesizer": {
            "audio_format": "wav",
            "buffer_size": 100,
            "provider": "elevenlabs",
            "provider_config": {
                "voice": "Rachel",
                "model": "eleven_multilingual_v2",
                "voice_id": "21m00Tcm4TlvDq8ikWAM"
            },
            "stream": true
          },
          "transcriber": {
            "model": "deepgram",
            "stream": true,
            "language": "en",
            "endpointing": 400,
            "keywords": ""
          },
          "input": {
            "provider": "twilio",
            "format": "wav"
          },
          "output": {
            "provider": "twilio",
            "format": "wav"
          }
        },
        "toolchain": {
          "execution": "parallel",
          "pipelines": [["transcriber", "llm", "synthesizer"]]
        }
      }
    ]
  },
  "agent_prompts": {
    "task_1": {
      "system_prompt": "You will always be very concise and brief with your responses.  You will be very helpful and kind. Customers will call you and give their order. You will follow this script. You will ONLY ask 1 question at a time. Once you get an answer you will move on to the next one. \n 1) You will start your conversation by saying. \"Hi! I am Rachel from Pizza Square. Am I speaking to Michael from 345 Palm Square?\" All your responses should be as long as this one.) \n 2) You will ask the customer what they would like to order. Only ask the next question once you have a clear answer to this question. If the customer wants assistance, you will ask them about their preferences. \n 3) You will ask the customer for the required size - regular, medium, or large. If the customer has follow up questions, you will clarify, that the small is for 1 person and 4 dollars, the medium is for 2 people and 7 dollars and the large is for 4 people and 11 dollars. Only ask the next question once you have a clear answer to this question. \n 4) Once confirmed, you will ask whether the customer wants to pay the amount of for the chosen pizza via card or cash. \n 5) You will then tell the customer that their pizza is in the oven and will reach within 30 minutes. \n You have options of 3 pizzas. You will only give description if the user asks for it.  \n 1) The BBQ Chicken - Which has Chicken, Mushrooms, Olives in a tomato base 2) The Pesto Dominator - Which has Chicken, Bacon and Ham in a green base. This is the best-selling pizza. 3) The Veg Ultimate - Which has tofu, mushrooms, olives, tomatoes in a tomato base. "
    }
  }
}

@prateeksachan I'm getting the same issue with DeepGram, this error is getting logged but there are no details - ERROR {deepgram_transcriber} [transcribe] Error in transcribe:
Here are all the logs -
2024-05-20 19:22:59 2024-05-20 13:52:59.933 INFO {quickstart_server} [websocket_endpoint] Connected to ws
2024-05-20 19:22:59 INFO:     ('<IP_ADDRESS>', 60860) - "WebSocket /chat/v1/677d079a-37f3-4164-8143-1786150a2c7e" [accepted]
2024-05-20 19:22:59 INFO:     connection open
2024-05-20 19:22:59 2024-05-20 13:52:59.936 INFO {quickstart_server} [websocket_endpoint] Retrieved agent config: {"agent_name": "bolna_test", "agent_type": "test", "tasks": [{"tools_config": {"llm_agent": {"model": "gpt-3.5-turbo", "max_tokens": 100, "agent_flow_type": "streaming", "family": "openai", "temperature": 0.2, "request_json": false, "stop": null, "top_k": 0, "top_p": 0.9, "min_p": 0.1, "frequency_penalty": 0.0, "presence_penalty": 0.0, "provider": "openai", "base_url": null, "routes": null, "extraction_details": null, "summarization_details": null}, "synthesizer": {"provider": "elevenlabs", "provider_config": {"voice": "Rachel", "voice_id": "21m00Tcm4TlvDq8ikWAM", "model": "eleven_multilingual_v2", "temperature": 0.5, "similarity_boost": 0.5}, "stream": true, "buffer_size": 100, "audio_format": "wav", "caching": true}, "transcriber": {"model": "deepgram", "language": "en", "stream": true, "sampling_rate": 16000, "encoding": "linear16", "endpointing": 400, "keywords": null}, "input": {"provider": "twilio", "format": "wav"}, "output": {"provider": "twilio", "format": "wav"}, "api_tools": null}, "toolchain": {"execution": "parallel", "pipelines": [["transcriber", "llm", "synthesizer"]]}, "task_type": "conversation", "task_config": {"optimize_latency": true, "hangup_after_silence": 10, "incremental_delay": 100, "number_of_words_for_interruption": 1, "interruption_backoff_period": 100, "hangup_after_LLMCall": false, "call_cancellation_prompt": null, "backchanneling": false, "backchanneling_message_gap": 5, "backchanneling_start_delay": 5}}], "assistant_status": "seeding"}
2024-05-20 19:22:59 2024-05-20 13:52:59.936 INFO {assistant_manager} [run] Running task 0 {'tools_config': {'llm_agent': {'model': 'gpt-3.5-turbo', 'max_tokens': 100, 'agent_flow_type': 'streaming', 'family': 'openai', 'temperature': 0.2, 'request_json': False, 'stop': None, 'top_k': 0, 'top_p': 0.9, 'min_p': 0.1, 'frequency_penalty': 0.0, 'presence_penalty': 0.0, 'provider': 'openai', 'base_url': None, 'routes': None, 'extraction_details': None, 'summarization_details': None}, 'synthesizer': {'provider': 'elevenlabs', 'provider_config': {'voice': 'Rachel', 'voice_id': '21m00Tcm4TlvDq8ikWAM', 'model': 'eleven_multilingual_v2', 'temperature': 0.5, 'similarity_boost': 0.5}, 'stream': True, 'buffer_size': 100, 'audio_format': 'wav', 'caching': True}, 'transcriber': {'model': 'deepgram', 'language': 'en', 'stream': True, 'sampling_rate': 16000, 'encoding': 'linear16', 'endpointing': 400, 'keywords': None}, 'input': {'provider': 'twilio', 'format': 'wav'}, 'output': {'provider': 'twilio', 'format': 'wav'}, 'api_tools': None}, 'toolchain': {'execution': 'parallel', 'pipelines': [['transcriber', 'llm', 'synthesizer']]}, 'task_type': 'conversation', 'task_config': {'optimize_latency': True, 'hangup_after_silence': 10, 'incremental_delay': 100, 'number_of_words_for_interruption': 1, 'interruption_backoff_period': 100, 'hangup_after_LLMCall': False, 'call_cancellation_prompt': None, 'backchanneling': False, 'backchanneling_message_gap': 5, 'backchanneling_start_delay': 5}} and sending kwargs {'agent_welcome_message': 'This call is being recorded for quality assurance and training. Please speak now.'}
2024-05-20 19:22:59 2024-05-20 13:52:59.937 INFO {task_manager} [__init__] doing task {'tools_config': {'llm_agent': {'model': 'gpt-3.5-turbo', 'max_tokens': 100, 'agent_flow_type': 'streaming', 'family': 'openai', 'temperature': 0.2, 'request_json': False, 'stop': None, 'top_k': 0, 'top_p': 0.9, 'min_p': 0.1, 'frequency_penalty': 0.0, 'presence_penalty': 0.0, 'provider': 'openai', 'base_url': None, 'routes': None, 'extraction_details': None, 'summarization_details': None}, 'synthesizer': {'provider': 'elevenlabs', 'provider_config': {'voice': 'Rachel', 'voice_id': '21m00Tcm4TlvDq8ikWAM', 'model': 'eleven_multilingual_v2', 'temperature': 0.5, 'similarity_boost': 0.5}, 'stream': True, 'buffer_size': 100, 'audio_format': 'wav', 'caching': True}, 'transcriber': {'model': 'deepgram', 'language': 'en', 'stream': True, 'sampling_rate': 16000, 'encoding': 'linear16', 'endpointing': 400, 'keywords': None}, 'input': {'provider': 'twilio', 'format': 'wav'}, 'output': {'provider': 'twilio', 'format': 'wav'}, 'api_tools': None}, 'toolchain': {'execution': 'parallel', 'pipelines': [['transcriber', 'llm', 'synthesizer']]}, 'task_type': 'conversation', 'task_config': {'optimize_latency': True, 'hangup_after_silence': 10, 'incremental_delay': 100, 'number_of_words_for_interruption': 1, 'interruption_backoff_period': 100, 'hangup_after_LLMCall': False, 'call_cancellation_prompt': None, 'backchanneling': False, 'backchanneling_message_gap': 5, 'backchanneling_start_delay': 5}}
2024-05-20 19:22:59 2024-05-20 13:52:59.937 INFO {task_manager} [__init__] Connected via websocket
2024-05-20 19:22:59 2024-05-20 13:52:59.937 INFO {task_manager} [__setup_input_handlers] Connected through dashboard None
2024-05-20 19:22:59 2024-05-20 13:52:59.937 INFO {task_manager} [__setup_output_handlers] Making sure that the sampling rate for output handler is 8000
2024-05-20 19:22:59 2024-05-20 13:52:59.938 INFO {task_manager} [__init__] History []
2024-05-20 19:22:59 2024-05-20 13:52:59.938 INFO {task_manager} [__init__] TASK CONFIG {'llm_agent': {'model': 'gpt-3.5-turbo', 'max_tokens': 100, 'agent_flow_type': 'streaming', 'family': 'openai', 'temperature': 0.2, 'request_json': False, 'stop': None, 'top_k': 0, 'top_p': 0.9, 'min_p': 0.1, 'frequency_penalty': 0.0, 'presence_penalty': 0.0, 'provider': 'openai', 'base_url': None, 'routes': None, 'extraction_details': None, 'summarization_details': None}, 'synthesizer': {'provider': 'elevenlabs', 'provider_config': {'voice': 'Rachel', 'voice_id': '21m00Tcm4TlvDq8ikWAM', 'model': 'eleven_multilingual_v2', 'temperature': 0.5, 'similarity_boost': 0.5, 'sampling_rate': 8000}, 'stream': True, 'buffer_size': 100, 'audio_format': 'pcm', 'caching': True}, 'transcriber': {'model': 'deepgram', 'language': 'en', 'stream': True, 'sampling_rate': 16000, 'encoding': 'linear16', 'endpointing': 400, 'keywords': None}, 'input': {'provider': 'twilio', 'format': 'wav'}, 'output': {'provider': 'twilio', 'format': 'wav'}, 'api_tools': None}
2024-05-20 19:22:59 2024-05-20 13:52:59.939 INFO {task_manager} [__init__] task initialization completed
2024-05-20 19:22:59 2024-05-20 13:52:59.939 INFO {task_manager} [__setup_transcriber] Setting up transcriber
2024-05-20 19:22:59 2024-05-20 13:52:59.939 INFO {deepgram_transcriber} [__init__] Initializing transcriber {'agent_welcome_message': 'This call is being recorded for quality assurance and training. Please speak now.'}
2024-05-20 19:22:59 2024-05-20 13:52:59.940 INFO {deepgram_transcriber} [__init__] self.stream: True
2024-05-20 19:22:59 2024-05-20 13:52:59.940 INFO {task_manager} [__setup_synthesizer] Synthesizer config: {'provider': 'elevenlabs', 'provider_config': {'voice': 'Rachel', 'voice_id': '21m00Tcm4TlvDq8ikWAM', 'model': 'eleven_multilingual_v2', 'temperature': 0.5, 'similarity_boost': 0.5, 'sampling_rate': 8000}, 'stream': True, 'buffer_size': 100, 'audio_format': 'pcm', 'caching': True}
2024-05-20 19:22:59 2024-05-20 13:52:59.940 INFO {elevenlabs_synthesizer} [__init__] Using turbo or not eleven_turbo_v2
2024-05-20 19:22:59 2024-05-20 13:52:59.940 INFO {task_manager} [__setup_llm] ### PROVIDER openai
2024-05-20 19:22:59 2024-05-20 13:52:59.941 INFO {task_manager} [__setup_llm] LLM CONFIG {'model': 'gpt-3.5-turbo', 'max_tokens': 100, 'buffer_size': 100}
2024-05-20 19:22:59 2024-05-20 13:52:59.941 INFO {openai_llm} [__init__] Initializing OpenAI LLM with model: gpt-3.5-turbo and maxc tokens 100
2024-05-20 19:22:59 2024-05-20 13:52:59.978 INFO {openai_llm} [__init__] Initializing OpenAI LLM with model: gpt-3.5-turbo and maxc tokens 100
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__setup_tasks] prompt and config setup completed
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__init__] Conversation config {'optimize_latency': True, 'hangup_after_silence': 10, 'incremental_delay': 100, 'number_of_words_for_interruption': 1, 'interruption_backoff_period': 100, 'hangup_after_LLMCall': False, 'call_cancellation_prompt': None, 'backchanneling': False, 'backchanneling_message_gap': 5, 'backchanneling_start_delay': 5}
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__init__] Processing interim results true
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__init__] minimum wait duration 400
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__init__] incremental_delay - 100
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__init__] hangup_after_silence 10
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__init__] Not setting up backchanneling
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [__init__] Agent welcome message present This call is being recorded for quality assurance and training. Please speak now.
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {task_manager} [load_prompt] prompt and config setup started
2024-05-20 19:23:00 2024-05-20 13:53:00.008 INFO {utils} [get_prompt_responses] Loading up the conversation details from the local file
2024-05-20 19:23:00 2024-05-20 13:53:00.013 INFO {task_manager} [run] starting task_id 0
2024-05-20 19:23:00 2024-05-20 13:53:00.040 INFO {task_manager} [run] Starting synthesizer task
2024-05-20 19:23:00 2024-05-20 13:53:00.047 INFO {task_manager} [run] Starting the first message task
2024-05-20 19:23:00 2024-05-20 13:53:00.067 WARNING {runners} [run] Executing <Task pending name='Task-32' coro=<WebSocketProtocol.run_asgi() running at /usr/local/lib/python3.10/site-packages/uvicorn/protocols/websockets/websockets_impl.py:254> wait_for=<_GatheringFuture pending cb=[Task.task_wakeup()] created at /usr/local/lib/python3.10/asyncio/tasks.py:665> cb=[WebSocketProtocol.on_task_complete()] created at /usr/local/lib/python3.10/site-packages/uvicorn/protocols/websockets/websockets_impl.py:207> took 0.131 seconds
2024-05-20 19:23:00 2024-05-20 13:53:00.070 INFO {task_manager} [__handle_initial_silence] Checking for initial silence 15
2024-05-20 19:23:00 2024-05-20 13:53:00.076 INFO {task_manager} [_listen_transcriber] Starting transcriber task
2024-05-20 19:23:00 2024-05-20 13:53:00.081 INFO {task_manager} [__listen_synthesizer] Opening websocket connection to synthesizer
2024-05-20 19:23:00 2024-05-20 13:53:00.098 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:00 2024-05-20 13:53:00.103 INFO {task_manager} [__first_message] Executing the first message task
2024-05-20 19:23:00 2024-05-20 13:53:00.103 INFO {task_manager} [__first_message] Stream id is still None, so not passing it
2024-05-20 19:23:00 2024-05-20 13:53:00.115 INFO {deepgram_transcriber} [transcribe] STARTED TRANSCRIBING
2024-05-20 19:23:00 2024-05-20 13:53:00.116 INFO {deepgram_transcriber} [get_deepgram_ws_url] Deepgram websocket url: wss://api.deepgram.com/v1/listen?model=nova-2&filler_words=true&diarize=true&language=en&vad_events=true&encoding=mulaw&sample_rate=8000&channels=1&interim_results=true&utterance_end_ms=1000
2024-05-20 19:23:00 2024-05-20 13:53:00.203 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:00 2024-05-20 13:53:00.515 INFO {elevenlabs_synthesizer} [open_connection] Connected to the server
2024-05-20 19:23:00 2024-05-20 13:53:00.515 INFO {task_manager} [__listen_synthesizer] Listening to synthesizer
2024-05-20 19:23:00 2024-05-20 13:53:00.612 INFO {task_manager} [__first_message] Got stream sid and hence sending the first message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:00 2024-05-20 13:53:00.612 INFO {task_manager} [__first_message] Generating This call is being recorded for quality assurance and training. Please speak now.
2024-05-20 19:23:00 2024-05-20 13:53:00.615 INFO {task_manager} [_synthesize] ##### sending text to elevenlabs for generation: This call is being recorded for quality assurance and training. Please speak now.
2024-05-20 19:23:00 2024-05-20 13:53:00.615 INFO {task_manager} [_synthesize] Cached response and hence sending preprocessed text
2024-05-20 19:23:00 2024-05-20 13:53:00.619 INFO {task_manager} [__send_preprocessed_audio] File doesn't exist in S3. Hence we're synthesizing it from synthesizer
2024-05-20 19:23:00 2024-05-20 13:53:00.622 INFO {task_manager} [_synthesize] ##### sending text to elevenlabs for generation: This call is being recorded for quality assurance and training. Please speak now.
2024-05-20 19:23:00 2024-05-20 13:53:00.622 INFO {elevenlabs_synthesizer} [push] Pushed message to internal queue {'data': 'This call is being recorded for quality assurance and training. Please speak now.', 'meta_info': {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'pcm', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855}}
2024-05-20 19:23:00 2024-05-20 13:53:00.625 INFO {utils} [write_request_logs] Message {'direction': 'request', 'data': 'This call is being recorded for quality assurance and training. Please speak now.', 'leg_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'time': '2024-05-20 13:53:00', 'component': 'synthesizer', 'sequence_id': -1, 'model': 'elevenlabs', 'cached': False, 'is_final': False, 'engine': 'eleven_turbo_v2'}
2024-05-20 19:23:00 2024-05-20 13:53:00.628 INFO {utils} [write_request_logs] Message {'direction': 'response', 'data': 'This call is being recorded for quality assurance and training. Please speak now.', 'leg_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'time': '2024-05-20 13:53:00', 'component': 'synthesizer', 'sequence_id': -1, 'model': 'elevenlabs', 'cached': True, 'is_final': False, 'engine': 'eleven_turbo_v2'}
2024-05-20 19:23:00 2024-05-20 13:53:00.632 INFO {utils} [write_request_logs] Message {'direction': 'request', 'data': 'This call is being recorded for quality assurance and training. Please speak now.', 'leg_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'time': '2024-05-20 13:53:00', 'component': 'synthesizer', 'sequence_id': -1, 'model': 'elevenlabs', 'cached': False, 'is_final': False, 'engine': 'eleven_turbo_v2'}
2024-05-20 19:23:00 2024-05-20 13:53:00.636 INFO {elevenlabs_synthesizer} [generate] Generating TTS response for message: {'data': 'This call is being recorded for quality assurance and training. Please speak now.', 'meta_info': {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'pcm', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855}}
2024-05-20 19:23:00 2024-05-20 13:53:00.636 INFO {inmemory_scalar_cache} [get] Cache miss for key This call is being recorded for quality assurance and training. Please speak now.
2024-05-20 19:23:00 2024-05-20 13:53:00.636 INFO {elevenlabs_synthesizer} [generate] Not a cache hit [] and hence increasing characters by 81
2024-05-20 19:23:00 2024-05-20 13:53:00.636 INFO {elevenlabs_synthesizer} [__generate_http] text This call is being recorded for quality assurance and training. Please speak now.
2024-05-20 19:23:01 2024-05-20 13:53:01.901 INFO {utils} [convert_audio_to_wav] CONVERTING AUDIO TO WAV mp3
2024-05-20 19:23:02 2024-05-20 13:53:02.113 INFO {utils} [convert_audio_to_wav] GOT audio wav <pydub.audio_segment.AudioSegment object at 0x7efef43fb190>
2024-05-20 19:23:02 2024-05-20 13:53:02.113 INFO {utils} [convert_audio_to_wav] SENDING BACK WAV
2024-05-20 19:23:02 2024-05-20 13:53:02.113 INFO {elevenlabs_synthesizer} [generate] self.sampling_rate 8000
2024-05-20 19:23:02 /usr/local/lib/python3.10/site-packages/torchaudio/backend/sox_io_backend.py:235: UserWarning: File-like object support in sox_io backend is deprecated, and will be removed in v2.1. See https://github.com/pytorch/audio/issues/2950 for the detail.Please migrate to the new dispatcher, or use soundfile backend.
2024-05-20 19:23:02   warnings.warn(_deprecation_message)
2024-05-20 19:23:02 2024-05-20 13:53:02.118 INFO {utils} [resample] Resampling from 44100 to 8000
2024-05-20 19:23:02 /usr/local/lib/python3.10/site-packages/torchaudio/backend/sox_io_backend.py:416: UserWarning: File-like object support in sox_io backend is deprecated, and will be removed in v2.1. See https://github.com/pytorch/audio/issues/2950 for the detail.Please migrate to the new dispatcher, or use soundfile backend.
2024-05-20 19:23:02   warnings.warn(_deprecation_message)
2024-05-20 19:23:02 2024-05-20 13:53:02.123 INFO {task_manager} [__listen_synthesizer] -1 is in sequence ids  set() and hence removing the sequence ids
2024-05-20 19:23:02 2024-05-20 13:53:02.124 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 0 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.124 INFO {task_manager} [__enqueue_chunk] ##### Sending first chunk
2024-05-20 19:23:02 2024-05-20 13:53:02.125 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 1 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 2 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 3 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 4 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 5 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 6 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 7 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__enqueue_chunk] Meta_info of chunk {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} 8 8.41845703125
2024-05-20 19:23:02 2024-05-20 13:53:02.126 INFO {task_manager} [__listen_synthesizer] Sleeping for 100 ms
2024-05-20 19:23:02 2024-05-20 13:53:02.131 WARNING {runners} [run] Executing <Task pending name='Task-40' coro=<TaskManager.__listen_synthesizer() running at /app/bolna/agent_manager/task_manager.py:1122> wait_for=<Future pending cb=[Task.task_wakeup()] created at /usr/local/lib/python3.10/asyncio/tasks.py:600> created at /usr/local/lib/python3.10/asyncio/tasks.py:337> took 0.230 seconds
2024-05-20 19:23:02 2024-05-20 13:53:02.132 INFO {utils} [write_request_logs] Message {'direction': 'response', 'data': 'This call is being recorded for quality assurance and training. Please speak now.', 'leg_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'time': '2024-05-20 13:53:02', 'component': 'synthesizer', 'sequence_id': -1, 'model': 'elevenlabs', 'cached': False, 'is_final': False, 'engine': 'eleven_turbo_v2'}
2024-05-20 19:23:02 2024-05-20 13:53:02.137 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873, 'is_first_chunk_of_entire_response': True} Current sequence ids
2024-05-20 19:23:02 2024-05-20 13:53:02.137 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873, 'is_first_chunk_of_entire_response': True}
2024-05-20 19:23:02 2024-05-20 13:53:02.137 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:02 2024-05-20 13:53:02.137 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:02 2024-05-20 13:53:02.138 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:02 2024-05-20 13:53:02.138 INFO {task_manager} [__process_output_loop] First chunk stuff
2024-05-20 19:23:02 2024-05-20 13:53:02.138 INFO {task_manager} [__process_output_loop] First chunk is none
2024-05-20 19:23:02 2024-05-20 13:53:02.138 INFO {task_manager} [__process_output_loop] LATENCY METRICS FOR c533f85f-1d8f-444d-ba2b-3b604a59b9e7 are {'transcriber': {'utterance_end': None, 'latency': 0}, 'llm': {'first_llm_buffer_latency': 0}, 'synthesizer': {'synthesizer_first_chunk_latency': 0}, 'overall_first_byte_latency': 0}
2024-05-20 19:23:02 2024-05-20 13:53:02.144 INFO {task_manager} [__check_for_completion] Last transmitted timestamp is simply 0 and hence continuing
2024-05-20 19:23:02 2024-05-20 13:53:02.756 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.7559776
2024-05-20 19:23:02 2024-05-20 13:53:02.756 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:02 2024-05-20 13:53:02.861 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:02 2024-05-20 13:53:02.861 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:02 2024-05-20 13:53:02.861 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:02 2024-05-20 13:53:02.861 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:02 2024-05-20 13:53:02.861 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:02 2024-05-20 13:53:02.861 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:02 2024-05-20 13:53:02.862 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.512 to maintain quueue on our side 8000
2024-05-20 19:23:03 2024-05-20 13:53:03.352 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.3524723
2024-05-20 19:23:03 2024-05-20 13:53:03.352 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:03 2024-05-20 13:53:03.460 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:03 2024-05-20 13:53:03.460 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:03 2024-05-20 13:53:03.460 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:03 2024-05-20 13:53:03.460 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:03 2024-05-20 13:53:03.460 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:03 2024-05-20 13:53:03.461 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:03 2024-05-20 13:53:03.461 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.512 to maintain quueue on our side 8000
2024-05-20 19:23:03 2024-05-20 13:53:03.950 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.950947
2024-05-20 19:23:03 2024-05-20 13:53:03.951 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:04 2024-05-20 13:53:04.059 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:04 2024-05-20 13:53:04.060 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:04 2024-05-20 13:53:04.060 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:04 2024-05-20 13:53:04.060 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:04 2024-05-20 13:53:04.060 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:04 2024-05-20 13:53:04.060 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:04 2024-05-20 13:53:04.061 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.512 to maintain quueue on our side 8000
2024-05-20 19:23:04 2024-05-20 13:53:04.154 INFO {task_manager} [__check_for_completion] Only 0.20322799682617188 seconds since last spoken time stamp and hence not cutting the phone call
2024-05-20 19:23:04 2024-05-20 13:53:04.550 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.550501
2024-05-20 19:23:04 2024-05-20 13:53:04.550 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:04 2024-05-20 13:53:04.660 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:04 2024-05-20 13:53:04.660 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:04 2024-05-20 13:53:04.660 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:04 2024-05-20 13:53:04.660 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:04 2024-05-20 13:53:04.660 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:04 2024-05-20 13:53:04.660 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:04 2024-05-20 13:53:04.661 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.512 to maintain quueue on our side 8000
2024-05-20 19:23:05 2024-05-20 13:53:05.152 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.1525748
2024-05-20 19:23:05 2024-05-20 13:53:05.152 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:05 2024-05-20 13:53:05.259 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:05 2024-05-20 13:53:05.259 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:05 2024-05-20 13:53:05.259 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:05 2024-05-20 13:53:05.259 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:05 2024-05-20 13:53:05.259 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:05 2024-05-20 13:53:05.259 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:05 2024-05-20 13:53:05.259 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.512 to maintain quueue on our side 8000
2024-05-20 19:23:05 2024-05-20 13:53:05.746 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.7468314
2024-05-20 19:23:05 2024-05-20 13:53:05.746 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:05 2024-05-20 13:53:05.851 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:05 2024-05-20 13:53:05.851 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:05 2024-05-20 13:53:05.851 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:05 2024-05-20 13:53:05.851 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:05 2024-05-20 13:53:05.851 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:05 2024-05-20 13:53:05.852 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:05 2024-05-20 13:53:05.852 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.512 to maintain quueue on our side 8000
2024-05-20 19:23:06 2024-05-20 13:53:06.159 INFO {task_manager} [__check_for_completion] Only 0.41292810440063477 seconds since last spoken time stamp and hence not cutting the phone call
2024-05-20 19:23:06 2024-05-20 13:53:06.340 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.340925
2024-05-20 19:23:06 2024-05-20 13:53:06.341 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:06 2024-05-20 13:53:06.446 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:06 2024-05-20 13:53:06.446 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:06 2024-05-20 13:53:06.446 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:06 2024-05-20 13:53:06.446 INFO {telephony} [handle] Sending message 8192 wav
2024-05-20 19:23:06 2024-05-20 13:53:06.446 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:06 2024-05-20 13:53:06.447 INFO {task_manager} [__process_output_loop] Duration of the byte 0.512
2024-05-20 19:23:06 2024-05-20 13:53:06.447 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.512 to maintain quueue on our side 8000
2024-05-20 19:23:06 2024-05-20 13:53:06.936 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.936595
2024-05-20 19:23:06 2024-05-20 13:53:06.936 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:07 2024-05-20 13:53:07.041 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:07 2024-05-20 13:53:07.042 INFO {task_manager} [__process_output_loop] ##### Start response is True and hence starting to speak {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873} Current sequence ids
2024-05-20 19:23:07 2024-05-20 13:53:07.042 INFO {telephony} [handle] Sending Message None and MZ65f3c951ffa392263681382d83e5bed2 and  {'io': 'twilio', 'is_first_message': True, 'stream_sid': 'MZ65f3c951ffa392263681382d83e5bed2', 'request_id': 'c533f85f-1d8f-444d-ba2b-3b604a59b9e7', 'cached': False, 'sequence_id': -1, 'format': 'wav', 'is_md5_hash': False, 'llm_generated': False, 'type': 'audio', 'synthesizer_start_time':<PHONE_NUMBER>.6193855, 'is_cached': False, 'text': 'This call is being recorded for quality assurance and training. Please speak now.', 'is_first_chunk': True, 'synthesizer_first_chunk_latency': 1.5047004222869873}
2024-05-20 19:23:07 2024-05-20 13:53:07.042 INFO {telephony} [handle] Sending message 3428 wav
2024-05-20 19:23:07 2024-05-20 13:53:07.042 INFO {telephony} [handle] Got media message MZ65f3c951ffa392263681382d83e5bed2
2024-05-20 19:23:07 2024-05-20 13:53:07.042 INFO {task_manager} [__process_output_loop] Duration of the byte 0.21425
2024-05-20 19:23:07 2024-05-20 13:53:07.042 INFO {task_manager} [__process_output_loop] ##### Sleeping for 0.21425 to maintain quueue on our side 8000
2024-05-20 19:23:07 2024-05-20 13:53:07.235 INFO {task_manager} [__process_output_loop] ##### Updating Last transmitted timestamp to<PHONE_NUMBER>.235612
2024-05-20 19:23:07 2024-05-20 13:53:07.235 INFO {task_manager} [__process_output_loop] First interim result hasn't been gotten yet and hence sleeping
2024-05-20 19:23:07 2024-05-20 13:53:07.341 INFO {task_manager} [__process_output_loop] ##### Got to wait 300 ms before speaking and alreasy waited -1 since the first interim result
2024-05-20 19:23:08 2024-05-20 13:53:08.169 INFO {task_manager} [__check_for_completion] Only 0.9337761402130127 seconds since last spoken time stamp and hence not cutting the phone call
2024-05-20 19:23:10 2024-05-20 13:53:10.127 ERROR {deepgram_transcriber} [transcribe] Error in transcribe:
2024-05-20 19:23:10 2024-05-20 13:53:10.174 INFO {task_manager} [__check_for_completion] Only 2.938368797302246 seconds since last spoken time stamp and hence not cutting the phone call
2024-05-20 19:23:12 2024-05-20 13:53:12.182 INFO {task_manager} [__check_for_completion] Only 4.946526765823364 seconds since last spoken time stamp and hence not cutting the phone call
2024-05-20 19:23:14 2024-05-20 13:53:14.187 INFO {task_manager} [__check_for_completion] Only 6.951576232910156 seconds since last spoken time stamp and hence not cutting the phone call
2024-05-20 19:23:15 2024-05-20 13:53:15.078 INFO {task_manager} [__handle_initial_silence] Woke up from my slumber True, [{'role': 'system', 'content': 'You will always be very concise and brief with your responses.  You will be very helpful and kind. Customers will call you and give their order. You will follow this script. You will ONLY ask 1 question at a time. Once you get an answer you will move on to the next one. \n 1) You will start your conversation by saying. "Hi! I am Rachel from Pizza Square. Am I speaking to Michael from 345 Palm Square?" All your responses should be as long as this one.) \n 2) You will ask the customer what they would like to order. Only ask the next question once you have a clear answer to this question. If the customer wants assistance, you will ask them about their preferences. \n 3) You will ask the customer for the required size - regular, medium, or large. If the customer has follow up questions, you will clarify, that the small is for 1 person and 4 dollars, the medium is for 2 people and 7 dollars and the large is for 4 people and 11 dollars. Only ask the next question once you have a clear answer to this question. \n 4) Once confirmed, you will ask whether the customer wants to pay the amount of for the chosen pizza via card or cash. \n 5) You will then tell the customer that their pizza is in the oven and will reach within 30 minutes. \n You have options of 3 pizzas. You will only give description if the user asks for it.  \n 1) The BBQ Chicken - Which has Chicken, Mushrooms, Olives in a tomato base 2) The Pesto Dominator - Which has Chicken, Bacon and Ham in a green base. This is the best-selling pizza. 3) The Veg Ultimate - Which has tofu, mushrooms, olives, tomatoes in a tomato base. '}], [{'role': 'system', 'content': 'You will always be very concise and brief with your responses.  You will be very helpful and kind. Customers will call you and give their order. You will follow this script. You will ONLY ask 1 question at a time. Once you get an answer you will move on to the next one. \n 1) You will start your conversation by saying. "Hi! I am Rachel from Pizza Square. Am I speaking to Michael from 345 Palm Square?" All your responses should be as long as this one.) \n 2) You will ask the customer what they would like to order. Only ask the next question once you have a clear answer to this question. If the customer wants assistance, you will ask them about their preferences. \n 3) You will ask the customer for the required size - regular, medium, or large. If the customer has follow up questions, you will clarify, that the small is for 1 person and 4 dollars, the medium is for 2 people and 7 dollars and the large is for 4 people and 11 dollars. Only ask the next question once you have a clear answer to this question. \n 4) Once confirmed, you will ask whether the customer wants to pay the amount of for the chosen pizza via card or cash. \n 5) You will then tell the customer that their pizza is in the oven and will reach within 30 minutes. \n You have options of 3 pizzas. You will only give description if the user asks for it.  \n 1) The BBQ Chicken - Which has Chicken, Mushrooms, Olives in a tomato base 2) The Pesto Dominator - Which has Chicken, Bacon and Ham in a green base. This is the best-selling pizza. 3) The Veg Ultimate - Which has tofu, mushrooms, olives, tomatoes in a tomato base. '}]
2024-05-20 19:23:15 2024-05-20 13:53:15.078 INFO {task_manager} [__handle_initial_silence] Calee was silent and hence speaking Hello on callee's behalf
2024-05-20 19:23:16 2024-05-20 13:53:16.195 INFO {task_manager} [__check_for_completion] Only 8.959940671920776 seconds since last spoken time stamp and hence not cutting the phone call
2024-05-20 19:23:18 2024-05-20 13:53:18.203 INFO {task_manager} [__check_for_completion] 10.967700958251953 seconds since last spoken time stamp and hence cutting the phone call and last transmitted timestampt ws<PHONE_NUMBER>.235612 and time since last spoken human word 0
2024-05-20 19:23:18 2024-05-20 13:53:18.203 INFO {task_manager} [__process_end_of_conversation] Got end of conversation. I'm stopping now
2024-05-20 19:23:18 2024-05-20 13:53:18.203 INFO {telephony} [stop_handler] stopping handler
2024-05-20 19:23:18 2024-05-20 13:53:18.203 INFO {telephony} [stop_handler] sleeping for 5 seconds so that whatever needs to pass is passed
2024-05-20 19:23:23 Traceback (most recent call last):
2024-05-20 19:23:23   File "/app/bolna/input_handlers/telephony.py", line 54, in _listen
2024-05-20 19:23:23     message = await self.websocket.receive_text()
2024-05-20 19:23:23   File "/usr/local/lib/python3.10/site-packages/starlette/websockets.py", line 109, in receive_text
2024-05-20 19:23:23     raise RuntimeError(
2024-05-20 19:23:23 RuntimeError: WebSocket is not connected. Need to call "accept" first.
2024-05-20 19:23:23 2024-05-20 13:53:23.237 ERROR {telephony} [_listen] Exception in twilio_receiver reading events: WebSocket is not connected. Need to call "accept" first.
2024-05-20 19:23:24 2024-05-20 13:53:24.508 INFO {telephony} [stop_handler] WebSocket connection closed
2024-05-20 19:23:24 2024-05-20 13:53:24.508 INFO {task_manager} [__process_end_of_conversation] Stopped input handler
2024-05-20 19:23:24 2024-05-20 13:53:24.508 INFO {task_manager} [__process_end_of_conversation] Stopping transcriber
2024-05-20 19:23:24 INFO:     connection closed

@saksham003 can you try doing this remotely once in gitpod.io? I feel there's significant latency and hence, the call is being cut since nothing is getting transcribed.

@prateeksachan yeah you're right it's working fine on gitpot.io. What do you think is the issue on my local machine

@saksham003 can you check if the requests from your laptop are reaching Deepgram servers? Try to eliminate any IP blacklisting etc. that might be happening.

Okay, I'll check that. Thanks @prateeksachan


Layout: Implement text wrapping

In the future we may want to support:

text alignment
text rotation
calculation of height based on width and text contents
line spacing

Nice - thanks!


Align with fractal-client pull request #566

closes #67

Something fails in fractal-containers:
fractal-demos   | START examples/01 API calls
fractal-server  | INFO:     <IP_ADDRESS>:57708 - "POST /auth/token/login HTTP/1.1" 200 OK
fractal-server  | INFO:     <IP_ADDRESS>:57708 - "POST /api/v1/project/ HTTP/1.1" 201 Created
fractal-server  | INFO:     <IP_ADDRESS>:57710 - "POST /api/v1/project/1/dataset/ HTTP/1.1" 201 Created
fractal-server  | INFO:     <IP_ADDRESS>:57726 - "POST /api/v1/project/1/dataset/1/resource/ HTTP/1.1" 201 Created
fractal-server  | INFO:     <IP_ADDRESS>:57742 - "POST /api/v1/project/1/dataset/ HTTP/1.1" 201 Created
fractal-server  | INFO:     <IP_ADDRESS>:57750 - "POST /api/v1/project/1/dataset/2/resource/ HTTP/1.1" 201 Created
fractal-demos   | PROJECT_ID=1
fractal-demos   | DS_IN_ID: 1
fractal-demos   | {
fractal-demos   |   "path": "/home/fractal_share/fractal-demos/examples/01_cardio_tiny_dataset/../images/10.5281_zenodo.8287221/",
fractal-demos   |   "id": 1,
fractal-demos   |   "dataset_id": 1
fractal-demos   | }
fractal-demos   | DS_OUT_ID=2
fractal-demos   | {
fractal-demos   |   "path": "/home/fractal_share/fractal-demos/examples/01_cardio_tiny_dataset/output_cardiac-tiny",
fractal-demos   |   "id": 2,
fractal-demos   |   "dataset_id": 2
fractal-demos   | }
fractal-demos   | usage: fractal workflow new [-h] name project_id
fractal-demos   | fractal workflow new: error: argument project_id: invalid int value: 'cardiac-tiny'
fractal-demos   | WORKFLOW_ID=

Previous comment was with this config.env:
# fractal-server
# FRACTAL_SERVER_RELEASE=
FRACTAL_SERVER_GIT=674-remove-automatic-creation-of-default-dataset-when-creating-a-project

# fractal-client
# FRACTAL_CLIENT_RELEASE=
FRACTAL_CLIENT_GIT=565-align-with-fractal-server-new-feature-project-creation-does-not-create-a-dataset

# fractal-tasks-core
# FRACTAL_TASKS_CORE_RELEASE=
FRACTAL_TASKS_CORE_GIT=521-introduce-import-ome-zarr-task

# fractal-web
FRACTAL_WEB_GIT=fix-discard-changes-glitch

# fractal-demos
FRACTAL_DEMOS_GIT=67-align-with-new-server-feature-project-creation-not-creating-a-dataset-by-default

Most likely this was due to missing quotes around the variable name - see e5190e9.

Some TODOs for this PR:

[ ] Revert changes of fractal-cli-client arguments order, unless they are strictly necessary.
[ ] Revert changes that removed quotes around variable names.


Feature/update links commands

Describe in detail the problem you had and how this PR fixes it
Updated download links and added tar command to extract the files.
Also, I added the command for
Is there an open issue you can link to?
None

For the download link, I believe we'll want to show users to the latest version.

A copy/paste command for downloading the latest linux release is:
curl -s https://api.github.com/repos/codercom/code-server/releases/latest | grep "browser_download_url.*code-server-.*darwin-x64.zip" | cut -d '"' -f 4 | wget -O ~/code-server-linux -qci -
tar -xzvf coder-server-linux.zip -C ~/code-server-linux
Would make it easier for people to download without needing to manually edit the commands

I do like what @illiapoplawski posted. From short amount of research I've done, the one posted above does seem to be the most streamlined approach to getting the latest release.
edit: looking into this a bit more, looks like we agreed on /releases/latest at #130

@NGTmeaty #130 and my command both use /releases/latest however #130 requires the user to manually enter the version to download.  My command automatically grabs the latest version requiring no editing of the command by the user

Yup I saw. I was just pointing out the consensus we reached last time.

There's a merge conflict to fix. Once fixed, I'd be happy to merge.


Missing Contributing.md file

Missing Contributing.md file
Description
This pull request enhances the CONTRIBUTING.md file for the bio-branch by providing clearer guidelines and a more structured format.
Related Issues

Closes #24

Type of PR

[X] (Documentation update)

Checklist

[X] I have gone through the contributing guide
[X] I have updated my branch and synced it with project main branch before making this PR
[X] I have performed a self-review of my code
[X] I have tested the changes thoroughly before submitting this pull request.
[X] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[X] I have commented my code, particularly in hard-to-understand areas.

Hey @subhadipbhowmik  I have raised the PR
Thanks

We already have.


[flutter_tools] pub roll

Pub roll that works around https://github.com/flutter/flutter/issues/102781
Fixes https://github.com/flutter/flutter/issues/102868.
Fixes https://github.com/flutter/flutter/issues/102159
Fixes https://github.com/flutter/flutter/issues/85035

Looks like I need fix analysis

@goderbauer actually, can you help me with fixing analysis on the old flutter_gallery? package:url_launcher deprecated an API, and I'm not sure what to do about our use of forceSafariVC: false in the legacy API.
~/git/flutter/dev/integration_tests/flutter_gallery$ flutter analyze .
Analyzing flutter_gallery...

   info • 'launch' is deprecated and shouldn't be used. Use launchUrl instead •
          lib/gallery/about.dart:28:7 • deprecated_member_use
   info • 'launch' is deprecated and shouldn't be used. Use launchUrl instead •
          lib/gallery/app.dart:125:11 • deprecated_member_use
   info • 'canLaunch' is deprecated and shouldn't be used. Use canLaunchUrl instead •
          lib/gallery/demo.dart:73:15 • deprecated_member_use
   info • 'launch' is deprecated and shouldn't be used. Use launchUrl instead •
          lib/gallery/demo.dart:74:13 • deprecated_member_use
   info • 'launch' is deprecated and shouldn't be used. Use launchUrl instead •
          lib/gallery/demo.dart:233:24 • deprecated_member_use
   info • 'launch' is deprecated and shouldn't be used. Use launchUrl instead •
          lib/gallery/demo.dart:256:24 • deprecated_member_use
   info • 'launch' is deprecated and shouldn't be used. Use launchUrl instead •
          lib/gallery/updater.dart:40:7 • deprecated_member_use

This test failure is a little puzzling:
00:36 +634 -1: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/theme_data_test.dart: ThemeData can generate a dark colorScheme from colorSchemeSeed [E]
  Expected: Color:<Color(0xff9ccaff)>
    Actual: Color:<Color(0xff9ecaff)>

  package:test_api                                    expect
  package:flutter_test/src/widget_tester.dart 455:16  expect
  test/material/theme_data_test.dart 249:5            main.<fn>

So it looks like bumping package:material_color_utilities caused breaking changes to our Linux framework_tests_libraries. @HansMuller what should I do about this?

actually, can you help me with fixing analysis on the old flutter_gallery? package:url_launcher deprecated an API, and I'm not sure what to do about our use of forceSafariVC: false in the legacy API.

Can you cherry-pick this commit into your PR here: https://github.com/goderbauer/flutter/commit/36bfa7c0aac366e6f8ad87c89b4299ffdc074a55

So it looks like bumping package:material_color_utilities caused breaking changes to our Linux framework_tests_libraries. @HansMuller should I just accept these changes?
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8814886108995385025/+/u/run_test.dart_for_framework_tests_shard_and_subshard_libraries/test_stdout

@darrenaustin may also be able to help here.

So it looks like bumping package:material_color_utilities caused breaking changes to our Linux framework_tests_libraries. @HansMuller should I just accept these changes?

I thought we had pinned the version of this library to avoid changes like this. It would appear that the palette generation algorithm may have changed, yielding slightly different colors. @guidezpl might know more, but for now can we not update this package version?

So it looks like bumping package:material_color_utilities caused breaking changes to our Linux framework_tests_libraries. @HansMuller should I just accept these changes?

I thought we had pinned the version of this library to avoid changes like this. It would appear that the palette generation algorithm may have changed, yielding slightly different colors. @guidezpl might know more, but for now can we not update this package version?

Cool, will do.

Looping in @pennzht, is the slight change between 0.1.4. and 0.1.5 mentioned in https://github.com/flutter/flutter/pull/103220#issuecomment-1120052158 expected?

@christopherfujino I need to update dwds - could you please look at https://github.com/flutter/flutter/pull/103243, we probably need to merge some changes...

00:36 +634 -1: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/theme_data_test.dart: ThemeData can generate a dark colorScheme from colorSchemeSeed [E]
  Expected: Color:<Color(0xff9ccaff)>
    Actual: Color:<Color(0xff9ecaff)>

  package:test_api                                    expect
  package:flutter_test/src/widget_tester.dart 455:16  expect
  test/material/theme_data_test.dart 249:5            main.<fn>

Never mind, looks like I'll have to patch in your changes to this PR :)

Re-ran windows build_tests_1_3 because of https://github.com/flutter/flutter/issues/97160

thank you @christopherfujino!

Ran Mac_ios hot_mode_dev_cycle_macos_target__benchmark locally on pub-roll branch and it passed:
Task result:
{
  "success": true,
  "data": {
    "hotReloadInitialDevFSSyncMilliseconds": 256,
    "hotRestartMillisecondsToFrame": 415,
    "hotReloadMillisecondsToFrame": 148,
    "hotReloadDevFSSyncMilliseconds": 19,
    "hotReloadFlutterReassembleMilliseconds": 127,
    "hotReloadVMReloadMilliseconds": 0,
    "hotReloadMillisecondsToFrameAfterChange": 299,
    "hotReloadDevFSSyncMillisecondsAfterChange": 70,
    "hotReloadFlutterReassembleMillisecondsAfterChange": 113,
    "hotReloadVMReloadMillisecondsAfterChange": 114,
    "hotReloadInitialDevFSSyncAfterRelaunchMilliseconds": 256,
    "hotReloadMillisecondsToFrameAfterMediumChange": 322,
    "hotReloadDevFSSyncMillisecondsAfterMediumChange": 42,
    "hotReloadFlutterReassembleMillisecondsAfterMediumChange": 167,
    "hotReloadVMReloadMillisecondsAfterMediumChange": 110,
    "hotReloadMillisecondsToFrameAfterLargeChange": 6680,
    "hotReloadDevFSSyncMillisecondsAfterLargeChange": 5498,
    "hotReloadFlutterReassembleMillisecondsAfterLargeChange": 426,
    "hotReloadVMReloadMillisecondsAfterLargeChange": 754
  },
  "detailFiles": [],
  "benchmarkScoreKeys": [
    "hotReloadInitialDevFSSyncMilliseconds",
    "hotRestartMillisecondsToFrame",
    "hotReloadMillisecondsToFrame",
    "hotReloadDevFSSyncMilliseconds",
    "hotReloadFlutterReassembleMilliseconds",
    "hotReloadVMReloadMilliseconds",
    "hotReloadMillisecondsToFrameAfterChange",
    "hotReloadDevFSSyncMillisecondsAfterChange",
    "hotReloadFlutterReassembleMillisecondsAfterChange",
    "hotReloadVMReloadMillisecondsAfterChange",
    "hotReloadInitialDevFSSyncAfterRelaunchMilliseconds",
    "hotReloadMillisecondsToFrameAfterMediumChange",
    "hotReloadDevFSSyncMillisecondsAfterMediumChange",
    "hotReloadFlutterReassembleMillisecondsAfterMediumChange",
    "hotReloadVMReloadMillisecondsAfterMediumChange",
    "hotReloadMillisecondsToFrameAfterLargeChange",
    "hotReloadDevFSSyncMillisecondsAfterLargeChange",
    "hotReloadFlutterReassembleMillisecondsAfterLargeChange",
    "hotReloadVMReloadMillisecondsAfterLargeChange"
  ],
  "reason": "success"
}

text-exempt: rolling dependencies


Deprecation warning on startup: "Passing command to redis as is"

Deprecation warnings on startup:
13:07:00 scheduler.1 | Passing 'info' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /Users/jared/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/resque-1.27.2/lib/resque/data_store.rb:60:in `method_missing')
13:07:00 scheduler.1 | Passing 'script' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /Users/jared/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/resque-1.27.2/lib/resque/data_store.rb:60:in `method_missing')
13:07:00 scheduler.1 | Passing 'script' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /Users/jared/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/resque-1.27.2/lib/resque/data_store.rb:60:in `method_missing')

The timestamp and process identifier (scheduler.1) come from foreman.
Then, on shutdown,
13:09:40 scheduler.1 | resque-scheduler: [INFO] 2017-02-21T13:09:40-05:00: Got INT signal
13:09:40 scheduler.1 | resque-scheduler: [INFO] 2017-02-21T13:09:40-05:00: Shutting down
13:09:40 scheduler.1 | rake aborted!
13:09:40 scheduler.1 | Redis::CommandError: NOSCRIPT No matching script. Please use EVAL.
13:09:40 scheduler.1 | /Users/jared/.rbenv/versions/2.2.5/bin/bundle:23:in `load'
13:09:40 scheduler.1 | /Users/jared/.rbenv/versions/2.2.5/bin/bundle:23:in `<main>'
13:09:40 scheduler.1 | Interrupt: Interrupt
13:09:40 scheduler.1 | /Users/jared/.rbenv/versions/2.2.5/bin/bundle:23:in `load'
13:09:40 scheduler.1 | /Users/jared/.rbenv/versions/2.2.5/bin/bundle:23:in `<main>'
13:09:40 scheduler.1 | Tasks: TOP => resque:scheduler
13:09:40 scheduler.1 | (See full trace by running task with --trace)
13:09:40 scheduler.1 | exited with code 1

Maybe they are related, because one says "Passing 'script' command" and the other says "No matching script"? I don't know what redis scripts are, though.
Versions:
bundle | ggrep -i resque
Using resque 1.27.2
Using resque-scheduler 4.3.0
Using resque-retry 1.5.0
Using capistrano-resque 0.2.3
ruby -v
ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-darwin15]

A similar deprecation warning was recently fixed in resque (https://github.com/resque/resque/issues/1539)

I think one is just a deprecation warning, unless that is warning that actually will not pass through.  The other is Redis complaining that the Lua script has not been loaded, which probably should not be happening.
What version of redis-namespace are you using?

What version of redis-namespace are you using?

bundle | ggrep -i redis
Using redis 3.3.3
Using redis-namespace 1.5.3
Using redis-store 1.2.0
Using redis-rack 2.0.0
Using redis-activesupport 5.0.1
Using redis-actionpack 5.0.1
Using redis-rails 5.0.1

Looks like master has better handling of the Redis script.  Any chance you had Redis restart without restarting the resque-scheduler task?  I really don't think Redis replicates the script cache.

Looks like master has better handling of the Redis script.

Cool! So these deprecation warnings will go away with the next release of resque-scheduler?

Any chance you had Redis restart without restarting the resque-scheduler task?

I'm not sure. We use foreman to start Redis and resque-scheduler in parallel. The Procfile looks like this:
rails: passenger start --port $PORT
redis: redis-server
scheduler: bundle exec rake environment resque:scheduler
worker: VERBOSE=1 bundle exec rake environment resque:work QUEUE=*
gulp: gulp watch

Cool! So these deprecation warnings will go away with the next release of resque-scheduler?

No, this probably needs to be changed either in resque so it delegates to the right object or resque-scheduler to not use Resque.redis.  You can ignore for now, redis-namespace is doing what it is suppose to do.
Do you receive the shutdown error consistently?

Cool! So these deprecation warnings will go away with the next release of resque-scheduler?

No, this probably needs to be changed either in resque so it delegates to the right object or resque-scheduler to not use Resque.redis. You can ignore for now, redis-namespace is doing what it is suppose to do.

Sorry Carson, I don't understand. How can I make these deprecation warnings go away? The resque people told me to open an issue here.

Do you receive the shutdown error consistently?

Yeah, seems to be 100% of the time.

@jaredbeck let me look into this, I think resque is expecting something different now.

@jaredbeck I put in a PR for the first part, but the second part is quite mysterious.  Any idea what version of Redis you are running?

I put in a PR for the first part ..

Thanks!

.. the second part is quite mysterious. Any idea what version of Redis you are running?

redis-cli --version
redis-cli 3.2.8

@jaredbeck The only way I was able to reproduce the issue was by actually restarting redis-server.  However, instead of using v4.3.0 and I try with master, it does not cause that issue, as it actually checks to see if Redis has that script in its cache.
I'd like to consider this resolved now, let me know if you disagree.

Sounds good to me. Thanks Carson.

Hi Carson. I'm coming back to this issue after a few months, and still seeing these deprecation warnings when I start up resque-scheduler.
11:24:52 scheduler.1 | resque-scheduler: [INFO] 2017-05-10T11:24:52-04:00: Starting
...
11:24:52 scheduler.1 | resque-scheduler: [INFO] 2017-05-10T11:24:52-04:00: Schedules Loaded
11:24:52 scheduler.1 | Passing 'info' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /Users/jared/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/resque-1.27.4/lib/resque/data_store.rb:59:in `method_missing')
11:24:52 scheduler.1 | Passing 'script' command to redis as is; administrative commands cannot be effectively namespaced and should be called on the redis connection directly; passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /Users/jared/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/resque-1.27.4/lib/resque/data_store.rb:59:in `method_missing')

However, instead of using v4.3.0 and I try with master, it does not cause that issue ..

It sounds like the next released version of resque-scheduler will no longer print these deprecations warnings? If so, is there an ETA on the next release? Thanks.

PR is ready and waiting https://github.com/resque/resque-scheduler/pull/602
Really v4.3.1 should be released with that.

@jaredbeck and @carsonreinke any progress on this?

@zedtux Really need someone to double check this PR.  I could probably accept it myself, but unsure why damage I could cause :fire:

Coming up with this error as well. Hope to see the PR merged @zedtux @carsonreinke .

Hi @carsonreinke did this get resolved? I'm having these exact same issues and haven't been able to resolve.

Waiting for a resolution here as well. Let me know if I can help

This appears to have been merged to master on 2018-01-28, but no release has been pushed since then. The latest release, v4.3.1, does not include this change. Any chance of getting a new release out to fix these warnings?

any progress on that?

Please can we get this.


Update ground-truth answer

Description
Update ground-truth answer. OLS-431

/lgtm

/approve

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.46%. Comparing base (32c2c70) to head (cd6a0b3).
Report is 18 commits behind head on main.

Additional details and impacted files

@@           Coverage Diff           @@
##             main    #1170   +/-   ##
=======================================
  Coverage   95.46%   95.46%
=======================================
  Files          56       56
  Lines        2380     2380
=======================================
  Hits         2272     2272
  Misses        108      108


Saving audio files.

In this module, you can create a recording, but you can save it. It would be useful, for example for recording programs, or for ATT (audio-to-text) programs.

Yeah, it works! I just tried to do something like siri or hey google. Thanks a bunch!


Merge new component - Initial commit

I dont know if i have made the pull request correct - Please tell me if so and i will try to fix it
This will break older configurations.
Thing's working:

Token, Timer and Next alarm sensor for each device.

Thing's not working

Can only retrieve one device as of now. Homegraph doesn't have a way to retrieve an IP of each device, so we need to find another way to do that. See API.py to change the IP for testing.
API retrieves data every 15 seconds. But i can't figure out how to update entities. Entities only updates when you reload the integration.

Thing's to talk about

Should each alarm set be a separate entity or as attributes in one entity?
Should each timer set be a separate entity or as attributes in one entity?

I will try my best to help with maintaining this integration, but my skills as a programmer is limited.

Here is something to work of, i have done everything except dividing the function into smaller ones.

@DurgNomis-drol feel free to mark conversation that are discussed and set as "Resolve conversation". Also please re-request my review when ready ;)

Get_google_devices_json() returns a list, not dict. I know it’s not pretty to loop this way, but maybe we should chance it in glocaltokens

You still have to change the IP manually to make it work. Waiting for device discovery being merged into glocaltokens. But it should be a simpel change when thats done

All set and done, i have opened some issues with what we have discussed above.
This is a big learning experience for me :smile:

I am really happy to hear that you are finding this experience useful and are learning from it 💥


"invalid option: -p" for Jenkins Slave Status in CentOS 6.5

I'm using the jenkins::slave class to create a Jenkins slave in CentOS 6.5 (minimal version). It looks like the init.d script for the service isn't behaving correctly. In the slave_status() function it calls status -p $PID_FILE and it looks like "-p" isn't a valid parameter for the status program, so it throws an error.

This appears to have been fixed in #171.


Update README with latest changes.

This doesn't change anything functionally; it just makes it a tad more modern and maintainable. (No need to do a new release, accordingly.)

@chriskrycho it's really helpful to have the "not yet" supported section in the README. Likewise the instructions for addon use is great, I had no idea that's why I had to use only 'app' directory with an addon.


Not able to sign or export private key

I am unable to sign or export the private key via the Keybase shell. I since have updated the client but still do not receive any feedback from the keybase command.
my log id: 9b37df3091f00530d3462a1c

@zapu can you take this one?

I was able to resolve it with the following commands:
keybase logout keybase stop keybase start keybase login
For some reason after I upgraded the dialog to enter in my private key wasn't displaying.


I am planing to train this code for other currencies so if i insert this code to random vending machine would it be work out?

Good night :)
If an unique part of the currency is visible and planar, then the system will likely correctly match the currency with the image in the database.
See this page for more details.
Have a nice day :)


Use route-key

[ ] Changes have been thoroughly tested to not break existing functionality.
[ ] New functionality has been documented or existing documentation has been updated to reflect changes.
[ ] Visual changes are explained in the PR description using a screenshot/recording of before and after.

This is a draft, because maybe I'm missing something.
It seems Filament is using $record->getKey(), which is fine, however this exposes the model ID.
This can be a problem, as someone could check out the number of users, or do other 'fun' things, like trying to gain access to other models, e.g. /users/1/edit, /users/2/edit, .. instead of actually having to use a slug, prefixed_id, uuid, etc.
It should be compatible with current users, as it will fallback to the getKey() or $key of the model.
I'm also seeing $model->getKeyName(), you could also use $model->getRouteKeyName() for this.
Maybe I'm being wrong here, if that's the case, I'm happy to close this PR. :)

This is a huge breaking change, and not one that I'm looking to implement, route keys IMO are for routing only.

@danharrin I understand, however since Livewire is also front-end focussed, it actually welcomed to use route-keys.

Yeah, well I don't understand that decision either. Using the route key exposes the values used in routes, so surely that makes URLs easier to guess? I just don't think its a huge problem to solve, you should have authorisation logic for all operations anyway.
Also, everything in Filament can be overriden, so you can implement these changes in your app without creating breaking changes for others

@danharrin The problem is having routes like this:

/users/1
/users/2
..

This also happens when someone performs a search/select, as the keys inside that one are 1, 2, etc. as well. For some models this isn't a problem, but for users this can expose the number of active users/models, and it also makes scraping a lot easier.
I'm already overruling the IDs as much as possible, also waiting for this to be merged: https://github.com/livewire/livewire/pull/6598
I really like Livewire, but exposing too many database details, is kinda unwanted.


Launch notebook kernel in specific path in remote server mode

Hello guys!
I've currently changed using notebooks development in vscode and It's a very good plugin. However, I'm running my notebooks in remote server mode and I think it'd be a good idea to be possible to select the path, in the remote server, that you want to launch the kernel. Currently, I've managed to work around this by opening the notebook first in the Jupyter Notebook server, so It launch automatically a new kernel in the same path the notebook is, and then selecting It in the kernel picker.
This suggestion is because I work with files opening and I've trouble with them because the path working directory was not the same as the notebook. I know It could be fix by changing the path of the files, but I'm not the only one that uses those notebooks I'm developing and  if I change the path It would have errors when opening in Jupyter Notebook interface.
My path working directory is the same as the one the Jupyter server is running!
Thanks for the attention in advance!

Are you using VS Code's Remote ssh extension to connect to the remote server? Would the "Notebook File Root" setting do what you're looking for? That should set the current working directory for the notebook to run in.

@amunger Yes! I'm using the Remote - SSH extension and my workspace is in the same server as the Jupyter-Notebook server. And, in fact no.. I'm no the only one that uses the Jupyter-Notebook server and, because of that, I cannot change the  "Notebook File Root" parameter.
As It's a default behaviour of Jupyter Notebook web interface to launch the notebook kernel in the same directory of the notebook itself, I think something like that or the possibility to choose manually from the kernel picker It'd be extremely useful.

@amunger I do not want to change the Jupyter Notebook entire file root, but the notebook I'm currently running.

It's a default behaviour of Jupyter Notebook web interface to launch the notebook kernel in the same directory of the notebook itself

That's also the default setting for VS Code, unless I'm misunderstanding what you're trying to achieve.
This will set the working directory to the same one that contains the notebook. Is that setting being overridden in the workspace settings?
	// Set the root directory for running notebooks and the Interactive window.
	"jupyter.notebookFileRoot": "${fileDirname}",

If you're connecting to an external kernel as well (rather than just using the kernel that VS Code launches), then that's not currently supported (#8771)

@amunger That's the same case of the issue you've mentioned. I've not found this issue before opening this one.
Is there anything I could provide to help this other issue?

just give a vote for #8771 (react with a thumbs up) and commenting with your use case would be helpful to come up with the best solution.
From what I've understood so far, you're connecting to a server with remote ssh, then connecting to a remote kernel on that same server and need the working directory to be the same in VS Code as it is on Jupyter Notebooks since the notebook is run in both places. Does that sound correct?

From what I've understood so far, you're connecting to a server with remote ssh, then connecting to a remote kernel on that same server and need the working directory to be the same in VS Code as it is on Jupyter Notebooks since the notebook is run in both places. Does that sound correct?

This describes my exact set up as well. I'm also finding that the kernel runs in folder / regardless if I set jupyter.notebookFileRoot to {fileDirname} or even to an explicit path. In addition, this doesn't change if I run VSCode locally and connect to the remote kernel, I still get a kernel in /. So essentially, it seems like the path for remote kernels is just inconfigurable.
I'm on VSCode 1.63.2, vscode-jupyter v2021.11.1001550889, and in the case that I run it that way, RemoteSSH v0.70.0

thanks for the use cases. I'm closing this as a dupe of https://github.com/microsoft/vscode-jupyter/issues/8771 so that it can be tracked in a single place. You can make sure to support that issue by voting for it.


[Bug] Frozen Phantoms

phantoms don't have flapping animations or a red flash when hit. even when translucency is turned off

Oh thanks for the report! I will check that, thank you

So about the flapping animation, I'm not sure to understand. When you hit a phantom, it goes back in the air, looking up, and it's the same with the mod. For the red flash, you're right! It will be fixed in the next update =)