22 Commits
Author SHA1 Message Date
Violin 4fc6e0c22b fix(guard): coverage-gate error teaches remediation per cell status
Run 20260813_101504 burned ~15 min and 19 close attempts on the
undispositioned-coverage gate: the error listed failures without naming
the fix, so the agent flailed (even reading guard source) and wrote
invalid reasons ('evidence: none else'). The error now spells out the
exact remediation per cell status (tested/not_applicable/blocked/missing).
2026-08-13 12:31:41 +01:00
Violin 625ca927c0 chore(guard): rename receipt key env var to drop benchmark reference
VIOLIN_BENCHMARK_RECEIPT_KEY -> VIOLIN_RECEIPT_KEY. The all-caps
'BENCHMARK' slipped past the original case-sensitive de-cheat grep in
plugins/violin_guard. No consumers hardcode the literal; all use the
RECEIPT_KEY_ENV constant.
2026-08-13 10:40:39 +01:00
Violin 723e349291 fix(guard): scope online-research gate to the exploited hypothesis
- check_command now accepts hypothesis_id (schema + handler + args)
- Exploit-phase research gate checks only the named hypothesis when
  provided; otherwise all candidates (previous behavior)
- Error message names the remediation tool: violin_record_hypothesis
  id=H-00N cve_research=... exploit_research=...
- Fixes silent bypass: normalized id comparison (002 vs 2) so an
  unresearched hypothesis is actually blocked
- New test: named-hypothesis passes, unresearched H-002 blocked,
  all-candidates mode still enforces full rows
2026-08-12 18:52:42 +01:00
Violin 46bad5c1a8 refactor(guard): de-benchmark production code; route-level coverage obligations
- Remove challenge_ids seeding (vulnerability-name leak) from scope;
  seed engagement.coverage_obligations (client-style in-scope endpoints)
  + generic engagement.audit_mode flag instead
- plugins/violin_guard now contains zero benchmark/run-id references;
  gates are framework-owned and audit-mode-gated
- Cross-engagement guard blocks ANY foreign engagement dir, not just
  benchmark-run-*
- Anti-cheat regression test asserts no vuln names in generated scope
2026-08-12 07:09:51 +01:00
Violin 61e3ed8b61 fix(guard): coverage completeness — every scored challenge needs an evidence-backed matrix cell 2026-08-11 20:20:07 +01:00
Violin 132e6f7c9a fix(guard): require Validated hypotheses to link canonical FIND files at VULN_RESEARCH close 2026-08-11 18:24:32 +01:00
Violin 9a40ec645c fix(guard): block rejections that never ran their cheapest discriminating test 2026-08-11 17:57:02 +01:00
Violin 6b2bc26af3 fix(benchmark): seed engage brief, close phase-skip loophole, evidence-backed coverage 2026-08-11 17:09:35 +01:00
Violin 119e0c1600 feat(guard): friction auto-logs at block time + record-as-you-go contract
Agent was deferring framework feedback and state writes to closeout, then
reconstructing what happened from conversation memory after compression —
the exact mechanism that fabricates false positives.

- Guard now self-logs: _check_command_internal appends a Guard Block/Review
  row to state/framework_feedback.md at the moment check_command rejects a
  command (only when the file exists, i.e. benchmark engagements; no-op
  otherwise). Friction is captured with zero agent bookkeeping.
- SKILL.md Operational Contract: 'Record as you go' — after EVERY
  violin_review_batch, immediately update hypothesis board + coverage matrix
  + PTT in the same turn; never batch state writes to closeout, never
  reconstruct tests from memory. State files are the only source of truth.
- 5 new tests: block-row append, no-op without file/errors, dedupe, pipe
  escaping.

243 tests pass, ruff clean.
2026-08-11 13:41:51 +01:00
Violin 48a4f214d6 feat(guard): add receipt integrity verifier, fail-closed state parsers, and guard runtime tests 2026-08-10 08:54:56 +01:00
Violin d7e139c486 feat: implement violin_guard plugin with secure execution adapters, terminal policies, and pentest skill frameworks 2026-08-08 13:29:11 +01:00
Violin 5e21f2257f fix(benchmark,guard): enhance benchmark profiling, guard UX, and findings integration 2026-08-08 13:29:11 +01:00
Violin 9ed494d439 feat: introduce benchmark runner with Docker support and automated vulnerability calibration evidence 2026-08-08 13:29:11 +01:00
DanandGitHub 7607bcb181 Make burst admission atomic (#61)
Closes #11
2026-08-01 22:20:47 +01:00
DanandGitHub 09d8e842e3 Stabilize v3.0.0 workflow contracts (#58)
Closes #54
2026-08-01 21:56:15 +01:00
Violin 7ee714a6ce fix(guard): resolve file path resolution and bootstrap issues 2026-07-26 16:03:02 +01:00
Violin 19af0fcc52 feat: implement guard plugin PTT workflow automation and batch execution handlers with associated regression coverage 2026-07-26 11:06:27 +01:00
Violin fb27692e41 refactor(guard): decompose handle_status into status blockers, phase metadata, and skill summary helpers 2026-07-25 14:25:12 +01:00
Violin 3d93298150 refactor(guard): decompose handle_review_batch into skill reservation and core execution helpers 2026-07-25 14:24:24 +01:00
Violin 502b8673cd refactor(guard): decompose handle_record_ptt into focused helper functions 2026-07-25 14:23:35 +01:00
Violin 75de650f5e refactor(guard): decompose _validate_review_batch into focused sub-validators 2026-07-25 14:22:55 +01:00
Violin b274364118 feat: implement violin_guard plugin for secure pentest execution, target policy enforcement, and workflow orchestration 2026-07-25 14:13:38 +01:00