Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

tanem/mt5-pnl-exporter

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)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

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.

JSON
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all

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.

LabelLayerStatusPath
_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.

LabelLayerStatusPath
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.

LabelLayerStatusPath
_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

LabelLayerStatusPath
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

LabelLayerStatusPath
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

LabelLayerStatusPath
gha::ci cicd healthy .github/workflows/ci.yml
gha::release cicd healthy .github/workflows/release.yml

LabelLayerStatusPath
repobility-clone-etu5__wy software healthy /tmp/repobility-clone-etu5__wy

LabelLayerStatusPath
CODECOV_TOKEN cicd healthy
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

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.