Skip to content

feat(M22): Chrome Extension MV3 scaffold + Odoo API endpoint#60

Merged
YuriiDorosh merged 1 commit into
mainfrom
m22_browser_extension_foundation
Apr 28, 2026
Merged

feat(M22): Chrome Extension MV3 scaffold + Odoo API endpoint#60
YuriiDorosh merged 1 commit into
mainfrom
m22_browser_extension_foundation

Conversation

@YuriiDorosh
Copy link
Copy Markdown
Owner

  • extension/: Manifest V3 scaffold with popup, content script, background service worker, options page, and placeholder icons
  • popup.html/js: glassmorphism popup; prefills selected text; saves to Lexora via POST /lexora_api/add_word; handles auth/duplicate/error states
  • options.html/js: persists Lexora base URL in chrome.storage.sync
  • portal_api.py: LexoraApiController with CORS preflight, add_word (dedup + immediate translation), daily_card (M25), define (M24), quick_explain (M25)
  • docs/PLAN.md v1.3: M22–M25 milestones; M18.5–M21 marked complete
  • docs/TASKS.md: M22 in-progress block; M18.5–M21 archived as complete

Summary

Type of change

  • Bug fix (non-breaking)
  • New feature / milestone
  • Refactor (no behaviour change)
  • Docs / comments only
  • CI / tooling
  • Breaking change

Milestone / scope

Test plan

  • docker exec odoo odoo --config /etc/odoo/odoo.conf -d lexora --test-enable --no-http --stop-after-init -u <module> → 0 failures
  • make up-dev → all services start clean
  • Manual portal smoke test on the golden path
  • Edge case tested: ___
  • No test required (docs / config only)

Odoo modules changed

Checklist

  • ruff check passes (no new lint errors)
  • ruff format applied (code is formatted)
  • No secrets / credentials committed
  • docs/TASKS.md updated if this completes a milestone sub-step
  • docs/DECISIONS.md updated if an architectural decision was made

🤖 Generated with Claude Code

- extension/: Manifest V3 scaffold with popup, content script, background
  service worker, options page, and placeholder icons
- popup.html/js: glassmorphism popup; prefills selected text; saves to Lexora
  via POST /lexora_api/add_word; handles auth/duplicate/error states
- options.html/js: persists Lexora base URL in chrome.storage.sync
- portal_api.py: LexoraApiController with CORS preflight, add_word (dedup +
  immediate translation), daily_card (M25), define (M24), quick_explain (M25)
- docs/PLAN.md v1.3: M22–M25 milestones; M18.5–M21 marked complete
- docs/TASKS.md: M22 in-progress block; M18.5–M21 archived as complete

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@YuriiDorosh YuriiDorosh merged commit fb41ba3 into main Apr 28, 2026
20 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant