Commit Graph

6161 Commits

Author SHA1 Message Date
Christian Gunderman 6efdbd3e48 fix(bot): improve reasoning resilience and prevent infinite loops
- Update PR skill to allow informed escalation and help requests when stuck.

- Update main brain prompt to encourage strategic pivoting between hypotheses.

- Explicitly authorize bailing out of tasks that cannot be verified.
2026-05-13 21:50:51 -07:00
Christian Gunderman a2841350ba fix(bot): implement prompt-level loop prevention and enforce test timeouts 2026-05-13 21:15:05 -07:00
Christian Gunderman 928ce879ea fix(bot): improve patch resilience in brain workflow
- Pin publish job to the specific SHA from reasoning job to avoid drift.

- Use git apply --3way --ignore-whitespace for better conflict resolution.
2026-05-13 20:35:02 -07:00
Christian Gunderman 5dc5b4ed4a fix: handle ENAMETOOLONG gracefully during path resolution
This fix was recovered from a timed-out bot run. It addresses issue #26979
where the CLI would crash if a user provided an extremely long path string
in an @ command (e.g. @/aaa...a).

Changes:
- Updated 'robustRealpath' in 'packages/core/src/utils/paths.ts' to catch
  and gracefully handle 'ENAMETOOLONG' and 'EINVAL' errors from fs.realpathSync
  and fs.lstatSync.
- Added a defensive try-catch block to 'checkPermissions' in
  'packages/cli/src/ui/hooks/atCommandProcessor.ts' to prevent long path
  strings from crashing the CLI during @ command parsing.
- Added regression unit tests to verify the fix.
2026-05-13 20:24:15 -07:00
Christian Gunderman 98781cd97d chore(bot): remove maxSessionTurns and improve artifact archiving
- Removed the `maxSessionTurns: 30` limit from the bot's configuration as requested.
- Added `if: always()` to the `Archive Brain Data` step in the workflow to ensure logs (telemetry, debug) are available even when the agent fails or times out.
2026-05-13 18:37:18 -07:00
Christian Gunderman daaa631071 feat(bot): optimize search strategy in issue-fixer skill
Updated the issue-fixer skill to instruct the bot to search one top-level
folder at a time and avoid problematic directories with large data files
(memory-tests, last_brain_data) to prevent grep_search timeouts.
2026-05-13 18:27:39 -07:00
Christian Gunderman 506184d739 fix(bot): cap reasoning loops to 30 turns
The non-interactive CLI defaults to infinite `maxSessionTurns`. This causes the bot to get stuck in infinite trial-and-error loops when it struggles to fix a failing test suite, only stopping when the 60-minute GitHub Actions timeout kills the runner.

By setting `maxSessionTurns: 30` in the bot's configuration, the LLM session will gracefully abort with an error if it cannot find a solution within a reasonable number of attempts.
2026-05-13 17:59:25 -07:00
Christian Gunderman 9b3fef4f68 fix(ci): prevent infinite hangs in bot reasoning workflow
- Added a 60 minute timeout to the Reasoning job in the workflow.
- Updated the issue-fixer skill to instruct the bot to wrap 'npm run preflight' with the linux 'timeout' utility to prevent infinite loops from hanging the entire LLM agent.
2026-05-13 17:15:50 -07:00
Christian Gunderman 83d15895f1 fix(bot): archive pr-labels.txt to apply labels to PRs
The pr-labels.txt file was being correctly generated by the bot but was not
being passed to the Publish Artifacts job because it was omitted from the
Archive Brain Data step.
2026-05-13 16:29:02 -07:00
Christian Gunderman 03877eae3b fix(core): trust explicitly allowed variables over name patterns
This removes the `NEVER_ALLOWED_NAME_PATTERNS` filter from `getSecureSanitizationConfig`.

Previously, if a user explicitly added a variable like `GH_TOKEN` to their `allowedEnvironmentVariables` in `settings.json`, it would be silently dropped during configuration parsing because it matched the `NEVER_ALLOWED_NAME_PATTERNS` regex.

This change ensures that explicit user allowlists take precedence over heuristic name-based pattern matching, while still maintaining the strict blocklist for known highly-sensitive system variables (`NEVER_ALLOWED_ENVIRONMENT_VARIABLES`).
2026-05-13 16:11:34 -07:00
Christian Gunderman d17a813cc3 Revert "fix:reorder env var redaction checks to scan values first (#21059)"
This reverts commit 9773a084c9.
2026-05-13 15:29:05 -07:00
Christian Gunderman a6e460e595 feat(bot): add support for applying labels to bot-created PRs
- Update the publish workflow to read labels from a pr-labels.txt file and apply them to the PR using the gh CLI.
- Update the prs skill to instruct the bot to write labels to pr-labels.txt.
- Update the issue-fixer and metrics skills to explicitly request the application of their respective labels in pr-labels.txt.
2026-05-13 15:13:46 -07:00
Christian Gunderman 4449f3f43c chore(bot): configure environment variable redaction bypass
This adds a settings.json file to the bot's configuration to explicitly allow GH_TOKEN and GITHUB_TOKEN to bypass the environment variable redaction engine. This is required because the bot runs in GitHub Actions, which enforces strict redaction mode by default. The workflow file was also simplified by removing the wrapper script that was previously used to bypass redaction.
2026-05-13 15:05:02 -07:00
Christian Gunderman 7789469bd1 fix(bot): provide GH_TOKEN in bot-brain workflow to fix gh cli auth 2026-05-13 12:08:13 -07:00
Christian Gunderman 4464ff23fc fix(bot): disable gh pagers globally via env
- Sets `GH_PAGER: ''` in the workflow environment variables to ensure any `gh` CLI commands executed by the bot or in bash scripts do not hang waiting for user input in the headless CI environment.
2026-05-13 11:36:37 -07:00
Christian Gunderman 8a6ec5978c fix(bot): force json or --no-pager in gh cli commands to prevent hangs
- Replaces `gh issue list` with the `--json` flag to prevent default pagers (like `less`) from waiting for user input and hanging the CI run.
- Adds `--no-pager` to `gh run view`.
2026-05-13 11:17:02 -07:00
Christian Gunderman c460745bcb fix(bot): enforce github-first discovery and forbid local fishing
- Updates the `issue-fixer` skill to strictly forbid the use of local tools (like lint, tsc, grep) for finding tasks.
- Updates `scheduled.md` to clarify that local tools are for verification only.
2026-05-13 10:12:43 -07:00
Christian Gunderman 278858ed11 fix(bot): satisfy YAML lint rules and clarify monorepo build order 2026-05-13 09:54:50 -07:00
Christian Gunderman a58e3f5654 chore(build): standardize all package library targets to ES2023 2026-05-13 09:50:45 -07:00
Christian Gunderman 821cb2be9b feat(ci): re-enable telemetry and debug logging for the bot 2026-05-13 09:27:51 -07:00
Christian Gunderman 3250033366 fix(ci): resolve YAML syntax error in bot brain workflow 2026-05-12 22:35:04 -07:00
Christian Gunderman 7344507c7b feat(ci): enable detailed telemetry and debug logging for the bot 2026-05-12 22:32:42 -07:00
Christian Gunderman e9df8d2914 fix(bot): allow redirection in CI policy and improve skill activation steering 2026-05-12 22:20:37 -07:00
Christian Gunderman 9e90ccefb4 fix(bot): restrict critique skill to only fix scoped flaws 2026-05-12 21:35:11 -07:00
Christian Gunderman c1b15d23b6 fix(ci): make scheduled brain base prompt generic to respect mandate 2026-05-12 14:55:53 -07:00
Christian Gunderman 20669e964c Fix skill syntax. 2026-05-12 14:33:01 -07:00
Christian Gunderman c0e78767b7 feat(ci): improve mandate selection and add activate_skill to policy 2026-05-12 14:15:45 -07:00
Christian Gunderman 75ab39ca3a feat(ci): add mandate override to brain workflow 2026-05-12 14:15:41 -07:00
Christian Gunderman a11f347928 Issue fixer. 2026-05-12 14:15:38 -07:00
Christian Gunderman 2334e9b1c4 Incremental refactor repo agent towards skills-based composition (#26717)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-05-12 20:37:09 +00:00
Tommaso Sciortino f901a4e6b7 fix(ci): replace brittle --no-tag with explicit staging-tmp tag (#26940) 2026-05-12 13:39:54 -07:00
Adam Weidman c987b99394 refactor(core): introduce SubagentState enum for progress (#26934) 2026-05-12 18:58:25 +00:00
Coco Sheng c4973d01da ci: actively triage missing priority labels and intelligently clean up conflicting labels (#26865) 2026-05-12 18:33:55 +00:00
kevinjwang1 27a39b04b0 Enable NumericalRouter when using dynamic model configs (#26929) 2026-05-12 18:06:21 +00:00
Sandy Tao ebe15553a9 Exclude extension context from skill extraction agent (#26879) 2026-05-12 10:45:19 -07:00
Yulong Wu bc730b2c0f fix (telemetry): inject quota_project_id to prevent fallback to default oauth client (#26698)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
2026-05-12 17:02:15 +00:00
Gal Zahavi 9fe8643552 chore: update checkout action configuration in workflows (#26897) 2026-05-12 16:58:37 +00:00
joshualitt 07792f98cd feat(context): Introduce adaptive token calculator to more accurately calculate content sizes. (#26888) 2026-05-12 15:51:20 +00:00
Coco Sheng 7a9ed4c20a fix: respect explicit model selection after Flash quota exhaustion (#26759) (#26872) 2026-05-12 14:26:50 +00:00
Kuroda Kayn 11a9edc808 fix(cli): restore resume for legacy sessions (#26577)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
2026-05-12 00:28:47 +00:00
Adam Weidman 24b98ade86 fix(cli): enable adk non-interactive session (#26895) 2026-05-11 23:38:23 +00:00
Eswar809 9f759f97a2 fix(core): ignore .pak and .rpa game archive formats by default (#26884)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
2026-05-11 21:58:08 +00:00
Franco Pieri 9ff7304391 Allow Enter to select session while in search mode in /resume (#21523)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
2026-05-11 21:46:00 +00:00
Neil Nair 84fc5cd533 Fix/vscode run current file ts (#22894)
Co-authored-by: Spencer <spencertang@google.com>
2026-05-11 21:21:42 +00:00
Daniel Weis e1b3ce5b36 revert 6b9b778d82 (#26893) 2026-05-11 21:07:54 +00:00
Suhaan Raqeeb Khavas 8e58df72c6 fix: prevent EISDIR crash when customIgnoreFilePaths contains directories (#19868) (#19898)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
2026-05-11 20:46:08 +00:00
Dev Randalpura c0d5ab1f1e fix(ui): added a gutter width to the input prompt width calculation (#26882) 2026-05-11 20:26:48 +00:00
Coco Sheng 1340c96071 fix(core): handle malformed projects.json in ProjectRegistry (#26885) 2026-05-11 20:19:01 +00:00
Daniel Weis f8198a25d8 fix(routing): Refactor tool turn handling for the conversation history in NumericalClassifierStrategy to prevent 400 Bad Request (#26761) 2026-05-11 20:09:38 +00:00
Coco Sheng 36a7fa089c fix(cli): use static tool name in confirmation prompt to avoid parsing errors (#26866) 2026-05-11 17:45:58 +00:00