Skip to content

feat: add assistant mode, SSE streaming, and OpenCode server integration#214

Merged
chriswritescode-dev merged 27 commits intomainfrom
dev
May 3, 2026
Merged

feat: add assistant mode, SSE streaming, and OpenCode server integration#214
chriswritescode-dev merged 27 commits intomainfrom
dev

Conversation

@chriswritescode-dev
Copy link
Copy Markdown
Owner

Summary

  • Add assistant mode with internal token authentication and API routes
  • Add OpenCode server authentication settings and config
  • Add SSE password resolver and server health monitoring
  • Integrate opencode event stream with SSE aggregator
  • Update README and project documentation
  • Bump version to 0.10.0

Changes

  • backend/src/services/assistant-mode.ts - New assistant mode service
  • backend/src/services/opencode/client.ts - New OpenCode event stream client
  • backend/src/services/opencode/auth.ts - New OpenCode auth service
  • backend/src/services/internal-token.ts - Internal token authentication
  • backend/src/routes/internal/* - New internal API routes (notifications, settings)
  • backend/test/routes/internal-*.test.ts - New internal API tests
  • backend/test/services/opencode/client.test.ts - New client tests
  • frontend/src/hooks/useOpenCode.ts - New OpenCode hook
  • frontend/src/hooks/useOpenCodeServerAuth.ts - New auth hook
  • frontend/src/lib/opencode-event-stream/* - New event stream implementation
  • frontend/src/components/settings/OpenCodeServerAuthSettings.tsx - New settings component
  • frontend/src/components/repo/RepoSkillsDialog.tsx - New skills dialog
  • shared/src/schemas/internal-assistant.ts - New assistant schemas
  • docs/features/assistant-internal-api.md - New docs
    • many more (133 files changed, 7278 insertions, 6287 deletions)

Type of Change

  • Feature
  • Refactor

Checklist

  • Code follows project style (no comments, named imports)
  • TypeScript types are properly defined
  • Tests added/updated
  • `pnpm lint` passes locally

…sibility (#211)

* fix: add startup timeout to STT microphone start

Race microphone startup against a 10s timeout to prevent the voice
button from getting stuck in a loading state when the microphone
never actually starts. On timeout, abort the recorder/recognizer,
reset all STT state, and return false so the UI can recover.

* refactor(frontend): improve voice status overlay and scroll button visibility
The drawer header was displaying the source repo name instead of
"Assistant" when opened from /repos/:id/assistant or assistant
session detail routes. Added route detection and conditional
display name. Also fixed missing QueryClientProvider in tests.
@chriswritescode-dev chriswritescode-dev merged commit c3d6549 into main May 3, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant