Skip to content

Commit e6a0f29

Browse files
authored
Merge pull request #8 from popup-studio-ai/feature/v1.5.5
feat: bkit-gemini v1.5.5 - Gemini CLI 0.3.0 migration & security hardening
2 parents e5bc05c + a8ea93e commit e6a0f29

40 files changed

+7768
-96
lines changed

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,39 @@ All notable changes to bkit-gemini will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.5.5] - 2026-02-25
9+
10+
### Added
11+
12+
- **Policy TOML Auto-Generation**: `session-start.js` now triggers `policy-migrator.js` when Gemini CLI >= v0.30.0 detected, creating `.gemini/policies/bkit-permissions.toml` automatically
13+
- **SemVer Validation**: `version-detector.js` validates `GEMINI_CLI_VERSION` env var format and rejects implausible values (>= 2.0.0) to prevent feature flag injection
14+
- **TOML Structural Validation**: `policy-migrator.js` validates generated TOML before writing (rule count vs decision count match)
15+
- **TOML String Escaping**: `escapeTomlString()` prevents TOML injection via backslash, quote, and newline characters
16+
- **Version-Aware Approval Flag**: `spawn-agent-server.js` uses `--approval-mode=yolo` for v0.30.0+ and `--yolo` for older versions
17+
- **Team Name Sanitization**: Path traversal prevention in `team_create` - only alphanumeric, hyphens, underscores allowed
18+
- **Enhanced Dangerous Patterns**: `before-tool.js` blocks reverse shells, policy file tampering, remote code execution via pipes, sensitive file access
19+
- **Feature Flags**: `hasGemini31Pro` (v0.29.7+), `hasApprovalMode` (v0.30.0+)
20+
21+
### Changed
22+
23+
- **Agent Model Upgrades**: `cto-lead` and `gap-detector` upgraded to `gemini-3.1-pro` (ARC-AGI-2 77.1%)
24+
- **Agent Cost Optimization**: `report-generator` and `qa-monitor` switched to `gemini-3-flash-lite` (60% cost reduction)
25+
- **AfterTool Resilience**: Defensive field access supports both `tool_name`/`toolName` and `tool_input`/`toolInput` variants
26+
- **Tested Versions**: Added `0.29.7` and `0.30.0` to `bkit.config.json` testedVersions
27+
- **Policy Migrator Version Guard**: `generatePolicyFile()` checks `hasPolicyEngine` flag before generation
28+
29+
### Documentation
30+
31+
- **model-selection.md**: Added Gemini 3.1 Pro + customtools variant documentation, updated all model recommendations
32+
- **PDCA Analysis**: `gemini-cli-030-upgrade-impact-analysis.analysis.md` - comprehensive v0.30.0 impact analysis (82/100 score)
33+
34+
### Security
35+
36+
- **CRITICAL**: Fixed unconditional `--yolo` flag in sub-agent spawning (bypassed all safety prompts)
37+
- **HIGH**: Fixed `team_name` path traversal vulnerability in `team_create` handler
38+
- **HIGH**: Added SemVer format validation to block env var injection (`GEMINI_CLI_VERSION=99.99.99`)
39+
- **MEDIUM**: Added TOML string escaping to prevent policy injection
40+
841
## [1.5.4] - 2026-02-21
942

1043
### Added

GEMINI.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# bkit Vibecoding Kit v1.5.4 - Gemini CLI Edition
1+
# bkit Vibecoding Kit v1.5.5 - Gemini CLI Edition
22

33
> AI-native development toolkit implementing PDCA methodology with Context Engineering
44
@@ -58,5 +58,5 @@ docs/
5858

5959
---
6060

61-
*bkit Vibecoding Kit v1.5.4 - Empowering AI-native development*
61+
*bkit Vibecoding Kit v1.5.5 - Empowering AI-native development*
6262
*Copyright 2024-2026 POPUP STUDIO PTE. LTD.*

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
44
[![Gemini CLI](https://img.shields.io/badge/Gemini%20CLI-v0.29.0+-blue.svg)](https://github.com/google-gemini/gemini-cli)
5-
[![Version](https://img.shields.io/badge/Version-1.5.4-green.svg)](CHANGELOG.md)
5+
[![Version](https://img.shields.io/badge/Version-1.5.5-green.svg)](CHANGELOG.md)
66
[![Author](https://img.shields.io/badge/Author-POPUP%20STUDIO-orange.svg)](https://popupstudio.ai)
77

88
> **PDCA methodology + Context Engineering for AI-native development**
@@ -62,7 +62,7 @@ Event 10: SessionEnd -> Session cleanup, memory persistence
6262

6363
```
6464
bkit-gemini/
65-
|-- gemini-extension.json # Extension manifest (v1.5.4)
65+
|-- gemini-extension.json # Extension manifest (v1.5.5)
6666
|-- GEMINI.md # Global context with 6 @import modules
6767
|-- bkit.config.json # Centralized configuration (12 sections)
6868
|-- CHANGELOG.md # Version history
@@ -178,7 +178,7 @@ bkit-gemini/
178178

179179
## Features
180180

181-
### v1.5.4 Highlights
181+
### v1.5.5 Highlights
182182

183183
- **Gemini 3 Model Migration** -- All 16 agents updated to `gemini-3-pro` (9) and `gemini-3-flash` (7)
184184
- **Version Detector** -- 3-strategy Gemini CLI version detection with feature flags and caching
@@ -380,7 +380,7 @@ All 16 agents remember context across sessions automatically:
380380

381381
### Team Mode Foundation
382382

383-
bkit v1.5.4 includes team mode foundation with 3 MCP tools:
383+
bkit v1.5.5 includes team mode foundation with 3 MCP tools:
384384
- `team_create` -- Create agent teams with configurable strategies
385385
- `team_assign` -- Assign tasks to team members
386386
- `team_status` -- Monitor team progress

agents/cto-lead.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ description: |
2121
Do NOT use for: simple bug fixes, single-file edits, routine CRUD operations,
2222
or tasks that a single specialized agent can handle independently.
2323
24-
model: gemini-3-pro
24+
model: gemini-3.1-pro
2525
tools:
2626
- read_file
2727
- read_many_files

agents/gap-detector.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ description: |
1616
1717
Do NOT use for: documentation-only tasks, initial planning, or design creation.
1818
19-
model: gemini-3-pro
19+
model: gemini-3.1-pro
2020
tools:
2121
- read_file
2222
- read_many_files

agents/qa-monitor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ description: |
1717
Do NOT use for: unit testing with test scripts, frontend-only testing without Docker,
1818
or design document validation.
1919
20-
model: gemini-3-flash
20+
model: gemini-3-flash-lite
2121
tools:
2222
- run_shell_command
2323
- read_file

agents/report-generator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ description: |
1717
Do NOT use for: ongoing implementation work, initial planning, or technical analysis
1818
(use gap-detector or code-analyzer instead).
1919
20-
model: gemini-3-flash
20+
model: gemini-3-flash-lite
2121
tools:
2222
- read_file
2323
- read_many_files

bkit.config.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "./bkit.config.schema.json",
3-
"version": "1.5.4",
3+
"version": "1.5.5",
44
"platform": "gemini",
55

66
"sourceDirectories": ["src", "lib", "app", "components", "pages", "features", "services"],
@@ -117,7 +117,7 @@
117117

118118
"compatibility": {
119119
"minGeminiCliVersion": "0.29.0",
120-
"testedVersions": ["0.29.0", "0.29.5", "0.30.0-preview.3"],
120+
"testedVersions": ["0.29.0", "0.29.5", "0.29.7", "0.30.0-preview.3", "0.30.0"],
121121
"policyEngine": {
122122
"autoGenerate": true,
123123
"outputDir": ".gemini/policies/"

docs/.bkit-memory.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
2-
"sessionCount": 82,
2+
"sessionCount": 88,
33
"platform": "gemini",
44
"level": "Starter",
5-
"lastSessionStarted": "2026-02-21T03:40:09.181Z",
5+
"lastSessionStarted": "2026-02-25T08:56:43.946Z",
66
"outputStyle": null,
7-
"lastSessionEnded": "2026-02-21T04:03:10.520Z",
7+
"lastSessionEnded": "2026-02-25T09:54:19.685Z",
88
"lastSession": {
9-
"startedAt": "2026-02-21T04:03:17.644Z",
9+
"startedAt": "2026-02-25T09:54:22.538Z",
1010
"platform": "claude",
1111
"level": "Starter"
1212
}

docs/.pdca-status.json

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
{
22
"version": "2.0",
3-
"lastUpdated": "2026-02-21T20:00:00.000Z",
3+
"lastUpdated": "2026-02-25T12:00:00.000Z",
44
"activeFeatures": [
5+
"bkit-v155-gemini-test",
6+
"gemini-cli-030-migration",
7+
"gemini-cli-030-upgrade-impact-analysis",
58
"bkit-v154-gemini-test",
69
"bkit-gemini-v152-full-test",
710
"bkend-docs-sync",
811
"bkit-gemini-conversion"
912
],
10-
"primaryFeature": "bkit-v154-gemini-test",
13+
"primaryFeature": "bkit-v155-gemini-test",
1114
"features": {
1215
"bkit-v154-gemini-test": {
1316
"phase": "completed",
@@ -92,6 +95,46 @@
9295
"iterationCount": 0,
9396
"createdAt": "2026-02-01T12:00:00.000Z",
9497
"updatedAt": "2026-02-01T04:46:23.092Z"
98+
},
99+
"gemini-cli-030-upgrade-impact-analysis": {
100+
"phase": "completed",
101+
"matchRate": 100,
102+
"iterationCount": 0,
103+
"createdAt": "2026-02-25T12:00:00.000Z",
104+
"updatedAt": "2026-02-25T12:00:00.000Z",
105+
"completedAt": "2026-02-25T12:00:00.000Z",
106+
"analysisDoc": "docs/03-analysis/gemini-cli-030-upgrade-impact-analysis.analysis.md",
107+
"team": "CTO Team (6 specialist agents)"
108+
},
109+
"gemini-cli-030-migration": {
110+
"phase": "completed",
111+
"matchRate": 100,
112+
"iterationCount": 0,
113+
"createdAt": "2026-02-25T12:00:00.000Z",
114+
"updatedAt": "2026-02-25T18:00:00.000Z",
115+
"completedAt": "2026-02-25T18:00:00.000Z",
116+
"planDoc": "docs/01-plan/features/gemini-cli-030-migration.plan.md",
117+
"designDoc": "docs/02-design/features/gemini-cli-030-migration.design.md",
118+
"analysisSource": "docs/03-analysis/gemini-cli-030-upgrade-impact-analysis.analysis.md",
119+
"analysisDoc": "docs/03-analysis/features/gemini-cli-030-v155-implementation.analysis.md",
120+
"reportDoc": "docs/04-report/features/gemini-cli-030-migration.report.md",
121+
"testStrategy": "docs/05-test/gemini-cli-030-migration-test-strategy.md",
122+
"team": "CTO Team (17 specialist agents across 3 sessions)",
123+
"targetVersion": "v1.5.5",
124+
"strategy": "B - Incremental Migration"
125+
},
126+
"bkit-v155-gemini-test": {
127+
"phase": "completed",
128+
"matchRate": 100,
129+
"iterationCount": 1,
130+
"createdAt": "2026-02-25T18:30:00.000Z",
131+
"updatedAt": "2026-02-25T19:30:00.000Z",
132+
"completedAt": "2026-02-25T19:30:00.000Z",
133+
"planDoc": "docs/01-plan/features/bkit-v155-gemini-test.plan.md",
134+
"reportDoc": "docs/04-report/features/bkit-v155-gemini-test.report.md",
135+
"team": "CTO Team",
136+
"targetVersion": "v1.5.5",
137+
"testScope": "Unit(~65) + E2E(~232) + UX(16) = ~313 test cases"
95138
}
96139
},
97140
"pipeline": {
@@ -109,8 +152,8 @@
109152
]
110153
},
111154
"session": {
112-
"startedAt": "2026-02-21T03:40:09.180Z",
155+
"startedAt": "2026-02-25T08:56:43.316Z",
113156
"onboardingCompleted": true,
114-
"lastActivity": "2026-02-21T03:40:09.180Z"
157+
"lastActivity": "2026-02-25T08:56:43.316Z"
115158
}
116-
}
159+
}

0 commit comments

Comments
 (0)