feat(dictate): use local socket-activated Parakeet

This commit is contained in:
jb
2026-08-26 12:38:45 -04:00
parent ea74dbc6a7
commit e234468a73
34 changed files with 6702 additions and 527 deletions
+4 -1
View File
@@ -92,7 +92,8 @@ The skill stages candidates under `~/.config/nono/profile-drafts/` and validates
- read/write access to the launch working directory and temporary directory
- read-only access to local Pi extension source and `$HOME/.bun`; the Orca runner invokes the selected Node executable explicitly rather than relying on `PATH`
- pathname-mediated access to the system resolver Unix socket on Linux
- pathname-mediated access to the system resolver Unix socket and the exact `/run/user/1000/pi-dictate.sock` mediated microphone socket on Linux
- an explicit deny for `~/.local/share/pi-dictate`, which overrides `$WORKDIR` if Pi is launched from the service data directory and protects the model, dictionary, caches, and runtime
- an Internet hostname allowlist for model providers, source hosts, package registries, and toolchain downloads
The parent profile contributes more policy, including Pi state access, security groups, credential route definitions, URL-opening origins, localhost URL opening, and service launching. Inspect the resolved profile before treating a child as narrower than its parent:
@@ -212,6 +213,8 @@ Add exact sockets for required local services. Avoid granting a socket directory
`linux.af_unix_mediation: "pathname"` enables pathname-based Unix-socket mediation on Linux.
`pi-local` also grants `/run/user/1000/pi-dictate.sock`. This socket is a mediated microphone and transcription capability, not a health-only endpoint. Any code running under `pi-local` or an inheriting profile can request recording and receive transcripts, while direct PipeWire, audio-device, GPU, model, and dictionary access remains outside Pi.
### Network access
`network.block` and `network.allow_domain` define three useful tiers.