Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
2bbf15b
mason: reproduce unbounded callgraph view rematerialization
ualtinok Nov 2, 2026
2651152
mason: bound checkout callgraph acquisition to three seconds
ualtinok Nov 2, 2026
8ba95e5
mason: retain checkpoint busy diagnostic regression coverage
ualtinok Nov 2, 2026
4d9d400
mason: reproduce acquisition publication after root quiesce
ualtinok Nov 2, 2026
d5ef6fa
mason: correct lifecycle fixture executor context
ualtinok Nov 2, 2026
fbbea60
mason: make graph acquisition root-owned and cancellable
ualtinok Nov 2, 2026
5d305aa
mason: clarify standalone worker drain ownership
ualtinok Nov 2, 2026
7ccb492
mason: keep native graph reads independent of build permits
ualtinok Nov 2, 2026
ac37180
mason: clarify graph-read lane selection
ualtinok Nov 2, 2026
90bcea9
mason: reproduce acquisition teardown and accounting edge cases
ualtinok Nov 2, 2026
a12a06a
mason: scope acquisition accounting and close teardown races
ualtinok Nov 2, 2026
36ba891
mason: integrate policy timeout views tests after rebase
ualtinok Nov 2, 2026
84b7fa9
Call-graph read bound: release note and search descriptor (non_ranking)
ualtinok Nov 2, 2026
359345b
Call-graph lifecycle test: drop the executor by assignment (list-cut …
ualtinok Nov 2, 2026
7a4f030
mason: await callgraph fixture acquisition independently of read bounds
ualtinok Nov 2, 2026
a819749
mason: complete readiness audit for context and request fixtures
ualtinok Nov 2, 2026
484b4fe
mason: clarify verified worktree fixture reader comment
ualtinok Nov 2, 2026
0e446cf
mason: classify planned graph loads by typed state
ualtinok Nov 3, 2026
0d5e666
mason: preserve fixture attribute policy in acquisition workers
ualtinok Nov 3, 2026
5607b0c
mason: clarify fixture scope handoff comment
ualtinok Nov 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .alfonso/release-notes/next/callgraph-read-bound.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
With views on, a call-graph read no longer waits for the whole call graph to rebuild after files change; it answers "building" within a few seconds, and the next read uses the new graph.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"fixtures": [
"harness-goldens"
],
"kind": "harness",
"slice_class": "non_ranking",
"targeted_mechanism": "none"
}
8 changes: 8 additions & 0 deletions crates/aft/src/callgraph_store/join.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ const TOP_LEVEL_SYMBOL: &str = "<top-level>";
/// An error raised while decoding or assembling manifest-addressed callgraph data.
#[derive(Clone, Debug, Eq, PartialEq)]
pub enum ManifestJoinError {
Cancelled,
UnsupportedLanguage(String),
Parse(String),
InvalidBlob(String),
Expand All @@ -61,6 +62,7 @@ pub enum ManifestJoinError {
impl fmt::Display for ManifestJoinError {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Cancelled => formatter.write_str(crate::views::first_load::SUPERSEDED_PUBLISH),
Self::UnsupportedLanguage(language) => {
write!(formatter, "unsupported callgraph blob language {language}")
}
Expand Down Expand Up @@ -2352,6 +2354,9 @@ fn join_manifest_with_surfaces(
#[cfg(test)]
let mut heap_parts = [0isize; 5];
for (path, entry) in manifest.entries() {
if crate::executor::current_job_cancelled() {
return Err(ManifestJoinError::Cancelled);
}
let ManifestEntry::Regular { planes, .. } = entry else {
continue;
};
Expand Down Expand Up @@ -2557,6 +2562,9 @@ fn join_manifest_with_surfaces(
.collect();
let mut resolved_bindings = 0;
for caller in &resolved_callers {
if crate::executor::current_job_cancelled() {
return Err(ManifestJoinError::Cancelled);
}
let path = RelPath::new(caller.as_bytes().to_vec()).expect("bound manifest path");
let Some(ManifestEntry::Regular { planes, .. }) = manifest.get(&path) else {
continue;
Expand Down
Loading
Loading