- 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>
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>
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>
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>
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>
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>
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>
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>
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>
Now that go-devops imports core/cli (not core/go/pkg/cli),
the circular dependency is resolved. Restore the docblock
coverage check using qa.CheckDocblockCoverage().
Co-Authored-By: Virgil <virgil@lethean.io>
pkg/cli now lives in forge.lthn.ai/core/cli as its own module.
All cmd/gocmd imports updated. qa docblock check stubbed pending
go-devops circular dependency resolution.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update Borg dependency path from github.com/Snider/Borg to
forge.lthn.ai/Snider/Borg across go.mod and imports.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Go 1.26 rejects non-semver version strings (like 'main') in go.mod.
Tags v0.0.1 now exist on all forge repos — workspace still overrides
for local development.
Co-Authored-By: Virgil <virgil@lethean.io>
Forge module versions now use main branch resolution via ~/Code/go.work
workspace. Removes local replace directives — the central go.work handles
all cross-repo resolution during development.
Co-Authored-By: Virgil <virgil@lethean.io>
Replace the RegisterCommands/attachRegisteredCommands side-channel with
WithCommands(), which wraps command registration functions as framework
services. Commands now participate in the Core lifecycle via OnStartup,
receiving the root cobra.Command through Core.App.
Main() accepts variadic framework.Option so binaries pass their commands
explicitly — no init(), no blank imports, no global state.
Co-Authored-By: Virgil <virgil@lethean.io>