Repository navigation
Stop stalled uploads and refuse sync or network workspace folders - #18
Merged
Merged
Conversation
Stalled file uploads - A file upload had no progress deadline and no cancel button. stageFile now uses XMLHttpRequest with upload progress: if no bytes are sent for 2 minutes, the upload stops with a Korean and English message that no source was connected. A cancel button is shown while files are sent and while the server processes them; once all bytes are sent there is no automatic deadline. - Uploading several files now stages every file first and only then connects them, so a cancel or stall connects nothing. Progress shows the sent percentage, then a processing message. Staged but unconnected files are not registered as sources. Server RPCs are unchanged. Workspace location policy - The workspace location is classified before the workspace lock and the database open. Known sync roots (cloud sync status, OneDrive and registry-registered sync roots), network shares and drives, and Windows-to-WSL bridges are refused. Locations that cannot be confirmed (including macOS for now) need a one-time confirmation that is bound to the folder identity and reasons and keeps a short warning visible. Removable drives confirmed not to be under a sync root are allowed with a warning; fixed local drives with no sync or network signal are allowed. - The CLI exits with 4 (refused) or 5 (needs confirmation) and asks only on an interactive terminal; serve and desktop check before taking the lock; HTTP returns 503 with the same text; hosted review mode is unchanged. A new accept-location command confirms or forgets a location, and 'thoth workspace' shows the assessment. Workspace IDs are unchanged. - This is a support policy, not a safety guarantee; README, INSTALL, KNOWN_LIMITATIONS and the RPC catalog say so. Test reliability - The workspace runtime lock test's helper now publishes its PID marker atomically, so the test cannot read an empty marker under load. Verification: full suite on the pre-fix tree - 5586 Python tests, 4 failures. Two were the CLI help contract missing the new command, fixed here. Two were timing issues under load: a browser close check that passes when run alone, and the runtime lock marker race fixed here. After the fix the affected CLI, lock and location tests pass; web tests, lint, typecheck, build, ruff, architecture and module budget checks, and the README quick-start smoke test passed in the full run.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Stalled file uploads
XMLHttpRequest with upload progress: if no bytes are sent for 2 minutes, the upload stops
with a Korean and English message that no source was connected. A cancel button is shown
while files are sent and while the server processes them; once all bytes are sent there
is no automatic deadline.
cancel or stall connects nothing. Progress shows the sent percentage, then a processing
message. Staged but unconnected files are not registered as sources. Server RPCs are
unchanged.
Workspace location policy
Known sync roots (cloud sync status, OneDrive and registry-registered sync roots),
network shares and drives, and Windows-to-WSL bridges are refused. Locations that cannot
be confirmed (including macOS for now) need a one-time confirmation that is bound to the
folder identity and reasons and keeps a short warning visible. Removable drives confirmed
not to be under a sync root are allowed with a warning; fixed local drives with no sync or
network signal are allowed.
terminal; serve and desktop check before taking the lock; HTTP returns 503 with the same
text; hosted review mode is unchanged. A new accept-location command confirms or forgets
a location, and 'thoth workspace' shows the assessment. Workspace IDs are unchanged.
the RPC catalog say so.
Test reliability
test cannot read an empty marker under load.
Verification: full suite on the pre-fix tree - 5586 Python tests, 4 failures. Two were the
CLI help contract missing the new command, fixed here. Two were timing issues under load:
a browser close check that passes when run alone, and the runtime lock marker race fixed
here. After the fix the affected CLI, lock and location tests pass; web tests, lint,
typecheck, build, ruff, architecture and module budget checks, and the README quick-start
smoke test passed in the full run.