8000 fix(artifacts): encode filenames in artifact request URLs by Aaravkhanal · Pull Request #560 · google/adk-web · GitHub
[go: up one dir, main page]

Skip to content

fix(artifacts): encode filenames in artifact request URLs - #560

Merged
copybara-service[bot] merged 2 commits into
google:mainfrom
Aaravkhanal:codex/encode-artifact-filenames
Nov 6, 2026
Merged

copybara-service[bot] merged 2 commits into
google:mainfrom
Aaravkhanal:codex/encode-artifact-filenames

Conversation

@Aaravkhanal
@Aaravkhanal Aaravkhanal commented Nov 4, 2026 •
Copy link
Copy Markdown
Contributor

Problem

ArtifactService interpolates artifact filenames directly into request URLs. For example, report#1.json becomes a URL fragment, and report?draft.json becomes a query string, so the backend receives a different filename. Literal percent signs can also be interpreted as URL escapes.

Change

Encode the artifact filename as a URL path component in both latest-artifact and version-specific requests. Add twelve regression cases with literal expected URLs covering #, ?, %, literal percent escapes, user-scoped paths, and Unicode/spaces across both endpoints; existing ordinary-filename tests remain in place.

Validation

  • Before the fix: 6 regression tests fail, 5 existing tests pass.
  • After the fix: all 17 ArtifactService tests pass in ChromeHeadless, including six additional compatibility cases.
  • git diff --check passes.
  • Production build passes (npm run build); dependency optimization/bundle-size warnings remain. An earlier attempt hit local disk exhaustion; the retry completed successfully.
  • Reviewed current Python backend routes: both use {artifact_name:path} and pass the decoded filename to the artifact service. This is source inspection, not a live backend end-to-end test.

Searched existing issues and open/closed PRs for artifact filename encoding and found no matching fix. This is separate from the UTF-8 artifact-preview fixes.

@copybara-service
copybara-service Bot merged commit beb53ec into google:main Nov 6, 2026
6 checks passed
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

0