OutlookWebInboxCount/CLAUDE.md
Giorgio Gilestro 922d520f02 Initial commit: Outlook Web Inbox Count extension v1.4
Chrome/Firefox extension that displays the total inbox item count next
to the Inbox label in Outlook Web. Includes build+publish automation
via the Chrome Web Store API (see PUBLISHING.md).
2026-04-09 07:56:37 +01:00

41 lines
No EOL
2.2 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is a browser extension (v1.1) that enhances Outlook Web by displaying the total number of items next to the Inbox label. The extension uses a content script to monitor DOM changes and extract inbox count information from the page title.
### Version History
- **v1.1**: Fixed browser hanging issues with throttling, improved MutationObserver, enhanced DOM selectors, reduced polling frequency
- **v1.0**: Initial release
## Architecture
- **manifest.json**: Chrome extension manifest (v3) defining permissions, content scripts, and metadata
- **content.js**: Main content script that runs on Outlook Web pages, implementing:
- DOM element detection for inbox labels
- Item count extraction from page titles using regex
- Dynamic count display with styling
- MutationObserver for real-time DOM change monitoring
- Periodic refresh mechanism (every 5 seconds after initial 10-second startup)
## Development Workflow
### Testing the Extension
1. Load as unpacked extension in Chrome/Edge developer mode
2. Navigate to https://outlook.office.com or https://outlook.office365.com
3. Check browser console for debug logs starting with "Outlook Inbox Count Extension"
### Packaging
The .zip file contains the packaged extension ready for distribution.
## Key Implementation Details
- **Performance optimizations (v1.1)**: Throttling mechanism prevents excessive function calls, selective MutationObserver reduces CPU usage
- **Enhanced DOM detection**: Multiple fallback selectors and regex patterns for different Outlook Web versions
- **CSS selectors**: Primary `div[title^="Inbox -"][data-folder-name="inbox"]` with fallbacks for `button` elements and various title formats
- **Count extraction**: Multiple regex patterns including `/Inbox - (\d+) items/`, `/Inbox \((\d+)\)/`, `/(\d+) items/`
- **Duplicate prevention**: Uses `.added-count` class marking to avoid multiple count displays
- **Dynamic content handling**: Optimized interval polling (10s) and intelligent mutation observation
- **Graceful fallback**: Displays "(-)" when count unavailable