diff --git a/.pql/pql-plan.json b/.pql/pql-plan.json index 7b83a344..c56efac1 100644 --- a/.pql/pql-plan.json +++ b/.pql/pql-plan.json @@ -1,5 +1,5 @@ { - "exported_at": "2026-05-06T21:46:24Z", + "exported_at": "2026-05-06T21:46:36Z", "decisions": [ { "id": "D-1", diff --git a/lib/src/pty/ffi/libc.dart b/lib/src/pty/ffi/libc.dart index 0063a868..0985d801 100644 --- a/lib/src/pty/ffi/libc.dart +++ b/lib/src/pty/ffi/libc.dart @@ -10,6 +10,24 @@ /// set against the Win32 API (named pipes instead of unix sockets). library; +// File-wide analyzer exceptions, with reason — see CLAUDE.md +// no-lint-suppression rule. These are the textbook FFI-binding +// case where the lints work against the file's purpose: +// +// * `non_constant_identifier_names` — struct field names map 1:1 +// to POSIX (`man 2 socketpair`, `recvmsg`, `iovec`, `msghdr`). +// Keeping snake_case makes the code greppable against the spec +// and the field offsets readable next to the C ABI. Dart FFI +// layout depends on declaration order + types, not names, so +// this is purely a readability call. +// * `library_private_types_in_public_api` — the C / Dart function- +// signature typedefs (`_SocketpairC`, `_SocketpairDart`, etc.) +// are implementation details consumed only by the public +// `lookupFunction<...>()` calls in this file. Promoting them +// to public would just add noise to the import surface. +// +// ignore_for_file: non_constant_identifier_names, library_private_types_in_public_api + import 'dart:ffi' as ffi; import 'dart:io' show Platform;