Conversation
…dError Offline mode now activates when no daemon is running and no API key is set — calls succeed with an audit log entry instead of raising DaemonNotFoundError. Update the e2e test to assert the new behavior. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Resolve README.md merge conflict - NODE9_SKIP=1 now emits a warning and writes an audit entry (no silent bypass) - configure() is now thread-safe via threading.Lock - DLP scan covers all string args, not just params named filename/content - _dispatch() renamed to dispatch() — public API should not have underscore (_dispatch kept as deprecated alias with DeprecationWarning) - workspace validated at __init__ time with clear error if path doesn't exist - @internal docstring clarifies it logs to stdout, not to audit trail - README: shell=True examples now include sanitization warning - README: _dispatch references updated to dispatch()
- DLP now checks every string arg as a path candidate, not just params named filename/path — fixes silent bypass on dest/target/output params - tool() annotation uses Union[str, Callable] instead of str | Callable — fixes TypeError on Python 3.9 - Docstring examples: shell=False + shlex.split(), write_code uses safe_path - dispatch referenced consistently (not _dispatch) in all docstrings - Node9Agent.new_session() added for server deployments with multiple users - __all__ documents build_tools_anthropic/openai/dispatch/new_session
…ning, 13 new tests - safe_path(filename, *, workspace=...) — workspace is now keyword-only to prevent silent positional arg swaps; all call sites updated - NODE9_SKIP=1 now warns at import time (not just per-call) so it's harder to accidentally leave enabled in production - new_session() docstring explicitly documents the one-instance-per-request requirement - 13 new tests: dispatch() unknown tool (returns string, never raises), new_session() UUID validity and concurrent calls, _build_tools() unannotated/int/bool/float params and *args/**kwargs exclusion, safe_path symlink traversal rejection, configure() called twice (second wins) and empty args don't overwrite Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nv var tests - Path safety now checks ALL path-like args in @tool methods, not just the first; a method with src+dest params now validates both (removed the break) - dispatch() docstring clarifies the lookup is strictly registry-based (@tool marker) - README run_shell example gets explicit warning that shlex.split still allows arbitrary executables — callers must allowlist commands in production - NODE9_SKIP env var table entry strengthened: "Never set in production" - Git hooks now use the active virtualenv Python instead of hardcoded python3 - New tests: traversal in second path arg is caught, configure() wins over env var, env var sets baseline before configure() is called Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Auto-generated PR
Merge latest
devchanges intomainto trigger a release.