personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

style: apply black and isort formatting

Auto-formatting cleanup from make format.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

+35 -16
+3 -1
apps/agents/routes.py
··· 401 401 f.write(new_content) 402 402 403 403 action = "created" if is_new else "updated" 404 - item_name = item_type[:-1].title() # 'agents' -> 'Agent', 'insights' -> 'Insight' 404 + item_name = item_type[ 405 + :-1 406 + ].title() # 'agents' -> 'Agent', 'insights' -> 'Insight' 405 407 return {"success": True, "message": f"{item_name} {action} successfully"}, 200 406 408 except Exception as e: 407 409 return {"error": str(e)}, 500
+3 -1
convey/apps.py
··· 74 74 from .config import apply_app_order, load_convey_config 75 75 76 76 # Determine if current app wants muted facets shown 77 - current_app_name = request.path.split("/")[2] if "/app/" in request.path else None 77 + current_app_name = ( 78 + request.path.split("/")[2] if "/app/" in request.path else None 79 + ) 78 80 include_muted = False 79 81 if current_app_name and current_app_name in registry.apps: 80 82 include_muted = registry.apps[current_app_name].show_muted_facets()
+1 -1
muse/mcp_tools.py
··· 21 21 ) 22 22 from think.facets import facet_summary, log_action 23 23 from think.indexer import search_events as search_events_impl 24 - from think.indexer import search_news as search_news_impl 25 24 from think.indexer import search_insights as search_insights_impl 25 + from think.indexer import search_news as search_news_impl 26 26 from think.indexer import search_transcripts as search_transcripts_impl 27 27 from think.messages import send_message as send_message_impl 28 28 from think.utils import get_raw_file
+6 -1
tests/test_indexer.py
··· 320 320 json.dumps({"topics": ["test"], "setting": "personal"}) 321 321 + "\n" 322 322 + json.dumps( 323 - {"start": "00:00:01", "source": "mic", "speaker": 1, "text": "segment three"} 323 + { 324 + "start": "00:00:01", 325 + "source": "mic", 326 + "speaker": 1, 327 + "text": "segment three", 328 + } 324 329 ) 325 330 + "\n" 326 331 )
+6 -2
tests/test_insight_full.py
··· 107 107 monkeypatch.setenv("GOOGLE_API_KEY", "x") 108 108 109 109 monkeypatch.setenv("JOURNAL_PATH", str(tmp_path)) 110 - monkeypatch.setattr("sys.argv", ["think-insight", "20240101", "-f", str(insight_file)]) 110 + monkeypatch.setattr( 111 + "sys.argv", ["think-insight", "20240101", "-f", str(insight_file)] 112 + ) 111 113 mod.main() 112 114 113 115 md = day_dir / "insights" / "flow.md" ··· 154 156 monkeypatch.setenv("GOOGLE_API_KEY", "x") 155 157 156 158 monkeypatch.setenv("JOURNAL_PATH", str(tmp_path)) 157 - monkeypatch.setattr("sys.argv", ["think-insight", "20240101", "-f", str(insight_file)]) 159 + monkeypatch.setattr( 160 + "sys.argv", ["think-insight", "20240101", "-f", str(insight_file)] 161 + ) 158 162 mod.main() 159 163 160 164 md = day_dir / "insights" / "flow.md"
+3 -1
think/dream.py
··· 127 127 if not day_dir.is_dir(): 128 128 parser.error(f"Day folder not found: {day_dir}") 129 129 130 - commands = build_commands(day, args.force, verbose=args.verbose, segment=args.segment) 130 + commands = build_commands( 131 + day, args.force, verbose=args.verbose, segment=args.segment 132 + ) 131 133 success_count = 0 132 134 fail_count = 0 133 135 for cmd in commands:
+7 -7
think/indexer/__init__.py
··· 31 31 search_events, 32 32 ) 33 33 34 - # Import from news 35 - from .news import ( 36 - find_news_files, 37 - scan_news, 38 - search_news, 39 - ) 40 - 41 34 # Import from insights 42 35 from .insights import ( 43 36 INSIGHT_TYPES, ··· 46 39 scan_insights, 47 40 search_insights, 48 41 split_sentences, 42 + ) 43 + 44 + # Import from news 45 + from .news import ( 46 + find_news_files, 47 + scan_news, 48 + search_news, 49 49 ) 50 50 51 51 # Import from transcripts
+3 -1
think/insight.py
··· 288 288 count_tokens(markdown, prompt, api_key, model) 289 289 return 290 290 291 - md_path, json_path = _output_paths(day_dir, insight_basename, segment=args.segment) 291 + md_path, json_path = _output_paths( 292 + day_dir, insight_basename, segment=args.segment 293 + ) 292 294 # Use cache key scoped to day or segment 293 295 if args.segment: 294 296 cache_display_name = f"{day}_{args.segment}"
+3 -1
think/supervisor.py
··· 973 973 if success: 974 974 logging.info(f"Segment dream completed: {day}/{segment}") 975 975 else: 976 - logging.error(f"Segment dream failed with exit code {exit_code}: {day}/{segment}") 976 + logging.error( 977 + f"Segment dream failed with exit code {exit_code}: {day}/{segment}" 978 + ) 977 979 978 980 979 981 def _handle_callosum_message(message: dict) -> None: