You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,15 +4,17 @@ Every release of RepoLens, newest first. Want the friendly highlights instead of
4
4
the full detail? See **[What's new](README.md)** in the README.
5
5
6
6
This project follows [Semantic Versioning](https://semver.org/) and groups changes
7
-
by theme. Dates are when the release landed on `main` — 1.1.0 through 1.6.0 shipped
7
+
by theme. Dates are when the release landed on `main`. 1.1.0 through 1.6.0 shipped
8
8
the same day, as a rapid burst of improvements, so they share a date.
9
9
10
10
## [Unreleased]
11
11
12
12
### Added
13
13
14
+
-**Mono Ink identity.** RepoLens ships a new dark-tile lens icon, a "Mono Ink" default theme (cool near-black, white, and cobalt), and a wordmark lockup. The toolbar icon now animates only while a scan runs: the aperture grows and spins and the ring breathes grey to blue, then it resets to static. Turn the animation off in **Options**, and it honors your OS reduced-motion setting. The other 13 themes stay one click away.
15
+
-**A warmer Vee.** Vee's onboarding copy reads like a person now. The repo also vendors the stop-slop writing standard under `docs/style/` so the voice stays consistent.
14
16
-**Vee-guided first-run walkthrough.** New users are met by Vee on their first Library open; the coachmark steps through a seeded demo repo (Library card → Verdict tab → Blueprint canvas) with plain narration and a spotlight on each target element. Implemented in `onboarding.js` / `coachmark.js`; copy lives in `onboarding-copy.js`.
15
-
-**Milestone "power tour"** offered after approximately five real scans: a second coachmark sequence introducing the cross-library tools — Ask, Corkboard (Alternatives / Synergies), multi-select Compare, Radar / auto-organize, and Discover.
17
+
-**Milestone "power tour"** offered after approximately five real scans: a second coachmark sequence introducing the cross-library tools: Ask, Corkboard (Alternatives / Synergies), multi-select Compare, Radar / auto-organize, and Discover.
RepoLens is a **Manifest V3 Chrome extension**. Land on a GitHub, GitLab, npm, or PyPI page, click the toolbar icon, and it reads the repo, runs it past the AI provider of your choice, and opens a tab with a **verdict-first** breakdown — it opens with a straight answer (*should you use this?*) before any prose, not the README's marketing.
20
+
RepoLens is a **Manifest V3 Chrome extension**. Open a GitHub, GitLab, npm, or PyPI page and click the toolbar icon. RepoLens reads the repo, runs it past the AI provider you picked, and opens a tab that leads with a straight answer: should you use this? You see the verdict before any of the README's pitch.
21
21
22
-
> Stars tell you a project is popular. They don't tell you whether it fits *your* problem. RepoLens answers the question you actually have: **should I use this, and what am I signing up for?**
22
+
> Stars tell you a project is popular. They don't tell you whether it fits your problem. RepoLens answers the question you have: should I use this, and what am I signing up for?
23
23
24
24
---
25
25
@@ -41,7 +41,7 @@ A scan opens to a **verdict landing** and fans out into focused tabs:
41
41
42
42
Plus **SKTPG** (a one-tap State / Known-pitfalls / Trajectory / Proof / Growth read), framework lenses, and capability re-tagging.
43
43
44
-
**First run:** Vee walks new users through a seeded demo repo (Library → Verdict → Blueprint) via a coachmark tour. After roughly five real scans a second "power tour" introduces the cross-library tools: Ask, Corkboard analysis, multi-select compare, Radar, and Discover.
44
+
**First run:** Vee, the lens mascot, walks you through a seeded demo repo (Library, then Verdict, then Blueprint) with a short coachmark tour. After about five real scans, a second power tour shows you the cross-library tools: Ask, Corkboard, multi-select compare, Radar, and Discover.
45
45
46
46
---
47
47
@@ -61,7 +61,7 @@ A correctness, security, and tooling pass from a full code audit — fixes only,
61
61
### v1.7.0 — Boards, Vee & a motion pass
62
62
63
63
- 🗂️ **Collections ("Boards").** Group the repos you're evaluating together and filter the Library by board — with live counts, per-card membership dots, and a one-click assignment popover. Boards travel in your library export/import.
64
-
-🔭 **Meet "Vee", an optional lens mascot** that reacts to your scans (scanning, wide-open on a strong fit, eyes-narrowed on a risky one, resting on an empty library). One theme-aware SVG, reduced-motion-safe; turn it off in **Options → Interface**.
64
+
-**Meet Vee, an optional lens mascot** that reacts to your scans: scanning, wide-open on a strong fit, narrowed on a risky one, resting on an empty library. One theme-aware SVG, reduced-motionsafe. Turn it off in **Options → Interface**.
65
65
- ✨ **Subtle motion, everywhere it helps** — tactile press states, a staged tab reveal, a verdict health-bar fill, a smoother toast and modal — all respecting reduced-motion.
66
66
- 🧭 **Errors that tell you what to do** — a failed scan now offers **Open Settings** (bad key / wrong model) or **Retry** (transient), and the loading copy names the provider it's actually using.
67
67
@@ -119,15 +119,15 @@ No accounts. No backend. Your keys, your machine.
119
119
120
120
## Models — your keys, your call
121
121
122
-
Bring your own provider. Five are **first-class** (one-click sign-in where the vendor allows it — **Grok**, **OpenRouter**, and **OpenAI/ChatGPT** — otherwise an API key; **Claude** is API-key only) and fan out across a **smart fallback chain**: RepoLens tries them in order and drops to the next if one errors, so a single key is enough to start.
122
+
Bring your own provider. Five are **first-class** (one-click sign-in where the vendor allows it: **Grok**, **OpenRouter**, and **OpenAI/ChatGPT**; otherwise an API key; **Claude** is API-key only) and fan out across a **smart fallback chain**: RepoLens tries them in order and drops to the next if one errors, so a single key is enough to start.
On top of those, RepoLens works with **almost any other AI service** through one registry — **OpenAI, DeepSeek, Groq, NVIDIA NIM, Kimi (Moonshot), Zhipu GLM, Qwen (Aliyun), Xiaomi MiMo, Volcengine Ark, Ollama Cloud, MiniMax, Azure OpenAI**, local **Ollama** (no key needed), and a universal **Custom** endpoint. Each keeps its **own key** (switching never loses data), has a model picker, an optional **endpoint override**, and built-in **connection / function self-tests**. Connect just one and it works — it joins the fallback chain automatically.
126
+
On top of those, RepoLens works with **almost any other AI service** through one registry: **OpenAI, DeepSeek, Groq, NVIDIA NIM, Kimi (Moonshot), Zhipu GLM, Qwen (Aliyun), Xiaomi MiMo, Volcengine Ark, Ollama Cloud, MiniMax, Azure OpenAI**, local **Ollama** (no key needed), and a universal **Custom** endpoint. Each keeps its **own key** (switching never loses data), has a model picker, an optional **endpoint override**, and built-in **connection / function self-tests**. Connect just one and it works. It joins the fallback chain automatically.
127
127
128
-
> **Sign in with ChatGPT.** The OpenAI card also offers a one-click **ChatGPT login** — the same OAuth the **Codex CLI** uses — so you can connect without pasting a key (it needs API access on your ChatGPT plan; otherwise paste a key).
128
+
> **Sign in with ChatGPT.** The OpenAI card also offers a one-click **ChatGPT login**, the same OAuth the **Codex CLI** uses, so you can connect without pasting a key (it needs API access on your ChatGPT plan; otherwise paste a key).
129
129
130
-
> Local-only? Point at **Ollama** on `localhost` — no key, no cloud. (Spawning a local *CLI* binary like `claude`/`codex` still isn't possible — a browser extension is sandboxed and can't launch a program — but it can do those CLIs' **OAuth logins**, and talk to a local HTTP model server like Ollama.)
130
+
> Local-only? Point at **Ollama** on `localhost`. No key, no cloud. (Spawning a local *CLI* binary like `claude`/`codex` still isn't possible: a browser extension is sandboxed and can't launch a program. But it can do those CLIs' **OAuth logins**, and talk to a local HTTP model server like Ollama.)
131
131
132
132
Each provider has a model dropdown (★ marks the recommended pick), and you can **route each part of a scan to a different model**:
133
133
@@ -139,9 +139,9 @@ Any per-part pick still falls back to the full chain if that provider errors or
139
139
140
140
## Storage — nothing to install
141
141
142
-
Your whole library lives **in the browser** (IndexedDB). No database, no daemon, no setup — it works the moment you load the extension, and it's Web-Store-ready.
142
+
Your whole library lives **in the browser** (IndexedDB). No database, no daemon, no setup. It works the moment you load the extension, and it's Web-Store-ready.
143
143
144
-
Because it's *your* data, you can take it with you: **Library → Export** writes your whole library — analyzed repos, the semantic graph, and the local scan cache — to one portable JSON file, and **Import** restores it (merge or replace) on any machine. Backups are validated and bounded on import, so a bad file fails safe. Your settings travel too: **Options → Back up your settings** exports your theme, voice, model picks and per-part routing — never your API keys.
144
+
Because it's *your* data, you can take it with you: **Library → Export** writes your whole library (analyzed repos, the semantic graph, and the local scan cache) to one portable JSON file, and **Import** restores it (merge or replace) on any machine. Backups are validated and bounded on import, so a bad file fails safe. Your settings travel too: **Options → Back up your settings** exports your theme, voice, model picks and per-part routing, but never your API keys.
145
145
146
146
Migrating from an old VelesDB server? **Options → Import from VelesDB** pulls your library across in one click.
3.**Use active voice.** Every sentence needs a human subject doing something. No passive constructions. No inanimate objects performing human actions ("the complaint becomes a fix").
20
+
21
+
4.**Be specific.** No vague declaratives ("The reasons are structural"). Name the specific thing. No lazy extremes ("every," "always," "never") doing vague work.
22
+
23
+
5.**Put the reader in the room.** No narrator-from-a-distance voice. "You" beats "People." Specifics beat abstractions.
24
+
25
+
6.**Vary rhythm.** Mix sentence lengths. Two items beat three. End paragraphs differently. No em dashes.
26
+
27
+
7.**Trust readers.** State facts directly. Skip softening, justification, hand-holding.
28
+
29
+
8.**Cut quotables.** If it sounds like a pull-quote, rewrite it.
30
+
31
+
## Quick Checks
32
+
33
+
Before delivering prose:
34
+
35
+
- Any adverbs? Kill them.
36
+
- Any passive voice? Find the actor, make them the subject.
37
+
- Inanimate thing doing a human verb ("the decision emerges")? Name the person.
38
+
- Sentence starts with a Wh- word? Restructure it.
39
+
- Any "here's what/this/that" throat-clearing? Cut to the point.
40
+
- Any "not X, it's Y" contrasts? State Y directly.
41
+
- Three consecutive sentences match length? Break one.
42
+
- Paragraph ends with punchy one-liner? Vary it.
43
+
- Em-dash anywhere? Remove it.
44
+
- Vague declarative ("The implications are significant")? Name the specific implication.
45
+
- Narrator-from-a-distance ("Nobody designed this")? Put the reader in the scene.
46
+
- Meta-joiners ("The rest of this essay...")? Delete. Let the essay move.
47
+
48
+
## Scoring
49
+
50
+
Rate 1-10 on each dimension:
51
+
52
+
| Dimension | Question |
53
+
|-----------|----------|
54
+
| Directness | Statements or announcements? |
55
+
| Rhythm | Varied or metronomic? |
56
+
| Trust | Respects reader intelligence? |
57
+
| Authenticity | Sounds human? |
58
+
| Density | Anything cuttable? |
59
+
60
+
Below 35/50: revise.
61
+
62
+
## Examples
63
+
64
+
See [references/examples.md](references/examples.md) for before/after transformations.
0 commit comments