Skip to content

A collection of updates about Jules - #297

Open
qapdex-maker wants to merge 174 commits into
google-labs-code:mainfrom
qapdex-maker:main
Open

A collection of updates about Jules #297
qapdex-maker wants to merge 174 commits into
google-labs-code:mainfrom
qapdex-maker:main

Conversation

@qapdex-maker

Copy link
Copy Markdown

A (now) large collection of updates. Details can be found in the individual commits.

Maintainers please get in touch, thank you!

google-labs-jules Bot and others added 30 commits July 9, 2026 03:45
- Update resolveUrl to prevent path traversal
- Add unit test for path traversal protection
- Update sentinel journal
…945991774040796299

🛡️ Sentinel: [CRITICAL] Fix path traversal vulnerability in ApiClient
Optimize the performance of activity select queries in Jules Query Language (JQL).
This includes:
1. Pushing activity filters, limits, and after-cursors down to the storage driver's `select(...)` call instead of using empty `{}` to prevent loading, parsing, and hydrating entire activity files when only a subset is required.
2. Hoisting `activityWhere` object-recreation and filter operations out of the nested iteration loop to avoid GC and CPU overhead.
Added clear and helpful parameter descriptions to the `list_sessions` and `send_reply_to_session` MCP tool inputs, ensuring greater accessibility and clarity for clients and LLMs utilizing these interfaces.
Ensure remoteName parameter in getGitRepoInfo only contains alphanumeric, dot, hyphen, underscore, or forward slash characters. Added unit tests to verify security validation.
…264a50

⚡ Bolt: Optimize JQL activity select query performance
…45b1a3

🎨 Palette: Improve micro-UX in MCP tool schemas
…a7b66c

🛡️ Sentinel: Prevent command injection in getGitRepoInfo
This patch implements critical performance enhancements in the query, projection, and computed fields engine:
1. Memoizes parsed select expressions using a Map in projection.ts to avoid repeated regexes and splits on hot-paths.
2. Optimizes deepClone by checking for primitives before making recursive function calls and using direct indexing instead of map().
3. Short-circuits injectActivityComputedFields and injectSessionComputedFields if computed fields are already present or not requested.
4. Fast-tracks applyProjection to return a shallow copy when select projection is empty or wildcard, bypassing deep projection recursion.
…age-resolution

1. Update validateFilePath to check for and reject absolute paths starting with '/' or Windows-style drive letters.
2. Integrate validateFilePath check for fromFile parameter in stageResolutionHandler to prevent unauthorized local file read.
3. Add robust unit tests and update Sentinel journal.
…170856955924831

⚡ Bolt: optimize select query projection and cloning performance
…3478d

🛡️ Sentinel: [HIGH] Fix path traversal and local file inclusion in stage-resolution
Reduce per-document compilation overhead from O(N) to O(1) inside projectDocument by introducing a ProjectionPlan cache keyed on the joined select expressions.
…5ec2b2

⚡ Bolt: Compile Projection Engine select expressions
…83a676

🛡️ Sentinel: [HIGH] Fix path traversal and directory traversal via untrusted Session ID
- Boost hydration pMap concurrency from 10 to 25 to maximize parallel throughput.
- Implement mtime-based in-memory caching for `sessions.jsonl` scanIndex to turn repeated disk reading and JSON parsing into O(1).
…5948909712675

⚡ Bolt: Optimize session hydration and scan index latency
Wrap printed Jules session URLs and PR URLs in ansiLink to make them clickable in supported terminal emulators. Older or non-supporting terminal emulators gracefully fall back to displaying the raw plain text URL.
…17349169930066136890

🎨 Palette: Enhance CLI terminal UX with interactive hyperlinks
Ensure repository names are strictly verified using a new `validateRepository` helper. It checks the 'owner/repo' format, rejects control characters, path traversals, and ensures compliance with standard GitHub naming conventions. Integrated the check across all merge reconciliation handlers and added comprehensive unit tests.
Adds a friendly log message containing an interactive terminal hyperlink (OSC 8) to help users request/retrieve a Jules API Key if they choose not to enter one during the interactive initialization wizard. Also adds a unit test verifying the `ansiLink` helper functionality.
…1526028511518957

🛡️ Sentinel: Fix repository validation and prevent directory traversal
…d5e8c6

⚡ Bolt: Optimize top-level query document projections
…95ba085

🎨 Palette: Improve JULES_API_KEY prompt UX in interactive init wizard
- Precompute and store numeric timestamps inside _sortKey during the hydration phase to turn O(N log N) sorting comparisons into O(1) numeric subtractions, bypassing thousands of costly new Date() parsing and allocation overhead.
- Use a lightweight for...in loop inside matchWhere to avoid object/array entries allocation on every matched document.
- Extract where.search.toLowerCase() outside the index scan loop to prevent redundant string casing conversions.
- Record the critical learnings in .jules/bolt.md.
…ion-urls-7286908169361541994

🎨 Palette: Clickable TUI session URLs for merge actions
…-5438528962610959020

⚡ Bolt: optimize query selection filtering and sorting
qapdex-maker and others added 30 commits August 13, 2026 11:18
…n-18215915035490122013

⚡ Bolt: Optimized activity ingestion via metadata cache & batch append
…57360979469249068

🎨 Palette: Highlight goal paths and milestones in analysis logs
…ion-4593649317477201611

⚡ Bolt: Batched Activity Ingestion & Metadata Caching
…tion boundary

This commit implements query validation directly at the Model Context Protocol (MCP) select function boundary inside `@google/jules-mcp` using `@google/jules-sdk`'s validateQuery.

This acts as a defense-in-depth security measure, protecting the system against unvalidated structured query domains or malformed query payloads before down-the-stack processing.

It also introduces select.test.ts to verify correct behavior and robust rejection of invalid schemas, missing domains, or negative parameters.
…a08f57

🛡️ Sentinel: [MEDIUM] Query Validation at MCP select Boundary
…2ddb32

🎨 Palette: Add descriptive option hints and refactor auth select prompt in Fleet setup wizard
… member

- Remove redundant duplicate appending block in DefaultActivityClient's hydrate() method which used the undefined variable toAppend.
- Remove duplicate declaration of metadataCache in NodeFileStorage which was causing TypeScript TS2300 compiler errors.
…ined-references-11800520743686239066

⚡ Bolt: Fix duplicate block and double-declaration compiler/runtime errors
Wrap all session ID output references in backticks and pass them through `ansiHighlight` in dispatch, analyze, and merge renderers to make dynamic resources stand out visually and reduce cognitive load during orchestration scans. Update render unit tests to verify the formatting change.
…id-highlighting-2026-08-12-4997740811222988890

🎨 Palette: Highlight and Standardize CLI Session ID Outputs
…ter allocations

- Cache parsed unidiff result on ChangeSetArtifact instance (`_cachedParsed`) for O(1) repeated calls
- Replace 3 sequential `.filter()` array allocations with a single pass loop for change type counts
…hlight

Format dynamic repository creation outputs (`init:repo:creating`, `init:repo:created`, and `init:repo:exists`) in `renderInitEvent` with backticks and `ansiHighlight`. This provides visual consistency and distinction across CLI setup logs.
…fact-parsed-18068411968405693938

⚡ Bolt: memoize ChangeSetArtifact.parsed and optimize summary categorization
…ck-highlight-6821157618641556468

🎨 Palette: Format repository creation logs with backticks and ansiHighlight
Validate each parent branch/commit/PR reference string in stageResolutionHandler using validateBranchName to prevent git reference escape, control character injection, or format bypass attempts during reconciliation staging.
…ation-staging-13946315384145395193

🛡️ Sentinel: Validate parent branch references on reconciliation staging
Format session IDs in dispatch:issue:dispatched event logs with
backticks and ansiHighlight for terminal visual consistency across CLI
subcommands.
…t-13166427589660203928

⚡ Bolt: optimize determineCacheTier by avoiding array allocation and deferring state check
…ession-id-12019510930852939272

🎨 Palette: Highlight session ID in dispatch event logs
Format target repository owner/repo slugs and session IDs in `renderMergeEvent` using backticks and `ansiHighlight`. This improves terminal UI consistency and scanability across all `@google/jules-fleet` subcommands.
…Diff

Ensures defense-in-depth security by verifying input path validation on showDiff options and adding comprehensive unit test coverage for file path traversal, absolute path escape, control character injection, and activity ID validation.
…t-validation-14539975073120265219

🛡️ Sentinel: Fix missing input validation on Fleet Dispatch Handler
…identifiers-15644164294162326349

🎨 Palette: Format repository slug and session IDs in merge event UI
…alidation-14207117111743997144

🛡️ Sentinel: Integrate defense-in-depth query validation in core SDK select
…f6198d

🛡️ Sentinel: Input Path and Activity ID Validation in MCP showDiff
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