methodproof 0.7.31__tar.gz → 0.7.32__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 (86) hide show
  1. {methodproof-0.7.31 → methodproof-0.7.32}/CHANGELOG.md +5 -0
  2. {methodproof-0.7.31 → methodproof-0.7.32}/PKG-INFO +1 -1
  3. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/cli.py +4 -2
  4. {methodproof-0.7.31 → methodproof-0.7.32}/pyproject.toml +1 -1
  5. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_cli_start.py +7 -1
  6. {methodproof-0.7.31 → methodproof-0.7.32}/.github/workflows/ci.yml +0 -0
  7. {methodproof-0.7.31 → methodproof-0.7.32}/.gitignore +0 -0
  8. {methodproof-0.7.31 → methodproof-0.7.32}/LICENSE +0 -0
  9. {methodproof-0.7.31 → methodproof-0.7.32}/README.md +0 -0
  10. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/__init__.py +0 -0
  11. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/__main__.py +0 -0
  12. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/_daemon.py +0 -0
  13. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/agents/__init__.py +0 -0
  14. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/agents/base.py +0 -0
  15. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/agents/music.py +0 -0
  16. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/agents/terminal.py +0 -0
  17. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/agents/watcher.py +0 -0
  18. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/analysis.py +0 -0
  19. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/binding.py +0 -0
  20. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/bip39.py +0 -0
  21. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/bridge.py +0 -0
  22. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/config.py +0 -0
  23. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/crypto.py +0 -0
  24. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/e2e.py +0 -0
  25. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/graph.py +0 -0
  26. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hook.py +0 -0
  27. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/__init__.py +0 -0
  28. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/claude_code.py +0 -0
  29. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/claude_code.sh +0 -0
  30. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/cline_hook.sh +0 -0
  31. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/codex_hook.sh +0 -0
  32. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/gemini_hook.sh +0 -0
  33. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/install.py +0 -0
  34. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/kiro_hook.sh +0 -0
  35. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/mcp_register.py +0 -0
  36. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/openclaw/HOOK.md +0 -0
  37. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/openclaw/handler.ts +0 -0
  38. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/openclaw_install.py +0 -0
  39. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/opencode_plugin.js +0 -0
  40. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/hooks/wrappers.py +0 -0
  41. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/integrity.py +0 -0
  42. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/kdf.py +0 -0
  43. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/keychain.py +0 -0
  44. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/live.py +0 -0
  45. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/lock.py +0 -0
  46. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/mcp.py +0 -0
  47. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/migrate_db.py +0 -0
  48. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/proxy.py +0 -0
  49. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/proxy_daemon.py +0 -0
  50. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/repos.py +0 -0
  51. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/skills/methodproof/SKILL.md +0 -0
  52. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/store.py +0 -0
  53. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/sync.py +0 -0
  54. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/__init__.py +0 -0
  55. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/consent.py +0 -0
  56. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/init.py +0 -0
  57. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/log.py +0 -0
  58. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/login_success.py +0 -0
  59. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/review.py +0 -0
  60. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/start.py +0 -0
  61. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/status.py +0 -0
  62. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/tui/theme.py +0 -0
  63. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/viewer.py +0 -0
  64. {methodproof-0.7.31 → methodproof-0.7.32}/methodproof/wordlist.py +0 -0
  65. {methodproof-0.7.31 → methodproof-0.7.32}/test_windows_compat.py +0 -0
  66. {methodproof-0.7.31 → methodproof-0.7.32}/tests/__init__.py +0 -0
  67. {methodproof-0.7.31 → methodproof-0.7.32}/tests/conftest.py +0 -0
  68. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_analysis.py +0 -0
  69. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_cli_auth.py +0 -0
  70. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_cli_config.py +0 -0
  71. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_cli_helpers.py +0 -0
  72. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_cli_session.py +0 -0
  73. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_cli_share.py +0 -0
  74. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_cli_update.py +0 -0
  75. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_e2e_integration.py +0 -0
  76. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_graph.py +0 -0
  77. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_hooks.py +0 -0
  78. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_live.py +0 -0
  79. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_openclaw_hooks.py +0 -0
  80. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_profiles.py +0 -0
  81. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_security.py +0 -0
  82. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_store.py +0 -0
  83. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_sync.py +0 -0
  84. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_viewer.py +0 -0
  85. {methodproof-0.7.31 → methodproof-0.7.32}/tests/test_wrappers.py +0 -0
  86. {methodproof-0.7.31 → methodproof-0.7.32}/uv.lock +0 -0
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.32] — 2026-04-12
4
+
5
+ ### Fixed
6
+ - **`mp start` no longer hard-fails on missing shell hook** — instead of `ERROR: Run methodproof init first` + exit, `mp start` now auto-installs the hook and continues. Prints a note that terminal capture won't work until the shell is restarted. Prevents the frustrating dead-end where auto-update + missing hook blocks the entire session.
7
+
3
8
  ## [0.7.31] — 2026-04-12
4
9
 
5
10
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: methodproof
3
- Version: 0.7.31
3
+ Version: 0.7.32
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
@@ -1111,8 +1111,10 @@ def cmd_start(args: argparse.Namespace) -> None:
1111
1111
 
1112
1112
  _log_step("Checking hooks")
1113
1113
  if not hook.is_installed():
1114
- print("ERROR: Run `methodproof init` first.")
1115
- sys.exit(1)
1114
+ rc = hook.install()
1115
+ print(f" Shell hook installed ({rc}). Restart your shell or run:")
1116
+ print(f" eval \"$(methodproof shell-hook)\"")
1117
+ print(f" Terminal command capture won't work until the hook is active.")
1116
1118
 
1117
1119
  _log_step("Authenticating")
1118
1120
  account_id = _require_auth(cfg)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "methodproof"
3
- version = "0.7.31"
3
+ version = "0.7.32"
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"]
@@ -17,10 +17,16 @@ from methodproof import cli, config, graph, store
17
17
 
18
18
 
19
19
  @patch("methodproof.hook.is_installed", return_value=False)
20
- def test_start_hooks_not_installed(mock_hook, logged_in_cfg, cli_args):
20
+ @patch("methodproof.hook.install", return_value="zsh: ~/.zshrc")
21
+ @patch("methodproof.cli._require_auth", side_effect=SystemExit("not logged in"))
22
+ def test_start_hooks_not_installed_auto_installs(mock_auth, mock_install, mock_hook, logged_in_cfg, cli_args, capsys):
23
+ """Missing hook auto-installs and continues (no longer hard-fails)."""
21
24
  logged_in_cfg()
22
25
  with pytest.raises(SystemExit):
23
26
  cli.cmd_start(cli_args())
27
+ out = capsys.readouterr().out
28
+ assert "Shell hook installed" in out
29
+ mock_install.assert_called_once()
24
30
 
25
31
 
26
32
  @patch("methodproof.hook.is_installed", return_value=True)
File without changes
File without changes
File without changes
File without changes