Error while generating embedding via load directory with hugging-face provider

Describe the bug
Coming across an error while running memgpt load directory
Please describe your setup

[x] MemGPT version

main - 093df8b

[x] How did you install memgpt?

git clone
conda activate ./env
pip install -e ./MemGPT

[x] Describe your setup

What's your OS (Windows/MacOS/Linux)? Windows 11
How are you running memgpt?

cmd.exe
conda activate ./env
memgpt load directory --name "test_local_docs_v004" --input-dir ./Docs --recursive

Screenshots
LLM is explicitly disabled. Using MockLLM.
 LM Studio?)

text-embeddings-inference
Used by following the instructions in MemGPT doc regarding embedding endpoints
Configurations:

? Select embedding provider: hugging-face
? Enter default endpoint: http://localhost:8080
? Enter HuggingFace model tag (e.g. BAAI/bge-large-en-v1.5): BAAI/bge-large-en-v1.5
? Enter embedding model dimentions (e.g. 1024): 384

[x] Your hardware for the local LLM backend: local computer, with RTX 4060 - 8GB VRAM

I am also getting this same error when trying to load a single pdf, directly after generating embeddings: 100%.
Using command memgpt load directory --name some-name --input-files=$HOME/Documents/some-doc.pdf
Using free endpiont, model: ehartford/dolphin-2.5-mixtral-8x7b, endpoint: https://api.memgpt.ai
Not using any local embeddings or models.

Should be fixed by #725! Sorry for the delay here - let me know if it's not working (changes will go into upcoming release 0.2.11 + tonight's nightly, + can pull from main if you're on source).

installed from source, now getting:
Parsing nodes: 100%|████████████████████████████████████████████████████████████████████| 39/39 [00:00<00:00, 162.79it/s]
Generating embeddings:   0%|                                                                     | 0/371 [00:00<?, ?it/s]Traceback (most recent call last):
  File "/src/memgpt/MemGPT/memgpt/embeddings.py", line 62, in _call_api
    embedding = response_json["data"][0]["embedding"]
                ~~~~~~~~~~~~~^^^^^^^^
KeyError: 'data'

Now getting the following, using nightly:
memgpt load directory --name some-doc --input-files ~/Documents/somedoc.pdf
Parsing nodes: 100%|████████████████████████████████████████████████████████████████████| 39/39 [00:00<00:00, 163.35it/s]
Generating embeddings:   0%|                                                                     | 0/371 [00:00<?, ?it/s]Traceback (most recent call last):
  File "/memgpt/venv/lib/python3.11/site-packages/memgpt/embeddings.py", line 62, in _call_api
    embedding = response_json["data"][0]["embedding"]
                ~~~~~~~~~~~~~^^^^^^^^
KeyError: 'data'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/memgpt/venv/bin/memgpt", line 8, in <module>
    sys.exit(app())
             ^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/typer/main.py", line 328, in __call__
    raise e
  File "/memgpt/venv/lib/python3.11/site-packages/typer/main.py", line 311, in __call__
    return get_command(self)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/typer/core.py", line 778, in main
    return _main(
           ^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/typer/core.py", line 216, in _main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/typer/main.py", line 683, in wrapper
    return callback(**use_params)  # type: ignore
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/memgpt/cli/cli_load.py", line 109, in load_directory
    store_docs(name, docs)
  File "/memgpt/venv/lib/python3.11/site-packages/memgpt/cli/cli_load.py", line 40, in store_docs
    index = VectorStoreIndex.from_documents(docs, service_context=service_context, show_progress=True)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/base.py", line 106, in from_documents
    return cls(
           ^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/vector_store/base.py", line 52, in __init__
    super().__init__(
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/base.py", line 71, in __init__
    index_struct = self.build_index_from_nodes(nodes)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/vector_store/base.py", line 262, in build_index_from_nodes
    return self._build_index_from_nodes(nodes, **insert_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/vector_store/base.py", line 243, in _build_index_from_nodes
    self._add_nodes_to_index(
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/vector_store/base.py", line 196, in _add_nodes_to_index
    nodes_batch = self._get_node_with_embedding(nodes_batch, show_progress)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/vector_store/base.py", line 104, in _get_node_with_embedding
    id_to_embed_map = embed_nodes(
                      ^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/indices/utils.py", line 137, in embed_nodes
    new_embeddings = embed_model.get_text_embedding_batch(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/llama_index/embeddings/base.py", line 256, in get_text_embedding_batch
    embeddings = self._get_text_embeddings(cur_batch)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/memgpt/embeddings.py", line 112, in _get_text_embeddings
    embeddings = [self._get_text_embedding(text) for text in texts]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/memgpt/embeddings.py", line 112, in <listcomp>
    embeddings = [self._get_text_embedding(text) for text in texts]
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/memgpt/embeddings.py", line 108, in _get_text_embedding
    embedding = self._call_api(text)
                ^^^^^^^^^^^^^^^^^^^^
  File "/memgpt/venv/lib/python3.11/site-packages/memgpt/embeddings.py", line 64, in _call_api
    raise TypeError(f"Got back an unexpected payload from text embedding function, response=\n{response_json}")
TypeError: Got back an unexpected payload from text embedding function, response=
{'message': 'Input validation error: `inputs` must have less than 512 tokens. Given: 1664', 'code': 413, 'type': 'Validation'}

Should be fixed by #725! Sorry for the delay here - let me know if it's not working (changes will go into upcoming release 0.2.11 + tonight's nightly, + can pull from main if you're on source).

Thanks @cpacker! The fix for the embedding issue worked. I managed to generate the embeddings using TEI.
But now when I tried to query the MemGPT agent about those embeddings after attaching them, I get all sorts of issues. I think I may raise this as a new issue thread in the repo.
Below are some details and the log in the conversation when I'm trying to ask an AI assistant named "David" about the embeddings that have been loaded into archival memory:
Issue 1: Not invoking the most appropriate function call based on user's request
Expected behaviour
I asked the assistant about the document in the archival memory
==> so I expected that it would invoke archival memory search
What actually happened
The assistant searched conversation history instead.

Side note: The LLM model used was openchat-3.5-1210.Q6_K.gguf

Relevant log
<|im_start|>user
{
  "type": "user_message",
  "message": "Hey David, I'm interested in the document that you have ingested in your archival memory. Can you tell me
what it is about?",
  "time": "2023-12-29 07:30:00 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838602347018496', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "conversation_search_date",\n
"params": {\n    "inner_thoughts": "User is asking about a past discussion related to a document. I will search my
conversation history for that specific topic.",\n    "query": "document",\n    "start_date": "2023-01-01",\n
"end_date": "2023-01-29",\n    "page": 0,\n    "request_heartbeat": "true"\n  }\n}', 'logprobs': {'top_logprobs':
[{}]}}], 'usage': {'prompt_tokens': 4380, 'completion_tokens': 119, 'total_tokens': 4499}}
Raw LLM output:
====
 "conversation_search_date",
  "params": {
    "inner_thoughts": "User is asking about a past discussion related to a document. I will search my conversation
history for that specific topic.",
    "query": "document",
    "start_date": "2023-01-01",
    "end_date": "2023-01-29",
    "page": 0,
    "request_heartbeat": "true"
  }
}
====

Issue 2: conversation_search_date failed
Relevant log
{
  "role": "assistant",
  "content": "User is asking about a past discussion related to a document. I will search my conversation history for
that specific topic.",
  "function_call": {
    "name": "conversation_search_date",
    "arguments": "{\"query\": \"document\", \"start_date\": \"2023-01-01\", \"end_date\": \"2023-01-29\", \"page\": 0,
\"request_heartbeat\": \"true\"}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': 'User is asking about a past discussion related
to a document. I will search my conversation history for that specific topic.', 'function_call': {'name':
'conversation_search_date', 'arguments': '{"query": "document", "start_date": "2023-01-01", "end_date": "2023-01-29",
"page": 0, "request_heartbeat": true}'}}, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 3696,
'completion_tokens': 92, 'total_tokens': 3815}}
💭 User is asking about a past discussion related to a document. I will search my conversation history for that specific
topic.
⚡🧠 [function] searching memory with conversation_search_date
        query: document, page: 0
Error calling function conversation_search_date: conversation_search_date() got an unexpected keyword argument 'query'
Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\agent.py", line 521, in handle_ai_response
    function_response = function_to_call(**function_args)
TypeError: conversation_search_date() got an unexpected keyword argument 'query'

⚡🔴 [function] Error: Error calling function conversation_search_date: conversation_search_date() got an unexpected
keyword argument 'query'
last response total_tokens (3815) < 4369.5
LocalStateManager.append_to_messages

Issue 3: archival_memory_search failed because [WinError 10061] No connection could be made because the target machine actively refused it
Relevant log
{
  "role": "assistant",
  "content": "User mentioned a document. But the function couldn't search it. I will request the user to clarify their
question.",
  "function_call": {
    "name": "pause_heartbeats",
    "arguments": "{\"minutes\": 2, \"request_heartbeat\": false}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': "User mentioned a document. But the function
couldn't search it. I will request the user to clarify their question.", 'function_call': {'name': 'pause_heartbeats',
'arguments': '{"minutes": 2, "request_heartbeat": false}'}}, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 3938,
'completion_tokens': 64, 'total_tokens': 4011}}
💭 User mentioned a document. But the function couldn't search it. I will request the user to clarify their question.
⚡🟢 [function] Success: Pausing timed heartbeats for 2 min
last response total_tokens (4011) < 4369.5
LocalStateManager.append_to_messages
> Enter your message: that document is in your "archival memory" not "conversation history", can you find that document
?
[A[KUsing model webui, endpoint: http://localhost:5000

<|im_start|>user
{
  "type": "user_message",
  "message": "that document is in your \"archival memory\" not \"conversation history\", can you find that document?",
  "time": "2023-12-29 07:33:28 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838810933432832', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "archival_memory_search",\n
"params": {\n    "inner_thoughts": "User is asking for a document in my \'archival memory\'. I will search it.",\n
"query": "document",\n    "page": 0,\n    "request_heartbeat": true\n  }\n}', 'logprobs': {'top_logprobs': [{}]}}],
'usage': {'prompt_tokens': 4950, 'completion_tokens': 74, 'total_tokens': 5024}}
Raw LLM output:
====
 "archival_memory_search",
  "params": {
    "inner_thoughts": "User is asking for a document in my 'archival memory'. I will search it.",
    "query": "document",
    "page": 0,
    "request_heartbeat": true
  }
}
====
{
  "role": "assistant",
  "content": "User is asking for a document in my 'archival memory'. I will search it.",
  "function_call": {
    "name": "archival_memory_search",
    "arguments": "{\"query\": \"document\", \"page\": 0, \"request_heartbeat\": true}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': "User is asking for a document in my 'archival
memory'. I will search it.", 'function_call': {'name': 'archival_memory_search', 'arguments': '{"query": "document",
"page": 0, "request_heartbeat": true}'}}, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 4145,
'completion_tokens': 64, 'total_tokens': 4219}}
💭 User is asking for a document in my 'archival memory'. I will search it.
⚡🧠 [function] searching memory with archival_memory_search
        query: document, page: 0
Archival search error [WinError 10061] No connection could be made because the target machine actively refused it
Error calling function archival_memory_search: [WinError 10061] No connection could be made because the target machine
actively refused it
Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_exceptions.py", line 10, in
map_exceptions
    yield
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_backends\sync.py", line 206,
in connect_tcp
    sock = socket.create_connection(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\socket.py", line 844, in create_connection
    raise err
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\socket.py", line 832, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 66,
in map_httpcore_exceptions
    yield
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 228,
in handle_request
    resp = self._pool.handle_request(req)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection_pool.py", line
268, in handle_request
    raise exc
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection_pool.py", line
251, in handle_request
    response = connection.handle_request(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection.py", line 99,
in handle_request
    raise exc
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection.py", line 76,
in handle_request
    stream = self._connect(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection.py", line 124,
in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_backends\sync.py", line 213,
in connect_tcp
    sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_exceptions.py", line 14, in
map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: [WinError 10061] No connection could be made because the target machine actively refused it

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\agent.py", line 521, in handle_ai_response
    function_response = function_to_call(**function_args)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\functions\function_sets\base.py", line 178, in
archival_memory_search
    results, total = self.persistence_manager.archival_memory.search(query, count=count, start=page * count)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\memory.py", line 373, in search
    raise e
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\memory.py", line 361, in search
    query_vec = self.embed_model.get_text_embedding(query_string)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\llama_index\embeddings\base.py", line
207, in get_text_embedding
    text_embedding = self._get_text_embedding(text)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\embeddings.py", line 108, in _get_text_embedding
    embedding = self._call_api(text)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\embeddings.py", line 47, in _call_api
    response = client.post(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 1132, in post
    return self.request(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 814, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 901, in send
    response = self._send_handling_auth(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 929, in
_send_handling_auth
    response = self._send_handling_redirects(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 966, in
_send_handling_redirects
    response = self._send_single_request(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 1002, in
_send_single_request
    response = transport.handle_request(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 228,
in handle_request
    resp = self._pool.handle_request(req)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 83,
in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [WinError 10061] No connection could be made because the target machine actively refused it

⚡🔴 [function] Error: Error calling function archival_memory_search: [WinError 10061] No connection could be made
because the target machine actively refused it
last response total_tokens (4219) < 4369.5
LocalStateManager.append_to_messages
Using model webui, endpoint: http://localhost:5000

<|im_start|>assistant
FUNCTION RETURN:
{
  "status": "Failed",
  "message": "Error calling function archival_memory_search: [WinError 10061] No connection could be made because the
target machine actively refused it",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>user
{
  "type": "heartbeat",
  "reason": "[This is an automated system message hidden from the user] Function call failed, returning control",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838864649483008', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "pause_heartbeats",\n
"params": {\n    "inner_thoughts": "The document search in archival memory also failed. I will pause the conversation
for few minutes to reconsider the best approach.",\n    "minutes": 5,\n    "request_heartbeat": false\n  }\n}',
'logprobs': {'top_logprobs': [{}]}}], 'usage': {'prompt_tokens': 5226, 'completion_tokens': 74, 'total_tokens': 5300}}
Raw LLM output:
====
 "pause_heartbeats",
  "params": {
    "inner_thoughts": "The document search in archival memory also failed. I will pause the conversation for few minutes
to reconsider the best approach.",
    "minutes": 5,
    "request_heartbeat": false
  }
}
====
{
  "role": "assistant",
  "content": "The document search in archival memory also failed. I will pause the conversation for few minutes to
reconsider the best approach.",
  "function_call": {
    "name": "pause_heartbeats",
    "arguments": "{\"minutes\": 5, \"request_heartbeat\": false}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': 'The document search in archival memory also
failed. I will pause the conversation for few minutes to reconsider the best approach.', 'function_call': {'name':
'pause_heartbeats', 'arguments': '{"minutes": 5, "request_heartbeat": false}'}}, 'finish_reason': 'stop'}], 'usage':
{'prompt_tokens': 4365, 'completion_tokens': 64, 'total_tokens': 4439}}
💭 The document search in archival memory also failed. I will pause the conversation for few minutes to reconsider the
best approach.
⚡🟢 [function] Success: Pausing timed heartbeats for 5 min
Warning: last response total_tokens (4439) > 4369.5
LocalStateManager.append_to_messages
Using model webui, endpoint: http://localhost:5000

<|im_start|>assistant
FUNCTION RETURN:
{
  "status": "Failed",
  "message": "Error calling function archival_memory_search: [WinError 10061] No connection could be made because the
target machine actively refused it",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>user
{
  "type": "heartbeat",
  "reason": "[This is an automated system message hidden from the user] Function call failed, returning control",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function": "pause_heartbeats",
  "params": {
    "inner_thoughts": "The document search in archival memory also failed. I will pause the conversation for few minutes
to reconsider the best approach.",
    "minutes": 5,
    "request_heartbeat": false
  }
}<|im_end|>
<|im_start|>assistant
FUNCTION RETURN:
{
  "status": "OK",
  "message": "Pausing timed heartbeats for 5 min",
  "time": "2023-12-29 07:35:14 PM"
}<|im_end|>

Verbose debug log:
> Enter your message: /attach
? Select data source test_local_docs_v004
Ingesting 1136 passages into DAVID_AI_V002
Generating embeddings: 0it [00:00, ?it/s]                                                       | 0/12 [00:00<?, ?it/s]
100%|██████████████████████████████████████████████████████████████████████████████████| 12/12 [00:14<00:00,  1.18s/it]
Attached data source test_local_docs_v004 to agent DAVID_AI_V002, consisting of 36. Agent now has 1136 embeddings in archival memory.
 92%|███████████████████████████████████████████████████████████████████████████▏      | 11/12 [00:15<00:01,  1.41s/it]

<|im_start|>user
{
  "type": "user_message",
  "message": "Hey David, I'm interested in the document that you have ingested in your archival memory. Can you tell me
what it is about?",
  "time": "2023-12-29 07:30:00 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838602347018496', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "conversation_search_date",\n
"params": {\n    "inner_thoughts": "User is asking about a past discussion related to a document. I will search my
conversation history for that specific topic.",\n    "query": "document",\n    "start_date": "2023-01-01",\n
"end_date": "2023-01-29",\n    "page": 0,\n    "request_heartbeat": "true"\n  }\n}', 'logprobs': {'top_logprobs':
[{}]}}], 'usage': {'prompt_tokens': 4380, 'completion_tokens': 119, 'total_tokens': 4499}}
Raw LLM output:
====
 "conversation_search_date",
  "params": {
    "inner_thoughts": "User is asking about a past discussion related to a document. I will search my conversation
history for that specific topic.",
    "query": "document",
    "start_date": "2023-01-01",
    "end_date": "2023-01-29",
    "page": 0,
    "request_heartbeat": "true"
  }
}
====
{
  "role": "assistant",
  "content": "User is asking about a past discussion related to a document. I will search my conversation history for
that specific topic.",
  "function_call": {
    "name": "conversation_search_date",
    "arguments": "{\"query\": \"document\", \"start_date\": \"2023-01-01\", \"end_date\": \"2023-01-29\", \"page\": 0,
\"request_heartbeat\": \"true\"}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': 'User is asking about a past discussion related
to a document. I will search my conversation history for that specific topic.', 'function_call': {'name':
'conversation_search_date', 'arguments': '{"query": "document", "start_date": "2023-01-01", "end_date": "2023-01-29",
"page": 0, "request_heartbeat": true}'}}, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 3696,
'completion_tokens': 92, 'total_tokens': 3815}}
💭 User is asking about a past discussion related to a document. I will search my conversation history for that specific
topic.
⚡🧠 [function] searching memory with conversation_search_date
        query: document, page: 0
Error calling function conversation_search_date: conversation_search_date() got an unexpected keyword argument 'query'
Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\agent.py", line 521, in handle_ai_response
    function_response = function_to_call(**function_args)
TypeError: conversation_search_date() got an unexpected keyword argument 'query'

⚡🔴 [function] Error: Error calling function conversation_search_date: conversation_search_date() got an unexpected
keyword argument 'query'
last response total_tokens (3815) < 4369.5
LocalStateManager.append_to_messages
Using model webui, endpoint: http://localhost:5000

<|im_start|>user
{
  "type": "user_message",
  "message": "Hey David, I'm interested in the document that you have ingested in your archival memory. Can you tell me
what it is about?",
  "time": "2023-12-29 07:30:00 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function": "conversation_search_date",
  "params": {
    "inner_thoughts": "User is asking about a past discussion related to a document. I will search my conversation
history for that specific topic.",
    "query": "document",
    "start_date": "2023-01-01",
    "end_date": "2023-01-29",
    "page": 0,
    "request_heartbeat": true
  }
}<|im_end|>
<|im_start|>assistant
FUNCTION RETURN:
{
  "status": "Failed",
  "message": "Error calling function conversation_search_date: conversation_search_date() got an unexpected keyword
argument 'query'",
  "time": "2023-12-29 07:30:53 PM"
}<|im_end|>
<|im_start|>user
{
  "type": "heartbeat",
  "reason": "[This is an automated system message hidden from the user] Function call failed, returning control",
  "time": "2023-12-29 07:30:53 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838655810174720', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "pause_heartbeats",\n
"params": {\n    "inner_thoughts": "User mentioned a document. But the function couldn\'t search it. I will request the
user to clarify their question.",\n    "minutes": 2,\n    "request_heartbeat": false\n  }\n}', 'logprobs':
{'top_logprobs': [{}]}}], 'usage': {'prompt_tokens': 4689, 'completion_tokens': 73, 'total_tokens': 4762}}
Raw LLM output:
====
 "pause_heartbeats",
  "params": {
    "inner_thoughts": "User mentioned a document. But the function couldn't search it. I will request the user to
clarify their question.",
    "minutes": 2,
    "request_heartbeat": false
  }
}
====
{
  "role": "assistant",
  "content": "User mentioned a document. But the function couldn't search it. I will request the user to clarify their
question.",
  "function_call": {
    "name": "pause_heartbeats",
    "arguments": "{\"minutes\": 2, \"request_heartbeat\": false}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': "User mentioned a document. But the function
couldn't search it. I will request the user to clarify their question.", 'function_call': {'name': 'pause_heartbeats',
'arguments': '{"minutes": 2, "request_heartbeat": false}'}}, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 3938,
'completion_tokens': 64, 'total_tokens': 4011}}
💭 User mentioned a document. But the function couldn't search it. I will request the user to clarify their question.
⚡🟢 [function] Success: Pausing timed heartbeats for 2 min
last response total_tokens (4011) < 4369.5
LocalStateManager.append_to_messages
> Enter your message: that document is in your "archival memory" not "conversation history", can you find that document
?
[A[KUsing model webui, endpoint: http://localhost:5000

<|im_start|>user
{
  "type": "user_message",
  "message": "that document is in your \"archival memory\" not \"conversation history\", can you find that document?",
  "time": "2023-12-29 07:33:28 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838810933432832', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "archival_memory_search",\n
"params": {\n    "inner_thoughts": "User is asking for a document in my \'archival memory\'. I will search it.",\n
"query": "document",\n    "page": 0,\n    "request_heartbeat": true\n  }\n}', 'logprobs': {'top_logprobs': [{}]}}],
'usage': {'prompt_tokens': 4950, 'completion_tokens': 74, 'total_tokens': 5024}}
Raw LLM output:
====
 "archival_memory_search",
  "params": {
    "inner_thoughts": "User is asking for a document in my 'archival memory'. I will search it.",
    "query": "document",
    "page": 0,
    "request_heartbeat": true
  }
}
====
{
  "role": "assistant",
  "content": "User is asking for a document in my 'archival memory'. I will search it.",
  "function_call": {
    "name": "archival_memory_search",
    "arguments": "{\"query\": \"document\", \"page\": 0, \"request_heartbeat\": true}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': "User is asking for a document in my 'archival
memory'. I will search it.", 'function_call': {'name': 'archival_memory_search', 'arguments': '{"query": "document",
"page": 0, "request_heartbeat": true}'}}, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 4145,
'completion_tokens': 64, 'total_tokens': 4219}}
💭 User is asking for a document in my 'archival memory'. I will search it.
⚡🧠 [function] searching memory with archival_memory_search
        query: document, page: 0
Archival search error [WinError 10061] No connection could be made because the target machine actively refused it
Error calling function archival_memory_search: [WinError 10061] No connection could be made because the target machine
actively refused it
Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_exceptions.py", line 10, in
map_exceptions
    yield
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_backends\sync.py", line 206,
in connect_tcp
    sock = socket.create_connection(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\socket.py", line 844, in create_connection
    raise err
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\socket.py", line 832, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 66,
in map_httpcore_exceptions
    yield
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 228,
in handle_request
    resp = self._pool.handle_request(req)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection_pool.py", line
268, in handle_request
    raise exc
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection_pool.py", line
251, in handle_request
    response = connection.handle_request(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection.py", line 99,
in handle_request
    raise exc
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection.py", line 76,
in handle_request
    stream = self._connect(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_sync\connection.py", line 124,
in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_backends\sync.py", line 213,
in connect_tcp
    sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpcore\_exceptions.py", line 14, in
map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: [WinError 10061] No connection could be made because the target machine actively refused it

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\agent.py", line 521, in handle_ai_response
    function_response = function_to_call(**function_args)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\functions\function_sets\base.py", line 178, in
archival_memory_search
    results, total = self.persistence_manager.archival_memory.search(query, count=count, start=page * count)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\memory.py", line 373, in search
    raise e
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\memory.py", line 361, in search
    query_vec = self.embed_model.get_text_embedding(query_string)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\llama_index\embeddings\base.py", line
207, in get_text_embedding
    text_embedding = self._get_text_embedding(text)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\embeddings.py", line 108, in _get_text_embedding
    embedding = self._call_api(text)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\MemGPT\memgpt\embeddings.py", line 47, in _call_api
    response = client.post(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 1132, in post
    return self.request(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 814, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 901, in send
    response = self._send_handling_auth(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 929, in
_send_handling_auth
    response = self._send_handling_redirects(
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 966, in
_send_handling_redirects
    response = self._send_single_request(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_client.py", line 1002, in
_send_single_request
    response = transport.handle_request(request)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 228,
in handle_request
    resp = self._pool.handle_request(req)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "G:\Backup\Text_Generation_AI\MemGPT\MemGPT_Source\env\lib\site-packages\httpx\_transports\default.py", line 83,
in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [WinError 10061] No connection could be made because the target machine actively refused it

⚡🔴 [function] Error: Error calling function archival_memory_search: [WinError 10061] No connection could be made
because the target machine actively refused it
last response total_tokens (4219) < 4369.5
LocalStateManager.append_to_messages
Using model webui, endpoint: http://localhost:5000

<|im_start|>assistant
FUNCTION RETURN:
{
  "status": "Failed",
  "message": "Error calling function archival_memory_search: [WinError 10061] No connection could be made because the
target machine actively refused it",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>user
{
  "type": "heartbeat",
  "reason": "[This is an automated system message hidden from the user] Function call failed, returning control",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838864649483008', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "pause_heartbeats",\n
"params": {\n    "inner_thoughts": "The document search in archival memory also failed. I will pause the conversation
for few minutes to reconsider the best approach.",\n    "minutes": 5,\n    "request_heartbeat": false\n  }\n}',
'logprobs': {'top_logprobs': [{}]}}], 'usage': {'prompt_tokens': 5226, 'completion_tokens': 74, 'total_tokens': 5300}}
Raw LLM output:
====
 "pause_heartbeats",
  "params": {
    "inner_thoughts": "The document search in archival memory also failed. I will pause the conversation for few minutes
to reconsider the best approach.",
    "minutes": 5,
    "request_heartbeat": false
  }
}
====
{
  "role": "assistant",
  "content": "The document search in archival memory also failed. I will pause the conversation for few minutes to
reconsider the best approach.",
  "function_call": {
    "name": "pause_heartbeats",
    "arguments": "{\"minutes\": 5, \"request_heartbeat\": false}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': 'The document search in archival memory also
failed. I will pause the conversation for few minutes to reconsider the best approach.', 'function_call': {'name':
'pause_heartbeats', 'arguments': '{"minutes": 5, "request_heartbeat": false}'}}, 'finish_reason': 'stop'}], 'usage':
{'prompt_tokens': 4365, 'completion_tokens': 64, 'total_tokens': 4439}}
💭 The document search in archival memory also failed. I will pause the conversation for few minutes to reconsider the
best approach.
⚡🟢 [function] Success: Pausing timed heartbeats for 5 min
Warning: last response total_tokens (4439) > 4369.5
LocalStateManager.append_to_messages
Using model webui, endpoint: http://localhost:5000

<|im_start|>assistant
FUNCTION RETURN:
{
  "status": "Failed",
  "message": "Error calling function archival_memory_search: [WinError 10061] No connection could be made because the
target machine actively refused it",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>user
{
  "type": "heartbeat",
  "reason": "[This is an automated system message hidden from the user] Function call failed, returning control",
  "time": "2023-12-29 07:34:22 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function": "pause_heartbeats",
  "params": {
    "inner_thoughts": "The document search in archival memory also failed. I will pause the conversation for few minutes
to reconsider the best approach.",
    "minutes": 5,
    "request_heartbeat": false
  }
}<|im_end|>
<|im_start|>assistant
FUNCTION RETURN:
{
  "status": "OK",
  "message": "Pausing timed heartbeats for 5 min",
  "time": "2023-12-29 07:35:14 PM"
}<|im_end|>
<|im_start|>user
{
  "type": "system_alert",
  "message": "[This is an automated system message hidden from the user] The conversation history will soon reach its
maximum length and be trimmed. Do NOT tell the user about this system alert, they should not know that the history is
reaching max length. If there is any important new information or general memories about you or the user that you would
like to save, you should save that information immediately by calling function core_memory_append, core_memory_replace,
or archival_memory_insert.",
  "time": "2023-12-29 07:35:14 PM"
}<|im_end|>
<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703838916151183616', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'stop', 'text': ' "pause_heartbeats",\n
"params": {\n    "inner_thoughts": "Received system alert about conversation history soon reaching its maximum length.
This message is hidden from the user.",\n    "minutes": 7,\n    "request_heartbeat": false\n  }\n}', 'logprobs':
{'top_logprobs': [{}]}}], 'usage': {'prompt_tokens': 5563, 'completion_tokens': 68, 'total_tokens': 5631}}
Raw LLM output:
====
 "pause_heartbeats",
  "params": {
    "inner_thoughts": "Received system alert about conversation history soon reaching its maximum length. This message
is hidden from the user.",
    "minutes": 7,
    "request_heartbeat": false
  }
}
====
{
  "role": "assistant",
  "content": "Received system alert about conversation history soon reaching its maximum length. This message is hidden
from the user.",
  "function_call": {
    "name": "pause_heartbeats",
    "arguments": "{\"minutes\": 7, \"request_heartbeat\": false}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': 'Received system alert about conversation
history soon reaching its maximum length. This message is hidden from the user.', 'function_call': {'name':
'pause_heartbeats', 'arguments': '{"minutes": 7, "request_heartbeat": false}'}}, 'finish_reason': 'stop'}], 'usage':
{'prompt_tokens': 4641, 'completion_tokens': 61, 'total_tokens': 4709}}
💭 Received system alert about conversation history soon reaching its maximum length. This message is hidden from the
user.
⚡🟢 [function] Success: Pausing timed heartbeats for 7 min
Warning: last response total_tokens (4709) > 4369.5
LocalStateManager.append_to_messages
> Enter your message: can you tell me what document is stored in your archival memory?
[A[KUsing model webui, endpoint: http://localhost:5000

<|im_start|>assistant
{
  "function":
Loading default settings from 'simple'
Found completion settings file 'C:\Users\user\.memgpt\settings\completions_api_settings.json', loading it...
'C:\Users\user\.memgpt\settings\completions_api_settings.json' was empty, ignoring...
JSON API response:
{'id': 'conv-1703839058250941184', 'object': 'text_completion', 'created':<PHONE_NUMBER>, 'model':
'openchat-3.5-1210.Q6_K.gguf', 'choices': [{'index': 0, 'finish_reason': 'length', 'text': ' "send_message",\n
"params": {\n    "inner_thoughts": "User is asking for details about the document in my \'archival memory\'. I will
clarify to the user that due to a technical issue, I could not find any such document.",\n    "message": "Apologies for
the confusion previously. At the moment, I have faced some difficulties in accessing any documents stored in my archival
memory. I will work on fixing this problem and keep you informed once the issue is resolved."\n  }\n}', 'logprobs':
{'top_logprobs': [{}]}}], 'usage': {'prompt_tokens': 5811, 'completion_tokens': 116, 'total_tokens': 5927}}
Raw LLM output:
====
 "send_message",
  "params": {
    "inner_thoughts": "User is asking for details about the document in my 'archival memory'. I will clarify to the user
that due to a technical issue, I could not find any such document.",
    "message": "Apologies for the confusion previously. At the moment, I have faced some difficulties in accessing any
documents stored in my archival memory. I will work on fixing this problem and keep you informed once the issue is
resolved."
  }
}
====
{
  "role": "assistant",
  "content": "User is asking for details about the document in my 'archival memory'. I will clarify to the user that due
to a technical issue, I could not find any such document.",
  "function_call": {
    "name": "send_message",
    "arguments": "{\"message\": \"Apologies for the confusion previously. At the moment, I have faced some difficulties
in accessing any documents stored in my archival memory. I will work on fixing this problem and keep you informed once
the issue is resolved.\"}"
  }
}
{'model': None, 'choices': [{'message': {'role': 'assistant', 'content': "User is asking for details about the document
in my 'archival memory'. I will clarify to the user that due to a technical issue, I could not find any such document.",
'function_call': {'name': 'send_message', 'arguments': '{"message": "Apologies for the confusion previously. At the
moment, I have faced some difficulties in accessing any documents stored in my archival memory. I will work on fixing
this problem and keep you informed once the issue is resolved."}'}}, 'finish_reason': 'stop'}], 'usage':
{'prompt_tokens': 4837, 'completion_tokens': 109, 'total_tokens': 4953}}
💭 User is asking for details about the document in my 'archival memory'. I will clarify to the user that due to a
technical issue, I could not find any such document.
🤖 Apologies for the confusion previously. At the moment, I have faced some difficulties in accessing any documents
stored in my archival memory. I will work on fixing this problem and keep you informed once the issue is resolved.
⚡🟢 [function] Success: None
Warning: last response total_tokens (4953) > 4369.5
LocalStateManager.append_to_messages


FHE and AI

This is an exciting area.  By using FHE, organizations can train ML models and make predictions on encrypted data.

Welcome to discuss potential applications of N2HE here!


Research on how to replace wildcard permissions in favour of permissions with caveats

Description
Wildcards are a kind of attenuation. Caveats are the means by which permissions are attenuated in ZCAP-LD. Everything we can do with wildcards can be done with caveats. Wildcards therefore add unnecessary complexity to the PermissionController, and should be removed in favour of caveats that provides easier readability.
For example
The getBip32Entropy permission would become something like this:
Before
// PermissionController state
{
  `snap_getBip32Entropy_m/44'/1'`: { ... },
  `snap_getBip32Entropy_m/44'/60'`: { ... },
}

After
// PermissionController state
{
  `snap_getBip32Entropy`: {
    caveats: [
      {
        type: 'permittedPaths',
        value: [
          `m/44'/1'`,
          `m/44'/60'`,
        ]
    ]
  },
}

Outcome
Result of this task should be a list of changes needed to remove wildcard support from PermissionController, all snap controllers and the changes needed for replacement of the permissions with caveat-based ones.
The report should be descriptive enough that the team can estimate the amount of work needed, either by amount of time or by story points.

Upon closer review, this issue is significantly complicated by our use of wildcard permissions for the snap permissions themselves. For example, the permission to communicate with the Filecoin snap currently looks like this:
"wallet_snap_npm:@chainsafe/filsnap": {
    "caveats": null,
    "date":<PHONE_NUMBER>322,
    "id": "Y34wk3O654MSvS1hOwXs7",
    "invoker": "https://filsnap.chainsafe.io",
    "parentCapability": "wallet_snap_npm:@chainsafe/filsnap"
}

If we got rid of wildcards, it would look something like this instead:
"wallet_snap": {
    "caveats": [{
      "type": "snapIds",
      "value": {
        "npm:@chainsafe/filsnap": {
          "version": "1.0.0"
        }
      }
    }],
    "date":<PHONE_NUMBER>322,
    "id": "Y34wk3O654MSvS1hOwXs7",
    "invoker": "https://filsnap.chainsafe.io",
    "parentCapability": "wallet_snap"
}

The good news is that we already ask people to use wallet_enable to connect to snaps, and that already conforms to what the API would look like with caveats instead of wildcards:
async function connect () {
  await ethereum.request({
    method: 'wallet_enable',
    params: [{
      wallet_snap: { [snapId]: {} },
    }]
  })
}

Still, this significantly increases the scope of the refactor required on the Snaps side of things. We'll have to see how big and whether to proceed.

We need to research this now because when we reach v1 release we will not be able to go back and change this

Hey team! Please add your planning poker estimate with Zenhub @david0xd @FrederikBolding @GuillaumeRx @hmalik88 @Mrtenz @ritave

Please see https://github.com/MetaMask/MetaMask-planning/issues/297


SplitView ":open"/":closed" pseudoclasses aren't set on control initialization

Describe the bug
SplitView control after it initialized does not have :open or :closed pseudoclass set. Regardless of the value in the IsPaneOpen property.
To Reproduce
Create Window with a SplitView control, set IsPaneOpen to any value (e.g, by binding to ViewModel)
Run the application in Debug, open Debug tools
In Logical Tree, find SplitView. The SplitView doesn't have :open / :closed pseudoclass set regardless of the value in the IsPaneOpen property.

Pseudoclass is set only after first change of IsPaneOpen property
Expected behavior
SplitView control after initialization should have :open / :closed pseudoclass set depending of the value in the IsPaneOpen property
Avalonia version
11.1.0
OS
Windows
Additional context
After looking into SplitView.cs source code, the problem appears to be that the logic for changing pseudoclass based on IsPaneOpen value is present only in OnPropertyChanged method. Adding same logic to constructor should fix the issue

@OccVeneficus if you have an idea how to solve it, a PR is welcome.

@OccVeneficus if you have an idea how to solve it, a PR is welcome.

Created PR with fix. While working on it discovered that issue reproduces only if before added on view tree IsPaneOpen property is set to false, in that case :closed pseudoclass won't be added after control first rendered.


Dry run wrong output with using "insert"

During our last deployment we learned that "--dry-run" option can output wrong sql script.
For this migration:
$this->table('my_table', ['id' => false, 'primary_key' => ['id']])
            ->addColumn('id', 'uuid')
            ->addColumn('name', 'string')
            ->save();

        $this->table('my_table')
            ->insert([
                'id' => '72daede1-1c23-4094-92cc-fa22e4419fb6',
                'name' => 'somename'
            ])->save();

the output is:
==<PHONE_NUMBER>2215 TestMigration: migrating
START TRANSACTION
CREATE TABLE `1mm_p4x_my_table` (`id` CHAR(36) NOT NULL, `name` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `1mm_p4x_my_table` (`id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`)) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
INSERT INTO `1mm_p4x_my_table` (`id`, `name`) VALUES ('72daede1-1c23-4094-92cc-fa22e4419fb6', 'somename');
COMMIT
INSERT INTO `phinxlog` (`version`, `migration_name`, `start_time`, `end_time`, `breakpoint`) VALUES ('20190709152215', 'TestMigration', '2019-07-09 15:25:53', '2019-07-09 15:25:53', 0);
==<PHONE_NUMBER>2215 TestMigration: migrated 0.0148s

as you can see - there is second "create table" and script fails because of it.
It's related to that "insert" - when I removed it - it was fine.

If you are able to fix it and send us a pull request, it would be greatly appreciated


[feature] DevOps/GitHub Actions Release Pipeline Guidance

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
There are sporadic mentions of benefits of the CAF rover in DevOps, but there is no guidance on configuration of such in Azure DevOps or in GitHub via "actions."
Describe the solution you'd like
A clear and concise description of what you want to happen.
I'm more than happy to contribute to this effort, as I believe this project has the potential to dramatically improve our ability to produce, release, maintain standards-based IaC.  Perhaps I can be involved in the capacity of guinea pig, and apply instructions and guidance in DevOps implementation approach to validate the concept. I can create accompanying documentation for other developers/implementers of the project. I'll gladly produce the technical documentation for publication here in return for assistance with the DevOps pipelines.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
I've considered "hacking it together" and getting it to run in my DevOps environment.  I think going through the process, and documenting the approach for the general public is a better more valuable option.
Additional context
Add any other context or screenshots about the feature request here.

Good feedback @klawrawkz we will add this for 2004 release.

@arnaudlh Hi, I was testing running the Rover image from Azure DevOps container job using a Hosted agent. I was basically trying to mimic what works in Github action example: https://github.com/aztfmod/rover/blob/master/.github/workflows/ci-branches.yml#L63
This is what my azure-pipelines.yml looks like so far
variables:
  location: 'westeurope'

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

container: aztfmod/rover:2004.1606

steps:
- script: |
    az login --service-principal -u '$(ARM_CLIENT_ID)' -p '$(ARM_CLIENT_SECRET)' --tenant '$(ARM_TENANT_ID)'
    az account set -s  $(ARM_SUBSCRIPTION_ID)
    echo "local user: $(whoami)"
  displayName: 'Login to Azure'

The hosted agent OS (vm image) should be same as in Github action example (ubuntu-18.04).
However, the pipeline fails already in container initialization phase:

Are you planning to support ADO Hosted agents (container jobs) in the future or is it possible to get it working somehow like this? Was hoping to survive without self-hosted agents at this point but would be valuable to know if they're the only way to go if using Azure DevOps for CI/CD.

hi folks, we are going to publish guidance on that in a couple of days, with a brand new version of rover to support those scenarios. Bear with us :)

Are you planning to support ADO Hosted agents (container jobs) in the future or is it possible to get it working somehow like this?

@arnaudlh Seems to work after all, was just missing this additional options from the container job
container:
  image: aztfmod/rover:2004.1606
  options: --user 0

I managed to get around this limitation with ADO hosted agents, by installing sudo to the Rover container in following way

..
container:
  image: aztfmod/rover:2004.1606
  options: --user 0 --name rover-container -v /usr/bin/docker:/tmp/docker:ro
..

steps:
- script: |
    /tmp/docker exec -t -u 0 rover-container \
    sh -c "yum install -y sudo"
  displayName: 'Set up sudo'
- script: |
    ls -la
    sudo chmod -R 777 /home/vscode
    sudo chmod -R 777 /tf/launchpads
  displayName: 'File permissions'
..

I had to elevate some file permissions this way. This is MVP but worked for me.

hi @Masahigo and @klawrawkz, added basic guidance on ADO and GHA (check at the commits) will be ready for next merge. dont hesitate to further comment and contribute on that area. In next release, will come up with some more doc and automation for pipelines creation. Let us know any feedback :)

@arnaudlh I did a small example as well:
https://github.com/Masahigo/caf-terraform-landingzone-example

hi @Masahigo and @klawrawkz, added basic guidance on ADO and GHA (check at the commits) will be ready for next merge. dont hesitate to further comment and contribute on that area. In next release, will come up with some more doc and automation for pipelines creation. Let us know any feedback :)

I was missing proper instructions for creating the Service Principal to be used via CI/CD. It's not enough for the SP to have Contributor role on the subscription level, it also requires permissions to create new SPs (ie it needs the AAD Application Developer role) and some other RBAC permissions - for which I created another custom role:
https://github.com/Masahigo/caf-terraform-landingzone-example/tree/master/pipelines#create-the-service-principal-for-cicd

Hi @arnaudlh May I please request you to provide a starter CI File/ Yaml file to run the newer version of the Landing zones? Any pointers are much appreciated. I m not able to go past the login in the pipeline

Hi @arnaudlh May I please request you to provide a starter CI File/ Yaml file to run the newer version of the Landing zones? Any pointers are much appreciated. I m not able to go past the login in the pipeline


Handle long project websites better

Summary

Need fix for:

[ ] preview in create flow
[ ] project page

Steps to reproduce

Go to '...'
Click on '....'
Scroll down to '....'
See error

What is the current bug behavior?
What is the expected correct behavior?
Relevant logs and/or screenshots
Environment

Device/OS: [e.g. iOS]
Browser: [e.g. chrome, safari]
Hardware wallet: [e.g. Ledger w/ Metamask]

Closing, duplicate of https://github.com/jbx-protocol/juice-interface/issues/1452


python310Packages.karton-core: 4.4.1 -> 5.0.0

Description of changes
Update karton stack.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 185673 run on x86_64-linux 1

16 packages built:

python310Packages.karton-asciimagic
python310Packages.karton-autoit-ripper
python310Packages.karton-classifier
python310Packages.karton-config-extractor
python310Packages.karton-core
python310Packages.karton-dashboard
python310Packages.karton-mwdb-reporter
python310Packages.karton-yaramatcher
python39Packages.karton-asciimagic
python39Packages.karton-autoit-ripper
python39Packages.karton-classifier
python39Packages.karton-config-extractor
python39Packages.karton-core
python39Packages.karton-dashboard
python39Packages.karton-mwdb-reporter
python39Packages.karton-yaramatcher

(apart from that, nixpkgs-review happy, macos 10.15 & nixos x86_64)

Result of nixpkgs-review pr 185673 run on x86_64-linux 1

16 packages built:

python310Packages.karton-asciimagic
python310Packages.karton-autoit-ripper
python310Packages.karton-classifier
python310Packages.karton-config-extractor
python310Packages.karton-core
python310Packages.karton-dashboard
python310Packages.karton-mwdb-reporter
python310Packages.karton-yaramatcher
python39Packages.karton-asciimagic
python39Packages.karton-autoit-ripper
python39Packages.karton-classifier
python39Packages.karton-config-extractor
python39Packages.karton-core
python39Packages.karton-dashboard
python39Packages.karton-mwdb-reporter
python39Packages.karton-yaramatcher


Add listener constructor

This allows for code such as
Server server = new Server(8080);
ServletContextHandler contextHandler = new  ServletContextHandler(ServletContextHandler.SESSIONS);
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(AppConfig.class);
contextHandler.addEventListener(new ResteasyBootstrap());
contextHandler.addEventListener(new SpringContextLoaderListener(rootContext));
contextHandler.addServlet(HttpServletDispatcher.class, "/*");
server.setHandler(contextHandler);
server.start();
server.join();

to be used inside of a servlet 3.0 container such as the Jetty server, without requiring web.xml and applicationContext.xml files.

Whoops, I just checked the pom file. The resteasy-spring project uses Spring 3.0.6.RELEASE as it's spring version. Is there a plan to bump spring version numbers?

@Sineaggi we'll eventually upgrade to a more recent spring version in the future, not now though. What is the minimum requirement for your change here, Spring 4.3.0?

@asoldano I've just tested, Spring 4.0.0 is the minimum requirement. I can try to investigate if we could add a method that sets the WebApplicationContext, while not requiring a constructor-based invocation. It would appear that AnnotationConfigWebApplicationContext is also available in Spring 3.0.0 so it may be possible. If not, applicationContext.xml is a file alternative for the time being.

Not sure what the failing test is about.
Failed tests:
  AsynchBasicTest.testAsynchTen:273 expected:<200> but was:<202>
Tests run: 1243, Failures: 1, Errors: 0, Skipped: 1

Fixed, seems like it was a fluke.

OK, thanks. Currently reasoning on the implications of spring upgrade, to decide when to merge this PR.

OK, I've squashed your commits in a single one and merged upstream after having moved to Spring 3.1.0.RELEASE. Thanks!

Thank you!

I hope that this time the pull request will not be reverted anymore, ref. my previous accepted then reverted pull request https://github.com/resteasy/Resteasy/pull/623


Fixes 2224: admin task fetch 404

Summary
Improves the "not found" error message when fetching an admin task using a uuid with invalid syntax.
Previously, when making a GET request to /admin/tasks/:uuid with a uuid that had invalid syntax, e.g. "invalid-uuid", the error message would be (ERROR: invalid input syntax for type uuid: "invalid-uuid" (SQLSTATE 22P02))
The PR changes the error message to Could not find task with UUID invalid-uuid which is consistent with other fetch APIs
Testing steps
curl localhost:8000/api/content-sources/v1.0/admin/tasks/bad-uuid  -H "`./scripts/header.sh 1 adminUser`"
The "admin_tasks" config feature must be enabled. Either both "admin_tasks.accounts" and "admin_tasks.users" must  be nil to allow any user to access it, or "adminUser" must be added to "admin_tasks.users" to access the endpoint.
This can also be tested through the frontend in this PR by navigating to /beta/insights/content/admin-tasks/bad-uuid You should be redirected to /beta/insights/content/admin-tasks and the error will pop up as a notification.

https://issues.redhat.com/browse/HMS-2224


Script with GPU on Linux

I'm looking to use the script on a dedicated GPU (GeForce GT 710 1 GB), but my question before signing a dedicated one is whether the script uses the GPU and CPU in a Linux environment?

Full FFMPEG hardware acceleration is supported for both encoding and decoding. See the hwaccels and hwaccel-decoders settings in addition to the various types of accelerated codecs that can be found in the avcodecs.py file

Thank you!

No prob, there's a couple good 'issues' that have been closed that may be helpful if you have any questions on github; otherwise if you run into errors or something just post
Make sure your build of FFMPEG is compiled with hardware acceleration support whenever you do get started


ARROW-17635: [Python][CI] Sync conda recipe with the arrow-cpp feedstock

Corresponds to status of feedstock as of https://github.com/conda-forge/arrow-cpp-feedstock/pull/848, minus obvious & intentional divergences in the setup here (with the exception of unpinning xsimd, which was pinned as of 9.0.0, but isn't anymore).

@github-actions crossbow submit -g conda

Hmm, you might want to rebase and fix conflicts now that the C++17 PR was merged :-)

I think the config on our tasks.yml has to be updated to match the new file names, as an example this line: https://github.com/apache/arrow/blob/master/dev/tasks/tasks.yml#L255 that's why the builds failed.
@h-vetinari I've never done it before, could you share, or point me to where I can investigate, the process you followed to update these files? From what I understand this is automated, we should document how to do it for future updates. I am happy to document it if you point me on what needs to be done.
Thanks for the PR!

I think the config on our tasks.yml has to be updated to match the new file names, as an example this line: https://github.com/apache/arrow/blob/master/dev/tasks/tasks.yml#L255 that's why the builds failed.

That was very much correct thanks! :)

@h-vetinari I've never done it before, could you share, or point me to where I can investigate, the process you followed to update these files? From what I understand this is automated, we should document how to do it for future updates. I am happy to document it if you point me on what needs to be done. Thanks for the PR!

Yes of course. This comes from more or less 1:1 from the so-called feedstock on the conda-forge side, where the recipe is maintained, and where all these .ci_support/*.yaml files get generated based on the recipe & the conda-forge global pinning by our friendly automation bots.
Conda-forge is constantly updating builds against new versions (e.g. abseil/grpc/libprotobuf), and once arrow has been successfully built against those packages, the builds are published (by the CI on the feedstock) and the recipe is updated.
In this case, there's been a while since the last update, so our infrastructure has changed a bit. Also, the relatively scary-looking changes in bld-arrow.bat are mostly just simple alphabetizations (more commit history on the feedstock).
I synced the recipe separately from the ci-files, taking care to undo some things that are intentionally different in arrow-CI:

diff --git a/dev/tasks/conda-recipes/arrow-cpp/bld-pyarrow.bat b/dev/tasks/conda-recipes/arrow-cpp/bld-pyarrow.bat
index e1073b563..bd20c79ef 100644
--- a/dev/tasks/conda-recipes/arrow-cpp/bld-pyarrow.bat
+++ b/dev/tasks/conda-recipes/arrow-cpp/bld-pyarrow.bat
@@ -1,16 +1,18 @@
+@echo on
 pushd "%SRC_DIR%"\python

 @rem the symlinks for cmake modules don't work here
-del cmake_modules\BuildUtils.cmake
-del cmake_modules\SetupCxxFlags.cmake
-del cmake_modules\CompilerInfo.cmake
-del cmake_modules\FindNumPy.cmake
-del cmake_modules\FindPythonLibsNew.cmake
-copy /Y "%SRC_DIR%\cpp\cmake_modules\BuildUtils.cmake" cmake_modules\
-copy /Y "%SRC_DIR%\cpp\cmake_modules\SetupCxxFlags.cmake" cmake_modules\
-copy /Y "%SRC_DIR%\cpp\cmake_modules\CompilerInfo.cmake" cmake_modules\
-copy /Y "%SRC_DIR%\cpp\cmake_modules\FindNumPy.cmake" cmake_modules\
-copy /Y "%SRC_DIR%\cpp\cmake_modules\FindPythonLibsNew.cmake" cmake_modules\
+@rem NOTE: In contrast to conda-forge, they work here as we clone from git.
+@rem del cmake_modules\BuildUtils.cmake
+@rem del cmake_modules\SetupCxxFlags.cmake
+@rem del cmake_modules\CompilerInfo.cmake
+@rem del cmake_modules\FindNumPy.cmake
+@rem del cmake_modules\FindPythonLibsNew.cmake
+@rem copy /Y "%SRC_DIR%\cpp\cmake_modules\BuildUtils.cmake" cmake_modules\
+@rem copy /Y "%SRC_DIR%\cpp\cmake_modules\SetupCxxFlags.cmake" cmake_modules\
+@rem copy /Y "%SRC_DIR%\cpp\cmake_modules\CompilerInfo.cmake" cmake_modules\
+@rem copy /Y "%SRC_DIR%\cpp\cmake_modules\FindNumPy.cmake" cmake_modules\
+@rem copy /Y "%SRC_DIR%\cpp\cmake_modules\FindPythonLibsNew.cmake" cmake_modules\

 SET ARROW_HOME=%LIBRARY_PREFIX%
 SET SETUPTOOLS_SCM_PRETEND_VERSION=%PKG_VERSION%
diff --git a/dev/tasks/conda-recipes/arrow-cpp/meta.yaml b/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
index 107b8433a..fd0625296 100644
--- a/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
+++ b/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
@@ -1,6 +1,7 @@
-{% set version = "9.0.0" %}
+# NOTE: In constrast to the conda-forge recipe, ARROW_VERSION is a templated variable here.
+{% set version = ARROW_VERSION %}
 {% set cuda_enabled = cuda_compiler_version != "None" %}
-{% set build_ext_version = "3.0.0" %}
+{% set build_ext_version = ARROW_VERSION %}
 {% set build_ext = "cuda" if cuda_enabled else "cpu" %}
 {% set proc_build_number = "0" %}
 {% set llvm_version = "14" %}
@@ -10,15 +11,10 @@ package:
   version: {{ version }}

 source:
-  url: https://dist.apache.org/repos/dist/release/arrow/arrow-{{ version }}/apache-arrow-{{ version }}.tar.gz
-  sha256: a9a033f0a3490289998f458680d19579cf07911717ba65afde6cb80070f7a9b5
-  patches:
-    # backport of the following commit for compatibility with VS2019
-    # https://github.com/apache/arrow/commit/897c186f475f3dd82c1ab47e5cfb87cb0fed8440
-    - patches/0001-ARROW-17433-CI-C-Use-Visual-Studio-2019-on-AppVeyor-.patch
+  path: ../../../../

 build:
-  number: 6
+  number: 0
   # for cuda support, building with one version is enough to be compatible with
   # all later versions, since arrow is only using libcuda, and not libcudart.
   skip: true  # [(win or linux64) and cuda_compiler_version not in ("None", "10.2")]
@@ -105,9 +101,7 @@ outputs:
         - re2
         - snappy
         - thrift-cpp
-        # https://github.com/apache/arrow/blob/apache-arrow-9.0.0/cpp/cmake_modules/ThirdpartyToolchain.cmake#L2245
-        # currently pins to exact xsimd version
-        - xsimd 8.1.0
+        - xsimd
         - zlib
         - zstd
       run:

After fixing the paths to the CI-support files in tasks.yml,  I decided to tackle a todo about the windows CUDA builds, which we also have on the feedstock. The one divergence is that I didn't enable the CUDA builds on aarch64, because these are currently run in emulation (and not cross-compiled), which takes ~6h instead of ~1h.
Hope that makes things clearer. 🙃
Though, to be frank, I really only know the conda-forge side of this, so for arrow-specific things, we should definitely ask @xhochy to double-check the work here.

@github-actions crossbow submit -g conda

Thanks for the detailed response!

Yes of course. This comes from more or less 1:1 from the so-called feedstock on the conda-forge side (though in this case it's still the state of a PR), where the recipe is maintained, and where all these .ci_support/*.yaml files get generated based on the recipe & the conda-forge global pinning by our friendly automation bots.
This .ci_support/*.yaml are updated with conda smithy rerender? Is this done with the automation bots or is this done on a periodic basis? I understand we should not do it in the arrow repo as we should just pull the upstream feedstock ones.

This .ci_support/*.yaml are updated with conda smithy rerender? Is this done with the automation bots or is this done on a periodic basis? I understand we should not do it in the arrow repo as we should just pull the upstream feedstock ones.

It's possible to run this locally in principle, but it would be incomplete, because conda smithy rerender cares about conda-forge's  CI setup (in .azure-pipelines/* etc.), and wouldn't correctly populate dev/tasks/tasks.yml. But at least the CI yamls could be generated, yes.
Another option might be to use the conda-forge feedstock as a submodule (in a fork controlled by arrow) where it would be possible to:

carry a small patch along the lines of what I showed aboved in the details-tag
rebase that patch semi-regularly & update the included submodule commit here to point to that
point dev/tasks/tasks.yml to consume the files from within the submodule

This would have slightly higher impedance for development work that needs to touch the conda recipe (i.e. part of the work would be a commit to that forked feedstock and updating the PR to point to that commit), but with the benefit that we could sync the changes that accumulated throughout the development of a new arrow version faithfully to the feedstock, and easily sync back infra updates from conda-forge the other way.

It seems FindLLVMAlt.cmake was recently refactored and the recipe from conda-forge (adapted to 9.0.0) is not ready for that:
-- Could NOT find LLVM (missing: LLVM_DIR)
-- Could NOT find LLVM (missing: LLVM_DIR)
CMake Error at D:/bld/arrow-cpp-ext_1663151790677/_build_env/Library/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find LLVMAlt (missing: LLVM_PACKAGE_VERSION CLANG_EXECUTABLE
  LLVM_FOUND LLVM_LINK_EXECUTABLE)

Interestingly, this only fails during the pyarrow builds (for the CI jobs I looked at), after the arrow-cpp builds were already successful...

@h-vetinari Can we determine what LLVM is used for during the PyArrow build?

@h-vetinari Can we determine what LLVM is used for during the PyArrow build?

Not sure I understand your question, but there's no LLVM but the one we specify to be there. ;-)
The recipe as posted in this PR works for 9.0 (otherwise the feedstock would be broken currently). where we currently use LLVM 14 (though note that the llvm artefacts are a bit split up in conda-forge, i.e. we distinguish between llvm the library, clang, libcxx, openmp, etc.). I don't know what LLVM_DIR expects, but it would be quite inconvenient if this required the actual llvm-project sources.

Sorry. I guess my question was: what does PyArrow try to do with LLVM?

Sorry. I guess my question was: what does PyArrow try to do with LLVM?

That's a good question. I'd have to go hunting in what gets triggered by setup.py - perhaps it's something not strictly necessary, perhaps it's a second step for the gandiva bitcode stuff, or something else entirely. I was hoping that people involved here would have more of an idea (as to what changed since 9.0).
Perhaps @kou (as the author of the changes in https://github.com/apache/arrow/pull/13892) knows.

We need LLVM headers to use Gandiva. (Some public Gandiva headers use LLVM headers.)
If we build PyArrow with Gandiva support, we need LLVM as a build-time dependency.

We need LLVM headers to use Gandiva. (Some public Gandiva headers use LLVM headers.) If we build PyArrow with Gandiva support, we need LLVM as a build-time dependency.

Yes, and LLVM + its headers are during build time from the standard location in the $PREFIX. CMake is easily able to find it based on that, but the custom (AFAICT) findLLVMAlt has it's own checks that fail to find it now (or need something more; is LLVM_DIR suppqosed to be $PREFIX/lib or $PREFIX/include/llvm or something else?)

We need LLVM headers to use Gandiva. (Some public Gandiva headers use LLVM headers.)

Ouch. That's rather bad. I hadn't noticed that.

We need LLVM headers to use Gandiva. (Some public Gandiva headers use LLVM headers.)

Ouch. That's rather bad. I hadn't noticed that.

Not sure it's bad (certainly not a problem from the POV of conda-forge), it's been running for a long time like that.
What changed recently is how those headers are detected.

Not sure it's bad (certainly not a problem from the POV of conda-forge), it's been running for a long time like that.

Yeah, that was more of a general statement, not specifically about conda-forge.
But exposing such a large dependency as LLVM in headers should never have been accepted IMHO (especially as there's probably no reason to do so).

CMake is easily able to find it based on that, but the custom (AFAICT) findLLVMAlt has it's own checks that fail to find it now (or need something more; is LLVM_DIR suppqosed to be $PREFIX/lib or $PREFIX/include/llvm or something else?)

Could you share the URL for the error?

But exposing such a large dependency as LLVM in headers should never have been accepted IMHO (especially as there's probably no reason to do so).

Let's discuss this on<EMAIL_ADDRESS>with Gandiva maintainers.

Could you share the URL for the error?

It's in the crossbow runs from this comment. The updates in this PR correspond to the state of the feedstock, with (essentially) the only change that here the recipe is building from the master branch rather than from a tagged version, i.e. after importing the recipe folder into dev/tasks/conda-recipes/arrow-cpp, I did:
diff --git a/dev/tasks/conda-recipes/arrow-cpp/meta.yaml b/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
index 107b8433a..fd0625296 100644
--- a/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
+++ b/dev/tasks/conda-recipes/arrow-cpp/meta.yaml
@@ -1,6 +1,7 @@
-{% set version = "9.0.0" %}
+# NOTE: In constrast to the conda-forge recipe, ARROW_VERSION is a templated variable here.
+{% set version = ARROW_VERSION %}
 {% set cuda_enabled = cuda_compiler_version != "None" %}
-{% set build_ext_version = "3.0.0" %}
+{% set build_ext_version = ARROW_VERSION %}
 {% set build_ext = "cuda" if cuda_enabled else "cpu" %}
 {% set proc_build_number = "0" %}
 {% set llvm_version = "14" %}

Thanks. It seems that LLVM related packages are removed from pyarrow's host requirements: https://github.com/apache/arrow/pull/14102/files#diff-e1dc9dc44f82817c013424829588fc3fe48e63c78b42ce47e012016a243de09bL187-L189
Could you restore them?

Could you restore them?

Yes! I did add the llvmdev headers & tools now, though I'm not sure about clangdev. Do you need libclang / libclang-cpp as well? Can we make this more specific than the whole compiler + all corresponding libraries & binaries?

@github-actions crossbow submit -g conda

I think that we don't need clang related but I'm not sure. Let's try.

https://dev.azure.com/ursacomputing/crossbow/_build/results?buildId=34819&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb&t=d9b15392-e4ce-5e4c-0c8c-b69645229181&l=3847
  Could NOT find LLVMAlt (missing: CLANG_EXECUTABLE)

clang is needed for our FindLLVMAlt.cmake. (LLVMConfig.cmake doesn't require it.)
Could you add clang too for now?

Could you add clang too for now?

Done

clang is needed for our FindLLVMAlt.cmake. (LLVMConfig.cmake doesn't require it.)

That really sounds to me like FindLLVMAlt should learn to find llvm without clang, as these are pretty heavy dependencies we shouldn't be adding gratuitously to the build.

@github-actions crossbow submit -g conda

We may should split our FindLLVMAlt.cmake to FindLLVMAlt.cmake and FindClang.cmake...

We need LLVM and clang for pyarrow-test too.

@github-actions crossbow submit -g conda

I guess with the work around removing the python dependence from arrow-cpp, the tests need to be adapted not to look for libarrow_python anymore, or at least not as part of the tests for arrow-cpp.

Removed needless arrow_python checks.

@github-actions crossbow submit -g conda

@h-vetinari Most jobs are green now. Could you confirm failed cases? They report SEGV.
For example:
Failed conda-linux-gcc-py310-ppc64le https://dev.azure.com/ursacomputing/crossbow/_build/results?buildId=35017&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb&t=d9b15392-e4ce-5e4c-0c8c-b69645229181 :
import: 'pyarrow'
<jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
<jemalloc>: (This is the expected behaviour if you are running under QEMU)
/build/arrow-cpp-ext_1663379118797/test_tmp/conda_test_runner.sh: line 3: 11507 Illegal instruction     (core dumped) "/build/arrow-cpp-ext_1663379118797/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/bin/python" -s "/build/arrow-cpp-ext_1663379118797/test_tmp/run_test.py"
Tests failed for pyarrow-10.0.0.dev214-py310h4ba9814_0_cpu.tar.bz2 - moving package to /build/broken
WARNING:conda_build.build:Tests failed for pyarrow-10.0.0.dev214-py310h4ba9814_0_cpu.tar.bz2 - moving package to /build/broken
TESTS FAILED: pyarrow-10.0.0.dev214-py310h4ba9814_0_cpu.tar.bz2
##[error]Bash exited with code '1'.

Succeeded conda-linux-gcc-py310-ppc64le in nightly build https://dev.azure.com/ursacomputing/crossbow/_build/results?buildId=34892&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb&t=d9b15392-e4ce-5e4c-0c8c-b69645229181&l=6406 :
import: 'pyarrow'
<jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
<jemalloc>: (This is the expected behaviour if you are running under QEMU)
import: 'pyarrow.dataset'
import: 'pyarrow.flight'
import: 'pyarrow.gandiva'
import: 'pyarrow.orc'
import: 'pyarrow.parquet'
import: 'pyarrow.plasma'
import: 'pyarrow.fs'
import: 'pyarrow._s3fs'
import: 'pyarrow._hdfs'
import: 'pyarrow'
import: 'pyarrow._hdfs'
import: 'pyarrow._s3fs'
import: 'pyarrow.dataset'
import: 'pyarrow.flight'
import: 'pyarrow.fs'
import: 'pyarrow.gandiva'
import: 'pyarrow.orc'
import: 'pyarrow.parquet'
import: 'pyarrow.plasma'
+ test '!' -f /build/arrow-cpp-ext_1663333320216/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.10/site-packages/pyarrow/tests/test_array.py
+ exit 0

Did you rebase on git master to have the latest C++17 changes?

Did you rebase on git master to have the latest C++17 changes?

Rebased now.

@h-vetinari Most jobs are green now. Could you confirm failed cases? They report SEGV.

The failures on osx{,-arm} are a known but unresolved source of spurious segfaults at the moment. On the feedstock I just restart these...
For PPC, the main change was that we bumped from GCC 7 -> 10 (previously stuck due to GCC bugs with the compiler flag -fno-flt that conda-forge sets by default), but otherwise I don't know what's going on there. The import test are also passing in our CI, so it might also be something on master here. If needed I can run a build from HEAD in the feedstock and see what happens.

@github-actions crossbow submit -g conda

I started looking at the PPC errors in https://github.com/conda-forge/arrow-cpp-feedstock/pull/866
Additionally, the windows builds seem to fail with the following error. I'm guessing these would appear here as well as soon as I'd rebase.

CMake Error at CMakeLists.txt:75 (find_package):
  By not providing "FindPython3Alt.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "Python3Alt", but CMake did not find one.

  Could not find a package configuration file provided by "Python3Alt"
  (requested version 3.7) with any of the following names:

    Python3AltConfig.cmake
    python3alt-config.cmake

  Add the installation prefix of "Python3Alt" to CMAKE_PREFIX_PATH or set
  "Python3Alt_DIR" to a directory containing one of the above files.  If
  "Python3Alt" provides a separate development package or SDK, be sure it has
  been installed.

PS. I also wanted to look at the r-arrow failures on windows, but based on https://github.com/conda-forge/r-arrow-feedstock/pull/55, it's at least not something major (though I haven't build from HEAD there yet)

For the Windows builds, symbolic link may be a problem.
https://github.com/apache/arrow/blob/master/python/cmake_modules uses symbolic link but it doesn't work on Windows. Our released archives copy the directory instead of symbolic link.

Could you extract backtrace from the core file?
https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=572972&view=logs&j=b7a895b1-8909-5023-4a22-40a4698fe576&t=97202c64-61a6-5e06-026a-f8da320182b5&l=6680

@h-vetinari If PPC is a problem, we can open a JIRA to fix it separately later. It is probably low-priority for our user base.

@h-vetinari If PPC is a problem, we can open a JIRA to fix it separately later. It is probably low-priority for our user base.

OK cool - aside from that the PR is mostly ready. Do you want me to disable the PPC conda jobs somehow?

The other remaining issue seems to be the R builds.

I have less experience with this TBH, but will try to have a look next week if no-one can get there before. Hints/experiences/opinions still very much appreciated though

The other remaining issue seems to be the R builds.

I have less experience with this TBH, but will try to have a look next week if no-one can get there before. Hints/experiences/opinions still very much appreciated though

If you rebase here, I can try and help with the R builds. I guess I'm the only one aware of what is happening inside of them in regards to the conda recipe setup there.

Do you want me to disable the PPC conda jobs somehow?

I don't know. @assignUser What do you think?

If you rebase here, I can try and help with the R builds.

Rebased now - sorry it took a while, was in the middle of a big move.

@github-actions crossbow submit conda-win-vs2019-py37-r41

Do you want me to disable the PPC conda jobs somehow?

I don't know. @assignUser What do you think?

:shurg: I am not sure, I don't really know if this is important for the user base. We could remove them for nwo if the issue is out of scope to fix here.

Ok, let's disable PPC now. The goal should be to improve the state of conda recipes, not necessarily get all of them working.

Just to note that in https://github.com/conda-forge/arrow-cpp-feedstock/pull/866, the PPC builds aren't failing anymore.
Though there's another topic where I'd be happy for input - now that arrow-cpp does not depend on python anymore, conda smithy by default folds all the pyarrow-outputs into the same job. This is great for all arches except those where we are dead slow due to emulation. To straddle that divide there are 4 options, feedback would be most welcome. :)
Spoiler: option 4. would be ideal but is unrealistic, option 3. is second-best and should be compatible with the recipe sync here.
PS. I'd deal with this separately from this PR though

@github-actions crossbow submit conda-win-vs2019-py37-r41

@h-vetinari @pitrou  With Windows fixed, is there anything more to do here? Should we rerun the full conda crossbow suite?

@h-vetinari @pitrou With Windows fixed, is there anything more to do here? Should we rerun the full conda crossbow suite?

Whatever you prefer :)
Based on testing in https://github.com/conda-forge/arrow-cpp-feedstock/pull/866 PPC should be fine now. Of course it doesn't hurt to test, but in any case, we'll have to sync the recipe again once conda-forge starts leveraging the fact that arrow-cpp does not depend on python anymore.

@github-actions crossbow submit conda*

I think the conda-linux-gcc-py37-arm64 was a flaky connection issue. I have triggered a re-run on that one.

Thanks @raulcd! This is looking better much now. :)

@raulcd @pitrou @xhochy @kou
Anything else necessary to get this merged?

It seems that there is no objection.
I merge this.

@h-vetinari thanks a lot for the effort here!


Settings button doesn't work in GSConnect extension interface (GNOME Extensions App)

Describe the bug
Pressing the Settings button in the GSConnect extension interface in the GNOME Extensions App has no effect.
Steps To Reproduce
Steps to reproduce the behavior:

Start the GNOME Extensions App
Open the GSConnect extension interface
Press the Settings button

Expected behavior
The GSConnect settings dialog opens.
(Note: The dialog opens normally via the GNOME system tray > Mobile Devices > Mobile Settings.)
Additional context
See https://github.com/GSConnect/gnome-shell-extension-gsconnect/issues/1807#issuecomment-2481319983 for a related issue.
System Info

OS: NixOS 24.11 (Vicuna)
GNOME / GNOME Shell: 47.0
gnome-extensions / gnome-extensions-app: 47.0
GSConnect: 58

Notify maintainers
@jtojnar
@babbaj
@doronbehar

Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

Thanks for reporting. I can reproduce and see the following in the journal:
Dec 09 21:26:14 nixos gjs[2504]: JS ERROR: Error: Requiring Gdk, version 3.0: Typelib file for namespace 'Gdk', version '3.0' not found
                                 require@resource:///org/gnome/gjs/modules/esm/gi.js:16:28
                                 @gi://Gdk:3:25
Dec 09 21:26:14 nixos gjs[2504]: Module<EMAIL_ADDRESS>threw an exception

This is a Nixpkgs packaging bug. Since we do not have FHS, we need to patch preferences.js to insert the path to typelib path explicitly.

@jtojnar I don't experience this issue, perhaps because my desktop session has an $XDG_DATA_DIRS that includes the correct path for this Gdk typelib?
 Here are my `$XDG_DATA_DIRS`
/nix/store/994xi4i3mn2212pc9z860y6fzg52yidw-shared-mime-info-2.4/share
/nix/store/lhgy3736lcxfilbqyqss4sfyvd3m27ls-gnome-shell-47.1/share
/nix/store/p5nz6gdblng41fiqqb7z88l119dc9v56-gsettings-desktop-schemas-47.1/share/gsettings-schemas/gsettings-desktop-schemas-47.1
/nix/store/jbck0ahim6cbjjzl1wmrch5inhbhkkra-gtk4-4.16.3/share/gsettings-schemas/gtk4-4.16.3
/nix/store/jm91z9firz48bka6i1lzlf4ldg3dv5iw-gnome-keyring-46.2/share/gsettings-schemas/gnome-keyring-46.2
/nix/store/jafg82h0x96756am4nl5w52v7avbqf4c-mutter-47.1/share/gsettings-schemas/mutter-47.1
/nix/store/cxpv2dcv81f1kcgk7yvb967j07ziy5b9-evolution-data-server-3.54.1/share/gsettings-schemas/evolution-data-server-3.54.1
/nix/store/myw887ziq1j5431d5zxx22c49ww0fxwz-gdm-47.0/share/gsettings-schemas/gdm-47.0
/nix/store/ahw5bb4z7cd7nm8cfr14wbk459mspvsl-gnome-clocks-47.0/share/gsettings-schemas/gnome-clocks-47.0
/nix/store/wkcrggr5f1nbnw2w4fnyvi5nm5pmnx2q-ibus-1.5.31/share/gsettings-schemas/ibus-1.5.31
/nix/store/sv8x05vbi1jhadpx73dnv3raynlcbxh4-gnome-settings-daemon-47.1/share/gsettings-schemas/gnome-settings-daemon-47.1
/nix/store/mhp5jkwqgyz0s7klvpl23x3axgvn6msm-pipewire-1.2.6/share/gsettings-schemas/pipewire-1.2.6
/nix/store/hs2xyq4s1868fcabcfnaik733lb0p50n-libgweather-4.4.4/share/gsettings-schemas/libgweather-4.4.4
/nix/store/79hcwyipm640qah964b69x1xga5i1lrz-libnma-1.10.6/share/gsettings-schemas/libnma-1.10.6
/nix/store/lhgy3736lcxfilbqyqss4sfyvd3m27ls-gnome-shell-47.1/share/gsettings-schemas/gnome-shell-47.1
/nix/store/mqxa5a0l9cfpkj6pyx861lpd1ig221pb-gnome-mimeapps/share
/nix/store/11s4ivs86p0s8idhj8cnr1sfw8s93g70-desktops/share
/home/doron/.local/share/flatpak/exports/share
/var/lib/flatpak/exports/share
/home/doron/.nix-profile/share
/nix/profile/share
/home/doron/.local/state/nix/profile/share
/etc/profiles/per-user/doron/share
/nix/var/nix/profiles/default/share
/run/current-system/sw/share
/nix/store/lhgy3736lcxfilbqyqss4sfyvd3m27ls-gnome-shell-47.1/share/gsettings-schemas/gnome-shell-47.1
/nix/store/drb23knbdal3j1ha28aj4hw67c9rfm53-gnome-shell-extensions-47.1/share/gsettings-schemas/gnome-shell-extensions-47.1
/nix/store/xwc8raa4mwi6rsba9qmd86q668r0l6hc-gnome-session-47.0.1/share
/nix/store/p5nz6gdblng41fiqqb7z88l119dc9v56-gsettings-desktop-schemas-47.1/share/gsettings-schemas/gsettings-desktop-schemas-47.1
/nix/store/vbw9c3pvwli5iidik8dddgz423wr1h18-gtk+3-3.24.43/share/gsettings-schemas/gtk+3-3.24.43
/nix/store/sv8x05vbi1jhadpx73dnv3raynlcbxh4-gnome-settings-daemon-47.1/share/gsettings-schemas/gnome-settings-daemon-47.1
/nix/store/xwc8raa4mwi6rsba9qmd86q668r0l6hc-gnome-session-47.0.1/share/gsettings-schemas/gnome-session-47.0.1
/nix/store/lhgy3736lcxfilbqyqss4sfyvd3m27ls-gnome-shell-47.1/share

I also noticed that this @typelibPath:
https://github.com/NixOS/nixpkgs/blob/80643438112fae873869b4c6b74a85ac68e803c4/pkgs/desktops/gnome/extensions/gsconnect/fix-paths.patch#L14-L21
Doesn't get replaced by the substituteAll:
https://github.com/NixOS/nixpkgs/blob/80643438112fae873869b4c6b74a85ac68e803c4/pkgs/desktops/gnome/extensions/gsconnect/default.nix#L38-L41

@doronbehar Good catch, looks like it as forgotten in https://github.com/NixOS/nixpkgs/pull/269668. cc @kranich

Fix is available in:

https://github.com/NixOS/nixpkgs/pull/363911 .

I wonder if substituteInPlace --subst-var-by should fail if the substitution does nothing, like --replace-fail.

@bittner please reopen if the above PR hasn't fixed the issue.

I did a nix flake update and a nixos-rebuild switch

That PR probably hasn't reached the nixos-unstable branch which you are probably using. See:
https://nixpk.gs/pr-tracker.html?pr=363911
Could you please verify that by building gnomeExtensions.gsconnect from the exact same Nixpkgs revision, and check the contents of<EMAIL_ADDRESS>

I did a nix flake update and a nixos-rebuild switch

That PR probably hasn't reached the nixos-unstable branch which you are probably using. See:
https://nixpk.gs/pr-tracker.html?pr=363911
Could you please verify that by building gnomeExtensions.gsconnect from the exact same Nixpkgs revision, and check the contents of<EMAIL_ADDRESS>
I rebuilt my system with this PR backported to release-24.11 and see the fixed .../__nix-prepend-search-paths.js file, but gnome-settings-app still fails to do anything when I navigate to GSConnect -> hamburger menu -> Settings.
I get the same error as @jtojnar in journalctl -f:
Dec 16 16:16:01 whitetip gjs[6554]: JS ERROR: Error: Requiring Gdk, version 3.0: Typelib file for namespace 'Gdk', version '3.0' not found
                                    require@resource:///org/gnome/gjs/modules/esm/gi.js:16:28
                                    @gi://Gdk:3:25
Dec 16 16:16:01 whitetip gjs[6554]: Module<EMAIL_ADDRESS>threw an exception

Oh, looks like the the prefs.js invokes a separate program:
https://github.com/GSConnect/gnome-shell-extension-gsconnect/blob/ab119d9d3e273de9f9813eb9b1449198ce2dcd00/src/prefs.js#L29
So we need to also patch https://github.com/GSConnect/gnome-shell-extension-gsconnect/blob/v58/src/gsconnect-preferences
Or we could even probably wrap that.

Fix is in:

https://github.com/NixOS/nixpkgs/pull/365869

Only tested it builds, have no idea if it fixes the issue. Please help by testing this.


TECH-114: Create feature implementation for Cucumber tests for database list and database schema read

Create feature implementation for Cucumber tests for database list and database schema read
Description
For database list and database schema read features file created, implement the Cucumber features using javascript.
Create all necessary code to implement the test that have been defined. Store the files in /tests/features/support.
TICKET https://govstack-global.atlassian.net/browse/TECH-114

Great! You added a lot of changes.