-
Notifications
You must be signed in to change notification settings - Fork 610
fix(api): eager archive errors, capped count-only listing, rollup tests #5411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
mmabrouk
merged 10 commits into
fe-refactor/drive-surfaces
from
pr-5400-fixes-correctness
Jul 20, 2026
Merged
Changes from 3 commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
5320d51
fix(api): resolve archive mounts eagerly so bad requests 404 instead …
mmabrouk 6616af9
fix(api): cap the plain count-only mount listing at _COUNT_CAP
mmabrouk d7d029c
test(api): pin _rollup_recent_entries batch-collapse behavior
mmabrouk 78fc327
fix(api): relax mount path validation and harden archive inputs
mmabrouk daf3f6a
fix(api): rename download-all route to POST /files/export
mmabrouk a9d9d49
fix(api): constrain mount file-listing depth and order params
mmabrouk ce29aa0
refactor(api): name the archive-source tuple
mmabrouk 086c0bc
docs(api): document total's per-view meaning and soften archive scope
mmabrouk 0feba68
test(api): update path-validation test for the relaxed denylist
mmabrouk 9b4d220
Merge pull request #5412 from Agenta-AI/pr-5400-fixes-contract
mmabrouk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift
Return a named DTO instead of raw tuples for the archive work list.
build_archive_work_listreturnsList[Tuple[str, str, int, Optional[int]]]anditer_archive_members(Lines 1297-1305) consumes/yields the same positional-tuple shape. Define a named DTO (e.g.ArchiveWorkItemwithzip_path,storage_key,size,mtime) inapi/oss/src/core/mounts/dtos.pyand use it here; downstream unpacking inapi/oss/src/apis/fastapi/mounts/utils.pyandtest_zip_paths_include_mount_prefixwould switch to attribute access.As per coding guidelines: "Do not return raw dicts or tuples from service methods or clients; define named DTOs in
core/{domain}/dtos.pyinstead."Source: Coding guidelines