diff --git a/CHANGELOG.md b/CHANGELOG.md index fd95f36..a849ce1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- **Error handling foundation** — `extractErrorMessage(err: unknown)` normalizer, `handleError`/`handleInfraError` dual utilities, error-classifier extended with ipc/database/filesystem types (9 total), toast rate-limiting (max 3 per type per 30s) +- **Settings redesign** — 6 modular category components (Appearance, Agents, Projects, Orchestration, Security, Advanced) replacing 2959-line SettingsTab monolith, SettingsPanel shell with horizontal tab bar +- **Docs reorganization** — 11 new subdirectory files (architecture, production, agents, sidecar, multi-machine, contributing), 6 new reference docs (quickstart, ref-settings, ref-btmsg, ref-bttask, ref-providers, guide-developing, dual-repo-workflow), bterminal references purged + +### Fixed +- **Theme dropdown** — `$derived.by()` instead of `$derived()` for themeGroups computation, `@html` replaced with proper Svelte elements +- **15 Svelte warnings** — a11y_click_events_have_key_events, a11y_consider_explicit_label, css_unused_selector, state_referenced_locally, node_invalid_placement_ssr +- **Infrastructure bridge error handling** — telemetry-bridge and notifications-bridge empty `.catch(() => {})` replaced with documented console.warn explaining recursion prevention + +### Changed - **Dual-repo commercial structure** — agents-orchestrator/agents-orchestrator private repo as commercial source of truth, DexterFromLab/agent-orchestrator as community mirror. Two git remotes (origin + orchestrator) configured locally - **agor-pro plugin crate** — Tauri 2.x plugin for commercial features. Feature-gated via `--features pro`. Registered via `app.handle().plugin(agor_pro::init())` in setup() - **Analytics Dashboard (Pro)** — `pro_analytics_summary`, `pro_analytics_daily`, `pro_analytics_model_breakdown` commands. Period-based queries (7/14/30/90d) against session_metrics. AnalyticsSummary, DailyStats, ModelBreakdown structs diff --git a/TODO.md b/TODO.md index cc24930..c7af573 100644 --- a/TODO.md +++ b/TODO.md @@ -2,7 +2,7 @@ ## URGENT -- [ ] **Comprehensive error handling** — Every IPC call, bridge function, and async operation must have proper error handling with user-visible feedback. Current state: most errors are console.error() only (silent to user). Audit needed across all Rust commands (map_err patterns), all frontend bridge calls (missing .catch()), all Svelte components (no error states displayed). Add: ProError enum in agor-pro, toast notifications on failures, loading/error states in all settings components, retry logic for transient failures. Rule 02 (Error Handling) violations are blocking issues. +- [~] **Comprehensive error handling** — Day 0 foundation shipped: extractErrorMessage, handleError/handleInfraError utilities, error-classifier extended (ipc/database/filesystem), toast rate-limiting. Sprint 1+2 in progress (3 background agents): settings Promise.allSettled migration, Rust AppError enum, bridge/store audit, global unhandledrejection handler. See .tribunal/tribunal-codex-report.md for full plan. ## Dual-Repo & Commercial @@ -27,6 +27,10 @@ ## Completed +- [x] Settings redesign — 6 modular components replacing 2959-line monolith, theme dropdown fix | Done: 2026-03-18 +- [x] Docs reorganization — subdirectories, 6 new reference docs, bterminal purge | Done: 2026-03-18 +- [x] Svelte warnings fix — 15 warnings resolved (a11y, unused CSS, state_referenced_locally) | Done: 2026-03-18 +- [x] Error handling Day 0 — extractErrorMessage, handleError/handleInfraError, classifier extension, toast rate-limiting | Done: 2026-03-18 - [x] 3 commercial features (analytics, export, profiles) — Rust + bridge + 14 tests | Done: 2026-03-17 - [x] bterminal→agor rebrand + dual-repo commercial structure | Done: 2026-03-17 - [x] Tribunal-codex dual-repo strategy (S-3+S-1 hybrid, 80% confidence) | Done: 2026-03-17