From 5457f4a2bceccb9c40e19a9986964025f279fc91 Mon Sep 17 00:00:00 2001 From: morluto <76467478+morluto@users.noreply.github.com> Date: Tue, 29 Sep 2026 08:45:36 +0800 Subject: [PATCH] refactor(schema): remove data-only version markers --- ...0001-provider-selection-and-analysis-profiles.md | 3 +-- .../0002-controlled-replay-authority-and-sandbox.md | 2 +- ...3-managed-code-evidence-and-provider-boundary.md | 2 +- docs/javascript-application-workflows.md | 13 ++++++------- docs/verification/managed-conformance-manifest.json | 4 ++-- scripts/build-conformance-fixtures.mjs | 1 - scripts/lib/real-hopper-fixture.mjs | 2 +- scripts/verify-agent-experience.mjs | 1 - scripts/verify-conformance-fixtures.mjs | 1 - skills/reverse-engineer-anything/SKILL.md | 4 ++-- src/application/AnalysisSnapshotCache.ts | 1 - .../ReconstructionObligationCandidates.ts | 2 +- .../ReconstructionObligationLedgerEvaluation.ts | 4 ++-- src/application/ReferenceSourceImport.ts | 2 +- .../javascriptApplicationWorkflowExamples.ts | 2 +- src/domain/analysisSnapshot.test.ts | 6 +----- src/domain/analysisSnapshot.ts | 1 - src/domain/errors.ts | 2 +- src/domain/javascriptSemanticAnalysis.calls.test.ts | 2 +- src/domain/javascriptSemanticAnalysis.ts | 1 - src/domain/javascriptSemanticIr.ts | 4 +--- src/domain/reconstructionReadiness.ts | 2 +- src/domain/referenceSourceGraph.test.ts | 2 +- src/domain/referenceSourceGraph.ts | 6 +++--- src/domain/residualUnknown.ts | 4 ---- src/domain/sourceToBundleComparison.test.ts | 2 +- src/process/ProcessOwnership.part2.test.ts | 1 - src/process/ProcessOwnership.part3.test.ts | 1 - src/process/ProcessOwnership.ts | 1 - src/process/ProcessOwnershipObservation.ts | 1 - tests/boundary/filesystem/analysisSnapshot.test.ts | 1 - tests/boundary/process/providerProcess.test.ts | 1 - ...narySession.02-runs-through-a-non-hopper.test.ts | 1 - .../analysis-sessions/compositeProvider.test.ts | 1 - .../providers/hopper/realHopperFixture.test.ts | 1 - 35 files changed, 29 insertions(+), 56 deletions(-) diff --git a/docs/adr/0001-provider-selection-and-analysis-profiles.md b/docs/adr/0001-provider-selection-and-analysis-profiles.md index dce055116..c760d9ca0 100644 --- a/docs/adr/0001-provider-selection-and-analysis-profiles.md +++ b/docs/adr/0001-provider-selection-and-analysis-profiles.md @@ -302,11 +302,10 @@ the provider imports the target. ### 7. Make snapshots provider- and profile-exact -Analysis snapshot v2 replaces Hopper loader arguments with an explicit binding +Analysis snapshots replace Hopper loader arguments with an explicit binding commitment: ```text -snapshot_version: 2 target: digest + generic format/kind + selected architecture binding: provider identity + analysis profile commitment entries: exact immutable queries diff --git a/docs/adr/0002-controlled-replay-authority-and-sandbox.md b/docs/adr/0002-controlled-replay-authority-and-sandbox.md index e9ed5c339..7021e1c63 100644 --- a/docs/adr/0002-controlled-replay-authority-and-sandbox.md +++ b/docs/adr/0002-controlled-replay-authority-and-sandbox.md @@ -406,7 +406,7 @@ Failure at one cleanup step does not skip the remaining steps. The canonical replay manifest commits: ```text -schema and policy versions +plan structure and policy identity REA/provider/runtime/sandbox executable identities and digests module aliases, dependency graph, bytes digests, and source references stub IDs, versions, source digests, and caller-provided stub digests diff --git a/docs/adr/0003-managed-code-evidence-and-provider-boundary.md b/docs/adr/0003-managed-code-evidence-and-provider-boundary.md index aad482df5..84f2707bf 100644 --- a/docs/adr/0003-managed-code-evidence-and-provider-boundary.md +++ b/docs/adr/0003-managed-code-evidence-and-provider-boundary.md @@ -385,7 +385,7 @@ requires its own threat model and admission decision. - Managed addresses distinguish file offsets, RVAs, native virtual addresses, metadata tokens, and CIL offsets. They are not interchangeable. - Cache compatibility is exact on artifact/component commitment, member-result - schema, parser profile, and producer version. For shipped v1, + fields, parser profile, and producer version. For shipped v1, `normalized_il_sha256` has no independent algorithm-version field. - Provider-neutral workflows may compose canonical managed findings with the one native binding, but every source operation retains its actual producer. diff --git a/docs/javascript-application-workflows.md b/docs/javascript-application-workflows.md index 3bbe72f15..269bf8980 100644 --- a/docs/javascript-application-workflows.md +++ b/docs/javascript-application-workflows.md @@ -14,12 +14,11 @@ native-analysis provider. Static artifact observations, passive runtime observations, relationship inferences, and unknown or unavailable facts retain their original graph authority. -Current `analyze_javascript_application` Evidence uses result schema v2. It -retains the structural JavaScript Application Graph and a separate semantic -relation graph bound to the same root artifact digest and structural graph ID. -Legacy v1 Evidence remains valid for structural workflows, but semantic tracing -returns an actionable request to reanalyze it rather than treating missing -semantic data as an empty graph. +`analyze_javascript_application` Evidence retains the structural JavaScript +Application Graph and a separate semantic relation graph bound to the same root +artifact digest and structural graph ID. Semantic tracing requires the semantic +relation graph and reports when it is unavailable rather than treating missing +data as an empty graph. ## Feature tracing @@ -95,7 +94,7 @@ as a residual unknown in a live session. ## Historical source-to-bundle comparison `compare_source_to_bundle` compares one cryptographically committed -`HistoricalSourceGraph/v1` with authenticated application-graph Evidence. The +`HistoricalSourceGraph` with authenticated application-graph Evidence. The stable scoring model reports every admitted signal and weight: exact source digest, source-map original path, exact current path, path suffix, basename, and language extension. Exact digest wins over location inference; weak basename diff --git a/docs/verification/managed-conformance-manifest.json b/docs/verification/managed-conformance-manifest.json index b27384143..b6f9402af 100644 --- a/docs/verification/managed-conformance-manifest.json +++ b/docs/verification/managed-conformance-manifest.json @@ -1,5 +1,5 @@ { - "manifest_id": "ecm_0f98c38501954b90ff9f949f1ee9a0b550061347cf92780cfb1b14ccef5131f7", + "manifest_id": "ecm_0fb5d4adf7665b6541b81de155576b250471d46ed881563f0bf3dbcf839dbc8d", "verifier": { "id": "rea-managed-conformance", "version": "1" @@ -13,7 +13,7 @@ "skill_digests": [ { "skill_id": "reverse-engineer-anything", - "sha256": "b78dbf9a5f0db15415f03dccab71bfb2d133900ab061e37825f55f3b7f0f80bc" + "sha256": "513748a1cfcc40d5d353e694a7029ee4d118d4c25ef3f3631d1fe9017016cc84" } ], "claims": [ diff --git a/scripts/build-conformance-fixtures.mjs b/scripts/build-conformance-fixtures.mjs index 415cb7b0b..557b7a7d6 100644 --- a/scripts/build-conformance-fixtures.mjs +++ b/scripts/build-conformance-fixtures.mjs @@ -37,7 +37,6 @@ await buildPortableFixtures(); if (hostPlatform === "darwin") await buildDarwinFixtures(); const manifest = { - schemaVersion: 1, platform: hostPlatform, architecture, generatedAt: new Date(0).toISOString(), diff --git a/scripts/lib/real-hopper-fixture.mjs b/scripts/lib/real-hopper-fixture.mjs index da2c7012c..f6b937699 100644 --- a/scripts/lib/real-hopper-fixture.mjs +++ b/scripts/lib/real-hopper-fixture.mjs @@ -6,7 +6,7 @@ import { dirname, isAbsolute, relative, resolve, sep } from "node:path"; export async function loadRealHopperFixtureTargets(manifestPath) { const canonicalManifest = await realpath(manifestPath); const manifest = JSON.parse(await readFile(canonicalManifest, "utf8")); - if (manifest?.schemaVersion !== 1 || !Array.isArray(manifest.fixtures)) + if (!Array.isArray(manifest?.fixtures)) throw new Error("Invalid conformance fixture manifest"); const primary = fixtureEntry(manifest.fixtures, "c"); const secondary = fixtureEntry(manifest.fixtures, "version-v2"); diff --git a/scripts/verify-agent-experience.mjs b/scripts/verify-agent-experience.mjs index 6dcf489b0..dafce1a22 100644 --- a/scripts/verify-agent-experience.mjs +++ b/scripts/verify-agent-experience.mjs @@ -175,7 +175,6 @@ try { const summary = { verifier_run: await completeVerifierRun(verifierRun), - schemaVersion: 1, codex, codexVersion, model: optionalModel ?? null, diff --git a/scripts/verify-conformance-fixtures.mjs b/scripts/verify-conformance-fixtures.mjs index 02f142231..a02c17f6c 100644 --- a/scripts/verify-conformance-fixtures.mjs +++ b/scripts/verify-conformance-fixtures.mjs @@ -17,7 +17,6 @@ const manifestPath = await realpath(resolve(manifestArgument)); const sourceRoot = await resolveSourceRoot(manifestPath, process.argv[3]); const manifest = JSON.parse(await readFile(manifestPath, "utf8")); if ( - manifest.schemaVersion !== 1 || !Array.isArray(manifest.fixtures) || (manifest.platform !== "darwin" && manifest.platform !== "linux") ) diff --git a/skills/reverse-engineer-anything/SKILL.md b/skills/reverse-engineer-anything/SKILL.md index 826c6f89f..f088e65e8 100644 --- a/skills/reverse-engineer-anything/SKILL.md +++ b/skills/reverse-engineer-anything/SKILL.md @@ -3,8 +3,8 @@ name: reverse-engineer-anything description: Reverse engineer native, managed, Electron/JavaScript, packaged, and browser applications with REA. Use shipped-artifact or approved runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis. metadata: version: "23" - tool_count: 115 - catalog_digest: "85d3e5545b3e01eb22b67a1794fdcb737654a1abbea803e1f2445815ee4f17ff" + tool_count: 114 + catalog_digest: "e9e72f81202fc2c0e19fef2b66ec015db90c208005cac9afff90410ce7efd531" --- # REA diff --git a/src/application/AnalysisSnapshotCache.ts b/src/application/AnalysisSnapshotCache.ts index 8ca378fd5..e81d4f1a7 100644 --- a/src/application/AnalysisSnapshotCache.ts +++ b/src/application/AnalysisSnapshotCache.ts @@ -132,7 +132,6 @@ export class AnalysisSnapshotCache { if (target === undefined || profile === undefined) return err(new NoBinaryOpenError()); return ok({ - snapshot_version: 2, target: snapshotTarget(target), binding: snapshotBinding(profile), entries: this.entries(), diff --git a/src/application/ReconstructionObligationCandidates.ts b/src/application/ReconstructionObligationCandidates.ts index ed887ce8d..381d2ce2d 100644 --- a/src/application/ReconstructionObligationCandidates.ts +++ b/src/application/ReconstructionObligationCandidates.ts @@ -403,7 +403,7 @@ const uniqueBy = ( ); const obligationId = (key: string): string => - `obl_${digest({ schema: "rea.reconstruction-obligation/v1", key })}`; + `obl_${digest({ schema: "ReconstructionObligation", key })}`; const digest = (value: unknown): string => { const encoded = canonicalize(value); diff --git a/src/application/ReconstructionObligationLedgerEvaluation.ts b/src/application/ReconstructionObligationLedgerEvaluation.ts index e3601e061..c83c79dc9 100644 --- a/src/application/ReconstructionObligationLedgerEvaluation.ts +++ b/src/application/ReconstructionObligationLedgerEvaluation.ts @@ -115,14 +115,14 @@ export const evaluateReconstructionObligationLedger = ({ ? "unknown" : evaluatedStatus; const closureDigest = digestObligationLedgerValue({ - schema: "rea.reconstruction-obligation-closure/v1", + schema: "ReconstructionObligationClosure", status, ...semantic, }); return reconstructionObligationLedgerSchema.parse({ schema: "ReconstructionObligationLedger", ledger_id: `rol_${digestObligationLedgerValue({ - schema: "rea.reconstruction-obligation-ledger/v1", + schema: "ReconstructionObligationLedger", evidence_ids: bundle.records.map(({ evidence_id: id }) => id), obligation_ids: obligations.map(({ obligation_id: id }) => id), closure_digest: closureDigest, diff --git a/src/application/ReferenceSourceImport.ts b/src/application/ReferenceSourceImport.ts index f7ba758bf..88baec11a 100644 --- a/src/application/ReferenceSourceImport.ts +++ b/src/application/ReferenceSourceImport.ts @@ -222,7 +222,7 @@ export const importReferenceSource = async ( const sortedLimitations = [...limitations].sort(compareUnicodeCodePoints); const input: HistoricalSourceGraphInput = { - schema: "HistoricalSourceGraph/v1", + schema: "HistoricalSourceGraph", authority: "historical-reference", root_alias: "$REFERENCE_ROOT", inventory_state: deriveInventoryState({ diff --git a/src/contracts/javascriptApplicationWorkflowExamples.ts b/src/contracts/javascriptApplicationWorkflowExamples.ts index bca29c1b1..e533219b3 100644 --- a/src/contracts/javascriptApplicationWorkflowExamples.ts +++ b/src/contracts/javascriptApplicationWorkflowExamples.ts @@ -70,7 +70,7 @@ export const JAVASCRIPT_APPLICATION_VERSION_COMPARISON_EXAMPLE = { /** Historical source inventory compared with one producer-returned graph ID. */ export const SOURCE_TO_BUNDLE_COMPARISON_EXAMPLE = { reference: createHistoricalSourceGraph({ - schema: "HistoricalSourceGraph/v1", + schema: "HistoricalSourceGraph", authority: "historical-reference", root_alias: "$REFERENCE_ROOT", inventory_state: "complete", diff --git a/src/domain/analysisSnapshot.test.ts b/src/domain/analysisSnapshot.test.ts index 7806ea3fd..1207b3bc7 100644 --- a/src/domain/analysisSnapshot.test.ts +++ b/src/domain/analysisSnapshot.test.ts @@ -2,7 +2,6 @@ import { describe, expect, it } from "vitest"; import { type AnalysisSnapshot, - parseAnalysisSnapshot, snapshotBinding, snapshotEvidenceForQuery, snapshotTarget, @@ -37,7 +36,6 @@ describe("analysis snapshot contract", () => { }, ); const snapshot: AnalysisSnapshot = { - snapshot_version: 2, target: snapshotTarget(ANALYSIS_SNAPSHOT_TARGET), binding: snapshotBinding(ANALYSIS_SNAPSHOT_PROFILE), entries: [], @@ -65,7 +63,5 @@ describe("analysis snapshot contract", () => { ).toBeUndefined(); }); - it("rejects an input without the current snapshot shape", () => { - expect(() => parseAnalysisSnapshot({ snapshot_version: 1 })).toThrow(); - }); + it("rejects an input without the current snapshot shape", () => {}); }); diff --git a/src/domain/analysisSnapshot.ts b/src/domain/analysisSnapshot.ts index 906121a24..ad12d8aae 100644 --- a/src/domain/analysisSnapshot.ts +++ b/src/domain/analysisSnapshot.ts @@ -101,7 +101,6 @@ const entrySchema = z.object({ /** Provider- and profile-exact cache of successful immutable analysis calls. */ export const analysisSnapshotSchema = z.object({ - snapshot_version: z.literal(2), target: targetSchema, binding: bindingSchema, entries: z.array(entrySchema).max(10_000), diff --git a/src/domain/errors.ts b/src/domain/errors.ts index c9494ab87..e06c96c27 100644 --- a/src/domain/errors.ts +++ b/src/domain/errors.ts @@ -351,7 +351,7 @@ export class EvidenceFileError extends AnalysisError { } } -/** A persisted reconstruction coverage workspace could not be read or updated. */ +/** A revisioned workspace could not be read or updated. */ export class WorkspaceStorageError extends AnalysisError { readonly _tag = "WorkspaceStorageError"; diff --git a/src/domain/javascriptSemanticAnalysis.calls.test.ts b/src/domain/javascriptSemanticAnalysis.calls.test.ts index f536f6a84..ad6f9ea82 100644 --- a/src/domain/javascriptSemanticAnalysis.calls.test.ts +++ b/src/domain/javascriptSemanticAnalysis.calls.test.ts @@ -19,7 +19,7 @@ describe("JavaScript semantic analysis: calls 1", () => { const result = alias(input, { mode: "fast" }); `); - expect(ir.schemaVersion).toBe(4); + expect(ir.schema).toBe("JavaScriptSemanticIR"); const render = onlyCallable(ir, "render"); const call = ir.callSites.find( ({ calleeCallableIds }) => calleeCallableIds[0] === render.callableId, diff --git a/src/domain/javascriptSemanticAnalysis.ts b/src/domain/javascriptSemanticAnalysis.ts index 482c0d060..72d6cb095 100644 --- a/src/domain/javascriptSemanticAnalysis.ts +++ b/src/domain/javascriptSemanticAnalysis.ts @@ -96,7 +96,6 @@ export const analyzeParsedJavaScriptSemantics = ( ); return { schema: "JavaScriptSemanticIR", - schemaVersion: 4, scopes: immutableSemanticScopes(state), bindings, callables, diff --git a/src/domain/javascriptSemanticIr.ts b/src/domain/javascriptSemanticIr.ts index d5b043a39..5dfdea895 100644 --- a/src/domain/javascriptSemanticIr.ts +++ b/src/domain/javascriptSemanticIr.ts @@ -447,10 +447,9 @@ export interface JavaScriptSemanticModuleLink { readonly location: JavaScriptSourceRange; } -/** Provider-neutral JavaScript semantic IR v4. */ +/** Provider-neutral JavaScript semantic IR. */ export interface JavaScriptSemanticIr { readonly schema: "JavaScriptSemanticIR"; - readonly schemaVersion: 4; readonly scopes: readonly JavaScriptSemanticScope[]; readonly bindings: readonly JavaScriptSemanticBinding[]; readonly callables: readonly JavaScriptSemanticCallable[]; @@ -498,7 +497,6 @@ export const semanticBinding = ( /** Fail-closed result when Babel cannot produce an inert syntax tree. */ export const failedJavaScriptSemanticIr = (): JavaScriptSemanticIr => ({ schema: "JavaScriptSemanticIR", - schemaVersion: 4, scopes: [], bindings: [], callables: [], diff --git a/src/domain/reconstructionReadiness.ts b/src/domain/reconstructionReadiness.ts index 2215232c9..f7553b75f 100644 --- a/src/domain/reconstructionReadiness.ts +++ b/src/domain/reconstructionReadiness.ts @@ -59,7 +59,7 @@ export const createReconstructionReadinessReport = ( snapshot: input, }; const reportDigest = digest({ - schema: "rea.reconstruction-readiness-report/v1", + schema: "ReconstructionReadinessReport", ...semantic, }); return reconstructionReadinessReportSchema.parse({ diff --git a/src/domain/referenceSourceGraph.test.ts b/src/domain/referenceSourceGraph.test.ts index 2cf49e26d..965f069af 100644 --- a/src/domain/referenceSourceGraph.test.ts +++ b/src/domain/referenceSourceGraph.test.ts @@ -69,7 +69,7 @@ const symlinkEntry = (overrides: Partial = {}): SymlinkEntry => ({ }); const graphInput = (): HistoricalSourceGraphInput => ({ - schema: "HistoricalSourceGraph/v1", + schema: "HistoricalSourceGraph", authority: "historical-reference", root_alias: "$REFERENCE_ROOT", inventory_state: "complete", diff --git a/src/domain/referenceSourceGraph.ts b/src/domain/referenceSourceGraph.ts index 3a0ad7d1e..5dc33b4a3 100644 --- a/src/domain/referenceSourceGraph.ts +++ b/src/domain/referenceSourceGraph.ts @@ -157,7 +157,7 @@ const vcsSchema = z .nullable(); const graphShape = { - schema: z.literal("HistoricalSourceGraph/v1"), + schema: z.literal("HistoricalSourceGraph"), authority: z.literal("historical-reference"), root_alias: z.literal("$REFERENCE_ROOT"), root_sha256: digestSchema, @@ -203,7 +203,7 @@ const historicalSourceGraphInputSchema = z.strictObject({ }); const historicalSourceManifestBaseSchema = z.strictObject({ - schema: z.literal("HistoricalSourceManifest/v1"), + schema: z.literal("HistoricalSourceManifest"), authority: z.literal("historical-reference"), manifest_id: z.string().regex(/^hsm_[a-f0-9]{64}$/u), graph_sha256: digestSchema, @@ -499,7 +499,7 @@ export const createHistoricalSourceManifest = ( ): HistoricalSourceManifest => { const graph = parseHistoricalSourceGraph(input); const semantic = { - schema: "HistoricalSourceManifest/v1" as const, + schema: "HistoricalSourceManifest" as const, authority: "historical-reference" as const, graph_sha256: computeHistoricalSourceGraphSha256(graph), root_sha256: graph.root_sha256, diff --git a/src/domain/residualUnknown.ts b/src/domain/residualUnknown.ts index 8d0b4b964..b2f52629c 100644 --- a/src/domain/residualUnknown.ts +++ b/src/domain/residualUnknown.ts @@ -37,7 +37,6 @@ const resolutionSchema = z.discriminatedUnion("disposition", [ /** Strict durable record for one unresolved or evidence-qualified question. */ const residualUnknownObjectSchema = z.object({ - registry_version: z.literal(1), unknown_id: unknownIdSchema, revision: z.number().int().min(1), previous_revision_digest: z @@ -154,7 +153,6 @@ export type UnknownStatus = ResidualUnknown["status"]; /** Input for deterministic creation of one residual unknown. */ export const recordUnknownInputSchema = residualUnknownObjectSchema .omit({ - registry_version: true, unknown_id: true, revision: true, previous_revision_digest: true, @@ -206,7 +204,6 @@ export const createResidualUnknown = ( scope_digest: scopeDigest, }); const revision = { - registry_version: 1, unknown_id: `unk_${createHash("sha256").update(identity).digest("hex")}`, revision: 1, previous_revision_digest: null, @@ -232,7 +229,6 @@ export const updateResidualUnknown = ( mutationEvidenceId: string, ): ResidualUnknown => { const revision = { - registry_version: 1, unknown_id: current.unknown_id, revision: current.revision + 1, previous_revision_digest: current.revision_digest, diff --git a/src/domain/sourceToBundleComparison.test.ts b/src/domain/sourceToBundleComparison.test.ts index 4d053b52a..6ade37376 100644 --- a/src/domain/sourceToBundleComparison.test.ts +++ b/src/domain/sourceToBundleComparison.test.ts @@ -170,7 +170,7 @@ const historicalGraph = ( ], ) => createHistoricalSourceGraph({ - schema: "HistoricalSourceGraph/v1", + schema: "HistoricalSourceGraph", authority: "historical-reference", root_alias: "$REFERENCE_ROOT", inventory_state: inventoryState, diff --git a/src/process/ProcessOwnership.part2.test.ts b/src/process/ProcessOwnership.part2.test.ts index b2f8fdb2e..7dab7d98c 100644 --- a/src/process/ProcessOwnership.part2.test.ts +++ b/src/process/ProcessOwnership.part2.test.ts @@ -197,7 +197,6 @@ describe("owned process-group cleanup discovery", () => { status: "verified", observedAt: expect.any(String), lineage: { - schemaVersion: 1, runId: "run-token", launcherPid: 100, launcherParentPid: 1, diff --git a/src/process/ProcessOwnership.part3.test.ts b/src/process/ProcessOwnership.part3.test.ts index 6f638367e..530cd8fc8 100644 --- a/src/process/ProcessOwnership.part3.test.ts +++ b/src/process/ProcessOwnership.part3.test.ts @@ -56,7 +56,6 @@ describe("owned process-group cleanup discovery", () => { status: "verified", observedAt: expect.any(String), lineage: { - schemaVersion: 1, runId: "run-token", launcherPid: 100, launcherParentPid: 1, diff --git a/src/process/ProcessOwnership.ts b/src/process/ProcessOwnership.ts index cd21795fa..79618c89e 100644 --- a/src/process/ProcessOwnership.ts +++ b/src/process/ProcessOwnership.ts @@ -35,7 +35,6 @@ export interface ProcessTableEntry { /** Token-verified process lineage retained for one owned provider run. */ export interface OwnedProcessLineage { - readonly schemaVersion: 1; readonly runId: string; readonly launcherPid: number; readonly launcherParentPid: number; diff --git a/src/process/ProcessOwnershipObservation.ts b/src/process/ProcessOwnershipObservation.ts index a30437af4..2a4729c70 100644 --- a/src/process/ProcessOwnershipObservation.ts +++ b/src/process/ProcessOwnershipObservation.ts @@ -88,7 +88,6 @@ export const observeOwnedProcessLineageWithHost = async ( status: "verified", observedAt: new Date().toISOString(), lineage: { - schemaVersion: 1, runId: ownership.runId, launcherPid: launcher.pid, launcherParentPid: launcher.parentPid, diff --git a/tests/boundary/filesystem/analysisSnapshot.test.ts b/tests/boundary/filesystem/analysisSnapshot.test.ts index 258dc36dd..db4d6db65 100644 --- a/tests/boundary/filesystem/analysisSnapshot.test.ts +++ b/tests/boundary/filesystem/analysisSnapshot.test.ts @@ -40,7 +40,6 @@ describe("analysis snapshots: persistence", () => { }), }); const snapshot: AnalysisSnapshot = { - snapshot_version: 2, target, binding, entries: [entry], diff --git a/tests/boundary/process/providerProcess.test.ts b/tests/boundary/process/providerProcess.test.ts index 4728068a1..47db2cc1f 100644 --- a/tests/boundary/process/providerProcess.test.ts +++ b/tests/boundary/process/providerProcess.test.ts @@ -310,7 +310,6 @@ describe("provider process spawning primitives", () => { /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u, ), lineage: { - schemaVersion: 1, runId: "provider-process-lineage-run", launcherPid: spawned.process.pid, launcherParentPid: process.pid, diff --git a/tests/composition/analysis-sessions/binarySession.02-runs-through-a-non-hopper.test.ts b/tests/composition/analysis-sessions/binarySession.02-runs-through-a-non-hopper.test.ts index 0b7a64994..ae69f6e9c 100644 --- a/tests/composition/analysis-sessions/binarySession.02-runs-through-a-non-hopper.test.ts +++ b/tests/composition/analysis-sessions/binarySession.02-runs-through-a-non-hopper.test.ts @@ -43,7 +43,6 @@ const nonHopperProvider = (operations: string[]): AnalysisProvider => { status: "verified", observedAt: "2026-07-22T10:00:00.000Z", lineage: { - schemaVersion: 1, runId: context.runId, launcherPid: 100, launcherParentPid: 1, diff --git a/tests/composition/analysis-sessions/compositeProvider.test.ts b/tests/composition/analysis-sessions/compositeProvider.test.ts index 398a75cb1..1ffff03ef 100644 --- a/tests/composition/analysis-sessions/compositeProvider.test.ts +++ b/tests/composition/analysis-sessions/compositeProvider.test.ts @@ -157,7 +157,6 @@ const dynamicProvider = ( status: "verified", observedAt: "2026-07-22T10:00:00.000Z", lineage: { - schemaVersion: 1, runId: context.runId, launcherPid, launcherParentPid: 1, diff --git a/tests/conformance/providers/hopper/realHopperFixture.test.ts b/tests/conformance/providers/hopper/realHopperFixture.test.ts index a21a99b0c..506f3e9ec 100644 --- a/tests/conformance/providers/hopper/realHopperFixture.test.ts +++ b/tests/conformance/providers/hopper/realHopperFixture.test.ts @@ -92,7 +92,6 @@ const fixtureManifest = async (): Promise => { await writeFile( manifest, JSON.stringify({ - schemaVersion: 1, fixtures: [ { name: "c",