feat(harness): adapt invocations to graph evidence - #755
Conversation
Review — PR #755 (
|
abae2f8 to
11cd19c
Compare
Review round 2 — PR #755Delta: Resolved from round 1: finding 2 (changeset now states the degraded/retryable behavior 1. Finding 1 fixed only for cold start — edges now freeze at the first settled scan
2. The "retryable" state the changeset now advertises cannot be retried
Verdict: Request changes — a dynamic target still permanently pins the invocation Housekeeping: |
|
/review |
Review round 3 — PR #755Delta since round 2's Resolved: round-2 finding 2 — 1. Not fixed: edges still freeze permanently when incompleteness is not a dynamic target
The refresh escape hatch requires For such a workspace Failure scenario: an agent directory containing one symlink. On The new Fix direction: gate the refresh on transient incompleteness (pending/failed scans) rather Verdict: Request changes — one root cause remains from round 2, narrowed but not closed. Housekeeping: |
|
/review |
Review round 4 — PR #755Delta since round 3's Round-3 finding 1 is fixed as directed: refresh is now gated on a new No new findings. Nothing from rounds 1–3 remains open, and I found nothing the earlier One nit, no action required: the new doc line "a structurally incomplete scan remains Verdict: Approve — the remaining root cause from rounds 2–3 is closed. |
🔍 Advisory review of
|
Primary change type
Problem and motivation
The finalized direct-invocation scanner reports caller-scoped candidates, but
those candidates are not themselves durable package graph evidence: the source
endpoint is implicit, inventory scope and producer freshness are absent, and
scanner cache state is not evidence lifecycle state. SAP-2986 adapts that
bounded scanner into the package graph-evidence protocol introduced by
SAP-2985 without broadening the scanner or changing the System Graph payload.
Summary and scope
stable digest of the bounded source content actually analyzed
explicit
fromAgentKey/toAgentKeyinvokes/static-invocationevidence with typed call modes, producer/version, and opaque callsite refs
caller scans conservatively; pending, failed, missing, or inconsistent scan
sets retain last-good evidence, while every settled bounded scan atomically
refreshes its proven literal subset even when structural limits or dynamic
targets keep topology partial
diagnostics/quarantine plus the existing path-free public warnings
StaticInvocationGraphEdgeDTO from normalized acceptedevidence so browser, mock, and server behavior stays compatible
Intentionally out of scope: TypeScript type checking, output-to-input data-flow
analysis, runtime/log evidence, persistence/replay, and UI redesign.
Related work
Related issue or discussion:
Validation
Tests and documentation
Added focused adapter fixtures for explicit endpoints, direct-only boundaries,
determinism, content freshness, opaque callsites, conservative per-caller
coverage, last-good retention, complete retraction, target resolution,
diagnostics/quarantine, and privacy-safe warning projection. Added an integrated
System Graph lifecycle tests, including cold start and a later source edit
through the production two-phase path, consecutive settled structural-partial
scans, and source-fingerprint tests proving that content—not mtimes or watcher
paths—drives evidence freshness. Updated the System Graph contract documentation
with the adapter and replacement semantics.
Compatibility and release impact
server, mock, and browser payload shapes are unchanged.
limitation remains settled/cacheable and keeps its path-free warning, while
the internal evidence contract records topology coverage as partial.
@sapiom/harness.Security
will follow the
Security Policy for
private reporting.
AI assistance
Codex implemented the bounded adapter from the approved Linear architecture,
added tests and documentation, and performed a full diff self-review. Every
affected test, the complete Harness suite including performance tests, and the
workspace build/typecheck/lint checks listed above were run after the changes.
Checklist
CONTRIBUTING.md, and this contribution follows the direct-PR or issue-first policy.any N/A checks above.