Skip to content

Bug: stale security findings can reappear after clean scan #570

@eminos

Description

@eminos

Problem

In a Laravel/PHP repo, desloppify can report security: clean during scan, record the security findings as resolved in .desloppify/progression.jsonl, and then immediately resurrect the same security findings in desloppify show security / desloppify status.

This makes the dashboard warn about unresolved security issues even though the detector phase is clean and the code has already been fixed.

Repro

Repo state after removing the flagged log lines:

  • app/Http/Controllers/Webhooks/GitHubWebhookController.php:30 is now just $event = $request->header('X-GitHub-Event');
  • app/Services/AlertChannels/TelegramAlertChannelDriver.php:35-37 now just returns false when config is missing

Commands:

desloppify show security
desloppify plan resolve 'security::app/Http/Controllers/Webhooks/GitHubWebhookController.php::security::log_sensitive::app/Http/Controllers/Webhooks/GitHubWebhookController.php::30' --force-resolve --note 'Removed webhook secret-adjacent logging so the missing-secret path no longer emits potentially sensitive operational details.' --attest 'I have actually removed the webhook secret-adjacent log path in GitHubWebhookController and I am not gaming the score by resolving without fixing.'
desloppify plan resolve 'security::app/Services/AlertChannels/TelegramAlertChannelDriver.php::security::log_sensitive::app/Services/AlertChannels/TelegramAlertChannelDriver.php::37' --note 'Removed Telegram credential warning logs so missing-token and send-failure paths no longer emit secret-adjacent diagnostic context.' --attest 'I have actually removed the Telegram credential-adjacent warning logs in TelegramAlertChannelDriver and I am not gaming the score by resolving without fixing.'
desloppify scan --path . --skip-slow
desloppify show security
desloppify status

Observed:

  • scan phase prints security: clean (174 files scanned)
  • .desloppify/progression.jsonl scan_complete payload contains the relevant resolved_ids
  • desloppify show security still brings back the same two security findings
  • desloppify status footer warns ⚠ 2 security issues

The latest scan_complete entry also showed security detector failing count as 0 in prev_dimension_scores.Security.detectors.security.failing, while state still surfaced the old findings.

Expected

If the detector reports clean and the findings are listed as resolved in progression, show security / status should not resurrect the same stale findings from state.

Notes

I also saw a related queue/state desync where desloppify next got stuck on workflow::run-scan even after resolving it, then later cleared itself. This may be part of the same state synchronization bug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions