Skip to content

Comments

[RFC] Removing spotlight features#36

Open
phulsechinmay wants to merge 15 commits intomainfrom
separate-spotlight-features
Open

[RFC] Removing spotlight features#36
phulsechinmay wants to merge 15 commits intomainfrom
separate-spotlight-features

Conversation

@phulsechinmay
Copy link
Collaborator

Arcify received a notice about using two separate Chrome features for one extension (sidebar + new tab). This is recommended against, so we're going to separate it into a different extension.

Putting up an RFC so we can get automated review + some test discussion

Chinmay Phulse and others added 15 commits January 24, 2026 00:34
- STACK.md - Technologies and dependencies
- ARCHITECTURE.md - System design and patterns
- STRUCTURE.md - Directory layout
- CONVENTIONS.md - Code style and patterns
- TESTING.md - Test structure
- INTEGRATIONS.md - External services
- CONCERNS.md - Technical debt and issues
# Conflicts:
#	background.js
#	spotlight-extension/newtab.css
#	spotlight-extension/newtab.html
#	spotlight-extension/newtab.js
#	spotlight-extension/overlay.js
#	spotlight-extension/shared/data-providers/autocomplete-provider.js
#	spotlight-extension/shared/data-providers/background-data-provider.js
#	spotlight-extension/shared/data-providers/base-data-provider.js
#	spotlight-extension/shared/message-client.js
#	spotlight-extension/shared/popular-sites.js
#	spotlight-extension/shared/scoring-constants.js
#	spotlight-extension/shared/search-engine.js
#	spotlight-extension/shared/search-types.js
#	spotlight-extension/shared/selection-manager.js
#	spotlight-extension/shared/shared-component-logic.js
#	spotlight-extension/shared/spotlight-styles.css
#	spotlight-extension/shared/styling.js
#	spotlight-extension/shared/ui-utilities.js
#	spotlight-extension/shared/website-name-extractor.js
Set up E2E testing for all main sidebar features: spaces, tabs, bookmarks,
and drag-drop. Tests run headless by default (DEBUG=true for visible browser).

Key patterns for Chrome extension testing:
- Close/reopen sidebar instead of reload() to avoid hangs
- Use evaluate() for Chrome API interactions to prevent page destabilization
- Handle confirm() dialogs via Puppeteer dialog events
- Force CSS :hover dropdowns via JS since Puppeteer can't trigger pseudo-classes
- Create spaces via Chrome APIs on helper page (close sidebar first)

28 tests across 4 suites: spaces (5), tabs (8), bookmarks (8), drag-drop (7)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use Node 20/22 instead of 18/20
- Use Puppeteer's own browser install instead of system chromium
- Remove redundant build step (npm test already builds)
- Remove old HEADLESS env var (tests default to headless now)
- Simplify artifact upload

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When a new tab navigates to a URL that matches an existing bookmark in
the active space, the tab is now promoted from temporary to pinned
instead of staying in the temporary section. This matches the behavior
that already works correctly on sidebar re-initialization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Space Switching: switching between spaces via switcher buttons, only one space visible at a time
- Multiple Spaces: creating 3+ spaces in sequence, verifying all appear in switcher
- Space Name Edge Cases: empty string rename, 120-char long name, special characters/HTML entities
- Space Color Cycling: applying all 8 colors sequentially, verifying switcher button reflects color
- Space Persistence: spaces survive sidebar close/reopen, count consistent across 3 reloads

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 5 new describe blocks with 11 test cases covering:
- Pin/Unpin Toggle Consistency (round-trip, count increment)
- Pinned Tab Section Structure (DOM order, structural integrity, separate containers)
- Bookmark Persistence Across Sidebar Reloads (multi-cycle count, position persistence)
- Multiple Bookmarks (pin multiple tabs, temporary count decrease)
- Tab Display in Sections (consistent structure, count arithmetic)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Drag Cancellation: Escape key cancellation, invalid drop target, position restoration, visual feedback removal
- Drag to Same Position: no-op same-position drop, tab order preservation
- Visual Feedback Cleanup: dragging class removal, drop-zone cleanup, stale DOM state detection
- Multiple Tab Drag Scenarios: dragging class isolation with 5+ tabs, non-dragged tab stability
- Space Switcher Drag: switcher accessibility after drag, space count consistency after reordering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Enhanced spaces, tabs, bookmarks, drag-drop tests with edge cases
- Added new options page and keyboard shortcuts test suites
- Fixed iOS toggle clicks, chrome:// URL handling, network timeout URLs
- All 109 tests passing (up from ~31)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants