Aixgo v0.3.3: Session Persistence, Runtime Consolidation, and Security Hardening
AI agents that remember with built-in session persistence, automated binary releases, unified runtime API, distributed runtime parity, and complete security baseline
We’re excited to announce Aixgo v0.3.3, a major release bringing enterprise-grade session persistence, a unified runtime API, distributed runtime feature parity, automated binary releases, and comprehensive security hardening. This release transforms how you build stateful AI agents in Go.
What’s New in v0.3.3
Quick Links:
- Session Persistence - AI agents with memory
- Unified Runtime API - Cleaner constructor pattern
- Distributed Runtime - Multi-node orchestration with TLS
- GoReleaser Automation - One-click binary installation
- Security Hardening - Complete security baseline
1. Session Persistence (Major Feature)
AI agents now have memory out of the box. The new pkg/session/ package provides durable conversation history with automatic persistence, checkpoints, and seamless resumption.
Key Features:
- JSONL File Storage - Lightweight, inspectable session storage with append-only writes
- Redis Backend - Distributed session support for multi-node deployments
- Checkpoint/Restore - Save conversation state and rollback when needed
- Runtime Integration -
CallWithSession()automatically manages session lifecycle - Session-Aware Agents - ReAct agents gain access to full conversation history
Quick Example:
// Create session infrastructure
backend, _ := session.NewFileBackend("~/.aixgo/sessions")
mgr := session.NewManager(backend)
defer mgr.Close()
// Create a session for a user
sess, _ := mgr.GetOrCreate(ctx, "assistant", "user-123")
// Call agent with session - history automatically persists
result, _ := rt.CallWithSession(ctx, "assistant", msg, sess.ID())
// Create checkpoint before risky operation
checkpoint, _ := sess.Checkpoint(ctx)
// Restore if needed
sess.Restore(ctx, checkpoint.ID)Why This Matters:
- No More Memory Loss - Agents remember context across restarts
- Production-Ready - Built-in persistence without external dependencies
- Developer Friendly - Sessions are automatic; opt-out for stateless use cases
Performance:
| Operation | Latency |
|---|---|
| Create session | <1ms |
| Append message | <1ms |
| Get 100 messages | <5ms |
| Checkpoint | <1ms |
See SESSIONS.md for comprehensive documentation.
2. Unified Runtime API
The runtime API is now unified with aixgo.NewRuntime() using the functional options pattern:
rt := aixgo.NewRuntime(
aixgo.WithSessionManager(sessionMgr),
aixgo.WithMetrics(metricsCollector),
aixgo.WithTimeout(30*time.Second),
)
rt.Register("agent1", agent1)
rt.Start(ctx)Benefits:
- Cleaner API - Single constructor with optional configuration
- Flexible - Functional options pattern for extensibility
- Future-Proof - Easy to add new options without breaking changes
3. Distributed Runtime Parity
The distributed runtime (DistributedRuntime) now has feature parity with the local runtime.
New Capabilities:
- TLS/mTLS Support
rt, err := runtime.NewDistributedRuntime(
":50051",
runtime.WithTLS(certFile, keyFile, caFile), // mTLS
runtime.WithExternalTLS(), // Service mesh mode
)- gRPC Streaming
Remote agents now support streaming for long-running operations and real-time responses.
- Session Manager Integration
// Distributed runtime with sessions
rt.SetSessionManager(sessionMgr)
// Sessions work transparently across nodes
result, _ := rt.CallWithSession(ctx, "remote-agent", msg, sessID)- Redis Session Backend
For distributed deployments, use Redis for shared session storage:
backend, err := session.NewRedisBackend(
"localhost:6379",
session.RedisOptions{
Password: os.Getenv("REDIS_PASSWORD"),
DB: 0,
KeyPrefix: "aixgo:sessions:",
},
)Use Cases:
- Multi-Node Orchestration - Scale agents across machines
- Service Mesh Deployments - Integrate with Istio, Linkerd
- Kubernetes - Cloud-native agent deployments
- High Availability - Redundant agent instances with shared state
4. GoReleaser Automation (Major Infrastructure Update)
We’ve introduced automated binary releases via GoReleaser and GitHub Actions, making installation significantly easier.
Key Features:
- Single Binary Distribution - Renamed CLI from
orchestratortoaixgofor consistency - Multi-Platform Support - Pre-built binaries for Linux, macOS, and Windows (amd64, arm64)
- Automatic Releases - Push a tag matching
v*to trigger automatic build and publish - SBOM Generation - Security compliance with Software Bill of Materials for all releases
- Optimized Builds - Static binaries (
CGO_ENABLED=0) with stripped symbols for smaller size
Installation Options:
# Download pre-built binary (recommended)
curl -L https://github.com/aixgo-dev/aixgo/releases/latest/download/aixgo_0.3.3_Linux_x86_64.tar.gz | tar xz
sudo mv aixgo /usr/local/bin/
# Install from source
go install github.com/aixgo-dev/aixgo/cmd/aixgo@v0.3.3
# Use as a library
go get github.com/aixgo-dev/aixgo@v0.3.3CLI Simplification:
We’ve streamlined the CLI tools to focus on the core orchestrator functionality:
- Removed:
benchmark,deploy/cloudrun,deploy/k8s,tools- These were experimental and rarely used - Renamed:
cmd/orchestrator→cmd/aixgofor better discoverability - Single Binary: One unified CLI for all orchestration needs
Developer Benefits:
- Faster Onboarding - Download and run without Go installation
- Consistent Versioning - Binary version matches library version
- Reproducible Builds - Checksums and SBOMs for verification
- CI/CD Friendly - Easy integration into pipelines with pre-built binaries
5. Security Hardening (All Alerts Resolved)
We’ve resolved all remaining code scanning alerts from GitHub Advanced Security, achieving a clean security baseline.
Final Security Fixes:
- G402: TLS Configuration - Fixed 5 remaining alerts by replacing
//nolint:gosecwith#nosec G402annotations that GitHub CodeQL recognizes. All instances now include explicit warnings aboutInsecureSkipVerifyusage.
// #nosec G402 -- InsecureSkipVerify required for self-signed certs in dev
// WARNING: Only use in development environments
tlsConfig := &tls.Config{InsecureSkipVerify: true}Previously Addressed (29 Total Fixes):
- G204: Subprocess Injection Prevention
// Before: Vulnerable to command injection
exec.Command("sh", "-c", userInput)
// After: Validated inputs with allowlist
if err := ValidateDeploymentInputs(platform, region); err != nil {
return fmt.Errorf("invalid input: %w", err)
}- G304: Path Traversal Prevention
// Before: Vulnerable to directory traversal
filepath.Join(baseDir, userProvidedPath)
// After: Validated safe paths
if err := ValidateSafeFilePath(path, baseDir); err != nil {
return fmt.Errorf("unsafe path: %w", err)
}
// Session backend validates all components
func validatePathComponent(s string) error {
if strings.Contains(s, "..") || strings.ContainsAny(s, "/\\") {
return fmt.Errorf("invalid path component: %q", s)
}
return nil
}- G402: TLS Security
// Before: InsecureSkipVerify without warning
tls.Config{InsecureSkipVerify: true}
// After: Explicit warning and alternatives
// WARNING: InsecureSkipVerify=true disables certificate validation
// Only use in development. For production:
// 1. Use proper certificates
// 2. Use ExternalTLS for service mesh
// 3. Never expose to untrusted networks- G115: Safe Integer Conversions
// Before: Unsafe conversions
int32(userValue) // Can overflow
// After: Bounds checking
func safeIntToInt32(v int) (int32, error) {
if v < math.MinInt32 || v > math.MaxInt32 {
return 0, fmt.Errorf("value %d out of int32 range", v)
}
return int32(v), nil
}- G404: Cryptographic Randomness
// Before: math/rand for security-critical operations
rand.Intn(100)
// After: crypto/rand for session IDs and tokens
func generateSessionID() string {
b := make([]byte, 16)
if _, err := crypto_rand.Read(b); err != nil {
panic(err)
}
return hex.EncodeToString(b)
}Security Best Practices:
- Example Secrets - All documentation uses placeholder patterns (
<your-api-key>) - Input Validation - Strict allowlists for deployment commands and file paths
- File Permissions - Session storage uses restrictive 0700/0600 permissions
- TLS Warnings - Clear documentation of security implications
See SECURITY.md for comprehensive security guidelines.
Examples
We’ve added two complete session examples:
- session-basic - Session CRUD, checkpoints, and context helpers
- session-react - ReAct agent with full conversation history
Run them:
cd examples/session-basic && go run main.go
cd examples/session-react && go run main.goBreaking Changes
Session Storage Location
Default session storage moved to ~/.aixgo/sessions:
session:
base_dir: ~/.aixgo/sessions # New default (was ./sessions)Installation
Pre-Built Binaries (Recommended)
Download the latest release for your platform:
# Linux (x86_64)
curl -L https://github.com/aixgo-dev/aixgo/releases/download/v0.3.3/aixgo_0.3.3_Linux_x86_64.tar.gz | tar xz
sudo mv aixgo /usr/local/bin/
# Linux (ARM64)
curl -L https://github.com/aixgo-dev/aixgo/releases/download/v0.3.3/aixgo_0.3.3_Linux_arm64.tar.gz | tar xz
sudo mv aixgo /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/aixgo-dev/aixgo/releases/download/v0.3.3/aixgo_0.3.3_Darwin_arm64.tar.gz | tar xz
sudo mv aixgo /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/aixgo-dev/aixgo/releases/download/v0.3.3/aixgo_0.3.3_Darwin_x86_64.tar.gz | tar xz
sudo mv aixgo /usr/local/bin/
# Windows
# Download aixgo_0.3.3_Windows_x86_64.zip from GitHub Releases
# Extract and add to PATHAs a Go Library
go get github.com/aixgo-dev/aixgo@v0.3.3From Source
# Install CLI tool
go install github.com/aixgo-dev/aixgo/cmd/aixgo@v0.3.3
# Or build from source
git clone https://github.com/aixgo-dev/aixgo.git
cd aixgo
git checkout v0.3.3
go build ./cmd/aixgoWhat’s Next
v0.3.4 (February 2026):
- Session encryption at rest
- Audit logging for session operations
- PostgreSQL session backend
- Session retention policies
v0.3.5 (March 2026):
- Conversation branching and trees
- Session search and filtering
- Memory compaction and summarization
v0.4.0 (Q2 2026):
- Semantic search over session history
- Long-term memory with vector stores
- Multi-modal session support (images, audio)
Resources
- Documentation: docs/SESSIONS.md
- Examples: examples/session-basic, examples/session-react
- Feature Catalog: docs/FEATURES.md
- Security Guide: docs/SECURITY.md
Feedback
We’d love to hear from you:
- GitHub Issues: github.com/aixgo-dev/aixgo/issues
- Discussions: github.com/orgs/aixgo-dev/discussions
- Twitter: @aixgo_dev
Contributors
Thank you to everyone who contributed to this release through code, documentation, testing, and feedback.
Aixgo - Production-grade AI agents in Go.