cli/docs/plans/completed/bugseti-hub-service.md
Claude cfdc8d3426
Some checks failed
Deploy / build (push) Failing after 3s
Security Scan / security (push) Successful in 20s
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>
2026-02-24 18:09:12 +00:00

2.4 KiB

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 helpersdoRequest(), 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/.