Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions services/nvpair-tui/ui/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ func newClusterView(client *rpc.Client) *clusterView {
ti := textinput.New()
v := &clusterView{client: client, input: ti}
v.table = newTable(nil)
// Seed real columns before any RPC result can reach the table: a
// zero-column table panics (index out of range) in table.SetRows if
// data arrives before the first tea.WindowSizeMsg calls SetSize.
v.SetSize(0, 0)
return v
}

Expand Down
4 changes: 4 additions & 0 deletions services/nvpair-tui/ui/engines.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ func newEnginesView(client *rpc.Client) *enginesView {
ti.Placeholder = "model name (e.g. llama3.2)"
v := &enginesView{client: client, byName: map[string]engineStatus{}, input: ti}
v.table = newTable(nil)
// Seed real columns before any RPC result can reach the table: a
// zero-column table panics (index out of range) in table.SetRows if
// data arrives before the first tea.WindowSizeMsg calls SetSize.
v.SetSize(0, 0)
return v
}

Expand Down
6 changes: 5 additions & 1 deletion services/nvpair-tui/ui/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@ var clearKey = key.NewBinding(

func newErrorsView(client *rpc.Client) *errorsView {
v := &errorsView{client: client}
v.table = newTable(nil)
// Seed real columns up front (not nil): errors:get-initial can return
// before the first tea.WindowSizeMsg reaches SetSize, and setErrors ->
// table.SetRows on a zero-column table panics (index out of range) as
// soon as the broker already has >=1 stored error at startup.
v.table = newTable(v.columns())
return v
}

Expand Down
4 changes: 4 additions & 0 deletions services/nvpair-tui/ui/manualnodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ func newManualView(client *rpc.Client) *manualView {
ti.Placeholder = "host"
v := &manualView{client: client, input: ti}
v.table = newTable(nil)
// Seed real columns before any RPC result can reach the table: a
// zero-column table panics (index out of range) in table.SetRows if
// data arrives before the first tea.WindowSizeMsg calls SetSize.
v.SetSize(0, 0)
return v
}

Expand Down
4 changes: 4 additions & 0 deletions services/nvpair-tui/ui/nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ var niInviteKey = key.NewBinding(key.WithKeys("i"), key.WithHelp("i", "invite to
func newNodesView(client *rpc.Client) *nodesView {
v := &nodesView{client: client}
v.table = newTable(nil)
// Seed real columns before any RPC result can reach setNodes: a
// zero-column table panics (index out of range) in table.SetRows if
// data arrives before the first tea.WindowSizeMsg calls SetSize.
v.SetSize(0, 0)
return v
}

Expand Down
4 changes: 4 additions & 0 deletions services/nvpair-tui/ui/proxies.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@ func newProxiesView(client *rpc.Client) *proxiesView {
{label: "LM Studio", prefix: "lmstudio-proxy", table: newTable(nil)},
},
}
// Seed real columns before any RPC result can reach these tables: a
// zero-column table panics (index out of range) in table.SetRows if
// data arrives before the first tea.WindowSizeMsg calls SetSize.
v.SetSize(0, 0)
return v
}

Expand Down
4 changes: 4 additions & 0 deletions services/nvpair-tui/ui/workloads.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ type workloadsSubscribedMsg struct{ err error }
func newWorkloadsView(client *rpc.Client) *workloadsView {
v := &workloadsView{client: client, byKey: map[string]workload{}}
v.table = newTable(nil)
// Seed real columns before any RPC result can reach the table: a
// zero-column table panics (index out of range) in table.SetRows if
// data arrives before the first tea.WindowSizeMsg calls SetSize.
v.SetSize(0, 0)
return v
}

Expand Down
6 changes: 3 additions & 3 deletions services/versions.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$comment": "Single source of truth for all version numbers. See VERSIONING.md for bump rules.",
"product": "0.91.7",
"installer": "0.91.7",
"product": "0.91.8",
"installer": "0.91.8",
"components": {
"ollama-proxy": "0.26.2",
"lmstudio-proxy": "0.16.2",
Expand All @@ -15,6 +15,6 @@
"nvpair-engine-manager": "0.17.4",
"nvpair-cluster-manager": "1.1.4",
"nvpair-job-scheduler": "0.4.1",
"nvpair-tui": "0.7.2"
"nvpair-tui": "0.7.3"
}
}