chore: rebrand to Agent Orchestrator + fix pragma busy_timeout crash

Rebrand all user-visible BTerminal references to Agent Orchestrator
(window title, product name, identifier, status bar, updater URL,
context registration, CLAUDE.md branch reference).

Fix critical btmsg/bttask crash: pragma_update uses execute() internally
but PRAGMA busy_timeout returns a result row, causing "Execute returned
results" error that silently broke all CommsTab message loading.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
DexterFromLab 2026-03-12 11:42:13 +01:00
parent a313da8892
commit 4fee567dd9
8 changed files with 19 additions and 18 deletions

View file

@ -1,4 +1,4 @@
# BTerminal — Claude Behavioral Guide
# Agent Orchestrator — Claude Behavioral Guide
## Workflow
@ -22,7 +22,7 @@
## Rules
- Do not modify v1 code (`bterminal.py`) unless explicitly asked — it is production-stable.
- v2/v3 work goes on the `v2-mission-control` branch, not master.
- v2/v3 work goes on the `dexter_changes` branch (repo: agent-orchestrator), not master.
- v2 architecture decisions must reference `docs/task_plan.md` Decisions Log.
- v3 architecture decisions must reference `docs/v3-task_plan.md` Decisions Log.
- When adding new decisions, append to the Decisions Log table with date.

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>BTerminal</title>
<title>Agent Orchestrator</title>
</head>
<body>
<div id="app"></div>

View file

@ -33,7 +33,7 @@ fn open_db() -> Result<Connection, String> {
.map_err(|e| format!("Failed to open btmsg.db: {e}"))?;
conn.query_row("PRAGMA journal_mode=WAL", [], |_| Ok(()))
.map_err(|e| format!("Failed to set WAL mode: {e}"))?;
conn.pragma_update(None, "busy_timeout", 5000)
conn.query_row("PRAGMA busy_timeout = 5000", [], |_| Ok(()))
.map_err(|e| format!("Failed to set busy_timeout: {e}"))?;
Ok(conn)
}
@ -480,7 +480,7 @@ fn open_db_or_create() -> Result<Connection, String> {
conn.query_row("PRAGMA journal_mode=WAL", [], |_| Ok(()))
.map_err(|e| format!("Failed to set WAL mode: {e}"))?;
conn.pragma_update(None, "busy_timeout", 5000)
conn.query_row("PRAGMA busy_timeout = 5000", [], |_| Ok(()))
.map_err(|e| format!("Failed to set busy_timeout: {e}"))?;
// Create tables if they don't exist (same schema as Python btmsg CLI)

View file

@ -33,7 +33,7 @@ fn open_db() -> Result<Connection, String> {
.map_err(|e| format!("Failed to open btmsg.db: {e}"))?;
conn.query_row("PRAGMA journal_mode=WAL", [], |_| Ok(()))
.map_err(|e| format!("Failed to set WAL mode: {e}"))?;
conn.pragma_update(None, "busy_timeout", 5000)
conn.query_row("PRAGMA busy_timeout = 5000", [], |_| Ok(()))
.map_err(|e| format!("Failed to set busy_timeout: {e}"))?;
// Migration: add version column if missing

View file

@ -1,8 +1,8 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "bterminal",
"productName": "agent-orchestrator",
"version": "0.1.0",
"identifier": "com.dexterfromlab.bterminal",
"identifier": "com.dexterfromlab.agent-orchestrator",
"build": {
"frontendDist": "../dist",
"devUrl": "http://localhost:9700",
@ -12,7 +12,7 @@
"app": {
"windows": [
{
"title": "BTerminal",
"title": "Agent Orchestrator",
"width": 1920,
"height": 1080,
"resizable": true,
@ -27,7 +27,7 @@
"plugins": {
"updater": {
"endpoints": [
"https://github.com/DexterFromLab/BTerminal/releases/latest/download/latest.json"
"https://github.com/DexterFromLab/agent-orchestrator/releases/latest/download/latest.json"
],
"dialog": true,
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEJCRkZEMERDMTUwMzY5MjIKUldRaWFRTVYzTkQvdTYwRDh6YStaSE9rWUZYYkRGd3UvVUcydE1IQVdTM29uNTRPTlpjQmFqVFEK"
@ -50,7 +50,7 @@
],
"category": "DeveloperTool",
"shortDescription": "Multi-session Claude agent dashboard",
"longDescription": "BTerminal is a terminal emulator with integrated Claude AI agent sessions, SSH management, and a tiling pane layout. Built with Tauri, Svelte 5, and xterm.js.",
"longDescription": "Agent Orchestrator is a multi-project agent dashboard with integrated Claude AI sessions, SSH management, and multi-agent orchestration. Built with Tauri, Svelte 5, and xterm.js.",
"linux": {
"deb": {
"depends": [

View file

@ -32,7 +32,7 @@
loading = true;
try {
// Register project if not already (INSERT OR IGNORE)
await ctxRegisterProject(projectName, `BTerminal project: ${projectName}`, projectCwd);
await ctxRegisterProject(projectName, `Agent Orchestrator project: ${projectName}`, projectCwd);
const [ctx, shared, sums] = await Promise.all([
ctxGetContext(projectName),

View file

@ -155,7 +155,7 @@
</button>
<span class="sep"></span>
{/if}
<span class="item version">BTerminal v3</span>
<span class="item version">Agent Orchestrator v3</span>
</div>
</div>

View file

@ -54,8 +54,8 @@
try {
agents = await getGroupAgents(groupId);
channels = await getChannels(groupId);
} catch {
// btmsg.db might not exist
} catch (e) {
console.error('[CommsTab] loadData failed:', e);
}
}
@ -70,8 +70,8 @@
} else if (currentView.type === 'channel') {
channelMessages = await getChannelMessages(currentView.channelId, 100);
}
} catch {
// silently fail
} catch (e) {
console.error('[CommsTab] loadMessages failed:', e);
}
}
@ -91,7 +91,8 @@
$effect(() => {
void groupId;
if (groupId) {
ensureAdmin(groupId).catch(() => {});
console.log('[CommsTab] groupId:', groupId);
ensureAdmin(groupId).catch((e) => console.error('[CommsTab] ensureAdmin failed:', e));
loadData();
}
});