Repository navigation
Releases: Ivan825/Stampede
Releases · Ivan825/Stampede
Release list
v1.2.0
Changelog
Features
- 2c6731b feat(action): add a composite GitHub Action and exercise it in CI
- 61a947d feat(agent): add stampede agent for fault injection
- 671d0b2 feat(ai): add pluggable LLM providers for Anthropic, OpenAI, Gemini, Ollama and compatible servers
- ea96e8e feat(ai): build a dependency map and traffic mix from OpenAPI, HAR and access logs
- b77cf9e feat(ai): dry-run executor that traces each journey once with one user
- ac2d529 feat(ai): generate grpc journeys from .proto files and dry-run gRPC steps
- 4c8c3e7 feat(ai): generate journeys from a GraphQL schema
- 3719fc6 feat(ai): generate journeys from a headless browser crawl
- a6e38b8 feat(ai): generation pipeline with draft, static check, dry run and repair
- 9965721 feat(ai): redact secrets and personal data, and guard against third-party hosts
- b202d58 feat(ai): static check against the spec, YAML rendering and diffs
- dcc0548 feat(ai): write report narratives whose claims cite the figures
- 5d9e460 feat(api): add AI journey generation endpoints under a new ai tag
- 35b2531 feat(api): add schedule endpoints with cron preview
- 5f89647 feat(api): define the public REST API in OpenAPI and generate server stubs
- b9a3f90 feat(api): include organisation and project caps in the effective limits
- 0d08c1e feat(api): live worker health, packs, scenario coverage and drift, server settings
- a27367e feat(auth): add argon2id passwords, hashed tokens, roles and login throttling
- cb6da70 feat(bench): add accuracy benchmark against calibrated ground truth
- 20a05f8 feat(bench): add calibrated echo server with exact ground-truth percentiles
- e809f70 feat(bench): compare Stampede, k6 and wrk2 against the echo server's ground truth
- 747c834 feat(bench): measure one process's sustainable request rate
- 0b98f3b feat(brand): switch to the block-art bull in teal
- 2789f45 feat(breakpoint): confirmation holds bisect the gap after the first failing step
- 514e5db feat(cli): --ha active, and workers that connect to several servers or dns:host:port
- a08ba52 feat(cli): --pdf, --csv and --timeline-csv on stampede run and stampede report
- c1805bb feat(cli): --region on stampede start and run --cluster
- e60a957 feat(cli): accept workers on a gRPC port from stampede server
- 659cefa feat(cli): add Go module, stampede binary skeleton and Makefile
- 130a870 feat(cli): add compare and report commands and run --repeat
- 7c39d2d feat(cli): add login, start, push, runs, stop, kill, workers, up, down and doctor
- 8ddc2c4 feat(cli): add run, validate and target verify commands
- 0c1b7f4 feat(cli): add server --worker-mtls and worker --mtls --ca-fingerprint
- 286b13f feat(cli): add server and keygen commands
- 9e4ab75 feat(cli): add stampede coverage and stampede drift
- d0f8313 feat(cli): add stampede generate for AI journey generation
- 2039746 feat(cli): add stampede init and pack list, install and test
- ee12fbe feat(cli): add stampede plugin list, show, install and remove
- 34fa94d feat(cli): add stampede schedules list, create, enable, disable, delete and run
- 3fdd59b feat(cli): add stampede worker command
- a83bb31 feat(cli): chart target metrics and link traces from the observe block in stampede run
- 70a778d feat(cli): drift schedules, --spec-url and --region on stampede schedules create
- eb5f98f feat(cli): init and pack test ask for a pack's other variables
- e9ec79a feat(cli): plugins column in stampede workers
- 3e84577 feat(cli): retry the database on start and add a container healthcheck command
- 62c08aa feat(cli): run scenarios without a base URL against private hosts
- e69be19 feat(cli): stampede ai providers and ai jobs (create, show --wait, approve), and stampede narrative
- a1f4067 feat(cli): stampede audit (--limit, --since, --before, --action) and stampede settings sso and limits
- b64fc7e feat(cli): stampede backup and restore wrap pg_dump and pg_restore
- f4a6d14 feat(cli): stampede drift results, show and repair for scheduled checks; coverage and drift check server scenarios with --scenario
- 53e0393 feat(cli): stampede gen as an alias of stampede generate
- ff61bc9 feat(cli): stampede integrations and stampede notify (channels list, create, delete and test; deliveries)
- f1523ed feat(cli): stampede pack create scaffolds a new pack folder
- 8ad581a feat(cli): stampede plugin create scaffolds a plugin module with a conformance test
- 7b6d3c1 feat(cli): stampede projects (with settings, roles and a default project) and stampede caps
- c5b38dd feat(cli): stampede report and compare take server run ids as well as files
- 87c8d69 feat(cli): stampede run --cluster runs a scenario on the server's workers
- 5d5b3ba feat(cli): stampede runs follow and stampede version --server
- 9b1f56d feat(cli): stampede runs list, show, events, timeline and workers; --json on runs and workers
- 258cee3 feat(cli): stampede scenarios list, show (--yaml, --version), versions, delete and validate
- 13119ba feat(cli): stampede schedules update (every field, the drift spec URL included), show and preview; --json on schedules list
- 9129753 feat(cli): stampede secrets; values come from stdin, a prompt or --from-env and are never printed
- cf7a0c3 feat(cli): stampede setup, logout, whoami and password; login reads STAMPEDE_PASSWORD
- 1e5c1ca feat(cli): stampede targets list, create, show, update, delete and verify; stampede target verify keeps checking URLs
- cc4847f feat(cli): stampede up without a clone, from the released images of this version
- a4d9fab feat(cli): stampede users and tokens; a token's secret is printed once
- d20bc4c feat(cli): stampede validate --dry-run runs each journey once against the target
- 647ee90 feat(client): add a REST API client with live run streaming
- 5fdd55a feat(client): finders for users, tokens, AI providers and jobs, drift results, integrations and channels; a default project; setup and password tokens
- db7eea6 feat(compose): browser and observability profiles
- a3b00f3 feat(coordinator): add capacity sharding, clock offset estimation and snapshot merging
- b19e951 feat(coordinator): an idle worker takes over a lost worker's share
- 843c752 feat(coordinator): enroll workers for certificates and require them with mTLS
- 3e86fd4 feat(coordinator): register workers over gRPC and run synchronised distributed tests
- 2580ee0 feat(cron): parse five-field cron expressions with time zones
- f6c9e6f feat(deploy): add a Grafana dashboard for the server's own metrics
- c15c0a3 feat(deploy): add container image and one-command Compose stack
- 5a4980a feat(deploy): build and install an offline bundle for air-gapped networks
- 675281a feat(deploy): use worker mutual TLS by default in Compose and Helm
- b3d30b2 feat(engine): TLS session caches per user, and journey and step in trace baggage
- 8da0c33 feat(engine): a failed browser step keeps a screenshot, console errors and a HAR
- e7857ae feat(engine): add closed, open and iteration executors with exact arrival schedule
- 9ea2bb6 feat(engine): add data feeders with unique rows partitioned across workers
- ef7fb46 feat(engine): drive real browser pages with browser steps
- beb757b feat(engine): evaluate schema checks; the dry run names the first mismatch
- 124e64e feat(engine): generated and SQL test data, with database hosts vetted by the run's host policy
- 1d17287 feat(engine): keep three redacted request/response examples per step and error
- 63cd49d feat(engine): replay access logs and HAR files at their recorded times
- 1e564a3 feat(engine): run journeys as virtual users with checks, extractors and trace context
- 103a9b3 feat(engine): run plugin steps
- d44d13a feat(engine): run script steps; the dry run runs them too
- daca6b4 feat(engine): start part-way through a plan, and keep generated data unique across takeovers
- 0120bf0 feat(feed): generated fake data and rows from a SQL query
- 31e2c6a feat(graphql): add graphql steps with automatic persisted queries
- bbdc81e feat(grpc): add unary and server-streaming gRPC steps
- 84f4d29 feat(health): ephemeral ports and network throughput against link speed (Linux)
- 52cce91 feat(helm): add a chart for the server, workers and their secrets
- 5208b7f feat(helm): add ingress, worker autoscaling, disruption budgets and a ServiceMonitor
- 862df6f feat(helm): bundle an optional single-node TimescaleDB
- f8935c9 feat(helm): server.ha=active with a headless service for worker discovery
- aed5e57 feat(http): add HTTP driver with per-phase timing and error classification
- c73c788 feat(http): add h2c, record the negotiated protocol, prove h2 is used
- 96bbc92 feat(http): tlsResumption per-vu, shared or off; per user by default with per-user connections
- d327abb feat(keyring): encrypt secrets with AES-256-GCM envelope encryption
- 8080c73 feat(keyring): generate the master key file on first start when asked
- 25edb54 feat(keyring): read the master key from a command, for cloud KMS and secret managers
- 6b8a67d feat(metrics): add per-interval snapshots and lock-striped sample collector
- 543070f feat(metrics): add sparse HDR-style latency histogram with lossless merge
- 2cf952d feat(metrics): keep the five slowest requests per step with their trace IDs
- 5e141dc feat(metrics): record stream events, time to first event and protocol
- a9aa858 feat(netem): emulate jitter and packet loss
- d8e61c8 feat(netem): emulate slower networks per virtual user
- 2fdedc1 feat(notify): deliver signed webhooks, Slack and Discord messages with retries and an SSRF guard
- 046e029 feat(observe): query Prometheus over a run's time range for the report
- f580293 feat(operator): add StampedeCluster and StampedeRun CRDs
- 6dd84b5 feat(operator): add a client for the Stampede REST API
- ee898b9 feat(operator): reconcile StampedeCluster into a server, workers and keys
- 3017e89 feat(operator): restart a run with twice the workers when they saturate during ramp-up
- 5f94cb0 feat(operator): run StampedeCluster workers with mutual TLS
- 0915df8 feat(operator):...
v1.1.0
Changelog
Features
- 2c6731b feat(action): add a composite GitHub Action and exercise it in CI
- 61a947d feat(agent): add stampede agent for fault injection
- 671d0b2 feat(ai): add pluggable LLM providers for Anthropic, OpenAI, Gemini, Ollama and compatible servers
- ea96e8e feat(ai): build a dependency map and traffic mix from OpenAPI, HAR and access logs
- b77cf9e feat(ai): dry-run executor that traces each journey once with one user
- ac2d529 feat(ai): generate grpc journeys from .proto files and dry-run gRPC steps
- 4c8c3e7 feat(ai): generate journeys from a GraphQL schema
- 3719fc6 feat(ai): generate journeys from a headless browser crawl
- a6e38b8 feat(ai): generation pipeline with draft, static check, dry run and repair
- 9965721 feat(ai): redact secrets and personal data, and guard against third-party hosts
- b202d58 feat(ai): static check against the spec, YAML rendering and diffs
- dcc0548 feat(ai): write report narratives whose claims cite the figures
- 5d9e460 feat(api): add AI journey generation endpoints under a new ai tag
- 35b2531 feat(api): add schedule endpoints with cron preview
- 5f89647 feat(api): define the public REST API in OpenAPI and generate server stubs
- b9a3f90 feat(api): include organisation and project caps in the effective limits
- 0d08c1e feat(api): live worker health, packs, scenario coverage and drift, server settings
- a27367e feat(auth): add argon2id passwords, hashed tokens, roles and login throttling
- cb6da70 feat(bench): add accuracy benchmark against calibrated ground truth
- 20a05f8 feat(bench): add calibrated echo server with exact ground-truth percentiles
- e809f70 feat(bench): compare Stampede, k6 and wrk2 against the echo server's ground truth
- 747c834 feat(bench): measure one process's sustainable request rate
- 0b98f3b feat(brand): switch to the block-art bull in teal
- 2789f45 feat(breakpoint): confirmation holds bisect the gap after the first failing step
- 514e5db feat(cli): --ha active, and workers that connect to several servers or dns:host:port
- a08ba52 feat(cli): --pdf, --csv and --timeline-csv on stampede run and stampede report
- c1805bb feat(cli): --region on stampede start and run --cluster
- e60a957 feat(cli): accept workers on a gRPC port from stampede server
- 659cefa feat(cli): add Go module, stampede binary skeleton and Makefile
- 130a870 feat(cli): add compare and report commands and run --repeat
- 7c39d2d feat(cli): add login, start, push, runs, stop, kill, workers, up, down and doctor
- 8ddc2c4 feat(cli): add run, validate and target verify commands
- 0c1b7f4 feat(cli): add server --worker-mtls and worker --mtls --ca-fingerprint
- 286b13f feat(cli): add server and keygen commands
- 9e4ab75 feat(cli): add stampede coverage and stampede drift
- d0f8313 feat(cli): add stampede generate for AI journey generation
- 2039746 feat(cli): add stampede init and pack list, install and test
- ee12fbe feat(cli): add stampede plugin list, show, install and remove
- 34fa94d feat(cli): add stampede schedules list, create, enable, disable, delete and run
- 3fdd59b feat(cli): add stampede worker command
- a83bb31 feat(cli): chart target metrics and link traces from the observe block in stampede run
- 70a778d feat(cli): drift schedules, --spec-url and --region on stampede schedules create
- eb5f98f feat(cli): init and pack test ask for a pack's other variables
- e9ec79a feat(cli): plugins column in stampede workers
- 3e84577 feat(cli): retry the database on start and add a container healthcheck command
- 62c08aa feat(cli): run scenarios without a base URL against private hosts
- e69be19 feat(cli): stampede ai providers and ai jobs (create, show --wait, approve), and stampede narrative
- a1f4067 feat(cli): stampede audit (--limit, --since, --before, --action) and stampede settings sso and limits
- b64fc7e feat(cli): stampede backup and restore wrap pg_dump and pg_restore
- f4a6d14 feat(cli): stampede drift results, show and repair for scheduled checks; coverage and drift check server scenarios with --scenario
- 53e0393 feat(cli): stampede gen as an alias of stampede generate
- ff61bc9 feat(cli): stampede integrations and stampede notify (channels list, create, delete and test; deliveries)
- f1523ed feat(cli): stampede pack create scaffolds a new pack folder
- 8ad581a feat(cli): stampede plugin create scaffolds a plugin module with a conformance test
- 7b6d3c1 feat(cli): stampede projects (with settings, roles and a default project) and stampede caps
- c5b38dd feat(cli): stampede report and compare take server run ids as well as files
- 87c8d69 feat(cli): stampede run --cluster runs a scenario on the server's workers
- 5d5b3ba feat(cli): stampede runs follow and stampede version --server
- 9b1f56d feat(cli): stampede runs list, show, events, timeline and workers; --json on runs and workers
- 258cee3 feat(cli): stampede scenarios list, show (--yaml, --version), versions, delete and validate
- 13119ba feat(cli): stampede schedules update (every field, the drift spec URL included), show and preview; --json on schedules list
- 9129753 feat(cli): stampede secrets; values come from stdin, a prompt or --from-env and are never printed
- cf7a0c3 feat(cli): stampede setup, logout, whoami and password; login reads STAMPEDE_PASSWORD
- 1e5c1ca feat(cli): stampede targets list, create, show, update, delete and verify; stampede target verify keeps checking URLs
- cc4847f feat(cli): stampede up without a clone, from the released images of this version
- a4d9fab feat(cli): stampede users and tokens; a token's secret is printed once
- d20bc4c feat(cli): stampede validate --dry-run runs each journey once against the target
- 647ee90 feat(client): add a REST API client with live run streaming
- 5fdd55a feat(client): finders for users, tokens, AI providers and jobs, drift results, integrations and channels; a default project; setup and password tokens
- db7eea6 feat(compose): browser and observability profiles
- a3b00f3 feat(coordinator): add capacity sharding, clock offset estimation and snapshot merging
- b19e951 feat(coordinator): an idle worker takes over a lost worker's share
- 843c752 feat(coordinator): enroll workers for certificates and require them with mTLS
- 3e86fd4 feat(coordinator): register workers over gRPC and run synchronised distributed tests
- 2580ee0 feat(cron): parse five-field cron expressions with time zones
- f6c9e6f feat(deploy): add a Grafana dashboard for the server's own metrics
- c15c0a3 feat(deploy): add container image and one-command Compose stack
- 5a4980a feat(deploy): build and install an offline bundle for air-gapped networks
- 675281a feat(deploy): use worker mutual TLS by default in Compose and Helm
- b3d30b2 feat(engine): TLS session caches per user, and journey and step in trace baggage
- 8da0c33 feat(engine): a failed browser step keeps a screenshot, console errors and a HAR
- e7857ae feat(engine): add closed, open and iteration executors with exact arrival schedule
- 9ea2bb6 feat(engine): add data feeders with unique rows partitioned across workers
- ef7fb46 feat(engine): drive real browser pages with browser steps
- beb757b feat(engine): evaluate schema checks; the dry run names the first mismatch
- 124e64e feat(engine): generated and SQL test data, with database hosts vetted by the run's host policy
- 1d17287 feat(engine): keep three redacted request/response examples per step and error
- 63cd49d feat(engine): replay access logs and HAR files at their recorded times
- 1e564a3 feat(engine): run journeys as virtual users with checks, extractors and trace context
- 103a9b3 feat(engine): run plugin steps
- d44d13a feat(engine): run script steps; the dry run runs them too
- daca6b4 feat(engine): start part-way through a plan, and keep generated data unique across takeovers
- 0120bf0 feat(feed): generated fake data and rows from a SQL query
- 31e2c6a feat(graphql): add graphql steps with automatic persisted queries
- bbdc81e feat(grpc): add unary and server-streaming gRPC steps
- 84f4d29 feat(health): ephemeral ports and network throughput against link speed (Linux)
- 52cce91 feat(helm): add a chart for the server, workers and their secrets
- 5208b7f feat(helm): add ingress, worker autoscaling, disruption budgets and a ServiceMonitor
- 862df6f feat(helm): bundle an optional single-node TimescaleDB
- f8935c9 feat(helm): server.ha=active with a headless service for worker discovery
- aed5e57 feat(http): add HTTP driver with per-phase timing and error classification
- c73c788 feat(http): add h2c, record the negotiated protocol, prove h2 is used
- 96bbc92 feat(http): tlsResumption per-vu, shared or off; per user by default with per-user connections
- d327abb feat(keyring): encrypt secrets with AES-256-GCM envelope encryption
- 8080c73 feat(keyring): generate the master key file on first start when asked
- 25edb54 feat(keyring): read the master key from a command, for cloud KMS and secret managers
- 6b8a67d feat(metrics): add per-interval snapshots and lock-striped sample collector
- 543070f feat(metrics): add sparse HDR-style latency histogram with lossless merge
- 2cf952d feat(metrics): keep the five slowest requests per step with their trace IDs
- 5e141dc feat(metrics): record stream events, time to first event and protocol
- a9aa858 feat(netem): emulate jitter and packet loss
- d8e61c8 feat(netem): emulate slower networks per virtual user
- 2fdedc1 feat(notify): deliver signed webhooks, Slack and Discord messages with retries and an SSRF guard
- 046e029 feat(observe): query Prometheus over a run's time range for the report
- f580293 feat(operator): add StampedeCluster and StampedeRun CRDs
- 6dd84b5 feat(operator): add a client for the Stampede REST API
- ee898b9 feat(operator): reconcile StampedeCluster into a server, workers and keys
- 3017e89 feat(operator): restart a run with twice the workers when they saturate during ramp-up
- 5f94cb0 feat(operator): run StampedeCluster workers with mutual TLS
- 0915df8 feat(operator):...
v1.0.0
Changelog
Features
- 2c6731b feat(action): add a composite GitHub Action and exercise it in CI
- 61a947d feat(agent): add stampede agent for fault injection
- 671d0b2 feat(ai): add pluggable LLM providers for Anthropic, OpenAI, Gemini, Ollama and compatible servers
- ea96e8e feat(ai): build a dependency map and traffic mix from OpenAPI, HAR and access logs
- b77cf9e feat(ai): dry-run executor that traces each journey once with one user
- ac2d529 feat(ai): generate grpc journeys from .proto files and dry-run gRPC steps
- 4c8c3e7 feat(ai): generate journeys from a GraphQL schema
- 3719fc6 feat(ai): generate journeys from a headless browser crawl
- a6e38b8 feat(ai): generation pipeline with draft, static check, dry run and repair
- 9965721 feat(ai): redact secrets and personal data, and guard against third-party hosts
- b202d58 feat(ai): static check against the spec, YAML rendering and diffs
- dcc0548 feat(ai): write report narratives whose claims cite the figures
- 5d9e460 feat(api): add AI journey generation endpoints under a new ai tag
- 35b2531 feat(api): add schedule endpoints with cron preview
- 5f89647 feat(api): define the public REST API in OpenAPI and generate server stubs
- b9a3f90 feat(api): include organisation and project caps in the effective limits
- 0d08c1e feat(api): live worker health, packs, scenario coverage and drift, server settings
- a27367e feat(auth): add argon2id passwords, hashed tokens, roles and login throttling
- cb6da70 feat(bench): add accuracy benchmark against calibrated ground truth
- 20a05f8 feat(bench): add calibrated echo server with exact ground-truth percentiles
- e809f70 feat(bench): compare Stampede, k6 and wrk2 against the echo server's ground truth
- 747c834 feat(bench): measure one process's sustainable request rate
- 0b98f3b feat(brand): switch to the block-art bull in teal
- 2789f45 feat(breakpoint): confirmation holds bisect the gap after the first failing step
- 514e5db feat(cli): --ha active, and workers that connect to several servers or dns:host:port
- a08ba52 feat(cli): --pdf, --csv and --timeline-csv on stampede run and stampede report
- c1805bb feat(cli): --region on stampede start and run --cluster
- e60a957 feat(cli): accept workers on a gRPC port from stampede server
- 659cefa feat(cli): add Go module, stampede binary skeleton and Makefile
- 130a870 feat(cli): add compare and report commands and run --repeat
- 7c39d2d feat(cli): add login, start, push, runs, stop, kill, workers, up, down and doctor
- 8ddc2c4 feat(cli): add run, validate and target verify commands
- 0c1b7f4 feat(cli): add server --worker-mtls and worker --mtls --ca-fingerprint
- 286b13f feat(cli): add server and keygen commands
- 9e4ab75 feat(cli): add stampede coverage and stampede drift
- d0f8313 feat(cli): add stampede generate for AI journey generation
- 2039746 feat(cli): add stampede init and pack list, install and test
- ee12fbe feat(cli): add stampede plugin list, show, install and remove
- 34fa94d feat(cli): add stampede schedules list, create, enable, disable, delete and run
- 3fdd59b feat(cli): add stampede worker command
- a83bb31 feat(cli): chart target metrics and link traces from the observe block in stampede run
- 70a778d feat(cli): drift schedules, --spec-url and --region on stampede schedules create
- eb5f98f feat(cli): init and pack test ask for a pack's other variables
- e9ec79a feat(cli): plugins column in stampede workers
- 3e84577 feat(cli): retry the database on start and add a container healthcheck command
- 62c08aa feat(cli): run scenarios without a base URL against private hosts
- e69be19 feat(cli): stampede ai providers and ai jobs (create, show --wait, approve), and stampede narrative
- a1f4067 feat(cli): stampede audit (--limit, --since, --before, --action) and stampede settings sso and limits
- b64fc7e feat(cli): stampede backup and restore wrap pg_dump and pg_restore
- f4a6d14 feat(cli): stampede drift results, show and repair for scheduled checks; coverage and drift check server scenarios with --scenario
- 53e0393 feat(cli): stampede gen as an alias of stampede generate
- ff61bc9 feat(cli): stampede integrations and stampede notify (channels list, create, delete and test; deliveries)
- f1523ed feat(cli): stampede pack create scaffolds a new pack folder
- 8ad581a feat(cli): stampede plugin create scaffolds a plugin module with a conformance test
- 7b6d3c1 feat(cli): stampede projects (with settings, roles and a default project) and stampede caps
- c5b38dd feat(cli): stampede report and compare take server run ids as well as files
- 87c8d69 feat(cli): stampede run --cluster runs a scenario on the server's workers
- 5d5b3ba feat(cli): stampede runs follow and stampede version --server
- 9b1f56d feat(cli): stampede runs list, show, events, timeline and workers; --json on runs and workers
- 258cee3 feat(cli): stampede scenarios list, show (--yaml, --version), versions, delete and validate
- 13119ba feat(cli): stampede schedules update (every field, the drift spec URL included), show and preview; --json on schedules list
- 9129753 feat(cli): stampede secrets; values come from stdin, a prompt or --from-env and are never printed
- cf7a0c3 feat(cli): stampede setup, logout, whoami and password; login reads STAMPEDE_PASSWORD
- 1e5c1ca feat(cli): stampede targets list, create, show, update, delete and verify; stampede target verify keeps checking URLs
- cc4847f feat(cli): stampede up without a clone, from the released images of this version
- a4d9fab feat(cli): stampede users and tokens; a token's secret is printed once
- d20bc4c feat(cli): stampede validate --dry-run runs each journey once against the target
- 647ee90 feat(client): add a REST API client with live run streaming
- 5fdd55a feat(client): finders for users, tokens, AI providers and jobs, drift results, integrations and channels; a default project; setup and password tokens
- db7eea6 feat(compose): browser and observability profiles
- a3b00f3 feat(coordinator): add capacity sharding, clock offset estimation and snapshot merging
- b19e951 feat(coordinator): an idle worker takes over a lost worker's share
- 843c752 feat(coordinator): enroll workers for certificates and require them with mTLS
- 3e86fd4 feat(coordinator): register workers over gRPC and run synchronised distributed tests
- 2580ee0 feat(cron): parse five-field cron expressions with time zones
- f6c9e6f feat(deploy): add a Grafana dashboard for the server's own metrics
- c15c0a3 feat(deploy): add container image and one-command Compose stack
- 5a4980a feat(deploy): build and install an offline bundle for air-gapped networks
- 675281a feat(deploy): use worker mutual TLS by default in Compose and Helm
- b3d30b2 feat(engine): TLS session caches per user, and journey and step in trace baggage
- 8da0c33 feat(engine): a failed browser step keeps a screenshot, console errors and a HAR
- e7857ae feat(engine): add closed, open and iteration executors with exact arrival schedule
- 9ea2bb6 feat(engine): add data feeders with unique rows partitioned across workers
- ef7fb46 feat(engine): drive real browser pages with browser steps
- beb757b feat(engine): evaluate schema checks; the dry run names the first mismatch
- 124e64e feat(engine): generated and SQL test data, with database hosts vetted by the run's host policy
- 1d17287 feat(engine): keep three redacted request/response examples per step and error
- 63cd49d feat(engine): replay access logs and HAR files at their recorded times
- 1e564a3 feat(engine): run journeys as virtual users with checks, extractors and trace context
- 103a9b3 feat(engine): run plugin steps
- d44d13a feat(engine): run script steps; the dry run runs them too
- daca6b4 feat(engine): start part-way through a plan, and keep generated data unique across takeovers
- 0120bf0 feat(feed): generated fake data and rows from a SQL query
- 31e2c6a feat(graphql): add graphql steps with automatic persisted queries
- bbdc81e feat(grpc): add unary and server-streaming gRPC steps
- 84f4d29 feat(health): ephemeral ports and network throughput against link speed (Linux)
- 52cce91 feat(helm): add a chart for the server, workers and their secrets
- 5208b7f feat(helm): add ingress, worker autoscaling, disruption budgets and a ServiceMonitor
- 862df6f feat(helm): bundle an optional single-node TimescaleDB
- f8935c9 feat(helm): server.ha=active with a headless service for worker discovery
- aed5e57 feat(http): add HTTP driver with per-phase timing and error classification
- c73c788 feat(http): add h2c, record the negotiated protocol, prove h2 is used
- 96bbc92 feat(http): tlsResumption per-vu, shared or off; per user by default with per-user connections
- d327abb feat(keyring): encrypt secrets with AES-256-GCM envelope encryption
- 8080c73 feat(keyring): generate the master key file on first start when asked
- 25edb54 feat(keyring): read the master key from a command, for cloud KMS and secret managers
- 6b8a67d feat(metrics): add per-interval snapshots and lock-striped sample collector
- 543070f feat(metrics): add sparse HDR-style latency histogram with lossless merge
- 2cf952d feat(metrics): keep the five slowest requests per step with their trace IDs
- 5e141dc feat(metrics): record stream events, time to first event and protocol
- a9aa858 feat(netem): emulate jitter and packet loss
- d8e61c8 feat(netem): emulate slower networks per virtual user
- 2fdedc1 feat(notify): deliver signed webhooks, Slack and Discord messages with retries and an SSRF guard
- 046e029 feat(observe): query Prometheus over a run's time range for the report
- f580293 feat(operator): add StampedeCluster and StampedeRun CRDs
- 6dd84b5 feat(operator): add a client for the Stampede REST API
- ee898b9 feat(operator): reconcile StampedeCluster into a server, workers and keys
- 3017e89 feat(operator): restart a run with twice the workers when they saturate during ramp-up
- 5f94cb0 feat(operator): run StampedeCluster workers with mutual TLS
- 0915df8 feat(operator):...