Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/mirror.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
mirror:
name: Mirror repositories
runs-on: ubuntu-latest
if: github.repository == 'hyperpolymath/panic-attacker'
if: github.repository == 'hyperpolymath/panic-attack'
steps:
- name: Checkout code
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
Expand All @@ -25,12 +25,12 @@ jobs:
GITLAB_TOKEN: ${{ secrets.GITLAB_MIRROR_TOKEN }}
run: |
echo "Mirroring to GitLab..."
# git push --mirror https://oauth2:${GITLAB_TOKEN}@gitlab.com/hyperpolymath/panic-attacker.git
# git push --mirror https://oauth2:${GITLAB_TOKEN}@gitlab.com/hyperpolymath/panic-attack.git

- name: Mirror to Bitbucket
if: vars.BITBUCKET_MIRROR_ENABLED == 'true'
env:
BITBUCKET_TOKEN: ${{ secrets.BITBUCKET_MIRROR_TOKEN }}
run: |
echo "Mirroring to Bitbucket..."
# git push --mirror https://x-token-auth:${BITBUCKET_TOKEN}@bitbucket.org/hyperpolymath/panic-attacker.git
# git push --mirror https://x-token-auth:${BITBUCKET_TOKEN}@bitbucket.org/hyperpolymath/panic-attack.git
2 changes: 1 addition & 1 deletion .github/workflows/scan-and-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:

- name: Install panic-attack
run: |
cargo install --git https://github.com/hyperpolymath/panic-attacker --branch main
cargo install --git https://github.com/hyperpolymath/panic-attack --branch main

- name: Run scan
id: scan
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ Enhancement suggestions are tracked as GitHub issues. When creating an enhanceme
### Building

```bash
git clone https://github.com/hyperpolymath/panic-attacker.git
cd panic-attacker
git clone https://github.com/hyperpolymath/panic-attack.git
cd panic-attack
cargo build
```

Expand Down Expand Up @@ -143,7 +143,7 @@ Closes #42
## Project Structure

```
panic-attacker/
panic-attack/
├── src/
│ ├── main.rs # CLI entry point (clap) — 20 subcommands
│ ├── lib.rs # Library API
Expand Down
30 changes: 15 additions & 15 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Modern software testing often focuses on either:
2. **Property Testing**: Verification of invariants (QuickCheck, PropTest)
3. **Static Analysis**: Code inspection without execution (Clippy, CodeQL)

`panic-attacker` fills a different niche: **systematic stress testing combined with logic-based bug detection**.
`panic-attack` fills a different niche: **systematic stress testing combined with logic-based bug detection**.

## Core Concepts

Expand Down Expand Up @@ -268,9 +268,9 @@ Mozart/Oz pioneered **constraint logic programming** with:
3. **Search**: Automatic exploration of solution spaces
4. **Concurrency**: First-class concurrent constraints

### Mapping to panic-attacker
### Mapping to panic-attack

| Mozart/Oz Concept | panic-attacker Implementation |
| Mozart/Oz Concept | panic-attack Implementation |
|-------------------|-------------------------------|
| **Variables** | Program variables and locations |
| **Constraints** | Temporal ordering, type constraints |
Expand All @@ -293,7 +293,7 @@ proc {DetectUAF Facts ?Bugs}
end
```

**panic-attacker style** (Rust):
**panic-attack style** (Rust):
```rust
fn infer_use_after_free(&self, facts: &HashSet<Fact>) -> Vec<BugSignature> {
let mut signatures = Vec::new();
Expand Down Expand Up @@ -385,7 +385,7 @@ Some rules (like deadlock detection) require quadratic or higher complexity. Opt
| **AddressSanitizer** | Memory bugs | Runtime instrumentation | Execution |
| **ThreadSanitizer** | Concurrency bugs | Happens-before analysis | Thread interactions |
| **Valgrind** | Memory errors | Binary instrumentation | All allocations |
| **panic-attacker** | **Robustness** | **Multi-axis stress + logic** | **Resource pressure + patterns** |
| **panic-attack** | **Robustness** | **Multi-axis stress + logic** | **Resource pressure + patterns** |

**Key differentiator**: We test under resource pressure, not just correctness.

Expand All @@ -396,7 +396,7 @@ Some rules (like deadlock detection) require quadratic or higher complexity. Opt
- **Correctness**: "Does it work?"
- **Robustness**: "Does it work under adversarial conditions?"

Many programs are correct under normal conditions but fail catastrophically under stress. panic-attacker targets this gap.
Many programs are correct under normal conditions but fail catastrophically under stress. panic-attack targets this gap.

### Resource-Aware Testing

Expand All @@ -406,7 +406,7 @@ Traditional testing assumes infinite resources. Real systems have:
- Bounded I/O bandwidth
- Contended locks

panic-attacker respects these limits and exploits them.
panic-attack respects these limits and exploits them.

### Logic as Specification

Expand All @@ -421,7 +421,7 @@ This is more principled than ad-hoc pattern matching.
## Extended Design Vision (2026-02-07)

The following concepts emerged from design exploration and represent the
longer-term trajectory of panic-attacker.
longer-term trajectory of panic-attack.

### Constraint Sets (Composable Stress Profiles)

Expand Down Expand Up @@ -472,7 +472,7 @@ rest of the system from cascading failure, like an electrical fuse.
- Backpressure (Reactive Streams) -- single pipeline only

**What doesn't exist yet**: A way to DESIGN fuse placement based on resource
flow modelling. panic-attacker reveals where fuses are needed by finding where
flow modelling. panic-attack reveals where fuses are needed by finding where
things actually break.

```
Expand All @@ -498,7 +498,7 @@ things actually break.
└────────────────┘
```

panic-attacker's role:
panic-attack's role:
1. **Where fuses are needed** (which resources exhaust first)
2. **What thresholds to set** (at what level does degradation begin)
3. **Whether fuses work** (does the system actually degrade gracefully)
Expand Down Expand Up @@ -542,20 +542,20 @@ resource_policy:
never_shed: [1]
```

panic-attacker tests these policies by simulating pressure and verifying
panic-attack tests these policies by simulating pressure and verifying
shedding happens correctly.

### eclexia Integration

eclexia's resource-tracking creates a natural integration:
1. eclexia programs declare resource expectations
2. panic-attacker verifies those declarations under stress
2. panic-attack verifies those declarations under stress
3. eclexia programs can BE software fuses (adaptive resource response)
4. panic-attacker profiles eclexia as a demonstration of its value
4. panic-attack profiles eclexia as a demonstration of its value

### ML Extensions

Every panic-attacker run generates labelled training data:
Every panic-attack run generates labelled training data:
- Input: program type, language, frameworks, attack axes, intensity
- Output: crash/survive, signatures detected, resource curves

Expand All @@ -567,7 +567,7 @@ Over time, this enables:

## Product Boundaries

### Definitely panic-attacker (this repo)
### Definitely panic-attack (this repo)
- Assail static analysis
- Multi-axis attack execution
- Signature detection (Datalog-style)
Expand Down
4 changes: 2 additions & 2 deletions FUTURE-IMPROVEMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ CI integration requires external scripting to interpret results.

**Proposed solution:**

- Add a `[thresholds]` section to `panic-attacker.toml`:
- Add a `[thresholds]` section to `panic-attack.toml`:

```toml
[thresholds]
Expand Down Expand Up @@ -397,7 +397,7 @@ patterns) require deeper static analysis capabilities. They should be
planned for post-v1.0 milestones.

Improvement 10 (configurable thresholds) extends the existing
`panic-attacker.toml` configuration and is straightforward to implement
`panic-attack.toml` configuration and is straightforward to implement
once the metrics it depends on (from improvements 1-4) are accurate.

### Recommended Implementation Order
Expand Down
4 changes: 2 additions & 2 deletions PROOF-NEEDS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PROOF-NEEDS.md — panic-attacker
# PROOF-NEEDS.md — panic-attack

## Current State

Expand All @@ -11,7 +11,7 @@

| Proof | File | What it proves |
|-------|------|---------------|
| PA1 Pattern detection completeness | `src/abi/PatternCompleteness.idr` | All 47 `Lang` constructors have an analyzer; all 20 `WPCategory` constructors have at least one detector; cross-language checks applied unconditionally to all languages. `completeScanForAll` is the top-level theorem. |
| PA1 Pattern detection completeness | `src/abi/PatternCompleteness.idr` | All 49 `Lang` constructors have an analyzer; all 20 `WPCategory` constructors have at least one detector; cross-language checks applied unconditionally to all languages. `completeScanForAll` is the top-level theorem. |
| PA2 Classification soundness | `src/abi/ClassificationSoundness.idr` | Severity (Low/Medium/High/Critical) is totally ordered (`LTE`); `maxSeverity` is commutative and idempotent; numeric ABI encoding preserves the ordering. |

## What Still Needs Proving
Expand Down
14 changes: 7 additions & 7 deletions QUICKSTART-DEV.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MPL-2.0
// Template: QUICKSTART-DEV.adoc — clone → build → test → PR
// Replace panic-attacker, {{BUILD_CMD}}, {{TEST_CMD}}, {{LANG_STACK}} with actuals
= panic-attacker — Quick Start for Developers
// Replace panic-attack, {{BUILD_CMD}}, {{TEST_CMD}}, {{LANG_STACK}} with actuals
= panic-attack — Quick Start for Developers
:toc:
:toclevels: 2

Expand Down Expand Up @@ -29,8 +29,8 @@ nix develop

[source,bash]
----
git clone https://github.com/hyperpolymath/panic-attacker.git
cd panic-attacker
git clone https://github.com/hyperpolymath/panic-attack.git
cd panic-attack
just setup-dev
----

Expand All @@ -52,7 +52,7 @@ just setup-dev

[source]
----
panic-attacker/
panic-attack/
├── src/ # Source code
├── src/abi/ # Idris2 ABI definitions (if applicable)
├── ffi/zig/ # Zig FFI bridge (if applicable)
Expand All @@ -73,7 +73,7 @@ just build # Build the project
just test # Run tests
just doctor # Self-diagnostic
just lint # Lint and format
just panic-scan # Security scan via panic-attacker
just panic-scan # Security scan via panic-attack
just tour # Guided tour of the codebase
----

Expand Down Expand Up @@ -107,5 +107,5 @@ Or read `0-AI-MANIFEST.a2ml` and `.claude/CLAUDE.md` directly.
== Get Help

* **Architecture**: link:EXPLAINME.adoc[EXPLAINME.adoc]
* **Wiki**: https://github.com/hyperpolymath/panic-attacker/wiki
* **Wiki**: https://github.com/hyperpolymath/panic-attack/wiki
* **Report issue**: `just help-me`
4 changes: 2 additions & 2 deletions QUICKSTART-MAINTAINER.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: MPL-2.0
// Template: QUICKSTART-MAINTAINER.adoc — packaging, deploying, and maintaining
// Replace panic-attacker, panic-attack, rustc, cargo, mold, pkg-config with actuals
// Replace panic-attack, panic-attack, rustc, cargo, mold, pkg-config with actuals
= panic-attack — Quick Start for Platform Maintainers
:toc:
:toclevels: 2
Expand Down Expand Up @@ -125,5 +125,5 @@ Each instance has isolated config, data, and logs.

== Reporting Issues

* Upstream: https://github.com/hyperpolymath/panic-attacker/issues
* Upstream: https://github.com/hyperpolymath/panic-attack/issues
* With diagnostic: `just help-me` (pre-fills context)
14 changes: 7 additions & 7 deletions QUICKSTART-USER.adoc
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MPL-2.0
// Template: QUICKSTART-USER.adoc — 5-minute path to working software
// Replace panic-attacker, Panic Attacker — See README.adoc for details., just run, Panic Attacker started successfully. with actuals
= panic-attacker — Quick Start for Users
// Replace panic-attack, Panic Attacker — See README.adoc for details., just run, Panic Attacker started successfully. with actuals
= panic-attack — Quick Start for Users
:toc:
:toclevels: 2

== What is panic-attacker?
== What is panic-attack?

Panic Attacker — See README.adoc for details.

Expand Down Expand Up @@ -37,8 +37,8 @@ Before you begin, ensure you have:
[source,bash]
----
# Clone and set up
git clone https://github.com/hyperpolymath/panic-attacker.git
cd panic-attacker
git clone https://github.com/hyperpolymath/panic-attack.git
cd panic-attack
just setup
----

Expand All @@ -61,7 +61,7 @@ just stapeln-run

[source,bash]
----
just install --portable --prefix=./panic-attacker-portable
just install --portable --prefix=./panic-attack-portable
----

== First Run
Expand Down Expand Up @@ -102,7 +102,7 @@ just heal
* **In-app**: `just run --help`
* **Guided tour**: `just tour`
* **Report a problem**: `just help-me` (pre-fills diagnostic context)
* **Wiki**: https://github.com/hyperpolymath/panic-attacker/wiki
* **Wiki**: https://github.com/hyperpolymath/panic-attack/wiki

== Uninstall

Expand Down
2 changes: 1 addition & 1 deletion READINESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

| Component | Grade | Release Stage | Evidence Summary |
|---------------------|-------|--------------------|---------------------------------------------------------------------|
| `assail` | B | Beta | Dogfooded on self; 22 findings. Tested on 283+ repos (diverse: Rust, Elixir, Gleam, Julia, ReScript, Idris2, Zig, OCaml, Ada, Haskell, 007-lang, Coq) via assemblyline and estate-wide CI. |
| `assail` | B | Beta | Dogfooded on self; 22 findings. Tested on 283+ repos (diverse: Rust, Elixir, Gleam, Julia, ReScript, Idris2, Zig, OCaml, Ada, Haskell, 007-lang, Coq, Isabelle) via assemblyline and estate-wide CI. |
| `attack` | D | Alpha | Works on example binary (cpu axis). Other axes not tested on diverse targets. |
| `assault` | D | Alpha | Works on self + example binary. Full multi-axis only tested on one target. |
| `ambush` | D | Alpha | Works with and without timeline. Timeline events skip when target exits fast (correct behaviour). |
Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ binary, panicbot (gitbot-fleet CI integration), and mass-panic (org-scale batch
* Pre-commit hook integration (`panic-attack assail` before every commit)
* Component Readiness Grades: D (Alpha) through B (RC) verified

== v2.1.0 -- Logic Engine Refinement (Next)
== v2.1.0 -- Logic Engine Refinement

* [x] miniKanren v2.0.0 core (Term, Substitution, unification, FactDB)
* [x] Taint analysis: source-to-sink tracking
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ We follow the principle of [Coordinated Vulnerability Disclosure](https://vuls.c

## Security Measures

panic-attacker implements several security measures:
panic-attack implements several security measures:

1. **No unsafe code** in the core library (only in specific performance-critical sections with documented justification)
2. **Dependency auditing** via cargo-audit in CI
Expand All @@ -52,7 +52,7 @@ panic-attacker implements several security measures:

## Self-Testing

panic-attacker is tested against itself ("eating our own dogfood") to verify its own robustness and identify potential security issues in its implementation.
panic-attack is tested against itself ("eating our own dogfood") to verify its own robustness and identify potential security issues in its implementation.

## Security Advisories

Expand Down
2 changes: 1 addition & 1 deletion TEST-NEEDS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# TEST-NEEDS.md — panic-attacker
# TEST-NEEDS.md — panic-attack

## CRG Grade: B — ACHIEVED 2026-04-04

Expand Down
4 changes: 2 additions & 2 deletions TOPOLOGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,11 @@ INTEGRATION
REPO INFRASTRUCTURE
Justfile Automation ██████████ 100% build/test/readiness/lint/install
.machine_readable/ ██████████ 100% STATE/ECOSYSTEM/META + directives
Test Suite ██████████ 100% 282 tests, 0 failures
Test Suite ██████████ 100% 400+ tests, 0 failures
Readiness Tests (CRG) ██████████ 100% 18 tests: D(4) C(10) B(4)

─────────────────────────────────────────────────────────────────────────────
OVERALL: █████████░ ~98% v2.3.0 Stable
OVERALL: █████████░ ~98% v2.5.0 Stable
```

## Key Dependencies
Expand Down
Loading
Loading