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
2 changes: 1 addition & 1 deletion .github/workflows/actions.lock
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ workflows:
- 'actions/checkout@v7.0.1'
- 'actions/deploy-pages@v5.0.1'
- 'actions/upload-pages-artifact@v5.0.0'
'.github/workflows/panic-attack-hexadeca.yml':
'.github/workflows/panic-attack-unified-api-adapter.yml':
- 'actions/checkout@v7.0.1'
- 'actions/upload-artifact@v7.0.1'
- 'dtolnay/rust-toolchain@stable'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/main-estate-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ jobs:
- name: Idris2 ABI Purity Gate
uses: hyperpolymath/cicd-suite/actions/idris2-abi-check@main

- name: Zig Hexadeca API Gate
uses: hyperpolymath/cicd-suite/actions/zig-hexadeca-check@main
- name: Zig UnifiedApiAdapter API Gate
uses: hyperpolymath/cicd-suite/actions/zig-unified-api-adapter-check@main

- name: Contractile Validation Gate
uses: hyperpolymath/cicd-suite/actions/contractile-validation-check@main
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
# This workflow is managed by gh actions-lock.
# This workflow is managed by gh actions-lock.
# This workflow is managed by gh actions-lock.
# panic-attack hexadeca surface scan for proven-nesy-solver-api.
# panic-attack unified-api-adapter surface scan for proven-nesy-solver-api.
#
# Scans the zig hexadeca connector (all 16 protocol surfaces) with
# Scans the zig unified-api-adapter connector (all 16 protocol surfaces) with
# panic-attack assail, then maps findings to individual surfaces and
# reports a per-surface pass/fail in the job summary.
#
# Triggered only when V connector source or its config changes.

name: panic-attack / hexadeca (nesy-solver-api)
name: panic-attack / unified-api-adapter (nesy-solver-api)
on:
push:
branches: [main]
Expand All @@ -26,8 +26,8 @@ permissions:
actions: read
contents: read
jobs:
hexadeca-scan:
name: panic-attack hexadeca scan
unified-api-adapter-scan:
name: panic-attack unified-api-adapter scan
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
Expand All @@ -51,7 +51,7 @@ jobs:
cargo build --release
sudo install -m 0755 target/release/panic-attack /usr/local/bin/panic-attack
panic-attack --version
- name: Run panic-attack assail (hexadeca connector)
- name: Run panic-attack assail (unified-api-adapter connector)
id: assail
working-directory: connectors/proven-nesy-solver-api/v
run: |
Expand All @@ -69,15 +69,15 @@ jobs:
echo "total=$TOTAL" >> $GITHUB_OUTPUT
echo "critical=$CRITICAL" >> $GITHUB_OUTPUT
echo "high=$HIGH" >> $GITHUB_OUTPUT
- name: Build hexadeca surface report
- name: Build unified-api-adapter surface report
id: surface-report
working-directory: connectors/proven-nesy-solver-api/v
run: |
# Surfaces in SurfaceKind order (tags 0-15).
SURFACES=(rest graphql websocket sse grpc jsonrpc msgpack_rpc cbor
flatbuffers capnproto bebop trpc mqtt amqp soap verisimdb)

echo "## panic-attack hexadeca surface report" >> $GITHUB_STEP_SUMMARY
echo "## panic-attack unified-api-adapter surface report" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| # | Surface | Findings | Status |" >> $GITHUB_STEP_SUMMARY
echo "|---|---------|----------|--------|" >> $GITHUB_STEP_SUMMARY
Expand Down Expand Up @@ -111,14 +111,14 @@ jobs:
if: always()
uses: actions/upload-artifact@v7.0.1
with:
name: panic-findings-hexadeca
name: panic-findings-unified-api-adapter
path: |
/tmp/panic-findings.json
/tmp/panic-raw.txt
retention-days: 30
- name: Fail on critical findings
if: steps.assail.outputs.critical > 0
run: |-
echo "Critical findings in hexadeca connector — see artifact."
echo "Critical findings in unified-api-adapter connector — see artifact."
jq '[.[] | select(.severity == "critical")]' /tmp/panic-findings.json
exit 1
2 changes: 1 addition & 1 deletion .machine_readable/6a2/ECOSYSTEM.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@ points = [
{ system = "RGTV (rgtv-nesy)", direction = "inbound", protocol = "HTTP grant→redeem over Fly.io private 6PN (.flycast)" },
{ system = "echidna (echidna-nesy)", direction = "outbound", protocol = "HTTP POST /api/verify over Fly.io private 6PN (.flycast)" },
{ system = "verisim-api", direction = "outbound", protocol = "HTTP POST /attempts over Fly.io private 6PN (.flycast)" },
{ system = "panic-attack", direction = "inbound", protocol = "hexadeca 16-surface CI scan via panic-attack-hexadeca.yml" },
{ system = "panic-attack", direction = "inbound", protocol = "unified-api-adapter 16-surface CI scan via panic-attack-unified-api-adapter.yml" },
]
2 changes: 1 addition & 1 deletion .machine_readable/6a2/STATE.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ actions = [
[completed-work]
entries = [
{ date = "2026-04-11", description = "RGTV credential brokering: wired rgtv_client.v into nesy-solver-api, deploy-fly.sh rgtv phase added, RGTV_URL + RGTV_AGENT_TOKEN in fly.toml, vault-broker axum HTTP server built." },
{ date = "2026-04-11", description = "panic-attack hexadeca CI: 16-surface protocol architecture in panic-attack.toml, GitHub Actions workflow panic-attack-hexadeca.yml with per-surface attribution table, Justfile assail-hexadeca recipe." },
{ date = "2026-04-11", description = "panic-attack unified-api-adapter CI: 16-surface protocol architecture in panic-attack.toml, GitHub Actions workflow panic-attack-unified-api-adapter.yml with per-surface attribution table, Justfile assail-unified-api-adapter recipe." },
{ date = "2026-04-11", description = "Fly.io cold-start hardening: echidna read_timeout 90s in server.v, deploy-fly.sh echidna grace_period 90s, echidna fly.toml HTTP health check + 90s grace, echidna Containerfile curl HEALTHCHECK with 90s start-period." },
{ date = "2026-04-11", description = "ROADMAP.adoc: v1.1.0 (HAR, conative-gating, invariant path), v1.2.0 (Hypatia CI), v1.3.0 (Lithoglyph aqueduct), v1.4.0 (cadre-tea-router + ReScript TEA) milestones added." },
{ date = "2026-04-11", description = "deploy-fly.sh: RGTV phase 0 added, dependency order updated (rgtv → clickhouse → schema → verisim → echidna → nesy-api), rgtv-agent-token state file management." },
Expand Down
6 changes: 3 additions & 3 deletions .machine_readable/contractiles/Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -895,12 +895,12 @@ edit:
assail:
@command -v panic-attack >/dev/null 2>&1 && panic-attack assail . || echo "panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"

# Run panic-attack hexadeca surface scan on the nesy-solver-api V connector.
# Run panic-attack unified-api-adapter surface scan on the nesy-solver-api V connector.
# Uses connectors/proven-nesy-solver-api/v/panic-attack.toml for surface-specific
# thresholds (REST + VerisimDB held to 85 robustness; others to 75).
assail-hexadeca:
assail-unified-api-adapter:
@command -v panic-attack >/dev/null 2>&1 || { echo "panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"; exit 1; }
@echo "Scanning hexadeca connector (16 surfaces)..."
@echo "Scanning unified-api-adapter connector (16 surfaces)..."
@cd connectors/proven-nesy-solver-api/v && panic-attack assail . --config panic-attack.toml

# Self-diagnostic — checks dependencies, permissions, paths
Expand Down
6 changes: 3 additions & 3 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -895,12 +895,12 @@ edit:
assail:
@command -v panic-attack >/dev/null 2>&1 && panic-attack assail . || echo "panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"

# Run panic-attack hexadeca surface scan on the nesy-solver-api V connector.
# Run panic-attack unified-api-adapter surface scan on the nesy-solver-api V connector.
# Uses connectors/proven-nesy-solver-api/v/panic-attack.toml for surface-specific
# thresholds (REST + VerisimDB held to 85 robustness; others to 75).
assail-hexadeca:
assail-unified-api-adapter:
@command -v panic-attack >/dev/null 2>&1 || { echo "panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"; exit 1; }
@echo "Scanning hexadeca connector (16 surfaces)..."
@echo "Scanning unified-api-adapter connector (16 surfaces)..."
@cd connectors/proven-nesy-solver-api/v && panic-attack assail . --config panic-attack.toml

# Self-diagnostic — checks dependencies, permissions, paths
Expand Down
2 changes: 1 addition & 1 deletion connectors/proven-nesy-solver-api/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ zig/ Zig HTTP service + deployment
| `ObligationClass` | 0–10 | mirrors verisimdb `proof_attempts` Enum8
| `ProveOutcome` | 0–3 | mirrors verisimdb `outcome` field
| `SessionState` | 0–3 | `src/NesySolverAPIABI/Transitions.idr`
| `SurfaceKind` | 0–15 | 16 zig hexadeca protocol surfaces
| `SurfaceKind` | 0–15 | 16 zig unified-api-adapter protocol surfaces
|===

Any change to these tag values MUST update Layout.idr, nesy_solver_api.h,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* ObligationClass: tags 0-10 (11 classes, mirrors verisimdb Enum8)
* ProveOutcome: tags 0-3 (success/failure/timeout/unknown)
* SessionState: tags 0-3 (Idle/Dispatching/Recording/FailedS)
* SurfaceKind: tags 0-15 (16 hexadeca protocol surfaces)
* SurfaceKind: tags 0-15 (16 unified-api-adapter protocol surfaces)
*/

#ifndef PROVEN_NESY_SOLVER_API_H
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ Show SessionState where
show FailedS = "FailedS"

---------------------------------------------------------------------------
-- SurfaceKind — which of the 16 hexadeca surfaces a request arrived on.
-- SurfaceKind — which of the 16 unified-api-adapter surfaces a request arrived on.
---------------------------------------------------------------------------

||| Which zig protocol surface a request came in on. The 16 surfaces
Expand Down
Empty file modified connectors/proven-nesy-solver-api/zig/deploy-fly.sh
100755 → 100644
Empty file.
Empty file modified container/ct-build.sh
100755 → 100644
Empty file.
Empty file modified container/entrypoint.sh
100755 → 100644
Empty file.
Empty file modified scripts/maintenance/perms-state.sh
100755 → 100644
Empty file.
Empty file modified scripts/maintenance/run-maintenance.sh
100755 → 100644
Empty file.
Empty file modified setup.sh
100755 → 100644
Empty file.
Empty file modified tests/aspect/security_test.sh
100755 → 100644
Empty file.
Empty file modified tests/cross_binding_test.sh
100755 → 100644
Empty file.
Empty file modified tests/e2e.sh
100755 → 100644
Empty file.
Empty file modified tests/property_test.sh
100755 → 100644
Empty file.
Empty file modified tools/check-binding-policy.sh
100755 → 100644
Empty file.
Empty file modified tools/gen-abi.sh
100755 → 100644
Empty file.
Loading