Skip to content

Release v1.2.0#13

Merged
levz0r merged 13 commits into
mainfrom
develop
May 11, 2026
Merged

Release v1.2.0#13
levz0r merged 13 commits into
mainfrom
develop

Conversation

@levz0r

@levz0r levz0r commented May 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds in-popup "Copy diagnostics" button + ring-buffered logger for easier bug reports.
  • Adds optional 👍/👎 feedback prompt after extended use (≥10 saves AND ≥7 days), funneling happy users to store reviews and unhappy users to GitHub issues.
  • Pro version: daily-rotated logs under ~/.markdown-printer/logs/ (7-day retention) replace the single debug log.
  • Localized all new UI strings across en/fr/he/hi.
  • Deduplicated extension sources: extension-chrome/ and extension-firefox/ are now generated from src/.
  • Major dep bumps (eslint 10, pnpm 11, pnpm/action-setup v6, codecov-action v6) + non-major bumps (jest, prettier, turndown, publish-browser-extension).
  • CI matrix updated to Node 20/22/24 for eslint 10 compatibility.
  • Chrome publish step now auto-submits for review.

Merging will trigger auto-tag → publish workflow → uploads to Chrome (auto-submitted), Firefox (auto-submitted), and Edge (manual submit step in Partner Center).

Test plan

  • pnpm test — 102 tests across 5 suites pass
  • pnpm lint — clean on eslint 10
  • pnpm format:check — clean
  • pnpm build — both extension dirs generated, zips in dist/
  • Local smoke test of save flow, "Copy diagnostics", and rating prompt branches

lev-engineer and others added 13 commits November 24, 2025 10:28
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ging

Restructures the extension to make src/ the single source of truth for
both Chrome and Firefox builds, then layers on user-facing improvements:

Source dedup
- extension-chrome/ and extension-firefox/ are now generated by build.js
  and gitignored; all shared assets (background.js, popup.*, turndown.js,
  icons) live in src/.
- pretest hook runs build first so manifest/build tests have outputs.
- Docs (README, SOURCE_BUILD, PUBLISHING, CLAUDE) updated to describe the
  generated-output workflow; manifest version bumps now happen in
  package.json only.

Diagnostic logger
- src/logger.js + src/log-buffer.js: ring-buffered structured log in
  chrome.storage.local, captures uncaught errors and unhandled rejections,
  exposes mdpLog/mdpGetDiagnostics in service workers and the popup.
- Popup "Copy diagnostics" link copies a redacted JSON bundle (version,
  browser, language, usage stats, last 200 log entries) for bug reports.
- Native host logs are now rotated daily in ~/.markdown-printer/logs/
  with 7-day retention, replacing the single ~/markdown-printer-debug.log.
- New bug_report issue template points users at the diagnostics button.

Rating prompt
- Smart 👍/👎 funnel: positive users land on the appropriate store review
  page, negative users land on the GitHub issue tracker. Either branch
  marks the prompt done. Dismiss (×) snoozes 30 days.
- Trigger: ≥10 saves AND ≥7 days since install.
- src/rating-policy.js holds pure shouldShowRating / detectStore /
  storeReviewUrl logic; store detection picks Chrome/Firefox/Edge from UA.
- Background tracks installedAt and saveCount in chrome.storage.local.

Localization
- All 14 new UI strings translated across en/fr/he/hi locales.
- Pre-existing hardcoded popup strings (Saving.../Saved!/Error - Try
  again) localized at the same time.

Tests
- New pure-module test suites for log-buffer (16 tests) and rating-policy
  (20 tests), covering ring-buffer trimming, Error stringification, every
  branch of shouldShowRating, snooze precedence, store-detection edge
  cases, and review URL routing.
- manifest tests assert all 18 locale keys exist in every locale and that
  the Firefox background.scripts array loads log-buffer.js → logger.js →
  background.js in order.
- Total: 5 test suites, 102 tests (was 3 / 66).

CI
- publish.yml: Chrome now auto-submits for review (removes
  --chrome-skip-submit-review); PUBLISHING.md updated to match.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ESLint 10 (bumped in the preceding commit) requires Node >=20.19, >=22.13,
or >=24. The previous matrix included 18.x which would fail outright.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds the diagnostics, rating prompt, and improved logging work from
recent commits to the user-facing changelog across all four locales.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pnpm 11 fails CI with ERR_PNPM_IGNORED_BUILDS when transitive deps want
to run install scripts. eslint 10 pulls in unrs-resolver, which builds a
native binary. Explicitly approve just that one dep via
pnpm.onlyBuiltDependencies so installs succeed in CI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous attempt put onlyBuiltDependencies in package.json, but
pnpm 11 removed that field and replaced it with allowBuilds in
pnpm-workspace.yaml. Without it, CI fails with ERR_PNPM_IGNORED_BUILDS
on unrs-resolver (eslint 10's native resolver).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The pretest hook only fires for `pnpm test`, not `pnpm test:coverage`
(the script CI actually runs). Without it, the extension dirs don't
exist when manifest tests run, causing 26 failures.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@levz0r levz0r merged commit 410a77a into main May 11, 2026
3 checks passed
@codecov

codecov Bot commented May 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (2cfc10d) to head (b85079d).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #13   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            1         1           
  Lines            4         4           
  Branches         1         1           
=========================================
  Hits             4         4           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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