@@ -64,9 +64,9 @@ npm run dev:ui:package # Vite dev server resolving shared UI from
6464- ` agent/ ` — LLM agent: ` core/ ` (interfaces/domain), ` infra/ ` (modules including llm, memory, map, swarm, sandbox, session, tools, document-parser), ` resources/ ` (prompts YAML, tool ` .txt ` descriptions)
6565- ` server/ ` — Daemon infrastructure: ` config/ ` , ` core/ ` (domain/interfaces), ` infra/ ` (modules including vc, git, hub, mcp, cogit, connectors, project, provider-oauth, session, space, dream, webui, billing, transport, executor, storage, context-tree), ` templates/ ` , ` utils/ `
6666- ` shared/ ` — Cross-module: constants, types, transport events, utils
67- - ` tui/ ` — React/Ink TUI: app (router/pages), components, features (23 modules, including vc, worktree, source, hub, curate), hooks, lib, providers, stores
68- - ` webui/ ` — Browser dashboard (React/Vite). Entry ` src/webui/index.tsx ` ; ` features/ ` (15 panels), ` pages/ ` (8 pages: home, changes, configuration, contexts, tasks, analytics, project-selector, not-found), ` layouts/ ` , ` stores/ ` . Connects to the daemon via Socket.IO; no imports from ` server/ ` , ` agent/ ` , or ` tui/ ` (same boundary rule)
69- - ` oclif/ ` — Commands grouped by topic (` vc/ ` , ` hub/ ` , ` worktree/ ` , ` source/ ` , ` space/ ` , ` review/ ` , ` connectors/ ` , ` curate/ ` , ` model/ ` , ` providers/ ` , ` swarm/ ` , ` query-log/ ` ) + top-level ` .ts ` commands (` webui ` , ` dream ` , ` review ` , ` search ` , ` locations ` , ` query ` , ` login ` , ` logout ` , ` init ` , ` mcp ` , ` pull ` , ` push ` , ` restart ` , ` status ` , ` debug ` ) + hidden internals (` main ` — default ` brv ` REPL entry; ` hook-prompt-submit ` — emits ` brv-instructions ` template for coding-agent pre-prompt hooks, e.g. Claude Code ` UserPromptSubmit ` ); hooks, lib (daemon-client, task-client, json-response)
67+ - ` tui/ ` — React/Ink TUI: app (router/pages), components, features (24 modules, including vc, worktree, source, hub, curate, settings ), hooks, lib, providers, stores
68+ - ` webui/ ` — Browser dashboard (React/Vite). Entry ` src/webui/index.tsx ` ; ` features/ ` (16 panels), ` pages/ ` (8 pages: home, changes, configuration, contexts, tasks, analytics, project-selector, not-found — configuration sub-routes live under ` pages/configuration/ ` : layout, general, connectors, version-control ), ` layouts/ ` , ` stores/ ` . Connects to the daemon via Socket.IO; no imports from ` server/ ` , ` agent/ ` , or ` tui/ ` (same boundary rule)
69+ - ` oclif/ ` — Commands grouped by topic (` vc/ ` , ` hub/ ` , ` worktree/ ` , ` source/ ` , ` space/ ` , ` review/ ` , ` connectors/ ` , ` curate/ ` , ` model/ ` , ` providers/ ` , ` swarm/ ` , ` query-log/ ` , ` settings/ ` ) + top-level ` .ts ` commands (` webui ` , ` dream ` , ` review ` , ` search ` , ` locations ` , ` query ` , ` login ` , ` logout ` , ` init ` , ` mcp ` , ` pull ` , ` push ` , ` restart ` , ` status ` , ` debug ` ) + hidden internals (` main ` — default ` brv ` REPL entry; ` hook-prompt-submit ` — emits ` brv-instructions ` template for coding-agent pre-prompt hooks, e.g. Claude Code ` UserPromptSubmit ` ); hooks, lib (daemon-client, task-client, json-response)
7070
7171** Import boundary** (ESLint-enforced): ` tui/ ` must not import from ` server/ ` , ` agent/ ` , or ` oclif/ ` . Use transport events or ` shared/ ` .
7272
@@ -120,6 +120,13 @@ npm run dev:ui:package # Vite dev server resolving shared UI from
120120- ` brv providers connect ` (byterover provider) runs a team-select step that emits ` BillingEvents.SET_PINNED_TEAM `
121121- WebUI: credits pill (` webui/features/provider/components/credits-pill.tsx ` ), team-select step in ` provider-flow-dialog.tsx ` , billing API wrappers in ` webui/features/provider/api/ ` (` list-billing-usage ` , ` list-teams ` , ` get-pinned-team ` , ` set-pinned-team ` , ` get-free-user-limit ` )
122122
123+ ### Settings
124+
125+ - ` brv settings ` (bare = list) / ` brv settings get <key> ` / ` set <key> <value> ` / ` reset <key> ` — user-configurable settings persisted at ` <BRV_DATA_DIR>/settings.json ` ; changes apply after ` brv restart `
126+ - Categories: ` concurrency ` , ` llm ` , ` task-history ` . Initial keys: ` agentPool.maxSize ` , ` agentPool.maxConcurrentTasksPerProject ` , ` taskHistory.maxEntries ` . Descriptors in ` server/core/domain/entities/settings.ts ` reference ` src/constants.ts ` so a constant change updates the setting's default automatically
127+ - Server: ` server/infra/storage/file-settings-store.ts ` + ` settings-validator.ts ` ; ` server/infra/daemon/settings-bootstrap.ts ` reads settings at boot and feeds AgentPool (maxSize, maxConcurrentTasks) + task-history cache. Transport: ` shared/transport/events/settings-events.ts ` + ` server/infra/transport/handlers/settings-handler.ts `
128+ - UI: TUI ` tui/features/settings/ ` , WebUI ` webui/features/settings/ ` (rendered under ` pages/configuration/ ` sub-routes). Task heartbeat (` server/infra/process/task-heartbeat-manager.ts ` ) and task-history cache (` server/infra/process/task-history-store-cache.ts ` ) are tuned via these keys; oclif task-client uses heartbeats — explicit task timeouts are deprecated
129+
123130### Other oclif topic groups
124131
125132- ` brv hub install | list | registry (add|list|remove) ` — Context Hub (npm-style package manager for context); registry config is per-project
0 commit comments