land: audit-u12-p1

Merged
AF
2d ago
+3400-480

Accepted agent delivery; branch-keyed search descriptor included.


Summary by cubic

Fails closed on malformed configuration and strengthens standalone protocol and routing enforcement. Malformed JSONC documents and security-sensitive sections (sandbox, indexes, remote_exec, disabled_tools, active harness hardening) now reject the whole candidate instead of applying defaults or dropping the offending fields; malformed non-security sections are discarded with a warning, and live reloads keep the last-good configuration. Pi and OpenCode plugins now normalize the config document and ignore inactive harness keys before validation, so Pi no longer rejects OpenCode's auto_update while keeping its own hardening strict.

Engine and protocol

  • Added standalone input caps for line size and aggregate retention; oversized frames return request_too_large without wedging the connection.
  • Duplicate pending request IDs now fail instead of silently replacing and cancelling the earlier request.
  • Malformed remote_exec/siblings/confine routing in worker catalogs now rejects the request instead of disabling just that routing option.
  • Authorization failures on the ledger edge answer exactly once and never spawn the tool.
  • Outline targets that are not strings now raise an error instead of being silently filtered.

RetriggerView in GreptileConfidence Score: 5/5

The reviewed changes appear safe to merge; no blocking issue remains.

Summary

The PR rejects malformed security settings and strengthens standalone input and request checks.

  • Bad security settings stop a config candidate from being partly applied.
  • Standalone input and held requests stay within size and queue limits.
  • Pending calls keep their reply owner until the call finishes or shuts down.
  • Worker catalogs reject malformed routing settings instead of ignoring them.
  • Bash asks start only after authorization is recorded.
  • Pong replies can pass queued tool replies without stopping tool replies from moving.
  • Outline calls reject invalid targets and format replies from completed results.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Read configuration tier] --> B[Translate retired keys]
  B --> C[Remove keys ignored by the active harness]
  C --> D{Security settings valid?}
  D -->|No| E[Reject candidate]
  D -->|Yes| F[Parse settings and apply active override]
  F --> G[Apply user and project rules]
  E --> H[Keep last-good settings on reload]

Reviews (2) · Last reviewed commit: "mason: align Pi ignored keys and native ..." · Reviewed by Greptile