Skip to content

Revert "Feature/extension reflow" - #8

Merged
ITx-prash merged 18 commits into
mainfrom
revert-7-feature/extension-reflow
Aug 9, 2026
Merged

Revert "Feature/extension reflow"#8
ITx-prash merged 18 commits into
mainfrom
revert-7-feature/extension-reflow

Conversation

@ITx-prash

Copy link
Copy Markdown
Contributor

Reverts #7

…oving notification interactivity"

This reverts commit 6b17a4f.
Copilot AI lite review requested due to automatic review settings August 9, 2026 14:57
@ITx-prash
ITx-prash merged commit 2857f97 into main Aug 9, 2026
1 check passed
@ITx-prash
ITx-prash deleted the revert-7-feature/extension-reflow branch August 9, 2026 14:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reverts changes introduced in #7, reshaping the extension UI and check-in flow (including moving camera capture into a dedicated popup window) and removing the onboarding/animation/preset infrastructure that was previously added.

Changes:

  • Introduces a capture popup window flow (camera permission + record + confirm + countdown) and adds chromeApi wrappers plus a useCycleStatus hook to keep the side panel in sync with background state.
  • Reworks the side panel UI styling and states (new design tokens, new header/shell layout, updated state components).
  • Simplifies backend/extension integration by removing settings/presets/onboarding support and trimming backend server endpoints/behavior accordingly.

Reviewed changes

Copilot reviewed 51 out of 85 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
vite.config.js Adds Vite multi-entry build configuration for side panel, background, and capture window.
src/style.css Replaces design tokens and animations used by the new “film-strip” UI styling.
src/panel/states/SkeletonState.jsx Tweaks skeleton sizing/typography to match new panel styling.
src/panel/states/ReadyState.jsx Reworks “ready” layout and changes callback shape (dismiss → later).
src/panel/states/PlayerState.jsx Replaces player overlay UI with simplified player + progress UI.
src/panel/states/PendingState.jsx Replaces step-list UI with three explicit pending substates + cancel/redo button.
src/panel/states/OnboardingState.jsx Removes onboarding wizard state (deleted).
src/panel/states/OnboardingComplete.jsx Removes onboarding completion screen (deleted).
src/panel/states/IdleState.jsx Updates idle prompt copy/layout and button presentation.
src/panel/states/ErrorState.jsx Reworks error presentation and retry/dismiss actions.
src/panel/states/CountdownState.jsx Simplifies countdown UI copy (removes “Okay” button UI).
src/panel/states/ConfirmState.jsx Updates confirmation UI styling and typography.
src/panel/states/CaptureState.jsx Updates capture UI styling and recording indicator presentation.
src/panel/SidePanel.jsx Removes onboarding gating and wires new “Later” behavior to closeSidePanel().
src/main.jsx Adds root React entry for the Vite app.
src/lib/constants.js Removes settings/preset constants and backend routes that supported onboarding/presets.
src/lib/chromeApi.js Introduces wrappers/fallbacks for chrome APIs, plus closeSidePanel() helper.
src/lib/checkIn.js Simplifies check-in payload (drops preset/settings) and keeps tab-derived user_name.
src/hooks/useSettings.js Removes settings hook (deleted).
src/hooks/useCycleStatus.js Adds cycle-status storage sync hook (new single source of truth for UI state).
src/hooks/useCameraCapture.js Adds camera capture hook (permission + MediaRecorder + cleanup) for popup window.
src/components/ui/TagPill.jsx Adds small “tag pill” UI component.
src/components/ui/ProgressBar.jsx Adds simple progress bar UI component.
src/components/ui/Logo.jsx Removes Motion-based logo component (deleted).
src/components/ui/Button.jsx Reworks button styling and variants to match new design tokens.
src/components/ui/BreathingDot.jsx Updates breathing dot size/color and state speed mapping.
src/components/layout/SprocketRail.jsx Adds the “sprocket rail” layout element for film-strip style.
src/components/layout/PanelShell.jsx Reworks panel shell layout to include sprocket rail and new padding/overflow behavior.
src/components/layout/PanelHeader.jsx Replaces animated/logo header with simplified header + decorative line + progress bar.
src/capture/main.jsx Adds capture window React entrypoint.
src/capture/CaptureWindow.jsx Implements the capture popup window flow and state transitions.
src/capture/capture.html Adds capture window HTML entry.
src/background/index.js Adjusts alarms lifecycle, notification payloads, and message handling for the new flow.
src/App.jsx Adds top-level app wrapper rendering SidePanel.
README.md Adds minimal repo README header.
public/manifest.json Updates icons list and formatting; keeps required permissions.
package.json Removes lucide-react and motion dependencies.
package-lock.json Reflects dependency removals and lockfile updates.
opencode.json Removes opencode MCP config (deleted).
MINDSTREAM_PROJECT_SUMMARY.md Updates architecture/stack documentation (notably compositor references).
index.html Adds main HTML entry for Vite/React app.
IMPLEMENTATION_SUMMARY.md Removes Motion onboarding transition write-up (deleted).
eslint.config.js Adds ESLint flat config for JS/JSX + react-hooks/react-refresh.
CardReference.jsx Removes reference/demo component (deleted).
backend/test.sh Adjusts messaging/output and removes preset-related usage notes.
backend/test_presets.py Removes preset regression tests (deleted).
backend/server.js Removes presets/cancel/health endpoints; simplifies generation invocation/output naming.
backend/requirements.txt Adds backend requirements file (MovieLite + deps).
backend/README.md Removes render presets documentation section.
backend/package.json Adds backend npm package manifest for the Express server.
backend/output/audio/sample-job-001.srt Adds sample SRT output file.
backend/movielite_docs/api.md Removes vendored MovieLite docs (deleted).
backend/movielite_docs/advanced.md Removes vendored MovieLite docs (deleted).
backend/data/sample_emotion_result.json Changes sample emotion label/user fields.
backend/benchmark_render_presets.py Removes preset benchmarking script (deleted).
backend/assets/audio/README.md Adds guidance for ambient audio assets per emotion.
backend/.gitignore Updates backend gitignore patterns (removes render profile calibration ignore).
backend/.env.example Adds example env file for required/optional API keys.
.opencode/skills/motion/transition-preview/index.md Removes Motion skill files (deleted).
.opencode/skills/motion/SKILL.md Removes Motion skill files (deleted).
.opencode/skills/motion/performance-audit/index.md Removes Motion skill files (deleted).
.opencode/skills/motion/css-spring/index.md Removes Motion skill files (deleted).
.opencode/skills/motion/codex/index.md Removes Motion skill files (deleted).
.opencode/skills/motion/best-practices/vue.md Removes Motion skill files (deleted).
.opencode/skills/motion/best-practices/react.md Removes Motion skill files (deleted).
.opencode/skills/motion/best-practices/motion.md Removes Motion skill files (deleted).
.opencode/skills/motion/best-practices/index.md Removes Motion skill files (deleted).
.opencode/skills/motion/best-practices/base-ui.md Removes Motion skill files (deleted).
.gitignore Adds repository-wide ignores (node, dist, env files, backend outputs, venv, etc.).
Suppressed comments (1)

src/background/index.js:204

  • handleJobPoll leaves the JOB_POLL alarm running when the cycle is no longer pending and job_id is null (e.g. after the panel marks a reel as viewed and resets the cycle to IDLE). Because the early-return checks !cycle.job_id first, the alarm can keep firing forever and wake the service worker unnecessarily.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Video unavailable — make sure the backend is running
</p>
<div className="flex flex-col animate-fadein">
<div className="w-full aspect-9/13 rounded-[14px] border border-hairline bg-[linear-gradient(200deg,#233A38,#101615)] relative overflow-hidden flex flex-col justify-end mb-3.5">
TTS[TTS Engine: edge-tts or KittenTTS]
Assets[(Asset Library: bg videos + ambient audio)]
Compositor[MovieLite / FFmpeg: Video Compositor]
Compositor[MoviePy: Video Compositor]
Comment on lines 141 to 145
- **Subtitle Timing (Phase 3):** Purely local, proportional word-count distribution. Total TTS audio duration (read via `AudioFileClip.duration`) is divided across subtitle phrases proportionally by word count. Subtitles start at 0s with no delay, keeping them synced with the near-zero-latency MiMo TTS. Pause-weighting adds ~15% extra time to phrases ending with sentence punctuation (`.`, `!`, `?`, `…`). No upload to Gemini, no Whisper, no AssemblyAI — free-tier safe.
- **Subtitle Rendering:** Subtitles overlaid using MovieLite/FFmpeg compositor at bottom of frame, uppercase, yellow text (`#FFFF00`) with black stroke.
- **Subtitle Rendering:** MoviePy `SubtitlesClip` overlaid at vertical position `1700` (bottom ~11% of 1920px frame), font size `80`, uppercase, yellow text (`#FFFF00`) with black 3px stroke.
- **Video Search:** Pexels API with cinematic/moody query terms extracted by Gemini from the script. Fallback terms (`moody nature`, `dusk calm`, `foggy forest`) used if primary queries return no results.
- **Media Rendering (Phase 3):** Python + `MovieLite`/`FFmpeg` (4x faster than MoviePy with support for `normal` background preset and `fast` multi-worker preset), compositing Pexels-sourced video clips + Edge-TTS/MiMo audio + ambient audio (15% volume) + proportional subtitles into a 9:16 (720×1280 or 1080×1920) MP4.
- **Media Rendering (Phase 3):** Python + `MoviePy`/`FFmpeg`, compositing Pexels-sourced video clips + Xiaomi MiMo TTS audio + ambient audio (15% volume) + proportional subtitles into a 9:16 (1080×1920) MP4.
- **Asset Library:** A local folder (`assets/audio/`) of ambient audio tracks organised by emotion. Background videos are fetched dynamically from Pexels per generation (no pre-built video library needed).
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.

2 participants