Skip to content

D54 — Per-server trust persisted at connect (replaces the recurring --auto-trust gate)

Context. Artifacts from the KB arrive signed:false (D40): without --auto-trust, every sync/connect leaves them in needs_approval. The TUI did not expose --auto-trust at all, so from there they stayed pending forever — in a single-user context, "re-approving" at every sync is pure friction that verifies nothing.

Decision. Trust becomes an explicit choice made once at connect, persisted: clientconfig.Config.Trust bool (default true), toggle in the connect form shared CLI/TUI. sync/status/TUI use cfg.Trust as default; --auto-trust remains a one-off override (cfg.Trust || --auto-trust) at materialization time. status/TUI never mutate Signed: they report a separate trust state per artifact (snapshotArtifacts, D115) that reads cfg.Trust read-only to report trusted instead of needs_approval, so as not to show a false pending approval without pretending the artifact was cryptographically verified. No symmetric --no-trust: revoking is rare, manually setting trust: false in .cartographer.yaml is enough. Rationale. The signature placeholder (D40) stays identical server-side; this decision concerns only who/when decides to trust (the user, at connect, persisted — not relitigated at every sync). Discarded alternatives. A symmetric CLI --no-trust: no real use case, it would only have doubled the flag surface to maintain. Details: docs/configurator.md §.cartographer.yaml, §cartographer connect.