fix(javascript): preserve analysis applicability after interruption (#4207)

Preserve applicable artifact processing phases and entered/unvisited status after interruption. Centralize JavaScript semantic applicability for full and incremental builders; retain native byte identity, actual JavaScript unknowns and structured-file provenance.

Fixes #3948. Part of #4027.

Validation:78 distinct focused cases across10files, full static/docs, and real Joplin timeout/default public CLI/MCP controls passed. Source pins, every attempt/outlier and compact resource/token projections are retained. No target/native provider execution or speedup claim.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
This commit is contained in:
Ysopwnable
2026-10-16 03:46:00 +08:00
committed by GitHub
parent 663d07f02c
commit 85eac7b92b
18 changed files with 3717 additions and 93 deletions
@@ -1,5 +1,6 @@
import type { ApplicationGraphEvidence } from "../../domain/javascript/javascriptApplicationEvidenceSchemas.js";
import type { JavaScriptSourceRange } from "../../domain/javascript/javascriptStaticAnalysisTypes.js";
import type { JavaScriptArtifactAnalysisScope } from "./JavaScriptArtifactAnalysisTypes.js";
const EXTRACTOR = {
name: "rea-javascript-artifact-reconstruction",
@@ -93,11 +94,14 @@ export const staticInferenceEvidence = (
evidence_ids: [],
});
/** Unavailable AST fact that preserves a parse, approval, or limit gap. */
export const unavailableAstEvidence = (
input: EvidenceInput & { readonly limitation: string },
/** Unavailable static fact with the authority of its applicable processing phase. */
export const unavailableStaticEvidence = (
input: EvidenceInput & {
readonly authority: JavaScriptArtifactAnalysisScope["authority"];
readonly limitation: string;
},
): ApplicationGraphEvidence => ({
authority: "ast-static-analysis",
authority: input.authority,
state: "unavailable",
confidence: "unknown",
artifact: artifactReference(input.sha256),