Commit graph

14 commits

Author SHA1 Message Date
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
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
Snider
89cedeac62 refactor: swap pkg/{io,log,i18n} imports to go-io/go-log/go-i18n
Some checks failed
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
5bfafcd6fc feat: restore agentci, git, and jobrunner packages
These packages are still imported by the CLI. Reverting the premature
extraction so forge consumers can resolve them.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 19:27:35 +00:00
Snider
c95aefed94 refactor: extract agentci + jobrunner to core/go-agent
Both packages now live in forge.lthn.ai/core/go-agent as a unified
agent orchestration repo. go-scm retains collect/, forge/, git/, gitea/.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-21 17:13:26 +00:00
Claude
4a2e1298a4
test(forgejo): add supplementary signal source coverage
Extends Phase 3 forgejo source tests with 9 additional scenarios:
multi-epic with multiple children, combined status fetch error
fallback to PENDING, mixed repos with partial failure, Report
comment body format (table-driven), Report posting to correct
epic issue, signal field completeness, all-children-checked
producing zero signals, and NeedsCoding signal field population.

Co-Authored-By: Charon <developers@lethean.io>
2026-02-20 11:52:11 +00:00
Snider
0fe2978b9d test: Phase 3 — Forgejo signal source, journal replay, handler integration
Forgejo signal source tests:
- Signal parsing for empty body, mixed content, large issue numbers
- findLinkedPR edge cases (multiple refs, empty body, first match wins)
- Poll with combined status failure/error fallback to PENDING
- Poll with unassigned child (no signal), child fetch failure (skipped)
- Poll with multiple epics, mixed labels (only epics generate signals)
- Report format verification (success/failure, error in code block)

Journal replay tests:
- Write + read-back round-trip with full field preservation
- Filter by action (tick_parent from mixed actions)
- Filter by repo (date-partitioned files in owner/repo directories)
- Filter by time range (entries across multiple days)
- Combined filter (action + repo + time)
- Concurrent write safety (20 goroutines, valid JSONL output)
- Empty journal returns no entries

Handler integration tests:
- TickParent full flow: signal -> execute -> verify epic body updated,
  child closed, progress tracked (checked/unchecked counts)
- EnableAutoMerge: verify squash merge method via mock
- PublishDraft: verify draft=false PATCH sent
- SendFixCommand: conflict vs review message paths
- Completion: success flow (label swap, comment) and failure flow
- Full pipeline: signal -> handler -> journal write -> read-back
- Handler priority: verify correct handler matches each signal state
  (merged, draft, conflicting, open+passing)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 05:51:48 +00:00
Claude
f50fc405f5
test(forgejo): push coverage from 73.3% to 95.0%
Add unit tests for all signal mapping functions (mapPRState, mapMergeable,
mapCombinedStatus with all branches including nil, zero count, error
state). Add tests for parseEpicChildren (all checked, all unchecked,
no checkboxes), findLinkedPR (found, not found, nil), buildSignal
(with and without head SHA), splitRepo table-driven tests.

Add Poll integration tests: multiple repos, NeedsCoding with assignee,
merged PR, no head SHA (PENDING status), API errors (graceful skip),
empty repos list, non-epic issues filtered. Add Report tests: nil
result, failed result with error message.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 01:59:36 +00:00
Claude
3e883f6976
feat: extract SCM/forge integration packages from core/go
Forgejo and Gitea SDK wrappers, multi-repo git utilities, AgentCI
dispatch, distributed job orchestrator, and data collection pipelines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:25:58 +00:00