lewtun HF Staff OpenAI Codex commited on
Commit
2083476
·
unverified ·
1 Parent(s): 645964c

fix(cli): persist HF user id in saved sessions (#146)

Browse files

* fix(cli): persist HF user id in saved sessions

Co-authored-by: OpenAI Codex <codex@openai.com>

* test: remove submission loop user id unit test

Co-authored-by: OpenAI Codex <codex@openai.com>

---------

Co-authored-by: OpenAI Codex <codex@openai.com>

Files changed (2) hide show
  1. agent/core/agent_loop.py +2 -1
  2. agent/main.py +15 -6
agent/core/agent_loop.py CHANGED
@@ -1362,6 +1362,7 @@ async def submission_loop(
1362
  tool_router: ToolRouter | None = None,
1363
  session_holder: list | None = None,
1364
  hf_token: str | None = None,
 
1365
  local_mode: bool = False,
1366
  stream: bool = True,
1367
  ) -> None:
@@ -1373,7 +1374,7 @@ async def submission_loop(
1373
  # Create session with tool router
1374
  session = Session(
1375
  event_queue, config=config, tool_router=tool_router, hf_token=hf_token,
1376
- local_mode=local_mode, stream=stream,
1377
  )
1378
  if session_holder is not None:
1379
  session_holder[0] = session
 
1362
  tool_router: ToolRouter | None = None,
1363
  session_holder: list | None = None,
1364
  hf_token: str | None = None,
1365
+ user_id: str | None = None,
1366
  local_mode: bool = False,
1367
  stream: bool = True,
1368
  ) -> None:
 
1374
  # Create session with tool router
1375
  session = Session(
1376
  event_queue, config=config, tool_router=tool_router, hf_token=hf_token,
1377
+ user_id=user_id, local_mode=local_mode, stream=stream,
1378
  )
1379
  if session_holder is not None:
1380
  session_holder[0] = session
agent/main.py CHANGED
@@ -91,6 +91,17 @@ def _get_hf_token() -> str | None:
91
  return None
92
 
93
 
 
 
 
 
 
 
 
 
 
 
 
94
  async def _prompt_and_save_hf_token(prompt_session: PromptSession) -> str:
95
  """Prompt user for HF token, validate it, save via huggingface_hub.login(). Loops until valid."""
96
  from prompt_toolkit.formatted_text import HTML
@@ -834,12 +845,7 @@ async def main():
834
  config = load_config(CLI_CONFIG_PATH)
835
 
836
  # Resolve username for banner
837
- hf_user = None
838
- try:
839
- from huggingface_hub import HfApi
840
- hf_user = HfApi(token=hf_token).whoami().get("name")
841
- except Exception:
842
- pass
843
 
844
  print_banner(model=config.model_name, hf_user=hf_user)
845
 
@@ -871,6 +877,7 @@ async def main():
871
  tool_router=tool_router,
872
  session_holder=session_holder,
873
  hf_token=hf_token,
 
874
  local_mode=True,
875
  stream=True,
876
  )
@@ -1056,6 +1063,7 @@ async def headless_main(
1056
 
1057
  config = load_config(CLI_CONFIG_PATH)
1058
  config.yolo_mode = True # Auto-approve everything in headless mode
 
1059
 
1060
  if model:
1061
  config.model_name = model
@@ -1082,6 +1090,7 @@ async def headless_main(
1082
  tool_router=tool_router,
1083
  session_holder=session_holder,
1084
  hf_token=hf_token,
 
1085
  local_mode=True,
1086
  stream=stream,
1087
  )
 
91
  return None
92
 
93
 
94
+ def _get_hf_user(token: str | None) -> str | None:
95
+ """Resolve the HF username for a token, if available."""
96
+ if not token:
97
+ return None
98
+ try:
99
+ from huggingface_hub import HfApi
100
+ return HfApi(token=token).whoami().get("name")
101
+ except Exception:
102
+ return None
103
+
104
+
105
  async def _prompt_and_save_hf_token(prompt_session: PromptSession) -> str:
106
  """Prompt user for HF token, validate it, save via huggingface_hub.login(). Loops until valid."""
107
  from prompt_toolkit.formatted_text import HTML
 
845
  config = load_config(CLI_CONFIG_PATH)
846
 
847
  # Resolve username for banner
848
+ hf_user = _get_hf_user(hf_token)
 
 
 
 
 
849
 
850
  print_banner(model=config.model_name, hf_user=hf_user)
851
 
 
877
  tool_router=tool_router,
878
  session_holder=session_holder,
879
  hf_token=hf_token,
880
+ user_id=hf_user,
881
  local_mode=True,
882
  stream=True,
883
  )
 
1063
 
1064
  config = load_config(CLI_CONFIG_PATH)
1065
  config.yolo_mode = True # Auto-approve everything in headless mode
1066
+ hf_user = _get_hf_user(hf_token)
1067
 
1068
  if model:
1069
  config.model_name = model
 
1090
  tool_router=tool_router,
1091
  session_holder=session_holder,
1092
  hf_token=hf_token,
1093
+ user_id=hf_user,
1094
  local_mode=True,
1095
  stream=stream,
1096
  )