docs: archive completed plans
Archive 3 completed plan files to docs/plans/completed/: - core-ide-job-runner-design: All components (poller, dispatcher, journal, 6 handlers, headless/desktop mode) were implemented and operational. Code extracted to core/ide and core/go during Feb 2026 monorepo split. - bugseti-hub-service-design + plan: All 8 Go-side tasks implemented (config fields, HubService types, HTTP helpers, AutoRegister, write ops, read ops, pending queue, main.go wiring). Code extracted to core/bugseti on 16 Feb 2026. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
4dfbddf11f
commit
cfdc8d3426
5 changed files with 107 additions and 0 deletions
57
docs/plans/completed/bugseti-hub-service.md
Normal file
57
docs/plans/completed/bugseti-hub-service.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# BugSETI HubService — Completion Summary
|
||||
|
||||
**Completed:** 13 February 2026
|
||||
**Module:** `forge.lthn.ai/core/cli` (extracted to `core/bugseti` repo on 16 Feb 2026)
|
||||
**Status:** Complete — all Go-side tasks implemented and wired into app lifecycle
|
||||
|
||||
## What Was Built
|
||||
|
||||
Thin HTTP client service coordinating with the agentic portal's
|
||||
`/api/bugseti/*` endpoints for issue claiming, stats sync, leaderboard,
|
||||
and offline-first pending operations queue.
|
||||
|
||||
### Implementation (Tasks 1-8 from plan)
|
||||
|
||||
All 8 Go-side tasks were implemented across commits `a38ce05` through `177ce27`:
|
||||
|
||||
1. **Config fields** — HubURL, HubToken, ClientID, ClientName added to
|
||||
ConfigService with getters/setters (`a38ce05`)
|
||||
2. **HubService types + constructor** — HubService, PendingOp, HubClaim,
|
||||
LeaderboardEntry, GlobalStats, ConflictError, NotFoundError (`a89acfa`)
|
||||
3. **HTTP request helpers** — `doRequest()`, `doJSON()` with bearer auth,
|
||||
error classification (401/404/409), and connection tracking (`ab7ef52`)
|
||||
4. **AutoRegister** — exchange forge token for ak_ hub token via
|
||||
`/auth/forge` endpoint (`21d5f5f`)
|
||||
5. **Write operations** — Register, Heartbeat, ClaimIssue, UpdateStatus,
|
||||
ReleaseClaim, SyncStats (`a6456e2`)
|
||||
6. **Read operations** — IsIssueClaimed, ListClaims, GetLeaderboard,
|
||||
GetGlobalStats (`7a92fe0`)
|
||||
7. **Pending ops queue** — offline-first queue with disk persistence to
|
||||
`hub_pending.json`, drain-on-reconnect (`a567568`)
|
||||
8. **main.go integration** — HubService wired as Wails service with
|
||||
auto-registration at startup (`177ce27`)
|
||||
|
||||
### Tests
|
||||
|
||||
All operations tested with `httptest.NewServer` mocks covering success,
|
||||
network error, 409 conflict, 401 re-auth, and pending ops persist/reload
|
||||
scenarios. Hub test file: `internal/bugseti/hub_test.go`.
|
||||
|
||||
### Key files (before extraction)
|
||||
|
||||
- `internal/bugseti/hub.go` — HubService implementation (25 exported methods)
|
||||
- `internal/bugseti/hub_test.go` — comprehensive httptest-based test suite
|
||||
- `internal/bugseti/config.go` — hub config fields and accessors
|
||||
- `cmd/bugseti/main.go` — lifecycle wiring
|
||||
|
||||
### Task 9 (Laravel endpoint)
|
||||
|
||||
The portal-side `/api/bugseti/auth/forge` endpoint (Task 9) lives in the
|
||||
`agentic` repo, not in `core/cli`. It was designed in this plan but
|
||||
implemented separately.
|
||||
|
||||
### Extraction
|
||||
|
||||
BugSETI was extracted to its own repo on 16 Feb 2026 (`8167f66`):
|
||||
`internal/bugseti/` moved to `core/bugseti`, `cmd/bugseti/` moved to
|
||||
`core/bugseti/cmd/`.
|
||||
50
docs/plans/completed/core-ide-job-runner.md
Normal file
50
docs/plans/completed/core-ide-job-runner.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Core-IDE Job Runner — Completion Summary
|
||||
|
||||
**Completed:** 9 February 2026
|
||||
**Module:** `forge.lthn.ai/core/cli` (extracted to `core/ide` repo during monorepo split)
|
||||
**Status:** Complete — all components built, tested, and operational before extraction
|
||||
|
||||
## What Was Built
|
||||
|
||||
Autonomous job runner for core-ide that polls Forgejo for actionable pipeline
|
||||
work, executes it via typed handler functions, captures JSONL training data,
|
||||
and supports both headless (server) and desktop (Wails GUI) modes.
|
||||
|
||||
### Key components
|
||||
|
||||
- **`pkg/jobrunner/types.go`** — JobSource, JobHandler, PipelineSignal,
|
||||
ActionResult interfaces and structs
|
||||
- **`pkg/jobrunner/poller.go`** — multi-source poller with configurable
|
||||
interval, ETag-based conditional requests, and idle backoff
|
||||
- **`pkg/jobrunner/journal.go`** — append-only JSONL writer for training data
|
||||
capture (structural signals only, no content)
|
||||
- **`pkg/jobrunner/forgejo/source.go`** — ForgejoSource adapter (evolved from
|
||||
original GitHubSource design to use pkg/forge SDK)
|
||||
- **`pkg/jobrunner/forgejo/signals.go`** — PR/issue state extraction and
|
||||
signal building from Forgejo API responses
|
||||
|
||||
### Handlers
|
||||
|
||||
All six handlers from the design were implemented with tests:
|
||||
|
||||
- `publish_draft` — mark draft PRs as ready when checks pass
|
||||
- `send_fix_command` — comment fix instructions for conflicts/reviews
|
||||
- `resolve_threads` — resolve pre-commit review threads after fix
|
||||
- `enable_auto_merge` — enable auto-merge when all checks pass
|
||||
- `tick_parent` — update epic issue checklist when child PR merges
|
||||
- `dispatch` — SCP ticket delivery to agent machines via SSH (added beyond
|
||||
original design)
|
||||
|
||||
### Headless / Desktop mode
|
||||
|
||||
- `hasDisplay()` detection for Linux/macOS/Windows
|
||||
- `--headless` / `--desktop` CLI flag overrides
|
||||
- Headless: poller + MCP bridge, signal handling, systemd-ready
|
||||
- Desktop: Wails GUI with system tray, optional poller toggle
|
||||
|
||||
### Extraction
|
||||
|
||||
Code was fully operational and then extracted during the Feb 2026 monorepo
|
||||
split (`abe74a1`). `pkg/jobrunner/` moved to `core/go`, `cmd/core-ide/` and
|
||||
`internal/core-ide/` moved to `core/ide`. The agentci dispatch system
|
||||
(`d9f3b72` through `886c67e`) built on top of the jobrunner before extraction.
|
||||
Loading…
Add table
Reference in a new issue