Promise.allSettled only catches rejected promises, not synchronous throws. Wrap handler calls in Promise.resolve().then() to isolate sync errors. Add 6 unit tests covering delivery, unsubscribe, error isolation, singleton, reset, and removeAll.
- New lib/event-bus.ts: lightweight typed pub/sub with error isolation via Promise.allSettled. Supports note.created, note.updated, note.deleted, task.created, workspace.created events. - notes/repository.ts: emit events on create, update, and delete. - .env.example: add TELEMETRY_ENABLED, FEATURE_FLAGS_ENABLED, FIELD_ENCRYPT_ENABLED, PALACE_ENABLED, PALACE_EXTRACTION_ENABLED.