Repository navigation
feat(security): Dependencies tab, ranked by what runs in production - #2045
Merged
Merged
Maple Review Bot / Maple / review
succeeded
Nov 1, 2026 in 18s
Confidence 8/10 · No issues found
🟢 Confidence 8/10 · likely safe to merge. Held at 8 because 2 fixes have not been re-checked against the whole diff yet.
no findings · tests covered · risk medium · 2 fixes not yet re-checked against the whole diff
The last two fixes land: the sheet dates "Last seen" by the commit, not the triage-rewritten updatedAt, and the reason field checks the reason trimmed as triage sends it. Both are pinned by scene tests. The McpQueryError issues are unrelated to this change and untouched: registry.ts only registers the new page.
findingSheetreads "Last seen" fromlastSeenSha, neverupdatedAtreasonFieldvalidatesmodel.reason.value.trim()liketriagewrites it- Scene tests pin both: triaged
updatedAtis absent, a 501-char reason is written trimmed
Fixed since the last review
- ✅
F15 ·Last seenin the sheet showsupdatedAt, which triage rewrites - ✅
F16 ·reasonFielderrors on a reason thattriagetrims and writes
Production impact
Open errors in the changed files (2)
| Issue | Service | Occurrences | File |
|---|---|---|---|
| @maple/mcp/errors/McpQueryError (6 issues) | maple-chat | 1.3k | apps/web/src/page/registry.ts |
| @maple/mcp/errors/McpQueryError (4 issues) | maple-ai | 349 | apps/web/src/page/registry.ts |
After this merges, Maple checks whether they stop.
Telemetry this change adds and removes (3)
- ➕ span name
DependencyScanService.queueProductionScans·packages/backend/src/services/dependency-scan/DependencyScanService.ts:274 - ➕ span name
DependencyScanService.readProduction·packages/backend/src/services/dependency-scan/DependencyScanService.ts:320 - ➕ span name
GithubAppClient.getBlobText·packages/backend/src/services/integrations/vcs/vendor/github/GithubAppClient.ts:2186
What was checked
DependencyFindingcarrieslastSeenShaandfirstSeenSha(packages/domain/src/dependency-scan.ts:97), so the row reads a scan's own commitreasonErrorOftrims for the empty check and caps the untrimmed length (derive.ts:150), matchingtriage's trimmed send (update.ts:135)commitis a module-level const used only at render time (view-sheet.ts:104), so declaring it afterdetailscannot throw
d38dbf9 · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.
Loading