Commit graph

930 commits

Author SHA1 Message Date
Snider
3dfac0f9c0 docs: add go-blockchain modernisation design
Full refactor plan: cli.Main() migration, DI services for P2P sync
and wallet, go-process daemon for headless mode, build config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:00:54 +00:00
Snider
2d8b1a8616 docs: add daemon registry & manifest implementation plan (6 tasks)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:39:23 +00:00
Snider
693c1dceaa docs: add daemon registry & project manifest design
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:36:41 +00:00
Snider
c9ddc798d9 docs: add go-devops decomposition design
Extract 4 loosely-coupled packages from go-devops (31K LOC):
- devkit → merge into core/lint (QA checks, complexity, coverage)
- infra → core/go-infra (Hetzner, CloudNS APIs)
- ansible → core/go-ansible (pure Go playbook engine)
- container → core/go-container (LinuxKit/TIM for Lethean nodes)

Keep build/release/deploy pipeline as go-devops core purpose.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:20:04 +00:00
Snider
29bb2c2b40 docs: add lint pattern catalog implementation plan (9 tasks)
Layer 1 only: core/lint repo with YAML catalog, pkg/lint library
(Rule, Catalog, Matcher, Scanner, Report), and core-lint CLI.
18 seed patterns from the Go ecosystem sweep.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:48:59 +00:00
Snider
2e2560dc60 docs: add lint pattern catalog & polish skill design
Three-layer system: core/lint (pattern catalog + regex matcher),
go-ai MCP subsystem (lint tools for agents), core/agent polish
skill (multi-AI review orchestration). Seeded with 18 patterns
from the Go ecosystem sweep.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:44:42 +00:00
Snider
e2a68fc283 fix: harden DI container — lifecycle safety, Go 1.26 modernisation
- Prevent nil service registration and empty name discovery
- PerformAsync uses sync.WaitGroup.Go() with shutdown guard (atomic.Bool)
- ServiceShutdown respects context deadline, no goroutine leak on cancel
- IPC handler signature mismatch now returns error instead of silent skip
- Runtime.ServiceStartup/ServiceShutdown return error for Wails v3 compat
- Replace manual sort/clone patterns with slices.Sorted, slices.Clone,
  slices.Backward, maps.Keys
- Add async_test.go for PerformAsync coverage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 09:11:22 +00:00
Snider
d08ecb1c0d docs: add Studio Phases 3-5 implementation plan
13 tasks: Phase 3 (TTS, voiceover, voice pipeline), Phase 4 (ComfyUI,
thumbnails, image overlays, batch remix for content flywheel),
Phase 5 (Livewire pages, Ansible playbooks, production deployment).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 06:23:25 +00:00
Snider
0ded875ff1 docs: add Studio multimedia pipeline implementation plan
15 tasks covering Phase 1 (Foundation) and Phase 2 (Remix Pipeline).
TDD with Pest tests, Actions pattern, API routes, Livewire UI.
Follows existing LEM module patterns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:49:49 +00:00
Snider
243ab4ebbe docs: add Studio multimedia pipeline design
Smart/dumb architecture — LEM produces JSON manifests (creative decisions),
ffmpeg executes mechanically. Remote-first GPU on homelab. Five-phase delivery
targeting April demo for OF agency video remixing use case.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:41:17 +00:00
Snider
f3854f1077 feat: add .core/ build and release configuration
Adopts go-devops build system for the core framework library.
Build config validates compilation across targets, release config
enables changelog generation for tag-only library releases.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 17:40:40 +00:00
Snider
302fb038a2 docs: add help engine implementation plan (10 tasks)
Merge go-help → core/docs pkg/help, HLCRF layout via go-html,
gohelp sync target in go-devops, integration tests.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 16:28:23 +00:00
Snider
86b8a9136c docs: add core/docs help engine design
Merge go-help into core/docs as pkg/help, replace Hugo/Docsy with
native static generator + go-html HLCRF layout. Content owned by
package repos (docs/ convention), collected by go-devops for builds.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 16:25:13 +00:00
Snider
0cb6a4cff3 docs: update CLAUDE.md to reflect pure DI framework
Remove stale references to extracted packages (pkg/ws, pkg/webview,
pkg/mcp, cmd/bugseti, cmd/core-gui). Replace Taskfile commands with
`core go` equivalents. Describe current pkg/core + pkg/log scope.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:48:02 +00:00
Snider
3720761555 chore: remove boilerplate Taskfile
All tasks handled natively by `core go` commands.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:46:05 +00:00
Snider
915816b3b5 docs: add pkg/core documentation, remove 12MB stale generated site
- Add comprehensive docs/pkg/core.md covering DI container, service
  pattern, message bus (ACTION/QUERY/TASK), error handling, runtime
- Remove pkg/core/docs/site/ (ancient MkDocs HTML with Lethean branding)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:29:04 +00:00
Snider
f71f4c7d66 docs: remove stale CLI/ecosystem docs, keep framework-only content
Massive cleanup after module extraction sprint. core/go is now a pure
DI framework — docs should reflect that, not document CLI commands.

- Delete 130+ CLI command/example docs (already in core/cli)
- Delete 6 obsolete pkg-batch*-analysis.md files
- Delete plans/, skill/, static/, mcp/ (moved to correct repos)
- Rewrite index.md for DI framework (not CLI)
- Fix PACKAGE_STANDARDS.md: framework.* → core.* references
- Fix log.md: correct framework integration example

Remaining docs: index.md, pkg/PACKAGE_STANDARDS.md, pkg/log.md

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:24:35 +00:00
Snider
4f6209f590 refactor: promote pkg/framework/core to pkg/core
pkg/framework/core/ → pkg/core/ (first-class import path)
pkg/framework/ shim deleted (no longer needed)

Import path: forge.lthn.ai/core/go/pkg/core

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:10:34 +00:00
Snider
bcbbc0da80 refactor: extract cmd/ to cli repo, core/go is now pure framework
- cmd/gocmd → cli/cmd/gocmd (Go dev commands)
- cmd/core-app deleted (Wails artifact, source in core/ide)
- cmd/bugseti deleted (no source, own repo)

core/go now has 3 direct deps: go-io, go-log, testify.
No CLI, TUI, cobra, or bubbletea dependencies remain.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 13:58:29 +00:00
Snider
e920397741 refactor: extract remaining pkg/ packages to standalone modules
- pkg/session → go-session
- pkg/ws → go-ws
- pkg/webview → go-webview
- pkg/workspace → go-io/workspace
- pkg/lab → lthn/lem/pkg/lab
- pkg/build deleted (empty dirs)
- lem-chat moved to lthn/LEM
- internal/core-ide + cmd/core-ide deleted (Wails artifacts, source in core/ide)
- internal/cmd deleted (Wails updater artifacts)
- Taskfile.yaml deleted (stale Wails duplicate)

pkg/ now contains only framework + log (stays).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 13:48:00 +00:00
Snider
ef5c83c04e refactor: delete pkg/io, slim pkg/log to go-io/go-log re-exports
- Delete pkg/io/ entirely (all consumers now use go-io)
- Delete pkg/log/{errors.go,log.go} duplicates (now in go-log)
- Rewrite pkg/log/log.go as thin re-export layer over go-log
- Keep pkg/log/{service.go,rotation.go} (framework/go-io deps)
- Swap internal pkg/ imports to go-io/go-log across ~30 files

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 12:23:52 +00:00
Snider
ddc8582d7f refactor: remove pkg/help, use core/go-help module
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 09:11:54 +00:00
Snider
84397a2e10 refactor: remove pkg/i18n, use core/go-i18n module
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 09:09:02 +00:00
Snider
2958527774 refactor: extract pkg/coredeno to core/ts
Deno/TypeScript runtime bridge now lives in its own repo
at forge.lthn.ai/core/ts, completing the trifecta:
core/go, core/php, core/ts.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 09:04:38 +00:00
Snider
5da58d6c07 docs: remove internal homelab docs from public repo
These contain internal IPs, service topology, and homelab
architecture that shouldn't be in a public repo.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-03 13:57:53 +00:00
Snider
752f98d8bc docs: remove DNS records from plans dir (not a Charon task)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-03 13:44:22 +00:00
Snider
e000e31567 docs: migrate homelab docs from *.lthn.lan to *.lthn.sh
- Rewrite handover doc for lthn.sh with real TLS cert, proper DNS
- Add UniFi gateway DNS record reference (16 A records, no wildcards)
- Update OpenBrain usage guide to lthn.sh URLs
- Split services: *.lthn.sh (lab) vs *.infra.lthn.sh (admin tools)
- GoGetSSL wildcard cert covers lthn.sh + *.lthn.sh + *.infra.lthn.sh

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-03 13:43:39 +00:00
Snider
7fe48a6268 docs: update .lan service URLs to *.lthn.lan subdomain convention
All homelab services now use the *.lthn.lan naming convention
(ollama.lthn.lan, qdrant.lthn.lan, eaas.lthn.lan) per updated
/etc/hosts configuration.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-03 13:19:57 +00:00
Snider
bb9844c638 fix: correct clone URL in lthn.lan handover doc
Repo is lthn/hostuk, not host-uk/host.uk.com.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:36:23 +00:00
Snider
2a14fda69c docs: add OpenBrain usage guide for all agents
Covers seeding, querying, storing, MCP tools, maintenance,
and direct Qdrant API access. Written for agent onboarding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 11:47:09 +00:00
Snider
3e65b13f3f docs: add lthn.lan homelab setup handover for Charon
Covers Docker/FrankenPHP deployment, Traefik integration,
MariaDB/Redis setup, OpenBrain config, and satellite service plan.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 11:36:57 +00:00
Snider
88d393fd3b chore: bump forge.lthn.ai dep versions to latest tags
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-26 05:34:23 +00:00
Claude
d48f613ddf
docs: archive 3 remaining completed plans
Move lem-chat-design, go-forge-design, and go-forge-plan to
docs/plans/completed/. The other completed plans were already
archived by a prior session.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 19:44:23 +00:00
bb00bd4add Merge pull request 'feat: LEM Chat TypeScript web components' (#18) from feat/lem-chat-components into main 2026-02-24 18:25:23 +00:00
Claude
e6cd676278
feat: add lem-chat TypeScript web components
Standalone chat UI built with vanilla Web Components (Custom Elements +
Shadow DOM) that connects to the MLX inference server's SSE streaming
endpoint. Zero framework dependencies, single JS bundle output.

Components:
- <lem-chat>: Container with SSE client, config via attributes
- <lem-messages>: Scrollable message list with auto-scroll
- <lem-message>: Single message bubble with streaming + <think> tag support
- <lem-input>: Textarea with Enter to send, Shift+Enter for newline

Build: esbuild src/lem-chat.ts → dist/lem-chat.js (15KB ESM)
Replaces the monolithic chat.js in core/go-ml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:23:59 +00:00
c8b32cc1a1 Merge pull request 'chore: Go 1.26 modernization' (#17) from chore/go-1.26-modernization into main 2026-02-24 18:01:41 +00:00
Claude
2b09a26507
chore: use slices.Contains for linear search
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:54:39 +00:00
Claude
eb186027a0
chore: use range-over-integer (Go 1.22+)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:53:09 +00:00
Claude
d60e87dac8
chore: use min()/max() builtins (Go 1.21+)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:52:06 +00:00
Claude
ff530d9898
chore: sort.Slice → slices.SortFunc
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:45:48 +00:00
Claude
13ed6d3f76
chore: use %w for error wrapping
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:39:19 +00:00
Claude
d570c87efc
chore: fmt.Errorf(static) → errors.New
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:38:38 +00:00
Claude
09c25b9975
chore: replace interface{} with any (Go 1.18+ alias)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:38:00 +00:00
Claude
674e3c3c9a
docs: archive cli-sdk-expansion plan, remove duplicate job-runner
Move completed cli-sdk-expansion plan to docs/plans/completed/ with
summary. Remove duplicate core-ide-job-runner plans (canonical copy
lives in core/cli).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:51:21 +00:00
Snider
3587d0ce27 test: add coverage for lab, session, sigil, repos, plugin packages
Brings 5 packages from low/zero coverage to solid test suites:
- pkg/lab: 0% → 100% (Store pub/sub, Config env loading)
- pkg/session: 0% → 89.9% (transcript parser, HTML renderer, search, video)
- pkg/io/sigil: 43.8% → 98.5% (XOR/ShuffleMask obfuscators, ChaCha20-Poly1305)
- pkg/repos: 18.9% → 81.9% (registry, topo sort, directory scan, org detection)
- pkg/plugin: 54.8% → 67.1% (installer error paths, Remove, registry Load/Save)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-24 13:29:15 +00:00
Snider
5a92bd652b chore: bump forge.lthn.ai dep versions to latest tags
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:49:46 +00:00
Snider
85493ae779 chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:45:52 +00:00
Snider
e959a9aaaf chore: refresh go.sum after upstream tag updates
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:35:19 +00:00
Snider
3f162db925 docs: archive Q/K Bone Orientation plan as completed
7 tasks across 4 repos (go-inference, go-mlx, go-ml, LEM).
+917 lines, all tests passing, pushed to forge.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 00:39:09 +00:00
Snider
12ff432d6b docs: archive completed plans with summaries
Move completed plan documents to docs/plans/completed/ with
concise completion summaries alongside the originals.

Archived: MCP integration, Go API design/plan, CLI meta-package design.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 23:46:13 +00:00