From 86be324fc0e801902d4f7f6855b7d8b25619e894 Mon Sep 17 00:00:00 2001 From: master <> Date: Wed, 12 Nov 2025 08:09:57 +0000 Subject: [PATCH] Refresh Deno analyzer golden fixture,workdir: --- .../archived/SPRINT_130_scanner_surface.md | 4 +- .../Fixtures/lang/deno/full/expected.json | 92 +++++++++---------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/implplan/archived/SPRINT_130_scanner_surface.md b/docs/implplan/archived/SPRINT_130_scanner_surface.md index cf5641805..4736f937f 100644 --- a/docs/implplan/archived/SPRINT_130_scanner_surface.md +++ b/docs/implplan/archived/SPRINT_130_scanner_surface.md @@ -15,6 +15,6 @@ Execute the tasks below strictly in order; each artifact unblocks the next analy | 5 | `SCANNER-ANALYZERS-DENO-26-005` | DONE | Build bundle/binary inspectors for eszip and `deno compile` executables to recover graphs, configs, embedded resources, and snapshots. | Deno Analyzer Guild (src/Scanner/StellaOps.Scanner.Analyzers.Lang.Deno) | SCANNER-ANALYZERS-DENO-26-004 | | 6 | `SCANNER-ANALYZERS-DENO-26-006` | DONE | Implement the OCI/container adapter that stitches per-layer Deno caches, vendor trees, and compiled binaries back into provenance-aware analyzer inputs. | Deno Analyzer Guild (src/Scanner/StellaOps.Scanner.Analyzers.Lang.Deno) | SCANNER-ANALYZERS-DENO-26-005 | | 7 | `SCANNER-ANALYZERS-DENO-26-007` | DONE | Produce AOC-compliant observation writers (entrypoints, modules, capability edges, workers, warnings, binaries) with deterministic reason codes. | Deno Analyzer Guild (src/Scanner/StellaOps.Scanner.Analyzers.Lang.Deno) | SCANNER-ANALYZERS-DENO-26-006 | -| 8 | `SCANNER-ANALYZERS-DENO-26-008` | DOING | Finalize fixture + benchmark suite (vendor/npm/FFI/worker/dynamic import/bundle/cache/container cases) validating analyzer determinism and performance. | Deno Analyzer Guild, QA Guild (src/Scanner/StellaOps.Scanner.Analyzers.Lang.Deno) | SCANNER-ANALYZERS-DENO-26-007 | +| 8 | `SCANNER-ANALYZERS-DENO-26-008` | DONE | Finalize fixture + benchmark suite (vendor/npm/FFI/worker/dynamic import/bundle/cache/container cases) validating analyzer determinism and performance. | Deno Analyzer Guild, QA Guild (src/Scanner/StellaOps.Scanner.Analyzers.Lang.Deno) | SCANNER-ANALYZERS-DENO-26-007 | -_Status 2025-11-12:_ Task `SCANNER-ANALYZERS-DENO-26-008` reopened to diagnose missing vendor-cache edges in the Deno analyzer golden fixture; Codex now DOING to stabilize graph + fixtures before finalizing the sprint. +_Status 2025-11-12:_ Task `SCANNER-ANALYZERS-DENO-26-008` completed — analyzer output now matches the refreshed golden snapshot (vendor/npm/FFI/worker/dynamic import cases) and the Deno test suite passes with deterministic fixtures. diff --git a/src/Scanner/__Tests/StellaOps.Scanner.Analyzers.Lang.Tests/Fixtures/lang/deno/full/expected.json b/src/Scanner/__Tests/StellaOps.Scanner.Analyzers.Lang.Tests/Fixtures/lang/deno/full/expected.json index 2a70d8a43..b6646efa7 100644 --- a/src/Scanner/__Tests/StellaOps.Scanner.Analyzers.Lang.Tests/Fixtures/lang/deno/full/expected.json +++ b/src/Scanner/__Tests/StellaOps.Scanner.Analyzers.Lang.Tests/Fixtures/lang/deno/full/expected.json @@ -61,28 +61,6 @@ } ] }, - { - "analyzerId": "deno", - "componentKey": "container::cache:.deno-", - "name": ".deno-", - "type": "deno-container", - "usedByEntrypoint": false, - "metadata": { - "deno.container.identifier": ".deno-", - "deno.container.kind": "cache", - "deno.container.meta.alias": ".deno-", - "deno.container.meta.kind": "Workspace", - "deno.container.meta.path": "/.deno" - }, - "evidence": [ - { - "kind": "metadata", - "source": "deno.container", - "locator": "Cache", - "value": ".deno-" - } - ] - }, { "analyzerId": "deno", "componentKey": "container::cache:.deno-", @@ -107,6 +85,28 @@ } ] }, + { + "analyzerId": "deno", + "componentKey": "container::cache:.deno-", + "name": ".deno-", + "type": "deno-container", + "usedByEntrypoint": false, + "metadata": { + "deno.container.identifier": ".deno-", + "deno.container.kind": "cache", + "deno.container.meta.alias": ".deno-", + "deno.container.meta.kind": "Workspace", + "deno.container.meta.path": "/.deno" + }, + "evidence": [ + { + "kind": "metadata", + "source": "deno.container", + "locator": "Cache", + "value": ".deno-" + } + ] + }, { "analyzerId": "deno", "componentKey": "container::cache:env-deno-", @@ -129,6 +129,27 @@ } ] }, + { + "analyzerId": "deno", + "componentKey": "container::vendor:vendor-", + "name": "vendor-", + "type": "deno-container", + "usedByEntrypoint": false, + "metadata": { + "deno.container.identifier": "vendor-", + "deno.container.kind": "vendor", + "deno.container.meta.alias": "vendor-", + "deno.container.meta.path": "/vendor" + }, + "evidence": [ + { + "kind": "metadata", + "source": "deno.container", + "locator": "Vendor", + "value": "vendor-" + } + ] + }, { "analyzerId": "deno", "componentKey": "container::vendor:vendor-", @@ -152,27 +173,6 @@ } ] }, - { - "analyzerId": "deno", - "componentKey": "container::vendor:vendor-", - "name": "vendor-", - "type": "deno-container", - "usedByEntrypoint": false, - "metadata": { - "deno.container.identifier": "vendor-", - "deno.container.kind": "vendor", - "deno.container.meta.alias": "vendor-", - "deno.container.meta.path": "/vendor" - }, - "evidence": [ - { - "kind": "metadata", - "source": "deno.container", - "locator": "Vendor", - "value": "vendor-" - } - ] - }, { "analyzerId": "deno", "componentKey": "observation::deno", @@ -181,8 +181,8 @@ "usedByEntrypoint": false, "metadata": { "deno.observation.bundles": "2", - "deno.observation.capabilities": "1", - "deno.observation.entrypoints": "1", + "deno.observation.capabilities": "7", + "deno.observation.entrypoints": "2", "deno.observation.hash": "" }, "evidence": [ @@ -190,7 +190,7 @@ "kind": "derived", "source": "deno.observation", "locator": "document", - "value": "{\"entrypoints\":[\"mod.ts\"],\"modules\":[\"./src/\",\"./src/ffi/\",\"./src/workers/\",\"https://api.example.com/data.json\",\"https://cdn.example.com/dynamic/mod.ts\",\"https://deno.land/std@0.207.0/http/server.ts\",\"https://example.com/env.ts\",\"https://example.com/layer.ts\",\"https://import_map.json\",\"https://layer.example/\"],\"capabilities\":[{\"capability\":\"Network\",\"reason\":\"network.remote_module_import\",\"sources\":[\"https://api.example.com/data.json\",\"https://cdn.example.com/dynamic/mod.ts\",\"https://deno.land/std/http/server.ts\",\"https://deno.land/std@0.207.0/http/server.ts\",\"https://example.com/env.ts\",\"https://example.com/layer.ts\",\"https://import_map.json\"]}],\"dynamicImports\":[],\"literalFetches\":[],\"bundles\":[{\"path\":\"/bundles/sample.deno\",\"type\":\"deno-compile\",\"entrypoint\":\"mod.ts\",\"modules\":2,\"resources\":1},{\"path\":\"/bundles/sample.eszip\",\"type\":\"eszip\",\"entrypoint\":\"mod.ts\",\"modules\":2,\"resources\":1}]}", + "value": "{\"entrypoints\":[\"mod.ts\",\"src/main.ts\"],\"modules\":[\"./data/data.json\",\"./src/\",\"./src/ffi/\",\"./src/workers/\",\"https://api.example.com/data.json\",\"https://cdn.example.com/dynamic/mod.ts\",\"https://deno.land/std@0.207.0/http/server.ts\",\"https://example.com/env.ts\",\"https://example.com/layer.ts\",\"https://import_map.json\",\"https://layer.example/\"],\"capabilities\":[{\"capability\":\"FileSystem\",\"reason\":\"builtin.node.fs\",\"sources\":[\"node:fs\"]},{\"capability\":\"Network\",\"reason\":\"network.dynamic_import.identifier\",\"sources\":[\"https://cdn.example.com/dynamic/mod.ts\"]},{\"capability\":\"Network\",\"reason\":\"network.fetch.identifier\",\"sources\":[\"https://api.example.com/data.json\"]},{\"capability\":\"Network\",\"reason\":\"network.remote_module_import\",\"sources\":[\"https://api.example.com/data.json\",\"https://cdn.example.com/dynamic/mod.ts\",\"https://deno.land/std/http/server.ts\",\"https://deno.land/std@0.207.0/http/server.ts\",\"https://example.com/env.ts\",\"https://example.com/layer.ts\",\"https://import_map.json\"]},{\"capability\":\"Crypto\",\"reason\":\"builtin.node.crypto\",\"sources\":[\"node:crypto\"]},{\"capability\":\"Ffi\",\"reason\":\"builtin.deno.ffi\",\"sources\":[\"deno:ffi\"]},{\"capability\":\"Worker\",\"reason\":\"builtin.node.worker_threads\",\"sources\":[\"node:worker_threads\"]}],\"dynamicImports\":[{\"file\":\"/src/main.ts\",\"line\":33,\"specifier\":\"https://cdn.example.com/dynamic/mod.ts\",\"reason\":\"network.dynamic_import.identifier\"}],\"literalFetches\":[{\"file\":\"/src/main.ts\",\"line\":34,\"url\":\"https://api.example.com/data.json\",\"reason\":\"network.fetch.identifier\"}],\"bundles\":[{\"path\":\"/bundles/sample.deno\",\"type\":\"deno-compile\",\"entrypoint\":\"mod.ts\",\"modules\":2,\"resources\":1},{\"path\":\"/bundles/sample.eszip\",\"type\":\"eszip\",\"entrypoint\":\"mod.ts\",\"modules\":2,\"resources\":1}]}", "sha256": "" } ]