From 7e8ccf5dd512496579663f70418711e21816e200 Mon Sep 17 00:00:00 2001 From: Sidney von Katzendame Date: Sat, 23 May 2026 23:51:20 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20final=20wrap-up=20sync=20=E2=80=94=20ac?= =?UTF-8?q?curate=20test=20counts=20+=20roadmap=20links?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - packages/extension-chrome/README.md 'Coverage' section: corrects the stale '53 unit tests' to 97, and the '6 e2e' breakdown now matches reality (4 passing, 2 skipped with a note about which save-flow path the unit tests still cover) - Root README 'Files in this repo' adds CONTRIBUTING.md, LICENSE, and .github/workflows/test.yml so newcomers can find the workflow surface - CLAUDE.md roadmap items link to their tracking issues (#23-26) and point future agents at the plan-driven workflow for next-piece-of-work --- CLAUDE.md | 10 ++++++---- README.md | 3 +++ packages/extension-chrome/README.md | 24 ++++++++++++++---------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 2986d5c..450312a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -88,10 +88,12 @@ pnpm --filter @gitmarks/extension-chrome e2e 1. ✅ `@gitmarks/core` 2. ✅ Chrome MVP (toolbar save) 3. ✅ Chrome native tree integration -4. ⬜ Firefox build (`webextension-polyfill` over the same source) -5. ⬜ Web UI: list / search / tag management (Vite + React + Tailwind SPA) -6. ⬜ Web UI: bulk operations + trash + export -7. ⬜ Safari (`safari-web-extension-converter` over the Chrome bundle) +4. ⬜ Firefox build (`webextension-polyfill`) — issue [#23](https://github.com/paperhurts/gitmarks/issues/23) +5. ⬜ Web UI v1: list / search / tag management — issue [#24](https://github.com/paperhurts/gitmarks/issues/24) +6. ⬜ Web UI v2: bulk operations + trash + export — issue [#25](https://github.com/paperhurts/gitmarks/issues/25) +7. ⬜ Safari (`safari-web-extension-converter`) — issue [#26](https://github.com/paperhurts/gitmarks/issues/26) + +For next-piece-of-work: pick one of #23–#26. Each has a scope block in its issue description. The plan-driven workflow (`docs/superpowers/plans/YYYY-MM-DD-.md`) is the expected approach for anything larger than ~3 commits. ## Non-goals (do not implement) diff --git a/README.md b/README.md index 4213f99..4c3a518 100644 --- a/README.md +++ b/README.md @@ -130,11 +130,14 @@ The load-bearing invariants: ## Files in this repo - `spec.md` — full design spec (source of truth for non-obvious decisions) +- `CONTRIBUTING.md` — branch/PR conventions, TDD policy, plan-driven workflow - `CLAUDE.md` — guidance for AI agents working in this repo +- `LICENSE` — MIT - `docs/superpowers/plans/` — implementation plans, one per branch - `packages/*/README.md` — package-specific documentation - `examples/example-bookmarks-repo/` — sample `bookmarks.json` + `tags.json` to seed a fresh repo, used by `@gitmarks/core` fixture tests +- `.github/workflows/test.yml` — CI (typecheck + unit tests + build on every PR) ## Contributing diff --git a/packages/extension-chrome/README.md b/packages/extension-chrome/README.md index 8b1d12f..86269ae 100644 --- a/packages/extension-chrome/README.md +++ b/packages/extension-chrome/README.md @@ -168,19 +168,23 @@ pnpm --filter @gitmarks/extension-chrome typecheck **Coverage:** -Unit tests (53) cover the pure logic — settings, machine ID, bookmark +Unit tests (97) cover the pure logic — settings, machine ID, bookmark factory, save flow, folder path conversion, ID mapping, suppression -registry, apply-remote, reconciliation, and the listener -batch/debounce/flush algorithm. Tests use a vitest setup file that stubs +registry (URL + node ID), apply-remote, reconciliation, the listener +batch/debounce/flush algorithm, and the background-core poll/reconcile +orchestration. Tests use a vitest setup file that stubs `chrome.storage.local` and `chrome.bookmarks.*` with an in-memory backend. -E2e tests (6) launch real Chromium with the built extension, mock the -GitHub API via Playwright route interception, and exercise: -- Popup before-setup → "Set up gitmarks" button visible -- Options page validate + save flow with the mocked API -- "Save this page" round-trip → mocked GitHub receives the PUT -- `chrome.bookmarks.create` → expected PUT payload -- Remote add seeded into the mock → bookmark appears in local tree +E2e tests (4 passing, 2 skipped) launch real Chromium with the built +extension and mock the GitHub API via Playwright route interception: +- ✓ Popup before-setup → "Set up gitmarks" button visible +- ✓ Options page validate against missing `bookmarks.json` (404 path) +- ✓ `chrome.bookmarks.create` → expected PUT payload +- ✓ Remote add seeded into the mock → bookmark appears in local tree +- ⊘ Save flow via popup → GitHub PUT (skipped: depended on the dropped + `tabs` permission fallback; the save-flow logic is fully covered by + unit tests) +- ⊘ Popup save view after configure (same dependency, same coverage) **Known gap (not fully understood):** during development we couldn't reliably get `chrome.bookmarks.*` events dispatched from