Virgil
82c25469e8
feat(pkg/api): refresh marketplace index
...
Security Scan / security (push) Failing after 12s
Test / test (push) Successful in 1m55s
Add marketplace index loading and a provider endpoint to refresh the in-memory catalogue from index.json.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 05:41:05 +00:00
Virgil
5a53d244cc
feat(forge): aggregate org labels across repos
...
Security Scan / security (push) Failing after 9s
Test / test (push) Successful in 2m17s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 05:11:34 +00:00
Virgil
976d20c02f
feat(jobrunner): resolve dispatch target branch
...
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 04:45:40 +00:00
Virgil
a0fac1341b
chore(ax): add usage docs to exported APIs
...
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m11s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 14:11:15 +00:00
Virgil
dd59b177c6
chore(ax): normalise test naming and usage annotations
...
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m2s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 06:37:20 +00:00
Claude
a6c15980a3
chore: update dependencies to dappco.re tagged versions
...
Security Scan / security (push) Failing after 9s
Test / test (push) Successful in 2m0s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 06:19:54 +00:00
Virgil
c42cc4a6ce
chore(ax): gofmt exported declaration comments
...
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m4s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 05:44:09 +00:00
Virgil
305aa0da6f
chore(ax): normalize SPDX header identifier
Security Scan / security (push) Failing after 8s
Test / test (push) Successful in 4m12s
2026-03-30 00:54:20 +00:00
Virgil
5f73d41184
chore(ax): add SPDX headers to remaining Go files
Security Scan / security (push) Failing after 15s
Test / test (push) Failing after 29s
2026-03-30 00:19:43 +00:00
Virgil
d5f98c1341
refactor(ax): align code with AX principles
Security Scan / security (push) Failing after 10s
Test / test (push) Failing after 25s
2026-03-29 23:59:48 +00:00
Claude
2dcb86738a
chore: migrate to dappco.re vanity import path
...
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 22s
Change module path from forge.lthn.ai/core/go-scm to dappco.re/go/core/scm.
Update all Go source imports for migrated packages:
- go-log -> dappco.re/go/core/log
- go-io -> dappco.re/go/core/io
- go-i18n -> dappco.re/go/core/i18n
- go-ws -> dappco.re/go/core/ws
- api -> dappco.re/go/core/api
Non-migrated packages (cli, config) left on forge.lthn.ai paths.
Replace directives use local paths (../go, ../go-io, etc.) until the
dappco.re vanity URL server resolves these modules.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:54:23 +00:00
ea1827284a
Merge pull request '[agent/claude] Update all Go files that import forge.lthn.ai/core/go or for...' ( #5 ) from agent/update-all-go-files-that-import-forge-lt into main
Security Scan / security (push) Failing after 13s
Test / test (push) Successful in 4m30s
2026-03-21 12:04:59 +00:00
Snider
bae46c8393
refactor: migrate core import to dappco.re/go/core
...
Security Scan / security (pull_request) Failing after 9s
Test / test (pull_request) Successful in 4m45s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 12:04:48 +00:00
Snider
1fce30e3b2
chore: sync dependencies for v0.3.6
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:53:23 +00:00
Snider
9b3308a38f
chore: sync dependencies for v0.3.5
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:48:31 +00:00
74f5ee47e2
Merge pull request '[agent/claude:opus] DX audit and fix. 1) Review CLAUDE.md — update any outdate...' ( #3 ) from agent/dx-audit-and-fix--1--review-claude-md into main
Security Scan / security (push) Failing after 8s
Test / test (push) Successful in 1m44s
2026-03-17 08:50:12 +00:00
Snider
10c9e23e04
fix(dx): repair build, update CLAUDE.md, add tests for untested paths
...
Security Scan / security (pull_request) Failing after 9s
Test / test (pull_request) Successful in 1m44s
- Fix cmd/forge build failure: remove extra locales.FS arg from
RegisterCommands (signature takes single CommandRegistration)
- Update CLAUDE.md error handling section to document coreerr.E()
pattern (was outdated log.E/fmt.Errorf reference)
- Add security_test.go for agentci: SanitizePath, EscapeShellArg,
SecureSSHCommand, MaskToken (coverage 56% → 68%)
- Add provider_handlers_test.go for pkg/api: category filter, nil
guards, manifest/verify/sign bad requests (coverage 31% → 52%)
- Audit confirms: no fmt.Errorf or os.ReadFile/WriteFile in production
code (only in test files)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:49:55 +00:00
Snider
9de597a8b0
refactor: pass locales via RegisterCommands, remove direct i18n import
...
Security Scan / security (push) Failing after 9s
Test / test (push) Failing after 47s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 01:38:51 +00:00
Snider
8367a5323c
feat: embed and load locale translations on init
...
Security Scan / security (push) Failing after 9s
Test / test (push) Failing after 39s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 00:45:34 +00:00
Snider
223c41dfdf
feat: add en-GB locale file for CLI commands
...
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 1m49s
33 translation keys for collect, forge, gitea commands.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 00:32:43 +00:00
Snider
8a65670268
chore: sync dependencies for v0.3.4
...
Security Scan / security (push) Failing after 8s
Test / test (push) Successful in 4m4s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 22:18:01 +00:00
Snider
e9fc6902b1
refactor: replace fmt.Errorf/errors.New with coreerr.E()
...
Security Scan / security (push) Failing after 8s
Test / test (push) Successful in 1m57s
Replace all remaining fmt.Errorf and errors.New calls in production
code with coreerr.E("caller.Method", "message", err) from go-log.
This standardises error handling across 23 files using the structured
error convention already established in the plugin package.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 20:37:25 +00:00
Snider
c2c54f1abb
refactor(marketplace,jobrunner): replace os.ReadFile/WriteFile/MkdirAll with go-io Medium
...
Security Scan / security (push) Failing after 9s
Test / test (push) Successful in 1m42s
Replace all os.ReadFile, os.WriteFile, and os.MkdirAll calls in
marketplace/discovery.go, marketplace/builder.go, and jobrunner/journal.go
with coreio.Local equivalents (Read, Write, EnsureDir).
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 18:31:35 +00:00
Snider
caaece78e6
chore: sync go.mod dependencies
...
Security Scan / security (push) Failing after 7s
Test / test (push) Successful in 4m50s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:37:30 +00:00
Snider
d752da473b
chore: bump forge deps (core/go v0.3.1, go-io v0.1.2, config v0.1.2)
...
Security Scan / security (push) Failing after 9s
Test / test (push) Failing after 3m58s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:17:28 +00:00
Snider
871f5583d2
docs: add manifest core.json implementation plan
...
Security Scan / security (push) Failing after 10s
Test / test (push) Failing after 3m28s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:11:02 +00:00
Snider
c666c2df43
Merge remote-tracking branch 'origin/agent/replace-raw-filepath-join-and-os-readfil'
Security Scan / security (push) Failing after 9s
Test / test (push) Has been cancelled
2026-03-15 15:09:24 +00:00
Snider
cc4b78d38a
Merge remote-tracking branch 'origin/agent/implement-manifest-compile-and-marketpla'
2026-03-15 15:09:21 +00:00
Snider
5799bd4338
refactor(marketplace): replace raw os calls with go-io Medium in Installer
...
NewInstaller now takes an io.Medium parameter for filesystem operations,
replacing direct os.MkdirAll and os.RemoveAll calls. Also fixes installer
tests to use correct manifest path (.core/manifest.yaml) and force-add
.core/ directory past .gitignore.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 14:50:08 +00:00
Snider
631ddd4887
feat(manifest): add compile step and marketplace index builder
...
Security Scan / security (push) Failing after 7s
Test / test (push) Failing after 2m47s
Add manifest compilation (.core/manifest.yaml → core.json) with build
metadata (commit, tag, timestamp, signature) and marketplace index
generation by crawling directories for compiled or source manifests.
New files:
- manifest/compile.go: CompiledManifest, Compile(), ParseCompiled(),
WriteCompiled(), LoadCompiled(), MarshalJSON()
- marketplace/builder.go: Builder.BuildFromDirs(), BuildFromManifests(),
WriteIndex()
- cmd/scm/: CLI commands — compile, index, export
Tests: 26 new (12 manifest, 14 marketplace), all passing.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 14:12:52 +00:00
Snider
9806bbeb4c
feat(manifest): add compile step and marketplace index builder
...
Add manifest compilation (.core/manifest.yaml → core.json) with build
metadata (commit, tag, timestamp, signature) and marketplace index
generation by crawling directories for compiled or source manifests.
New files:
- manifest/compile.go: CompiledManifest, Compile(), ParseCompiled(),
WriteCompiled(), LoadCompiled(), MarshalJSON()
- marketplace/builder.go: Builder.BuildFromDirs(), BuildFromManifests(),
WriteIndex()
- cmd/scm/: CLI commands — compile, index, export
Tests: 26 new (12 manifest, 14 marketplace), all passing.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 13:45:24 +00:00
Snider
b89228030b
chore: add .core/ and .idea/ to .gitignore
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 3m9s
2026-03-15 10:17:50 +00:00
Snider
7c8cd0fe70
fix: update stale import paths and dependency versions from extraction
...
Security Scan / security (push) Failing after 10s
Test / test (push) Failing after 2m56s
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
dc1790f12b
feat(marketplace): add provider discovery and registry
...
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 1m19s
Extend Manifest with provider fields (namespace, port, binary, args, element,
spec) and add IsProvider() helper. New DiscoverProviders() scans directories
for runtime provider manifests. ProviderRegistryFile handles registry.yaml
read/write for tracking installed providers. Includes 20 tests.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 12:22:37 +00:00
Snider
81deee8598
feat(api): add SCM service provider with Lit custom elements
...
Security Scan / security (push) Failing after 7s
Test / test (push) Failing after 1m16s
ScmProvider implements Provider + Streamable + Describable + Renderable,
wrapping marketplace, manifest, installed, and registry endpoints as REST
API with WS event streaming. Includes Lit custom element bundle with
panel, marketplace browser, manifest viewer, installed manager, and
registry status display. All 14 tests pass.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:42:37 +00:00
Snider
e7db4b163f
refactor: update import path from go-config to core/config
...
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 1m19s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:26:01 +00:00
Snider
e5f4bbbe80
docs: add CLAUDE.md project instructions
...
Security Scan / security (push) Failing after 10s
Test / test (push) Failing after 1m12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:38:02 +00:00
Snider
b263a9ea7d
docs: add human-friendly documentation
...
Security Scan / security (push) Failing after 7s
Test / test (push) Failing after 1m14s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:02:40 +00:00
Snider
2ddb33084a
fix: reject ambiguous multiple default daemons, add missing tests
...
Security Scan / security (push) Failing after 7s
Test / test (push) Failing after 1m12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 15:10:46 +00:00
Snider
dbb0933b27
fix: update loader tests for .core/manifest.yaml path rename
...
Security Scan / security (push) Failing after 7s
Test / test (push) Failing after 1m13s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-09 15:03:02 +00:00
Snider
849221eb80
feat: add DaemonSpec to manifest, rename path to .core/manifest.yaml
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:42:32 +00:00
Snider
68379b6b58
chore: add .core/ build and release configs
...
Security Scan / security (push) Failing after 9s
Test / test (push) Failing after 1m6s
Add go-devops build system configuration for standardised
build, test, and release workflows across the Go ecosystem.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 18:52:37 +00:00
Snider
e4342454b8
feat(repos): add kb.yaml knowledge base config
...
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 1m14s
KBConfig (.core/kb.yaml, checked in):
- Wiki mirror: enabled flag, local dir, remote SSH base URL
- Search: Qdrant host/port, collection (openbrain), Ollama URL,
embed model (embeddinggemma), default top_k
- Helpers: WikiRepoURL(name), WikiLocalPath(root, name)
Data already lives in Qdrant (homelab-embedded) — this just
configures the search client and local wiki clone paths.
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 15:55:48 +00:00
Snider
f751b29170
feat(repos): add git.yaml state tracking and work.yaml sync config
...
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 1m10s
GitState (.core/git.yaml, .gitignored):
- Per-repo sync timestamps (last pull/push), branch, ahead/behind
- Agent heartbeats with active package lists
- Stale agent detection, overlap queries, NeedsPull check
WorkConfig (.core/work.yaml, checked in):
- Sync policy: interval, auto_pull, auto_push, clone_missing
- Agent policy: heartbeat interval, stale timeout, overlap warnings
- Trigger list: on_activate, on_commit, scheduled
Both use io.Medium for testability (MockMedium in all tests).
Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 15:44:31 +00:00
Snider
58b20e7aec
chore: sync go.mod dependencies
...
Security Scan / security (push) Failing after 9s
Test / test (push) Failing after 1m24s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 15:22:36 +00:00
Snider
70fb874240
chore: remove boilerplate Taskfile
...
Security Scan / security (push) Failing after 9s
Test / test (push) Failing after 25s
All tasks (test, build, lint, fmt, vet, cov) are handled natively
by `core go` commands. Taskfile was redundant wrapper.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:45:49 +00:00
Snider
c662b7bf05
refactor: swap pkg/framework imports to pkg/core
...
Security Scan / security (push) Failing after 6s
Test / test (push) Failing after 26s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 14:10:59 +00:00
Snider
fa0beae5c8
feat: add manifest, marketplace, plugin, repos subpackages
...
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 27s
Extracted from core/go pkg/{manifest,marketplace,plugin,repos}.
Also swapped agentci/forge/gitea config imports to go-config.
These packages handle package manifests, marketplace installation,
plugin lifecycle, and multi-repo registry management.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 13:20:12 +00:00
Snider
89cedeac62
refactor: swap pkg/{io,log,i18n} imports to go-io/go-log/go-i18n
...
Security Scan / security (push) Failing after 6s
Test / test (push) Successful in 2m4s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 12:35:42 +00:00
Snider
3b70a32a92
chore: bump forge.lthn.ai dep versions to latest tags
...
Security Scan / security (push) Failing after 8s
Test / test (push) Successful in 3m37s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-26 05:34:23 +00:00