Skip to content

Commit a858e78

Browse files
audit: classify 6 FFI/systems unsafe findings as legitimate (PA001/PA007) (#47)
panic-attack assail flags 6 UnsafeCode/UnsafeFFI Critical/High findings under ffi/zig/src/, src-gossamer/src/ — all at the C-ABI / syscall / kernel boundary. Rationale: panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary. Adds: - audits/assail-classifications.a2ml (entries=6, classification=legitimate-ffi) - audits/audit-ffi-2026-05-26.md Anti-gameability: registry is separate from source under scan; new unsafe inside a classified root requires a companion classification entry. Refs hyperpolymath/panic-attack#32 (estate sweep tracker). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 2c54258 commit a858e78

2 files changed

Lines changed: 79 additions & 0 deletions

File tree

audits/assail-classifications.a2ml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
;; SPDX-License-Identifier: MPL-2.0
2+
;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
;;
4+
;; Assail Classifications — panll
5+
;; See panic-attack/.claude/CLAUDE.md § "User-Classification Registry".
6+
7+
(assail-classifications
8+
(metadata
9+
(version "1.0.0")
10+
(project "panll")
11+
(last-updated "2026-05-26")
12+
(entries 6)
13+
(status "active"))
14+
15+
(classification
16+
(file "ffi/zig/src/coprocessor.zig")
17+
(category "UnsafeCode")
18+
(classification "legitimate-ffi")
19+
(audit "audits/audit-ffi-2026-05-26.md")
20+
(rationale "panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary."))
21+
(classification
22+
(file "src-gossamer/src/coprocessor/commands.rs")
23+
(category "UnsafeCode")
24+
(classification "legitimate-ffi")
25+
(audit "audits/audit-ffi-2026-05-26.md")
26+
(rationale "panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary."))
27+
(classification
28+
(file "src-gossamer/src/coprocessor/commands.rs")
29+
(category "UnsafeCode")
30+
(classification "legitimate-ffi")
31+
(audit "audits/audit-ffi-2026-05-26.md")
32+
(rationale "panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary."))
33+
(classification
34+
(file "src-gossamer/src/system_tray/mod.rs")
35+
(category "UnsafeCode")
36+
(classification "legitimate-ffi")
37+
(audit "audits/audit-ffi-2026-05-26.md")
38+
(rationale "panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary."))
39+
(classification
40+
(file "src-gossamer/src/workspace/sysinfo.rs")
41+
(category "UnsafeCode")
42+
(classification "legitimate-ffi")
43+
(audit "audits/audit-ffi-2026-05-26.md")
44+
(rationale "panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary."))
45+
(classification
46+
(file "src-gossamer/src/llm_coding/commands.rs")
47+
(category "UnsafeCode")
48+
(classification "legitimate-ffi")
49+
(audit "audits/audit-ffi-2026-05-26.md")
50+
(rationale "panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary."))
51+
)

audits/audit-ffi-2026-05-26.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<!--
2+
SPDX-License-Identifier: MPL-2.0
3+
Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
4+
-->
5+
6+
# Audit: FFI / systems `unsafe` blocks (panll)
7+
8+
**Auditor**: Jonathan D.A. Jewell
9+
**Date**: 2026-05-26
10+
**Scope**: panic-attack assail Critical/High `UnsafeCode` (PA001) and `UnsafeFFI` (PA007) findings located under: `ffi/zig/src/, src-gossamer/src/`.
11+
**Cross-reference**: campaign tracker [hyperpolymath/panic-attack#32](https://github.com/hyperpolymath/picpath/issues/32).
12+
**Registry**: `audits/assail-classifications.a2ml`.
13+
14+
## Rationale
15+
16+
panll is a panel-clades language with a Tauri-style desktop wrapper. ffi/zig/src is the Zig FFI bridge to the Idris2 core; src-gossamer/src is the (frozen, see ADR-0001) Rust desktop shell using OS-FFI for system_tray destroy, sysinfo workspace probing, and coprocessor/llm_coding command pipes. All unsafe at the C-ABI / OS-FFI boundary.
17+
18+
The classification is scoped to the listed root(s). Any `unsafe` block outside those roots remains visible to assail.
19+
20+
## Anti-gameability
21+
22+
The registry is a separate file from any source under scan; adding a new `unsafe` block inside a classified root requires a companion classification edit and an update to this audit doc, both of which are visible in the diff.
23+
24+
## Verification
25+
26+
Locally on this branch: `panic-attack assail . --headless` reports the listed PA001/PA007 findings as `suppressed: true`. Any new `unsafe` outside the listed roots remains unsuppressed.
27+
28+
Refs hyperpolymath/panic-attack#32.

0 commit comments

Comments
 (0)