Commit Graph

10 Commits

Author SHA1 Message Date
john kevin asprec
6aee260533 fix: never send an API key to the provider it wasn't entered for (v1.0.2)
All checks were successful
CI — Test & Build / Test & Build (push) Successful in 1m33s
A stored key carried no record of which provider it belonged to. Options
saves {provider, model} without the key whenever the field is blank (which
it always is after a save, since it shows the encrypted badge instead), so
switching provider left the previous provider's key attached to the new one.
Every call then failed with that provider's own "Invalid API Key" while the
UI still showed a key as configured.

- types.ts: new `keyProvider` storage field, added to CONFIG_STORAGE_KEYS
- background.ts: keyProviderMismatch() guards the chat, COPY_AS and
  stored-key LIST_MODELS paths; absent keyProvider (pre-upgrade) is allowed
- Options.tsx: stamps keyProvider on every save; drops the encrypted badge
  and requires a new key when the saved one belongs to another provider or
  is rejected; save-time guard messages are now actually rendered (they were
  gated on modelsStatus === 'error' and never drew, so Save looked dead)
- providers.ts: providerLabel(); settings hint appended to 401/403 only;
  listModels reports keyRejected and labels errors with the display name
- Anthropic: send anthropic-dangerous-direct-browser-access on the chat path

Docs: CLAUDE.md version-bump rule corrected — wxt.config.ts reads
pkg.version, so package.json is the only place to edit.

typecheck clean, 58/58 tests, build clean (281.72 kB, manifest 1.0.2).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 15:50:07 +08:00
john kevin asprec
bda888b943 chore: Bump version to 1.0.1 in package.json and package-lock.json
All checks were successful
CI — Test & Build / Test & Build (push) Successful in 1m17s
2026-07-15 16:25:54 +08:00
john kevin asprec
c2ca659a2b feat: Enhance project memory and skills documentation; add memory-sync skill for knowledge consolidation
All checks were successful
CI — Test & Build / Test & Build (push) Successful in 1m15s
2026-07-15 16:01:13 +08:00
john kevin asprec
b7798047dc test: typecheck test files in CI; drop mock-only test; richer chrome mock
- typecheck now also runs tsc over tsconfig.test.json (test files were
  never type-checked before).
- Delete tests/unit/background.test.ts, which only asserted the vitest
  chrome mock's own behavior — every remaining test imports production
  code from src/lib.
- Baseline mock gains runtime.id, storage.session/remove, contextMenus,
  and tabs.sendMessage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 21:45:22 +08:00
john kevin asprec
04a4a2dc99 chore: remove unused deps, pin toolchain, single-source version, quarantine e2e
- Uninstall zustand, tailwindcss, autoprefixer, tweetnacl-util (all
  unused); README no longer advertises Tailwind/Zustand.
- Fix stale 'Tone' -> 'Explain' copy in Options.
- Add .nvmrc/engines/packageManager (Node 22 to match CI).
- wxt.config.ts reads manifest version from package.json so the two
  can never drift.
- Ignore *.zip build artifacts.
- Skip the two e2e specs with literal [EXTENSION_ID] placeholders
  (cannot pass; TODO references the e2e-ID-resolution task).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 21:26:51 +08:00
229fac8a2c chore: bump version to 1.0.0
Some checks failed
CI — Test & Build / Test & Build (push) Successful in 59s
Deploy — Chrome Web Store / Build & Deploy to Chrome Web Store (push) Failing after 49s
Release — Package & Publish / Build & Package Release (push) Successful in 50s
2026-03-11 08:09:49 +00:00
Forge
4343abbab3 fix: add jsdom dep, exclude e2e from unit test run - CI tests now pass
Some checks failed
CI — Test & Build / Test & Build (push) Has been cancelled
2026-03-06 13:55:51 +08:00
Forge
050e291f73 fix: add tsconfig.json, @types/chrome, fix TS errors - CI typecheck now passes
Some checks failed
CI — Test & Build / Test & Build (push) Failing after 9s
2026-03-06 13:47:24 +08:00
Forge
c35ef08531 feat: fix WXT setup — install @wxt-dev/module-react, fix sandbox imports, clean build (closes #1)
Some checks failed
CI — Test & Build / Unit Tests (push) Failing after 34s
CI — Test & Build / Build Extension (push) Has been skipped
2026-03-06 13:11:19 +08:00
Nemo
b04076081c feat: initial LexAI Chrome extension scaffold
Some checks failed
CI — Test & Build / Unit Tests (push) Failing after 54s
CI — Test & Build / Build Extension (push) Has been skipped
- WXT + React 18 + TypeScript setup
- Background service worker (LLM API proxy)
- Content script (floating toolbar + text selection)
- Options page (provider/model/API key config)
- Popup UI
- Gitea Actions workflows (CI, preview, release)
- Vitest unit tests + Playwright E2E setup
- Supports: OpenAI, Anthropic, Groq, OpenRouter
2026-03-06 09:34:15 +08:00