mirror of
https://github.com/morluto/rea.git
synced 2026-11-11 17:28:08 +00:00
* feat(artifacts): inspect classic iNES container regions
* fix(artifacts): preserve iNES source disappearance as integrity failure
* fix(artifacts): revalidate iNES source before parsing header
* fix(artifacts): validate admitted roots before classification
* fix(artifacts): normalize source loss during root hashing
* fix(artifacts): bind iNES extraction admission to inventory
* test(artifacts): clarify non-executing inspection wording
* fix: preserve binary plist detection with extended magic probe
* test(browser): wait for popup document loads before capture
* fix(artifacts): honor cancellation across source validation
* fix(artifacts): prefer artifact magic over implicit database suffix
* fix(artifacts): select extraction readers from scanned format
* fix(artifacts): complete prefix reads and share ZIP format admission
* fix(browser): budget scenario cleanup for content drain and shutdown
* test(artifacts): admit valid universal inputs before routing
* test(artifacts): verify iNES workflows on macOS
* test(ci): own iNES macOS coverage and portable fixture paths
* fix: preserve cleanup retries and avoid duplicate inventory parsing
* fix(contracts): share ZIP target formats across MCP lifecycle schemas
* fix(target): preserve typed cancellation during descriptor admission
* refactor(artifacts): use JSON-safe inventory producer output directly
* test(artifacts): share file read setup and satisfy CI checks
* fix(artifacts): classify changed admission as integrity failure
* ci: run Mach-O summary delivery coverage on macOS
* test(javascript): align parameter provenance with main contract
* test(browser): await discoverable fixture pages before runtime verification
* fix(artifacts): pass target metadata to format detection
* fix(artifacts): bind extraction to opened target
* fix: repair the static-check failures on the default branch (#2895)
* fix: repair the static-check failures on the default branch
The default branch fails its own required `Static checks` job three ways, so
every pull request reports that job as failed regardless of its own change.
- `npm run format:check` reports `src/domain/functionComparison.test.ts` and
`src/ida/IdaOperationRunner.ts`.
- `npm run lint` reports a duplicate `import { join } from "node:path"` in
`tests/boundary/mcp/ghidraInventoryMcp.test.ts` (lines 4 and 17).
- `npm run typecheck` reports `format: "devin"` missing from the client format
union in `src/application/SupportedClients.ts`, and an unchecked index in
`tests/boundary/cli/clientProfileLifecycle.test.ts`, whose pair array is
inferred as `string[][]`.
Apply the pinned formatter, drop the duplicate import, list the `"devin"` format
that its own definition already uses, and mark the pair array `as const`.
Validation: `npm run check:fast` and `npm run format:check` pass.
* fix(setup): keep Devin on the JSON configuration dialect
---------
Co-authored-by: 吴佳浩 <wujiahao@supremind.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
(cherry picked from commit df3d96da80)
* fix(artifacts): bind session inventories to target identity
* test(browser): bound fixture readiness acknowledgements
---------
Co-authored-by: 64579525 <17373302683@163.com>
Co-authored-by: 吴佳浩Alben <35291372+XiaoBinGan@users.noreply.github.com>
Co-authored-by: 吴佳浩 <wujiahao@supremind.com>
70 lines
1.9 KiB
TypeScript
70 lines
1.9 KiB
TypeScript
import { expect, it } from "vitest";
|
|
import { artifactInventoryResultSchema } from "./artifactGraph.js";
|
|
import { jsonValueSchema } from "./jsonValue.js";
|
|
|
|
const digest = "a".repeat(64);
|
|
const inventory = {
|
|
manifest: {
|
|
manifest_id: `agm_${digest}`,
|
|
root_artifact_id: `art_${digest}`,
|
|
root_sha256: digest,
|
|
root_format: "zip",
|
|
graph_sha256: digest,
|
|
node_count: 1,
|
|
occurrence_count: 1,
|
|
edge_count: 0,
|
|
},
|
|
nodes: [
|
|
{
|
|
artifact_id: `art_${digest}`,
|
|
format: "zip",
|
|
sha256: digest,
|
|
size: 22,
|
|
media_type: null,
|
|
architecture: null,
|
|
content_state: "materialized",
|
|
limitations: [],
|
|
},
|
|
],
|
|
occurrences: [
|
|
{
|
|
occurrence_id: `occ_${digest}`,
|
|
artifact_id: `art_${digest}`,
|
|
parent_occurrence_id: null,
|
|
logical_path: ".",
|
|
entry_kind: "file",
|
|
artifact_kind: "container",
|
|
artifact_format: "zip",
|
|
declared_size: 22,
|
|
compressed_size: null,
|
|
executable: false,
|
|
encrypted: false,
|
|
hash_status: "verified",
|
|
source_location: null,
|
|
limitations: [],
|
|
},
|
|
],
|
|
edges: [],
|
|
provenance: [],
|
|
integrity_contradictions: [],
|
|
limitations: [],
|
|
coverage: { scope: "container-entries", status: "complete" },
|
|
};
|
|
|
|
it("keeps absent container facts absent in JSON-safe inventory output", () => {
|
|
const output = artifactInventoryResultSchema.parse(inventory);
|
|
expect(Object.hasOwn(output, "ines")).toBe(false);
|
|
expect(jsonValueSchema.safeParse(output).success).toBe(true);
|
|
expect(
|
|
artifactInventoryResultSchema.safeParse({ ...inventory, ines: undefined })
|
|
.success,
|
|
).toBe(false);
|
|
});
|
|
|
|
it("keeps historical coverage omission separate from current output requirements", () => {
|
|
const { coverage: _coverage, ...historical } = inventory;
|
|
expect(artifactInventoryResultSchema.safeParse(historical).success).toBe(
|
|
false,
|
|
);
|
|
});
|