Skip to content

feat(enhancements): toggleable enhancements with an as-shipped/proposed flip - #4

Merged
ijdoc merged 9 commits into
mainfrom
feat/3-enhancements
Oct 7, 2026
Merged

ijdoc merged 9 commits into
mainfrom
feat/3-enhancements

Conversation

@ijdoc

@ijdoc ijdoc commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Overview

Presenter gains a second job: switching UX enhancements on and off and flipping a page between as shipped and proposed, so one screen recording shows the before and the after. Pointer and highlights become switchable from the same popup. The dev workflow mirrors the tight extension's.

The first enhancement (ended sandboxes in Forge) is split out to #5, since it needs a synthetic fixture of the page first.

Changes

  • Popup with switches for presenting and for the enhancements targeting the current page; settings in chrome.storage.local (new storage permission)
  • Demo zoom removed, and with it the tabs permission — it only fired in single-tab windows, so it never did anything in practice; Chrome's per-site zoom covers it
  • Enhancer — CSS and reversible JS enhancements, exact restore when switched off, re-render on single-page navigation; createRelabel helper for wording changes
  • Alt+Shift+E flips as shipped / proposed; Enhanced badge top-right only while something is showing
  • Forge added as a target site; content script now loads ES modules through a classic-script loader
  • Pinned extension ID (ADR-0002) and version bump as each worktree's first commit (scripts/bump.sh), manifest.json as the single version source
  • Tooling — ESLint 9 flat config (no eval / new Function), vitest + jsdom, Node 24 floor with engine-strict, CI (lint, tests, ADR log)
  • Docs — CONTRIBUTING.md with strict public-repo rules on secrets, PII and internal information; docs/security.md; ADR-0001 (enhancements are versioned files); README and CONTEXT.md updated
  • exclude_globs for wandb.ai/site moved from the web-accessible resources (where it had no effect) to the content script, which is what it appears to have intended

Testing

  • npm run lint clean, npm test — 35 tests: page matching, settings, exact DOM restore, relabel idempotence, badge, manifest paths/web-accessible modules, fixture hygiene
  • Loaded unpacked in Chrome (author): pointer/highlights unchanged, switches take effect without reload, shortcut flips the view
  • Popup after dropping tabs — verified on the primary checkout after merge

Related Issues

Closes #3

🤖 Generated with Claude Code

ijdoc and others added 9 commits October 6, 2026 16:58
Refs #3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every worktree build now shares one ID and one settings store; the
private half was never kept (ADR-0002).

Refs #3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dev tooling only: the extension still loads unpacked with no build.
postinstall keeps Spotlight out of node_modules so worktree teardown
does not abort mid-delete.

Refs #3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ed flip

- Popup with switches for presenting and for the enhancements that
  target the current page, persisted in chrome.storage.local
- Enhancer applies CSS and reversible JS enhancements and restores the
  shipped page exactly when switched off; re-renders on SPA navigation
- Alt+Shift+E flips between as shipped and proposed
- Enhanced badge, top-right, only while an enhancement is showing
- Presenting (pointer, highlights, demo zoom) becomes switchable
- Forge added as a target site
- Content script loads ES modules via a classic-script loader

Refs #3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…0001

Refs #3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It only fired in single-tab windows, so in practice it never did
anything; Chrome's own per-site zoom covers the need. Without it the
tabs permission is unnecessary: opening the popup grants activeTab,
which is enough to read the current tab's URL.

Refs #3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ijdoc
ijdoc marked this pull request as ready for review October 7, 2026 01:47
@ijdoc
ijdoc merged commit 4d06ce7 into main Oct 7, 2026
1 check passed
@ijdoc
ijdoc deleted the feat/3-enhancements branch October 7, 2026 01:47
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.

Toggleable UX enhancements for proposal clips

1 participant