feat: наблюдение за живой opencode-сессией (/status N показывает что делает агент)
LiveRegistry собирает live-шаги из stdout процесса opencode по taskID (через контекст, без изменения интерфейса Runner). /status N для running-задачи прикладывает живое состояние: активный субагент, давность последнего шага, последние text-шаги агента. Ничего не перезапускается и не убивается — только наблюдение по запросу.
This commit is contained in:
@@ -103,6 +103,9 @@ func New(configPath, version, updateToken string) (*App, error) {
|
||||
// Core — ядро машины состояний
|
||||
coreCtx := core.New(store, analystCtx)
|
||||
|
||||
// Live-журнал живых сессий: воркер пишет шаги агента, /status N их читает.
|
||||
live := opencode.NewLiveRegistry()
|
||||
|
||||
// Router — единый диспетчер входящих из всех каналов
|
||||
a := &App{
|
||||
Config: cfg,
|
||||
@@ -129,10 +132,14 @@ func New(configPath, version, updateToken string) (*App, error) {
|
||||
MaxJobs: 2,
|
||||
GitBaseURL: cfg.Git.BaseURL,
|
||||
GitToken: cfg.Git.Token,
|
||||
Live: live,
|
||||
}
|
||||
a.Router = router
|
||||
a.Worker = w
|
||||
|
||||
// /status N читает живое состояние сессии через liveProbe-адаптер.
|
||||
coreCtx.Live = &liveProbe{reg: live}
|
||||
|
||||
// Auto-обновление: .new/.old рядом с бинарником (Dir пуст → binDir() от os.Executable).
|
||||
// Токен: вшитый updateToken приоритетнее update.token из конфига.
|
||||
udToken := updateToken
|
||||
|
||||
Reference in New Issue
Block a user