feat(panel): island, rail by day, companion mode beside a deep note, cached index and threads, obsidian skin for strips

This commit is contained in:
hh
2026-09-02 03:48:42 +02:00
parent 126e8b0451
commit cec5aef98c
8 changed files with 199 additions and 16 deletions
+84
View File
@@ -23,6 +23,7 @@ function summary(
): ConversationSummary {
return {
agent: "beaver-dispatcher",
context_tokens: 84_000,
created_at: ago(9 * HOUR),
flags: {},
last_activity_at: ago(4 * MINUTE),
@@ -66,6 +67,7 @@ const ROWS: ConversationSummary[] = [
status: "done",
text: "правило для 62990 добавлено, проверь снаружи",
},
parent: MASTER,
parent_row: 1,
title: "ufw на dell",
}),
@@ -73,6 +75,7 @@ const ROWS: ConversationSummary[] = [
id: BRANCH_BLASTER,
kind: "branch",
last_activity_at: ago(3 * HOUR),
parent: MASTER,
parent_row: 1,
pending_question: true,
title: "бластер - что заказать",
@@ -292,6 +295,87 @@ export class FakeClient extends ApiClient {
method: "GET",
pattern: /^\/api\/agents$/,
},
{
handle: () => ({ conversations: [], files: [], query: "" }),
method: "GET",
pattern: /^\/api\/search/,
},
{
handle: () => ({ edges: [], nodes: [], root: "" }),
method: "GET",
pattern: /^\/api\/vault\/graph/,
},
{
handle: ([, id]) => ({
agent: {
effort: "high",
model: "claude-opus-5",
name: "beaver-dispatcher",
},
context_tokens: 84_000,
files: [
{
last_at: ago(MINUTE),
other: 0,
path: "📅 дни/2026-08-29.md",
reads: 1,
writes: 0,
},
{
last_at: ago(5 * MINUTE),
other: 0,
path: "👤 люди/Марта Ветрова.md",
reads: 2,
writes: 1,
},
],
history_tokens_est: 60_000,
id,
kind: "master",
prompt: {
bytes: 24_000,
granules: [
{
bytes: 9000,
path: "мета/бобер/промпты/гранулы/голос/role.md",
tag: "role",
tokens_est: 2800,
},
{
bytes: 15_000,
path: "мета/бобер/промпты/гранулы/диспетчер.md",
tag: "dispatcher",
tokens_est: 4700,
},
],
tokens_est: 7500,
},
skills: [
{
path: "мета/бобер/скиллы/общие",
set: "общие",
skills: [
{
description: "серверы и стеки",
name: "ops",
path: "мета/бобер/скиллы/общие/ops",
},
],
},
],
skills_tokens_est: 20,
tool_counts: { Bash: 1, Read: 3 },
tools: {
allowed: null,
disallowed: [],
gateway: ["say", "spawn"],
mcps: ["komodo"],
},
turns: 4,
}),
method: "GET",
pattern: /^\/api\/conversations\/([^/]+)\/context/,
},
{
handle: () => ({ conversations: this.rows }),
method: "GET",