Commit graph

137 commits

Author SHA1 Message Date
DexterFromLab
f2dcedc460 feat(orchestration): add bttask CLI + GroupAgentsPanel + btmsg Tauri bridge
Phase 2: bttask CLI (Python, SQLite) — task management with role-based
visibility. Kanban board view. Manager/Architect can create tasks,
Tier 2 agents receive tasks via btmsg only.

Phase 3: GroupAgentConfig in groups.json + Rust backend. GroupAgentsPanel
Svelte component above ProjectGrid with status dots, role icons,
unread badges, start/stop buttons.

Phase 4: btmsg Rust bridge (btmsg.rs) — read/write access to btmsg.db.
6 Tauri commands for agent status, messages, and history.
GroupAgentsPanel polls btmsg.db every 5s for live status updates.
2026-03-11 14:03:11 +01:00
DexterFromLab
e1025a0a8a feat(btmsg): add group agent messenger CLI
Python CLI tool for hierarchical multi-agent communication.
SQLite-backed (WAL mode), agent identity via BTMSG_AGENT_ID env var.

Features:
- inbox/read/send/reply — message CRUD with read tracking
- contacts — role-based communication hierarchy enforcement
- history — per-agent conversation view
- status — all agents with tier/role/model/unread counts
- register/allow — agent and contact management
- notify — single-line notification for agent injection
- Short ID prefix matching for convenience

Also: change default Claude model to opus-4-6
2026-03-11 13:51:40 +01:00
DexterFromLab
44610f3177 fix(workspace): docs discovery for doc/ dirs + SSH terminal tab args
- Add doc/ alongside docs/ in markdown file discovery (groups.rs)
- Add SETUP.md to priority root files
- Fix SSH terminal tabs: resolve session args via sshArgsCache derived
  from listSshSessions() instead of passing empty args
- Fix Agent Preview: only mount xterm when tab is active (prevents
  CanvasAddon crash on hidden elements)
- Separate tab type rendering (shell/ssh/agent-preview) with proper guards
2026-03-11 13:04:32 +01:00
Hibryda
af3cd45324 refactor(components): apply branded types at Svelte component call sites 2026-03-11 05:46:22 +01:00
Hibryda
889adcb004 refactor(agent-dispatcher): brand sessionId at sidecar boundary 2026-03-11 05:40:28 +01:00
Hibryda
a06b9d5053 refactor(utils): apply branded types to session-persistence and auto-anchoring 2026-03-11 05:40:28 +01:00
Hibryda
3f4f2d70af refactor(stores): apply branded types to conflicts and health Map keys 2026-03-11 05:40:28 +01:00
Hibryda
f2a7d385d6 feat(types): introduce SessionId/ProjectId branded types (SOLID Phase 3) 2026-03-11 05:40:28 +01:00
Hibryda
7ba63db101 refactor(agent-dispatcher): remove dead detectWorktreeFromCwd re-export 2026-03-11 05:29:28 +01:00
Hibryda
9c94272ca7 refactor(session): split session.rs into 7 sub-modules (SOLID Phase 2) 2026-03-11 05:25:32 +01:00
Hibryda
450756f540 refactor(agent-dispatcher): split into 4 focused modules (SOLID Phase 2) 2026-03-11 05:25:32 +01:00
Hibryda
af369f30d2 test(attention-scorer): add 14 tests for extracted scorer function 2026-03-11 05:09:15 +01:00
Hibryda
4d93b77f6a refactor(frontend): extract attention scorer and shared type guards 2026-03-11 05:09:15 +01:00
Hibryda
30c21256bc refactor(backend): split lib.rs into 11 domain command modules 2026-03-11 05:09:15 +01:00
Hibryda
fc7fe3180e fix(remote): cancel reconnect loop on machine removal 2026-03-11 04:51:46 +01:00
Hibryda
6b420a6a1f feat(health): configurable per-project stall threshold 2026-03-11 04:20:28 +01:00
Hibryda
be504cadcf test(memora): add Memora bridge and adapter tests 2026-03-11 04:09:29 +01:00
Hibryda
f3f740a8fe feat(memora): add Memora adapter with read-only SQLite backend 2026-03-11 04:09:29 +01:00
Hibryda
8309896e7d test(providers): add Codex and Ollama message adapter tests 2026-03-11 03:56:05 +01:00
Hibryda
3e34fda59a feat(providers): add Codex and Ollama provider runners with message adapters 2026-03-11 03:56:05 +01:00
Hibryda
643ab0a6b6 test(worktree-isolation): add worktree detection tests 2026-03-11 03:23:58 +01:00
Hibryda
0d9c473a06 feat(session-anchors): configurable budget scale + research-backed truncation fix
Remove 500-char assistant text truncation in anchor serializer — research
consensus (JetBrains NeurIPS 2025, SWE-agent, OpenDev ACC) is that agent
reasoning must never be truncated; only tool outputs get observation-masked.

Add AnchorBudgetScale type with 4 presets (Small=2K, Medium=6K, Large=12K,
Full=20K) and per-project range slider in SettingsTab. Remove Ollama-specific
warning toast — budget slider handles context limits generically.
2026-03-11 03:03:53 +01:00
Hibryda
3e60516544 test(session-anchors): add anchor serializer tests 2026-03-11 02:43:06 +01:00
Hibryda
ccce2b6005 feat(session-anchors): add pin button, anchor re-injection, and ContextTab UI 2026-03-11 02:43:06 +01:00
Hibryda
a9e94fc154 feat(session-anchors): implement S-2 session anchor persistence and auto-anchoring 2026-03-11 02:43:06 +01:00
Hibryda
11b00f18f8 feat(settings): add provider config UI and sidecar routing (Phase 2+3)
Add Providers section to SettingsTab with collapsible per-provider config
panels and per-project provider dropdown. Implement provider-based sidecar
runner selection and multi-provider env var stripping in Rust.
2026-03-11 02:08:45 +01:00
Hibryda
1efcb13869 feat(provider-adapter): implement multi-provider abstraction layer (Phase 1)
Add provider types, registry, capabilities, and message adapter registry.
Rename sdk-messages→claude-messages, agent-runner→claude-runner,
ClaudeSession→AgentSession. Update Rust AgentQueryOptions with provider
and provider_config fields. Capability-driven AgentPane rendering.
2026-03-11 02:08:45 +01:00
Hibryda
a74d3a74d3 fix(pdf-viewer): use static worker + lazy page rendering
Worker copied to public/ via prebuild script (avoids Vite resolution issues).
IntersectionObserver renders only visible pages (+200px ahead) instead of all
at once, fixing performance for large PDFs.
2026-03-11 01:27:54 +01:00
Hibryda
378c59bb97 feat(files-tab): add PDF viewer and CSV table view
pdfjs-dist for canvas-based multi-page PDF rendering with zoom controls.
RFC 4180 CSV parser with delimiter auto-detection and sortable columns.
FilesTab routes Binary+pdf to PdfViewer, Text+csv to CsvTable.
2026-03-11 01:23:49 +01:00
Hibryda
64ad4d2e58 feat(fs-watcher): add 300ms delayed scanning toast for large project dirs 2026-03-11 01:11:39 +01:00
Hibryda
b19aa632c8 feat(fs-watcher): add inotify watch limit sensing with toast warning 2026-03-11 01:07:46 +01:00
Hibryda
e5d9f51df7 feat(s1p2): add inotify-based filesystem write detection with external conflict tracking 2026-03-11 00:56:27 +01:00
Hibryda
38b8447ae6 feat(conflicts): add bash write detection, dismiss/acknowledge, and worktree suppression 2026-03-11 00:25:26 +01:00
Hibryda
82fb618c76 feat(conflicts): add file overlap conflict detection (S-1 Phase 1)
Detects when 2+ agent sessions write the same file within a project.
New conflicts.svelte.ts store, shared tool-files.ts utility, dispatcher
integration, health attention scoring (SCORE_FILE_CONFLICT=70), and UI
indicators in ProjectHeader + StatusBar. 170/170 tests pass.
2026-03-11 00:12:10 +01:00
Hibryda
8e00e0ef8c perf(health): auto-stop tick timer when no active sessions
Health tick now self-stops when no tracked project has a running/starting
agent session. Auto-restarts on next recordActivity() call. Eliminates
5-second polling overhead when all agents are idle/done.
2026-03-10 23:46:52 +01:00
Hibryda
42094eac2a feat(health): add project health store, Mission Control bar, and session metrics 2026-03-10 23:45:30 +01:00
Hibryda
f4ec2f3762 feat(context): detect compaction events from SDK compact_boundary messages 2026-03-10 04:20:32 +01:00
Hibryda
979c8883f3 feat(context): add AST conversation tree and tool-file graph views 2026-03-10 04:03:52 +01:00
Hibryda
6e24adcd56 feat(context): add ContextTab with LLM context window visualization 2026-03-10 03:52:16 +01:00
Hibryda
86fa55bc3e fix(editor): use $state for prop tracking to fix Svelte state_referenced_locally warnings 2026-03-10 03:13:36 +01:00
Hibryda
e54ea1dbbc feat(settings): add save-on-blur toggle for file editor 2026-03-10 03:11:32 +01:00
Hibryda
3bb972fc01 feat(files): add CodeMirror 6 editor with save, dirty tracking, and 15 language modes 2026-03-10 03:11:32 +01:00
Hibryda
cfe3abcf00 fix(files): look up tab from reactive array before setting content 2026-03-10 02:55:38 +01:00
Hibryda
e2a406a167 fix(files): change file tab bar from nested buttons to div with role=tab 2026-03-10 02:54:10 +01:00
Hibryda
59606e067f feat(files): add word wrap, collapsible sidebar, and preview/pinned tabs to FilesTab 2026-03-10 02:51:05 +01:00
Hibryda
260a21c66a feat(backend): add list_directory_children and read_file_content Rust commands 2026-03-10 02:12:05 +01:00
Hibryda
6744e1beaf feat(workspace): overhaul ProjectBox tab system with 6 tabs and lazy mount 2026-03-10 02:12:05 +01:00
Hibryda
0a51fc4b02 fix(session): resolve ClaudeSession type errors — UUID cast and missing timestamp on restored messages 2026-03-10 01:00:32 +01:00
Hibryda
cd438c2cf3 feat(markdown): intercept links in MarkdownPane — relative files navigate in Files tab, external URLs open in browser 2026-03-10 00:58:46 +01:00
Hibryda
b6ca086371 fix(agent): accumulate cost across continued session turns instead of replacing 2026-03-09 17:40:35 +01:00