https://github.com/tanem/mt5-pnl-exporter
· scanned 2026-06-16 00:29 UTC (2 months, 2 weeks ago)
5 raw signals (0 security + 5 graph)
Last scanned 2 months, 2 weeks ago · v1 · 5 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 258 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_make_logger |
software | healthy | tests/test_secrets.py:19 |
emit |
software | healthy | tests/test_secrets.py:25 |
test_redact_filter_replaces_secret |
software | healthy | tests/test_secrets.py:33 |
test_redact_filter_does_not_corrupt_percent_formatting |
software | healthy | tests/test_secrets.py:50 |
test_redact_filter_no_secrets_leaves_args_intact |
software | healthy | tests/test_secrets.py:69 |
test_get_investor_password_delegates_to_keyring |
software | healthy | tests/test_secrets.py:86 |
test_set_investor_password_delegates_to_keyring |
software | healthy | tests/test_secrets.py:93 |
test_redact_filter_empty_secret_not_registered |
software | healthy | tests/test_secrets.py:99 |
test_get_encryption_passphrase_delegates_to_keyring |
software | healthy | tests/test_secrets.py:117 |
test_get_encryption_passphrase_returns_none_when_unset |
software | healthy | tests/test_secrets.py:124 |
test_set_encryption_passphrase_delegates_to_keyring |
software | healthy | tests/test_secrets.py:129 |
test_set_investor_password_rejects_empty |
software | healthy | tests/test_secrets.py:135 |
test_set_encryption_passphrase_rejects_empty |
software | healthy | tests/test_secrets.py:145 |
test_scrub_returns_input_unchanged_with_no_secrets |
software | healthy | tests/test_secrets.py:155 |
test_scrub_replaces_single_registered_secret |
software | healthy | tests/test_secrets.py:161 |
test_scrub_handles_multiple_registered_secrets |
software | healthy | tests/test_secrets.py:167 |
test_schema_file_matches_models |
software | healthy | tests/test_schema_file.py:13 |
_write_cfg |
software | healthy | tests/test_config.py:20 |
test_terminal_path_is_top_level |
software | healthy | tests/test_config.py:27 |
test_terminal_path_defaults_to_empty |
software | healthy | tests/test_config.py:43 |
test_terminal_path_null_coerced_to_empty |
software | healthy | tests/test_config.py:58 |
test_snapshot_path_tilde_expands_to_home |
software | healthy | tests/test_config.py:74 |
test_snapshot_path_absolute_unchanged |
software | healthy | tests/test_config.py:92 |
test_accounts_not_empty |
software | healthy | tests/test_config.py:104 |
test_labels_unique |
software | healthy | tests/test_config.py:111 |
test_load_config_missing_file |
software | healthy | tests/test_config.py:128 |
test_check_file_perms_warns_on_world_readable |
software | healthy | tests/test_config.py:137 |
test_check_file_perms_silent_on_600 |
software | healthy | tests/test_config.py:147 |
test_check_file_perms_skipped_on_windows |
software | healthy | tests/test_config.py:156 |
test_check_file_perms_missing_file_is_noop |
software | healthy | tests/test_config.py:165 |
test_resolve_passwords_pulls_from_keyring |
software | healthy | tests/test_config.py:174 |
test_resolve_passwords_raises_when_missing |
software | healthy | tests/test_config.py:189 |
_account |
software | healthy | tests/test_snapshot.py:27 |
_closed_deal |
software | healthy | tests/test_snapshot.py:39 |
_open_position |
software | healthy | tests/test_snapshot.py:63 |
_cash_flow |
software | healthy | tests/test_snapshot.py:88 |
_minimal_snapshot |
software | healthy | tests/test_snapshot.py:112 |
test_write_read_roundtrip_all_record_types |
software | healthy | tests/test_snapshot.py:126 |
test_empty_collections_roundtrip |
software | healthy | tests/test_snapshot.py:148 |
test_written_file_is_not_plaintext_json |
software | healthy | tests/test_snapshot.py:165 |
test_read_wrong_passphrase_raises_value_error |
software | healthy | tests/test_snapshot.py:177 |
test_read_truncated_file_raises_value_error |
software | healthy | tests/test_snapshot.py:184 |
test_read_corrupt_gzip_after_decrypt_raises_value_error |
software | healthy | tests/test_snapshot.py:193 |
test_read_none_passphrase_raises_runtime_error |
software | healthy | tests/test_snapshot.py:206 |
test_write_empty_passphrase_raises_runtime_error |
software | healthy | tests/test_snapshot.py:213 |
test_read_rejects_wrong_schema_version_after_decrypt |
software | healthy | tests/test_snapshot.py:222 |
test_read_rejects_missing_schema_version_after_decrypt |
software | healthy | tests/test_snapshot.py:240 |
test_read_corrupt_json_after_decrypt_raises_value_error |
software | healthy | tests/test_snapshot.py:256 |
test_read_missing_file |
software | healthy | tests/test_snapshot.py:266 |
test_write_no_tmp_file_after_success |
software | healthy | tests/test_snapshot.py:274 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
renovate.json |
software | healthy | renovate.json |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
config.example.yaml |
software | healthy | config.example.yaml |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
pyproject.toml |
software | healthy | pyproject.toml |
LICENSE |
software | healthy | LICENSE |
SECURITY.md |
software | healthy | SECURITY.md |
__init__.py |
software | healthy | tests/__init__.py |
test_secrets.py |
software | healthy | tests/test_secrets.py |
test_schema_file.py |
software | healthy | tests/test_schema_file.py |
test_config.py |
software | healthy | tests/test_config.py |
test_snapshot.py |
software | healthy | tests/test_snapshot.py |
test_cli.py |
software | healthy | tests/test_cli.py |
test_mt5_source.py |
software | healthy | tests/test_mt5_source.py |
sample_snapshot.json |
software | healthy | tests/fixtures/sample_snapshot.json |
security-audit.md |
software | healthy | docs/security-audit.md |
2026-06-05-phase-1b-cycle-6.md |
software | healthy | docs/superpowers/plans/2026-06-05-phase-1b-cycle-6.md |
2026-06-11-export-prior-read-resilience.md |
software | healthy | docs/superpowers/plans/2026-06-11-export-prior-read-resilie… |
2026-06-01-phase-1b-cycle-2.md |
software | healthy | docs/superpowers/plans/2026-06-01-phase-1b-cycle-2.md |
2026-06-04-phase-1b-cycle-5.md |
software | healthy | docs/superpowers/plans/2026-06-04-phase-1b-cycle-5.md |
2026-06-01-phase-1b-cycle-1.md |
software | healthy | docs/superpowers/plans/2026-06-01-phase-1b-cycle-1.md |
2026-06-12-config-path-and-error-ux.md |
software | healthy | docs/superpowers/plans/2026-06-12-config-path-and-error-ux.… |
2026-06-07-cli-naming-cleanup.md |
software | healthy | docs/superpowers/plans/2026-06-07-cli-naming-cleanup.md |
2026-06-06-renovate-dependency-automation.md |
software | healthy | docs/superpowers/plans/2026-06-06-renovate-dependency-autom… |
2026-06-06-node20-deprecation.md |
software | healthy | docs/superpowers/plans/2026-06-06-node20-deprecation.md |
2026-06-01-phase-1b-cycle-3.md |
software | healthy | docs/superpowers/plans/2026-06-01-phase-1b-cycle-3.md |
2026-06-03-phase-1b-cycle-4.md |
software | healthy | docs/superpowers/plans/2026-06-03-phase-1b-cycle-4.md |
2026-06-10-snapshot-verification-docs.md |
software | healthy | docs/superpowers/plans/2026-06-10-snapshot-verification-doc… |
2026-06-08-host-setup-onboarding-docs.md |
software | healthy | docs/superpowers/plans/2026-06-08-host-setup-onboarding-doc… |
2026-05-31-phase-1a-port-exporter.md |
software | healthy | docs/superpowers/plans/2026-05-31-phase-1a-port-exporter.md |
2026-06-12-pypi-publish.md |
software | healthy | docs/superpowers/plans/2026-06-12-pypi-publish.md |
2026-06-07-cli-naming-cleanup-design.md |
software | healthy | docs/superpowers/specs/2026-06-07-cli-naming-cleanup-design… |
2026-06-01-phase-1b-design.md |
software | healthy | docs/superpowers/specs/2026-06-01-phase-1b-design.md |
2026-06-11-export-prior-read-resilience-design.md |
software | healthy | docs/superpowers/specs/2026-06-11-export-prior-read-resilie… |
2026-06-03-phase-1b-cycle-5-design.md |
software | healthy | docs/superpowers/specs/2026-06-03-phase-1b-cycle-5-design.md |
2026-05-31-repo-split-design.md |
software | healthy | docs/superpowers/specs/2026-05-31-repo-split-design.md |
2026-06-10-snapshot-verification-docs-design.md |
software | healthy | docs/superpowers/specs/2026-06-10-snapshot-verification-doc… |
2026-06-01-phase-1b-cycle-3-design.md |
software | healthy | docs/superpowers/specs/2026-06-01-phase-1b-cycle-3-design.md |
2026-06-06-node20-deprecation-design.md |
software | healthy | docs/superpowers/specs/2026-06-06-node20-deprecation-design… |
2026-06-12-config-path-and-error-ux-design.md |
software | healthy | docs/superpowers/specs/2026-06-12-config-path-and-error-ux-… |
2026-06-05-phase-1b-cycle-6-design.md |
software | healthy | docs/superpowers/specs/2026-06-05-phase-1b-cycle-6-design.md |
2026-06-06-renovate-dependency-automation-design.md |
software | healthy | docs/superpowers/specs/2026-06-06-renovate-dependency-autom… |
2026-06-01-phase-1b-cycle-1-design.md |
software | healthy | docs/superpowers/specs/2026-06-01-phase-1b-cycle-1-design.md |
2026-06-01-phase-1b-cycle-2-design.md |
software | healthy | docs/superpowers/specs/2026-06-01-phase-1b-cycle-2-design.md |
2026-06-02-phase-1b-cycle-4-design.md |
software | healthy | docs/superpowers/specs/2026-06-02-phase-1b-cycle-4-design.md |
2026-06-08-host-setup-onboarding-docs-design.md |
software | healthy | docs/superpowers/specs/2026-06-08-host-setup-onboarding-doc… |
2026-06-12-pypi-publish-design.md |
software | healthy | docs/superpowers/specs/2026-06-12-pypi-publish-design.md |
snapshot.schema.json |
software | healthy | schema/snapshot.schema.json |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_Capture |
software | healthy | tests/test_secrets.py:24 |
_FakeSource |
software | healthy | tests/test_cli.py:38 |
_AccountInfo |
software | healthy | tests/test_mt5_source.py:60 |
AccountConfig |
software | healthy | src/mt5_pnl_exporter/config.py:17 |
Config |
software | healthy | src/mt5_pnl_exporter/config.py:24 |
AccountSnapshot |
software | healthy | src/mt5_pnl_exporter/snapshot.py:41 |
ClosedDeal |
software | healthy | src/mt5_pnl_exporter/snapshot.py:52 |
OpenPosition |
software | healthy | src/mt5_pnl_exporter/snapshot.py:77 |
CashFlow |
software | healthy | src/mt5_pnl_exporter/snapshot.py:103 |
Snapshot |
software | healthy | src/mt5_pnl_exporter/snapshot.py:133 |
_RedactFilter |
software | healthy | src/mt5_pnl_exporter/secrets.py:36 |
MT5Source |
software | healthy | src/mt5_pnl_exporter/sources/mt5.py:28 |
AccountInfo |
software | healthy | src/mt5_pnl_exporter/sources/base.py:41 |
DataSource |
software | healthy | src/mt5_pnl_exporter/sources/base.py:50 |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
fixtures |
software | healthy | tests/fixtures |
docs |
software | healthy | docs |
superpowers |
software | healthy | docs/superpowers |
plans |
software | healthy | docs/superpowers/plans |
specs |
software | healthy | docs/superpowers/specs |
schema |
software | healthy | schema |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
mt5_pnl_exporter |
software | healthy | src/mt5_pnl_exporter |
sources |
software | healthy | src/mt5_pnl_exporter/sources |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/ci.yml |
build |
cicd | healthy | .github/workflows/release.yml |
publish-testpypi |
cicd | healthy | .github/workflows/release.yml |
publish-pypi |
cicd | healthy | .github/workflows/release.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
gha::release |
cicd | healthy | .github/workflows/release.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-etu5__wy |
software | healthy | /tmp/repobility-clone-etu5__wy |
| Label | Layer | Status | Path |
|---|---|---|---|
CODECOV_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/a0479d63-d5cc-4242-a977-f791efa7bb7e/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/a0479d63-d5cc-4242-a977-f791efa7bb7e/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.