(feat): cache external (plugin-generated) file content in the defs cache#10164
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
1334cde to
9cb7a3d
Compare
PR SummaryMedium Risk Overview On save, caching external
Lowering artifact writing prepends the external table; cache tests cover Reviewed by Cursor Bugbot for commit 76e3afe. Bugbot is set up for automated code reviews on this repo. Configure here. |
9cb7a3d to
329a5a8
Compare
f0a8344 to
0f2cd03
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 329a5a8. Configure here.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 329a5a8. Configure here.
329a5a8 to
3f5bf0b
Compare
orizi
left a comment
There was a problem hiding this comment.
@orizi partially reviewed 4 files and made 1 comment.
Reviewable status: 4 of 5 files reviewed, 2 unresolved discussions (waiting on eytan-starkware and TomerStarkware).
crates/cairo-lang-lowering/src/cache/test.rs line 90 at r3 (raw file):
/// strings stand in for parent `FileId`s, which are interned per-db and thus not comparable. #[derive(Clone, Debug, PartialEq)] struct ExternalFileSnapshot {
re-valitate.
0f2cd03 to
caad4bd
Compare
3f5bf0b to
c9b0603
Compare
orizi
left a comment
There was a problem hiding this comment.
@orizi reviewed 5 files and all commit messages, made 1 comment, and resolved 1 discussion.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on TomerStarkware).
c9b0603 to
3ce0717
Compare
Serialize each external file's VirtualFile content into the crate cache blob as its own (first) section, keyed by a portable, parse-free identity (ExternalFileKey), and serve it from ext_as_virtual before falling back to module_sub_files. A loaded crate cache can then materialize plugin-generated files without re-running plugins. The lookup depends only on the blob (no module-data edge), so it never re-enters cache loading.
3ce0717 to
76e3afe
Compare
Merge activity
|
orizi
left a comment
There was a problem hiding this comment.
@orizi reviewed 1 file and all commit messages.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on TomerStarkware).


Serialize each external file's VirtualFile content into the crate cache blob, keyed by a
portable, parse-free identity (ExternalFileContentKey), and serve it from ext_as_virtual
before falling back to module_sub_files. A loaded crate cache can then materialize
plugin-generated files without re-running plugins. The lookup depends only on the blob
(no module-data edge), so it never re-enters cache loading.