Commit graph

796 commits

Author SHA1 Message Date
Claude
d9f3b726f2 feat(agentci): package dispatch system for multi-agent deployment
Config-driven agent targets replace hardcoded map so new agents
can be added via CLI instead of recompiling. Includes setup script
for bootstrapping agent machines and CLI commands for management.

- Add pkg/agentci with config types and CRUD (LoadAgents, SaveAgent, etc.)
- Add CLI: core ai agent {add,list,status,logs,setup,remove}
- Add scripts/agent-setup.sh (SSH bootstrap: dirs, cron, prereq check)
- Headless loads agents from ~/.core/config.yaml
- Dispatch ticket includes forgejo_user for dynamic clone URLs
- agent-runner.sh reads username from ticket JSON, not hardcoded

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:36:23 +00:00
Virgil
03a9640f05 Merge pull request 'feat(bugseti): wire BugSETI into root build system and ship v0.1.0' (#38) from feat/bugseti-launch into new 2026-02-09 10:28:37 +00:00
Snider
c535c5ad2f Merge branch 'new' of https://forge.lthn.ai/host-uk/core into new 2026-02-09 10:24:27 +00:00
Snider
76c731ffb9 chore(bugseti): disable Angular CLI analytics
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-09 10:24:22 +00:00
Claude
849695fe39 feat(jobrunner): add agent dispatch handler and queue runner
Dispatch handler matches child issues that need coding (no PR yet,
assigned to a known agent) and SCPs ticket JSON to the agent's
queue directory via SSH. Includes dedup across queue/active/done
and posts dispatch comments on issues.

- Extend PipelineSignal with NeedsCoding, Assignee, IssueTitle, IssueBody
- Extend ForgejoSource to emit signals for unstarted children
- Add DispatchHandler with Match/Execute (SCP ticket delivery)
- Add agent-runner.sh cron-based queue runner for agent machines
- Wire dispatch handler into headless mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:10:08 +00:00
Snider
1b2866fc17 feat(bugseti): wire BugSETI into root build system and make functional
- Add bugseti:dev, bugseti:build, bugseti:frontend tasks to root Taskfile
- Update Wails v3 config to current dev_mode format (root_path, executes)
- Raise Angular component CSS budget to 6KB (inline styles by design)
- Fix vanity-import Dockerfile typo (---FROM → FROM)
- Verify: Go compiles, tests pass, frontend builds clean, binary runs

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-09 02:49:01 +00:00
Snider
a668c5ab5a fix(core-ide): use path-based routing for multi-window SPA, clean up formatting
Switch Angular from hash-based to path-based routing so each Wails window
(/tray, /main, /settings) loads its correct route. Archive GitHub Actions
workflows to .gh-actions/, update Forgejo deploy registry to dappco.re/osi,
and apply gofmt/alignment fixes across packages.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-09 01:50:57 +00:00
Snider
0fb9de600d updates 2026-02-09 01:27:40 +00:00
Claude
d32c51d816 feat(jobrunner): port from GitHub to Forgejo using pkg/forge
Replace all GitHub API and gh CLI dependencies with Forgejo SDK via
pkg/forge. The bash dispatcher burned a week of credit in a day due to
bugs — the jobrunner now talks directly to Forgejo.

- Add forge client methods: CreateIssueComment, CloseIssue, MergePullRequest,
  SetPRDraft, ListPRReviews, GetCombinedStatus, DismissReview
- Create ForgejoSource implementing JobSource (epic polling, checklist
  parsing, commit status via combined status API)
- Rewrite all 5 handlers to accept *forge.Client instead of shelling out
- Replace ResolveThreadsHandler with DismissReviewsHandler (Forgejo has
  no thread resolution API — dismiss stale REQUEST_CHANGES reviews instead)
- Delete pkg/jobrunner/github/ and handlers/exec.go entirely
- Update internal/core-ide/headless.go to wire Forgejo source and handlers
- All 33 tests pass with mock Forgejo HTTP servers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 00:40:49 +00:00
77adc533fc Merge pull request 'codex/bugseti-mcp' (#36) from codex/bugseti-mcp into new
Reviewed-on: host-uk/core#36
2026-02-08 23:16:41 +00:00
6010931500 Merge branch 'new' into codex/bugseti-mcp 2026-02-08 23:15:35 +00:00
Snider
c494c7b998 feat(core-ide): add MCP bridge (SERVER) and Claude bridge (CLIENT)
SERVER bridge (mcp_bridge.go):
- HTTP server on :9877 exposing 24 MCP tools
- Window management: list, get, position, size, bounds, maximize,
  minimize, restore, focus, visibility, title, fullscreen, create, close
- Webview: eval JS, navigate, list
- System: clipboard read/write, tray control
- Endpoints: /mcp, /mcp/tools, /mcp/call, /health, /ws, /claude

CLIENT bridge (claude_bridge.go):
- WebSocket relay between GUI clients and MCP core on :9876
- Auto-reconnect with backoff
- Bidirectional message forwarding (claude_message type)

Moved HTTP server from IDEService to MCPBridge for unified endpoint.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-08 23:12:51 +00:00
Snider
dd017288e7 fix(tray-apps): SPA routing, TypeScript fixes, and deferred onboarding
- Add spaHandler() to both BugSETI and Core IDE for Angular client-side
  routing (AssetFileServerFS doesn't fallback to index.html)
- Fix jellyfin.component.ts sanitizer initialization order (both apps)
- Fix chat.component.ts Event/KeyboardEvent type mismatch
- Defer onboarding window to ApplicationStarted event hook

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-08 23:03:49 +00:00
Snider
5c3b70a1eb fix: resolve conflict markers and remove legacy code after branch consolidation
- Remove conflict markers from 19 files that were accidentally committed
  during merge resolutions (keeping HEAD versions)
- Remove legacy root-level code (core.go, main.go, config/, crypt/,
  display/, filesystem/, workspace/, docs/*.go, cmd/app/) from old
  architecture predating pkg/ restructure
- Remove duplicate pkg/config/loader.go (Load/Save already in config.go)
- Fix import alias in cmd_apply.go (errors -> core)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-08 22:08:35 +00:00
Snider
686b876749 Merge branch 'refactor/core-decomposition' into new 2026-02-08 22:00:38 +00:00
Snider
44c154056f Merge branch 'audit/dependencies-185' into new 2026-02-08 22:00:38 +00:00
Snider
9fd9db8181 Merge branch 'ci/use-build-action' into new 2026-02-08 22:00:38 +00:00
Snider
295f0fca85 Merge branch 'ci/org-wide-workflows' into new 2026-02-08 22:00:38 +00:00
Snider
dac61fc428 Merge branch 'fix/windows-zip' into new 2026-02-08 22:00:30 +00:00
Snider
170da456ae Merge branch 'fix/ssh-security-13442055821003769195' into new 2026-02-08 22:00:30 +00:00
Snider
8066e6cfd7 Merge branch 'fix/release-windows-shell' into new 2026-02-08 22:00:30 +00:00
Snider
18c9f973db Merge branch 'fix/release-go-build' into new 2026-02-08 22:00:30 +00:00
Snider
8e4ab36aa4 Merge branch 'fix/release-build-path' into new 2026-02-08 22:00:30 +00:00
Snider
cbb0f9045c Merge branch 'fix/rag-formatting' into new 2026-02-08 22:00:29 +00:00
Snider
5d38a65bf1 Merge branch 'fix/pr-263-reviews' into new 2026-02-08 22:00:29 +00:00
Snider
1c029e044b Merge branch 'fix/linker-flags-226' into new 2026-02-08 22:00:29 +00:00
Snider
1cf6449602 Merge branch 'fix/homebrew-tap-auth' into new 2026-02-08 22:00:29 +00:00
Snider
f855c45fc8 Merge branch 'fix/gofmt-client' into new 2026-02-08 22:00:29 +00:00
Snider
6064c198eb Merge branch 'fix/gemini-batch' into new 2026-02-08 22:00:29 +00:00
Snider
a3147895c4 Merge branch 'fix/docstrings-exec-logger' into new 2026-02-08 22:00:29 +00:00
Snider
8225812fd2 Merge branch 'fix/disable-dev-release' into new 2026-02-08 22:00:29 +00:00
Snider
315b4fc052 Merge branch 'fix/consolidate-workflows' into new 2026-02-08 22:00:21 +00:00
Snider
aba0698c24 Merge branch 'feature-core-integration' into new 2026-02-08 22:00:01 +00:00
Snider
6a92682c20 Merge branch 'feat/job-runner' into new 2026-02-08 21:59:51 +00:00
Snider
704f8327de Merge branch 'feat/prod-infra' into new 2026-02-08 21:59:43 +00:00
Snider
2d48f2d335 Merge branch 'codex/bugseti-mcp' into new 2026-02-08 21:59:29 +00:00
Snider
34b4ec2178 Merge branch 'feat/unifi-sdk' into new 2026-02-08 21:59:25 +00:00
Snider
4e3a1a436a Merge branch 'feat/release-and-installers' into new 2026-02-08 21:59:18 +00:00
Snider
7065889926 Merge branch 'feat/release-archives' into new 2026-02-08 21:58:59 +00:00
Snider
389ce9972d Merge branch 'feature/log-batch' into new 2026-02-08 21:58:52 +00:00
Snider
ecfa5d744f Merge branch 'feature/mcp-batch' into new 2026-02-08 21:58:46 +00:00
Snider
03a6e04b17 Merge branch 'feature/help-batch' into new 2026-02-08 21:58:39 +00:00
Snider
28331e2e5f Merge branch 'feature/errors-batch' into new 2026-02-08 21:58:32 +00:00
Snider
1940b92893 Merge branch 'feature/issue-139-help-search' into new 2026-02-08 21:58:01 +00:00
Snider
53a833d55a Merge branch 'feature/issue-90-process-logger' into new 2026-02-08 21:57:14 +00:00
Snider
288431dde2 Merge branch 'feature/issue-87-no-color-support' into new 2026-02-08 21:56:44 +00:00
Snider
bbdfc3a3e6 Merge branch 'feature/issue-84-core-thread-safety' into new 2026-02-08 21:56:41 +00:00
Snider
93248b848f Merge branch 'feature/issue-81-apply-confirmation' into new 2026-02-08 21:55:37 +00:00
Snider
a519e326fd Merge branch 'feature/issue-78-nil-context' into new 2026-02-08 21:55:32 +00:00
Snider
33f92306be Merge branch 'fix/data-race-76' into new 2026-02-08 21:55:28 +00:00