methodproof 0.7.29__tar.gz → 0.7.31__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.29 → methodproof-0.7.31}/CHANGELOG.md +10 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/PKG-INFO +1 -1
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/cli.py +1 -17
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/config.py +1 -2
- {methodproof-0.7.29 → methodproof-0.7.31}/pyproject.toml +1 -1
- {methodproof-0.7.29 → methodproof-0.7.31}/.github/workflows/ci.yml +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/.gitignore +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/LICENSE +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/README.md +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/__init__.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/__main__.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/_daemon.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/agents/__init__.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/agents/base.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/agents/music.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/agents/terminal.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/agents/watcher.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/analysis.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/binding.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/bip39.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/bridge.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/crypto.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/e2e.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/graph.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hook.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/__init__.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/claude_code.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/claude_code.sh +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/cline_hook.sh +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/codex_hook.sh +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/gemini_hook.sh +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/install.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/kiro_hook.sh +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/mcp_register.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/openclaw/HOOK.md +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/openclaw/handler.ts +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/openclaw_install.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/opencode_plugin.js +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/hooks/wrappers.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/integrity.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/kdf.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/keychain.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/live.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/lock.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/mcp.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/migrate_db.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/proxy.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/proxy_daemon.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/repos.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/skills/methodproof/SKILL.md +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/store.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/sync.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/__init__.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/consent.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/init.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/log.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/login_success.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/review.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/start.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/status.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/tui/theme.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/viewer.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/methodproof/wordlist.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/test_windows_compat.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/__init__.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/conftest.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_analysis.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_cli_auth.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_cli_config.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_cli_helpers.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_cli_session.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_cli_share.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_cli_start.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_cli_update.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_e2e_integration.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_graph.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_hooks.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_live.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_openclaw_hooks.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_profiles.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_security.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_store.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_sync.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_viewer.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/tests/test_wrappers.py +0 -0
- {methodproof-0.7.29 → methodproof-0.7.31}/uv.lock +0 -0
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.31] — 2026-04-12
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **`mp push` rejected terminal events** — `command` field was in `JOURNAL_CONTENT_FIELDS`, so it was stripped when journal mode was off. Platform requires `command` on `terminal_cmd` events. Removed from journal gate — the command string is structural metadata (sensitive commands are already dropped by the `SENSITIVE` regex).
|
|
7
|
+
|
|
8
|
+
## [0.7.30] — 2026-04-12
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **Removed Basic tier from journal entitlement** — tiers are Free and Pro+ only. Dropped the server-side credit fetch for Basic; `_journal_entitlement` now returns `"unlimited"` for Pro+ and local credit count for Free.
|
|
12
|
+
|
|
3
13
|
## [0.7.29] — 2026-04-12
|
|
4
14
|
|
|
5
15
|
### Changed
|
|
@@ -160,28 +160,12 @@ _PRO_TIERS = {"pro", "team", "admin", "superadmin"}
|
|
|
160
160
|
|
|
161
161
|
|
|
162
162
|
def _journal_entitlement(cfg: dict) -> str | int:
|
|
163
|
-
"""Return 'unlimited' for Pro+ users, or an int credit count for
|
|
164
|
-
|
|
165
|
-
For Basic users, fetches live credit count from the platform; falls back
|
|
166
|
-
to the locally cached value if the request fails (e.g. offline).
|
|
167
|
-
"""
|
|
163
|
+
"""Return 'unlimited' for Pro+ users, or an int credit count for free users."""
|
|
168
164
|
token = cfg.get("token", "")
|
|
169
165
|
claims = _decode_jwt_claims(token) if token else {}
|
|
170
166
|
account_type = claims.get("account_type", "free").lower()
|
|
171
|
-
|
|
172
167
|
if account_type in _PRO_TIERS:
|
|
173
168
|
return "unlimited"
|
|
174
|
-
|
|
175
|
-
if account_type == "basic":
|
|
176
|
-
try:
|
|
177
|
-
profile = _request("GET", "/auth/me", cfg.get("api_url", config.LOCAL_API_URL), token)
|
|
178
|
-
server_credits = profile.get("journal_credits")
|
|
179
|
-
if server_credits is not None:
|
|
180
|
-
cfg["journal_credits"] = int(server_credits)
|
|
181
|
-
config.save(cfg)
|
|
182
|
-
except Exception:
|
|
183
|
-
pass # offline — use local cache
|
|
184
|
-
|
|
185
169
|
return int(cfg.get("journal_credits", 0))
|
|
186
170
|
|
|
187
171
|
|
|
@@ -93,9 +93,8 @@ JOURNAL_CONTENT_FIELDS: list[tuple[str, str]] = [
|
|
|
93
93
|
("agent_tool_dispatch", "tool_input_preview"),
|
|
94
94
|
("agent_tool_result", "result_preview"),
|
|
95
95
|
("agent_skill_invoke", "skill_input_preview"),
|
|
96
|
-
# Terminal — full command output
|
|
96
|
+
# Terminal — full command output (command itself is structural, not gated)
|
|
97
97
|
("terminal_cmd", "output_snippet"),
|
|
98
|
-
("terminal_cmd", "command"),
|
|
99
98
|
# Code — full diffs and commit messages
|
|
100
99
|
("file_edit", "diff"),
|
|
101
100
|
("git_commit", "diff"),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "methodproof"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.31"
|
|
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
|