Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
b88f049
feat: implement P2P networking capabilities
langowarny Feb 22, 2026
7255c1d
feat: enhance P2P networking features and documentation
langowarny Feb 22, 2026
d5e7443
feat: remove obsolete P2P documentation and configuration files
langowarny Feb 22, 2026
316c015
refactor: update module name and copyright details
langowarny Feb 22, 2026
bbdc891
Merge branch 'dev' into feature/a2a-p2p-network
langowarny Feb 22, 2026
04f7952
feat: enhance P2P networking documentation and CLI functionality
langowarny Feb 23, 2026
e0da249
feat: enhance P2P networking with new features and configurations
langowarny Feb 23, 2026
8ead407
feat: introduce paid value exchange and reputation system in P2P
langowarny Feb 23, 2026
4283919
feat: implement auto-approval and owner approval for P2P tool invocat…
langowarny Feb 23, 2026
6141ecd
feat: add test-p2p target and enhance documentation for P2P features
langowarny Feb 24, 2026
f9aa43f
feat: enhance P2P node key management and security
langowarny Feb 24, 2026
cb2cde9
feat: integrate sandbox exec & security event handling for P2P tools
langowarny Feb 24, 2026
9308f02
feat: implement SQLCipher support and sandbox execution for P2P tools
langowarny Feb 24, 2026
cf19f15
feat: add KMS provider support and enhance security configuration
langowarny Feb 24, 2026
90917c6
feat: enhance P2P handshake and ZKP integration
langowarny Feb 25, 2026
9a9b49b
feat: enhance P2P approval process and security measures
langowarny Feb 25, 2026
32c750b
feat: reorganize command structure and enhance configuration management
langowarny Feb 25, 2026
44423f0
feat: enhance security features and session management in P2P
langowarny Feb 25, 2026
d2bb1be
refactor: standardize route and content type handling in A2A server
langowarny Feb 25, 2026
2856d8a
Merge pull request #23 from langoai/feature/a2a-p2p-network
langowarny Feb 25, 2026
765c146
feat: add test coverage for 12 packages and fix missing P2P config docs
claude Feb 26, 2026
d6c18a2
fix: remove duplicate subprocess_test.go (tests already in executor_t…
claude Feb 26, 2026
6d91c3f
fix: correct cobra Use field assertions in p2p and security CLI tests
claude Feb 26, 2026
26b09f7
Merge pull request #24 from langoai/claude/validate-tests-hkRZq
langowarny Feb 26, 2026
ee4b91c
feat: improve agentic performance with caching, turn limits, and self…
claude Feb 26, 2026
23c0dff
feat: go mod tidy
langowarny Feb 26, 2026
df5cabe
feat: test code fix
langowarny Feb 26, 2026
f9a663b
feat: enhance agentic performance with new features and optimizations
langowarny Feb 26, 2026
05bacf5
feat: enhance agent configuration with new settings and performance m…
langowarny Feb 26, 2026
25e6dbf
feat: enhance lango CLI command handling and testing
langowarny Feb 26, 2026
86060ba
Merge pull request #25 from langoai/claude/improve-lango-performance-…
langowarny Feb 26, 2026
8749bc2
feat: add P2P and advanced security settings to TUI
langowarny Feb 26, 2026
9c8849e
Merge pull request #26 from langoai/feature/setting-updated-for-p2p-s…
langowarny Feb 27, 2026
1082ee5
feat: enhance settings menu with grouped sections and keyword search
claude Feb 27, 2026
478946c
feat: polish settings TUI with breadcrumbs, containers, and consisten…
claude Feb 27, 2026
33f3f56
fix: add missing validators and improve field types in settings forms
claude Feb 27, 2026
2611bd4
feat: add inline description/help text for all settings form fields
claude Feb 27, 2026
bb62b03
feat: auto-fetch available models from provider API for model selection
claude Feb 27, 2026
608ad6e
refactor: unify EmbeddingConfig Provider and ProviderID into single f…
claude Feb 27, 2026
9db187e
feat: add conditional field visibility and simplify settings forms
claude Feb 27, 2026
d55af7c
feat: enhance settings forms with GitHub support and field descrip
langowarny Feb 27, 2026
ddb043c
feat: openspec docs archive and sync
langowarny Feb 27, 2026
548a36d
feat: enhance doctor, onboard cmd with detailed checks & setup steps
langowarny Feb 27, 2026
9a60f5b
feat: add brand banner and clear screen functionality for TUI commands
langowarny Feb 27, 2026
c3f8850
refactor: remove keyring support and related configurations
langowarny Feb 27, 2026
e408cff
feat: implement hardware-backed security tiering for keyring storage
langowarny Feb 27, 2026
a6c10f9
feat: update database path and add observational memory defaults
langowarny Feb 28, 2026
0bf5f53
feat: transition to hardware-backed keyring storage and enhance secur…
langowarny Feb 28, 2026
3a3cccd
Merge pull request #27 from langoai/claude/enhance-settings-menu-sear…
langowarny Feb 28, 2026
ef24751
fix: update TPM provider for go-tpm v0.9.8 compatibility
langowarny Feb 28, 2026
1230a4b
feat: enhance form model with searchable dropdowns and error feedback
langowarny Feb 28, 2026
8e3a1f4
refactor: remove unused tools and configurations from the application
langowarny Feb 28, 2026
57cf739
refactor: streamline form handling and improve error management
langowarny Feb 28, 2026
6e02d5a
feat: remove non-functional CLI skills and enhance tool selection gui…
langowarny Feb 28, 2026
302fcfd
feat: implement auto-renewal for expired sessions in SessionServiceAd…
langowarny Feb 28, 2026
cf5496b
feat: implement lifecycle management for application components
langowarny Feb 28, 2026
b144d64
feat: enhance security features and CLI commands
langowarny Feb 28, 2026
b27846c
feat: update file storage behavior to skip hidden directories
langowarny Feb 28, 2026
819ca45
feat: fix placeholder skill warn spec archive
langowarny Feb 28, 2026
169be88
feat: inject version and build time into Docker images
langowarny Feb 28, 2026
7fa025d
feat: update build process and add release commands
langowarny Feb 28, 2026
f045b9b
Merge pull request #28 from langoai/feature/refactoring-bug-fix
langowarny Feb 28, 2026
3637915
fix: goreleaser config
langowarny Feb 28, 2026
23d5d76
Merge pull request #30 from langoai/feature/fix-goreleaser
langowarny Feb 28, 2026
97d72d8
chore: update GoReleaser action to version 7 in CI workflow
langowarny Feb 28, 2026
2ea1e44
feat: enhance mock clients with thread safety and message retrieval
langowarny Feb 28, 2026
32947fb
Merge pull request #31 from langoai/feature/test-code-race-conditions
langowarny Feb 28, 2026
165eb0e
chore: upgrade golangci-lint and GoReleaser actions to version 7
langowarny Feb 28, 2026
37426cc
Merge pull request #32 from langoai/feature/fix-goreleaser-v7
langowarny Feb 28, 2026
d52a81d
test: increase TTL duration in session store tests for improved relia…
langowarny Feb 28, 2026
3af35ea
refactor: improve error handling and logging consistency
langowarny Feb 28, 2026
523c753
Merge pull request #33 from langoai/feature/test-code-lint-fix
langowarny Feb 28, 2026
7b72184
chore: update CI workflow and add linting error handling
langowarny Feb 28, 2026
60929c9
Merge pull request #34 from langoai/feature/lint-warning-fix-deprecated
langowarny Feb 28, 2026
e069822
fix: update defer statements in TPMProvider to handle errors consiste…
langowarny Feb 28, 2026
2efecde
Merge pull request #35 from langoai/feature/tpm-flush-fix
langowarny Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
85 changes: 85 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
test:
strategy:
matrix:
include:
- runner: ubuntu-latest
goos: linux
- runner: macos-14
goos: darwin
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Install Linux dependencies
if: matrix.goos == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y libsqlite3-dev

- name: Build
run: CGO_ENABLED=1 go build ./...

- name: Test
run: CGO_ENABLED=1 go test -race -cover ./...

- name: Vet
run: go vet ./...

lint:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y libsqlite3-dev

- name: golangci-lint
uses: golangci/golangci-lint-action@v7
with:
version: v2.4.0

goreleaser-check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Set up GoReleaser
uses: goreleaser/goreleaser-action@v7
with:
install-only: true

- name: Validate .goreleaser.yaml
run: goreleaser check
93 changes: 93 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Release

on:
push:
tags:
- "v*"

permissions:
contents: write

jobs:
build:
strategy:
matrix:
include:
- runner: ubuntu-latest
goos: linux
goarch: amd64
- runner: ubuntu-24.04-arm
goos: linux
goarch: arm64
- runner: macos-13
goos: darwin
goarch: amd64
- runner: macos-14
goos: darwin
goarch: arm64
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Install Linux dependencies
if: matrix.goos == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y libsqlite3-dev

- name: Set up GoReleaser
uses: goreleaser/goreleaser-action@v7
with:
install-only: true

- name: Build (split)
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: goreleaser build --split --clean --timeout 60m

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.goos }}-${{ matrix.goarch }}
path: dist/**/*
retention-days: 1

release:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist
pattern: build-*
merge-multiple: true

- name: Set up GoReleaser
uses: goreleaser/goreleaser-action@v7
with:
install-only: true

- name: Release (merge)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: goreleaser continue --merge --timeout 60m
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,14 @@ passphrase.txt

# Build output
bin/
dist/

# Coverage reports
.coverage/

tmp/

# MkDocs build output
site/
site/

*.db
12 changes: 12 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: "2"

linters:
default: standard
exclusions:
generated: strict
presets:
- std-error-handling
rules:
- path: _test\.go
linters:
- errcheck
95 changes: 95 additions & 0 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# yaml-language-server: $schema=https://goreleaser.com/static/schema.json
version: 2

project_name: lango

builds:
- id: lango
binary: lango
main: ./cmd/lango
env:
- CGO_ENABLED=1
goos:
- linux
- darwin
goarch:
- amd64
- arm64
ldflags:
- -s -w
- -X main.Version={{.Version}}
- -X main.BuildTime={{.Date}}

- id: lango-extended
binary: lango
main: ./cmd/lango
env:
- CGO_ENABLED=1
goos:
- linux
- darwin
goarch:
- amd64
- arm64
tags:
- kms_all
ldflags:
- -s -w
- -X main.Version={{.Version}}
- -X main.BuildTime={{.Date}}

archives:
- id: standard
ids:
- lango
name_template: "lango_{{.Version}}_{{.Os}}_{{.Arch}}"
formats:
- tar.gz
files:
- LICENSE*
- README.md

- id: extended
ids:
- lango-extended
name_template: "lango-extended_{{.Version}}_{{.Os}}_{{.Arch}}"
formats:
- tar.gz
files:
- LICENSE*
- README.md

checksum:
name_template: "checksums.txt"
algorithm: sha256

changelog:
sort: asc
groups:
- title: Features
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
order: 0
- title: Bug Fixes
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
order: 1
- title: Refactoring
regexp: '^.*?refactor(\([[:word:]]+\))??!?:.+$'
order: 2
- title: Documentation
regexp: '^.*?docs(\([[:word:]]+\))??!?:.+$'
order: 3
- title: Others
order: 999
filters:
exclude:
- "^test:"
- "^chore:"
- "^ci:"

release:
github:
owner: langoai
name: lango
prerelease: auto
draft: false
name_template: "{{.ProjectName}} v{{.Version}}"
14 changes: 11 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ FROM golang:1.25-bookworm AS builder
WORKDIR /app

# Install SQLite dev headers (required by sqlite-vec-go-bindings)
RUN apt-get update && apt-get install -y --no-install-recommends libsqlite3-dev \
# Install libsqlcipher-dev for SQLCipher transparent DB encryption support
RUN apt-get update && apt-get install -y --no-install-recommends \
libsqlite3-dev \
libsqlcipher-dev \
&& rm -rf /var/lib/apt/lists/*

# Copy go mod files
Expand All @@ -13,8 +16,13 @@ RUN go mod download
# Copy source
COPY . .

# Build with CGO enabled (required by mattn/go-sqlite3)
RUN CGO_ENABLED=1 go build -ldflags="-s -w" -o lango ./cmd/lango
# Version and build time injection (override via --build-arg)
ARG VERSION=dev
ARG BUILD_TIME=unknown

# Build with CGO enabled (required by mattn/go-sqlite3 and sqlite-vec)
# Link against libsqlcipher for transparent DB encryption support
RUN CGO_ENABLED=1 go build -ldflags="-s -w -X main.Version=${VERSION} -X main.BuildTime=${BUILD_TIME}" -o lango ./cmd/lango

# Runtime image
FROM debian:bookworm-slim
Expand Down
Loading