Implement Phases 12–14: packaging, local API server, and browser extension#2
Conversation
… update README Agent-Logs-Url: https://github.com/Neil1355/FocusSight-AI/sessions/0a91d157-7146-450a-ab69-18aa2b205958 Co-authored-by: Neil1355 <123858238+Neil1355@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR updates project documentation to reflect that Phases 1–11 are complete and lays out a concrete plan for the remaining work needed to reach the browser extension milestone (via packaging and a local API server).
Changes:
- Added planned Phases 12–14 (Packaging, Local API/WebSocket server, Browser Extension) to the roadmap.
- Updated README to prominently surface the remaining phases and end-goal.
- Added a corresponding planning entry to the changelog.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| docs/ROADMAP.md | Cleans up Phase 11 tail content and adds detailed plans for Phases 12–14. |
| docs/CHANGELOG.md | Adds a dated planning entry describing the documentation updates. |
| README.md | Updates documentation status and adds an “Upcoming Phases” section/table. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot start working on the next phases and let me know once done |
Agent-Logs-Url: https://github.com/Neil1355/FocusSight-AI/sessions/7da4af50-ddf3-4b60-9e0f-81b77fe39a77 Co-authored-by: Neil1355 <123858238+Neil1355@users.noreply.github.com>
All three phases are done (commit Phase 12 – Packaging & Distribution Phase 13 – REST API / WebSocket Server
Start it with the tracker via python eye_test.py --autolog --serve12 new tests in Phase 14 – Browser Extension
Load unpacked in Chrome: |
|
@copilot did u explicitly update the readme? also explain what did u do? what is working and how could i test this? |
Yes, README changes (commit
|
|
|
Phases 1–11 are complete. This PR implements all 3 remaining phases to bring FocusSight AI to its full-featured milestone, including the browser extension.
Changes
Phase 12 – Packaging & Distribution
pyproject.toml(PEP 517/518) with package metadata, entry-point scripts (focussight-track,focussight-report), bundled cascade XML files, and optional dependency groups[server]and[dev]pip install focussight-aiorpip install -e .Phase 13 – REST API / WebSocket Server
focussight/server.pywith a FastAPI application exposing:GET /status— live focus state as JSONGET /report— ops report JSON for the active sessionGET /health— liveness probeWS /events— streams a state event every secondFocusStatedataclass +update_live_state()/get_live_state()helpers; the tracker loop pushes state every frame with zero overhead--serveand--serve-portCLI flags to the tracker; starts a uvicorn daemon thread before the webcam loop beginstests/test_server.pywith 12 tests covering shared-state helpers and FastAPI endpoint contracts (/status,/report,/health, CORS headers) — all passingPhase 14 – Browser Extension
extension/folder with a complete Manifest V3 Chrome/Firefox extension:manifest.json— MV3 manifest withstorageandnotificationspermissionsbackground.js— service worker polling/statusevery second viachrome.alarms; updates badge colour (🟢 green = FOCUSED, 🔴 red = DISTRACTED, 🟡 amber = degraded, ⚫ grey = offline); fires desktop notifications when distraction streak exceeds the configured thresholdpopup.html/popup.js— styled live-stats panel (state badge, focus %, distracted %, streak, elapsed, signal status)options.html/options.js— settings page for server URL, notification style, and distraction threshold; persisted viachrome.storage.syncgenerate_icons.py— generates placeholder 16/32/48/128 px PNG iconspackage_extension.py— packages asdist/focussight-extension.zip(Chrome Web Store) anddist/focussight-extension.xpi(Firefox)extension/README.md— load unpacked instructions, options reference, badge colour legenddocs/ROADMAP.md---separator between Phase 11 and Phase 12 (formatting consistency fix)README.mdfocussight/server.py,extension/, andtests/test_server.py--serve/--serve-port; new Local API Server endpoint table addeddocs/CHANGELOG.mdPhase dependency note
Phase 13 is a hard prerequisite for Phase 14 — the extension connects to the local Python server over WebSocket/HTTP, keeping the entire stack local and private with no cloud backend required.
Quick start
Original prompt
did u update the entire readme? move on planning and working on next phases, and let me knopw how many phases are to go to wind up this project. i wanna make it a browser extension if possible after
[Chronological Review: The conversation began with the user expressing a desire to move forward with a project, emphasizing the importance of testing and implementing changes. The user requested to push updates to Git, create a new repository, and organize the file structure. As the conversation progressed, the user indicated a need for batch testing and requested updates on progress and remaining tasks. The user also mentioned issues with face detection while wearing a hat, and there were discussions about moving ahead with planning and working on the next phases of the project, including the potential for a browser extension.][Intent Mapping:
[Technical Inventory:
[Code Archaeology:
[Progress Assessment:
[Context Validation: All critical information for continuation is captured, including user goals for project advancement, testing, and future browser extension development.]
[Recent Commands Analysis:
1. Conversation Overview: - Primary Objectives: User wants to advance the project, implement changes, conduct testing, and eventually create a browser extension. - Session Context: The conversation has focused on project management, including pushing updates to Git, organizing files, and planning future phases. - User Intent Evolution: The user has consistently emphasized the need for progress, testing, and organization while expressing interest in future project extensions.- Technical Foundation:
- Git: Version control system for managing project changes.
- Batch Testing: Methodology for testing multiple components together.
- Project Structure: Organization of files and folders for clarity and efficiency.
- Browser Extension: Future goal for the project.
- Codebase Status:
- README: User inquired about updates to the README file, indicating a need for documentation.
- File Organization: User requested the organization of project files and folder structure.
- Problem Resolution:
- Issues Encountered: User faced a problem with face detection while wearing a hat.
- Solutions Implemented: No specific solutions were discussed, but the user is focused on moving forward.
- Debugging Context: User is aware of issues and is actively seeking to resolve them through testing.
- Lessons Learned: Importance of testing and organization in project management.
- Progress Tracking:
- Completed Tasks: User has indicated a desire to push updates to Git and organize files.
-...
Created from VS Code.