← Back to home
Changelog
Release history for Asana Essentials
Features
- Settings panel — configure default timer, sound, confetti, shuffle, and task filter
- Speaker progress indicator (e.g. 2/5) during active standup
- Option to disable speaker shuffle (fixed order mode)
- 3-minute timer preset added to the duration picker
- Standup history limit increased from 20 to 30 records
- Dynamic version display in the About view
Improvements
- ErrorBoundary wrapping for graceful crash recovery
- MutationObserver scoped to toolbar parent instead of document.body
- Timer uses Date.now()-based elapsed calculation (drift-free)
- AudioContext resumes automatically if suspended
- Escape key closes timer picker without stopping standup
- Task filter poll interval reduced from 2s to 5s
- SummaryModal and Modal use CSS custom properties for theming
- All control buttons have aria-label attributes for accessibility
Docs & Testing
- New landing page, install guide, shortcuts reference, and changelog page
- Privacy policy expanded with data table and permissions
- README and CONTRIBUTING.md rewritten to match current project
- New tests for shuffle disable, progress indicator, Escape behavior
Features
- Standup timer with configurable duration (presets + clock picker)
- Auto-shuffled speaker queue with prev/next/skip navigation
- Task filtering — highlights current speaker's tasks on board and list views
- Timer persists per speaker — resumes from where they left off
- Overtime tracking — timer counts into negative after expiry
- Audio chime (double tone) on timer expiry
- Confetti celebration on standup completion
- Summary modal with per-speaker stats, total/avg time, longest speaker badge
- Keyboard shortcuts: Space (pause), →/← (next/prev), S (skip), Esc (stop)
- Settings panel — configure timer, sound, confetti, shuffle, task filter
- Standup history — stores last 30 sessions with per-speaker stats
- Speaker progress indicator (e.g. 2/5) during active standup
- Dark mode support via Asana's theme detection
Architecture
- Feature-based folder structure (shared/, features/, api/)
- Selector registry with fallback mechanism for Asana DOM changes
- Floating widget fallback when toolbar structure changes
- Shadow DOM isolation via Plasmo framework
- Shadow host re-attachment on Asana SPA re-renders
- ErrorBoundary wrapping for graceful failure recovery
- Date.now()-based timer for drift-free countdown
- Structured logging (verbose in dev, errors-only in production)
- Cross-browser builds: Chrome, Firefox, Edge, Safari
Testing
- 298 tests across 28 suites (unit, functional, integration, smoke)
- 95%+ coverage on statements, branches, functions, and lines
- Comprehensive mocks for Chrome APIs, Plasmo storage, and messaging