From 5eefa2119c25e7cea49300736438364956b7905b Mon Sep 17 00:00:00 2001 From: Sinatras Date: Fri, 1 May 2026 00:35:39 +0300 Subject: [PATCH 1/2] docs(readme): document API and MCP modules in current layout --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4f7f29a..425c9d3 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,10 @@ The core module is `kernelguard.py`, which can: - `kernelguard.py` Main detector and audit tool. +- `kernelguard_api.py` + HTTP API for the competition (kernels, validation suites, red/blue submissions). +- `kernelguard_mcp.py` + MCP server exposing `analyze_code` to MCP clients. ## Install From f22c21afca832eb9313320c3c40510a4d86deed5 Mon Sep 17 00:00:00 2001 From: Sinatras Date: Fri, 1 May 2026 00:36:58 +0300 Subject: [PATCH 2/2] docs(detector): expand LAST_CALL_REPLAY docstring to list covered shapes --- kernelguard.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernelguard.py b/kernelguard.py index f086847..47ad886 100644 --- a/kernelguard.py +++ b/kernelguard.py @@ -2161,7 +2161,11 @@ def _is_data_ptr_call(expr: ast.AST | None) -> bool: def detect_last_call_replay(code: str | SubmissionFacts) -> list[dict]: - """Pattern: saved-output replay when prior call signature matches current state.""" + """Pattern: saved-output replay when prior call signature matches current state. + + Covers identity-keyed (``data is _LAST``), pointer/version-signature + (``data.data_ptr() == _LAST_PTR``), and tuple-of-input replay shapes. + """ facts = ensure_submission_facts(code) tree = facts.ast_tree if tree is None: