Skip to content

🐳 Improve docker support#1

Merged
robinroy03 merged 2 commits intotrykimu:mainfrom
emanuele-toma:main
Jun 2, 2025
Merged

🐳 Improve docker support#1
robinroy03 merged 2 commits intotrykimu:mainfrom
emanuele-toma:main

Conversation

@emanuele-toma
Copy link
Copy Markdown
Contributor

Dockerfile still doesn't work because of this error:

Click to view full logs
app/remotion/MyComp.tsx (1:19): "OffthreadVideo" is not exported by "app/remotion/index.ts", imported by "app/remotion/MyComp.tsx"
 => ERROR [build-env 4/4] RUN pnpm run build                                                                                                                                                                             2.8s
------
 > [build-env 4/4] RUN pnpm run build:
0.765 
0.765 > videoeditor@ build /app
0.765 > react-router build
0.765 
1.736 vite v6.3.5 building for production...
1.770 transforming...
2.690 ✓ 115 modules transformed.
2.696 ✗ Build failed in 936ms
2.697 app/remotion/MyComp.tsx (1:19): "OffthreadVideo" is not exported by "app/remotion/index.ts", imported by "app/remotion/MyComp.tsx".
2.697 file: /app/app/remotion/MyComp.tsx:1:19
2.697 
2.697 1: import { Sequence, OffthreadVideo } from "remotion";
2.697                       ^
2.697 
2.697     at getRollupError (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/parseAst.js:400:41)
2.697     at error (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/parseAst.js:396:42)
2.697     at Module.error (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:16788:16)
2.697     at Module.traceVariable (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:17237:29)
2.697     at ModuleScope.findVariable (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:14893:39)
2.697     at ReturnValueScope.findVariable (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:5617:38)
2.697     at FunctionBodyScope.findVariable (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:5617:38)
2.697     at Identifier.bind (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:5391:40)
2.697     at CallExpression.bind (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:2782:28)
2.697     at CallExpression.bind (file:///app/node_modules/.pnpm/rollup@4.41.1/node_modules/rollup/dist/es/shared/node-entry.js:11978:15) {
2.697   binding: 'OffthreadVideo',
2.697   code: 'MISSING_EXPORT',
2.697   exporter: '/app/app/remotion/index.ts',
2.697   id: '/app/app/remotion/MyComp.tsx',
2.697   url: 'https://rollupjs.org/troubleshooting/#error-name-is-not-exported-by-module',
2.697   pos: 70,
2.697   loc: { column: 19, file: '/app/app/remotion/MyComp.tsx', line: 1 },
2.697   frame: '1: import { Sequence, OffthreadVideo } from "remotion";\n' +
2.697     '                      ^',
2.697   watchFiles: [
2.697     '/app/node_modules/.pnpm/@react-router+dev@7.6.0_@react-router+serve@7.6.0_react-router@7.6.0_react-dom@19.1.0_r_dfb527f63262f3ac6b148f2680755d8c/node_modules/@react-router/dev/dist/config/defaults/entry.client.tsx',
2.697     '/app/app/root.tsx',
2.697     '/app/app/routes/home.tsx',
2.697     '/app/app/routes/learn.tsx',
2.697     '/app/app/NotFound.tsx',
2.697     '/app/node_modules/.pnpm/react@19.1.0/node_modules/react/jsx-runtime.js',
2.697     '/app/node_modules/.pnpm/react@19.1.0/node_modules/react/index.js',
2.697     '/app/node_modules/.pnpm/react-dom@19.1.0_react@19.1.0/node_modules/react-dom/client.js',
2.697     '/app/node_modules/.pnpm/react-router@7.6.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-router/dist/development/dom-export.mjs',
2.697     '/app/package.json',
2.697     '/app/node_modules/.pnpm/react@19.1.0/node_modules/react/cjs/react-jsx-runtime.production.js',
2.697     '/app/node_modules/.pnpm/react@19.1.0/node_modules/react/cjs/react.production.js',
2.697     '/app/node_modules/.pnpm/react-dom@19.1.0_react@19.1.0/node_modules/react-dom/cjs/react-dom-client.production.js',
2.697     '/app/node_modules/.pnpm/react-dom@19.1.0_react@19.1.0/node_modules/react-dom/index.js',
2.697     '/app/node_modules/.pnpm/react-router@7.6.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-router/dist/development/chunk-D4RADZKF.mjs',
2.697     'package.json',
2.697     '/app/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/index.js',
2.697     '/app/node_modules/.pnpm/react-dom@19.1.0_react@19.1.0/node_modules/react-dom/cjs/react-dom.production.js',
2.697     '/app/node_modules/.pnpm/react-router@7.6.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-router/dist/development/index.mjs',
2.697     '/app/node_modules/.pnpm/scheduler@0.26.0/node_modules/scheduler/cjs/scheduler.production.js',
2.697     '/app/app/components/timeline/MediaBin.tsx',
2.697     '/app/app/components/timeline/VideoPlayerSection.tsx',
2.697     '/app/app/components/timeline/TimelineControls.tsx',
2.697     '/app/app/components/timeline/RenderStatus.tsx',
2.697     '/app/app/components/timeline/TimelineRuler.tsx',
2.697     '/app/app/components/timeline/TimelineTracks.tsx',
2.697     '/app/app/hooks/useTimeline.ts',
2.697     '/app/app/hooks/useMediaBin.ts',
2.697     '/app/app/hooks/useRuler.ts',
2.697     '/app/app/hooks/useRenderer.ts',
2.697     '/app/app/components/timeline/types.ts',
2.697     '/app/app/app.css',
2.697     '/app/node_modules/.pnpm/tailwindcss@4.1.7/node_modules/tailwindcss/index.css',
2.697     '/app/CONTRIBUTING.md',
2.697     '/app/.cursor/rules.mdc',
2.697     '/app/docker-compose.yml',
2.697     '/app/tsconfig.json',
2.697     '/app/.dockerignore',
2.697     '/app/Dockerfile',
2.697     '/app/app/remotion/index.ts',
2.697     '/app/app/remotion/VideoPlayer.tsx',
2.697     '/app/app/remotion/MyComp.tsx',
2.697     '/app/app/remotion/Composition.tsx',
2.697     '/app/app/remotion/Root.tsx',
2.697     '/app/app/videorender/index.ts',
2.697     '/app/app/videorender/videorender.ts',
2.697     '/app/app/videorender/Composition.tsx',
2.697     '/app/app/components/timeline/Scrubber.tsx',
2.697     '/app/app/routes.ts',
2.697     '/app/react-router.config.ts',
2.697     '/app/vite.config.ts',
2.697     '/app/LICENSE',
2.697     '/app/eslint.config.js',
2.697     '*',
2.697     '.cursor/**/*.{,aspx,astro,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdc,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue,yml}',
2.697     'app/**/*.{,aspx,astro,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdc,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue,yml}',
2.697     '/app/node_modules/.pnpm/cookie@1.0.2/node_modules/cookie/dist/index.js',
2.697     '/app/node_modules/.pnpm/set-cookie-parser@2.7.1/node_modules/set-cookie-parser/lib/set-cookie.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/index.js',
2.697     '/app/node_modules/.pnpm/@remotion+media-parser@4.0.310/node_modules/@remotion/media-parser/dist/esm/index.mjs',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/axios.js',
2.697     '/app/node_modules/.pnpm/@remotion+player@4.0.306_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@remotion/player/dist/esm/index.mjs',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/utils.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/bind.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/Axios.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/mergeConfig.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/defaults/index.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/formDataToJSON.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/cancel/CanceledError.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/cancel/CancelToken.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/env/data.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/cancel/isCancel.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/toFormData.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/AxiosError.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/spread.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/isAxiosError.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/AxiosHeaders.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/adapters/adapters.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/HttpStatusCode.js',
2.697     '/app/node_modules/.pnpm/remotion@4.0.306_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/remotion/dist/esm/index.mjs',
2.697     '/app/node_modules/.pnpm/remotion@4.0.306_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/remotion/dist/esm/no-react.mjs',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/buildURL.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/InterceptorManager.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/dispatchRequest.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/buildFullPath.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/validator.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/defaults/transitional.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/toURLEncodedForm.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/platform/index.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/null.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/parseHeaders.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/adapters/xhr.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/adapters/fetch.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/transformData.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/isAbsoluteURL.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/combineURLs.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/platform/browser/index.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/platform/common/utils.js',
2.697     '/app/node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/core/settle.js',
2.697     ... 12 more items
2.697   ],
2.697   [Symbol(augmented)]: true
2.697 }
2.734  ELIFECYCLE  Command failed with exit code 1.
------
Dockerfile:39
--------------------
  37 |     COPY --from=development-dependencies-env /app/node_modules /app/node_modules
  38 |     WORKDIR /app
  39 | >>> RUN pnpm run build
  40 |     
  41 |     # Final image
--------------------
ERROR: failed to solve: process "/bin/sh -c pnpm run build" did not complete successfully: exit code: 1

Also added docker compose file that starts the project in dev mode, takes a couple of seconds to load the webpage for the first time.

@robinroy03 robinroy03 merged commit 32351f3 into trykimu:main Jun 2, 2025
@robinroy03
Copy link
Copy Markdown
Member

thank you for this @emanuele-toma ❤️

BenjisCollector added a commit to BenjisCollector/videoeditor that referenced this pull request Apr 17, 2026
Phase 2 Wave 2 — pure algorithmic half of UNDO-01.

- app/lib/agentic-mode/diff-emitter.client.ts: computeDiffEvent(before, after,
  ...) returns a structured DiffEvent with RFC 6902 patches via rfc6902@^5.2.0
  (Mutative's enablePatches requires a producer function; wrong tool for
  diffing independent snapshots — research correction trykimu#1).
- extractScrubberIds() parses patch paths (/tracks/N/scrubbers/M/*) and
  collapses dupes. Falls back to before-snapshot for removed scrubbers.
- postDiffEvent() — thin fetch wrapper for http://127.0.0.1:8000/agentic/
  diff-log/append (loopback-only per AGPL §13 / HYGIENE-03).
- Tests: 10 vitest in app/lib/agentic-mode/tests/ covering change detection,
  no-op shortcut, id extraction (including remove case), pin+meta passthrough,
  ISO timestamp shape, and fetch integration with 200/500 responses.
- vitest.config.ts root adds 'app-lib' project for pure-TS tests.
- rfc6902@^5.2.0 installed at workspace root (-w -D).

What's NOT in this commit: useDiffEmitter React hook, useTimeline.ts upstream
fix, drag-dedupe (is_dragging flush). Those touch Kimu's state management and
are follow-up work in a fresh session — this ship is the self-contained
algorithm + its tests.
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