fix: graceful fallback for symlink creation failures #2582
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.
Description
Fixes issues #6 and #1785 where ADK commands crash on Windows due to symlink creation requiring admin privileges.
Problem
On Windows, running ADK commands (like
adk run
) fails withOSError: [WinError 1314] A required privilege is not held by the client: ...
because the logging system attempts to create a symlink for the latest log file. Windows requires administrator privileges for symlink creation by default (unless Developer Mode is enabled), causing crashes for non-admin users.Root Cause
The issue was in
logs.py
whereos.symlink()
was called unconditionally without error handling, causing the entire CLI to crash when symlink creation failed.Solution
This PR implements graceful symlink handling. Changes made:
This solution follows a similar pattern to the one used in ROS2 in its logging module.
Testing
Before (broken)
After (fixed)