Commit graph

113 commits

Author SHA1 Message Date
Virgil
8292f3ae79 fix(cmd/scm): avoid masking invalid core.json
Some checks failed
Security Scan / security (push) Failing after 13s
Test / test (push) Successful in 2m12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:20:33 +00:00
Virgil
1bccde8828 refactor(collect): make verbose mode emit progress
Some checks failed
Security Scan / security (push) Failing after 13s
Test / test (push) Successful in 2m29s
Verbose is now a real AX-facing behaviour instead of dead documentation. Excavator emits additional progress telemetry when verbose mode is enabled, and the new regression test protects that path.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:12:56 +00:00
Virgil
9a0a1f4435 feat(gitea): add issue mutation helpers
Some checks failed
Security Scan / security (push) Failing after 14s
Test / test (push) Has been cancelled
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:08:43 +00:00
Virgil
5a561690be feat(ui): polish scm agent views
Some checks failed
Test / test (push) Waiting to run
Security Scan / security (push) Failing after 14s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:04:25 +00:00
Virgil
32e65b8b43 feat(ui): refresh scm views from live events
Some checks failed
Security Scan / security (push) Failing after 13s
Test / test (push) Successful in 2m20s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 06:58:47 +00:00
Virgil
676130ab84 refactor(repos): stabilise registry ordering
Some checks failed
Security Scan / security (push) Failing after 11s
Test / test (push) Successful in 2m21s
Sort registry and provider-registry listings for deterministic output and add coverage for the stable ordering guarantees.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 06:52:45 +00:00
Virgil
697bfde215 feat(forge): add org label iterator
Some checks failed
Security Scan / security (push) Failing after 12s
Test / test (push) Successful in 2m17s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:42:41 +00:00
Virgil
f27a01d3c5 feat(forge): add repo label iterator
Some checks failed
Security Scan / security (push) Failing after 12s
Test / test (push) Successful in 2m12s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:28:20 +00:00
Virgil
0d80388d18 feat(gitea): add issue comment list API
Some checks failed
Security Scan / security (push) Failing after 12s
Test / test (push) Successful in 2m8s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:07:55 +00:00
Virgil
5bb8e61708 feat(scm): add issue comment iterators
Some checks failed
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m17s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 08:58:12 +00:00
Virgil
d852087c45 feat(forge): add org iterator
Some checks failed
Security Scan / security (push) Failing after 11s
Test / test (push) Successful in 2m16s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 08:47:55 +00:00
Virgil
b94caf0a9d feat(forge): add PR review iterator
Some checks failed
Security Scan / security (push) Failing after 11s
Test / test (push) Failing after 51s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 08:18:36 +00:00
Virgil
94c5870c46 feat(forge): add repo webhook iterator
Some checks failed
Security Scan / security (push) Failing after 13s
Test / test (push) Successful in 2m27s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:35:26 +00:00
Virgil
0193bd50ea feat(scm): add issue iterators
Some checks failed
Security Scan / security (push) Failing after 11s
Test / test (push) Successful in 2m18s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:23:21 +00:00
Virgil
64042ac8a6 feat(gitea): generalise mirror creation
Some checks failed
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m20s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:15:44 +00:00
Virgil
f2c9cb39d0 fix(agentci): split path sanitising and validation
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-04-01 07:09:27 +00:00
Virgil
ec8149efbe feat(marketplace): index root directories
Some checks failed
Security Scan / security (push) Failing after 12s
Test / test (push) Successful in 2m14s
Include the directories passed to BuildFromDirs before scanning children so scm index . handles a manifest at the root of the scanned directory.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:59:57 +00:00
Virgil
2e188e346a feat(agentci): add context-aware ssh command helper
Some checks failed
Security Scan / security (push) Failing after 11s
Test / test (push) Successful in 2m15s
Thread dispatch SSH subprocesses through the caller context so cancellation applies to ticket transfer, remote cleanup, and existence checks.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:53:33 +00:00
Virgil
8021e5e2cb fix(scm): paginate issue listings
Some checks failed
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m13s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:47:34 +00:00
Virgil
6233664c5d fix(pkg/api): combine marketplace query and category filters
Some checks failed
Security Scan / security (push) Failing after 9s
Test / test (push) Successful in 2m9s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:40:27 +00:00
Virgil
369103f8dc feat(pkg/api): list registry repos in dependency order
Some checks failed
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 2m8s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:32:16 +00:00
Virgil
89925a0e83 feat(marketplace): emit clone URLs in indexes
Some checks failed
Security Scan / security (push) Failing after 9s
Test / test (push) Successful in 2m8s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:24:22 +00:00
Virgil
2f4d2e5811 feat(jobrunner): add journal replay query
Some checks failed
Security Scan / security (push) Failing after 10s
Test / test (push) Successful in 5m2s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:14:28 +00:00
Virgil
b2bbc11746 feat(marketplace): propagate signing keys in indexes
Some checks failed
Security Scan / security (push) Failing after 12s
Test / test (push) Successful in 2m11s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:09:07 +00:00
Virgil
1f98d7ab8a feat(marketplace): add category-aware index builder
Some checks failed
Security Scan / security (push) Failing after 11s
Test / test (push) Successful in 2m11s
Propagate category metadata while building marketplace indexes and deduplicate the category list for consumers such as the UI.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:03:23 +00:00
Virgil
82c25469e8 feat(pkg/api): refresh marketplace index
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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()
Some checks failed
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
Some checks failed
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
Some checks failed
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)
Some checks failed
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