# GSoC 2026, Internet Archive - Sudipta Das

> Source: <https://gist.github.com/sdass1918/f196fdb73f870b038953bc88ea2fec31>
> Published: 2026-06-27 09:17:54+00:00

**Organization:** Internet Archive

**Contributor:** Sudipta Das

**Repository:** [internetarchive/wbm_client_side_ai_extension](https://github.com/internetarchive/wbm_client_side_ai_extension)

**Project Timeline:** May 23, 2026 – June 26, 2026

**Demo Video:** [YouTube](https://youtu.be/FOKc8hIP7dQ)

**Blog Series:** [Hashnode](https://sudiptadas.hashnode.dev)

**Weekly Logs:** [Notion](https://www.notion.so/GSoC-2026-Internet-Archive-366417d0f1468091ad29cf698b03cff2)

[Branch Hierarchy](https://gist.github.com/starred.atom#branch-hierarchy)[PR 1: Initial Extension Setup](https://gist.github.com/starred.atom#pr-1-initial-extension-setup)[PR 2: Right-Click Context Menu & Core Features](https://gist.github.com/starred.atom#pr-2-right-click-context-menu--core-features)[PR 3: Streaming AI Response](https://gist.github.com/starred.atom#pr-3-streaming-ai-response)[PR 4: Resizable & Minimizable Popup](https://gist.github.com/starred.atom#pr-4-resizable--minimizable-popup)[PR 5: FAQs & Famous People Insights](https://gist.github.com/starred.atom#pr-5-faqs--famous-people-insights)[PR 6: Translation for FAQs & Insights](https://gist.github.com/starred.atom#pr-6-translation-for-faqs--insights)[PR 7: Accordion Containers, Tab Switching & Unified Loading](https://gist.github.com/starred.atom#pr-7-accordion-containers-tab-switching--unified-loading)[PR 8: Loading UI Refinements](https://gist.github.com/starred.atom#pr-8-loading-ui-refinements)[PR 9: AI Session Enhancements](https://gist.github.com/starred.atom#pr-9-ai-session-enhancements--system-prompts--response-constraints)[PR 10: Screenshot Support & Quality Analysis Enhancement](https://gist.github.com/starred.atom#pr-10-screenshot-support--quality-analysis-enhancement)[Project Summary](https://gist.github.com/starred.atom#project-summary)

``` php
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/loading-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](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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 await`6fa69ad`

`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](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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 via`ReadableStream`

- 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](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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 component`quality-popup.js`

— quality analysis popup`resizable.js`

— resize handle logic`shadow-dom.js`

— Shadow DOM creation utility`styles.js`

— centralized CSS-in-JS styles

**Branch:** `feature/faqs-famous-persons`

**Base:** `feature/resizable-minimize-overlay`

**PR:** [internetarchive/wbm_client_side_ai_extension#5](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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 loading 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 loading state management across all AI operations
- Improved UI/UX with smooth transitions

**Branch:** `feature/loading-ui-refinements`

**Base:** `feature/accordion-tab-view`

**PR:** [internetarchive/wbm_client_side_ai_extension#8](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/8)
**Date:** Jun 25, 2026

Polished the UI to match Wayback Machine's brand colors and visual identity. Refined loading 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 loading spinner animations
- Cleaner visual hierarchy and spacing
- Reduced CSS bloat (515 lines removed, 313 added)

**Branch:** `feature/ai-session-enhancements`

**Base:** `feature/loading-ui-refinements`

**PR:** [internetarchive/wbm_client_side_ai_extension#9](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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](https://github.com/internetarchive/wbm_client_side_ai_extension/pull/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) |
