Commit graph

27 commits

Author SHA1 Message Date
Virgil
f9e2948176 feat(ai): make RAG facade fail soft
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 2m27s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 05:58:24 +00:00
Claude
0d5d780bcc
chore: update dependencies to dappco.re tagged versions
All checks were successful
Security Scan / security (push) Successful in 11s
Test / test (push) Successful in 2m37s
Security Scan / security (pull_request) Successful in 8s
Test / test (pull_request) Successful in 49s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 01:10:25 +00:00
Claude
8a68ed5160
chore: migrate to dappco.re vanity import path
Some checks failed
Security Scan / security (push) Successful in 9s
Test / test (push) Failing after 23s
Module path: forge.lthn.ai/core/go-ai -> dappco.re/go/core/ai

Updated all .go imports for migrated sibling packages:
- forge.lthn.ai/core/go-log -> dappco.re/go/core/log
- forge.lthn.ai/core/go-io -> dappco.re/go/core/io
- forge.lthn.ai/core/go-i18n -> dappco.re/go/core/i18n

Added //go:build ignore to cmd/lab/cmd_lab.go (pre-existing broken
import: forge.lthn.ai/lthn/lem/pkg/lab was removed from LEM).

Packages not yet migrated (left as-is): cli, go-rag, go-scm,
go-process, mcp, api, go-crypt, go-inference, go-ml, go-mlx.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:52:57 +00:00
Snider
af8fd47e3f chore(deps): bump ecosystem deps to latest
Some checks failed
Security Scan / security (push) Successful in 9s
Test / test (push) Failing after 1m54s
go-crypt v0.1.10, go-i18n v0.1.6, go-io v0.1.5, go-log v0.0.4,
cli v0.3.5, go v0.3.1, go-inference v0.1.4

Note: cmd/lab and cmd/rag have unresolvable transitive deps
(lem/pkg/lab not published, go-rag still on old go/pkg/i18n path).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:15:56 +00:00
Snider
569f553b1a fix(ai): DX audit — update CLAUDE.md, add tests, fix io consistency
Some checks failed
Security Scan / security (pull_request) Successful in 9s
Test / test (pull_request) Failing after 1m33s
- CLAUDE.md: remove deleted daemon/ entry, add embed-bench/ and lab/,
  fix build commands for go workspace (./... → module path),
  update error handling guidance to coreerr.E(), remove stale
  cli.AddDaemonCommand reference
- Replace os.MkdirAll with coreio.Local.EnsureDir in bench/test code
- Add 14 unit tests for metrics (Record, ReadEvents, Summary, sortedMap,
  readMetricsFile edge cases) — ai/ coverage 65.3% → 67.3%
- Add parseDuration tests for cmd/metrics — coverage 0% → 24.6%
- No fmt.Errorf or errors.New violations found
- No os.ReadFile/os.WriteFile violations found

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:01:21 +00:00
Snider
be522ad68f chore: update dependencies
Some checks failed
Security Scan / security (push) Successful in 9s
Test / test (push) Failing after 1m26s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:43:29 +00:00
Snider
890769734a chore: sync go.mod dependencies
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:37:50 +00:00
Snider
18992a70d9 fix: align indirect dependency versions via go work sync
Some checks failed
Security Scan / security (push) Successful in 8s
Test / test (push) Failing after 2m1s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 13:42:30 +00:00
Snider
94ec6e3e0a fix: update stale import paths and dependency versions from extraction
Some checks are pending
Test / test (push) Waiting to run
Security Scan / security (push) Successful in 9s
Resolve stale forge.lthn.ai/core/cli v0.1.0 references (tag never existed,
earliest is v0.0.1) and regenerate go.sum via workspace-aware go mod tidy.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 13:38:59 +00:00
Snider
badcfe9a78 refactor: swap pkg imports to standalone modules
Some checks failed
Security Scan / security (push) Successful in 11s
Test / test (push) Failing after 1m37s
- pkg/ws → go-ws
- pkg/webview → go-webview
- pkg/lab → lthn/lem/pkg/lab
- pkg/process → go-process (from prior session)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 13:48:09 +00:00
Snider
dfe474a239 refactor: swap pkg/{io,log,i18n} imports to go-io/go-log/go-i18n
Some checks failed
Security Scan / security (push) Successful in 9s
Test / test (push) Failing after 3m8s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 12:35:42 +00:00
Snider
a803603916 chore: bump forge.lthn.ai dep versions to latest tags
Some checks failed
Security Scan / security (push) Successful in 22s
Test / test (push) Failing after 8m45s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-26 05:34:22 +00:00
Snider
6dcb39e0ae chore: bump forge.lthn.ai dep versions to latest tags
All checks were successful
Security Scan / security (push) Successful in 14s
Test / test (push) Successful in 7m21s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:49:37 +00:00
Snider
bd2e2acd49 chore: refresh go.sum after upstream tag updates
Some checks failed
Security Scan / security (push) Successful in 8s
Test / test (push) Failing after 35s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:35:18 +00:00
Snider
71abac6415 feat: modernise to Go 1.26 iterators and stdlib helpers
Some checks failed
Security Scan / security (push) Successful in 12s
Test / test (push) Failing after 28s
Add ToolsSeq iterator on MCP server, use slices.SortFunc in registry,
slices.ContainsFunc and strings.SplitSeq in security scanner,
range-over-int in metric benchmarks.

Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 05:59:29 +00:00
Claude
2537aea96a
chore: refresh go.sum after upstream tag updates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 23:36:25 +00:00
Snider
8a21d750bb refactor: migrate CLI imports from core/go to core/cli
Update imports from forge.lthn.ai/core/go/pkg/cli to
forge.lthn.ai/core/cli/pkg/cli following CLI package split.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 23:29:44 +00:00
Claude
5f120f8e90
chore: sync workspace dependency versions
Run go work sync to align dependency versions across workspace.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:42:15 +00:00
Snider
dff5fb23c5 refactor: apply go fix modernizers for Go 1.26
Automated fixes: interface{} → any, range-over-int, t.Context(),
wg.Go(), strings.SplitSeq, strings.Builder, slices.Contains,
maps helpers, min/max builtins.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 21:00:16 +00:00
Snider
85e02297cc fix: update ml tool handlers for Result return type
go-ml's Backend.Generate() and Backend.Chat() now return ml.Result{Text, Metrics}
instead of (string, error). Updated mlGenerate and mlProbe handlers to unwrap
result.Text, and updated test mocks to match the new interface.

Added local replace directives for go-inference, go-ml, go-mlx while
these changes propagate through the dependency chain.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 19:24:32 +00:00
Snider
d962260b81 feat(cmd/rag): re-export go-rag CLI commands through go-ai
CLI should import RAG commands via go-ai (which already depends on
go-rag), not directly. This keeps the CLI's dependency tree clean.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 20:23:22 +00:00
Snider
c3de6c4935 feat: migrate daemon, mcpcmd, security commands from CLI
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:38:04 +00:00
Snider
bc9597c191 chore: resolve forge deps from registry, remove local replaces
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:22:32 +00:00
Snider
d20688d50b feat(mcp): add BridgeToAPI for MCP-to-REST conversion
Bridge converts MCP ToolRecords into go-api ToolBridge entries,
making MCP tools accessible as REST POST endpoints with OpenAPI
metadata. Each tool's RESTHandler closure captures the generic
input type at registration time, enabling type-safe JSON
unmarshalling without runtime reflection.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 01:06:33 +00:00
Snider
4665bea75e fix: post-split cleanup — remove test script, fix tests, update docs
- Delete test-mlx.go (standalone test script, not library code)
- Fix TestSandboxing_Symlinks_Followed to match security behaviour
  (renamed to TestSandboxing_Symlinks_Blocked — asserts sandbox
  correctly blocks symlinks escaping the workspace root)
- Fix TestNewTCPTransport_Warning by adding missing security warning
  to NewTCPTransport when binding to 0.0.0.0 (all interfaces)
- Update CLAUDE.md dependency table (go-mlx, duckdb, parquet, ollama,
  qdrant now indirect via go-ml/go-rag)
- Tidy go.mod (direct vs indirect aligned with actual imports)
- Verify go build, go vet, go test all pass

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 01:18:27 +00:00
3916633f4d test: validate MLX inference and scoring pipeline on M3 Ultra
Fixes #2

- Run complete test suite: all 84 tests passing (100%)
- Verify Metal 4 GPU support and hardware capabilities
- Test scoring pipeline (heuristic + judge + engine)
- Confirm GGUF model directory with 9 models (40.43 GB)
- Document MLX backend build requirements
- Update module imports from forge.lthn.ai/core/go to forge.lthn.ai/core/cli
- Add comprehensive TEST-RESULTS.md with findings

Platform: M3 Ultra (60 GPU cores, 96GB RAM, Metal 4)
Results: All tests passing, scoring pipeline operational, MLX ready to build

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 17:24:36 +00:00
Claude
e84d6ad3c9
feat: extract AI/ML packages from core/go
LEM scoring pipeline, native MLX Metal bindings, Claude SDK wrapper,
RAG with Qdrant/Ollama, unified AI facade, and MCP protocol server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:25:55 +00:00