# Project memory — LexAI

> Curated long-term knowledge that must survive sessions, compaction, and agent turnover. Loaded at every session start alongside `HANDOFF.md`. **Hard cap: 60 lines of entries.** When full, the `memory-sync` skill consolidates or archives before adding. Facts only — state goes in `HANDOFF.md`, mistakes in `LESSONS_LEARNED.md`, choices in `DECISIONS.md`.

## Verified facts

Durable, evidence-backed truths about this project (domain rules, invariants, external realities).

- No backend: the background service worker is the only context that calls provider APIs; the user's key never leaves the extension except to the chosen provider.

## Conventions

How this codebase does things (naming, structure, patterns a new agent must follow).

- UI is inline style objects (dark Catppuccin-ish palette); Tailwind is installed but inactive.
- Each provider is duplicated as `callX` + `callXWithPrompt` — change both until T-04 refactors the layer.

## Environment quirks

Non-obvious facts about tooling, commands, CI, or the operator's machine that repeatedly cost time to rediscover.

- `node_modules` is gitignored and absent by default — run `npm install` before any `npm run *`.
- CI is Gitea (`.gitea/workflows/`), Node 22 pinned. Version must match in `package.json` and `wxt.config.ts`.

## Key paths and entry points

| What | Where |
| --- | --- |
| Content script (selection, toolbar, replace) | `entrypoints/content.ts` |
| Background LLM proxy (providers, key decrypt) | `entrypoints/background.ts` |
| Options (provider/model/key + encrypt) | `entrypoints/options/Options.tsx` |
| Popup (standalone analyze) | `entrypoints/popup/Popup.tsx` |
| Task list (from RECOMMENDATIONS) | `docs/TASKS.md` |

## Expiring notes

Short-lived knowledge with an explicit expiry; `memory-sync` deletes past-due entries.

- _None yet. Format: `[YYYY-MM-DD expires] note`_

## Consolidation log

| Date | Action | Reason |
| --- | --- | --- |
| 2026-07-15 | Seeded initial facts, conventions, quirks, key paths | memory layer added |

---

*Write rules: one line per entry, evidence-backed, no secrets/personal data/transcripts. Every entry must answer "would a fresh agent waste tokens rediscovering this?" — if no, it doesn't belong here.*
