@mmmbuto/gemini-cli-termux 0.24.9-termux → 0.24.10-termux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ pkg update && pkg upgrade -y
|
|
|
29
29
|
pkg install nodejs-lts -y
|
|
30
30
|
npm install -g @mmmbuto/gemini-cli-termux
|
|
31
31
|
|
|
32
|
-
gemini --version # expected: 0.24.
|
|
32
|
+
gemini --version # expected: 0.24.10-termux (npm latest)
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Build from source:
|
|
@@ -66,7 +66,7 @@ node bundle/gemini.js --version
|
|
|
66
66
|
|
|
67
67
|
- **Test Results**
|
|
68
68
|
- [GEMINI_TEST_REPORT_v0.24.9.md](./GEMINI_TEST_REPORT_v0.24.9.md) — PASS
|
|
69
|
-
(latest report; 0.24.
|
|
69
|
+
(latest report; 0.24.10-termux)
|
|
70
70
|
- **[Test Suite](./GEMINI_TEST_SUITE.md)** - Test methodology and checklist
|
|
71
71
|
- **[Context Memory](./docs/cli/context-memory.md)** - Memory modes, JIT + JSON,
|
|
72
72
|
and setup guide
|
|
@@ -100,9 +100,10 @@ See [docs/patches/README.md](./docs/patches/README.md) for complete solutions.
|
|
|
100
100
|
npm install -g @mmmbuto/gemini-cli-termux@latest
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
### Changelog (0.24.
|
|
103
|
+
### Changelog (0.24.10-termux)
|
|
104
104
|
|
|
105
105
|
**Upstream Merge (165 commits):**
|
|
106
|
+
|
|
106
107
|
- Built-in Agent Skills support
|
|
107
108
|
- Ink 6.4.7 update
|
|
108
109
|
- Hook system enhancements
|
|
@@ -110,6 +111,7 @@ npm install -g @mmmbuto/gemini-cli-termux@latest
|
|
|
110
111
|
- Bug fixes and performance improvements
|
|
111
112
|
|
|
112
113
|
**Termux Fixes:**
|
|
114
|
+
|
|
113
115
|
- **PTY auto-install**: Moved `@mmmbuto/node-pty-android-arm64` to dependencies
|
|
114
116
|
(no manual installation needed from tarball)
|
|
115
117
|
- All Termux patches preserved and tested
|
|
@@ -1,50 +1,4 @@
|
|
|
1
|
-
# Termux Patches (Upstream Differences)
|
|
2
1
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
it updated whenever a new patch is added or removed.
|
|
2
|
+
17. **hideBanner fix** – Fixed `hideBanner` setting to properly suppress all
|
|
3
|
+
startup warnings (Termux patch in `userStartupWarnings.ts`).
|
|
6
4
|
|
|
7
|
-
## Patch List
|
|
8
|
-
|
|
9
|
-
1. **Clipboard (TERMUX\_\_PREFIX)** – On Termux set `TERMUX__PREFIX` from
|
|
10
|
-
`$PREFIX` so clipboardy detects Termux correctly.
|
|
11
|
-
2. **Android PTY prebuild** – Use `@mmmbuto/node-pty-android-arm64` for Termux;
|
|
12
|
-
remove `@lydell/node-pty-*` and generic `node-pty`.
|
|
13
|
-
3. **Prepare script** – `prepare` is a no-op on Termux to avoid unnecessary
|
|
14
|
-
bundle/husky work during installs.
|
|
15
|
-
4. **Core exports** – `packages/core/src/index.ts` re-exports stdio utilities,
|
|
16
|
-
hook/telemetry APIs, Termux detectors, and context-memory helpers so CLI
|
|
17
|
-
bundling succeeds on Termux.
|
|
18
|
-
5. **Bundle** – Prebuilt `bundle/gemini.js` shipped in npm package
|
|
19
|
-
(ARM64/Android) with policy files under `bundle/policies/`.
|
|
20
|
-
6. **is-in-ci override** – Prevents ink from detecting Termux as CI.
|
|
21
|
-
7. **Punycode warning** – Suppresses deprecation warning on Android.
|
|
22
|
-
8. **Termux detection** – `packages/core/src/utils/termux-detect.ts` utility.
|
|
23
|
-
9. **Postinstall message** – Clear success message on Termux install.
|
|
24
|
-
10. **Context memory + Memory Mode** – JSON memories (base/user/journal) plus
|
|
25
|
-
presets: `default`, `jit`, `jit+json`. Auto-load toggles, primary selector,
|
|
26
|
-
and MCP import tool (disabled by default; base writes still gated).
|
|
27
|
-
11. **Mobile-first settings** – Compact `/settings` rendering by default on
|
|
28
|
-
Termux; TTS toggle exposed (opt-in).
|
|
29
|
-
12. **Shell parser fix** – Base64 polyfill in bundle banner to support
|
|
30
|
-
web-tree-sitter on Node 22/24 (fixes `run_shell_command`).
|
|
31
|
-
13. **MCP SDK typings shim** – Local `.d.ts` shims for
|
|
32
|
-
`@modelcontextprotocol/sdk` to satisfy strict builds.
|
|
33
|
-
[Details](./mcp-sdk-typings-shim.md)
|
|
34
|
-
|
|
35
|
-
## Expected Warnings
|
|
36
|
-
|
|
37
|
-
- No node-pty warnings expected on Termux. If PTY fails to load, the CLI falls
|
|
38
|
-
back to `child_process`.
|
|
39
|
-
|
|
40
|
-
## Scope
|
|
41
|
-
|
|
42
|
-
No functional changes to upstream features; only compatibility/export fixes.
|
|
43
|
-
|
|
44
|
-
## Merge Strategy
|
|
45
|
-
|
|
46
|
-
All patches are designed to be merge-safe. See
|
|
47
|
-
[docs/termux-api/MERGE_STRATEGY.md](../termux-api/MERGE_STRATEGY.md) for details
|
|
48
|
-
on maintaining patches after upstream sync.
|
|
49
|
-
|
|
50
|
-
**Scope**: All active Termux releases (update as patches change).
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# Merge Analysis: v0.24.8-termux → v0.24.9-termux
|
|
2
|
+
|
|
3
|
+
**Date**: 2026-01-10
|
|
4
|
+
**Current**: v0.24.8-termux
|
|
5
|
+
**Target**: upstream/main (v0.24.0+165 commits)
|
|
6
|
+
**Delta**: 165 upstream commits
|
|
7
|
+
**Conflicts Resolved**: 8
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Executive Summary
|
|
12
|
+
|
|
13
|
+
Proceduto con merge di upstream/main (165 commits) in v0.24.9-termux. Tutte le
|
|
14
|
+
patch Termux sono state preservate con successo. Conflitti risolti in 8 file,
|
|
15
|
+
principalmente legati a configurazione e test.
|
|
16
|
+
|
|
17
|
+
### Result
|
|
18
|
+
|
|
19
|
+
✅ **Merge completato con successo**
|
|
20
|
+
✅ **8 conflitti risolti**
|
|
21
|
+
✅ **280 file modificati** (+9659/-5690 righe)
|
|
22
|
+
✅ **Tutte le patch Termux preservate**
|
|
23
|
+
✅ **npm publish completato**
|
|
24
|
+
✅ **GitHub release creata**
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Upstream Features Integrated (Highlights)
|
|
29
|
+
|
|
30
|
+
| Feature | Commit Range | Termux Relevance |
|
|
31
|
+
| ---------------------------- | -------------------------------------------- | ----------------------- |
|
|
32
|
+
| Built-in Agent Skills | 461c277bf | ✅ Tested |
|
|
33
|
+
| Tool Modifier System | packages/core/src/scheduler/tool-modifier.ts | ✅ Tested |
|
|
34
|
+
| File Diff Utilities | packages/core/src/utils/fileDiffUtils.ts | ✅ Tested |
|
|
35
|
+
| Enhanced Settings Management | packages/cli/src/config/settings.ts | ✅ Tested |
|
|
36
|
+
| Updated Ink to v6.4.7 | b54e688c7 | ✅ UI improvements |
|
|
37
|
+
| Hook Event Handler | packages/core/src/hooks/hookEventHandler.ts | ✅ Core improvements |
|
|
38
|
+
| Updated System Prompts | b08b0d715 | ✅ Non-interactive mode |
|
|
39
|
+
| Removed sessionHookTriggers | 356f76e54 | ✅ Simplified exports |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Patch Termux Preserved
|
|
44
|
+
|
|
45
|
+
### Essential Termux Patches (Verified)
|
|
46
|
+
|
|
47
|
+
| File/Feature | Status | Notes |
|
|
48
|
+
| ------------------------------------------ | ------------ | -------------------------------------------------------- |
|
|
49
|
+
| `packages/core/src/utils/termux-detect.ts` | ✅ Preserved | Termux detection utility |
|
|
50
|
+
| `scripts/postinstall.cjs` | ✅ Preserved | Postinstall message |
|
|
51
|
+
| `scripts/prepare-termux.cjs` | ✅ Preserved | Prepare script override |
|
|
52
|
+
| `package.json` - PTY deps | ✅ Updated | `@mmmbuto/node-pty-android-arm64@~1.1.0` in dependencies |
|
|
53
|
+
| Context memory system | ✅ Preserved | base/user/journal JSON memories |
|
|
54
|
+
| MCP SDK typings shim | ✅ Preserved | Local `.d.ts` shims |
|
|
55
|
+
| Bundle prebuild | ✅ Preserved | `bundle/gemini.js` included |
|
|
56
|
+
| Clipboard detection | ✅ Preserved | `TERMUX__PREFIX` handling |
|
|
57
|
+
|
|
58
|
+
### PTY Package Changes
|
|
59
|
+
|
|
60
|
+
**Important Update**: `@mmmbuto/node-pty-android-arm64` moved from
|
|
61
|
+
devDependencies to dependencies for automatic installation on Termux.
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"@mmmbuto/node-pty-android-arm64": "~1.1.0"
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Conflicts Resolved (8 files)
|
|
72
|
+
|
|
73
|
+
### 1. `.github/scripts/pr-triage.sh`
|
|
74
|
+
|
|
75
|
+
**Type**: Updated upstream script
|
|
76
|
+
**Resolution**: Kept upstream version (updated logic)
|
|
77
|
+
|
|
78
|
+
### 2. `.github/workflows/` (multiple files)
|
|
79
|
+
|
|
80
|
+
**Files**: `ci.yml`, `gemini-automated-issue-dedup.yml`,
|
|
81
|
+
`gemini-scheduled-issue-dedup.yml`, `links.yml`, `release-nightly.yml`
|
|
82
|
+
**Type**: GitHub Actions updates
|
|
83
|
+
**Resolution**: Kept upstream versions (CI improvements)
|
|
84
|
+
|
|
85
|
+
### 3. `docs/` (multiple files)
|
|
86
|
+
|
|
87
|
+
**Files**: `changelogs/`, `cli/configuration.md`, `cli/model-routing.md`,
|
|
88
|
+
`cli/model.md`, `cli/settings.md`, `extensions/`, `get-started/`, `hooks/`,
|
|
89
|
+
`troubleshooting.md`
|
|
90
|
+
**Type**: Documentation updates
|
|
91
|
+
**Resolution**: Kept upstream versions (updated docs)
|
|
92
|
+
|
|
93
|
+
### 4. `package.json`
|
|
94
|
+
|
|
95
|
+
**Type**: Version and dependency updates
|
|
96
|
+
**Resolution**: Merged both:
|
|
97
|
+
|
|
98
|
+
- Kept Termux: `@mmmbuto/node-pty-android-arm64` in dependencies
|
|
99
|
+
- Updated upstream: All other dependencies and scripts
|
|
100
|
+
|
|
101
|
+
### 5. `packages/cli/src/commands/extensions/`
|
|
102
|
+
|
|
103
|
+
**Files**: `configure.ts`, `settings.ts` (removed/replaced)
|
|
104
|
+
**Type**: Extension management refactor
|
|
105
|
+
**Resolution**: Kept upstream (new `configure.ts` replaces `settings.ts`)
|
|
106
|
+
|
|
107
|
+
### 6. `packages/cli/src/config/`
|
|
108
|
+
|
|
109
|
+
**Files**: `settings.ts`, `settingsSchema.ts`, `extension-manager.ts`
|
|
110
|
+
**Type**: Settings system refactor
|
|
111
|
+
**Resolution**: Kept upstream with Termux patches preserved (`isTermux()` logic)
|
|
112
|
+
|
|
113
|
+
### 7. `packages/core/src/hooks/`
|
|
114
|
+
|
|
115
|
+
**Files**: `hookEventHandler.ts`, `hookSystem.ts`, `hookTranslator.ts`,
|
|
116
|
+
`index.ts`
|
|
117
|
+
**Type**: Hook system improvements
|
|
118
|
+
**Resolution**: Kept upstream (enhanced hook system)
|
|
119
|
+
|
|
120
|
+
### 8. `packages/core/src/utils/`
|
|
121
|
+
|
|
122
|
+
**Files**: `fileDiffUtils.ts` (new), `shell-permissions.ts` (removed)
|
|
123
|
+
**Type**: Utilities refactor
|
|
124
|
+
**Resolution**: Kept upstream (new file diff utils, removed shell-permissions)
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Upstream Breaking Changes
|
|
129
|
+
|
|
130
|
+
### Removed Files
|
|
131
|
+
|
|
132
|
+
- `docs/cli/configuration.md` → Merged into other docs
|
|
133
|
+
- `docs/get-started/deployment.md` → Deprecated
|
|
134
|
+
- `packages/cli/src/commands/extensions/settings.ts` → Replaced by
|
|
135
|
+
`configure.ts`
|
|
136
|
+
- `packages/core/src/core/sessionHookTriggers.ts` → Removed, use
|
|
137
|
+
`geminiChatHookTriggers`
|
|
138
|
+
- `packages/core/src/utils/shell-permissions.ts` → Removed, replaced by new
|
|
139
|
+
system
|
|
140
|
+
|
|
141
|
+
### New Files
|
|
142
|
+
|
|
143
|
+
- `packages/core/src/utils/fileDiffUtils.ts` + `fileDiffUtils.test.ts` → New
|
|
144
|
+
diff utilities
|
|
145
|
+
- `packages/core/src/scheduler/tool-modifier.ts` + `tool-modifier.test.ts` →
|
|
146
|
+
Tool modifiers
|
|
147
|
+
- `packages/cli/src/commands/extensions/configure.ts` + `configure.test.ts` →
|
|
148
|
+
Extension configure
|
|
149
|
+
- `packages/core/src/hooks/hookEventHandler.ts` + `hookEventHandler.test.ts` →
|
|
150
|
+
Hook events
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Verification Steps Completed
|
|
155
|
+
|
|
156
|
+
### 1. Build Verification
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
npm install # ✅ Completed
|
|
160
|
+
npm run build # ✅ Completed
|
|
161
|
+
npm run bundle # ✅ Completed
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 2. Version Verification
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
node bundle/gemini.js --version # ✅ Shows 0.24.9-termux
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 3. Termux Patches Verification
|
|
171
|
+
|
|
172
|
+
- ✅ `termux-detect.ts` exported in core/index.ts
|
|
173
|
+
- ✅ `postinstall.cjs` exists and runs
|
|
174
|
+
- ✅ PTY package in dependencies
|
|
175
|
+
- ✅ Context memory system preserved
|
|
176
|
+
- ✅ MCP SDK typings shim present
|
|
177
|
+
|
|
178
|
+
### 4. npm Verification
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
npm publish --tag latest # ✅ Published
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 5. GitHub Verification
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
git push origin main # ✅ Pushed
|
|
188
|
+
git push origin v0.24.9-termux # ✅ Tagged
|
|
189
|
+
gh release create v0.24.9-termux # ✅ Created
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Documentation Updates Required
|
|
195
|
+
|
|
196
|
+
### ✅ Completed
|
|
197
|
+
|
|
198
|
+
- [x] `docs/patches/README.md` - Updated to v0.24.9-termux, added new upstream
|
|
199
|
+
features
|
|
200
|
+
- [x] `README.md` - Version updated to 0.24.9-termux
|
|
201
|
+
- [x] `package.json` - Version bump to 0.24.9-termux
|
|
202
|
+
- [x] `.gemini/settings.json` - Settings preserved
|
|
203
|
+
|
|
204
|
+
### 📝 Future Updates
|
|
205
|
+
|
|
206
|
+
- [ ] Update `docs/termux-api/MERGE_STRATEGY.md` if needed
|
|
207
|
+
- [ ] Add release notes to `docs/changelogs/latest.md`
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Risk Assessment
|
|
212
|
+
|
|
213
|
+
| Risk | Probability | Mitigation | Status |
|
|
214
|
+
| -------------------------- | ----------- | ------------------------- | ------------ |
|
|
215
|
+
| Context memory regression | Low | Tested on merge | ✅ Passed |
|
|
216
|
+
| PTY installation failure | Low | Package in dependencies | ✅ Verified |
|
|
217
|
+
| Extension manager breakage | Low | Kept upstream version | ✅ Passed |
|
|
218
|
+
| Build failure | Very Low | prepare-termux handles it | ✅ Passed |
|
|
219
|
+
| npm publish issues | Low | Verified files array | ✅ Published |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Installation Instructions
|
|
224
|
+
|
|
225
|
+
### For Users (npm)
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
npm install -g @mmmbuto/gemini-cli-termux@latest
|
|
229
|
+
# Or specific version
|
|
230
|
+
npm install -g @mmmbuto/gemini-cli-termux@0.24.9-termux
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### For Developers (source)
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
git clone https://github.com/DioNanos/gemini-cli-termux.git
|
|
237
|
+
cd gemini-cli-termux
|
|
238
|
+
npm install
|
|
239
|
+
npm run build && npm run bundle
|
|
240
|
+
node bundle/gemini.js --version # expected: 0.24.9-termux
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Merge Statistics
|
|
246
|
+
|
|
247
|
+
- **Upstream commits merged**: 165
|
|
248
|
+
- **Files modified**: 280
|
|
249
|
+
- **Lines added**: +9659
|
|
250
|
+
- **Lines removed**: -5690
|
|
251
|
+
- **Conflicts resolved**: 8
|
|
252
|
+
- **Test results**: PASS (GEMINI_TEST_REPORT_v0.24.9.md)
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Release Notes Summary
|
|
257
|
+
|
|
258
|
+
### What's New in v0.24.9-termux
|
|
259
|
+
|
|
260
|
+
**From Upstream (google-gemini/gemini-cli)**:
|
|
261
|
+
|
|
262
|
+
- Built-in Agent Skills support
|
|
263
|
+
- New tool modifier system for enhanced tool behavior
|
|
264
|
+
- File diff utilities for better code comparison
|
|
265
|
+
- Enhanced settings management and validation
|
|
266
|
+
- Updated Ink to v6.4.7 for UI improvements
|
|
267
|
+
- Simplified hook system with event handlers
|
|
268
|
+
- Updated system prompts for non-interactive mode
|
|
269
|
+
|
|
270
|
+
**Termux-Specific**:
|
|
271
|
+
|
|
272
|
+
- PTY package moved to dependencies for auto-install
|
|
273
|
+
- All Termux patches preserved and verified
|
|
274
|
+
- Context memory system maintained
|
|
275
|
+
- Mobile-first settings experience
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Next Steps
|
|
280
|
+
|
|
281
|
+
### Short Term
|
|
282
|
+
|
|
283
|
+
- [ ] Monitor npm downloads and user feedback
|
|
284
|
+
- [ ] Update test reports if issues found
|
|
285
|
+
- [ ] Prepare for next upstream sync
|
|
286
|
+
|
|
287
|
+
### Long Term
|
|
288
|
+
|
|
289
|
+
- [ ] Consider integrating upstream JIT context as optional fallback
|
|
290
|
+
- [ ] Evaluate adding more Termux-specific optimizations
|
|
291
|
+
- [ ] Track upstream feature roadmap for future merges
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
**Author**: DioNanos
|
|
296
|
+
**Date**: 2026-01-10
|
|
297
|
+
**Status**: ✅ Released
|
|
298
|
+
**Tag**: v0.24.9-termux
|
|
299
|
+
**GitHub Release**:
|
|
300
|
+
https://github.com/DioNanos/gemini-cli-termux/releases/tag/v0.24.9-termux
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
# Upstream 0.24.9 Features - Termux Integration
|
|
2
|
+
|
|
3
|
+
**Date**: 2026-01-10
|
|
4
|
+
**Upstream Base**: google-gemini/gemini-cli@main
|
|
5
|
+
**Termux Version**: v0.24.9-termux
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This document summarizes the new upstream features integrated in v0.24.9-termux
|
|
12
|
+
and their compatibility with Termux. All features have been tested and verified
|
|
13
|
+
to work correctly on Android/Termux.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## New Features
|
|
18
|
+
|
|
19
|
+
### 1. Built-in Agent Skills
|
|
20
|
+
|
|
21
|
+
**Commit**: `461c277bf`
|
|
22
|
+
**Location**: `packages/core/src/skills/`, `packages/cli/src/commands/skills/`
|
|
23
|
+
|
|
24
|
+
**Description**:
|
|
25
|
+
|
|
26
|
+
- Native skills system built into the CLI
|
|
27
|
+
- Skills can be loaded, enabled, disabled, and listed
|
|
28
|
+
- Skills extend agent capabilities with specialized knowledge
|
|
29
|
+
- Similar to extensions but built into the core
|
|
30
|
+
|
|
31
|
+
**Termux Compatibility**: ✅ Fully Compatible
|
|
32
|
+
|
|
33
|
+
**Usage**:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# List available skills
|
|
37
|
+
gemini /skills list
|
|
38
|
+
|
|
39
|
+
# Enable a skill
|
|
40
|
+
gemini /skills enable <skill-name>
|
|
41
|
+
|
|
42
|
+
# Disable a skill
|
|
43
|
+
gemini /skills disable <skill-name>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Notes**:
|
|
47
|
+
|
|
48
|
+
- Skills are stored in `.gemini/skills/` directory
|
|
49
|
+
- Format is similar to extensions with `SKILL.md` metadata
|
|
50
|
+
- Works correctly with Termux filesystem
|
|
51
|
+
- No additional dependencies required
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### 2. Tool Modifier System
|
|
56
|
+
|
|
57
|
+
**Commit**: `packages/core/src/scheduler/tool-modifier.ts` (new)
|
|
58
|
+
**Location**: `packages/core/src/scheduler/tool-modifier.ts` + tests
|
|
59
|
+
|
|
60
|
+
**Description**:
|
|
61
|
+
|
|
62
|
+
- New system for modifying tool calls before execution
|
|
63
|
+
- Allows for tool call preprocessing, validation, and transformation
|
|
64
|
+
- Can add, remove, or modify tool arguments
|
|
65
|
+
- Useful for security, policy enforcement, and UX improvements
|
|
66
|
+
|
|
67
|
+
**Termux Compatibility**: ✅ Fully Compatible
|
|
68
|
+
|
|
69
|
+
**Technical Details**:
|
|
70
|
+
|
|
71
|
+
- Event-based architecture with tool modification hooks
|
|
72
|
+
- Works with all existing tools (shell, edit, mcp, etc.)
|
|
73
|
+
- No performance impact on Termux
|
|
74
|
+
- Tested with shell tool and memory tools
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### 3. File Diff Utilities
|
|
79
|
+
|
|
80
|
+
**Commit**: `packages/core/src/utils/fileDiffUtils.ts` (new)
|
|
81
|
+
**Location**: `packages/core/src/utils/fileDiffUtils.ts` + tests
|
|
82
|
+
|
|
83
|
+
**Description**:
|
|
84
|
+
|
|
85
|
+
- New utility for comparing file contents
|
|
86
|
+
- Generates unified diff format
|
|
87
|
+
- Used by edit tool and other file operations
|
|
88
|
+
- Better error messages for file changes
|
|
89
|
+
|
|
90
|
+
**Termux Compatibility**: ✅ Fully Compatible
|
|
91
|
+
|
|
92
|
+
**Features**:
|
|
93
|
+
|
|
94
|
+
- Unified diff format (standard patch format)
|
|
95
|
+
- Line-by-line comparison
|
|
96
|
+
- Efficient implementation (no heavy dependencies)
|
|
97
|
+
- Works with large files
|
|
98
|
+
|
|
99
|
+
**Usage** (internal):
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
import { getFileDiff, applyFileDiff } from '@google/gemini-cli-core';
|
|
103
|
+
|
|
104
|
+
const diff = getFileDiff(oldContent, newContent, 'file.ts');
|
|
105
|
+
console.log(diff); // unified diff format
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### 4. Enhanced Settings Management
|
|
111
|
+
|
|
112
|
+
**Commits**: Multiple in `packages/cli/src/config/settings.ts`
|
|
113
|
+
**Location**: `packages/cli/src/config/settings.ts` + tests
|
|
114
|
+
|
|
115
|
+
**Description**:
|
|
116
|
+
|
|
117
|
+
- Refactored settings system with improved validation
|
|
118
|
+
- New settings schema with better error messages
|
|
119
|
+
- Simplified migration logic (removed legacy V1 migration)
|
|
120
|
+
- Better type safety
|
|
121
|
+
|
|
122
|
+
**Termux Compatibility**: ✅ Fully Compatible
|
|
123
|
+
|
|
124
|
+
**Changes**:
|
|
125
|
+
|
|
126
|
+
- Settings stored in `.gemini/settings.json` (tracked in git)
|
|
127
|
+
- Schema validation at startup
|
|
128
|
+
- Clear error messages for invalid settings
|
|
129
|
+
- Automatic defaults for missing values
|
|
130
|
+
|
|
131
|
+
**Notes**:
|
|
132
|
+
|
|
133
|
+
- Termux-specific settings (TTS, compact UI) preserved
|
|
134
|
+
- No changes to mobile-first rendering
|
|
135
|
+
- Settings file remains compatible across versions
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### 5. Updated Ink to v6.4.7
|
|
140
|
+
|
|
141
|
+
**Commit**: `b54e688c7`
|
|
142
|
+
**Location**: `package.json` (dependencies)
|
|
143
|
+
|
|
144
|
+
**Description**:
|
|
145
|
+
|
|
146
|
+
- Updated from previous Ink version to v6.4.7
|
|
147
|
+
- Bug fixes and performance improvements
|
|
148
|
+
- Better handling of keyboard input
|
|
149
|
+
- Improved rendering on mobile terminals
|
|
150
|
+
|
|
151
|
+
**Termux Compatibility**: ✅ Fully Compatible
|
|
152
|
+
|
|
153
|
+
**Benefits**:
|
|
154
|
+
|
|
155
|
+
- Smoother scrolling on Termux
|
|
156
|
+
- Better handling of Android keyboard input
|
|
157
|
+
- Fixed rendering issues with wide characters
|
|
158
|
+
- Lower CPU usage on mobile devices
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 6. Hook Event Handler
|
|
163
|
+
|
|
164
|
+
**Commit**: `packages/core/src/hooks/hookEventHandler.ts` (new)
|
|
165
|
+
**Location**: `packages/core/src/hooks/hookEventHandler.ts` + tests
|
|
166
|
+
|
|
167
|
+
**Description**:
|
|
168
|
+
|
|
169
|
+
- Centralized event handler for hook system
|
|
170
|
+
- Improved hook execution and error handling
|
|
171
|
+
- Better logging and debugging support
|
|
172
|
+
- More reliable hook triggers
|
|
173
|
+
|
|
174
|
+
**Termux Compatibility**: ✅ Fully Compatible
|
|
175
|
+
|
|
176
|
+
**Technical Details**:
|
|
177
|
+
|
|
178
|
+
- Event-based architecture
|
|
179
|
+
- Proper error propagation
|
|
180
|
+
- Detailed logging for debugging
|
|
181
|
+
- Works with all hook types
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
### 7. Updated System Prompts
|
|
186
|
+
|
|
187
|
+
**Commit**: `b08b0d715`
|
|
188
|
+
**Location**: System prompt configuration
|
|
189
|
+
|
|
190
|
+
**Description**:
|
|
191
|
+
|
|
192
|
+
- Updated system prompts to prefer non-interactive commands
|
|
193
|
+
- Better handling of command execution in headless mode
|
|
194
|
+
- Improved agent behavior for batch processing
|
|
195
|
+
|
|
196
|
+
**Termux Compatibility**: ✅ Fully Compatible
|
|
197
|
+
|
|
198
|
+
**Impact**:
|
|
199
|
+
|
|
200
|
+
- Better performance in non-interactive mode
|
|
201
|
+
- Fewer prompts for automation scripts
|
|
202
|
+
- Improved output format for `gemini -o json`
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
### 8. Removed sessionHookTriggers
|
|
207
|
+
|
|
208
|
+
**Commit**: `356f76e54`
|
|
209
|
+
**Location**: `packages/core/src/core/` (removed)
|
|
210
|
+
|
|
211
|
+
**Description**:
|
|
212
|
+
|
|
213
|
+
- Removed `sessionHookTriggers.ts` (deprecated)
|
|
214
|
+
- Replaced by `geminiChatHookTriggers` in gemini.tsx
|
|
215
|
+
- Simplified core exports
|
|
216
|
+
|
|
217
|
+
**Termux Compatibility**: ✅ Fully Compatible (no impact)
|
|
218
|
+
|
|
219
|
+
**Action Taken**:
|
|
220
|
+
|
|
221
|
+
- Updated `packages/core/src/index.ts` to remove export
|
|
222
|
+
- No changes required in Termux-specific code
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Deprecated/Removed Features
|
|
227
|
+
|
|
228
|
+
### Removed Files
|
|
229
|
+
|
|
230
|
+
| File | Reason | Termux Impact |
|
|
231
|
+
| -------------------------------------------------- | ---------------------------- | ------------- |
|
|
232
|
+
| `docs/cli/configuration.md` | Consolidated into other docs | None |
|
|
233
|
+
| `docs/get-started/deployment.md` | Outdated, no longer relevant | None |
|
|
234
|
+
| `packages/cli/src/commands/extensions/settings.ts` | Replaced by `configure.ts` | None |
|
|
235
|
+
| `packages/core/src/core/sessionHookTriggers.ts` | Deprecated, unused | None |
|
|
236
|
+
| `packages/core/src/utils/shell-permissions.ts` | Replaced by new system | None |
|
|
237
|
+
|
|
238
|
+
### Migration Guide
|
|
239
|
+
|
|
240
|
+
If you were using removed features:
|
|
241
|
+
|
|
242
|
+
1. **Extension Settings** → Use `gemini /extensions configure`
|
|
243
|
+
2. **Session Hook Triggers** → Use `geminiChatHookTriggers` in CLI
|
|
244
|
+
3. **Shell Permissions** → New system handles this automatically
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Testing Results
|
|
249
|
+
|
|
250
|
+
### Automated Tests
|
|
251
|
+
|
|
252
|
+
All existing tests pass on Termux:
|
|
253
|
+
|
|
254
|
+
- ✅ Unit tests (TypeScript)
|
|
255
|
+
- ✅ Integration tests
|
|
256
|
+
- ✅ Hook system tests
|
|
257
|
+
- ✅ Tool modifier tests
|
|
258
|
+
- ✅ File diff tests
|
|
259
|
+
- ✅ Settings validation tests
|
|
260
|
+
|
|
261
|
+
### Manual Testing
|
|
262
|
+
|
|
263
|
+
Manually tested on Termux:
|
|
264
|
+
|
|
265
|
+
- ✅ Built-in Agent Skills (list, enable, disable)
|
|
266
|
+
- ✅ Tool modifiers (shell tool, edit tool)
|
|
267
|
+
- ✅ File diff utilities
|
|
268
|
+
- ✅ Settings management (UI, validation)
|
|
269
|
+
- ✅ Ink v6.4.7 rendering
|
|
270
|
+
- ✅ Hook event handling
|
|
271
|
+
- ✅ Non-interactive mode with JSON output
|
|
272
|
+
|
|
273
|
+
### Performance
|
|
274
|
+
|
|
275
|
+
No performance degradation observed on Termux:
|
|
276
|
+
|
|
277
|
+
- Startup time: ~2-3s (same as v0.24.8)
|
|
278
|
+
- Memory usage: ~120-150MB (same as v0.24.8)
|
|
279
|
+
- Response time: No noticeable difference
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Known Issues
|
|
284
|
+
|
|
285
|
+
None at this time. All features tested and working correctly on Termux.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Future Considerations
|
|
290
|
+
|
|
291
|
+
### Potential Improvements for Termux
|
|
292
|
+
|
|
293
|
+
1. **Skills Directory Optimization**
|
|
294
|
+
- Current: Skills loaded from `.gemini/skills/`
|
|
295
|
+
- Future: Consider pre-bundled Termux skills
|
|
296
|
+
|
|
297
|
+
2. **Tool Modifiers for Mobile**
|
|
298
|
+
- Current: Generic tool modifiers
|
|
299
|
+
- Future: Add mobile-specific modifiers (e.g., battery-aware tool execution)
|
|
300
|
+
|
|
301
|
+
3. **File Diff for Mobile Screens**
|
|
302
|
+
- Current: Standard unified diff
|
|
303
|
+
- Future: Optimize diff output for small mobile screens
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Compatibility Matrix
|
|
308
|
+
|
|
309
|
+
| Feature | v0.24.8-termux | v0.24.9-termux | Notes |
|
|
310
|
+
| --------------- | -------------- | -------------- | --------------------- |
|
|
311
|
+
| Built-in Skills | ❌ No | ✅ Yes | New upstream feature |
|
|
312
|
+
| Tool Modifiers | ❌ No | ✅ Yes | New upstream feature |
|
|
313
|
+
| File Diff Utils | ❌ No | ✅ Yes | New upstream feature |
|
|
314
|
+
| Ink v6.4.7 | ❌ v6.x | ✅ v6.4.7 | Updated from upstream |
|
|
315
|
+
| Hook Events | ✅ Basic | ✅ Enhanced | Improved upstream |
|
|
316
|
+
| System Prompts | ✅ Old | ✅ Updated | Updated from upstream |
|
|
317
|
+
| Termux Patches | ✅ All | ✅ All | Preserved |
|
|
318
|
+
| Context Memory | ✅ Yes | ✅ Yes | Termux feature |
|
|
319
|
+
| PTY (ARM64) | ✅ Yes | ✅ Yes | Now in dependencies |
|
|
320
|
+
| Clipboard | ✅ Yes | ✅ Yes | Termux detection |
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Conclusion
|
|
325
|
+
|
|
326
|
+
All upstream features from v0.24.9 are fully compatible with Termux. No breaking
|
|
327
|
+
changes for existing users. New features enhance the Termux experience with
|
|
328
|
+
better agent capabilities, improved tool handling, and smoother UI.
|
|
329
|
+
|
|
330
|
+
**Recommendation**: All Termux users should upgrade to v0.24.9-termux.
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
**Author**: DioNanos
|
|
335
|
+
**Date**: 2026-01-10
|
|
336
|
+
**Status**: ✅ Released and Verified
|
package/bundle/gemini.js
CHANGED
|
@@ -106989,7 +106989,7 @@ import { fileURLToPath as fileURLToPath4 } from "node:url";
|
|
|
106989
106989
|
import path12 from "node:path";
|
|
106990
106990
|
async function getVersion() {
|
|
106991
106991
|
const pkgJson = await getPackageJson(__dirname3);
|
|
106992
|
-
return "0.24.
|
|
106992
|
+
return "0.24.10-termux";
|
|
106993
106993
|
}
|
|
106994
106994
|
var __filename, __dirname3;
|
|
106995
106995
|
var init_version2 = __esm({
|
|
@@ -161946,8 +161946,8 @@ var GIT_COMMIT_INFO, CLI_VERSION;
|
|
|
161946
161946
|
var init_git_commit = __esm({
|
|
161947
161947
|
"packages/core/dist/src/generated/git-commit.js"() {
|
|
161948
161948
|
"use strict";
|
|
161949
|
-
GIT_COMMIT_INFO = "
|
|
161950
|
-
CLI_VERSION = "0.24.
|
|
161949
|
+
GIT_COMMIT_INFO = "97699640a";
|
|
161950
|
+
CLI_VERSION = "0.24.10-termux";
|
|
161951
161951
|
}
|
|
161952
161952
|
});
|
|
161953
161953
|
|
|
@@ -446074,7 +446074,7 @@ var WarningMessage = ({ text }) => {
|
|
|
446074
446074
|
};
|
|
446075
446075
|
|
|
446076
446076
|
// packages/cli/src/generated/git-commit.ts
|
|
446077
|
-
var GIT_COMMIT_INFO2 = "
|
|
446077
|
+
var GIT_COMMIT_INFO2 = "97699640a";
|
|
446078
446078
|
|
|
446079
446079
|
// packages/cli/src/ui/components/AboutBox.tsx
|
|
446080
446080
|
var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
|
|
@@ -487165,7 +487165,7 @@ var homeDirectoryCheck = {
|
|
|
487165
487165
|
}
|
|
487166
487166
|
return null;
|
|
487167
487167
|
} catch (_err) {
|
|
487168
|
-
return "Could not verify
|
|
487168
|
+
return "Could not verify current directory due to a file system error.";
|
|
487169
487169
|
}
|
|
487170
487170
|
}
|
|
487171
487171
|
};
|
|
@@ -487180,7 +487180,7 @@ var rootDirectoryCheck = {
|
|
|
487180
487180
|
}
|
|
487181
487181
|
return null;
|
|
487182
487182
|
} catch (_err) {
|
|
487183
|
-
return "Could not verify
|
|
487183
|
+
return "Could not verify current directory due to a file system error.";
|
|
487184
487184
|
}
|
|
487185
487185
|
}
|
|
487186
487186
|
};
|
|
@@ -487189,6 +487189,9 @@ var WARNING_CHECKS = [
|
|
|
487189
487189
|
rootDirectoryCheck
|
|
487190
487190
|
];
|
|
487191
487191
|
async function getUserStartupWarnings(settings, workspaceRoot = process61.cwd()) {
|
|
487192
|
+
if (settings.ui?.hideBanner) {
|
|
487193
|
+
return [];
|
|
487194
|
+
}
|
|
487192
487195
|
const results = await Promise.all(
|
|
487193
487196
|
WARNING_CHECKS.map((check2) => check2.check(workspaceRoot, settings))
|
|
487194
487197
|
);
|
|
@@ -490570,6 +490573,10 @@ main().catch(async (error40) => {
|
|
|
490570
490573
|
* Copyright 2026 Google LLC
|
|
490571
490574
|
* SPDX-License-Identifier: Apache-2.0
|
|
490572
490575
|
*/
|
|
490576
|
+
/**
|
|
490577
|
+
* @license
|
|
490578
|
+
* Copyright 2025 Google LLC
|
|
490579
|
+
* SPDX-License-Identifier: Apache-2.0 */
|
|
490573
490580
|
/*! Bundled license information:
|
|
490574
490581
|
|
|
490575
490582
|
react/cjs/react.production.js:
|