Skip to content

v0.6.3: gap list for analysts, inventory exports close gaps - #14

Merged
k3mpaxl merged 2 commits into
mainfrom
claude/inspiring-sagan-y7zy4q
Nov 3, 2026
Merged

k3mpaxl merged 2 commits into
mainfrom
claude/inspiring-sagan-y7zy4q

Conversation

@k3mpaxl

@k3mpaxl k3mpaxl commented Oct 30, 2026

Copy link
Copy Markdown
Owner

What's missing, for analysts

  • Attack impact → What's missing shows the same list agents get from get_gaps.
  • Each gap shows:
    • its priority, the question and why it matters
    • the entities it is about (click one to show it in the graph)
    • the table, the platform it runs on (Defender XDR or Sentinel) and the mapping that imports the export
    • Copy and Show query for the KQL
  • Nothing found closes a gap for everyone, agents included. It writes the same factgraph:gap/<id> answer source as submit_gap_rows.
  • An Answered summary lists answered gaps and inventory exports.
  • Once something is marked compromised, the open hunts stay under Hunt next and are not listed twice.

Dropped inventory exports close their gaps

  • Before this change, a dropped IdentityInfo, DeviceInfo or OAuthAppInfo export that only added IDs the board already had left no trace. Its who/what gap stayed open.
  • The import now writes one factgraph:inventory/… source per export, listing the board entities the export described. boardGaps counts those entities as answered for that table's gap.
  • An export that describes nothing on the board records nothing. Importing the same export again records nothing new.

Tests

  • Python: the inventory record, no repeat on re-import, nothing recorded when nothing is described.
  • web/tests/gaps.cjs: records close identity and app gaps per entity and are not reported as answers.
  • New e2e test: the gap list appears, a dropped IdentityInfo export closes the identity gap, and Nothing found closes the app gap, also over REST.
  • Run locally: ruff, unittest (77), Prettier, npm test, bench, and the full Playwright suite (33 tests), all green.

Version 0.6.3.


Generated by Claude Code

- Attack impact shows "What's missing": every gap with its subjects, Copy
  for the KQL and "Nothing found", which writes the same answer source as
  submit_gap_rows, so agents see the gap closed too.
- An inventory import (DeviceInfo, IdentityInfo, OAuthAppInfo) records the
  entities it described in a factgraph:inventory/ source. Their who/what
  gaps close, also when the export only added IDs the board already had.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkeMnAg6DWQ8xZucm51CzK
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XkeMnAg6DWQ8xZucm51CzK
@k3mpaxl
k3mpaxl merged commit d666332 into main Nov 3, 2026
4 checks 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.

2 participants