- Hard rule: single source of truth =
~/Projects/summarize; never commit invendor/summarize(treat it as a read-only checkout). - Note: multiple agents often work in this folder. If you see files/changes you do not recognize, ignore them and list them at the end.
- Monorepo (pnpm workspace).
- Packages:
@steipete/summarize= CLI + UX (TTY/progress/streaming). Depends on core.@steipete/summarize-core(packages/core) = library surface for programmatic use (Sweetistics etc). No CLI entrypoints.
- Versioning: lockstep versions; publish order: core first, then CLI (
scripts/release.sh/RELEASING.md). - Homebrew/core formula is not owned here; BrewTestBot autobumps releases about every 3h. Do not block or manually manage it; ship and continue.
- Chrome Web Store: every release must upload the matching
dist-chrome/summarize-chrome-extension-v<version>.zipto itemcejgnmmhbbpdmjnfppjdfkocebngehfg, submit it for review with automatic publishing, and verify the exact pending/published version. Skip only when every shipped change is daemon-side and the packaged extension/companion contract is unchanged. - Dev:
- Build:
pnpm -s build(builds core first) - Gate:
pnpm -s check - Import from apps: prefer
@steipete/summarize-coreto avoid pulling CLI-only deps.
- Build:
- Dependencies: stable releases need a 7-day stabilization delay before adoption; prereleases remain excluded unless already adopted.
- Daemon: restart with
pnpm -s summarize daemon restart; verify viapnpm -s summarize daemon status. - Rebuild (extension + daemon): run both in order:
pnpm -C apps/chrome-extension buildpnpm summarize daemon restart
- Extension tests:
pnpm -C apps/chrome-extension test:chrome= supported automated path.- Firefox Playwright extension tests are not reliable (
moz-extension://limitation); defaulttest:firefoxskips. - Use
pnpm -C apps/chrome-extension test:firefox:forceonly for explicit diagnostics.
- Commits: use
committer "type: message" <files...>(Conventional Commits).