Skip to content

feat(investigate): reserve case_open binding + cloud parsed-egress ack - #40

Merged
TimothyVang merged 1 commit into
mainfrom
agent/cloud-case-open-binding
Jul 12, 2026
Merged

feat(investigate): reserve case_open binding + cloud parsed-egress ack#40
TimothyVang merged 1 commit into
mainfrom
agent/cloud-case-open-binding

Conversation

@TimothyVang

Copy link
Copy Markdown
Owner

Summary

  • Hash-pin evidence into FINDEVIL_CASE_OPEN_BINDING and pass expected_sha256 in MCP tool hints so findevil-mcp accepts host case_open paths (fixes unreserved-source denial).
  • On cloud routes, after operator cloud-ack, set FINDEVIL_ACKNOWLEDGE_PARSED_EVIDENCE_EGRESS=1 so parsed tool results may return to the model (true cloud seal path).
  • Selftest: +3 assertions (binding, egress ack, expected_sha256 hint).

Test plan

  • npm run build
  • node scripts/selftest.mjs207/0
  • Hosted build-and-verify
  • Optional live: CASEFORGE_CLOUD_ACK=1 caseforge investigate <public.evtx> --privacy cloud-ok --evidence public --route xai-grok-oauth --cloud-ack

Hash-pin evidence into FINDEVIL_CASE_OPEN_BINDING and pass expected_sha256
in tool hints so findevil-mcp accepts host paths. On cloud routes set
FINDEVIL_ACKNOWLEDGE_PARSED_EVIDENCE_EGRESS=1 after the operator cloud-ack
gate so agent tool results can return (true cloud seal path).

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7e3f95b7f3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

stream.on("end", () => resolve())
})
const sha256 = fileHash.digest("hex")
const bindingJson = JSON.stringify({ artifacts: [{ path: canonicalPath, sha256 }] })

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reserve every artifact before multi-file case_open

For directory evidence with more than one supported file, evidenceToolHint still instructs the agent to call case_open on every remaining inventory file, but the new FINDEVIL_CASE_OPEN_BINDING only reserves the first caseOpenPath artifact. Since this change notes that unreserved case_open sources fail, those subsequent opens will be rejected as unreserved, so mixed or multi-EVTX investigations cannot cover all artifacts. Build the binding over every supported inventory path and provide the matching hashes before enabling the reservation.

Useful? React with 👍 / 👎.

@TimothyVang
TimothyVang merged commit 8001f80 into main Jul 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant