Commit graph

123 commits

Author SHA1 Message Date
Snider
9f6fa7ec17 fix(devops): r2 — replace must* helpers with stdlib + verify CLI module resolution on PR #2
Round 2 follow-up to 907c5fa. Closes residual CodeRabbit findings.

Test infra:
- Replaced must* test helpers across cmd_apply_test, cmd_file_sync_test,
  cmd_vm_test, cmd_ci_test, cmd_repo_test, cmd_wizard_test,
  cmd_api_testgen_test, cmd_workflow_test, secret_test, coverage_test,
  scan_secrets_test, snapshot_test with stdlib checks.
- Deleted stale package-level test_helpers_test.go files that only
  supported the old must* pattern.
- AX-6 maintained: no testify Go imports / go.mod requires. Remaining
  go.sum testify entries are transitive checksums after go mod tidy.

Module graph:
- CLI imports switched back to Cobra-compatible
  dappco.re/go/core/cli/pkg/cli module + replacements for private
  vanity modules. GOWORK=off resolves cleanly under isolated cache.
- locales/embed.go / go.sum: i18n checksum + go mod tidy clean.

Verified-but-already-correct (no code change needed):
- cmd/dev/service.go: no-op core.Result{OK:true} + prompt type assertion
- cmd/workspace/config.go: filepath.Abs normalisation + fmt.Errorf
  wrapping
- tests/cli/devops/main.go: raw walk/read errors wrapped
- tests/cli/devops/Taskfile.yaml: strict shell flags
- cmd/dev/cmd_issues.go + cmd_reviews.go: import grouping (after CLI
  module correction)

Verification: gofmt clean, GOWORK=off go vet + go test -count=1 ./...
pass with explicit cache paths.

Closes residual findings on https://github.com/dAppCore/go-devops/pull/2

Co-authored-by: Codex <noreply@openai.com>
2026-04-27 17:29:14 +01:00
Snider
907c5fa64c fix(devops): address CodeRabbit findings on PR #2
15+ findings dispositioned. AX-6-conformant — no testify reintroduced.

Code fixes:
- cmd/dev/service.go: no-op now returns OK:true, unchecked prompt type assertion guarded
- cmd/workspace/config.go: relative parent traversal blocked + regression test, fmt.Errorf wrapping
- cmd/dev/cmd_issues.go + cmd_reviews.go: import ordering
- tests/cli/devops/main.go: raw WalkDir errors wrapped
- tests/cli/devops/Taskfile.yaml: strict shell flags
- cmd/vanity-import/Dockerfile + docs/development.md: Go 1.26 alignment
- locales/embed.go: missing dappco.re/go/i18n checksum

Test infra:
- New local test helpers in cmd/dev, cmd/setup, devkit, snapshot
- All testify usages already absent — local stdlib helpers preferred
  per AX-6 ban
- Test naming aligned (Test{Filename}_{Function}_{Good,Bad,Ugly} per AX-10)

Disposition replies (RESOLVED-COMMENT, no testify added):
- cmd/dev/cmd_apply_test.go, cmd/setup/cmd_ci_test.go, snapshot_test.go,
  devkit/coverage_test.go: CodeRabbit testify suggestions get reasoning
  reply per AX-6 ban; local helpers are convention.
- SonarCloud/GHAS: no PR checks/annotations found; code-scanning API
  returned no analysis, secret scanning disabled.

Verification: gofmt clean, git diff --check clean, no testify imports.
Targeted go vet + go test pass for cmd/workspace + devkit + snapshot.
Full go vet ./... blocked by pre-existing dappco.re/go/scm
codeberg.org/forgejo/go-sdk auth/replacement issue (out of scope).

Closes findings on https://github.com/dAppCore/go-devops/pull/2

Co-authored-by: Codex <noreply@openai.com>
2026-04-27 15:07:24 +01:00
Snider
c43090e2ca feat(ax-10): bring go-devops to v0.8.0-alpha.1 + CLI test scaffold
- Bump dappco.re/go/* deps to v0.8.0-alpha.1 in go.mod (any forge.lthn.ai/core/* paths migrated to canonical dappco.re/go/* form)
- Update Go source imports across 55 .go files

Co-Authored-By: Athena <athena@lthn.ai>
2026-04-24 23:44:02 +01:00
Codex
54d3f38049 feat(go-devops): scaffold tests/cli/devops Taskfile + test driver per AX-10
tests/cli/devops/Taskfile.yaml + main.go. Verified: task -d + go test
./tests/cli/devops pass.

Closes tasks.lthn.sh/view.php?id=756

Co-authored-by: Codex <noreply@openai.com>
2026-04-24 22:49:32 +01:00
Codex
e9ac12a412 chore(go-devops): annotate external deps in go.mod per AX-6
Added `// Note:` trailers to all three non-dappco.re direct external
dependencies in go.mod:
- code.gitea.io/sdk/gitea: Gitea SDK for repo/automation API
- github.com/kluctl/go-embed-python: CPython embedding for Ansible
- gopkg.in/yaml.v3: YAML parser for Ansible inventory/playbook

Closes tasks.lthn.sh/view.php?id=755

Co-authored-by: Codex <noreply@openai.com>
2026-04-24 20:12:28 +01:00
Codex
da527c657f chore(go-devops): migrate module path to dappco.re/go/devops
Dropped the embedded "core" segment per RFC, aligning with graduated
repos. Updated go.mod + 11 *.go self-imports across cmd/setup/,
cmd/docs/, cmd/gitcmd/, cmd/dev/, deploy/coolify/. `go build ./...`
passes.

Closes tasks.lthn.sh/view.php?id=753

Co-authored-by: Codex <noreply@openai.com>
2026-04-24 20:10:17 +01:00
Codex
096cb1bab2 fix(go-devops): replace testify with stdlib testing patterns (AX-6)
Removes testify + indirect deps from go.mod/go.sum; rewrites
assert/require calls across cmd/dev/*, cmd/setup/*, devkit/* _test.go
to stdlib t.Fatalf patterns. go vet clean. TestRunTestGen_Good fails
pre-existing (missing cmd/dev/pkg/ env) at dev tip — unrelated to
this PR.

Closes tasks.lthn.sh/view.php?id=754

Co-authored-by: Codex <noreply@openai.com>
Via-codex-lane: Cyclops-754 dispatch
2026-04-24 18:51:16 +01:00
Snider
b19a0dfe25 fix: migrate module paths from forge.lthn.ai to dappco.re
Update all import paths and go.mod deps to dappco.re equivalents.
Fix API compat for core v0.8.0-alpha.1: RegisterTask→RegisterAction,
core.Task→core.Message handler signatures.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-07 12:46:35 +01:00
Snider
d08d2eb1fc fix: migrate module paths from forge.lthn.ai to dappco.re
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-04 16:21:12 +01:00
Virgil
6e278a293a feat(dev): show workflow templates in list
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:48:48 +00:00
Virgil
c50257fa49 fix(docs): align gohelp repo mapping
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:11:00 +00:00
Virgil
93c8eef876 feat(dev): support glob targets in apply command
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:02:04 +00:00
Virgil
ae3935919e feat(dev): support glob patterns in file-sync targets
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 08:13:14 +00:00
Virgil
af9887217a fix(setup): broaden GitHub remote parsing
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:25:34 +00:00
Virgil
c06fd2edfc feat(dev): add confirmation to file sync
Add a confirmation gate and --yes bypass to core dev sync so batch file distribution follows the same safety model as the other AI-agent commands.
2026-04-01 07:16:56 +00:00
Virgil
cbf650918a feat(devkit): add coverage trending helpers
Implement coverage profile and output parsing, snapshot comparison, and a JSON-backed coverage store.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:10:00 +00:00
Virgil
6eef0ff234 fix(docs): clear zensical sync output 2026-04-01 07:03:38 +00:00
Virgil
04d8a17dc7 fix(setup): prefer node project detection over php
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:54:39 +00:00
Virgil
0179ddf4f2 feat(setup): add repo subcommand
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:49:34 +00:00
Virgil
29cbec8575 fix(docs): sync zensical readmes to index
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:41:38 +00:00
Virgil
b5d32ade33 fix(setup): apply type filter in package wizard
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:34:22 +00:00
Virgil
24fd01dc26 fix(setup): repair scoop bucket default
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:26:16 +00:00
Virgil
ba08cac5ef feat(dev): expose vm status command
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:19:31 +00:00
Virgil
f3c5fe9a7b feat(dev): scan full service packages for API stubs
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:08:17 +00:00
Virgil
fa20cb8aa5 feat(devkit): add gitleaks-backed secret scanning
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:00:25 +00:00
Virgil
a4d8aba714 feat(devkit): add secret scanning
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 05:37:28 +00:00
Virgil
b7d70883e9 feat(dev): add api test-gen command
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 05:10:56 +00:00
Claude
129199a5e0
chore: migrate to dappco.re vanity import path
Update module path from forge.lthn.ai/core/go-devops to
dappco.re/go/core/devops. Migrate all imports for packages
that have already moved to dappco.re:

- go-io -> dappco.re/go/core/io
- go-log -> dappco.re/go/core/log
- go-scm -> dappco.re/go/core/scm
- go-i18n -> dappco.re/go/core/i18n
- agent -> dappco.re/go/agent

Packages not yet migrated (cli, go-container) left as-is.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 00:04:10 +00:00
33968f32bc 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 2026-03-21 12:25:04 +00:00
Snider
ecb50796b7 refactor: migrate core import to dappco.re/go/core
Replace forge.lthn.ai/core/go/pkg/core with dappco.re/go/core v0.4.7.
Adapt to new API: core.New() returns *Core directly, services registered
via c.Service(), Result replaces (any, bool, error) IPC pattern.
Simplify git/agentic integration by calling package-level functions
directly instead of routing through IPC service handlers.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-21 12:24:45 +00:00
Snider
e4216a12b0 chore: sync dependencies for v0.1.13
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:53:32 +00:00
Snider
339ad743be chore: sync dependencies for v0.1.12
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:50:49 +00:00
1d7652cb05 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 2026-03-17 08:18:51 +00:00
Snider
c2adc7d9dc fix(dx): audit and fix build, error handling, and CLAUDE.md
- Fix cli.RegisterCommands signature mismatch (cli v0.3.5 takes
  single CommandRegistration, not variadic localeFS); register
  locales via i18n.RegisterLocales in locales/embed.go init()
- Replace fmt.Errorf inside log.E with plain string concat in
  deploy/python and deploy/coolify
- Remove unused fmt import from deploy/coolify/client.go
- Update CLAUDE.md: correct LOC count, clarify cmd/community and
  cmd/gitcmd descriptions, add locales package, fix error convention
  from core.E/fmt.Errorf to log.E

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:18:32 +00:00
Snider
0f50f98a95 fix: defer i18n.T() for package-level command vars
Package-level var declarations run at import time, before i18n is
initialised. Move Short/Long assignment to AddCommands functions
which run after Core startup.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 02:21:52 +00:00
Snider
b429736097 refactor: pass locales via RegisterCommands instead of direct i18n call
Clean init(): cli.RegisterCommands(AddDevCommands, locales.FS)
No more i18n.AddLoader — CLI handles locale loading automatically.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 01:35:18 +00:00
Snider
b9d9994a36 feat: embed and load locale translations on init
Locales auto-load when cmd/dev is imported via init().

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 00:45:15 +00:00
Snider
764f290b34 feat: add en-GB locale file for dev/deploy/docs/setup commands
281 translation keys covering dev (health, work, commit, push, pull,
tag, impact, issues, reviews, ci, apply, workflow, vm), deploy, docs,
git, and setup commands.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 00:34:55 +00:00
Snider
2ef3e48b11 chore: sync dependencies for v0.1.11
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 22:20:21 +00:00
Snider
4c5e12c9f8 refactor: replace os.ReadFile/WriteFile and fmt.Errorf/errors.New with framework equivalents
Replace os.ReadFile with coreio.Local.Read for consistent filesystem abstraction.
Replace fmt.Errorf/errors.New with log.E() from go-log for structured error context.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 19:17:34 +00:00
Snider
cea8624497 feat(dev): add core dev tag command
Reads repos.yaml dependency graph via TopologicalOrder(), bumps patch
version bottom-up, runs GOWORK=off go get -u ./... and go mod tidy per
repo, commits go.mod/go.sum, creates annotated tags, and pushes.

Supports --dry-run to preview the plan and --force to skip confirmation.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 17:28:11 +00:00
Snider
c364b3083c chore: sync workspace dependencies
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:44:45 +00:00
Snider
7aa8c7f944 chore: update dependencies
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:43:36 +00:00
Snider
34b0c4b5dd chore: sync go.mod dependencies
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:38:03 +00:00
Snider
a2b74a642b chore: add .core/ and .idea/ to .gitignore 2026-03-15 10:17:49 +00:00
Snider
e0fceb0e2e fix: update stale import paths and dependency versions from extraction
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
ea051b07cb refactor: update import path from go-config to core/config
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:24:50 +00:00
Snider
c969b6d265 docs: remove completed plan files
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 08:20:09 +00:00
Snider
5c3a5295a3 fix(plugin): remove invalid commands schema from plugin.json
Commands auto-discovered from commands/ directory.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 10:54:45 +00:00
Snider
144c1e440d feat(plugin): add npm package for Claude Code plugin distribution
Published as @lthn/core-claude-devops on npm.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 10:49:17 +00:00