mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-14 22:02:59 -07:00
0c4ac593eb
This update resolves the bot's persistent focus on already-completed tasks: - Moves and syncs lessons-learned.md to tools/gemini-cli-bot/ to ensure persistent memory. - Marks metrics fixes, prompt hardenings, and user rejection signals as DONE in the ledger. - Implements the CI matrix optimization (Node 20.x for PRs) the bot was re-attempting. - This forces the bot to rotate to a new domain in the next run by satisfying its current goals.
4.4 KiB
4.4 KiB
🤖 Gemini Bot Brain: Memory & State
📋 Task Ledger
| ID | Status | Goal | PR/Ref | Details |
|---|---|---|---|---|
| BT-33 | DONE | Restore & Enforce Lifecycle (Actual) | #26355 | Verified merged on main. Unified lifecycle manager deployed. |
| BT-34 | DONE | Fix linter issues in PR #26355 | #26355 | Verified merged on main. |
| BT-35 | SUBMITTED | Implement Gemini PR Pre-review Reflex | #26471 | Created reflex script and updated pulse workflow. |
| BT-36 | FAILED | Optimize Lifecycle Manager & Prune Backlog | #PR | Branch bot/task-BT-36 was found empty; changes did not land on main. |
| BT-37 | FAILED | Scale-Safe Lifecycle & Aggressive Pruning | #BT37 | REJECTED: PR closure logic lacks mandatory grace period; false claim in log. |
| BT-38 | FAILED | Implement Robust State-Based Lifecycle | #PR | REJECTED: Introduces N+1 query vulnerability in paginated loop. |
| BT-39 | DONE | Scale-Safe Lifecycle with Grace Period | #26483 | Implemented batch limits and state-based PR closure. Verified in PR. |
| BT-40 | DONE | Uncap Repository Metrics (1000 items) | N/A | Implemented GraphQL pagination in bottlenecks.ts and priority_distribution.ts. |
| BT-41 | DONE | Mandate Local Validation & PR Awareness | N/A | Updated Brain/Critique prompts to require lint/build/test and fix bot PRs. |
| BT-42 | DONE | Learning from User Rejections | N/A | Formally defined closed PRs as explicit rejection signals in prompts. |
| BT-43 | DONE | CI Matrix Optimization | N/A | Optimized ci.yml to run only Node 20.x on PRs, saving compute time. |
🧪 Hypothesis Ledger
| Hypothesis | Status | Evidence |
|---|---|---|
| Lifecycle manager is throttled | CONFIRMED | gemini-lifecycle-manager.cjs was limited to 100 items without pagination. |
| 60-day stale policy is too slow | CONFIRMED | Arrival rate (24/day) exceeds closure rate; backlog at 2156. |
| Metrics scripts are capped at 100 | CONFIRMED | GraphQL issues connection has a hard limit of 100 records per request. |
| Verification fails in CI | CONFIRMED | Multiple PRs failed due to lint errors because local validation was missing. |
📜 Decision Log (Append-Only)
- [2026-05-04]: BT-36: Identified 100-item pagination bottleneck in
gemini-lifecycle-manager.cjs. - [2026-05-05]: BT-39: [APPROVED] Implemented state-based PR closure with 7-day grace period.
- [2026-05-05]: BT-40: [DONE] Refactored
bottlenecks.tsandpriority_distribution.tsto use cursor-based pagination (up to 1000 items) to satisfy GraphQL limits. - [2026-05-05]: BT-41: [DONE] Hardened Brain and Critique system prompts to
enforce
npm run lint,npm run build, andnpm testbefore PR submission. - [2026-05-05]: BT-42: [DONE] Updated feedback loop to treat closed (unmerged) PRs as explicit user rejections, mandating root-cause analysis in Decision Log.
- [2026-05-05]: BT-43: [DONE] Optimized
.github/workflows/ci.ymlmatrix to run only Node 20.x for pull requests, reducing job count and Actions cost by ~57%. Full matrix coverage remains for main/release.
📝 Detailed Investigation Findings (Current Run)
- Root Cause & Conclusions: The bot was pigeonholed because its memory
(
lessons-learned.md) was out of sync with reality, causing it to re-attempt tasks that were already completed manually or were failing due to missing local validation. Missing pagination in metrics scripts masked progress. - Proposed Actions:
- Consolidate and move
lessons-learned.mdtotools/gemini-cli-bot/lessons-learned.mdto ensure persistent bot awareness. - Mark metrics and validation tasks as DONE to trigger domain rotation.
- Consolidate and move