Organization: Internet Archive
Contributor: Sudipta Das
Repository: internetarchive/wbm_client_side_ai_extension
Project Timeline: May 23, 2026 β June 26, 2026
Demo Video: YouTube
Blog Series: Hashnode
Weekly Logs: Notion
Branch HierarchyPR 1: Initial Extension SetupPR 2: Right-Click Context Menu & Core FeaturesPR 3: Streaming AI ResponsePR 4: Resizable & Minimizable PopupPR 5: FAQs & Famous People InsightsPR 6: Translation for FAQs & InsightsPR 7: Accordion Containers, Tab Switching & Unified PR 8: UI RefinementsPR 9: AI Session EnhancementsPR 10: Screenshot Support & Quality Analysis EnhancementProject Summary
graph LR
A["main"] --> B["sudipta/extension-setup"]
B --> C["feature/right-click-menu"]
C --> D["feature/streaming-response"]
C --> E["feature/resizable-minimize-overlay"]
E --> F["feature/faqs-famous-persons"]
F --> G["feature/translate-faqs-insights"]
G --> H["feature/accordion-tab-view"]
H --> I["feature/-ui-refinements"]
I --> J["feature/ai-session-enhancements"]
J --> K["feature/screenshot-quality-enhancements"]
Total Commits: 36 (excluding merge commits)
Total Lines of Code (Net): ~5,000+
Languages: JavaScript, HTML, CSS
Branch: sudipta/extension-setup
Base: main
PR: internetarchive/wbm_client_side_ai_extension#1 Date: May 23 β May 31, 2026
Set up the development environment and established the foundation for the Chrome extension. Built the core architecture including AI integration, content extraction, page analysis, and UI framework.
| Date | Commit | Message |
|---|---|---|
| May 25 | ||
46188bf |
392e3b6
3f74189
bb8d59d
5137cd0
ee82cca
40fb2a8
749fdb7
a96391a
39a5a37
Files created: 14
Lines added: 457
Key deliverables:
- Extension manifest, background service worker, content script skeleton
- Prompt API integration for Gemini Nano (Chrome Built-in AI)
- Content extractor that parses archived page content including sidebars
- Page analyzer with AI-powered summarization and quality assessment
- Action panel UI with summarize/quality buttons
- Browser support detection (
checkAIAvailability
) - Archived page verification (
isArchivedPage
) - Performance timing utilities
Branch: feature/right-click-menu
Base: sudipta/extension-setup
PR: internetarchive/wbm_client_side_ai_extension#2 Date: Jun 4 β Jun 16, 2026
Refactored the entire extension from a popup-based UI to a context-menu-driven architecture. Integrated Readability.js for robust content extraction, added Markdown rendering, multi-language translation, Shadow DOM isolation, and network timing visualization. Fixed multiple bugs related to async handling, error propagation, and accessibility.
| Date | Commit | Message |
|---|---|---|
| Jun 4 | ||
ec058ed |
15e30c1
a73f2a6
3b47376
abfda26
8bb2207
checkAIAvailability()
using await6fa69ad
d9a65b3
54b4f4b
5c6b3d7
f1dad84
8d92f8a
0e23bb8
sendResponse()
96e4fca
1fa694c
af8e50c
Files changed: 20 (3,894 insertions, 300 deletions)
Key deliverables:
- Context menu integration (right-click on any Wayback Machine page)
- Readability.js (~2,800 lines) for high-quality content extraction with fallback
marked.js
library for Markdown rendering of AI responses- Chrome Translator API integration for multilingual support
- Shadow DOM implementation for complete style isolation of the overlay
- Network timing visualization showing resource breakdown and performance metrics
- Accessibility fixes: ARIA labels, screen reader announcements, focus management
- Bug fixes: async context menu handler, proper
await
on AI checks, error propagation
Branch: feature/streaming-response
Base: feature/right-click-menu
PR: internetarchive/wbm_client_side_ai_extension#3 Date: Jun 19, 2026
Added real-time streaming of AI responses from Gemini Nano, allowing users to see the summary text appear progressively as it's being generated rather than waiting for the complete response.
| Date | Commit | Message |
|---|---|---|
| Jun 19 | ||
604bee6 |
Files changed: 7 (151 insertions, 45 deletions)
Key deliverables:
- Streamed token-by-token AI response display
- Real-time overlay updates during generation
- Modified
ai/utility.js
to support streaming viaReadableStream
- Updated background/content script messaging for streaming chunks
Branch: feature/resizable-minimize-overlay
Base: feature/right-click-menu
PR: internetarchive/wbm_client_side_ai_extension#4 Date: Jun 19, 2026
Refactored the overlay UI into a modular component system. Added resizable popup with drag-to-resize functionality, minimize/maximize toggle, and extracted UI into separate files (base-popup, quality-popup, resizable, shadow-dom, styles).
| Date | Commit | Message |
|---|---|---|
| Jun 19 | ||
49433c4 |
0eafa13
Files changed: 12 (770 insertions, 510 deletions)
Key deliverables:
- Modular UI architecture with separate files for each component
- Resizable popup with draggable resize handle
- Minimize/maximize toggle functionality
base-popup.js
β shared popup base componentquality-popup.js
β quality analysis popupresizable.js
β resize handle logicshadow-dom.js
β Shadow DOM creation utilitystyles.js
β centralized CSS-in-JS styles
Branch: feature/faqs-famous-persons
Base: feature/resizable-minimize-overlay
PR: internetarchive/wbm_client_side_ai_extension#5 Date: Jun 22, 2026
Enhanced the AI summarization to generate structured insights including FAQs (Frequently Asked Questions about the page content) and Famous People (notable individuals referenced in the page), displayed with a premium card-based UI.
| Date | Commit | Message |
|---|---|---|
| Jun 22 | ||
1f7aba0 |
fd161c1
Files changed: 6 (400 insertions, 24 deletions)
Key deliverables:
- Structured AI prompt generating FAQs (3β5 Q&A pairs) from page content
- Famous people extraction with bios and relevance context
- Premium card-based UI for each insight section
- Readme updated with demo video and branching diagram
Branch: feature/translate-faqs-insights
Base: feature/faqs-famous-persons
PR: internetarchive/wbm_client_side_ai_extension#6 Date: Jun 23, 2026
Extended the Chrome Translator API integration to translate not just the summary but also the FAQ and Famous People insights into the user's preferred language.
| Date | Commit | Message |
|---|---|---|
| Jun 23 | ||
c3d8380 |
Files changed: 3 (58 insertions, 7 deletions)
Key deliverables:
- Translation pipeline for structured insight objects (FAQs + Famous People)
- Language detection and preference handling
- Seamless integration with existing summary translation flow
Branch: feature/accordion-tab-view
Base: feature/translate-faqs-insights
PR: internetarchive/wbm_client_side_ai_extension#7 Date: Jun 25, 2026
Redesigned the UI with accordion-style containers for Summary, Insights, and Quality sections. Added tab switching between sections and unified states across all components.
| Date | Commit | Message |
|---|---|---|
| Jun 25 | ||
a276490 |
Files changed: 7 (351 insertions, 106 deletions)
Key deliverables:
- Accordion-style collapsible sections for Summary, Insights, Quality
- Tab-based navigation between different views
- Unified state management across all AI operations
- Improved UI/UX with smooth transitions
Branch: feature/-ui-refinements
Base: feature/accordion-tab-view
PR: internetarchive/wbm_client_side_ai_extension#8 Date: Jun 25, 2026
Polished the UI to match Wayback Machine's brand colors and visual identity. Refined spinners, progress indicators, and overall visual design.
| Date | Commit | Message |
|---|---|---|
| Jun 25 | ||
880eb90 |
Files changed: 4 (313 insertions, 515 deletions)
Key deliverables:
- Wayback Machine brand color scheme integration
- Refined spinner animations
- Cleaner visual hierarchy and spacing
- Reduced CSS bloat (515 lines removed, 313 added)
Branch: feature/ai-session-enhancements
Base: feature/-ui-refinements
PR: internetarchive/wbm_client_side_ai_extension#9 Date: Jun 25β26, 2026
Introduced system prompts to guide AI behavior across different analysis modes. Added responseConstraint
schemas to enforce structured JSON output from Gemini Nano, improving reliability and parsing.
| Date | Commit | Message |
|---|---|---|
| Jun 25 | ||
33b472d |
77eee6e
7c78acb
Files changed: 2 (48 insertions, 13 deletions)
Key deliverables:
- System prompts for summarization, quality analysis, and insights modes
responseConstraint
schemas enforcing structured JSON output- Improved AI response reliability and consistency
- Prompt engineering refinements
Branch: feature/screenshot-quality-enhancements
(current)
Base: feature/ai-session-enhancements
PR: internetarchive/wbm_client_side_ai_extension#10 Date: Jun 26, 2026
Added viewport screenshot capture capability using chrome.tabs.captureVisibleTab
and integrated it with the multimodal AI for visual quality analysis. Added a responseConstraint
schema specifically for quality assessment output.
| Date | Commit | Message |
|---|---|---|
| Jun 26 | ||
9a46002 |
6adbb44
Files changed: 5 (121 insertions, 12 deletions)
Key deliverables:
-
Viewport screenshot capture via
chrome.tabs.captureVisibleTab -
Multimodal AI analysis combining screenshot + page text for quality assessment
-
Quality assessment
responseConstraint
schema with structured output - Enhanced visual quality scoring using both textual and visual signals
| Metric | Value |
|---|---|
| Total Commits | 36 (by contributor) |
| Feature Branches | 10 |
| Files in Project | 20+ |
| Total Lines of Code (Net) | ~5,000+ |
| Chrome APIs Used | Prompt API, Translator API, Context Menus, Tabs, Storage, Scripting |
| Key Libraries | Readability.js, marked.js |
| Timeline | May 23 β Jun 26, 2026 (~5 weeks) |