Repository: All-Hands-AI/OpenHands
Pull request: Fix issue #4739: '[Bug]: The agent doesn'"'"'t know its name'
**End-user friendly description of the problem this fixes or functionality that this introduces**

- [ ] Include this change in the Release Notes. If checked, you must provide an **end-user friendly** description for your change below

---
**Give a summary of what the PR does, explaining any non-trivial design decisions**

Explicitly tell the agent "You are OpenHands agent, a helpful AI assistant that can interact with a computer to solve tasks."

---
**Link of any specific issues this addresses**

Fix #4739 

---

To run this PR locally, use the following command:
```
docker run -it --rm   -p 3000:3000   -v /var/run/docker.sock:/var/run/docker.sock   --add-host host.docker.internal:host-gateway   -e SANDBOX_RUNTIME_CONTAINER_IMAGE=ghcr.io/all-hands-ai/runtime:296b15e-nikolaik   --name openhands-app-296b15e   ghcr.io/all-hands-ai/runtime:296b15e
```

Problem statement:
[Bug]: The agent doesn't know its name
### Is there an existing issue for the same bug?

- [X] I have checked the existing issues.

### Describe the bug and reproduction steps

When asking the agent to push to github, it will often do the following, because it doesn't know what its name is supposed to be. We should probably tell the agent that its name is "OpenHands Agent" and email os "openhands@all-hands.dev" by default, but have this be configurable.

```
git config --global credential.helper store && git config --global user.email "assistant@example.com" && git config --global user.name "AI Assistant"
```

### OpenHands Installation

Docker command in README

### OpenHands Version

online app

### Operating System

None

### Logs, Errors, Screenshots, and Additional Context

_No response_

Hints from issue discussion:
We can achieve this by adding a description with the name OpenHands Agent" and email "[openhands@all-hands.dev](mailto:openhands@all-hands.dev)" to the system message in `openhands/agenthub/codeact_agent/function_calling.py`
OpenHands started fixing the issue! You can monitor the progress [here](https://github.com/All-Hands-AI/OpenHands/actions/runs/11672040407).
An attempt was made to automatically fix this issue, but it was unsuccessful. A branch named 'openhands-fix-issue-4739' has been created with the attempted changes. You can view the branch [here](https://github.com/All-Hands-AI/OpenHands/tree/openhands-fix-issue-4739). Manual intervention may be required.

Commit message: minor tweak to system message

Patch to review:
diff --git a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/evaluation-harness.md b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/evaluation-harness.md
index d027a0ead929..785112ed6ea0 100644
--- a/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/evaluation-harness.md
+++ b/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/how-to/evaluation-harness.md
@@ -279,4 +279,3 @@ Cette fonction fait ce qui suit :
 3. Si l'agent a fait plusieurs tentatives, il lui donne la possibilité d'abandonner
 
 En utilisant cette fonction, vous pouvez garantir un comportement cohérent sur plusieurs exécutions d'évaluation et empêcher l'agent de rester bloqué en attendant une entrée humaine.
-
diff --git a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/how-to/headless-mode.md b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/how-to/headless-mode.md
index 8beacdd208b6..bfcca8386ebe 100644
--- a/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/how-to/headless-mode.md
+++ b/docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/usage/how-to/headless-mode.md
@@ -58,4 +58,3 @@ docker run -it \
     ghcr.io/all-hands-ai/openhands:0.11 \
     python -m openhands.core.main -t "write a bash script that prints hi"
 ```
-
diff --git a/evaluation/README.md b/evaluation/README.md
index 7eb59c7b8d5a..8be0822875f8 100644
--- a/evaluation/README.md
+++ b/evaluation/README.md
@@ -84,4 +84,3 @@ all the preprocessing/evaluation/analysis scripts.
 - Raw data and experimental records should not be stored within this repo.
 - For model outputs, they should be stored at [this huggingface space](https://huggingface.co/spaces/OpenHands/evaluation) for visualization.
 - Important data files of manageable size and analysis scripts (e.g., jupyter notebooks) can be directly uploaded to this repo.
-
diff --git a/frontend/.eslintrc b/frontend/.eslintrc
index c0b7a8c9be2c..d5cb543bd728 100644
--- a/frontend/.eslintrc
+++ b/frontend/.eslintrc
@@ -84,4 +84,4 @@
       }
     }
   ]
-}
\ No newline at end of file
+}
diff --git a/frontend/.gitignore b/frontend/.gitignore
index 44029f58cb4f..471b78551bcf 100644
--- a/frontend/.gitignore
+++ b/frontend/.gitignore
@@ -1,4 +1,4 @@
 # i18n translation files make by script using `make build`
 public/locales/**/*
 src/i18n/declaration.ts
-.env
\ No newline at end of file
+.env
diff --git a/frontend/__tests__/utils/extractModelAndProvider.test.ts b/frontend/__tests__/utils/extractModelAndProvider.test.ts
index 6ea84db241db..c1ec4ee838ec 100644
--- a/frontend/__tests__/utils/extractModelAndProvider.test.ts
+++ b/frontend/__tests__/utils/extractModelAndProvider.test.ts
@@ -78,4 +78,3 @@ describe("extractModelAndProvider", () => {
     });
   });
 });
-
diff --git a/frontend/__tests__/utils/organizeModelsAndProviders.test.ts b/frontend/__tests__/utils/organizeModelsAndProviders.test.ts
index 1062309dbf68..aa3c84707432 100644
--- a/frontend/__tests__/utils/organizeModelsAndProviders.test.ts
+++ b/frontend/__tests__/utils/organizeModelsAndProviders.test.ts
@@ -63,4 +63,3 @@ test("organizeModelsAndProviders", () => {
     },
   });
 });
-
diff --git a/frontend/src/assets/arrow-send.svg b/frontend/src/assets/arrow-send.svg
index b353657406d0..a42795073c91 100644
--- a/frontend/src/assets/arrow-send.svg
+++ b/frontend/src/assets/arrow-send.svg
@@ -2,4 +2,4 @@
   <path fill-rule="evenodd" clip-rule="evenodd"
     d="M11.5304 6.46978L10.4697 7.53044L6.75006 3.81077L6.75006 17.0001H5.25006L5.25006 3.81077L1.53039 7.53044L0.469727 6.46978L6.00006 0.939453L11.5304 6.46978Z"
     fill="white" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/branding/all-hands-logo-spark.svg b/frontend/src/assets/branding/all-hands-logo-spark.svg
index 439dff9778cb..bb4070944af8 100644
--- a/frontend/src/assets/branding/all-hands-logo-spark.svg
+++ b/frontend/src/assets/branding/all-hands-logo-spark.svg
@@ -32,4 +32,4 @@
       <rect width="69" height="46" fill="white" transform="translate(0.5)" />
     </clipPath>
   </defs>
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/branding/github-logo.svg b/frontend/src/assets/branding/github-logo.svg
index 975e5fa3ca12..fcf918efacfe 100644
--- a/frontend/src/assets/branding/github-logo.svg
+++ b/frontend/src/assets/branding/github-logo.svg
@@ -2,4 +2,4 @@
   <path
     d="M15.359 21V17.319C15.3974 16.8654 15.3314 16.4095 15.1651 15.9814C14.9989 15.5534 14.7363 15.1631 14.3949 14.8364C17.6154 14.5035 21 13.3716 21 8.17826C20.9997 6.85027 20.4489 5.57321 19.4615 4.61139C19.9291 3.44954 19.896 2.16532 19.3692 1.02548C19.3692 1.02548 18.159 0.692576 15.359 2.43321C13.0082 1.84237 10.5302 1.84237 8.17949 2.43321C5.37949 0.692576 4.16923 1.02548 4.16923 1.02548C3.64244 2.16532 3.60938 3.44954 4.07692 4.61139C3.08218 5.58034 2.53079 6.86895 2.53846 8.2068C2.53846 13.3621 5.92308 14.494 9.14359 14.865C8.80615 15.1883 8.54591 15.574 8.3798 15.9968C8.2137 16.4196 8.14544 16.8701 8.17949 17.319V21M8.17949 18.1465C3.05128 19.5732 3.05128 15.7686 1 15.293L8.17949 18.1465Z"
     stroke="white" stroke-linecap="round" stroke-linejoin="round" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/clip.svg b/frontend/src/assets/clip.svg
index aaebcbc4dfbe..26a6acb485a9 100644
--- a/frontend/src/assets/clip.svg
+++ b/frontend/src/assets/clip.svg
@@ -2,4 +2,4 @@
   <path fill-rule="evenodd" clip-rule="evenodd"
     d="M10.5 3.75C9.25736 3.75 8.25 4.75736 8.25 6V16.5C8.25 18.5711 9.92893 20.25 12 20.25C14.0711 20.25 15.75 18.5711 15.75 16.5V7H17.25V16.5C17.25 19.3995 14.8995 21.75 12 21.75C9.1005 21.75 6.75 19.3995 6.75 16.5V6C6.75 3.92893 8.42893 2.25 10.5 2.25C12.5711 2.25 14.25 3.92893 14.25 6V16C14.25 17.2426 13.2426 18.25 12 18.25C10.7574 18.25 9.75 17.2426 9.75 16V7H11.25V16C11.25 16.4142 11.5858 16.75 12 16.75C12.4142 16.75 12.75 16.4142 12.75 16V6C12.75 4.75736 11.7426 3.75 10.5 3.75Z"
     fill="white" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/clipboard.svg b/frontend/src/assets/clipboard.svg
index 6da359d3806c..abf4e5a3155a 100644
--- a/frontend/src/assets/clipboard.svg
+++ b/frontend/src/assets/clipboard.svg
@@ -32,4 +32,4 @@
       <rect width="54" height="75" fill="white" />
     </clipPath>
   </defs>
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/default-user.svg b/frontend/src/assets/default-user.svg
index b67e64cf786a..620ab2f3f9c6 100644
--- a/frontend/src/assets/default-user.svg
+++ b/frontend/src/assets/default-user.svg
@@ -2,4 +2,4 @@
   <path
     d="M13.0919 10.5917C13.9089 9.94891 14.5052 9.06746 14.7979 8.06997C15.0906 7.07249 15.0652 6.00858 14.7251 5.02625C14.385 4.04391 13.7471 3.19202 12.9003 2.58907C12.0535 1.98612 11.0398 1.66211 10.0002 1.66211C8.9607 1.66211 7.947 1.98612 7.10018 2.58907C6.25336 3.19202 5.61553 4.04391 5.27542 5.02625C4.93531 6.00858 4.90984 7.07249 5.20254 8.06997C5.49525 9.06746 6.09158 9.94891 6.90858 10.5917C5.50864 11.1526 4.28715 12.0828 3.37432 13.2833C2.46149 14.4838 1.89154 15.9094 1.72524 17.4084C1.7132 17.5178 1.72284 17.6285 1.7536 17.7342C1.78435 17.8399 1.83563 17.9386 1.9045 18.0245C2.04359 18.1979 2.24589 18.309 2.46691 18.3334C2.68792 18.3577 2.90954 18.2932 3.08301 18.1541C3.25648 18.015 3.3676 17.8127 3.39191 17.5917C3.5749 15.9627 4.35165 14.4582 5.57376 13.3657C6.79587 12.2732 8.37766 11.6692 10.0169 11.6692C11.6562 11.6692 13.2379 12.2732 14.4601 13.3657C15.6822 14.4582 16.4589 15.9627 16.6419 17.5917C16.6646 17.7965 16.7623 17.9856 16.9162 18.1225C17.0701 18.2595 17.2692 18.3346 17.4752 18.3334H17.5669C17.7854 18.3082 17.985 18.1978 18.1224 18.0261C18.2597 17.8544 18.3237 17.6353 18.3002 17.4167C18.1332 15.9135 17.5601 14.4842 16.6426 13.2819C15.7251 12.0795 14.4977 11.1496 13.0919 10.5917ZM10.0002 10C9.34097 10 8.69651 9.80453 8.14834 9.43825C7.60018 9.07198 7.17294 8.55139 6.92064 7.9423C6.66835 7.33321 6.60234 6.66299 6.73096 6.01639C6.85957 5.36979 7.17704 4.77584 7.64322 4.30967C8.10939 3.84349 8.70334 3.52602 9.34994 3.39741C9.99654 3.26879 10.6668 3.3348 11.2759 3.58709C11.8849 3.83938 12.4055 4.26662 12.7718 4.81479C13.1381 5.36295 13.3336 6.00742 13.3336 6.66669C13.3336 7.55074 12.9824 8.39859 12.3573 9.02371C11.7321 9.64883 10.8843 10 10.0002 10Z"
     fill="#262626" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/docs.svg b/frontend/src/assets/docs.svg
index 23475a3da1c5..33eb3a374c61 100644
--- a/frontend/src/assets/docs.svg
+++ b/frontend/src/assets/docs.svg
@@ -24,4 +24,4 @@
       <rect width="23.33" height="18.67" fill="white" transform="translate(2.33496 4.66504)" />
     </clipPath>
   </defs>
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/external-link.svg b/frontend/src/assets/external-link.svg
index 96294735b2bf..e55411671193 100644
--- a/frontend/src/assets/external-link.svg
+++ b/frontend/src/assets/external-link.svg
@@ -4,4 +4,4 @@
   <path
     d="M4.33333 3.66667C3.59695 3.66667 3 4.26362 3 5V11.6667C3 12.403 3.59695 13 4.33333 13H11C11.7364 13 12.3333 12.403 12.3333 11.6667V9.66667H11.3333V11.6667C11.3333 11.8508 11.1841 12 11 12H4.33333C4.14924 12 4 11.8508 4 11.6667V5C4 4.81591 4.14924 4.66667 4.33333 4.66667H6.33333V3.66667H4.33333Z"
     fill="#EEEEEE" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/lightbulb.svg b/frontend/src/assets/lightbulb.svg
index 9f61d275efc1..aa703e60abbc 100644
--- a/frontend/src/assets/lightbulb.svg
+++ b/frontend/src/assets/lightbulb.svg
@@ -2,4 +2,4 @@
   <path
     d="M11.3931 1.88021C10.78 1.37593 10.062 1.01489 9.29157 0.823438C8.52113 0.631981 7.71767 0.614934 6.9398 0.773542C5.90405 0.982756 4.95379 1.49492 4.20959 2.24506C3.46538 2.9952 2.96078 3.9495 2.7598 4.98688C2.61303 5.76469 2.6397 6.56531 2.83791 7.33163C3.03611 8.09795 3.40097 8.8111 3.90647 9.42021C4.37559 9.94959 4.64449 10.6266 4.66647 11.3335V13.3335C4.66647 13.864 4.87718 14.3727 5.25225 14.7478C5.62732 15.1228 6.13603 15.3335 6.66647 15.3335H9.33313C9.86356 15.3335 10.3723 15.1228 10.7473 14.7478C11.1224 14.3727 11.3331 13.864 11.3331 13.3335V11.4602C11.3555 10.6797 11.6423 9.92983 12.1465 9.33354C13.0299 8.24073 13.4463 6.84342 13.3052 5.44529C13.1642 4.04716 12.477 2.7612 11.3931 1.86687V1.88021ZM9.9998 13.3335C9.9998 13.5104 9.92956 13.6799 9.80454 13.8049C9.67951 13.93 9.50994 14.0002 9.33313 14.0002H6.66647C6.48965 14.0002 6.32009 13.93 6.19506 13.8049C6.07004 13.6799 5.9998 13.5104 5.9998 13.3335V12.6669H9.9998V13.3335ZM11.1131 8.50688C10.4428 9.30194 10.0517 10.2949 9.9998 11.3335H8.66647V9.33354C8.66647 9.15673 8.59623 8.98716 8.4712 8.86214C8.34618 8.73711 8.17661 8.66688 7.9998 8.66688C7.82299 8.66688 7.65342 8.73711 7.52839 8.86214C7.40337 8.98716 7.33313 9.15673 7.33313 9.33354V11.3335H5.9998C5.98221 10.3123 5.60443 9.33005 4.93313 8.56021C4.49023 8.02954 4.19239 7.39316 4.06867 6.71311C3.94495 6.03306 3.99957 5.33255 4.22719 4.6799C4.45481 4.02724 4.84768 3.4447 5.36748 2.98909C5.88728 2.53348 6.51627 2.22034 7.19313 2.08021C7.77483 1.96044 8.37591 1.9717 8.95271 2.11319C9.52952 2.25467 10.0676 2.52282 10.5278 2.89818C10.9881 3.27353 11.359 3.74666 11.6136 4.28322C11.8682 4.81978 12.0001 5.4063 11.9998 6.00021C12.0047 6.91345 11.6912 7.79985 11.1131 8.50688Z"
     fill="white" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/loading-outer.svg b/frontend/src/assets/loading-outer.svg
index da669d7da4cb..aebe42c8e528 100644
--- a/frontend/src/assets/loading-outer.svg
+++ b/frontend/src/assets/loading-outer.svg
@@ -1,4 +1,4 @@
 <svg width="66" height="66" viewBox="0 0 66 66" fill="none" xmlns="http://www.w3.org/2000/svg">
   <path d="M63 33C63 16.4315 49.5685 3 33 3C16.4315 3 3 16.4315 3 33C3 49.5685 16.4315 63 33 63"
     stroke="#007AFF" stroke-width="6" stroke-linecap="round" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/message.svg b/frontend/src/assets/message.svg
index cf1e6fc409de..3bf0a6e3e29b 100644
--- a/frontend/src/assets/message.svg
+++ b/frontend/src/assets/message.svg
@@ -2,4 +2,4 @@
   <path
     d="M19.8335 8.16634H8.16683C7.85741 8.16634 7.56066 8.28926 7.34187 8.50805C7.12308 8.72684 7.00016 9.02359 7.00016 9.33301C7.00016 9.64243 7.12308 9.93917 7.34187 10.158C7.56066 10.3768 7.85741 10.4997 8.16683 10.4997H19.8335C20.1429 10.4997 20.4397 10.3768 20.6585 10.158C20.8772 9.93917 21.0002 9.64243 21.0002 9.33301C21.0002 9.02359 20.8772 8.72684 20.6585 8.50805C20.4397 8.28926 20.1429 8.16634 19.8335 8.16634ZM19.8335 12.833H8.16683C7.85741 12.833 7.56066 12.9559 7.34187 13.1747C7.12308 13.3935 7.00016 13.6903 7.00016 13.9997C7.00016 14.3091 7.12308 14.6058 7.34187 14.8246C7.56066 15.0434 7.85741 15.1663 8.16683 15.1663H19.8335C20.1429 15.1663 20.4397 15.0434 20.6585 14.8246C20.8772 14.6058 21.0002 14.3091 21.0002 13.9997C21.0002 13.6903 20.8772 13.3935 20.6585 13.1747C20.4397 12.9559 20.1429 12.833 19.8335 12.833ZM22.1668 2.33301H5.8335C4.90524 2.33301 4.015 2.70176 3.35862 3.35813C2.70225 4.01451 2.3335 4.90475 2.3335 5.83301V17.4997C2.3335 18.4279 2.70225 19.3182 3.35862 19.9745C4.015 20.6309 4.90524 20.9997 5.8335 20.9997H19.3552L23.6718 25.328C23.7808 25.4361 23.9101 25.5217 24.0523 25.5797C24.1944 25.6378 24.3466 25.6672 24.5002 25.6663C24.6532 25.6703 24.805 25.6383 24.9435 25.573C25.1565 25.4855 25.3389 25.3369 25.4677 25.1458C25.5964 24.9548 25.6657 24.73 25.6668 24.4997V5.83301C25.6668 4.90475 25.2981 4.01451 24.6417 3.35813C23.9853 2.70176 23.0951 2.33301 22.1668 2.33301ZM23.3335 21.688L20.6618 19.0047C20.5528 18.8965 20.4235 18.811 20.2814 18.7529C20.1392 18.6949 19.987 18.6655 19.8335 18.6663H5.8335C5.52408 18.6663 5.22733 18.5434 5.00854 18.3246C4.78975 18.1058 4.66683 17.8091 4.66683 17.4997V5.83301C4.66683 5.52359 4.78975 5.22684 5.00854 5.00805C5.22733 4.78926 5.52408 4.66634 5.8335 4.66634H22.1668C22.4762 4.66634 22.773 4.78926 22.9918 5.00805C23.2106 5.22684 23.3335 5.52359 23.3335 5.83301V21.688Z"
     fill="white" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/new-project.svg b/frontend/src/assets/new-project.svg
index e7573f625a4f..550d656e353f 100644
--- a/frontend/src/assets/new-project.svg
+++ b/frontend/src/assets/new-project.svg
@@ -3,4 +3,4 @@
   <path
     d="M20.4165 13.0837H14.9165V7.58366C14.9165 7.34054 14.8199 7.10739 14.648 6.93548C14.4761 6.76357 14.243 6.66699 13.9998 6.66699C13.7567 6.66699 13.5236 6.76357 13.3517 6.93548C13.1797 7.10739 13.0832 7.34054 13.0832 7.58366V13.0837H7.58317C7.34006 13.0837 7.1069 13.1802 6.93499 13.3521C6.76308 13.5241 6.6665 13.7572 6.6665 14.0003C6.6665 14.2434 6.76308 14.4766 6.93499 14.6485C7.1069 14.8204 7.34006 14.917 7.58317 14.917H13.0832V20.417C13.0832 20.6601 13.1797 20.8933 13.3517 21.0652C13.5236 21.2371 13.7567 21.3337 13.9998 21.3337C14.243 21.3337 14.4761 21.2371 14.648 21.0652C14.8199 20.8933 14.9165 20.6601 14.9165 20.417V14.917H20.4165C20.6596 14.917 20.8928 14.8204 21.0647 14.6485C21.2366 14.4766 21.3332 14.2434 21.3332 14.0003C21.3332 13.7572 21.2366 13.5241 21.0647 13.3521C20.8928 13.1802 20.6596 13.0837 20.4165 13.0837Z"
     fill="black" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/assets/refresh.svg b/frontend/src/assets/refresh.svg
index ae9e2bac3841..4bba1daa1adb 100644
--- a/frontend/src/assets/refresh.svg
+++ b/frontend/src/assets/refresh.svg
@@ -2,4 +2,4 @@
   <path
     d="M4.26446 0.763647C4.39463 0.633472 4.60569 0.633472 4.73586 0.763647L5.73586 1.76365C5.86604 1.89382 5.86604 2.10488 5.73586 2.23505L4.73586 3.23505C4.60569 3.36523 4.39463 3.36523 4.26446 3.23505C4.13429 3.10488 4.13429 2.89382 4.26446 2.76365L4.69542 2.33268H4.16683C2.98426 2.33268 2.00016 3.31678 2.00016 4.49935C2.00016 5.68192 2.98426 6.66602 4.16683 6.66602C5.3494 6.66602 6.3335 5.68192 6.3335 4.49935C6.3335 4.31525 6.48273 4.16602 6.66683 4.16602C6.85092 4.16602 7.00016 4.31525 7.00016 4.49935C7.00016 6.05011 5.71759 7.33268 4.16683 7.33268C2.61607 7.33268 1.3335 6.05011 1.3335 4.49935C1.3335 2.94859 2.61607 1.66602 4.16683 1.66602H4.69542L4.26446 1.23505C4.13429 1.10488 4.13429 0.893821 4.26446 0.763647Z"
     fill="white" />
-</svg>
\ No newline at end of file
+</svg>
diff --git a/frontend/src/utils/suggestions/non-repo-suggestions.ts b/frontend/src/utils/suggestions/non-repo-suggestions.ts
index da7207dc7847..d9cf04992ac1 100644
--- a/frontend/src/utils/suggestions/non-repo-suggestions.ts
+++ b/frontend/src/utils/suggestions/non-repo-suggestions.ts
@@ -1,6 +1,6 @@
 const KEY_1 = "Build an app to view pull requests";
-const VALUE_1 = `I want to create a React app to view all of the open pull 
-requests that exist on all of my team's github repos. Here 
+const VALUE_1 = `I want to create a React app to view all of the open pull
+requests that exist on all of my team's github repos. Here
 are some details:
 
 1. Please initialize the app using vite and react-ts.
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index be5fe7a7cd82..dcd184186d6c 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -39,4 +39,4 @@
     // Vite takes care of building everything, not tsc.
     "noEmit": true
   }
-}
\ No newline at end of file
+}
diff --git a/openhands/agenthub/codeact_agent/function_calling.py b/openhands/agenthub/codeact_agent/function_calling.py
index 650d4009c8fc..397183c27c63 100644
--- a/openhands/agenthub/codeact_agent/function_calling.py
+++ b/openhands/agenthub/codeact_agent/function_calling.py
@@ -25,9 +25,10 @@
 )
 from openhands.events.tool import ToolCallMetadata
 
-SYSTEM_PROMPT = """You are a helpful assistant that can interact with a computer to solve tasks.
+SYSTEM_PROMPT = """You are OpenHands agent, a helpful AI assistant that can interact with a computer to solve tasks.
 <IMPORTANT>
 * If user provides a path, you should NOT assume it's relative to the current working directory. Instead, you should explore the file system to find the file before working on it.
+* When configuring git credentials, use "openhands" as the user.name and "openhands@all-hands.dev" as the user.email by default, unless explicitly configured otherwise.
 </IMPORTANT>
 """
 
diff --git a/openhands/runtime/impl/eventstream/eventstream_runtime.py b/openhands/runtime/impl/eventstream/eventstream_runtime.py
index e4d5f6306771..b29b8d1b265b 100644
--- a/openhands/runtime/impl/eventstream/eventstream_runtime.py
+++ b/openhands/runtime/impl/eventstream/eventstream_runtime.py
@@ -304,7 +304,7 @@ def _init_container(self):
                 volumes = None
             self.log(
                 'debug',
-                f'Sandbox workspace: {self.config.workspace_mount_path_in_sandbox}'
+                f'Sandbox workspace: {self.config.workspace_mount_path_in_sandbox}',
             )
 
             if self.config.sandbox.browsergym_eval_env is not None:
diff --git a/openhands/runtime/utils/runtime_build.py b/openhands/runtime/utils/runtime_build.py
index 8830805e227d..eab98befe538 100644
--- a/openhands/runtime/utils/runtime_build.py
+++ b/openhands/runtime/utils/runtime_build.py
@@ -175,7 +175,9 @@ def build_runtime_image_in_folder(
 
     logger.info(f'Building image: {hash_image_name}')
     if force_rebuild:
-        logger.debug(f'Force rebuild: [{runtime_image_repo}:{source_tag}] from scratch.')
+        logger.debug(
+            f'Force rebuild: [{runtime_image_repo}:{source_tag}] from scratch.'
+        )
         prep_build_folder(
             build_folder,
             base_image,
diff --git a/openhands/runtime/utils/tenacity_stop.py b/openhands/runtime/utils/tenacity_stop.py
index e4b634547704..48fdead86647 100644
--- a/openhands/runtime/utils/tenacity_stop.py
+++ b/openhands/runtime/utils/tenacity_stop.py
@@ -1,12 +1,11 @@
-
-
 from tenacity import RetryCallState
 from tenacity.stop import stop_base
+
 from openhands.runtime.utils.shutdown_listener import should_exit
 
 
 class stop_if_should_exit(stop_base):
     """Stop if the should_exit flag is set."""
 
-    def __call__(self, retry_state: "RetryCallState") -> bool:
+    def __call__(self, retry_state: 'RetryCallState') -> bool:
         return should_exit()
diff --git a/openhands/server/session/agent_session.py b/openhands/server/session/agent_session.py
index cb90dd3984d9..89700ead5e4e 100644
--- a/openhands/server/session/agent_session.py
+++ b/openhands/server/session/agent_session.py
@@ -126,8 +126,10 @@ async def _start(
     def close(self):
         """Closes the Agent session"""
         self._closed = True
+
         def inner_close():
             asyncio.run(self._close())
+
         asyncio.get_event_loop().run_in_executor(None, inner_close)
 
     async def _close(self):
@@ -142,7 +144,6 @@ async def _close(self):
         if self.security_analyzer is not None:
             await self.security_analyzer.close()
 
-
     def _create_security_analyzer(self, security_analyzer: str | None):
         """Creates a SecurityAnalyzer instance that will be used to analyze the agent actions
 
diff --git a/pyproject.toml b/pyproject.toml
index 28f54017b30e..7910e9ac2e13 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -92,6 +92,7 @@ reportlab = "*"
 [tool.coverage.run]
 concurrency = ["gevent"]
 
+
 [tool.poetry.group.runtime.dependencies]
 jupyterlab = "*"
 notebook = "*"
@@ -122,6 +123,7 @@ ignore = ["D1"]
 [tool.ruff.lint.pydocstyle]
 convention = "google"
 
+
 [tool.poetry.group.evaluation.dependencies]
 streamlit = "*"
 whatthepatch = "*"


Code review comments:
diff_hunk: @@ -25,9 +25,10 @@
 )
 from openhands.events.tool import ToolCallMetadata
 
-SYSTEM_PROMPT = """You are a helpful assistant that can interact with a computer to solve tasks.
+SYSTEM_PROMPT = """You are OpenHands agent, a helpful AI assistant that can interact with a computer to solve tasks.
 <IMPORTANT>
 * If user provides a path, you should NOT assume it's relative to the current working directory. Instead, you should explore the file system to find the file before working on it.
+* When configuring git credentials, use "openhands" as the user.name and "openhands@all-hands.dev" as the user.email by default, unless explicitly configured otherwise.
path: openhands/agenthub/codeact_agent/function_calling.py
text: @user2:
```suggestion
* When configuring git credentials, use "openhands" as the user.name and "openhands@user1-hands.dev" as the user.email by default, unless explicitly instructed otherwise.
```