MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / refresh_one_reconciled

Function refresh_one_reconciled

src/dashboard/code_diagnostics_api.rs:116–212  ·  view source on GitHub ↗
(
    state: &DashboardState,
    language: &str,
)

Source from the content-addressed store, hash-verified

114}
115
116async fn refresh_one_reconciled(
117 state: &DashboardState,
118 language: &str,
119) -> std::result::Result<(), JsonError> {
120 let snapshot = state.code_diagnostics.read().await.snapshot();
121 if !snapshot.settings.language_enabled(language) {
122 state
123 .code_diagnostics
124 .write()
125 .await
126 .set_language_enabled(language, false);
127 return Ok(());
128 }
129 let Some(adapter) = state.code_diagnostics.read().await.adapter_for(language) else {
130 return Err(bad_request(&format!(
131 "no code diagnostics adapter registered for language '{language}'"
132 )));
133 };
134 let files = indexed_files(&state.graph_conn)
135 .await
136 .map_err(|err| internal_error(&err))?;
137 let documents = documents_for_adapter(&state.project_root, &adapter, files)
138 .await
139 .map_err(|err| internal_error(&err))?;
140 let document_count = documents.len();
141 state
142 .code_diagnostics
143 .write()
144 .await
145 .record_backfill_progress(language, document_count, document_count, 0, None);
146 if documents.is_empty() {
147 state
148 .code_diagnostics
149 .write()
150 .await
151 .record_backfill_progress(
152 language,
153 0,
154 0,
155 0,
156 Some(crate::tracedecay::current_timestamp()),
157 );
158 return Ok(());
159 }
160 let prepared = state
161 .code_diagnostics
162 .write()
163 .await
164 .prepare_refresh(language, documents);
165 let mut progress_recorded_in_task = false;
166 let refresh_ok = match prepared {
167 Ok(Some(prepared)) => {
168 progress_recorded_in_task = true;
169 let state_for_refresh = state.clone();
170 let language_for_refresh = language.to_string();
171 let (tx, rx) = tokio::sync::oneshot::channel();
172 tokio::spawn(async move {
173 let completed = prepared.collect_diagnostics(Duration::from_secs(5)).await;

Callers 2

refresh_allFunction · 0.85
refresh_oneFunction · 0.85

Calls 15

indexed_filesFunction · 0.85
documents_for_adapterFunction · 0.85
current_timestampFunction · 0.85
files_with_diagnosticsFunction · 0.85
language_enabledMethod · 0.80
adapter_forMethod · 0.80
prepare_refreshMethod · 0.80
collect_diagnosticsMethod · 0.80
is_okMethod · 0.80
finish_refreshMethod · 0.80
sendMethod · 0.80

Tested by

no test coverage detected