Skip to content

Commit 29f6ea5

Browse files
chore(release): 0.95.0-rc.5 [skip ci] (#355)
## [0.95.0-rc.5](v0.94.0...v0.95.0-rc.1) (2025-12-31) ### 🚀 Features * Add SSH remote terminal support to web interface ([41614cf](41614cf)) ### 🐛 Bug Fixes * Update ADK to v0.17.0 and fix API compatibility issues ([7450b5b](7450b5b)) ### 🧹 Maintenance * **deps:** Bump github.com/creack/pty from 1.1.18 to 1.1.24 ([#354](#354)) ([a1c1daf](a1c1daf)) * **deps:** Bump github.com/gorilla/websocket from 1.5.0 to 1.5.3 ([#353](#353)) ([6953bf1](6953bf1)) * Cleanup comments ([68e9075](68e9075)) * Cleanup IDE diagnostic warnings ([ae815b2](ae815b2)) --------- Signed-off-by: Eden Reich <[email protected]> Co-authored-by: semantic-release-bot <[email protected]>
1 parent 68e9075 commit 29f6ea5

File tree

21 files changed

+734
-474
lines changed

21 files changed

+734
-474
lines changed

.flox/env/manifest.lock

Lines changed: 318 additions & 317 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.flox/env/manifest.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ ripgrep.version = "^15.1.0"
2929
markdownlint-cli.pkg-path = "markdownlint-cli"
3030
markdownlint-cli.version = "^0.47.0"
3131
claude-code.pkg-path = "claude-code"
32-
claude-code.version = "^2.0.74"
32+
claude-code.version = "^2.0.76"
3333
docker.pkg-path = "docker"
3434
docker.version = "^29.1.2"
3535
docker-compose.pkg-path = "docker-compose"

.github/workflows/artifacts.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
echo "commit=$COMMIT" >> $GITHUB_OUTPUT
5757
echo "date=$DATE" >> $GITHUB_OUTPUT
5858
59-
- name: Build binary (Linux portable - no CGO/SQLite for maximum compatibility)
59+
- name: Build binary (Linux portable - pure Go, no CGO dependencies)
6060
if: matrix.goos == 'linux'
6161
run: |
6262
docker run --rm \
@@ -66,7 +66,7 @@ jobs:
6666
golang:1.25-alpine3.23 \
6767
sh -c "go build -ldflags '-w -s -X github.com/inference-gateway/cli/cmd.version=${{ steps.version.outputs.version }} -X github.com/inference-gateway/cli/cmd.commit=${{ steps.version.outputs.commit }} -X github.com/inference-gateway/cli/cmd.date=${{ steps.version.outputs.date }}' -o infer-${{ matrix.goos }}-${{ matrix.goarch }} ."
6868
69-
- name: Build binary (macOS native with CGO for clipboard support)
69+
- name: Build binary (macOS with CGO for clipboard image support)
7070
if: matrix.goos == 'darwin'
7171
env:
7272
CGO_ENABLED: ${{ matrix.cgo }}

.github/workflows/ci.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,9 @@ jobs:
9797
go-version-file: 'go.mod'
9898
cache: true
9999

100-
- name: Install build dependencies
101-
run: |
102-
sudo apt-get update
103-
sudo apt-get install -y gcc libsqlite3-dev
104-
105100
- name: Build project
106-
env:
107-
CGO_ENABLED: 1
108101
run: |
109102
go build \
110-
-tags libsqlite3 \
111103
-ldflags "\
112104
-w -s \
113105
-X github.com/inference-gateway/cli/cmd.version=${{ github.ref_name }} \
@@ -129,12 +121,5 @@ jobs:
129121
go-version-file: 'go.mod'
130122
cache: true
131123

132-
- name: Install build dependencies
133-
run: |
134-
sudo apt-get update
135-
sudo apt-get install -y gcc libsqlite3-dev
136-
137124
- name: Run tests
138-
env:
139-
CGO_ENABLED: 1
140-
run: go test -tags libsqlite3 ./...
125+
run: go test ./...

.infer/config.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,12 @@ agent:
249249
- If accepted, YOU will execute this plan. Make it specific and actionable!
250250
- Call RequestPlanApproval ONLY when your plan is complete and ready
251251
- If you need clarification, ASK - don't guess!
252+
system_prompt_remote: |-
253+
Remote system administration agent. You are operating on a remote machine via SSH.
254+
255+
FOCUS: System operations, service management, monitoring, diagnostics, and infrastructure tasks.
256+
257+
CONTEXT: This is a shared system environment, not a project workspace. Users may be managing servers, containers, services, or general infrastructure.
252258
system_reminders:
253259
enabled: true
254260
interval: 4
@@ -625,3 +631,10 @@ web:
625631
port: 3000
626632
host: localhost
627633
session_inactivity_mins: 5
634+
ssh:
635+
enabled: false
636+
use_ssh_config: true
637+
known_hosts_path: ~/.ssh/known_hosts
638+
auto_install: true
639+
install_version: latest
640+
servers: []

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CLAUDE.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The project uses Clean Architecture with domain-driven design patterns.
1313
### Development Commands
1414

1515
```bash
16-
# Build the binary
16+
# Build the binary (pure Go, no CGO required)
1717
task build
1818

1919
# Run all tests
@@ -33,6 +33,9 @@ task check
3333

3434
# Complete development workflow (format, build, test)
3535
task dev
36+
37+
# Verify dependencies
38+
task verify:deps
3639
```
3740

3841
### Module Management
@@ -715,7 +718,7 @@ Key third-party libraries:
715718
- **Lipgloss**: Styling for terminal output
716719
- **go-redis**: Redis client for storage backend
717720
- **lib/pq**: PostgreSQL driver
718-
- **modernc.org/sqlite**: CGO-free SQLite driver
721+
- **modernc.org/sqlite**: Pure Go SQLite driver (no CGO required)
719722
- **metoro-io/mcp-golang**: MCP (Model Context Protocol) client library
720723

721724
## Development Environment

Taskfile.yml

Lines changed: 23 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,7 @@ tasks:
1919
build:
2020
desc: Build the CLI binary
2121
cmds:
22-
- |
23-
if ! command -v gcc >/dev/null 2>&1 && ! command -v clang >/dev/null 2>&1; then
24-
echo "ERROR: C compiler not found. Required for SQLite support."
25-
echo "Install: build-essential (Linux) or Xcode CLI Tools (macOS)"
26-
exit 1
27-
fi
28-
- CGO_ENABLED=1 go build -tags libsqlite3 -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o {{.BINARY_NAME}} {{.MAIN_PACKAGE}}
22+
- go build -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o {{.BINARY_NAME}} {{.MAIN_PACKAGE}}
2923
sources:
3024
- "**/*.go"
3125
- go.mod
@@ -36,7 +30,7 @@ tasks:
3630
install:
3731
desc: Install the CLI from source
3832
cmds:
39-
- CGO_ENABLED=1 go build -tags libsqlite3 -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o $(go env GOPATH)/bin/{{.BINARY_NAME}} {{.MAIN_PACKAGE}}
33+
- go build -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o $(go env GOPATH)/bin/{{.BINARY_NAME}} {{.MAIN_PACKAGE}}
4034

4135
clean:
4236
desc: Clean build artifacts
@@ -47,17 +41,17 @@ tasks:
4741
test:
4842
desc: Run all tests
4943
cmds:
50-
- CGO_ENABLED=1 go test -tags libsqlite3 ./...
44+
- go test ./...
5145

5246
test:verbose:
5347
desc: Run tests with verbose output
5448
cmds:
55-
- CGO_ENABLED=1 go test -tags libsqlite3 -v ./...
49+
- go test -v ./...
5650

5751
test:coverage:
5852
desc: Run tests with coverage report
5953
cmds:
60-
- CGO_ENABLED=1 go test -tags libsqlite3 -cover ./...
54+
- go test -cover ./...
6155

6256
lint:
6357
desc: Run linter (requires golangci-lint)
@@ -85,35 +79,18 @@ tasks:
8579
cmds:
8680
- go mod download
8781

88-
verify:cgo:
89-
desc: Verify CGO and SQLite dependencies
82+
verify:deps:
83+
desc: Verify Go dependencies
9084
cmds:
9185
- |
92-
echo "Checking C compiler..."
93-
if command -v gcc >/dev/null 2>&1; then
94-
echo "✓ GCC found: $(gcc --version | head -n1)"
95-
elif command -v clang >/dev/null 2>&1; then
96-
echo "✓ Clang found: $(clang --version | head -n1)"
97-
else
98-
echo "✗ No C compiler found"
99-
echo "Install: build-essential (Linux) or Xcode CLI Tools (macOS)"
100-
exit 1
101-
fi
102-
103-
echo "Checking SQLite library..."
104-
if pkg-config --exists sqlite3 2>/dev/null; then
105-
echo "✓ SQLite found: $(pkg-config --modversion sqlite3)"
106-
else
107-
echo "⚠ SQLite not detected via pkg-config (may still work if installed)"
108-
fi
109-
110-
echo "Checking CGO..."
111-
CGO_STATUS=$(go env CGO_ENABLED)
112-
if [ "$CGO_STATUS" = "1" ]; then
113-
echo "✓ CGO enabled"
114-
else
115-
echo "⚠ CGO disabled (will be enabled for build tasks)"
116-
fi
86+
echo "Checking Go version..."
87+
go version
88+
echo ""
89+
echo "Checking dependencies..."
90+
go mod verify
91+
echo "✓ All dependencies verified"
92+
echo ""
93+
echo "Note: This CLI uses pure Go dependencies (no CGO required)"
11794
11895
run:
11996
desc: Run the CLI locally
@@ -151,18 +128,15 @@ tasks:
151128
- test
152129

153130
release:build:
154-
desc: Build release binary for current platform only (multi-platform builds use GitHub Actions with native runners)
131+
desc: Build release binary for current platform only
155132
cmds:
156133
- mkdir -p dist
157134
- |
158-
echo "Building for native platform only..."
135+
echo "Building for native platform..."
159136
GOOS=$(go env GOOS)
160137
GOARCH=$(go env GOARCH)
161-
CGO_ENABLED=1 go build -tags libsqlite3 -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o dist/{{.BINARY_NAME}}-${GOOS}-${GOARCH} {{.MAIN_PACKAGE}}
138+
go build -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o dist/{{.BINARY_NAME}}-${GOOS}-${GOARCH} {{.MAIN_PACKAGE}}
162139
echo "✓ Built dist/{{.BINARY_NAME}}-${GOOS}-${GOARCH}"
163-
echo ""
164-
echo "Note: Cross-platform builds with dynamic SQLite linking require native runners."
165-
echo "Use GitHub Actions for multi-platform releases."
166140
- cd dist && sha256sum {{.BINARY_NAME}}-* > checksums.txt
167141
- |
168142
if command -v cosign >/dev/null 2>&1; then
@@ -173,23 +147,23 @@ tasks:
173147
fi
174148
175149
release:build:darwin:
176-
desc: Build macOS binary with CGO enabled (for clipboard image support)
150+
desc: Build macOS binary
177151
vars:
178152
GOARCH:
179153
sh: go env GOARCH
180154
cmds:
181155
- mkdir -p dist
182-
- CGO_ENABLED=1 GOOS=darwin GOARCH={{.GOARCH}} go build -tags libsqlite3 -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o dist/{{.BINARY_NAME}}-darwin-{{.GOARCH}} {{.MAIN_PACKAGE}}
156+
- GOOS=darwin GOARCH={{.GOARCH}} go build -ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" -o dist/{{.BINARY_NAME}}-darwin-{{.GOARCH}} {{.MAIN_PACKAGE}}
183157

184158
release:build:linux:
185-
desc: Build portable Linux binary using Docker (no CGO/SQLite for maximum compatibility)
159+
desc: Build portable Linux binary using Docker
186160
vars:
187161
GOARCH:
188162
sh: go env GOARCH
189163
cmds:
190164
- mkdir -p dist
191165
- |
192-
echo "Building portable Linux binary using Docker (no SQLite dependencies)..."
166+
echo "Building portable Linux binary using Docker..."
193167
docker run --rm \
194168
-v "{{.PWD}}":/build \
195169
-w /build \
@@ -198,7 +172,7 @@ tasks:
198172
go build \
199173
-ldflags "-w -s -X github.com/inference-gateway/cli/cmd.version={{.VERSION}} -X github.com/inference-gateway/cli/cmd.commit={{.COMMIT}} -X github.com/inference-gateway/cli/cmd.date={{.DATE}}" \
200174
-o dist/{{.BINARY_NAME}}-linux-{{.GOARCH}} .'
201-
echo "✓ Built portable dist/{{.BINARY_NAME}}-linux-{{.GOARCH}} (JSONL/Redis/PostgreSQL support, no SQLite)"
175+
echo "✓ Built portable dist/{{.BINARY_NAME}}-linux-{{.GOARCH}} (pure Go, all storage backends supported)"
202176
203177
container:build:
204178
desc: Build container image locally for testing

config/config.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ type AgentConfig struct {
311311
Model string `yaml:"model" mapstructure:"model"`
312312
SystemPrompt string `yaml:"system_prompt" mapstructure:"system_prompt"`
313313
SystemPromptPlan string `yaml:"system_prompt_plan" mapstructure:"system_prompt_plan"`
314+
SystemPromptRemote string `yaml:"system_prompt_remote" mapstructure:"system_prompt_remote"`
314315
SystemReminders SystemRemindersConfig `yaml:"system_reminders" mapstructure:"system_reminders"`
315316
VerboseTools bool `yaml:"verbose_tools" mapstructure:"verbose_tools"`
316317
MaxTurns int `yaml:"max_turns" mapstructure:"max_turns"`
@@ -806,6 +807,11 @@ EXAMPLE:
806807
<assistant>Now I'll create a pull request</assistant>
807808
<tool>Github(...)</tool>
808809
`,
810+
SystemPromptRemote: `Remote system administration agent. You are operating on a remote machine via SSH.
811+
812+
FOCUS: System operations, service management, monitoring, diagnostics, and infrastructure tasks.
813+
814+
CONTEXT: This is a shared system environment, not a project workspace. Users may be managing servers, containers, services, or general infrastructure.`,
809815
SystemReminders: SystemRemindersConfig{
810816
Enabled: true,
811817
Interval: 4,
@@ -1071,6 +1077,9 @@ func (c *Config) GetTimeout() int {
10711077
}
10721078

10731079
func (c *Config) GetSystemPrompt() string {
1080+
if os.Getenv("INFER_REMOTE_MANAGED") == "true" && c.Agent.SystemPromptRemote != "" {
1081+
return c.Agent.SystemPromptRemote
1082+
}
10741083
return c.Agent.SystemPrompt
10751084
}
10761085

0 commit comments

Comments
 (0)