Skip to content

feat(debug): add eval-at probes - #11

Merged
pocky merged 1 commit into
mainfrom
feature/F005-debug-eval-at-stateless-evidence-probe
Jun 24, 2026
Merged

feat(debug): add eval-at probes#11
pocky merged 1 commit into
mainfrom
feature/F005-debug-eval-at-stateless-evidence-probe

Conversation

@pocky

@pocky pocky commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add tower_debug_eval_at, a stateless debug probe that launches a configured DAP program, captures breakpoint evidence, and tears down without exposing a persistent session.
  • Extend the debug extension protocol, manifest, registry wiring, and docs so eval-at is advertised only when debug configuration is available.
  • Cover hit, no-hit exit, timeout, DTO validation, manifest stability, and fixture behavior with focused contract and e2e tests.
  • Clean up stale ZPM PR memory mounts from prior completed feature branches and record reusable F005 feedback rules.

Changes

Debug eval-at implementation

  • extensions/debug/src/eval_at.rs: Add eval-at request/response DTOs, orchestration, bounded stack/local/arg capture, expression evaluation, timeout handling, cleanup, and unit coverage.
  • extensions/debug/src/main.rs: Wire eval_at into debug sidecar dispatch and request handling.
  • extensions/debug/src/protocol.rs: Add eval-at protocol support and typed error handling paths.
  • extensions/debug/src/session.rs: Extend debug session behavior needed for one-shot probes, exited outcomes, output capture, and cleanup.
  • extensions/debug/src/tools.rs: Register and dispatch the eval_at tool.
  • extensions/debug/src/types.rs: Add shared debug result types used by eval-at capture and responses.
  • extensions/debug/extension.toml: Advertise the eval_at tool with a strict JSON schema.

Protocol and engine integration

  • crates/core_engine/tests/extension_debug_e2e.rs: Add merged-registry availability tests and fixture-backed e2e coverage for eval-at hit, no-hit exit, timeout, cleanup, and no session_id leakage.
  • crates/extension_protocol/tests/protocol_tests.rs: Update debug manifest expectations from 12 to 13 tools and assert eval_at is present without workspace mutation capabilities.

Debug fixture support

  • extensions/fixtures/debug_adapter/src/main.rs: Extend the fixture adapter with eval-at scenarios, output behavior, delayed continue handling, and no-hit exits.
  • extensions/fixtures/debug_adapter/tests/eval_at_scenario.rs: Add fixture scenario tests for breakpoint hit, normal no-hit exit, and timeout-style behavior.

Documentation

  • README.md: Update the debugging capability summary and docs index to include tower_debug_eval_at.
  • docs/README.md: Add eval-at to the debug and MCP tool documentation index descriptions.
  • docs/mcp-tools.md: Document tower_debug_eval_at arguments, response shape, finish states, timeout behavior, and condition handling.
  • docs/user-guide/debug-sessions.md: Expand the guide from interactive sessions to sessions plus one-shot probes with example calls and responses.

Project memory

  • .zpm/kb/feedback/journal.wal: Record F005 feedback rules for exact cargo test names, DAP timeout modeling, strict eval-at DTOs, and breakpoint ordering.
  • .zpm/mounts.json: Remove stale PR memory mounts for completed F002 and F003 branches.
  • .zpm/kb/pr_feature_f002_standalone_linter_sidecar_extension/journal.wal: Remove stale F002 PR memory segment.
  • .zpm/kb/pr_feature_f002_standalone_linter_sidecar_extension/knowledge.pl: Remove stale F002 PR memory schema.
  • .zpm/kb/pr_feature_f003_lint_fix_apply_machine_applicable_lin/journal.wal: Remove stale F003 PR memory segment.
  • .zpm/kb/pr_feature_f003_lint_fix_apply_machine_applicable_lin/knowledge.pl: Remove stale F003 PR memory schema.

Test plan

  • Run cargo fmt --check
  • Run cargo clippy --workspace --all-targets -- -D warnings
  • Run cargo build --workspace --bins
  • Run cargo test --workspace

Closes #10


Generated with awf commit workflow

- `.zpm/kb/feedback/journal.wal`: Record eval-at implementation feedback rules
- `.zpm/kb/pr_feature_f002_standalone_linter_sidecar_extension/journal.wal`: Remove stale PR memory journal
- `.zpm/kb/pr_feature_f002_standalone_linter_sidecar_extension/knowledge.pl`: Remove stale PR memory schema
- `.zpm/kb/pr_feature_f003_lint_fix_apply_machine_applicable_lin/journal.wal`: Remove stale PR memory journal
- `.zpm/kb/pr_feature_f003_lint_fix_apply_machine_applicable_lin/knowledge.pl`: Remove stale PR memory schema
- `.zpm/mounts.json`: Unmount stale PR memory segments
- `README.md`: Document eval-at debug probes
- `crates/core_engine/tests/extension_debug_e2e.rs`: Add eval-at registry and fixture e2e coverage
- `crates/extension_protocol/tests/protocol_tests.rs`: Assert eval-at manifest protocol stability
- `docs/README.md`: Reference eval-at debug documentation
- `docs/mcp-tools.md`: Document tower_debug_eval_at request and response
- `docs/user-guide/debug-sessions.md`: Add one-shot debug probe workflow
- `extensions/debug/extension.toml`: Expose eval_at tool schema
- `extensions/debug/src/eval_at.rs`: Implement stateless eval-at orchestration
- `extensions/debug/src/main.rs`: Wire eval_at dispatch and request handling
- `extensions/debug/src/protocol.rs`: Add eval-at protocol support
- `extensions/debug/src/session.rs`: Support eval-at session lifecycle behavior
- `extensions/debug/src/tools.rs`: Register eval_at debug tool
- `extensions/debug/src/types.rs`: Extend debug DTOs for eval-at results
- `extensions/debug/tests/eval_at_contract.rs`: Add eval-at contract tests
- `extensions/fixtures/debug_adapter/src/main.rs`: Add eval-at fixture scenarios
- `extensions/fixtures/debug_adapter/tests/eval_at_scenario.rs`: Cover fixture eval-at behavior

Closes #10
@pocky
pocky marked this pull request as ready for review June 24, 2026 14:09
@pocky
pocky merged commit 43e2ac5 into main Jun 24, 2026
2 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.

F005: Debug Eval At Stateless Evidence Probe

1 participant