chore: add LICENSE, README, VERSION, .editorconfig, expand .gitignore

Add project housekeeping files and sync manifest version to 0.1.0.
Also stages previously untracked chat summaries and score-ratio docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-28 00:27:54 -04:00
parent a13eca930c
commit c0a0c157f5
12 changed files with 845 additions and 1 deletions

View File

@@ -0,0 +1,34 @@
# Card Layout Implementation — Subagent-Driven Execution
## Task
Execute the [card layout implementation plan](../docs/superpowers/plans/2026-08-26-card-layout.md) using subagent-driven development. The plan converts old.reddit.com's flat post list into shadcn/ui-styled cards.
## Changes Made (6 commits: d659238..6e2aec3)
| Commit | Description |
|--------|-------------|
| `7ac47b5` | Extract `isDarkMode`/`getColorPrefix` to `settings.js`; add card defaults |
| `8d3ff72` | Badge layout toggle + FOUC CSS rename (`rt-enabled` → `rt-badges-enabled`) |
| `95f0946` | Create `cards.css` with exact shadcn design tokens |
| `5521e39` | Create `cards.js` module + unified MutationObserver in `main.js` |
| `7b0c80c` | Add card layout controls to popup (toggle, background, spacing) |
| `6e2aec3` | Fix stale closures in dark-mode observer and storage listener |
### Files modified
- `lib/settings.js` — shared dark-mode utilities, new defaults
- `content/tweaks/badges.js` — removed duplicate observers, use shared utilities
- `content/tweaks/color-popover.js` — use shared utilities
- `content/tweaks/cards.js` — **new** card tweak module
- `content/styles/badges.css` — FOUC selector rename
- `content/styles/cards.css` — **new** card styling
- `content/main.js` — rewritten: unified observers, both tweaks, storage handler
- `popup/popup.html` — badge toggle + card settings section
- `popup/popup.js` — wiring for new controls
- `manifest.json` — add `cards.css`/`cards.js`, remove `www.reddit.com`
## Follow-up Items
- Manual smoke test in Firefox on old.reddit.com (badges, cards, dark mode, popup controls)
- Minor: `processNewPosts` signature asymmetry (badges use settings arg, cards ignore it)
- Minor: No FOUC prevention for cards (badges have it; cards flash briefly on load)

View File

@@ -0,0 +1,35 @@
# Reddit Fonts Override Feature
**Date:** 2026-08-27
**Task:** Add Reddit's modern fonts (Reddit Sans, Reddit Sans Condensed, Reddit Mono) to the Firefox extension, overriding old Reddit's default fonts.
## Changes Made
### New Files
- `content/fonts/RedditSans[wght].woff2` — Reddit Sans variable font (~96KB)
- `content/fonts/RedditSansCondensed[wght].woff2` — Reddit Sans Condensed variable font (~94KB)
- `content/fonts/RedditMono[wght].woff2` — Reddit Mono variable font (~81KB)
- `content/fonts/OFL.txt` — SIL Open Font License
- `content/styles/fonts.css` — @font-face declarations and font-family overrides gated on `html.rt-fonts-enabled`
### Modified Files
- `manifest.json` — Added `content/styles/fonts.css` to CSS array
- `lib/settings.js` — Added `fontOverride: true` default
- `content/main.js` — Toggle `rt-fonts-enabled` class, reload on fontOverride change, removed debug console.log
- `popup/popup.html` — Added "Reddit fonts" checkbox
- `popup/popup.js` — Wired fontOverride checkbox (populate, save, listener)
### Design & Planning
- `docs/superpowers/specs/2026-08-27-reddit-fonts-design.md` — Design spec
- `docs/superpowers/plans/2026-08-27-reddit-fonts.md` — Implementation plan
## Architecture
- Fonts from [reddit/redditsans](https://github.com/reddit/redditsans), SIL OFL 1.1 licensed
- Variable-weight woff2 files (one per family, all weights via `wght` axis)
- CSS-only @font-face + class toggle pattern (matches existing card/badge approach)
- Reddit Sans applied to all body text; Reddit Mono to code/pre elements; Condensed declared but not force-applied
- Toggleable from popup, on by default
## Follow-up Items
- Manual Firefox testing recommended (load extension, verify fonts render, toggle on/off)
- Task 3 commit includes some unrelated pre-existing card-density changes (cosmetic, not a functional issue)

View File

@@ -0,0 +1,35 @@
# Score Ratio Badge — Subagent-Driven Implementation
**Date:** 2026-08-27 15:04
**Task:** Implement the Score Ratio Badge feature using Subagent-Driven Development
## Changes Made
### Task 1: Settings infrastructure + popup toggle (`dfaca51`)
- Added `scoreRatio: true` to DEFAULTS in `lib/settings.js`
- Added "Score ratio badge" checkbox to `popup/popup.html` in Card Layout section
- Wired `populateControls`, `saveFromControls`, and change listener in `popup/popup.js`
### Task 2: Font Awesome solid subset + ratio badge CSS (`93931a8`)
- Downloaded FA 6.7.2 solid woff2 to `content/fonts/fontawesome/fa-solid-900.woff2` (sha256 verified)
- Created `content/styles/fontawesome-scoped.css` — scoped FA selectors under `.rt-badge--ratio`
- Created `content/styles/ratio.css` — temperature-colored badges using CSS custom properties, dark mode via `.rt-dark`, neutral state, hover override
- Added both CSS files to manifest
### Task 3: Core ratio module + main.js integration (`2db30fd`)
- Created `content/tweaks/ratio.js` — IIFE module with score parsing (title attr, k/m suffixes, bullet detection), comment count parsing, ratio computation, HSL hue mapping, badge DOM injection
- Wired into `main.js` at all 5 integration points (init, post observer, dark mode observer, storage reload trigger, settings update)
- Added `ratio.js` to manifest JS array
## Review Results
- All 3 per-task reviews: Spec ✅, Approved
- Final whole-branch review: Ready to merge (no Critical/Important issues blocking)
- Minor findings noted: `data-rt-ratio-processed` set before insertion confirm, observer dependency on badgeLayout/cardLayout (accepted), accessibility context on badges
## Follow-up Items
- Consider `title` attribute on badges for tooltip/accessibility (e.g. "Score per comment: 12.7")
- Dark mode edge case: score-ratio-only mode (both layouts off) won't get `.rt-dark` class — document as unsupported or add shared dark-mode helper
- Move `data-rt-ratio-processed` to after successful insertion for minor hardening
- Doc naming drift: spec file is `vote-ratio-badge-design.md` but feature is "score ratio"

View File

@@ -0,0 +1,42 @@
# Recovery of Lost Uncommitted Changes
**Date:** 2026-08-27
**Task:** Restore working directory state after an overzealous `git reset --hard` that removed both the score ratio badge feature AND valuable uncommitted card UI polish work.
## Context
During the score ratio badge brainstorming session, the user decided to remove that feature. A `git reset --hard` was used but it also wiped uncommitted changes to `content/styles/cards.css` (278 lines) and `content/tweaks/cards.js` (93 lines) that contained extensive card UI improvements from the fonts session (`c6ee4c29`).
## Recovery Process
1. Analyzed all agent transcripts in `/agent-transcripts/` to find Write/StrReplace operations
2. Initially recovered partial state from transcript `85d33c47` (card density, dark mode fixes)
3. User reported this was insufficient — missing voting pill, rank badge, theme, and layout changes
4. Found the bulk of missing work in transcript `c6ee4c29` (fonts session) — lines 78-227 contained extensive post-fonts card UI polishing
5. Used a subagent to extract the final file state from `c6ee4c29`: base Write at line 185 + 11 subsequent StrReplace operations for CSS; Write at line 187 for JS
6. Successfully reconstructed both files to their pre-reset state
## Recovered Features (in cards.css)
- Voting pill (`.midcol`) with capsule styling and border-radius per density
- Rank badge watermark (`.rt-rank-badge`) anchored top-left
- Custom selection system (`rt-selected`) replacing Reddit/RES classes
- Voted pill tinting: orange for upvoted, purple for downvoted
- Deselected pill dim (opacity: 0.45) / selected vibrant (opacity: 1)
- Opposing arrow hue matching with reduced opacity
- Dark mode variants for all selection/voted states
- Bold post titles
- Shadcn page backgrounds (light + dark)
## Recovered Features (in cards.js)
- Rank badge DOM repositioning with `rt-rank-badge` class
- `initSelection()` — mousedown-based `rt-selected` class toggle
- `applyDensity()` — density class management
- Click-outside deselection
## Final State
- `cards.css`: 278 lines (+254/-22 vs committed)
- `cards.js`: 93 lines (+33 vs committed)
- Git status matches conversation-start state