Kyosuke Ichikawa commited on
Commit
0872d87
·
unverified ·
1 Parent(s): c3b6480

refactor: remove unused auto_save method and all its calls (#7)

Browse files

- Remove UserSession.auto_save() method from user_session.py
- Remove all auto_save() calls from app.py (10 locations)
- Update documentation to remove auto_save references
- Simplify session state management by removing meaningless save operations

The auto_save method was a no-op placeholder that provided no actual functionality.
All session state is now managed through BrowserState integration.

.github/copilot-instructions.md CHANGED
@@ -21,12 +21,6 @@ from yomitalk.common import APIType
21
  from yomitalk.components.audio_generator import initialize_global_voicevox_manager
22
  ```
23
 
24
- ### Session Management Pattern
25
- ```python
26
- # Always work within UserSession context
27
- user_session = UserSession(session_id)
28
- user_session.auto_save() # After state changes
29
- ```
30
 
31
  ## Code Quality Standards
32
 
 
21
  from yomitalk.components.audio_generator import initialize_global_voicevox_manager
22
  ```
23
 
 
 
 
 
 
 
24
 
25
  ## Code Quality Standards
26
 
CLAUDE.md CHANGED
@@ -157,7 +157,6 @@ Located in `tests/e2e/features/`, written in Gherkin syntax:
157
  3. **Use Components**: Leverage existing TextProcessor, AudioGenerator, ContentExtractor
158
  4. **Follow Templates**: Use PromptManager for any LLM interactions
159
  5. **Handle Both APIs**: Ensure new features work with both OpenAI and Gemini
160
- 6. **Add Auto-Save**: If your feature modifies session state, add `user_session.auto_save()` calls
161
 
162
  ### When Debugging
163
  1. **Check Session State**: User issues often relate to session-specific state
 
157
  3. **Use Components**: Leverage existing TextProcessor, AudioGenerator, ContentExtractor
158
  4. **Follow Templates**: Use PromptManager for any LLM interactions
159
  5. **Handle Both APIs**: Ensure new features work with both OpenAI and Gemini
 
160
 
161
  ### When Debugging
162
  1. **Check Session State**: User issues often relate to session-specific state
yomitalk/app.py CHANGED
@@ -680,7 +680,6 @@ class PaperPodcastApp:
680
 
681
  success = user_session.text_processor.set_openai_api_key(api_key)
682
  logger.debug(f"OpenAI API key set for session {user_session.session_id}: {success}")
683
- user_session.auto_save() # Save session state after API key change
684
  return user_session
685
 
686
  def set_gemini_api_key(self, api_key: str, user_session: UserSession):
@@ -691,7 +690,6 @@ class PaperPodcastApp:
691
 
692
  success = user_session.text_processor.set_gemini_api_key(api_key)
693
  logger.debug(f"Gemini API key set for session {user_session.session_id}: {success}")
694
- user_session.auto_save() # Save session state after API key change
695
  return user_session
696
 
697
  def switch_llm_type(self, api_type: APIType, user_session: UserSession) -> UserSession:
@@ -701,7 +699,6 @@ class PaperPodcastApp:
701
  logger.debug(f"LLM type switched to {api_type.display_name} for session {user_session.session_id}")
702
  else:
703
  logger.debug(f"{api_type.display_name} API key not set for session {user_session.session_id}")
704
- user_session.auto_save() # Save session state after API type change
705
  return user_session
706
 
707
  def extract_url_text(
@@ -1758,7 +1755,6 @@ class PaperPodcastApp:
1758
  """
1759
  success = user_session.text_processor.openai_model.set_model_name(model_name)
1760
  logger.debug(f"OpenAI model set to {model_name}: {success}")
1761
- user_session.auto_save() # Save session state after model name change
1762
  return user_session
1763
 
1764
  def set_gemini_model_name(self, model_name: str, user_session: UserSession) -> UserSession:
@@ -1770,7 +1766,6 @@ class PaperPodcastApp:
1770
  """
1771
  success = user_session.text_processor.gemini_model.set_model_name(model_name)
1772
  logger.debug(f"Gemini model set to {model_name}: {success}")
1773
- user_session.auto_save() # Save session state after model name change
1774
  return user_session
1775
 
1776
  def set_openai_max_tokens(self, max_tokens: int, user_session: UserSession) -> UserSession:
@@ -1782,7 +1777,6 @@ class PaperPodcastApp:
1782
  """
1783
  success = user_session.text_processor.openai_model.set_max_tokens(max_tokens)
1784
  logger.debug(f"OpenAI max tokens set to {max_tokens}: {success}")
1785
- user_session.auto_save() # Save session state after max tokens change
1786
  return user_session
1787
 
1788
  def set_gemini_max_tokens(self, max_tokens: int, user_session: UserSession) -> UserSession:
@@ -1794,7 +1788,6 @@ class PaperPodcastApp:
1794
  """
1795
  success = user_session.text_processor.gemini_model.set_max_tokens(max_tokens)
1796
  logger.debug(f"Gemini max tokens set to {max_tokens}: {success}")
1797
- user_session.auto_save() # Save session state after max tokens change
1798
  return user_session
1799
 
1800
  def set_character_mapping(self, character1: str, character2: str, user_session: UserSession) -> UserSession:
@@ -1806,7 +1799,6 @@ class PaperPodcastApp:
1806
  """
1807
  success = user_session.text_processor.set_character_mapping(character1, character2)
1808
  logger.debug(f"Character mapping set: {character1}, {character2}: {success}")
1809
- user_session.auto_save() # Save session state after character mapping change
1810
  return user_session
1811
 
1812
  def set_podcast_mode(self, mode: str, user_session: UserSession, browser_state: Dict[str, Any]) -> Tuple[UserSession, Dict[str, Any]]:
@@ -1835,8 +1827,6 @@ class PaperPodcastApp:
1835
  else:
1836
  logger.warning(f"Failed to set podcast mode to {mode}")
1837
 
1838
- user_session.auto_save() # Save session state after podcast mode change
1839
-
1840
  except ValueError as e:
1841
  logger.error(f"Error setting podcast mode: {str(e)}")
1842
 
@@ -2002,8 +1992,6 @@ class PaperPodcastApp:
2002
  else:
2003
  logger.warning(f"Failed to set document type to {doc_type}")
2004
 
2005
- user_session.auto_save() # Save session state after document type change
2006
-
2007
  except ValueError as e:
2008
  logger.error(f"Error setting document type: {str(e)}")
2009
 
 
680
 
681
  success = user_session.text_processor.set_openai_api_key(api_key)
682
  logger.debug(f"OpenAI API key set for session {user_session.session_id}: {success}")
 
683
  return user_session
684
 
685
  def set_gemini_api_key(self, api_key: str, user_session: UserSession):
 
690
 
691
  success = user_session.text_processor.set_gemini_api_key(api_key)
692
  logger.debug(f"Gemini API key set for session {user_session.session_id}: {success}")
 
693
  return user_session
694
 
695
  def switch_llm_type(self, api_type: APIType, user_session: UserSession) -> UserSession:
 
699
  logger.debug(f"LLM type switched to {api_type.display_name} for session {user_session.session_id}")
700
  else:
701
  logger.debug(f"{api_type.display_name} API key not set for session {user_session.session_id}")
 
702
  return user_session
703
 
704
  def extract_url_text(
 
1755
  """
1756
  success = user_session.text_processor.openai_model.set_model_name(model_name)
1757
  logger.debug(f"OpenAI model set to {model_name}: {success}")
 
1758
  return user_session
1759
 
1760
  def set_gemini_model_name(self, model_name: str, user_session: UserSession) -> UserSession:
 
1766
  """
1767
  success = user_session.text_processor.gemini_model.set_model_name(model_name)
1768
  logger.debug(f"Gemini model set to {model_name}: {success}")
 
1769
  return user_session
1770
 
1771
  def set_openai_max_tokens(self, max_tokens: int, user_session: UserSession) -> UserSession:
 
1777
  """
1778
  success = user_session.text_processor.openai_model.set_max_tokens(max_tokens)
1779
  logger.debug(f"OpenAI max tokens set to {max_tokens}: {success}")
 
1780
  return user_session
1781
 
1782
  def set_gemini_max_tokens(self, max_tokens: int, user_session: UserSession) -> UserSession:
 
1788
  """
1789
  success = user_session.text_processor.gemini_model.set_max_tokens(max_tokens)
1790
  logger.debug(f"Gemini max tokens set to {max_tokens}: {success}")
 
1791
  return user_session
1792
 
1793
  def set_character_mapping(self, character1: str, character2: str, user_session: UserSession) -> UserSession:
 
1799
  """
1800
  success = user_session.text_processor.set_character_mapping(character1, character2)
1801
  logger.debug(f"Character mapping set: {character1}, {character2}: {success}")
 
1802
  return user_session
1803
 
1804
  def set_podcast_mode(self, mode: str, user_session: UserSession, browser_state: Dict[str, Any]) -> Tuple[UserSession, Dict[str, Any]]:
 
1827
  else:
1828
  logger.warning(f"Failed to set podcast mode to {mode}")
1829
 
 
 
1830
  except ValueError as e:
1831
  logger.error(f"Error setting podcast mode: {str(e)}")
1832
 
 
1992
  else:
1993
  logger.warning(f"Failed to set document type to {doc_type}")
1994
 
 
 
1995
  except ValueError as e:
1996
  logger.error(f"Error setting document type: {str(e)}")
1997
 
yomitalk/user_session.py CHANGED
@@ -299,7 +299,3 @@ class UserSession:
299
  "last_update": None,
300
  "estimated_total_parts": 1,
301
  }
302
-
303
- def auto_save(self) -> None:
304
- """Temporary compatibility method for tests."""
305
- pass
 
299
  "last_update": None,
300
  "estimated_total_parts": 1,
301
  }