You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: add npm publishing, relay update command, and fix dist path for global install
- Publish as `relayd` on npm; remove private flag; add files/engines fields
- Move React deps to devDependencies (bundled by Vite, not needed at runtime)
- Fix distDir to resolve from import.meta.dir so dashboard loads when installed globally
- Read VERSION from package.json at runtime (semantic-release owns the bump)
- Add `relay update` — checks npm registry, self-updates via bun/npm
- Silent version check on `relay start` with one-line notice if behind
- Add semantic-release config (.releaserc.json) and GitHub Actions release workflow
- Update README with bunx/npm install instructions
- Update roadmap and todo with distribution, releases, multi-dir, X.com launch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|`src/cli.ts`| CLI entrypoint — `start`, `stop`, `update`, `version`, `help`. Flags: `--config`, `--log-level`. Version read from `package.json` at runtime. `update` checks npm registry and self-updates via `bun install -g relayd`|
70
70
|`src/constants.ts`| Shared constants: `FAILURE_HINTS`, `CallbackAction`, `CallbackData` — used by telegram, dashboard, and daemon |
71
71
|`src/dashboard.ts`|`DashboardServer` — Hono + `Bun.serve()` at `localhost:7842`, serves React dashboard from `dist/`, WebSocket `/ws` for live updates, SPA fallback |
72
72
|`src/api/router.ts`| Hono app combining all API routes |
- Claude gets context from all configured directories
301
+
- Triage and fix run with access to the full multi-dir scope
302
+
- Commits and PRs go to the correct repo per changed file
303
+
- Worktrees created per repo that has changes
287
304
288
305
### 3.3 Better Onboarding
289
306
@@ -302,6 +319,38 @@ Allow sources and notification channels to be added without modifying core:
302
319
303
320
Telegram is niche — Slack is where most dev teams operate. Implement as the second notification channel (and first plugin) to validate the plugin architecture.
304
321
322
+
### 3.6 Releases & Updates
323
+
324
+
**Release automation:**
325
+
- Conventional commits → semantic-release on every merge to `main`
326
+
- Auto-bumps version in `package.json`, generates `CHANGELOG.md`, creates GitHub Release with release notes
327
+
- CI attaches compiled binaries to the GitHub Release as assets (macOS arm64, macOS x64, Linux x64)
328
+
- Homebrew formula auto-updated via a `homebrew-tap` repo triggered by the release
329
+
330
+
**Update handling per distribution path:**
331
+
332
+
| Method | How updates work |
333
+
|--------|-----------------|
334
+
|`bunx relay`| Always pulls latest — no action needed |
Copy file name to clipboardExpand all lines: TODO.md
+16-14Lines changed: 16 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,17 +13,16 @@ See `ROADMAP.md` for full context and rationale behind each item.
13
13
14
14
---
15
15
16
-
## Phase 1.5 — Web UI as Primary Interface
17
-
18
-
-[ ]**Make Telegram optional** — remove hard requirement for `telegram.botToken` and `telegram.chatId` in config validation; guard all Telegram calls behind `if (telegram)` checks in daemon; run dashboard by default without any notification connector
19
-
-[ ]**Web UI action buttons** — add Start Fix / Skip / Accept / Discard / Retry buttons to issue detail view; wire them to new REST endpoints (`POST /api/issues/:id/actions`) that call the same callback handler as Telegram
20
-
-[ ]**Web UI streaming progress** — push `tool_use` events over WebSocket during triage/fix; show live tool name, call count, elapsed time, and running cost in issue detail
21
-
-[ ]**Web UI triage result view** — display verdict, confidence score, plan, and estimated scope inline; Start Fix / Skip buttons below the plan
22
-
-[ ]**Web UI approval view** — show fix summary, diff viewer with syntax highlighting, cost/token stats; Accept / Discard buttons
23
-
-[ ]**Web UI failure view** — show failure reason with human-readable hint (reuse `FAILURE_HINTS`), Retry button
24
-
-[ ]**Integrations status page** — new `/api/config/status` endpoint returning connected sources per workspace (Sentry, Asana, Telegram) with health/auth status; render as a settings/integrations panel in the dashboard
25
-
-[ ]**Toast notifications** — browser `Notification` API for status transitions (issue picked up, triage done, fix ready for approval, failed); opt-in via dashboard settings
26
-
-[ ]**Keep existing debugging** — preserve `relay logs`, `relay show`, CLI `--follow`/`--pretty` flags; web UI log viewer is additive, not a replacement
16
+
## Phase 1.5 — Web UI as Primary Interface ✅
17
+
18
+
-[x]**Make Telegram optional** — `WorkspaceConfig.telegram` is optional; all Telegram calls guarded behind `ws.telegram?`
19
+
-[x]**Web UI action buttons** — Start Fix / Skip / Accept / Discard / Retry; `POST /api/issues/:id/action`; shared `executeAction()` handler used by both Telegram and REST
20
+
-[x]**Web UI streaming progress** — `stream_progress` WS events; live tool name, call count, elapsed time, cost in issue detail
-[ ]**Distribution** — `bunx relay` (zero-install try); `bun build --compile` single binary; Homebrew tap; `docker-compose.yml` for containerised setups; systemd unit for Linux
40
+
-[ ]**Releases & updates** — semantic-release on merge to `main`; CI builds and attaches binaries to GitHub Releases; `relay update` self-update command; version check on daemon start; Homebrew formula auto-updated from release
41
+
-[ ]**Multi-directory projects** — single project config can point to multiple directories (e.g., `api/`, `frontend/`); Claude gets context from all dirs; commits and PRs go to the right repo
42
42
-[ ]**`relay doctor` command** — validate entire setup (Bun, claude CLI, gh auth, config, bot token, repo paths) and report what's broken with fix instructions
43
43
-[ ]**Plugin architecture** — sources and notification channels as pluggable npm packages; validate with a reference implementation
44
44
-[ ]**Slack notification channel** — implement as first plugin; validates the plugin architecture works end-to-end
45
+
-[ ]**X.com launch announcement** — write and publish announcement thread positioning Relay as autonomous dev agent; include demo GIF or screenshot of dashboard + Telegram in action
0 commit comments