Expand description
The Lonca daemon: the Gatekeeper every write goes through.
Re-exports§
pub use home::Home;pub use service::Clock;pub use service::Service;pub use service::Settings;pub use service::system_clock;
Modules§
- client
- Client for the daemon socket.
- gitcmd
- How the daemon runs
git, the one program it starts for network transport (fetch, push) and for a few plumbing reads. - home
- The daemon’s home directory.
- hooked
- What the daemon heard from a session’s hooks, to prove they run (#190).
- hooks
- Harness integration: turning hook events into observations and verdicts, and inspecting how well a harness is locked down.
- limits
- What keeps one client from tying the daemon up. All of it sits in front
of the single writer and none of it reaches
decide(): a request refused here was never logged, so a replay does not see it. - protocol
- Wire protocol: one JSON object per line over a Unix socket. The shapes a
client needs are in
lonca-client; here is what only the daemon’s policy knows. - proxy
- The Lonca network proxy (observation level H2).
- repo
- One repository: its store, its sequencer and its policy.
- security
- Security events outside the operation log (issue #56).
- server
- Unix socket server: one thread per connection, one JSON line per request.
How many, for how long and how long a line:
crate::limits. - service
- Request handling: authentication, the single writer, side effects and the merge queue.
- sys
- Every call into libc the daemon makes, apart from
peer_other.rs(macOS sandbox questions) and the client’s own (lonca_client::sys, re-exported here). Unsafe code is refused in the rest of the workspace ([workspace.lints]); each block here says why it is sound. - trust
- Who a client expects on the other end of the daemon socket (design §3.3, measure 2). The daemon checks its peer’s uid; this is the other half, so that a process answering on the socket path gets neither a session token nor the last word on what a hook allows.