methodproof 0.7.17__tar.gz → 0.7.18__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. {methodproof-0.7.17 → methodproof-0.7.18}/PKG-INFO +1 -1
  2. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/__init__.py +1 -1
  3. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/cli.py +20 -0
  4. {methodproof-0.7.17 → methodproof-0.7.18}/pyproject.toml +1 -1
  5. {methodproof-0.7.17 → methodproof-0.7.18}/.code-review-graph/.gitignore +0 -0
  6. {methodproof-0.7.17 → methodproof-0.7.18}/.code-review-graph/graph.db +0 -0
  7. {methodproof-0.7.17 → methodproof-0.7.18}/.github/workflows/ci.yml +0 -0
  8. {methodproof-0.7.17 → methodproof-0.7.18}/.gitignore +0 -0
  9. {methodproof-0.7.17 → methodproof-0.7.18}/CHANGELOG.md +0 -0
  10. {methodproof-0.7.17 → methodproof-0.7.18}/LICENSE +0 -0
  11. {methodproof-0.7.17 → methodproof-0.7.18}/README.md +0 -0
  12. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/__main__.py +0 -0
  13. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/_daemon.py +0 -0
  14. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/__init__.py +0 -0
  15. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/base.py +0 -0
  16. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/music.py +0 -0
  17. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/terminal.py +0 -0
  18. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/watcher.py +0 -0
  19. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/analysis.py +0 -0
  20. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/binding.py +0 -0
  21. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/bip39.py +0 -0
  22. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/bridge.py +0 -0
  23. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/config.py +0 -0
  24. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/crypto.py +0 -0
  25. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/e2e.py +0 -0
  26. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/graph.py +0 -0
  27. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hook.py +0 -0
  28. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/__init__.py +0 -0
  29. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/claude_code.py +0 -0
  30. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/claude_code.sh +0 -0
  31. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/cline_hook.sh +0 -0
  32. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/codex_hook.sh +0 -0
  33. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/gemini_hook.sh +0 -0
  34. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/install.py +0 -0
  35. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/kiro_hook.sh +0 -0
  36. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/mcp_register.py +0 -0
  37. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/openclaw/HOOK.md +0 -0
  38. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/openclaw/handler.ts +0 -0
  39. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/openclaw_install.py +0 -0
  40. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/opencode_plugin.js +0 -0
  41. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/wrappers.py +0 -0
  42. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/integrity.py +0 -0
  43. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/kdf.py +0 -0
  44. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/keychain.py +0 -0
  45. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/live.py +0 -0
  46. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/lock.py +0 -0
  47. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/mcp.py +0 -0
  48. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/migrate_db.py +0 -0
  49. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/proxy.py +0 -0
  50. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/proxy_daemon.py +0 -0
  51. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/repos.py +0 -0
  52. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/skills/methodproof/SKILL.md +0 -0
  53. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/store.py +0 -0
  54. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/sync.py +0 -0
  55. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/__init__.py +0 -0
  56. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/consent.py +0 -0
  57. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/init.py +0 -0
  58. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/log.py +0 -0
  59. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/review.py +0 -0
  60. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/start.py +0 -0
  61. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/status.py +0 -0
  62. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/theme.py +0 -0
  63. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/viewer.py +0 -0
  64. {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/wordlist.py +0 -0
  65. {methodproof-0.7.17 → methodproof-0.7.18}/test_windows_compat.py +0 -0
  66. {methodproof-0.7.17 → methodproof-0.7.18}/tests/__init__.py +0 -0
  67. {methodproof-0.7.17 → methodproof-0.7.18}/tests/conftest.py +0 -0
  68. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_analysis.py +0 -0
  69. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_auth.py +0 -0
  70. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_config.py +0 -0
  71. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_helpers.py +0 -0
  72. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_session.py +0 -0
  73. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_share.py +0 -0
  74. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_start.py +0 -0
  75. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_update.py +0 -0
  76. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_e2e_integration.py +0 -0
  77. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_graph.py +0 -0
  78. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_hooks.py +0 -0
  79. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_live.py +0 -0
  80. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_openclaw_hooks.py +0 -0
  81. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_profiles.py +0 -0
  82. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_security.py +0 -0
  83. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_store.py +0 -0
  84. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_sync.py +0 -0
  85. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_viewer.py +0 -0
  86. {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_wrappers.py +0 -0
  87. {methodproof-0.7.17 → methodproof-0.7.18}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: methodproof
3
- Version: 0.7.17
3
+ Version: 0.7.18
4
4
  Summary: See how you code. Capture and visualize your engineering process.
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,3 +1,3 @@
1
1
  """MethodProof — see how you code."""
2
2
 
3
- __version__ = "0.7.17"
3
+ __version__ = "0.7.18"
@@ -1391,6 +1391,25 @@ def cmd_view(args: argparse.Namespace) -> None:
1391
1391
 
1392
1392
 
1393
1393
  def cmd_log(args: argparse.Namespace) -> None:
1394
+ if getattr(args, "purge_empty", False):
1395
+ empty = [s for s in store.list_sessions() if s["total_events"] == 0]
1396
+ if not empty:
1397
+ print("No empty sessions.")
1398
+ return
1399
+ print(f"Found {len(empty)} empty session{'s' if len(empty) != 1 else ''}:")
1400
+ for s in empty:
1401
+ from datetime import datetime, UTC
1402
+ dt = datetime.fromtimestamp(s["created_at"], tz=UTC).strftime("%Y-%m-%d %H:%M")
1403
+ print(f" {s['id'][:8]} {dt} {s.get('watch_dir', '?')}")
1404
+ answer = input(f"\nDelete {len(empty)} empty session{'s' if len(empty) != 1 else ''}? [y/N]: ").strip().lower()
1405
+ if answer != "y":
1406
+ print("Cancelled.")
1407
+ return
1408
+ for s in empty:
1409
+ store.delete_session(s["id"])
1410
+ print(f"Deleted {len(empty)} empty session{'s' if len(empty) != 1 else ''}.")
1411
+ return
1412
+
1394
1413
  cfg = config.load()
1395
1414
  if _resolve_ui(args, cfg):
1396
1415
  _tui_guard()
@@ -2109,6 +2128,7 @@ def main() -> None:
2109
2128
  v = sub.add_parser("view", help="Inspect captured session data")
2110
2129
  v.add_argument("session_id", nargs="?")
2111
2130
  l_log = sub.add_parser("log", help="List sessions")
2131
+ l_log.add_argument("--purge-empty", action="store_true", help="Delete all sessions with 0 events")
2112
2132
  _add_ui_flags(l_log)
2113
2133
  s_status = sub.add_parser("status", help="Auth, session, and config status")
2114
2134
  _add_ui_flags(s_status)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "methodproof"
3
- version = "0.7.17"
3
+ version = "0.7.18"
4
4
  description = "See how you code. Capture and visualize your engineering process."
5
5
  requires-python = ">=3.11"
6
6
  dependencies = ["watchdog>=4.0", "websocket-client>=1.7", "cryptography>=43.0", "keyring>=25.0", "textual>=0.59", "rich>=13.7"]
File without changes
File without changes
File without changes
File without changes
File without changes