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.
- {methodproof-0.7.17 → methodproof-0.7.18}/PKG-INFO +1 -1
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/__init__.py +1 -1
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/cli.py +20 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/pyproject.toml +1 -1
- {methodproof-0.7.17 → methodproof-0.7.18}/.code-review-graph/.gitignore +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/.code-review-graph/graph.db +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/.github/workflows/ci.yml +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/.gitignore +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/CHANGELOG.md +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/LICENSE +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/README.md +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/__main__.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/_daemon.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/__init__.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/base.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/music.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/terminal.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/agents/watcher.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/analysis.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/binding.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/bip39.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/bridge.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/config.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/crypto.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/e2e.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/graph.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hook.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/__init__.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/claude_code.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/claude_code.sh +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/cline_hook.sh +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/codex_hook.sh +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/gemini_hook.sh +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/install.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/kiro_hook.sh +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/mcp_register.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/openclaw/HOOK.md +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/openclaw/handler.ts +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/openclaw_install.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/opencode_plugin.js +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/hooks/wrappers.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/integrity.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/kdf.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/keychain.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/live.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/lock.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/mcp.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/migrate_db.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/proxy.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/proxy_daemon.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/repos.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/skills/methodproof/SKILL.md +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/store.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/sync.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/__init__.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/consent.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/init.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/log.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/review.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/start.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/status.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/tui/theme.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/viewer.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/methodproof/wordlist.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/test_windows_compat.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/__init__.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/conftest.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_analysis.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_auth.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_config.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_helpers.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_session.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_share.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_start.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_cli_update.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_e2e_integration.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_graph.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_hooks.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_live.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_openclaw_hooks.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_profiles.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_security.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_store.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_sync.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_viewer.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/tests/test_wrappers.py +0 -0
- {methodproof-0.7.17 → methodproof-0.7.18}/uv.lock +0 -0
|
@@ -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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|