Roman Leventov
Roman Leventov
Note how the proposed solution above is not 100% data loss free, but this is probably fine (see non-goal (2) in the top message in this issue). Marimo app instances...
.table can be seen as csv with space delimiter and opened like in the example here: https://docs.python.org/3/library/csv.html#csv.reader. But it's on the one hand so simple that we don't really need...
Does "execution path hashing" mean basically AST hashing of cell's code + all of its dependencies code, without "runtime" content hashing? If these executed path hashes can be computed in...
> Deduplication with previous content: would still work on Marimo app runtime level, since Marimo runtime can record what module_code_hash has corresponded to the cell most recently, and then compare...
FWIW, in the previous comment, I don't question module_code_hash approach (as I see it) altogether, it seems to me now it would definitely work in many use cases. Rather, I...
I now think that entire cache could be stored as a git submodule which itself would be a [bare repo](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbarerepositoryabarerepository), where all actual cached files are stored in the `.git/modules/cache`...
The main advantages of this design are the following: - Most importantly: **if cache is actually stored in Git, my proposal above (with files in `__marimo__/cache`) would grow the history...
If a non-deterministic cell produces two different results that are both persistently cached, these could be stored in separate tags, such as `prefix/module_hash`, `prefix/module_hash-1`, `prefix/module_hash-2`, etc., where the prefix is...
@dmadisetti @mscolnick I'm updating the latest design proposal (described [three comments above](https://github.com/marimo-team/marimo/issues/3176#issuecomment-2557531305); I'll call it the **"Tags proposal"** below due to its reliance on Git tags) to reflect the input...
Discussing the "Implementation" above: On a finer level details may vary, e.g., actually re-surfacing SQLite for the content mapping files (separate for different notebook keys), instead of transaction.log + map.toml...