<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/bun.lock, branch main</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/bun.lock?h=main</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/bun.lock?h=main'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-07-30T16:37:39Z</updated>
<entry>
<title>fix(release): pin electron version for electron-builder</title>
<updated>2026-07-30T16:37:39Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-30T16:37:39Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=94b58d5c168806f6d147e9354e594bcc90e68318'/>
<id>urn:sha1:94b58d5c168806f6d147e9354e594bcc90e68318</id>
<content type='text'>
electron-builder refuses range specifiers in CI where it cannot
traverse installed node_modules.
</content>
</entry>
<entry>
<title>fix(ci): drop stray root next dependency</title>
<updated>2026-07-30T16:27:41Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-30T16:27:41Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=03adfed13f43e3f9a9bd09a36b0698bf49423947'/>
<id>urn:sha1:03adfed13f43e3f9a9bd09a36b0698bf49423947</id>
<content type='text'>
Root package.json carried next ^16.1.3 alongside apps/web's pinned
16.1.3; fresh installs resolved two next copies whose NextConfig types
are incompatible, failing withContentCollections(nextConfig) in CI.
Nothing at root imports next.
</content>
</entry>
<entry>
<title>feat: Electron desktop app, native ffmpeg export, fully static web</title>
<updated>2026-07-30T16:18:15Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-30T16:17:45Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=ed02ba872c02eafed45f406c68d389d0a1112a4e'/>
<id>urn:sha1:ed02ba872c02eafed45f406c68d389d0a1112a4e</id>
<content type='text'>
- apps/desktop: Electron shell serving the static web build over a
  privileged opencut:// protocol; exports stream frames over IPC to a
  bundled ffmpeg (libx264/libvpx-vp9, BT.709 tagged) with backpressure.
  electron-builder packaging: AppImage, deb, rpm.
- apps/web: dead backend deleted (better-auth, drizzle/pg, upstash,
  botid, freesound proxy, blog, rss, env validation); next build emits
  a zero-env static export; /editor/[project_id] -&gt; /editor?project=.
- Native exporter mirrors SceneExporter; activates when the preload
  bridge is present; web keeps the mediabunny path.
- Docker self-hosting now builds and serves the static export via nginx.
- Release workflow: v* tags publish static web tarball + Linux packages.
- Changelog 0.4.0; README/AGENTS/CONTRIBUTING/roadmap updated.
- GPUI/Rust rewrite parked on branch rust-rewrite.
</content>
</entry>
<entry>
<title>feat: single-file project import/export (.ocp)</title>
<updated>2026-07-26T23:21:20Z</updated>
<author>
<name>cashmere</name>
<email>cashmere@autistici.org</email>
</author>
<published>2026-07-26T23:21:20Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=30a36e45686db503fded68e4da5d4c465a06f978'/>
<id>urn:sha1:30a36e45686db503fded68e4da5d4c465a06f978</id>
<content type='text'>
fflate zip container: project.json (serialized project incl. schema
version) + media files with a manifest. Export gathers all project
media (missing blobs warn, never abort) after save-flush; import
validates everything before any write, migrates older archives through
the storage migration registry, remaps media ids, and creates a new
project with rollback on failure. Entry points: projects page
import/export, editor header menu, export-project-archive action.
29 tests incl. full round-trip.
</content>
</entry>
<entry>
<title>chore: switch from biome to eslint + prettier; fix ton of lint issues</title>
<updated>2026-05-02T01:27:23Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-28T22:37:56Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=a9b9cf6bf50f08723896659634f2e6afc17bcd42'/>
<id>urn:sha1:a9b9cf6bf50f08723896659634f2e6afc17bcd42</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: split animation helpers by domain</title>
<updated>2026-04-26T18:44:07Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T18:44:07Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6b1f38a9a31a0eedaa7abea70f232960469351d5'/>
<id>urn:sha1:6b1f38a9a31a0eedaa7abea70f232960469351d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: thinner hooks</title>
<updated>2026-04-26T15:31:28Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-26T15:31:28Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=56ca09692a308b22455420d11376ff8d41244c47'/>
<id>urn:sha1:56ca09692a308b22455420d11376ff8d41244c47</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: WebGL frame rendering and opencut-wasm 0.2.8</title>
<updated>2026-04-19T05:42:52Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-19T05:42:52Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=729d10592f4e802f91c555c309ff3ba4b119f843'/>
<id>urn:sha1:729d10592f4e802f91c555c309ff3ba4b119f843</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: text measurement, rotation handle, video cache races, playback sync</title>
<updated>2026-04-13T03:08:29Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-13T02:41:33Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=7d4e166678c35d48b22b8d1d05639f981a956a8b'/>
<id>urn:sha1:7d4e166678c35d48b22b8d1d05639f981a956a8b</id>
<content type='text'>
Made-with: Cursor
</content>
</entry>
<entry>
<title>refactor: split effects and masks into dedicated rust crates, introduce MediaTime and FrameRate</title>
<updated>2026-04-06T23:09:13Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-06T23:09:13Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=e4b67094e757917588fb624a30aa046667403add'/>
<id>urn:sha1:e4b67094e757917588fb624a30aa046667403add</id>
<content type='text'>
</content>
</entry>
</feed>
