Skip to content

feat: pass filename to the blob download endpoint - #60

Merged
Wenzel merged 2 commits into
masterfrom
feat/winbindex-filename-param
Sep 9, 2026
Merged

Wenzel merged 2 commits into
masterfrom
feat/winbindex-filename-param

Conversation

@Wenzel

@Wenzel Wenzel commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

What

downloadBlob now sends the file's real basename to the blob endpoint as ?filename=, which the API uses to resolve Windows PE files (.exe/.dll/.sys) from Winbindex / the Microsoft symbol server instead of MinIO. See OSWatcher/graphql-api#72.

Change

downloadBlob(hash, filename, saveAs = filename) — filename goes on the wire (?filename=), saveAs drives the browser's save-as name (a.download, which already overrode Content-Disposition). The two FilesystemInspector.vue call sites:

  • the plain download passes row.name for both (unchanged behaviour);
  • the commit-scoped download passes row.name as the wire name and the decorated getDownloadFilename(...) string as saveAs — previously it sent the decorated name, which never matched Winbindex and needlessly thrashed the API's negative cache.

No user-visible change: the saved filename is identical either way.

Tests

Full suite: 121 passing. Build clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NmATMvFbdupfLRq7Ldwabv

Wenzel and others added 2 commits September 9, 2026 03:54
Add ?filename= query parameter to blob download requests to enable
Winbindex fast path for Windows PE file lookups.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmATMvFbdupfLRq7Ldwabv
downloadBlob gained a third `saveAs` param (defaults to `filename`). The
decorated call site in FilesystemInspector now passes the plain `row.name` as
`?filename=` (so it can match Winbindex) and the
`getDownloadFilename(...)` decoration only as the save-as name. Previously the
decorated name like `kernel32_Windows-10-2004_abc12345.dll` was sent to the
server, never matched Winbindex, and thrashed its negative cache. `a.download`
still overrides Content-Disposition so the user-visible filename is unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmATMvFbdupfLRq7Ldwabv

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes are small, internally consistent (all call sites still type-check), and align with the stated backend integration behavior without altering the user-visible downloaded filename.

Pull request overview

This PR updates the frontend blob-download utility to include the file’s real basename as a ?filename= query parameter when calling the backend /blob/:hash endpoint, enabling the API to resolve Windows PE files via Winbindex/Microsoft symbol server (per OSWatcher/graphql-api#72) while preserving the user-visible downloaded filename.

Changes:

  • Extended downloadBlob to accept (hash, filename, saveAs = filename), sending filename on the wire and using saveAs for the browser download name.
  • Updated the comparison-mode download path in FilesystemInspector.vue to send the undecorated filename to the API while keeping the decorated name for the saved file.
File summaries
File Description
src/utils/filesystem.ts Adds filename query param support and separates wire filename from the browser “save as” filename.
src/components/FilesystemInspector.vue Updates the comparison-mode download call to pass real basename to the server and keep decorated save name client-side.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@Wenzel
Wenzel merged commit 2ade9a6 into master Sep 9, 2026
5 of 6 checks passed
@Wenzel
Wenzel deleted the feat/winbindex-filename-param branch September 9, 2026 11:53
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.

2 participants