Commit graph

941 commits

Author SHA1 Message Date
Snider
5e7c0e9ec4 chore: ignore workspace and IDE dirs 2026-03-15 10:21:42 +00:00
Snider
d66ff46312 docs: remove implemented plans, annotate partial ones
18 plan files deleted (absorbed into core.help docs).
4 kept with implementation notes (lint MCP, AltumCode Layer 2).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 08:09:20 +00:00
Snider
681c88795f docs: add scheduled actions implementation plan (7 tasks)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:15:45 +00:00
Snider
d98eef7d37 docs: add scheduled actions design
Attribute-driven, database-backed Action scheduling for CorePHP.
#[Scheduled] attribute on Actions, auto-discovery via scanner,
persist to scheduled_actions table, runtime control via admin.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:12:08 +00:00
Snider
fd8a42a088 docs: add AltumCode update checker implementation plan (5 tasks)
TDD plan for uptelligence AltumCode version detection + Claude Code
download skill. Covers VendorUpdateCheckerService, vendor seeding,
deployed version sync, and browser-automated download plugin.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 08:27:58 +00:00
Snider
831e0736b5 docs: add AltumCode update checker design
Two-layer system: uptelligence version detection (5 HTTP GETs)
+ Claude Code skill for browser-automated downloads from
LemonSqueezy (Playwright) and CodeCanyon (Chrome).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 08:20:24 +00:00
Snider
89d189dd95 docs: add human-friendly documentation for Core Go framework
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:02:37 +00:00
Snider
48346a32cb docs: add core/mcp extraction plan
Move Go MCP server from go-ai + PHP MCP from php-mcp into
a single core/mcp repo producing the core-mcp binary.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 18:29:48 +00:00
Snider
e3882963a9 docs: add plug package extraction implementation plan (11 tasks)
Covers extracting app/Plug/* into 8 core/php-plug-* packages with
Core\Plug\* namespace alignment. Contracts move to core/php framework,
Registry gains register() method for package self-registration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:22:02 +00:00
Snider
fba6ec6f8a docs: add plug package extraction design
Restores the original package split for Plug providers that was
flattened during GitHub→Forge migration. Contracts move into core/php,
8 category packages (social, web3, content, chat, business, cdn,
storage, stock) become independent repos on forge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:17:41 +00:00
Snider
e232edb7f1 docs: add go-blockchain modernisation implementation plan (8 tasks)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:06:50 +00:00
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