Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8d0cdf8
fix(lsp): retain admitted diagnostic snapshots for pull
ScriptedAlchemy Oct 24, 2026
f0af96c
fix(lsp): show empty outbound messages on assertion failure
ScriptedAlchemy Oct 24, 2026
a833f1a
fix(source-edit): insert moved imports at Rust syntax boundaries
ScriptedAlchemy Oct 24, 2026
1ac94df
chore: stack #4516 on #4510
ScriptedAlchemy Oct 25, 2026
873772c
chore: stack #4524 on #4516
ScriptedAlchemy Oct 25, 2026
3ae4723
chore: reconnect stacked PR ancestors
ScriptedAlchemy Oct 25, 2026
66d3041
fix(lsp): revalidate retained diagnostic authority
ScriptedAlchemy Oct 25, 2026
b877167
Merge commit '3e10b5fbb0a5d49b59c7fbe7216e43c6f10b0a2d' into HEAD
ScriptedAlchemy Oct 25, 2026
29e43f6
Merge commit 'b577e304d1423b3b776d3bc053ee85226fe46fe9' into HEAD
ScriptedAlchemy Oct 25, 2026
a6b4a63
Merge parent publication cancellation correction
ScriptedAlchemy Oct 25, 2026
15d72a7
Merge branch 'master' into fix/lsp-retained-diagnostic-snapshots
ScriptedAlchemy Oct 25, 2026
5572f7b
test(lsp): reproduce retained diagnostic lifecycle failures
ScriptedAlchemy Oct 25, 2026
648bf93
fix(lsp): settle retained diagnostic validations without retries
ScriptedAlchemy Oct 25, 2026
bd238e1
fix(lsp): bind diagnostic evidence to committed publications
ScriptedAlchemy Oct 25, 2026
07c0cd6
test(lsp): align diagnostic expectations with wire output
ScriptedAlchemy Oct 25, 2026
b01d712
fix(ci): bound Windows compiler concurrency
ScriptedAlchemy Oct 25, 2026
ea14f8b
Merge branch 'master' into fix/lsp-retained-diagnostic-snapshots
ScriptedAlchemy Oct 25, 2026
77b5705
test(ci): synchronize seal crashes and retained stop retries
ScriptedAlchemy Oct 26, 2026
8d98ae1
ci(cli): classify the full refresh memory workload as large
ScriptedAlchemy Oct 26, 2026
be51c96
Merge remote-tracking branch 'origin/master' into HEAD
ScriptedAlchemy Oct 26, 2026
13b3cd0
test(daemon): observe crash cleanup on its maintenance cadence
ScriptedAlchemy Oct 26, 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
17 changes: 16 additions & 1 deletion crates/tracedecay-application/src/lsp_runtime/feedback_source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use tracedecay_domain::feedback::{
FeedbackContentIdentityV1, FeedbackDiagnosticProducerV1, FeedbackFindingLifecycleV1,
FeedbackFindingV1,
};
use tracedecay_domain::{ContentDigest, UtcMicros};
use tracedecay_domain::{ContentDigest, ManifestDigest, UtcMicros};
use tracedecay_lsp::{
AdmittedRoot, CanonicalContextProjectionAuthority, CanonicalDiagnosticRefreshRequest,
ContextCoverage, ContextExpansionEnvelope, ContextExpansionOutcome, ContextExpansionRequest,
Expand Down Expand Up @@ -505,6 +505,21 @@ impl FeedbackCycleRuntimePort for ConcreteFeedbackLspSource {
}

impl ManagedDiagnosticSnapshotPort for ConcreteFeedbackLspSource {
fn current_authority(
&self,
request: CanonicalDiagnosticRefreshRequest,
) -> LspRuntimeFuture<Result<ManifestDigest, LspRuntimeFailure>> {
let source = self.clone();
Box::pin(async move {
let scope = source
.scope
.resolve(request.root.clone(), Some(request.document_uri.clone()))
.await?;
crate::lsp_support::validate_managed_diagnostic_scope(&request, &scope)?;
crate::lsp_support::managed_diagnostic_authority_digest(&scope)
})
}

fn snapshot(
&self,
request: CanonicalDiagnosticRefreshRequest,
Expand Down
31 changes: 29 additions & 2 deletions crates/tracedecay-application/src/lsp_support/factory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ use tracedecay_lsp::{
ContextProjectionChange, ContextProjectionOutcome, ContextProjectionPort,
ContextProjectionRegistration, ContextProjectionRequest, DaemonLspProviderBundle,
DaemonLspRuntimeSession, DiagnosticRefreshAdmission, DiagnosticSnapshotAdapter,
DiagnosticSnapshotOutcome, DiagnosticSnapshotPort, FeedbackCycleAdapter, FeedbackCyclePort,
FeedbackCycleRequest, FeedbackCycleResponse, FeedbackCycleRuntimePort, GatewayCapabilities,
DiagnosticSnapshotOutcome, DiagnosticSnapshotPort, DiagnosticSnapshotValidation,
FeedbackCycleAdapter, FeedbackCyclePort, FeedbackCycleRequest, FeedbackCycleResponse,
FeedbackCycleRuntimePort, GatewayCapabilities, GenerationDiagnostics,
LspAnalyzerCancellationAuthority, LspRequestId, LspRuntimeFailure, LspRuntimeFuture,
LspSemanticDocumentSnapshot, NativeIntegrationStatusPort, OverlaySnapshot,
SemanticProviderOutcome, SemanticProviderPort, SemanticRequest, SemanticResponse,
Expand Down Expand Up @@ -486,6 +487,32 @@ impl DiagnosticSnapshotPort for FederatedDiagnostics {
)
}

fn validate_document_snapshot(
&self,
root: &AdmittedRoot,
document_uri: &str,
overlay: Option<&OverlaySnapshot>,
snapshot: &GenerationDiagnostics,
) -> DiagnosticSnapshotValidation {
self.roots.get(root.uri()).map_or(
DiagnosticSnapshotValidation::Failed {
failure_class: "root-not-authorized".to_owned(),
},
|port| port.validate_document_snapshot(root, document_uri, overlay, snapshot),
)
}

fn retire_document_refresh(
&self,
root: &AdmittedRoot,
document_uri: &str,
operation_id: &str,
) -> bool {
self.roots
.get(root.uri())
.is_some_and(|port| port.retire_document_refresh(root, document_uri, operation_id))
}

fn supports_workspace_diagnostics(&self) -> bool {
!self.roots.is_empty()
&& self
Expand Down
Loading
Loading