pxh 0.9.25

pxh is a fast, cross-shell history mining tool with interactive fuzzy search, secret scanning, and bidirectional sync across machines. It indexes bash and zsh history in SQLite with rich metadata for powerful recall.
Documentation
set shell := ["zsh", "-uc"]

default:
	just --list

# Build the project
build:
	cargo build

# Clippy (strict) + nextest -- the pre-push gate
check:
	cargo clippy -- -D warnings
	cargo nextest run

fmt:
	cargo fmt

# Check formatting without modifying (CI-friendly)
fmt-check:
	cargo fmt -- --check

# Run tests (pass args to filter, e.g. `just test sync`)
test *args:
	cargo nextest run {{ args }}

cargo-upgrade *args:
	cargo-upgrade upgrade {{ args }}
	cargo update
	cargo clippy -- -D warnings
	cargo nextest run

# Run full suite N times and report pass/fail tally
stress count="10":
	#!/usr/bin/env zsh
	pass=0 fail=0
	for i in $(seq 1 {{ count }}); do
		echo -n "Run $i/{{ count }}: "
		if ! cargo nextest run &>/dev/null; then
			echo "FAILED"
			((fail++))
		else
			echo "PASSED"
			((pass++))
		fi
	done
	echo "\n$pass passed, $fail failed out of {{ count }} runs"
	[[ $fail -eq 0 ]]

vendor-update:
	git submodule update --init --recursive
	cp secrets-patterns-db/db/rules-stable.yml src/vendor/rules-stable.yml
	cp src/shell_configs/bash-preexec/bash-preexec.sh src/vendor/bash-preexec.sh

coverage:
	./coverage.sh

coverage-detailed:
	./coverage-detailed.sh

coverage-clean:
	cargo llvm-cov clean --workspace
	rm -rf coverage/
	rm -f lcov.info coverage.json coverage.xml
	rm -f **/*.profraw(N) **/*.profdata(N)

docker-e2e:
	docker build -t pxh-e2e -f tests/docker/Dockerfile .
	docker run --rm pxh-e2e