Changelog¶
All notable changes to teststop are documented here.
The format follows Keep a Changelog, and this project adheres to Semantic Versioning.
v0.1.0 — 2025-05-21¶
First public release of teststop.
Added¶
Core Pipeline
teststop run— full adversarial testing pipeline: scan → mandate → generate → memory → report- Static project scanner (
internal/reader/) — detects language, system type, routes, flows, and dependencies across Go, Python, TypeScript, Ruby, Rust, and more - Mandate composer (
internal/mandate/) — injects project context and memory intomandate/base.md - Confidence memory system (
internal/memory/) — per-area scoring with exponential approach formula - Area retirement at ≥ 0.95 confidence AND ≥ 15 test count
- Reporter (
internal/reporter/) — JSON, ANSI text, and Markdown output formats
AI Adapters
- Claude CLI adapter (
internal/ai/claudecli.go) — callsclaude -p "<mandate>"with optional--model - GitHub Copilot CLI adapter (
internal/ai/copilotcli.go) — callscopilot -p "<mandate>" -s --no-ask-user - Auto-detection via
TESTSTOP_CLIenvironment variable
Sandbox Isolation
- Apple Container integration (
internal/sandbox/) — runs AI CLI in isolated VM - Three modes:
auto,required,noneviaTESTSTOP_SANDBOX - Read-only credential mounts (
~/.claude,~/.config/gh) - Runtime image:
ghcr.io/shaifulshabuj/teststop-agent:latest(Ubuntu 24.04 minimal) - Automatic fallback to direct execution when container not available
CLI Commands
teststop run— main test command with--depth,--output,--threshold,--no-color,--quietteststop status— confidence state tableteststop memory— show and reset memoryteststop report— last run reportteststop mandate --show— display composed mandate
The Mandate
mandate/base.md— adversarial user mandate with 10 behavior patterns, 11 chaos conditions, 6 system type adaptations- Embedded in binary via
//go:embed base.md
Scenario Schema
pkg/scenario/types.go— stable JSON contract for AI-generated scenarios- Fields:
scenario_id,title,user_perspective,preconditions,steps,chaos_factors,expected_behavior,failure_modes,priority,confidence_area,is_edge_case
Distribution
- GoReleaser configuration — 4 targets:
darwin/arm64,darwin/amd64,linux/arm64,linux/amd64 - GitHub Actions CI workflow — build, test, vet on push and PR
- GitHub Actions Release workflow — test + GoReleaser on version tags
Exit Codes
0— confidence threshold met1— below threshold (review required)2— critical failures found3— teststop internal error
Roadmap¶
v0.2 (planned)¶
- Scenario executor — actually run generated scenarios against a live system
- Ollama adapter — local model support via
TESTSTOP_CLI=ollama teststop watch— file-watching mode that re-runs on code changes
v1.0 (planned)¶
- Waymark integration — governance hooks for AI agent workflows
- DocuFlow integration — feed project documentation into mandate context
- CI/CD plugins — native GitHub Actions, GitLab CI support
teststop diff— scenario comparison between runs