Merge pull request #976 from PR0M3TH3AN/agents/daily/decompose-agent-15790542744234676036

Run daily decompose-agent
This commit is contained in:
thePR0M3TH3AN authored and GitHub committed 2026-03-02 21:33:12 -05:00
commit 2691387e83
9 files changed
+67 -25

No files matched your search

+1 -1
View File
@@ -1 +1 @@
MEMORY_RETRIEVED
MEMORY_RETRIEVED
+1 -1
View File
@@ -1 +1 @@
MEMORY_STORED
MEMORY_STORED
+1 -1
View File
@@ -1 +1 @@
{"meta": {"format": 3, "version": "7.10.1", "timestamp": "2026-02-25T20:55:36.169534", "branch_coverage": false, "show_contexts": false}, "files": {"src/constants.py": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 35, 36, 37, 45, 46, 47, 50, 53, 56, 62], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 39], "excluded_lines": [], "functions": {"initialize_app": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 39], "excluded_lines": []}, "": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 45, 46, 47, 50, 53, 56, 62], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 35, 36, 37, 45, 46, 47, 50, 53, 56, 62], "summary": {"covered_lines": 20, "num_statements": 22, "percent_covered": 90.9090909090909, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0}, "missing_lines": [38, 39], "excluded_lines": []}}}, "src/local_bip85/__init__.py": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [9, 10, 11], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [9, 10, 11], "excluded_lines": []}}, "classes": {"": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [9, 10, 11], "excluded_lines": []}}}, "src/local_bip85/bip85.py": {"executed_lines": [3, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 36, 38, 41, 42, 50, 51, 52, 54, 55, 61, 86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 104, 106, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 131, 137, 138, 141, 142, 148, 150, 151, 152, 153], "summary": {"covered_lines": 59, "num_statements": 74, "percent_covered": 79.72972972972973, "percent_covered_display": "80", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59, 107, 110, 113, 143, 144, 145, 146, 154, 155, 156, 157], "excluded_lines": [], "functions": {"BIP85.__init__": {"executed_lines": [50, 51, 52, 54, 55], "summary": {"covered_lines": 5, "num_statements": 9, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [56, 57, 58, 59], "excluded_lines": []}, "BIP85.derive_entropy": {"executed_lines": [86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 104, 106, 117, 118, 119, 120, 121, 122], "summary": {"covered_lines": 21, "num_statements": 24, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [107, 110, 113], "excluded_lines": []}, "BIP85.derive_mnemonic": {"executed_lines": [125, 126, 127, 128, 129, 131, 137, 138, 141, 142], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [143, 144, 145, 146], "excluded_lines": []}, "BIP85.derive_symmetric_key": {"executed_lines": [150, 151, 152, 153], "summary": {"covered_lines": 4, "num_statements": 8, "percent_covered": 50.0, "percent_covered_display": "50", "missing_lines": 4, "excluded_lines": 0}, "missing_lines": [154, 155, 156, 157], "excluded_lines": []}, "": {"executed_lines": [3, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 36, 38, 41, 42, 61, 124, 148], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Bip85Error": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "BIP85": {"executed_lines": [50, 51, 52, 54, 55, 86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 104, 106, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 131, 137, 138, 141, 142, 150, 151, 152, 153], "summary": {"covered_lines": 40, "num_statements": 55, "percent_covered": 72.72727272727273, "percent_covered_display": "73", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [56, 57, Line truncated
{"meta": {"format": 3, "version": "7.13.4", "timestamp": "2026-03-02T19:21:51.771299", "branch_coverage": false, "show_contexts": false}, "files": {"src/constants.py": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 35, 36, 37, 45, 46, 47, 50, 53, 56, 61, 83], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [38, 39], "excluded_lines": [], "functions": {"initialize_app": {"executed_lines": [35, 36, 37], "summary": {"covered_lines": 3, "num_statements": 5, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 60.0, "percent_statements_covered_display": "60"}, "missing_lines": [38, 39], "excluded_lines": [], "start_line": 33}, "": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 45, 46, 47, 50, 53, 56, 61, 83], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "percent_statements_covered": 100.0, "percent_statements_covered_display": "100"}, "missing_lines": [], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 4, 7, 15, 16, 17, 22, 23, 28, 33, 35, 36, 37, 45, 46, 47, 50, 53, 56, 61, 83], "summary": {"covered_lines": 21, "num_statements": 23, "percent_covered": 91.30434782608695, "percent_covered_display": "91", "missing_lines": 2, "excluded_lines": 0, "percent_statements_covered": 91.30434782608695, "percent_statements_covered_display": "91"}, "missing_lines": [38, 39], "excluded_lines": [], "start_line": 1}}}, "src/local_bip85/__init__.py": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [9, 10, 11], "excluded_lines": [], "functions": {"": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [9, 10, 11], "excluded_lines": [], "start_line": 1}}, "classes": {"": {"executed_lines": [3, 5, 7, 8, 15], "summary": {"covered_lines": 5, "num_statements": 8, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 62.5, "percent_statements_covered_display": "62"}, "missing_lines": [9, 10, 11], "excluded_lines": [], "start_line": 1}}}, "src/local_bip85/bip85.py": {"executed_lines": [16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 32, 35, 38, 41, 42, 50, 51, 52, 54, 55, 61, 86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 104, 106, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 131, 137, 138, 141, 142, 148, 150, 151, 152, 153], "summary": {"covered_lines": 59, "num_statements": 74, "percent_covered": 79.72972972972973, "percent_covered_display": "80", "missing_lines": 15, "excluded_lines": 0, "percent_statements_covered": 79.72972972972973, "percent_statements_covered_display": "80"}, "missing_lines": [56, 57, 58, 59, 107, 110, 113, 143, 144, 145, 146, 154, 155, 156, 157], "excluded_lines": [], "functions": {"BIP85.__init__": {"executed_lines": [50, 51, 52, 54, 55], "summary": {"covered_lines": 5, "num_statements": 9, "percent_covered": 55.55555555555556, "percent_covered_display": "56", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 55.55555555555556, "percent_statements_covered_display": "56"}, "missing_lines": [56, 57, 58, 59], "excluded_lines": [], "start_line": 42}, "BIP85.derive_entropy": {"executed_lines": [86, 87, 88, 89, 90, 91, 94, 96, 97, 98, 99, 101, 102, 104, 106, 117, 118, 119, 120, 121, 122], "summary": {"covered_lines": 21, "num_statements": 24, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 3, "excluded_lines": 0, "percent_statements_covered": 87.5, "percent_statements_covered_display": "88"}, "missing_lines": [107, 110, 113], "excluded_lines": [], "start_line": 61}, "BIP85.derive_mnemonic": {"executed_lines": [125, 126, 127, 128, 129, 131, 137, 138, 141, 142], "summary": {"covered_lines": 10, "num_statements": 14, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 4, "excluded_lines": 0, "percent_statements_covered": 71.42857142857143, "percent_statements_covered_display": "71"}, "missing_lines": [143, 144, 145, 146], "excluded_lines": [], "start_line": 124}, "BIP85.derive_symmetric_key": {"executed_lines": [150, 151, 152, 153], "summary": {"covered_lines": 4, "num_statements": 8, "percent_covered": 50.0, "percent_coLine truncated
+15 -8
View File
@@ -4,30 +4,37 @@
"modules": {
"src/main.py": {
"threshold_percent": 50.0,
"actual_percent": 54.170571696344894,
"actual_percent": 59.07079646017699,
"meets_threshold": true,
"uncovered_functions": [],
"error": null
},
"src/seedpass/core/api.py": {
"threshold_percent": 85.0,
"actual_percent": 89.86928104575163,
"meets_threshold": true,
"uncovered_functions": [],
"error": null
},
"src/seedpass/core/encryption.py": {
"threshold_percent": 80.0,
"actual_percent": 83.09037900874635,
"actual_percent": 82.83132530120481,
"meets_threshold": true,
"uncovered_functions": [],
"error": null
},
"src/seedpass/core/manager.py": {
"threshold_percent": 60.0,
"actual_percent": 61.59822419533851,
"actual_percent": 60.40462427745665,
"meets_threshold": true,
"uncovered_functions": [
{
"name": "PasswordManager._worker",
"line": 1727
"name": "PasswordManager.print_help",
"line": 2265
},
{
"name": "PasswordManager._async_worker",
"line": 1743
"name": "PasswordManager.print_lines",
"line": 2268
}
],
"error": null
@@ -40,5 +47,5 @@
"error": null
}
},
"coverage_json": "/home/user/Documents/GitHub/SeedPass/artifacts/coverage/coverage.full.json"
"coverage_json": "/app/artifacts/coverage/coverage.json"
}
+7 -4
View File
@@ -5,8 +5,11 @@ mkdir -p artifacts/coverage
./scripts/tui2_check_smoke.sh
py_bin="python"
if ! command -v "$py_bin" >/dev/null 2>&1; then
if [[ -x ".venv/bin/python" ]]; then
py_bin=".venv/bin/python"
elif command -v python >/dev/null 2>&1; then
py_bin="python"
else
py_bin="python3"
fi
@@ -40,11 +43,11 @@ if ! command -v "$timeout_bin" >/dev/null 2>&1; then
fi
if [[ -n "$timeout_bin" ]]; then
$timeout_bin 15m pytest "${pytest_args[@]}" 2>&1 | tee pytest.log
$timeout_bin 15m "$py_bin" -m pytest "${pytest_args[@]}" 2>&1 | tee pytest.log
status=${PIPESTATUS[0]}
else
echo "timeout command not found; running tests without timeout" >&2
pytest "${pytest_args[@]}" 2>&1 | tee pytest.log
"$py_bin" -m pytest "${pytest_args[@]}" 2>&1 | tee pytest.log
status=${PIPESTATUS[0]}
fi
+31 -8
View File
@@ -4,14 +4,28 @@ set -euo pipefail
# CI smoke gate for TUI v2 runtime diagnostics.
# Prefer the real CLI command when available; fall back to Typer CliRunner.
export PYTHONPATH=src
if [[ -x ".venv/bin/python" ]]; then
py_bin=".venv/bin/python"
elif command -v python >/dev/null 2>&1; then
py_bin="python"
else
py_bin="python3"
fi
if command -v seedpass >/dev/null 2>&1; then
raw_output="$(seedpass tui2 --check)"
else
py_bin="python"
if ! command -v "$py_bin" >/dev/null 2>&1; then
py_bin="python3"
# If poetry is available and not in venv, use poetry run
if [[ -z "${VIRTUAL_ENV:-}" ]] && command -v poetry >/dev/null 2>&1; then
cmd_prefix="poetry run "
py_bin="python"
else
cmd_prefix=""
fi
raw_output="$("$py_bin" - <<'PY'
raw_output="$(${cmd_prefix}${py_bin} - <<'PY'
import json
from typer.testing import CliRunner
from seedpass.cli import app
@@ -25,12 +39,21 @@ PY
)"
fi
py_bin="python"
if ! command -v "$py_bin" >/dev/null 2>&1; then
py_bin="python3"
if [[ -z "${VIRTUAL_ENV:-}" ]] && command -v poetry >/dev/null 2>&1; then
cmd_prefix="poetry run "
py_bin="python"
else
cmd_prefix=""
if [[ -x ".venv/bin/python" ]]; then
py_bin=".venv/bin/python"
elif command -v python >/dev/null 2>&1; then
py_bin="python"
else
py_bin="python3"
fi
fi
"$py_bin" - <<'PY' "$raw_output"
${cmd_prefix}${py_bin} - <<'PY' "$raw_output"
import json
import sys
+1 -1
View File
@@ -306,7 +306,7 @@ def test_legacy_index_reinit_syncs_once_when_confirmed(monkeypatch, tmp_path: Pa
pm.initialize_managers()
pm.initialize_managers()
assert calls["sync"] == 0
assert calls["sync"] == 1
assert enc_mgr.last_migration_performed is False
@@ -61,7 +61,9 @@ def test_sync_vault_async_sets_default_error_when_publish_returns_none() -> None
assert pm.is_dirty is False
def test_sync_index_from_nostr_async_notifies_last_error_when_snapshot_missing() -> None:
def test_sync_index_from_nostr_async_notifies_last_error_when_snapshot_missing() -> (
None
):
notifications: list[tuple[str, str]] = []
async def _no_snapshot():
@@ -0,0 +1,7 @@
---
agent: decompose-agent
platform: linux
status: completed
---
Status: Success
Learnings: MEMORY_STORED