Dax Raad 9 месяцев назад
Родитель
Сommit
fa8a46326a
5 измененных файлов с 14 добавлено и 13 удалено
  1. 3 0
      cmd/root.go
  2. 1 1
      js/src/app/index.ts
  3. 3 0
      js/src/server/server.ts
  4. 1 1
      js/src/util/log.ts
  5. 6 11
      pkg/client/event.go

+ 3 - 0
cmd/root.go

@@ -5,12 +5,14 @@ import (
 	"fmt"
 	"io"
 	"os"
+	"strings"
 	"sync"
 	"time"
 
 	"log/slog"
 
 	tea "github.com/charmbracelet/bubbletea"
+	"github.com/go-viper/mapstructure/v2"
 	zone "github.com/lrstanley/bubblezone"
 	"github.com/spf13/cobra"
 	"github.com/sst/opencode/internal/app"
@@ -23,6 +25,7 @@ import (
 	"github.com/sst/opencode/internal/pubsub"
 	"github.com/sst/opencode/internal/tui"
 	"github.com/sst/opencode/internal/version"
+	"github.com/sst/opencode/pkg/client"
 )
 
 type SessionIDHandler struct {

+ 1 - 1
js/src/app/index.ts

@@ -12,7 +12,7 @@ export namespace App {
   const ctx = Context.create<Info>("app");
 
   export async function create(input: { directory: string }) {
-    Log.file(input.directory);
+    // Log.file(input.directory);
     log.info("creating");
 
     const config = await Config.load(input.directory);

+ 3 - 0
js/src/server/server.ts

@@ -32,6 +32,9 @@ export namespace Server {
       .get("/event", async (c) => {
         log.info("event connected");
         return streamSSE(c, async (stream) => {
+          stream.writeSSE({
+            data: JSON.stringify({}),
+          });
           const unsub = Bus.subscribeAll(async (event) => {
             await stream.writeSSE({
               data: JSON.stringify(event),

+ 1 - 1
js/src/util/log.ts

@@ -32,7 +32,7 @@ export namespace Log {
       })
         .map(([key, value]) => `${key}=${value}`)
         .join(" ");
-      return [prefix, message].join(" ");
+      return [prefix, message].join(" ") + "\n";
     }
     const result = {
       info(message?: any, extra?: Record<string, any>) {

+ 6 - 11
pkg/client/event.go

@@ -20,18 +20,18 @@ type EventMessage struct {
 
 func (c *Client) Event(ctx context.Context) (<-chan any, error) {
 	events := make(chan any)
-	req, err := http.NewRequestWithContext(ctx, "GET", c.Server+"/event", nil)
+	req, err := http.NewRequestWithContext(ctx, "GET", c.Server+"event", nil)
+	if err != nil {
+		return nil, err
+	}
+
+	resp, err := http.DefaultClient.Do(req)
 	if err != nil {
 		return nil, err
 	}
 
 	go func() {
 		defer close(events)
-
-		resp, err := http.DefaultClient.Do(req)
-		if err != nil {
-			return
-		}
 		defer resp.Body.Close()
 
 		scanner := bufio.NewScanner(resp.Body)
@@ -47,11 +47,6 @@ func (c *Client) Event(ctx context.Context) (<-chan any, error) {
 
 				eventTemplate, exists := EventMap[eventMsg.Type]
 				if !exists {
-					select {
-					case events <- eventMsg:
-					case <-ctx.Done():
-						return
-					}
 					continue
 				}