Skip to content

security(codeql): GAR-491 — Wave 2 suppressions ledger + reapply script (empirical proof PASSED)#109

Merged
michelbr84 merged 2 commits intomainfrom
security/gar-491-codeql-suppressions-2026-05-01
May 1, 2026
Merged

security(codeql): GAR-491 — Wave 2 suppressions ledger + reapply script (empirical proof PASSED)#109
michelbr84 merged 2 commits intomainfrom
security/gar-491-codeql-suppressions-2026-05-01

Conversation

@michelbr84
Copy link
Copy Markdown
Owner

@michelbr84 michelbr84 commented May 1, 2026

Summary

Establishes Rust CodeQL suppression convention for GarraRUST. Rust CodeQL still does NOT support inline // codeql[...] comments in 2026 (PR github/codeql#21638 open without merge), so the project adopts a versioned ledger + REST API dismissal mechanism.

This is GAR-491 (Wave 2) — sub-issue 5/5 of the umbrella GAR-486 (Green Security Baseline 2026-04-30). It unblocks GAR-490 (Wave 1, production triage) by defining the suppression mechanism Wave 1 will use.

What this PR ships

  • docs/security/codeql-suppressions.md — human-auditable ledger (6 rows, per-line justifications).
  • docs/security/codeql-suppressions.json — machine-readable source (schema 1.0.0) consumed by the script. Per amendment A1, the script never parses Markdown.
  • scripts/security/codeql-reapply-dismissals.sh — POSIX bash, flags --dry-run / --apply / --check-md / --alert <N>. Fail-closed: validates rule_id + path + start_line from the live alert against the ledger before any PATCH; exit 2 on mismatch. Idempotency proven empirically (script bugfix in b455e5d corrected snake_case vs API space-form comparison).
  • docs/security/codeql-setup.md — cross-link replacing the "TBD suppression syntax" placeholder from PR security(codeql): PR C — advanced setup excluding garraia-desktop (Tauri) #106.

Mechanism (ledger §2)

gh api -X PATCH repos/michelbr84/GarraRUST/code-scanning/alerts/<N> \
  -f state=dismissed \
  -f dismissed_reason="<false positive|used in tests|won't fix>" \
  -f dismissed_comment="GAR-491 #N: <≤200 chars justification>... See docs/security/codeql-suppressions.md#alert-N."

The 280-char comment limit (GitHub API constraint) is handled by truncation in the script; the full justification lives in the ledger. Dismissed reason values use spaces (per the API contract), but the JSON keeps snake_case for shell-friendliness.

Empirical proof — PASSED ✅

Per amendment A3, no global query-filter fallback. The mechanism was proven empirically before the batch was applied: a dismissal must persist across a CodeQL re-run.

Step Run/Time (UTC) Result
Pre-dismissal CodeQL on main (baseline) 25202502297 — 2026-05-01T04:39:43Z success
Initial dismissal of #43 (PATCH) 2026-05-01T12:33:36Z state=dismissed, reason="false positive", by michelbr84
Push commit 34b155b, trigger CodeQL re-run 25214464719 — 2026-05-01T12:35:44Z success (~16 min)
Re-query #43 post-rerun ~2026-05-01T12:43Z state=dismissed PERSISTEDdismissed_at unchanged
Apply remaining 5 dismissals (--apply) ~12:44Z success — 5 applied, 0 errors
Final verification (all 6) ~12:45Z all {"state":"dismissed"}
Idempotency proof — 2nd --apply ~12:50Z 6 skipped, 0 applied, 0 errors
Re-CI on script bugfix b455e5d 25215027790 (CI 23m) + 25215027800 (CodeQL 15m) 17/17 checks ✅

Verdict: ✅ mechanism approved. All 6 dismissals applied, idempotent, persistent across CodeQL re-runs. Final state of all 6 alerts:

{"n":40,"reason":"used in tests","state":"dismissed"}
{"n":41,"reason":"used in tests","state":"dismissed"}
{"n":42,"reason":"used in tests","state":"dismissed"}
{"n":43,"reason":"false positive","state":"dismissed"}
{"n":44,"reason":"used in tests","state":"dismissed"}
{"n":45,"reason":"used in tests","state":"dismissed"}

Section §6 (failure handling — abort + new sub-issue, no global filter fallback) was NOT exercised because the proof passed.

Scope (6 alerts)

# Rule File:line Reason Why suppress
40 hard-coded-cryptographic-value mobile_auth.rs:738 used in tests #[tokio::test] Argon2id roundtrip — placeholder salt arg
41 hard-coded-cryptographic-value mobile_auth.rs:749 used in tests same test, negative branch (wrong password)
42 hard-coded-cryptographic-value mobile_auth.rs:870 used in tests #[tokio::test] lazy upgrade test fixture
43 hard-coded-cryptographic-value credentials.rs:49 false positive vec![0u8; SALT_LEN] overwritten by SystemRandom::fill
44 hard-coded-cryptographic-value validation.rs:233 used in tests #[test] length-validation negative case
45 hard-coded-cryptographic-value validation.rs:234 used in tests #[test] length-validation positive case

Metrics (empirical, before/after this PR)

Metric Before After
CodeQL rust/hard-coded-cryptographic-value open 27 21 (-6)
CodeQL total open 90 84
Dependabot open 7 7 (invariant — no lockfile change)

Out of scope

  • 21 other rust/hard-coded-cryptographic-value alerts in admin/store.rs, admin/handlers.rs, migrate_workspace.rs, and the remaining 6 in mobile_auth.rs:618-736 — all look like test fixtures but each needs individual review. Follow-up sub-issue GAR-491.1.
  • All 16 path-injection + 8 sql-injection alerts — those belong to GAR-490 (Wave 1, blocked-by 491). Classification map already prepared in GAR-490 comment.
  • All 15 actions/missing-workflow-permissions + 10 cleartext-storage-database + 6 cleartext-logging + 4 cleartext-transmission + 4 js/* — separate triage.
  • Automatic schedule for the reapply script — sub-issue GAR-491.2 after at least one weekly CodeQL cycle without regression.

Test plan (all completed)

  • Local: bash scripts/security/codeql-reapply-dismissals.sh --check-md → exits 0 (6 entries in sync)
  • Local: bash scripts/security/codeql-reapply-dismissals.sh --dry-run --alert 43 → fail-closed validation passes
  • Live: bash scripts/security/codeql-reapply-dismissals.sh --apply --alert 43 → PATCH succeeded (12:33:36Z)
  • CodeQL re-run on this branch completed successfully (run 25214464719, success)
  • After re-run: gh api repos/michelbr84/GarraRUST/code-scanning/alerts/43 --jq '.state' returned "dismissed"empirical proof gate cleared
  • Apply remaining 5 dismissals via --apply (no --alert filter) — 5/5 success
  • All 6 verified dismissed via for n in 40 41 42 43 44 45; do gh api ... ; done
  • Idempotency proof: 2nd --apply run reported 6 skipped, 0 applied, 0 errors
  • CI green: 17/17 checks success on commit b455e5d (run 25215027790 CI + 25215027800 CodeQL)

Linear

  • Umbrella: GAR-486 (In Progress until 491+490 land)
  • This: GAR-491 — Backlog → In Progress; ready to close on merge.
  • Unblocks: GAR-490 Wave 1 (classification map already commented).

Policy guardrails active

  • ❌ No history rewrite, no force-push to main
  • ❌ No --no-verify / hook bypass
  • ❌ No bulk suppression — every row reviewed individually
  • ❌ No global rule silencing — abort would have been the path if proof had failed
  • ❌ No automatic reapply schedule in this PR (deferred to GAR-491.2)
  • ✅ Each suppression has rule_id+path+line+justification+GAR-#

🤖 Generated with Claude Code

Establishes the suppression convention for Rust CodeQL alerts in GarraRUST.
Rust CodeQL still does NOT support inline `// codeql[...]` comments
(github/codeql#21638 open without merge), so the project adopts a versioned
ledger + REST API dismissal mechanism per amendment-driven plan §15.

Deliverables:
  * docs/security/codeql-suppressions.md — human-auditable ledger (6 rows).
  * docs/security/codeql-suppressions.json — machine-readable source
    (schema 1.0.0) consumed by the reapply script.
  * scripts/security/codeql-reapply-dismissals.sh — POSIX bash with
    --dry-run/--apply/--check-md/--alert flags. Fail-closed: validates
    rule_id, path, and start_line against current alert before any PATCH;
    exit 2 on mismatch (manual re-audit), exit 3 on stale entry, exit 4
    on MD/JSON drift. No automatic schedule (per amendment A8).
  * docs/security/codeql-setup.md — cross-link to the new ledger; replaces
    the "TBD suppression syntax" placeholder from PR #106.

Empirical-proof status (in flight):
  * Alert #43 (rust/hard-coded-cryptographic-value @ credentials.rs:49,
    `vec![0u8; SALT_LEN]` immediately overwritten by SystemRandom::fill)
    dismissed via gh api PATCH at 2026-05-01T12:33:36Z with
    reason="false positive". State confirmed dismissed.
  * Pending: CodeQL re-run on this branch must preserve the dismissed
    state. If it does, apply remaining 5 dismissals (#40, #41, #42, #44,
    #45). If it does NOT, abort and open new sub-issue (no global
    query-filter fallback per amendment A3).

Operational rules (ledger §3):
  * No bulk suppression — each row has per-line justification.
  * 90-day audit expiration (2026-08-01) forces re-triage.
  * Fail-closed reaplicação: any drift between live alert and ledger
    surfaces to human, never auto-fixes.
  * No global rule silencing as fallback — abort instead.

Linear: GAR-491 (Wave 2 of GAR-486 umbrella). Status: In Progress.
Plan file: ~/.claude/plans/voc-est-no-repo-inherited-robin.md §15-16.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

Coverage Report (cargo-llvm-cov)

Generated by coverage job in this PR run. Soft-gate: no threshold; artifact + summary only.

Excluded crates: garraia-desktop, garraia-auth, garraia-workspace (see ci.yml comment).

Filename                                                Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
garraia-agents/src/a2a/client.rs                            106               106     0.00%          18                18     0.00%          99                99     0.00%           0                 0         -
garraia-agents/src/agent_mode.rs                            419                97    76.85%          39                14    64.10%         296                85    71.28%           0                 0         -
garraia-agents/src/anthropic.rs                             427               127    70.26%          32                12    62.50%         327               100    69.42%           0                 0         -
garraia-agents/src/context_policy.rs                        100                97     3.00%           8                 7    12.50%          82                76     7.32%           0                 0         -
garraia-agents/src/embeddings.rs                            221               139    37.10%          46                38    17.39%         173               114    34.10%           0                 0         -
garraia-agents/src/execution_budget.rs                      260                11    95.77%          24                 3    87.50%         150                12    92.00%           0                 0         -
garraia-agents/src/llama_cpp.rs                             467               209    55.25%          48                29    39.58%         316               142    55.06%           0                 0         -
garraia-agents/src/mcp/manager.rs                           626               461    26.36%          77                58    24.68%         476               341    28.36%           0                 0         -
garraia-agents/src/mcp/tool_bridge.rs                        30                18    40.00%           9                 7    22.22%          37                19    48.65%           0                 0         -
garraia-agents/src/memory_extractor.rs                       68                59    13.24%           8                 6    25.00%          74                42    43.24%           0                 0         -
garraia-agents/src/modes.rs                                 628               126    79.94%          50                20    60.00%         619               100    83.84%           0                 0         -
garraia-agents/src/multi_agent.rs                           360               268    25.56%          23                16    30.43%         307               231    24.76%           0                 0         -
garraia-agents/src/ollama.rs                                596               120    79.87%          50                12    76.00%         425                94    77.88%           0                 0         -
garraia-agents/src/openai.rs                               1017               428    57.92%          61                32    47.54%         646               231    64.24%           0                 0         -
garraia-agents/src/orchestrator.rs                          594               431    27.44%          58                41    29.31%         511               366    28.38%           0                 0         -
garraia-agents/src/provider_resilience.rs                   445                44    90.11%          55                 9    83.64%         282                34    87.94%           0                 0         -
garraia-agents/src/providers.rs                               7                 7     0.00%           3                 3     0.00%           7                 7     0.00%           0                 0         -
garraia-agents/src/runtime.rs                               934               780    16.49%         146               127    13.01%         753               640    15.01%           0                 0         -
garraia-agents/src/tools/bash_tool.rs                       245                51    79.18%          25                 7    72.00%         174                48    72.41%           0                 0         -
garraia-agents/src/tools/code_review_tool.rs                140               125    10.71%          15                14     6.67%         128               116     9.38%           0                 0         -
garraia-agents/src/tools/file_read_tool.rs                  122                31    74.59%          19                 6    68.42%         103                27    73.79%           0                 0         -
garraia-agents/src/tools/file_write_tool.rs                 133                49    63.16%          21                 9    57.14%         111                40    63.96%           0                 0         -
garraia-agents/src/tools/git_diff_tool.rs                   400               112    72.00%          35                 8    77.14%         277                81    70.76%           0                 0         -
garraia-agents/src/tools/list_dir_tool.rs                   286                63    77.97%          28                 8    71.43%         188                44    76.60%           0                 0         -
garraia-agents/src/tools/mod.rs                              35                 0   100.00%           6                 0   100.00%          38                 0   100.00%           0                 0         -
garraia-agents/src/tools/repo_search_tool.rs                122                30    75.41%          17                 6    64.71%          90                22    75.56%           0                 0         -
garraia-agents/src/tools/run_tests_tool.rs                  219               145    33.79%          15                 8    46.67%         154                86    44.16%           0                 0         -
garraia-agents/src/tools/schedule.rs                        397               182    54.16%          44                27    38.64%         307               135    56.03%           0                 0         -
garraia-agents/src/tools/tool_context.rs                    188                25    86.70%          15                 4    73.33%         125                40    68.00%           0                 0         -
garraia-agents/src/tools/web_fetch_tool.rs                   76                19    75.00%          13                 6    53.85%          56                18    67.86%           0                 0         -
garraia-agents/src/tools/web_search_tool.rs                 115                24    79.13%          15                 7    53.33%          85                22    74.12%           0                 0         -
garraia-auth/src/action.rs                                   73                73     0.00%           2                 2     0.00%          51                51     0.00%           0                 0         -
garraia-auth/src/app_pool.rs                                 38                38     0.00%           9                 9     0.00%          32                32     0.00%           0                 0         -
garraia-auth/src/audit.rs                                    47                47     0.00%           4                 4     0.00%          44                44     0.00%           0                 0         -
garraia-auth/src/audit_workspace.rs                          37                37     0.00%           4                 4     0.00%          38                38     0.00%           0                 0         -
garraia-auth/src/can.rs                                      82                82     0.00%           3                 3     0.00%          69                69     0.00%           0                 0         -
garraia-auth/src/extractor.rs                                83                83     0.00%           8                 8     0.00%          59                59     0.00%           0                 0         -
garraia-auth/src/hashing.rs                                  78                22    71.79%           8                 4    50.00%          47                17    63.83%           0                 0         -
garraia-auth/src/internal.rs                                277               277     0.00%          10                10     0.00%         211               211     0.00%           0                 0         -
garraia-auth/src/jwt.rs                                     147               147     0.00%          11                11     0.00%          97                97     0.00%           0                 0         -
garraia-auth/src/login_pool.rs                               35                35     0.00%           8                 8     0.00%          29                29     0.00%           0                 0         -
garraia-auth/src/role.rs                                     30                30     0.00%           3                 3     0.00%          25                25     0.00%           0                 0         -
garraia-auth/src/sessions.rs                                107               107     0.00%           7                 7     0.00%          77                77     0.00%           0                 0         -
garraia-auth/src/signup_pool.rs                              35                35     0.00%           8                 8     0.00%          29                29     0.00%           0                 0         -
garraia-auth/src/storage_redacted.rs                        139               139     0.00%          10                10     0.00%          73                73     0.00%           0                 0         -
garraia-auth/src/types.rs                                    11                11     0.00%           1                 1     0.00%           8                 8     0.00%           0                 0         -
garraia-channels/src/commands/builtins/clear.rs              12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/config.rs             23                23     0.00%           5                 5     0.00%          28                28     0.00%           0                 0         -
garraia-channels/src/commands/builtins/health.rs             12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/help.rs               19                19     0.00%           4                 4     0.00%          23                23     0.00%           0                 0         -
garraia-channels/src/commands/builtins/mod.rs                44                44     0.00%           1                 1     0.00%          16                16     0.00%           0                 0         -
garraia-channels/src/commands/builtins/mode.rs               50                50     0.00%           8                 8     0.00%          53                53     0.00%           0                 0         -
garraia-channels/src/commands/builtins/model.rs              22                22     0.00%           4                 4     0.00%          17                17     0.00%           0                 0         -
garraia-channels/src/commands/builtins/pair.rs               15                15     0.00%           5                 5     0.00%          15                15     0.00%           0                 0         -
garraia-channels/src/commands/builtins/providers.rs          12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/start.rs              15                15     0.00%           5                 5     0.00%          23                23     0.00%           0                 0         -
garraia-channels/src/commands/builtins/stats.rs              12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/users.rs              15                15     0.00%           5                 5     0.00%          15                15     0.00%           0                 0         -
garraia-channels/src/commands/builtins/voice.rs              28                28     0.00%           5                 5     0.00%          25                25     0.00%           0                 0         -
garraia-channels/src/commands/builtins/voz.rs                28                28     0.00%           4                 4     0.00%          26                26     0.00%           0                 0         -
garraia-channels/src/commands/mod.rs                         29                21    27.59%           4                 2    50.00%          19                12    36.84%           0                 0         -
garraia-channels/src/commands/registry.rs                   280                55    80.36%          40                15    62.50%         196                46    76.53%           0                 0         -
garraia-channels/src/discord/commands.rs                     84                46    45.24%           9                 5    44.44%          64                38    40.62%           0                 0         -
garraia-channels/src/discord/config.rs                      128                 2    98.44%          13                 1    92.31%          81                 1    98.77%           0                 0         -
garraia-channels/src/discord/convert.rs                     269               117    56.51%          18                 7    61.11%         167                76    54.49%           0                 0         -
garraia-channels/src/discord/handler.rs                     343               296    13.70%          31                27    12.90%         220               190    13.64%           0                 0         -
garraia-channels/src/discord/mod.rs                         291               127    56.36%          47                29    38.30%         193                89    53.89%           0                 0         -
garraia-channels/src/lib.rs                                  27                27     0.00%           2                 2     0.00%          30                30     0.00%           0                 0         -
garraia-channels/src/metrics.rs                             157                 9    94.27%          20                 3    85.00%         110                14    87.27%           0                 0         -
garraia-channels/src/openclaw/client.rs                     158               158     0.00%          13                13     0.00%         110               110     0.00%           0                 0         -
garraia-channels/src/openclaw/config.rs                      11                11     0.00%           3                 3     0.00%          16                16     0.00%           0                 0         -
garraia-channels/src/openclaw/convert.rs                    178                 7    96.07%          13                 0   100.00%          95                 2    97.89%           0                 0         -
garraia-channels/src/protocol.rs                             99                 4    95.96%           8                 1    87.50%          78                 4    94.87%           0                 0         -
garraia-channels/src/registry.rs                             72                69     4.17%          12                11     8.33%          46                41    10.87%           0                 0         -
garraia-channels/src/slack/api.rs                           101               101     0.00%          17                17     0.00%          88                88     0.00%           0                 0         -
garraia-channels/src/slack/fmt.rs                           121                 3    97.52%           7                 0   100.00%          74                 1    98.65%           0                 0         -
garraia-channels/src/slack/mod.rs                           397               358     9.82%          27                22    18.52%         267               241     9.74%           0                 0         -
garraia-channels/src/telegram.rs                            430               285    33.72%          31                20    35.48%         332               181    45.48%           0                 0         -
garraia-channels/src/telegram_fmt.rs                        183                15    91.80%           9                 0   100.00%         103                 5    95.15%           0                 0         -
garraia-channels/src/whatsapp/api.rs                         66                66     0.00%           6                 6     0.00%          59                59     0.00%           0                 0         -
garraia-channels/src/whatsapp/mod.rs                         80                38    52.50%          19                14    26.32%          77                40    48.05%           0                 0         -
garraia-channels/src/whatsapp/webhook.rs                    248               248     0.00%          27                27     0.00%         155               155     0.00%           0                 0         -
garraia-cli/src/banner.rs                                   137               137     0.00%           8                 8     0.00%          70                70     0.00%           0                 0         -
garraia-cli/src/chat.rs                                     578               578     0.00%          18                18     0.00%         356               356     0.00%           0                 0         -
garraia-cli/src/config_cmd.rs                               244               147    39.75%          12                 4    66.67%         185               115    37.84%           0                 0         -
garraia-cli/src/glob_cmd.rs                                 143               143     0.00%           8                 8     0.00%         111               111     0.00%           0                 0         -
garraia-cli/src/main.rs                                     842               715    15.08%          30                22    26.67%         554               468    15.52%           0                 0         -
garraia-cli/src/migrate.rs                                  502               502     0.00%          19                19     0.00%         330               330     0.00%           0                 0         -
garraia-cli/src/migrate_workspace.rs                        781                94    87.96%          65                10    84.62%         531                43    91.90%           0                 0         -
garraia-cli/src/update.rs                                   330               312     5.45%          18                15    16.67%         213               201     5.63%           0                 0         -
garraia-cli/src/wizard.rs                                   152               152     0.00%           1                 1     0.00%         109               109     0.00%           0                 0         -
garraia-common/src/error.rs                                  22                 0   100.00%           1                 0   100.00%          10                 0   100.00%           0                 0         -
garraia-common/src/message.rs                                58                 2    96.55%           4                 0   100.00%          49                 2    95.92%           0                 0         -
garraia-common/src/types.rs                                  47                38    19.15%          13                10    23.08%          44                35    20.45%           0                 0         -
garraia-config/src/auth.rs                                  321                66    79.44%          23                 5    78.26%         225                43    80.89%           0                 0         -
garraia-config/src/check.rs                                 987                91    90.78%          78                 2    97.44%         877               108    87.69%           0                 0         -
garraia-config/src/loader.rs                                330                43    86.97%          22                 5    77.27%         213                29    86.38%           0                 0         -
garraia-config/src/model.rs                                 181                 6    96.69%          36                 2    94.44%         215                 8    96.28%           0                 0         -
garraia-config/src/watcher.rs                               104               104     0.00%          10                10     0.00%          60                60     0.00%           0                 0         -
garraia-db/src/chat_sync.rs                                 261               200    23.37%          37                28    24.32%         189               144    23.81%           0                 0         -
garraia-db/src/memory_store.rs                              898               230    74.39%          86                28    67.44%         610               115    81.15%           0                 0         -
garraia-db/src/project_store.rs                            1418               256    81.95%         106                53    50.00%         817               106    87.03%           0                 0         -
garraia-db/src/session_store.rs                            1341               658    50.93%         124                84    32.26%        1097               442    59.71%           0                 0         -
garraia-db/src/sqlite_db.rs                                 102                 0   100.00%          12                 0   100.00%          50                 0   100.00%           0                 0         -
garraia-db/src/vector_store.rs                              271                44    83.76%          31                12    61.29%         193                23    88.08%           0                 0         -
garraia-gateway/src/a2a.rs                                  179               179     0.00%          12                12     0.00%         171               171     0.00%           0                 0         -
garraia-gateway/src/admin/audit.rs                          120                 2    98.33%           9                 0   100.00%         114                 1    99.12%           0                 0         -
garraia-gateway/src/admin/handlers.rs                      2660              2660     0.00%         177               177     0.00%        2575              2575     0.00%           0                 0         -
garraia-gateway/src/admin/middleware.rs                     223                90    59.64%          18                 7    61.11%         137                58    57.66%           0                 0         -
garraia-gateway/src/admin/rbac.rs                           233                21    90.99%          21                 2    90.48%         202                21    89.60%           0                 0         -
garraia-gateway/src/admin/routes.rs                         224                12    94.64%           5                 4    20.00%         124                11    91.13%           0                 0         -
garraia-gateway/src/admin/shared.rs                          59                34    42.37%           1                 0   100.00%          41                22    46.34%           0                 0         -
garraia-gateway/src/admin/store.rs                         1040               427    58.94%          90                47    47.78%         722               253    64.96%           0                 0         -
garraia-gateway/src/agent_router.rs                          87                13    85.06%           4                 0   100.00%          57                 4    92.98%           0                 0         -
garraia-gateway/src/api.rs                                  473               473     0.00%          38                38     0.00%         556               556     0.00%           0                 0         -
garraia-gateway/src/auth_metrics.rs                          19                19     0.00%           3                 3     0.00%          11                11     0.00%           0                 0         -
garraia-gateway/src/auth_routes.rs                          341               326     4.40%          31                30     3.23%         273               266     2.56%           0                 0         -
garraia-gateway/src/auto_router.rs                          284                89    68.66%          26                 7    73.08%         225                75    66.67%           0                 0         -
garraia-gateway/src/billing.rs                              399                24    93.98%          33                 4    87.88%         243                19    92.18%           0                 0         -
garraia-gateway/src/bootstrap/config.rs                      55                 5    90.91%           6                 1    83.33%          43                 4    90.70%           0                 0         -
garraia-gateway/src/bootstrap/mod.rs                       2519              2238    11.16%         125               113     9.60%        1637              1433    12.46%           0                 0         -
garraia-gateway/src/cluster.rs                              419                23    94.51%          47                 4    91.49%         296                22    92.57%           0                 0         -
garraia-gateway/src/commands.rs                             423               346    18.20%          24                23     4.17%         273               241    11.72%           0                 0         -
garraia-gateway/src/context_summarizer.rs                   139               139     0.00%           5                 5     0.00%          88                88     0.00%           0                 0         -
garraia-gateway/src/externalization.rs                      456                28    93.86%          64                 7    89.06%         272                18    93.38%           0                 0         -
garraia-gateway/src/health.rs                               362               315    12.98%          23                17    26.09%         237               204    13.92%           0                 0         -
garraia-gateway/src/logs_handler.rs                          68                68     0.00%           3                 3     0.00%          51                51     0.00%           0                 0         -
garraia-gateway/src/mcp/mod.rs                              244                48    80.33%          22                 7    68.18%         179                40    77.65%           0                 0         -
garraia-gateway/src/mcp/persistence.rs                      408               105    74.26%          33                11    66.67%         235                71    69.79%           0                 0         -
garraia-gateway/src/mcp/registry.rs                         432                24    94.44%          45                 0   100.00%         232                18    92.24%           0                 0         -
garraia-gateway/src/mcp_commands.rs                         153               123    19.61%          12                 9    25.00%          93                78    16.13%           0                 0         -
garraia-gateway/src/mcp_marketplace.rs                      380               125    67.11%          16                10    37.50%         338               125    63.02%           0                 0         -
garraia-gateway/src/memory_handler.rs                        79                79     0.00%           6                 6     0.00%          92                92     0.00%           0                 0         -
garraia-gateway/src/metrics_auth.rs                         596                 2    99.66%          48                 0   100.00%         293                 1    99.66%           0                 0         -
garraia-gateway/src/metrics_exporter.rs                     104                27    74.04%          10                 3    70.00%          67                21    68.66%           0                 0         -
garraia-gateway/src/mobile_auth.rs                          806               167    79.28%          53                13    75.47%         575               201    65.04%           0                 0         -
garraia-gateway/src/mobile_chat.rs                          188               112    40.43%          17                 8    52.94%         155               110    29.03%           0                 0         -
garraia-gateway/src/oauth.rs                                620               434    30.00%          51                35    31.37%         449               340    24.28%           0                 0         -
garraia-gateway/src/observability.rs                        582               115    80.24%          44                17    61.36%         309                75    75.73%           0                 0         -
garraia-gateway/src/openai_api.rs                           714               607    14.99%          48                40    16.67%         552               489    11.41%           0                 0         -
garraia-gateway/src/openclaw_handler.rs                      53                53     0.00%           9                 9     0.00%          65                65     0.00%           0                 0         -
garraia-gateway/src/parrot_ws.rs                            135               135     0.00%           7                 7     0.00%          90                90     0.00%           0                 0         -
garraia-gateway/src/plugins_handler.rs                      772               256    66.84%          65                23    64.62%         542               251    53.69%           0                 0         -
garraia-gateway/src/projects_handler.rs                     383               181    52.74%          29                13    55.17%         255               127    50.20%           0                 0         -
garraia-gateway/src/rate_limiter.rs                         682               163    76.10%          67                19    71.64%         435               130    70.11%           0                 0         -
garraia-gateway/src/rest_v1/groups.rs                       882               580    34.24%          76                49    35.53%         713               516    27.63%           0                 0         -
garraia-gateway/src/rest_v1/invites.rs                      139               139     0.00%           9                 9     0.00%         116               116     0.00%           0                 0         -
garraia-gateway/src/rest_v1/me.rs                            44                 9    79.55%           5                 3    40.00%          30                 7    76.67%           0                 0         -
garraia-gateway/src/rest_v1/mod.rs                          205               144    29.76%          12                 7    41.67%         132                93    29.55%           0                 0         -
garraia-gateway/src/rest_v1/openapi.rs                       11                11     0.00%           1                 1     0.00%          10                10     0.00%           0                 0         -
garraia-gateway/src/rest_v1/problem.rs                      226                19    91.59%          16                 1    93.75%         117                17    85.47%           0                 0         -
garraia-gateway/src/rest_v1/uploads.rs                      871               419    51.89%          99                56    43.43%         601               335    44.26%           0                 0         -
garraia-gateway/src/router.rs                              1118               755    32.47%          70                62    11.43%         781               569    27.14%           0                 0         -
garraia-gateway/src/runtime_handler.rs                       57                 6    89.47%          10                 1    90.00%          40                 3    92.50%           0                 0         -
garraia-gateway/src/server.rs                               832               521    37.38%          31                10    67.74%         538               344    36.06%           0                 0         -
garraia-gateway/src/session_auth.rs                         100               100     0.00%           8                 8     0.00%          65                65     0.00%           0                 0         -
garraia-gateway/src/skills_handler.rs                       371               371     0.00%          24                24     0.00%         453               453     0.00%           0                 0         -
garraia-gateway/src/skins_handler.rs                        147                31    78.91%          17                 4    76.47%         117                37    68.38%           0                 0         -
garraia-gateway/src/slash_commands.rs                       203               203     0.00%          13                13     0.00%         139               139     0.00%           0                 0         -
garraia-gateway/src/state.rs                                746               356    52.28%          65                30    53.85%         515               263    48.93%           0                 0         -
garraia-gateway/src/totp.rs                                 370               107    71.08%          24                 9    62.50%         247               103    58.30%           0                 0         -
garraia-gateway/src/uploads_worker.rs                       220               194    11.82%          14                10    28.57%         181               155    14.36%           0                 0         -
garraia-gateway/src/uploads_worker_util.rs                   33                 0   100.00%           4                 0   100.00%          19                 0   100.00%           0                 0         -
garraia-gateway/src/voice_handler.rs                         13                13     0.00%           7                 7     0.00%          16                16     0.00%           0                 0         -
garraia-gateway/src/ws.rs                                   633               523    17.38%          39                25    35.90%         374               309    17.38%           0                 0         -
garraia-glob/src/ignore.rs                                  349                10    97.13%          32                 2    93.75%         176                 6    96.59%           0                 0         -
garraia-glob/src/lib.rs                                      39                 0   100.00%           4                 0   100.00%          16                 0   100.00%           0                 0         -
garraia-glob/src/matcher.rs                                  97                66    31.96%          10                 5    50.00%          77                45    41.56%           0                 0         -
garraia-glob/src/path.rs                                    100                37    63.00%          13                 7    46.15%          57                23    59.65%           0                 0         -
garraia-glob/src/pattern.rs                                 798                43    94.61%          44                 4    90.91%         403                27    93.30%           0                 0         -
garraia-glob/src/scanner.rs                                 520                53    89.81%          43                 4    90.70%         312                39    87.50%           0                 0         -
garraia-media/src/image_processor.rs                        528               105    80.11%          39                15    61.54%         287                51    82.23%           0                 0         -
garraia-media/src/pdf.rs                                    406               354    12.81%          41                35    14.63%         250               183    26.80%           0                 0         -
garraia-media/src/processing.rs                             322                52    83.85%          17                 4    76.47%         219                47    78.54%           0                 0         -
garraia-media/src/types.rs                                   62                62     0.00%           4                 4     0.00%          41                41     0.00%           0                 0         -
garraia-plugins/src/loader.rs                               207               207     0.00%          15                15     0.00%         130               130     0.00%           0                 0         -
garraia-plugins/src/manifest.rs                              72                14    80.56%           8                 2    75.00%          70                 7    90.00%           0                 0         -
garraia-plugins/src/runtime.rs                              455               236    48.13%          32                23    28.12%         301               179    40.53%           0                 0         -
garraia-plugins/src/sdk/host_functions.rs                    93                 6    93.55%           7                 2    71.43%          75                 6    92.00%           0                 0         -
garraia-plugins/src/sdk/plugin_trait.rs                      65                 7    89.23%           9                 3    66.67%          47                 5    89.36%           0                 0         -
garraia-runtime/src/executor.rs                             212                63    70.28%          19                 0   100.00%         172                49    71.51%           0                 0         -
garraia-runtime/src/meta_controller.rs                      174                 3    98.28%          15                 1    93.33%         101                 3    97.03%           0                 0         -
garraia-runtime/src/mode.rs                                 616                41    93.34%          36                 3    91.67%         617                27    95.62%           0                 0         -
garraia-runtime/src/state.rs                                 95                 7    92.63%           8                 0   100.00%          56                 4    92.86%           0                 0         -
garraia-security/src/allowlist.rs                           262                35    86.64%          19                 4    78.95%         149                20    86.58%           0                 0         -
garraia-security/src/credentials.rs                         443               161    63.66%          38                21    44.74%         249                99    60.24%           0                 0         -
garraia-security/src/pairing.rs                             107                 0   100.00%          11                 0   100.00%          61                 0   100.00%           0                 0         -
garraia-security/src/redaction.rs                            62                 5    91.94%          10                 1    90.00%          50                 3    94.00%           0                 0         -
garraia-security/src/validation.rs                          244                 7    97.13%          18                 0   100.00%         172                 2    98.84%           0                 0         -
garraia-skills/src/installer.rs                             100               100     0.00%          10                10     0.00%          58                58     0.00%           0                 0         -
garraia-skills/src/parser.rs                                146                 6    95.89%          10                 1    90.00%          84                 4    95.24%           0                 0         -
garraia-skills/src/scanner.rs                               144                 6    95.83%           8                 0   100.00%          79                 1    98.73%           0                 0         -
garraia-storage/src/error.rs                                 12                 0   100.00%           2                 0   100.00%          11                 0   100.00%           0                 0         -
garraia-storage/src/hash_util.rs                             10                 0   100.00%           1                 0   100.00%           5                 0   100.00%           0                 0         -
garraia-storage/src/integrity.rs                            201                 1    99.50%          14                 0   100.00%          83                 1    98.80%           0                 0         -
garraia-storage/src/local_fs.rs                             644                25    96.12%          55                 1    98.18%         409                16    96.09%           0                 0         -
garraia-storage/src/mime_allowlist.rs                       105                 0   100.00%          15                 0   100.00%          75                 0   100.00%           0                 0         -
garraia-storage/src/object_store.rs                         209                29    86.12%          18                 2    88.89%         145                18    87.59%           0                 0         -
garraia-storage/src/path_sanitize.rs                        186                 5    97.31%          15                 0   100.00%         119                 1    99.16%           0                 0         -
garraia-telemetry/src/config.rs                             213                12    94.37%          14                 1    92.86%         168                 4    97.62%           0                 0         -
garraia-telemetry/src/layers.rs                              15                 0   100.00%           3                 0   100.00%           9                 0   100.00%           0                 0         -
garraia-telemetry/src/lib.rs                                 36                14    61.11%           3                 1    66.67%          34                12    64.71%           0                 0         -
garraia-telemetry/src/metrics.rs                            146                32    78.08%          16                 5    68.75%          93                18    80.65%           0                 0         -
garraia-telemetry/src/redact.rs                              92                 0   100.00%           8                 0   100.00%          69                 0   100.00%           0                 0         -
garraia-telemetry/src/tracer.rs                              56                40    28.57%           4                 2    50.00%          32                23    28.12%           0                 0         -
garraia-tools/src/lib.rs                                    177               143    19.21%          29                22    24.14%         129               107    17.05%           0                 0         -
garraia-voice/src/audio/converter.rs                         72                72     0.00%           6                 6     0.00%          78                78     0.00%           0                 0         -
garraia-voice/src/lib.rs                                     10                10     0.00%           5                 5     0.00%           8                 8     0.00%           0                 0         -
garraia-voice/src/pipeline.rs                               113               113     0.00%           3                 3     0.00%          73                73     0.00%           0                 0         -
garraia-voice/src/stt/whisper_client.rs                     182               182     0.00%          18                18     0.00%         122               122     0.00%           0                 0         -
garraia-voice/src/tts/chatterbox_client.rs                  202               202     0.00%          17                17     0.00%         131               131     0.00%           0                 0         -
garraia-voice/src/tts/hibiki_client.rs                       54                54     0.00%           6                 6     0.00%          41                41     0.00%           0                 0         -
garraia-voice/src/tts/lmstudio_client.rs                    190               190     0.00%          20                20     0.00%         142               142     0.00%           0                 0         -
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                                                     60088             30033    50.02%        5002              2623    47.56%       43075             22749    47.19%           0                 0         -

Empirical proof of the REST-dismissal + versioned-ledger mechanism:
the dismissal of alert #43 (credentials.rs:49, false positive) at
12:33:36Z PERSISTED across the CodeQL re-run on this branch (run
25214464719 at 12:35:44Z, success). `state=dismissed` and
`dismissed_at` were unchanged when re-queried at ~12:43Z.

With the mechanism proven, the batch was applied:
  * 5 remaining alerts (#40, #41, #42, #44, #45) dismissed via
    `bash scripts/security/codeql-reapply-dismissals.sh --apply`
  * Final state of all 6 verified — all `{"state":"dismissed"}`.

Script bugfix: the idempotent skip check originally compared the
ledger snake_case `dismissed_reason` against the API's space-separated
form, causing HTTP 400 "Alert is already dismissed." on re-runs. Fixed
to compare against the translated `api_reason` (with spaces). A second
`--apply` invocation now reports `6 skipped, 0 applied, 0 errors` —
proving idempotency.

Ledger §5 updated with the run IDs, timestamps, and final verification
results. Section §6 (failure handling) was NOT exercised because the
proof passed.

Linear: GAR-491 — empirical-proof gate cleared. PR ready to mark for
review (next commit / `gh pr ready`).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@michelbr84 michelbr84 marked this pull request as ready for review May 1, 2026 12:55
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

Coverage Report (cargo-llvm-cov)

Generated by coverage job in this PR run. Soft-gate: no threshold; artifact + summary only.

Excluded crates: garraia-desktop, garraia-auth, garraia-workspace (see ci.yml comment).

Filename                                                Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
garraia-agents/src/a2a/client.rs                            106               106     0.00%          18                18     0.00%          99                99     0.00%           0                 0         -
garraia-agents/src/agent_mode.rs                            419                97    76.85%          39                14    64.10%         296                85    71.28%           0                 0         -
garraia-agents/src/anthropic.rs                             427               127    70.26%          32                12    62.50%         327               100    69.42%           0                 0         -
garraia-agents/src/context_policy.rs                        100                97     3.00%           8                 7    12.50%          82                76     7.32%           0                 0         -
garraia-agents/src/embeddings.rs                            221               139    37.10%          46                38    17.39%         173               114    34.10%           0                 0         -
garraia-agents/src/execution_budget.rs                      260                11    95.77%          24                 3    87.50%         150                12    92.00%           0                 0         -
garraia-agents/src/llama_cpp.rs                             467               209    55.25%          48                29    39.58%         316               142    55.06%           0                 0         -
garraia-agents/src/mcp/manager.rs                           626               461    26.36%          77                58    24.68%         476               341    28.36%           0                 0         -
garraia-agents/src/mcp/tool_bridge.rs                        30                18    40.00%           9                 7    22.22%          37                19    48.65%           0                 0         -
garraia-agents/src/memory_extractor.rs                       68                59    13.24%           8                 6    25.00%          74                42    43.24%           0                 0         -
garraia-agents/src/modes.rs                                 628               126    79.94%          50                20    60.00%         619               100    83.84%           0                 0         -
garraia-agents/src/multi_agent.rs                           360               268    25.56%          23                16    30.43%         307               231    24.76%           0                 0         -
garraia-agents/src/ollama.rs                                596               120    79.87%          50                12    76.00%         425                94    77.88%           0                 0         -
garraia-agents/src/openai.rs                               1017               428    57.92%          61                32    47.54%         646               231    64.24%           0                 0         -
garraia-agents/src/orchestrator.rs                          594               431    27.44%          58                41    29.31%         511               366    28.38%           0                 0         -
garraia-agents/src/provider_resilience.rs                   445                44    90.11%          55                 9    83.64%         282                34    87.94%           0                 0         -
garraia-agents/src/providers.rs                               7                 7     0.00%           3                 3     0.00%           7                 7     0.00%           0                 0         -
garraia-agents/src/runtime.rs                               934               780    16.49%         146               127    13.01%         753               640    15.01%           0                 0         -
garraia-agents/src/tools/bash_tool.rs                       245                51    79.18%          25                 7    72.00%         174                48    72.41%           0                 0         -
garraia-agents/src/tools/code_review_tool.rs                140               125    10.71%          15                14     6.67%         128               116     9.38%           0                 0         -
garraia-agents/src/tools/file_read_tool.rs                  122                31    74.59%          19                 6    68.42%         103                27    73.79%           0                 0         -
garraia-agents/src/tools/file_write_tool.rs                 133                49    63.16%          21                 9    57.14%         111                40    63.96%           0                 0         -
garraia-agents/src/tools/git_diff_tool.rs                   400               112    72.00%          35                 8    77.14%         277                81    70.76%           0                 0         -
garraia-agents/src/tools/list_dir_tool.rs                   286                63    77.97%          28                 8    71.43%         188                44    76.60%           0                 0         -
garraia-agents/src/tools/mod.rs                              35                 0   100.00%           6                 0   100.00%          38                 0   100.00%           0                 0         -
garraia-agents/src/tools/repo_search_tool.rs                122                30    75.41%          17                 6    64.71%          90                22    75.56%           0                 0         -
garraia-agents/src/tools/run_tests_tool.rs                  219               145    33.79%          15                 8    46.67%         154                86    44.16%           0                 0         -
garraia-agents/src/tools/schedule.rs                        397               182    54.16%          44                27    38.64%         307               135    56.03%           0                 0         -
garraia-agents/src/tools/tool_context.rs                    188                25    86.70%          15                 4    73.33%         125                40    68.00%           0                 0         -
garraia-agents/src/tools/web_fetch_tool.rs                   76                19    75.00%          13                 6    53.85%          56                18    67.86%           0                 0         -
garraia-agents/src/tools/web_search_tool.rs                 115                24    79.13%          15                 7    53.33%          85                22    74.12%           0                 0         -
garraia-auth/src/action.rs                                   73                73     0.00%           2                 2     0.00%          51                51     0.00%           0                 0         -
garraia-auth/src/app_pool.rs                                 38                38     0.00%           9                 9     0.00%          32                32     0.00%           0                 0         -
garraia-auth/src/audit.rs                                    47                47     0.00%           4                 4     0.00%          44                44     0.00%           0                 0         -
garraia-auth/src/audit_workspace.rs                          37                37     0.00%           4                 4     0.00%          38                38     0.00%           0                 0         -
garraia-auth/src/can.rs                                      82                82     0.00%           3                 3     0.00%          69                69     0.00%           0                 0         -
garraia-auth/src/extractor.rs                                83                83     0.00%           8                 8     0.00%          59                59     0.00%           0                 0         -
garraia-auth/src/hashing.rs                                  78                22    71.79%           8                 4    50.00%          47                17    63.83%           0                 0         -
garraia-auth/src/internal.rs                                277               277     0.00%          10                10     0.00%         211               211     0.00%           0                 0         -
garraia-auth/src/jwt.rs                                     147               147     0.00%          11                11     0.00%          97                97     0.00%           0                 0         -
garraia-auth/src/login_pool.rs                               35                35     0.00%           8                 8     0.00%          29                29     0.00%           0                 0         -
garraia-auth/src/role.rs                                     30                30     0.00%           3                 3     0.00%          25                25     0.00%           0                 0         -
garraia-auth/src/sessions.rs                                107               107     0.00%           7                 7     0.00%          77                77     0.00%           0                 0         -
garraia-auth/src/signup_pool.rs                              35                35     0.00%           8                 8     0.00%          29                29     0.00%           0                 0         -
garraia-auth/src/storage_redacted.rs                        139               139     0.00%          10                10     0.00%          73                73     0.00%           0                 0         -
garraia-auth/src/types.rs                                    11                11     0.00%           1                 1     0.00%           8                 8     0.00%           0                 0         -
garraia-channels/src/commands/builtins/clear.rs              12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/config.rs             23                23     0.00%           5                 5     0.00%          28                28     0.00%           0                 0         -
garraia-channels/src/commands/builtins/health.rs             12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/help.rs               19                19     0.00%           4                 4     0.00%          23                23     0.00%           0                 0         -
garraia-channels/src/commands/builtins/mod.rs                44                44     0.00%           1                 1     0.00%          16                16     0.00%           0                 0         -
garraia-channels/src/commands/builtins/mode.rs               50                50     0.00%           8                 8     0.00%          53                53     0.00%           0                 0         -
garraia-channels/src/commands/builtins/model.rs              22                22     0.00%           4                 4     0.00%          17                17     0.00%           0                 0         -
garraia-channels/src/commands/builtins/pair.rs               15                15     0.00%           5                 5     0.00%          15                15     0.00%           0                 0         -
garraia-channels/src/commands/builtins/providers.rs          12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/start.rs              15                15     0.00%           5                 5     0.00%          23                23     0.00%           0                 0         -
garraia-channels/src/commands/builtins/stats.rs              12                12     0.00%           4                 4     0.00%          12                12     0.00%           0                 0         -
garraia-channels/src/commands/builtins/users.rs              15                15     0.00%           5                 5     0.00%          15                15     0.00%           0                 0         -
garraia-channels/src/commands/builtins/voice.rs              28                28     0.00%           5                 5     0.00%          25                25     0.00%           0                 0         -
garraia-channels/src/commands/builtins/voz.rs                28                28     0.00%           4                 4     0.00%          26                26     0.00%           0                 0         -
garraia-channels/src/commands/mod.rs                         29                21    27.59%           4                 2    50.00%          19                12    36.84%           0                 0         -
garraia-channels/src/commands/registry.rs                   280                55    80.36%          40                15    62.50%         196                46    76.53%           0                 0         -
garraia-channels/src/discord/commands.rs                     84                46    45.24%           9                 5    44.44%          64                38    40.62%           0                 0         -
garraia-channels/src/discord/config.rs                      128                 2    98.44%          13                 1    92.31%          81                 1    98.77%           0                 0         -
garraia-channels/src/discord/convert.rs                     269               117    56.51%          18                 7    61.11%         167                76    54.49%           0                 0         -
garraia-channels/src/discord/handler.rs                     343               296    13.70%          31                27    12.90%         220               190    13.64%           0                 0         -
garraia-channels/src/discord/mod.rs                         291               127    56.36%          47                29    38.30%         193                89    53.89%           0                 0         -
garraia-channels/src/lib.rs                                  27                27     0.00%           2                 2     0.00%          30                30     0.00%           0                 0         -
garraia-channels/src/metrics.rs                             157                 9    94.27%          20                 3    85.00%         110                14    87.27%           0                 0         -
garraia-channels/src/openclaw/client.rs                     158               158     0.00%          13                13     0.00%         110               110     0.00%           0                 0         -
garraia-channels/src/openclaw/config.rs                      11                11     0.00%           3                 3     0.00%          16                16     0.00%           0                 0         -
garraia-channels/src/openclaw/convert.rs                    178                 7    96.07%          13                 0   100.00%          95                 2    97.89%           0                 0         -
garraia-channels/src/protocol.rs                             99                 4    95.96%           8                 1    87.50%          78                 4    94.87%           0                 0         -
garraia-channels/src/registry.rs                             72                69     4.17%          12                11     8.33%          46                41    10.87%           0                 0         -
garraia-channels/src/slack/api.rs                           101               101     0.00%          17                17     0.00%          88                88     0.00%           0                 0         -
garraia-channels/src/slack/fmt.rs                           121                 3    97.52%           7                 0   100.00%          74                 1    98.65%           0                 0         -
garraia-channels/src/slack/mod.rs                           397               358     9.82%          27                22    18.52%         267               241     9.74%           0                 0         -
garraia-channels/src/telegram.rs                            430               285    33.72%          31                20    35.48%         332               181    45.48%           0                 0         -
garraia-channels/src/telegram_fmt.rs                        183                15    91.80%           9                 0   100.00%         103                 5    95.15%           0                 0         -
garraia-channels/src/whatsapp/api.rs                         66                66     0.00%           6                 6     0.00%          59                59     0.00%           0                 0         -
garraia-channels/src/whatsapp/mod.rs                         80                38    52.50%          19                14    26.32%          77                40    48.05%           0                 0         -
garraia-channels/src/whatsapp/webhook.rs                    248               248     0.00%          27                27     0.00%         155               155     0.00%           0                 0         -
garraia-cli/src/banner.rs                                   137               137     0.00%           8                 8     0.00%          70                70     0.00%           0                 0         -
garraia-cli/src/chat.rs                                     578               578     0.00%          18                18     0.00%         356               356     0.00%           0                 0         -
garraia-cli/src/config_cmd.rs                               244               147    39.75%          12                 4    66.67%         185               115    37.84%           0                 0         -
garraia-cli/src/glob_cmd.rs                                 143               143     0.00%           8                 8     0.00%         111               111     0.00%           0                 0         -
garraia-cli/src/main.rs                                     842               715    15.08%          30                22    26.67%         554               468    15.52%           0                 0         -
garraia-cli/src/migrate.rs                                  502               502     0.00%          19                19     0.00%         330               330     0.00%           0                 0         -
garraia-cli/src/migrate_workspace.rs                        781                94    87.96%          65                10    84.62%         531                43    91.90%           0                 0         -
garraia-cli/src/update.rs                                   330               312     5.45%          18                15    16.67%         213               201     5.63%           0                 0         -
garraia-cli/src/wizard.rs                                   152               152     0.00%           1                 1     0.00%         109               109     0.00%           0                 0         -
garraia-common/src/error.rs                                  22                 0   100.00%           1                 0   100.00%          10                 0   100.00%           0                 0         -
garraia-common/src/message.rs                                58                 2    96.55%           4                 0   100.00%          49                 2    95.92%           0                 0         -
garraia-common/src/types.rs                                  47                38    19.15%          13                10    23.08%          44                35    20.45%           0                 0         -
garraia-config/src/auth.rs                                  321                66    79.44%          23                 5    78.26%         225                43    80.89%           0                 0         -
garraia-config/src/check.rs                                 987                91    90.78%          78                 2    97.44%         877               108    87.69%           0                 0         -
garraia-config/src/loader.rs                                330                43    86.97%          22                 5    77.27%         213                29    86.38%           0                 0         -
garraia-config/src/model.rs                                 181                 6    96.69%          36                 2    94.44%         215                 8    96.28%           0                 0         -
garraia-config/src/watcher.rs                               104               104     0.00%          10                10     0.00%          60                60     0.00%           0                 0         -
garraia-db/src/chat_sync.rs                                 261               200    23.37%          37                28    24.32%         189               144    23.81%           0                 0         -
garraia-db/src/memory_store.rs                              898               230    74.39%          86                28    67.44%         610               115    81.15%           0                 0         -
garraia-db/src/project_store.rs                            1418               256    81.95%         106                53    50.00%         817               106    87.03%           0                 0         -
garraia-db/src/session_store.rs                            1341               658    50.93%         124                84    32.26%        1097               442    59.71%           0                 0         -
garraia-db/src/sqlite_db.rs                                 102                 0   100.00%          12                 0   100.00%          50                 0   100.00%           0                 0         -
garraia-db/src/vector_store.rs                              271                44    83.76%          31                12    61.29%         193                23    88.08%           0                 0         -
garraia-gateway/src/a2a.rs                                  179               179     0.00%          12                12     0.00%         171               171     0.00%           0                 0         -
garraia-gateway/src/admin/audit.rs                          120                 2    98.33%           9                 0   100.00%         114                 1    99.12%           0                 0         -
garraia-gateway/src/admin/handlers.rs                      2660              2660     0.00%         177               177     0.00%        2575              2575     0.00%           0                 0         -
garraia-gateway/src/admin/middleware.rs                     223                90    59.64%          18                 7    61.11%         137                58    57.66%           0                 0         -
garraia-gateway/src/admin/rbac.rs                           233                21    90.99%          21                 2    90.48%         202                21    89.60%           0                 0         -
garraia-gateway/src/admin/routes.rs                         224                12    94.64%           5                 4    20.00%         124                11    91.13%           0                 0         -
garraia-gateway/src/admin/shared.rs                          59                34    42.37%           1                 0   100.00%          41                22    46.34%           0                 0         -
garraia-gateway/src/admin/store.rs                         1040               427    58.94%          90                47    47.78%         722               253    64.96%           0                 0         -
garraia-gateway/src/agent_router.rs                          87                13    85.06%           4                 0   100.00%          57                 4    92.98%           0                 0         -
garraia-gateway/src/api.rs                                  473               473     0.00%          38                38     0.00%         556               556     0.00%           0                 0         -
garraia-gateway/src/auth_metrics.rs                          19                19     0.00%           3                 3     0.00%          11                11     0.00%           0                 0         -
garraia-gateway/src/auth_routes.rs                          341               326     4.40%          31                30     3.23%         273               266     2.56%           0                 0         -
garraia-gateway/src/auto_router.rs                          284                89    68.66%          26                 7    73.08%         225                75    66.67%           0                 0         -
garraia-gateway/src/billing.rs                              399                24    93.98%          33                 4    87.88%         243                19    92.18%           0                 0         -
garraia-gateway/src/bootstrap/config.rs                      55                 5    90.91%           6                 1    83.33%          43                 4    90.70%           0                 0         -
garraia-gateway/src/bootstrap/mod.rs                       2519              2238    11.16%         125               113     9.60%        1637              1433    12.46%           0                 0         -
garraia-gateway/src/cluster.rs                              419                23    94.51%          47                 4    91.49%         296                22    92.57%           0                 0         -
garraia-gateway/src/commands.rs                             423               346    18.20%          24                23     4.17%         273               241    11.72%           0                 0         -
garraia-gateway/src/context_summarizer.rs                   139               139     0.00%           5                 5     0.00%          88                88     0.00%           0                 0         -
garraia-gateway/src/externalization.rs                      456                28    93.86%          64                 7    89.06%         272                18    93.38%           0                 0         -
garraia-gateway/src/health.rs                               362               315    12.98%          23                17    26.09%         237               204    13.92%           0                 0         -
garraia-gateway/src/logs_handler.rs                          68                68     0.00%           3                 3     0.00%          51                51     0.00%           0                 0         -
garraia-gateway/src/mcp/mod.rs                              244                48    80.33%          22                 7    68.18%         179                40    77.65%           0                 0         -
garraia-gateway/src/mcp/persistence.rs                      408               105    74.26%          33                11    66.67%         235                71    69.79%           0                 0         -
garraia-gateway/src/mcp/registry.rs                         432                24    94.44%          45                 0   100.00%         232                18    92.24%           0                 0         -
garraia-gateway/src/mcp_commands.rs                         153               123    19.61%          12                 9    25.00%          93                78    16.13%           0                 0         -
garraia-gateway/src/mcp_marketplace.rs                      380               125    67.11%          16                10    37.50%         338               125    63.02%           0                 0         -
garraia-gateway/src/memory_handler.rs                        79                79     0.00%           6                 6     0.00%          92                92     0.00%           0                 0         -
garraia-gateway/src/metrics_auth.rs                         596                 2    99.66%          48                 0   100.00%         293                 1    99.66%           0                 0         -
garraia-gateway/src/metrics_exporter.rs                     104                27    74.04%          10                 3    70.00%          67                21    68.66%           0                 0         -
garraia-gateway/src/mobile_auth.rs                          806               167    79.28%          53                13    75.47%         575               201    65.04%           0                 0         -
garraia-gateway/src/mobile_chat.rs                          188               112    40.43%          17                 8    52.94%         155               110    29.03%           0                 0         -
garraia-gateway/src/oauth.rs                                620               434    30.00%          51                35    31.37%         449               340    24.28%           0                 0         -
garraia-gateway/src/observability.rs                        582               115    80.24%          44                17    61.36%         309                75    75.73%           0                 0         -
garraia-gateway/src/openai_api.rs                           714               607    14.99%          48                40    16.67%         552               489    11.41%           0                 0         -
garraia-gateway/src/openclaw_handler.rs                      53                53     0.00%           9                 9     0.00%          65                65     0.00%           0                 0         -
garraia-gateway/src/parrot_ws.rs                            135               135     0.00%           7                 7     0.00%          90                90     0.00%           0                 0         -
garraia-gateway/src/plugins_handler.rs                      772               256    66.84%          65                23    64.62%         542               251    53.69%           0                 0         -
garraia-gateway/src/projects_handler.rs                     383               181    52.74%          29                13    55.17%         255               127    50.20%           0                 0         -
garraia-gateway/src/rate_limiter.rs                         682               163    76.10%          67                19    71.64%         435               130    70.11%           0                 0         -
garraia-gateway/src/rest_v1/groups.rs                       882               580    34.24%          76                49    35.53%         713               516    27.63%           0                 0         -
garraia-gateway/src/rest_v1/invites.rs                      139               139     0.00%           9                 9     0.00%         116               116     0.00%           0                 0         -
garraia-gateway/src/rest_v1/me.rs                            44                 9    79.55%           5                 3    40.00%          30                 7    76.67%           0                 0         -
garraia-gateway/src/rest_v1/mod.rs                          205               144    29.76%          12                 7    41.67%         132                93    29.55%           0                 0         -
garraia-gateway/src/rest_v1/openapi.rs                       11                11     0.00%           1                 1     0.00%          10                10     0.00%           0                 0         -
garraia-gateway/src/rest_v1/problem.rs                      226                19    91.59%          16                 1    93.75%         117                17    85.47%           0                 0         -
garraia-gateway/src/rest_v1/uploads.rs                      871               419    51.89%          99                56    43.43%         601               335    44.26%           0                 0         -
garraia-gateway/src/router.rs                              1118               755    32.47%          70                62    11.43%         781               569    27.14%           0                 0         -
garraia-gateway/src/runtime_handler.rs                       57                 6    89.47%          10                 1    90.00%          40                 3    92.50%           0                 0         -
garraia-gateway/src/server.rs                               832               521    37.38%          31                10    67.74%         538               344    36.06%           0                 0         -
garraia-gateway/src/session_auth.rs                         100               100     0.00%           8                 8     0.00%          65                65     0.00%           0                 0         -
garraia-gateway/src/skills_handler.rs                       371               371     0.00%          24                24     0.00%         453               453     0.00%           0                 0         -
garraia-gateway/src/skins_handler.rs                        147                31    78.91%          17                 4    76.47%         117                37    68.38%           0                 0         -
garraia-gateway/src/slash_commands.rs                       203               203     0.00%          13                13     0.00%         139               139     0.00%           0                 0         -
garraia-gateway/src/state.rs                                746               356    52.28%          65                30    53.85%         515               263    48.93%           0                 0         -
garraia-gateway/src/totp.rs                                 370               107    71.08%          24                 9    62.50%         247               103    58.30%           0                 0         -
garraia-gateway/src/uploads_worker.rs                       220               194    11.82%          14                10    28.57%         181               155    14.36%           0                 0         -
garraia-gateway/src/uploads_worker_util.rs                   33                 0   100.00%           4                 0   100.00%          19                 0   100.00%           0                 0         -
garraia-gateway/src/voice_handler.rs                         13                13     0.00%           7                 7     0.00%          16                16     0.00%           0                 0         -
garraia-gateway/src/ws.rs                                   633               523    17.38%          39                25    35.90%         374               309    17.38%           0                 0         -
garraia-glob/src/ignore.rs                                  349                10    97.13%          32                 2    93.75%         176                 6    96.59%           0                 0         -
garraia-glob/src/lib.rs                                      39                 0   100.00%           4                 0   100.00%          16                 0   100.00%           0                 0         -
garraia-glob/src/matcher.rs                                  97                66    31.96%          10                 5    50.00%          77                45    41.56%           0                 0         -
garraia-glob/src/path.rs                                    100                37    63.00%          13                 7    46.15%          57                23    59.65%           0                 0         -
garraia-glob/src/pattern.rs                                 798                43    94.61%          44                 4    90.91%         403                27    93.30%           0                 0         -
garraia-glob/src/scanner.rs                                 520                53    89.81%          43                 4    90.70%         312                39    87.50%           0                 0         -
garraia-media/src/image_processor.rs                        528               105    80.11%          39                15    61.54%         287                51    82.23%           0                 0         -
garraia-media/src/pdf.rs                                    406               354    12.81%          41                35    14.63%         250               183    26.80%           0                 0         -
garraia-media/src/processing.rs                             322                52    83.85%          17                 4    76.47%         219                47    78.54%           0                 0         -
garraia-media/src/types.rs                                   62                62     0.00%           4                 4     0.00%          41                41     0.00%           0                 0         -
garraia-plugins/src/loader.rs                               207               207     0.00%          15                15     0.00%         130               130     0.00%           0                 0         -
garraia-plugins/src/manifest.rs                              72                14    80.56%           8                 2    75.00%          70                 7    90.00%           0                 0         -
garraia-plugins/src/runtime.rs                              455               236    48.13%          32                23    28.12%         301               179    40.53%           0                 0         -
garraia-plugins/src/sdk/host_functions.rs                    93                 6    93.55%           7                 2    71.43%          75                 6    92.00%           0                 0         -
garraia-plugins/src/sdk/plugin_trait.rs                      65                 7    89.23%           9                 3    66.67%          47                 5    89.36%           0                 0         -
garraia-runtime/src/executor.rs                             212                63    70.28%          19                 0   100.00%         172                49    71.51%           0                 0         -
garraia-runtime/src/meta_controller.rs                      174                 3    98.28%          15                 1    93.33%         101                 3    97.03%           0                 0         -
garraia-runtime/src/mode.rs                                 616                41    93.34%          36                 3    91.67%         617                27    95.62%           0                 0         -
garraia-runtime/src/state.rs                                 95                 7    92.63%           8                 0   100.00%          56                 4    92.86%           0                 0         -
garraia-security/src/allowlist.rs                           262                35    86.64%          19                 4    78.95%         149                20    86.58%           0                 0         -
garraia-security/src/credentials.rs                         443               161    63.66%          38                21    44.74%         249                99    60.24%           0                 0         -
garraia-security/src/pairing.rs                             107                 0   100.00%          11                 0   100.00%          61                 0   100.00%           0                 0         -
garraia-security/src/redaction.rs                            62                 5    91.94%          10                 1    90.00%          50                 3    94.00%           0                 0         -
garraia-security/src/validation.rs                          244                 7    97.13%          18                 0   100.00%         172                 2    98.84%           0                 0         -
garraia-skills/src/installer.rs                             100               100     0.00%          10                10     0.00%          58                58     0.00%           0                 0         -
garraia-skills/src/parser.rs                                146                 6    95.89%          10                 1    90.00%          84                 4    95.24%           0                 0         -
garraia-skills/src/scanner.rs                               144                 6    95.83%           8                 0   100.00%          79                 1    98.73%           0                 0         -
garraia-storage/src/error.rs                                 12                 0   100.00%           2                 0   100.00%          11                 0   100.00%           0                 0         -
garraia-storage/src/hash_util.rs                             10                 0   100.00%           1                 0   100.00%           5                 0   100.00%           0                 0         -
garraia-storage/src/integrity.rs                            201                 1    99.50%          14                 0   100.00%          83                 1    98.80%           0                 0         -
garraia-storage/src/local_fs.rs                             644                25    96.12%          55                 1    98.18%         409                16    96.09%           0                 0         -
garraia-storage/src/mime_allowlist.rs                       105                 0   100.00%          15                 0   100.00%          75                 0   100.00%           0                 0         -
garraia-storage/src/object_store.rs                         209                29    86.12%          18                 2    88.89%         145                18    87.59%           0                 0         -
garraia-storage/src/path_sanitize.rs                        186                 5    97.31%          15                 0   100.00%         119                 1    99.16%           0                 0         -
garraia-telemetry/src/config.rs                             213                12    94.37%          14                 1    92.86%         168                 4    97.62%           0                 0         -
garraia-telemetry/src/layers.rs                              15                 0   100.00%           3                 0   100.00%           9                 0   100.00%           0                 0         -
garraia-telemetry/src/lib.rs                                 36                14    61.11%           3                 1    66.67%          34                12    64.71%           0                 0         -
garraia-telemetry/src/metrics.rs                            146                32    78.08%          16                 5    68.75%          93                18    80.65%           0                 0         -
garraia-telemetry/src/redact.rs                              92                 0   100.00%           8                 0   100.00%          69                 0   100.00%           0                 0         -
garraia-telemetry/src/tracer.rs                              56                40    28.57%           4                 2    50.00%          32                23    28.12%           0                 0         -
garraia-tools/src/lib.rs                                    177               143    19.21%          29                22    24.14%         129               107    17.05%           0                 0         -
garraia-voice/src/audio/converter.rs                         72                72     0.00%           6                 6     0.00%          78                78     0.00%           0                 0         -
garraia-voice/src/lib.rs                                     10                10     0.00%           5                 5     0.00%           8                 8     0.00%           0                 0         -
garraia-voice/src/pipeline.rs                               113               113     0.00%           3                 3     0.00%          73                73     0.00%           0                 0         -
garraia-voice/src/stt/whisper_client.rs                     182               182     0.00%          18                18     0.00%         122               122     0.00%           0                 0         -
garraia-voice/src/tts/chatterbox_client.rs                  202               202     0.00%          17                17     0.00%         131               131     0.00%           0                 0         -
garraia-voice/src/tts/hibiki_client.rs                       54                54     0.00%           6                 6     0.00%          41                41     0.00%           0                 0         -
garraia-voice/src/tts/lmstudio_client.rs                    190               190     0.00%          20                20     0.00%         142               142     0.00%           0                 0         -
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                                                     60088             30033    50.02%        5002              2623    47.56%       43075             22749    47.19%           0                 0         -

michelbr84 added a commit that referenced this pull request May 1, 2026
The original §1.5 line said "~90 → 71" inheriting that number from the
GAR-486 umbrella description (where it was a projection of the
paths-ignore effect). Empirical measurement via `gh api .../code-scanning
/alerts?state=open --paginate | length` at session start (2026-05-01,
Phase 0) returned 90, not 71 — paths-ignore changes the scanning surface
but does NOT reduce the open count of pre-existing alerts.

The post-GAR-491 measurement is 84 (90 − 6 dismissals from PR #109).
This commit replaces the inherited projection with the verified numbers
and explains the discrepancy honestly so the umbrella's "~90 → 71" is
no longer mismatched against the ROADMAP without context.

Linear: GAR-486 — same source as the discrepancy; consider amending the
umbrella description or marking the projected "71" as not-materialized
in a follow-up comment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@michelbr84 michelbr84 changed the title security(codeql): GAR-491 — Wave 2 suppressions ledger + reapply script (empirical proof in flight) security(codeql): GAR-491 — Wave 2 suppressions ledger + reapply script (empirical proof PASSED) May 1, 2026
michelbr84 added a commit that referenced this pull request May 1, 2026
…ress (#110)

* docs(roadmap): refresh 2026-05-01 — Green Security Baseline + Q6 progress

Adds §1.5 capturing what changed since 2026-04-13 without rewriting the
baseline §1. Updates §7 "Próximos passos imediatos" to reflect the post-
sprint priority order.

§1.5 covers:
  * Sprint umbrella GAR-486 (PRs #104..#108) with per-PR commit hashes.
  * Metric deltas: secret-scanning 1→0, Dependabot 20→7, CodeQL ~90→71
    (paths-ignore-driven, not triage), default-setup not-configured,
    continue-on-error reductions per Lote 2/4.
  * GAR-491 (Wave 2) in flight via PR #109 with the REST-dismissal +
    versioned-ledger mechanism — links to the new ledger artifacts.
  * GAR-490 (Wave 1) Backlog with the `validate_skill_name` +
    `sanitise_key` (single-segment) + `set_config` plan-of-attack noted
    so future sessions can pick up without context loss.
  * Q6 mutation-testing progress: GAR-436 baseline 85.04% → 90.78%
    killed (PR #94), GAR-463 Q6.1 ✅, GAR-468 Q6.6 ✅, GAR-469 Q6.7 ✅,
    GAR-481 Q6.8 (Node 24 migration) ✅.
  * CI Lote 2 (GAR-438) + Lote 4 (GAR-443 data-testid convention) as
    durable infrastructure improvements.

§7 prioritization now leads with closing GAR-491 → GAR-490 → GAR-486
before the Phase 3.4 OpenAPI work resumes; older bullets re-numbered.

Linear: GAR-486 (umbrella) — refresh, no status change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(roadmap): correct CodeQL count to empirical 90→84

The original §1.5 line said "~90 → 71" inheriting that number from the
GAR-486 umbrella description (where it was a projection of the
paths-ignore effect). Empirical measurement via `gh api .../code-scanning
/alerts?state=open --paginate | length` at session start (2026-05-01,
Phase 0) returned 90, not 71 — paths-ignore changes the scanning surface
but does NOT reduce the open count of pre-existing alerts.

The post-GAR-491 measurement is 84 (90 − 6 dismissals from PR #109).
This commit replaces the inherited projection with the verified numbers
and explains the discrepancy honestly so the umbrella's "~90 → 71" is
no longer mismatched against the ROADMAP without context.

Linear: GAR-486 — same source as the discrepancy; consider amending the
umbrella description or marking the projected "71" as not-materialized
in a follow-up comment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@michelbr84 michelbr84 merged commit 7185202 into main May 1, 2026
17 checks passed
@michelbr84 michelbr84 deleted the security/gar-491-codeql-suppressions-2026-05-01 branch May 1, 2026 17:50
michelbr84 added a commit that referenced this pull request May 4, 2026
- §1.2.1: cross-link 9 GarraMaxPower sub-issues (GAR-493..501) to the
  GAR-492 epic. Heading switched from "sugeridas" to "filhas" since the
  issues already exist in Linear.
- §1.5: promote umbrella GAR-486 to Done after GAR-490 (PR #112,
  2026-05-04) and GAR-491 (PR #109, 2026-05-01) merged.
- §1.5: add 3 short pointers to newly filed follow-ups — GAR-503
  (CARGO_BIN_EXE_garraia removal), GAR-504 (benchmark evidence run on
  DO droplet), GAR-505 (Q6.10 mutation triage of 2026-05-04 run).

Detailed scope lives in the Linear issues. ROADMAP keeps short
pointers only.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant