mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-08-09 00:16:57 -07:00
Merge branch 'main' into thought_filter_refinement
This commit is contained in:
@@ -18,6 +18,26 @@ on GitHub.
|
||||
| [Preview](preview.md) | Experimental features ready for early feedback. |
|
||||
| [Stable](latest.md) | Stable, recommended for general use. |
|
||||
|
||||
## Announcements: v0.52.0 - 2026-07-22
|
||||
|
||||
- **Caretaker Triage & Egress Services:** Implemented the core triage worker
|
||||
foundational modules, main worker execution loops, and egress action
|
||||
publishers alongside the octokit GitHub Action handler for egress services
|
||||
([#28163](https://github.com/google-gemini/gemini-cli/pull/28163),
|
||||
[#28306](https://github.com/google-gemini/gemini-cli/pull/28306) by @chadd28).
|
||||
- **Core Tool Enhancements:** Bypassed LLM correction for JSON and IPYNB files
|
||||
in `write_file` and `replace` tools, and simplified plan mode write policy to
|
||||
support relative paths
|
||||
([#28223](https://github.com/google-gemini/gemini-cli/pull/28223) by
|
||||
@amelidev, [#28398](https://github.com/google-gemini/gemini-cli/pull/28398) by
|
||||
@DavidAPierce).
|
||||
- **Auth & Privacy Improvements:** Displayed clear error messages when user
|
||||
account has no Code Assist tier, and bumped `google-auth-library` to version
|
||||
10.9.0 ([#28304](https://github.com/google-gemini/gemini-cli/pull/28304) by
|
||||
@ompatel-aiml,
|
||||
[#28385](https://github.com/google-gemini/gemini-cli/pull/28385) by
|
||||
@jerrylin3321).
|
||||
|
||||
## Announcements: v0.50.0 - 2026-07-08
|
||||
|
||||
- **Tool Registry Discovery:** Introduced tool registry discovery capabilities
|
||||
|
||||
+53
-18
@@ -1,6 +1,6 @@
|
||||
# Latest stable release: v0.50.0
|
||||
# Latest stable release: v0.52.0
|
||||
|
||||
Released: July 08, 2026
|
||||
Released: July 22, 2026
|
||||
|
||||
For most users, our latest stable release is the recommended release. Install
|
||||
the latest stable version with:
|
||||
@@ -11,24 +11,59 @@ npm install -g @google/gemini-cli
|
||||
|
||||
## Highlights
|
||||
|
||||
- **Tool Registry Discovery:** Introduced tool registry discovery capabilities,
|
||||
enabling automatic detection and registration of tools to improve
|
||||
extensibility.
|
||||
- **Release Verification Improvements:** Enhanced release verification by
|
||||
ignoring scripts during `npm ci` and preventing workspace binary shadowing.
|
||||
- **CI Pipeline Safeguards:** Strengthened the CI pipeline to prevent bad NPM
|
||||
releases and ensure promote job failures are correctly surfaced.
|
||||
- **Caretaker Services:** Introduced a new caretaker triage worker including
|
||||
core foundational modules, main worker execution loops, egress action
|
||||
publishers, and octokit GitHub Action handlers.
|
||||
- **Robust File Editing:** Core tools like `write_file` and `replace` now bypass
|
||||
LLM corrections for JSON and IPYNB files to ensure accurate and direct file
|
||||
modifications.
|
||||
- **Plan Mode Improvements:** Simplified plan mode write policies to natively
|
||||
support writing to relative paths, enhancing project directory navigation.
|
||||
- **Enhanced Account Visibility:** Improved clear user-facing messages when the
|
||||
user account does not have a Code Assist tier, and enriched shared project
|
||||
quota limit errors with setup instructions.
|
||||
|
||||
## What's Changed
|
||||
|
||||
- fix/verify release npm ci ignore scripts by @rmedranollamas in
|
||||
[#28116](https://github.com/google-gemini/gemini-cli/pull/28116)
|
||||
- fix(ci): prevent workspace binary shadowing in release verification by
|
||||
@galdawave in [#28132](https://github.com/google-gemini/gemini-cli/pull/28132)
|
||||
- Feat/tool registry discovery by @ved015 in
|
||||
[#28113](https://github.com/google-gemini/gemini-cli/pull/28113)
|
||||
- fix(ci): prevent bad NPM releases and promote job crashes by @galdawave in
|
||||
[#28147](https://github.com/google-gemini/gemini-cli/pull/28147)
|
||||
- Refactor: exclude transient CI configuration files from workspace context by
|
||||
@DavidAPierce in
|
||||
[#28216](https://github.com/google-gemini/gemini-cli/pull/28216)
|
||||
- feat(caretaker-triage): add triage worker core foundational modules by
|
||||
@chadd28 in [#28163](https://github.com/google-gemini/gemini-cli/pull/28163)
|
||||
- feat(caretaker-egress): implement octokit github action handler for egress
|
||||
service by @chadd28 in
|
||||
[#28303](https://github.com/google-gemini/gemini-cli/pull/28303)
|
||||
- chore(release): bump version to 0.52.0-nightly.20260707.g27a3da3e8 by
|
||||
@gemini-cli-robot in
|
||||
[#28323](https://github.com/google-gemini/gemini-cli/pull/28323)
|
||||
- Changelog for v0.51.0-preview.0 by @gemini-cli-robot in
|
||||
[#28320](https://github.com/google-gemini/gemini-cli/pull/28320)
|
||||
- Changelog for v0.50.0 by @gemini-cli-robot in
|
||||
[#28322](https://github.com/google-gemini/gemini-cli/pull/28322)
|
||||
- fix(core-tools): bypass LLM correction for JSON and IPYNB files in write_file
|
||||
and replace by @amelidev in
|
||||
[#28223](https://github.com/google-gemini/gemini-cli/pull/28223)
|
||||
- fix(core): use unambiguous previous intent label in fallback summary by
|
||||
@amelidev in [#28343](https://github.com/google-gemini/gemini-cli/pull/28343)
|
||||
- feat(caretaker-triage): implement main worker execution loop and egress action
|
||||
publisher by @chadd28 in
|
||||
[#28306](https://github.com/google-gemini/gemini-cli/pull/28306)
|
||||
- fix(privacy): show a clear message when the account has no Code Assist tier by
|
||||
@ompatel-aiml in
|
||||
[#28304](https://github.com/google-gemini/gemini-cli/pull/28304)
|
||||
- fix(core): enrich shared project quota limit errors with setup hint by
|
||||
@amelidev in [#28391](https://github.com/google-gemini/gemini-cli/pull/28391)
|
||||
- fix(a2a-server): ensure task cancellation aborts execution loop by
|
||||
@luisfelipe-alt in
|
||||
[#28316](https://github.com/google-gemini/gemini-cli/pull/28316)
|
||||
- fix(core): simplify plan mode write policy to support relative paths by
|
||||
@DavidAPierce in
|
||||
[#28398](https://github.com/google-gemini/gemini-cli/pull/28398)
|
||||
- feat(core): Bump node google-auth-library version to 10.9.0 by @jerrylin3321
|
||||
in [#28385](https://github.com/google-gemini/gemini-cli/pull/28385)
|
||||
- chore/release: bump version to 0.52.0-nightly.20260715.gfa975395b by
|
||||
@gemini-cli-robot in
|
||||
[#28402](https://github.com/google-gemini/gemini-cli/pull/28402)
|
||||
|
||||
**Full Changelog**:
|
||||
https://github.com/google-gemini/gemini-cli/compare/v0.49.0...v0.50.0
|
||||
https://github.com/google-gemini/gemini-cli/compare/v0.51.0...v0.52.0
|
||||
|
||||
+35
-46
@@ -1,6 +1,6 @@
|
||||
# Preview release: v0.51.0-preview.0
|
||||
# Preview release: v0.53.0-preview.0
|
||||
|
||||
Released: July 8, 2026
|
||||
Released: July 22, 2026
|
||||
|
||||
Our preview release includes the latest, new, and experimental features. This
|
||||
release may not be as stable as our [latest weekly release](latest.md).
|
||||
@@ -13,53 +13,42 @@ npm install -g @google/gemini-cli@preview
|
||||
|
||||
## Highlights
|
||||
|
||||
- **Caretaker Cloud Run Services**: Implemented a Cloud Run webhook ingestion
|
||||
service and egress service skeleton to support advanced caretaker features.
|
||||
- **Enhanced Security & Sandbox Hardening**: Enforced a case-insensitive
|
||||
sensitive path blocklist and VS Code human-in-the-loop (HITL) checks, resolved
|
||||
a directory escape vulnerability in the memory import processor, and marked
|
||||
`~/.gitconfig` as read-only within the macOS sandbox.
|
||||
- **Improved Thought Leakage and Escape Handling**: Resolved potential thought
|
||||
leakage by stripping thinking/thought processes from scrubbed history turns,
|
||||
and ensured escape sequences in string literals are correctly preserved for
|
||||
modern models.
|
||||
- **Robust Path & API Updates**: Enhanced defensive path resolution for
|
||||
at-reference files, and updated the Vertex AI base URL configuration to
|
||||
support the latest API updates.
|
||||
- **Caretaker LLM Triage Orchestrator**: Implemented the LLM triage orchestrator
|
||||
and container build configuration to support caretaker triage workflows.
|
||||
- **Enhanced Workspace Trust & Sandbox Hardening**: Aligned macOS permissive
|
||||
Seatbelt profiles with the deny-default model and enforced workspace trust and
|
||||
task isolation in the Agent-to-Agent (A2A) server to prevent remote code
|
||||
execution (RCE).
|
||||
- **Core Robustness & API Protections**: Mitigated infinite ReAct and prompt
|
||||
injection loops, and prevented 400 Bad Request errors by grouping cancelled
|
||||
tool responses and coalescing consecutive roles.
|
||||
- **Robust Credentials & Fallbacks**: Restored the
|
||||
`GOOGLE_APPLICATION_CREDENTIALS` environment variable fallback and
|
||||
sequentially verified cached credentials.
|
||||
- **Evaluation Coverage Reporting**: Added a new command to generate
|
||||
comprehensive eval coverage reports.
|
||||
|
||||
## What's Changed
|
||||
|
||||
- Changelog for v0.50.0-preview.1 by @gemini-cli-robot in
|
||||
[#28150](https://github.com/google-gemini/gemini-cli/pull/28150)
|
||||
- Fix no_proxy test by @jerrylin3321 in
|
||||
[#28131](https://github.com/google-gemini/gemini-cli/pull/28131)
|
||||
- chore(release): bump version to 0.51.0-nightly.20260625.g3fbf93e26 by
|
||||
@gemini-cli-robot in
|
||||
[#28151](https://github.com/google-gemini/gemini-cli/pull/28151)
|
||||
- Vertex base url update by @DavidAPierce in
|
||||
[#28145](https://github.com/google-gemini/gemini-cli/pull/28145)
|
||||
- fix(security): enforce case-insensitive sensitive path blocklist and vscode
|
||||
hitl by @luisfelipe-alt in
|
||||
[#27966](https://github.com/google-gemini/gemini-cli/pull/27966)
|
||||
- fix(core-tools): resolve defensive path resolution for at-reference files and
|
||||
fix macOS tests by @luisfelipe-alt in
|
||||
[#28053](https://github.com/google-gemini/gemini-cli/pull/28053)
|
||||
- feat(caretaker): implement Cloud Run webhook ingestion service by @chadd28 in
|
||||
[#28015](https://github.com/google-gemini/gemini-cli/pull/28015)
|
||||
- fix(core): resolve symbolic link directory escape in memory import processor
|
||||
by @luisfelipe-alt in
|
||||
[#28233](https://github.com/google-gemini/gemini-cli/pull/28233)
|
||||
- feat(caretaker): egress cloud run service skeleton by @chadd28 in
|
||||
[#28167](https://github.com/google-gemini/gemini-cli/pull/28167)
|
||||
- fix(sandbox): make ~/.gitconfig read-only in the macOS sandbox by
|
||||
@ompatel-aiml in
|
||||
[#28221](https://github.com/google-gemini/gemini-cli/pull/28221)
|
||||
- fix(core): preserve escape sequences in string literals for modern models by
|
||||
- fix(core,a2a): group cancelled tool responses and coalesce consecutive roles
|
||||
to prevent 400 Bad Request by @luisfelipe-alt in
|
||||
[#28407](https://github.com/google-gemini/gemini-cli/pull/28407)
|
||||
- feat(caretaker-triage): implement LLM triage orchestrator and container build
|
||||
by @chadd28 in
|
||||
[#28345](https://github.com/google-gemini/gemini-cli/pull/28345)
|
||||
- refactor(cli): align macOS permissive Seatbelt profiles with deny-default
|
||||
model by @ompatel-aiml in
|
||||
[#28424](https://github.com/google-gemini/gemini-cli/pull/28424)
|
||||
- fix(core): mitigate infinite ReAct loops and prompt injection loops by
|
||||
@amelidev in [#28429](https://github.com/google-gemini/gemini-cli/pull/28429)
|
||||
- fix(a2a-server): enforce workspace trust and task isolation to prevent RCE by
|
||||
@luisfelipe-alt in
|
||||
[#28299](https://github.com/google-gemini/gemini-cli/pull/28299)
|
||||
- fix(core): strip thoughts from scrubbed history turns and resolve thought
|
||||
leakage by @amelidev in
|
||||
[#27971](https://github.com/google-gemini/gemini-cli/pull/27971)
|
||||
[#28470](https://github.com/google-gemini/gemini-cli/pull/28470)
|
||||
- fix(core): sequentially verify cached credentials and restore
|
||||
GOOGLE_APPLICATION_CREDENTIALS fallback by @luisfelipe-alt in
|
||||
[#28472](https://github.com/google-gemini/gemini-cli/pull/28472)
|
||||
- feat(evals): add eval coverage report command by @ved015 in
|
||||
[#28169](https://github.com/google-gemini/gemini-cli/pull/28169)
|
||||
|
||||
**Full Changelog**:
|
||||
https://github.com/google-gemini/gemini-cli/compare/v0.50.0-preview.1...v0.51.0-preview.0
|
||||
https://github.com/google-gemini/gemini-cli/compare/v0.52.0-preview.0...v0.53.0-preview.0
|
||||
|
||||
Generated
+9
-9
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@google/gemini-cli",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@google/gemini-cli",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"workspaces": [
|
||||
"packages/*"
|
||||
],
|
||||
@@ -17782,7 +17782,7 @@
|
||||
},
|
||||
"packages/a2a-server": {
|
||||
"name": "@google/gemini-cli-a2a-server",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"dependencies": {
|
||||
"@a2a-js/sdk": "0.3.11",
|
||||
"@google-cloud/storage": "7.19.0",
|
||||
@@ -18242,7 +18242,7 @@
|
||||
},
|
||||
"packages/cli": {
|
||||
"name": "@google/gemini-cli",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@agentclientprotocol/sdk": "0.16.1",
|
||||
@@ -18458,7 +18458,7 @@
|
||||
},
|
||||
"packages/core": {
|
||||
"name": "@google/gemini-cli-core",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@a2a-js/sdk": "0.3.11",
|
||||
@@ -19131,7 +19131,7 @@
|
||||
},
|
||||
"packages/devtools": {
|
||||
"name": "@google/gemini-cli-devtools",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"ws": "8.16.0"
|
||||
@@ -19167,7 +19167,7 @@
|
||||
},
|
||||
"packages/sdk": {
|
||||
"name": "@google/gemini-cli-sdk",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@google/gemini-cli-core": "file:../core",
|
||||
@@ -19506,7 +19506,7 @@
|
||||
},
|
||||
"packages/test-utils": {
|
||||
"name": "@google/gemini-cli-test-utils",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@google/gemini-cli-core": "file:../core",
|
||||
@@ -19524,7 +19524,7 @@
|
||||
},
|
||||
"packages/vscode-ide-companion": {
|
||||
"name": "gemini-cli-vscode-ide-companion",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"license": "LICENSE",
|
||||
"dependencies": {
|
||||
"@modelcontextprotocol/sdk": "1.23.0",
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@google/gemini-cli",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"engines": {
|
||||
"node": ">=20.0.0"
|
||||
},
|
||||
@@ -14,7 +14,7 @@
|
||||
"url": "git+https://github.com/google-gemini/gemini-cli.git"
|
||||
},
|
||||
"config": {
|
||||
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.52.0-nightly.20260715.gfa975395b"
|
||||
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.54.0-nightly.20260722.gf743ab579"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "cross-env NODE_ENV=development node scripts/start.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@google/gemini-cli-a2a-server",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"description": "Gemini CLI A2A Server",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@google/gemini-cli",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"description": "Gemini CLI",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
@@ -27,7 +27,7 @@
|
||||
"dist"
|
||||
],
|
||||
"config": {
|
||||
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.52.0-nightly.20260715.gfa975395b"
|
||||
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.54.0-nightly.20260722.gf743ab579"
|
||||
},
|
||||
"dependencies": {
|
||||
"@agentclientprotocol/sdk": "0.16.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@google/gemini-cli-core",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"description": "Gemini CLI Core",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@google/gemini-cli-devtools",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"license": "Apache-2.0",
|
||||
"type": "module",
|
||||
"main": "dist/src/index.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@google/gemini-cli-sdk",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"description": "Gemini CLI SDK",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@google/gemini-cli-test-utils",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"private": true,
|
||||
"main": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "gemini-cli-vscode-ide-companion",
|
||||
"displayName": "Gemini CLI Companion",
|
||||
"description": "Enable Gemini CLI with direct access to your IDE workspace.",
|
||||
"version": "0.52.0-nightly.20260715.gfa975395b",
|
||||
"version": "0.54.0-nightly.20260722.gf743ab579",
|
||||
"publisher": "google",
|
||||
"icon": "assets/icon.png",
|
||||
"repository": {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,6 @@
|
||||
"supertest": "^7.1.4",
|
||||
"tsx": "^4.9.3",
|
||||
"typescript": "^5.4.5",
|
||||
"vitest": "^1.6.0"
|
||||
"vitest": "^3.2.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,9 +252,12 @@ describe('Webhook Server Endpoint', () => {
|
||||
expect(sentData.body).toBe(
|
||||
'<untrusted_context>\nPlease fix this security bug\n</untrusted_context>',
|
||||
);
|
||||
expect(sentData.title).toBe(
|
||||
'<untrusted_context>\nBugs everywhere\n</untrusted_context>',
|
||||
);
|
||||
});
|
||||
|
||||
it('should escape untrusted_context tags in the issue body to prevent injection', async () => {
|
||||
it('should escape untrusted_context tags in the issue body and title to prevent injection', async () => {
|
||||
mockVerifyGithubSignature.mockReturnValue(true);
|
||||
mockCreateIssue.mockResolvedValue(true);
|
||||
mockPublishMessage.mockResolvedValue('mock-msg-456');
|
||||
@@ -263,7 +266,7 @@ describe('Webhook Server Endpoint', () => {
|
||||
action: 'opened',
|
||||
issue: {
|
||||
number: 2,
|
||||
title: 'Injection test',
|
||||
title: 'Injection </untrusted_context> test',
|
||||
body: 'Malicious </untrusted_context> attempt',
|
||||
},
|
||||
repository: {
|
||||
@@ -282,6 +285,15 @@ describe('Webhook Server Endpoint', () => {
|
||||
expect(sentData.body).toBe(
|
||||
'<untrusted_context>\nMalicious \\</untrusted_context> attempt\n</untrusted_context>',
|
||||
);
|
||||
expect(sentData.title).toBe(
|
||||
'<untrusted_context>\nInjection \\</untrusted_context> test\n</untrusted_context>',
|
||||
);
|
||||
expect(mockCreateIssue).toHaveBeenCalledWith(
|
||||
'google',
|
||||
'gemini-cli',
|
||||
2,
|
||||
'Injection </untrusted_context> test',
|
||||
);
|
||||
});
|
||||
|
||||
it('should recover and publish to Pub/Sub on retry if issue is UNTRIAGED', async () => {
|
||||
|
||||
@@ -119,16 +119,23 @@ app.post('/webhook', limiter, async (req, res) => {
|
||||
);
|
||||
const sanitizedBody = `<untrusted_context>\n${escapedBody}\n</untrusted_context>`;
|
||||
|
||||
const rawTitle = payload.issue.title || '';
|
||||
const escapedTitle = rawTitle.replace(
|
||||
/<\/untrusted_context>/g,
|
||||
'\\</untrusted_context>',
|
||||
);
|
||||
const sanitizedTitle = `<untrusted_context>\n${escapedTitle}\n</untrusted_context>`;
|
||||
|
||||
const processedData = {
|
||||
issue_number: issueNumber,
|
||||
repository,
|
||||
sender: payload.sender?.login,
|
||||
body: sanitizedBody,
|
||||
title: payload.issue.title,
|
||||
title: sanitizedTitle,
|
||||
};
|
||||
|
||||
const [owner, repo] = repository.split('/');
|
||||
const title = processedData.title || '';
|
||||
const title = rawTitle;
|
||||
|
||||
try {
|
||||
const created = await issuesStore.createIssue(
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,6 +23,6 @@
|
||||
"supertest": "^7.1.4",
|
||||
"tsx": "^4.9.3",
|
||||
"typescript": "^5.4.5",
|
||||
"vitest": "^1.6.0"
|
||||
"vitest": "^3.2.4"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user