<feed xmlns='http://www.w3.org/2005/Atom'>
<title>opencut/apps/web/src/core/managers/project-manager.ts, branch rust-rewrite</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/opencut/atom/apps/web/src/core/managers/project-manager.ts?h=rust-rewrite</id>
<link rel='self' href='http://git.cashmere.rs/opencut/atom/apps/web/src/core/managers/project-manager.ts?h=rust-rewrite'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/'/>
<updated>2026-07-26T23:21:20Z</updated>
<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>refactor: restructure files to their domains,  new preview overlay system, and dep graph</title>
<updated>2026-04-20T09:31:17Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-20T09:31:17Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=3e89d2998588f8e35c524e523ba2ee853f0f6475'/>
<id>urn:sha1:3e89d2998588f8e35c524e523ba2ee853f0f6475</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>chore: remove debugging throughout codebase</title>
<updated>2026-04-14T23:00:05Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-14T23:00:05Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=1fa5442f211fb06548bc51ea3192b5e0b4ffe614'/>
<id>urn:sha1:1fa5442f211fb06548bc51ea3192b5e0b4ffe614</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: move constants to domain modules</title>
<updated>2026-04-14T16:17:14Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-14T16:17:14Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=6de6c7fd95de1de9d8d3107eaf7ce1dd150ed094'/>
<id>urn:sha1:6de6c7fd95de1de9d8d3107eaf7ce1dd150ed094</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: structured track layout per scene</title>
<updated>2026-04-07T02:41:27Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-07T02:41:27Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=cbd1b8212370c67b34a70dccd21bd82de72fead2'/>
<id>urn:sha1:cbd1b8212370c67b34a70dccd21bd82de72fead2</id>
<content type='text'>
</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>
<entry>
<title>refactor: split constants by domain and isolate timeline panel from core</title>
<updated>2026-04-01T17:27:49Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-04-01T17:27:49Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=bd9ec023eefc4b5d26fa8b66c4338e97104f0f96'/>
<id>urn:sha1:bd9ec023eefc4b5d26fa8b66c4338e97104f0f96</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: normalize line endings</title>
<updated>2026-03-29T13:56:48Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-26T23:55:15Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=4d127a038bf768eded68aae3cfa5c1b12241bdac'/>
<id>urn:sha1:4d127a038bf768eded68aae3cfa5c1b12241bdac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: masks, properties refactor, shaders, storage migrations, and more</title>
<updated>2026-03-29T13:48:22Z</updated>
<author>
<name>Maze Winther</name>
<email>mazewinther@gmail.com</email>
</author>
<published>2026-03-25T15:47:22Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/opencut/commit/?id=8db3bead13441a5882d8689dfc6a9f09c82375d9'/>
<id>urn:sha1:8db3bead13441a5882d8689dfc6a9f09c82375d9</id>
<content type='text'>
</content>
</entry>
</feed>
