rcourtman
bdb212744c
Remove the cloud_context_privacy dial; fix cloud context to a lean posture
...
Per maintainer decision: the cloud-context-privacy feature was bloat. The real
fix for the "useless Assistant on cloud" problem was the earlier sensitivity
recalibration (ordinary workloads = Internal, not redacted); the dial layered a
configurable knob on top of an already-solved problem, guarding mostly-non-secret
data on a destination the operator opted into, and demanded every model-bound path
stay dial-aware (a standing leak surface). The privacy control users actually
understand is the choice of model — cloud provider vs. local Ollama.
Removed entirely:
- AIConfig.CloudContextPrivacy dial + constants + GetCloudContextPrivacy /
NormalizeCloudContextPrivacy, AND the now-dead legacy
ShareOperationalContextWithCloud boolean + ShouldShareOperationalContextWithCloud
(internal/config/ai.go); the config-load migration (persistence.go).
- Both fields from the /api/settings/ai request/response, validation, and sync
(ai_handlers.go) + the JSON contract snapshots.
- The "Cloud model privacy" 3-option UI control, form field, presentation copy,
and CloudContextPrivacy type (frontend), plus their tests.
- The dial branching in the seam: chat/service.go cloudPrivacyLevel,
CloudContextPolicy.Level + local_only suppression + the localOnly directive
(context_prefetch.go), the inventory resourceLabel dial logic (resource_context*),
and the modelboundary RedactLocalOnlyResourcesOnly option.
Fixed lean posture (no setting): a cloud-routed model receives real infrastructure
context, with two always-on invariants enforced by the model-boundary sanitizer —
credentials are always stripped, and local-only/Restricted resources (the floor)
never leave the local trust boundary. Local (Ollama) always full. The sanitizer's
default is now the local-only floor; it remains the universal backstop installed on
EVERY model-bound path (chat, session compaction, discovery/report/analysis via the
shared helper). Kept the two standalone fixes from this effort: compaction now
routes through the sanitizer, and directives no longer inject the "redacted by
policy" placeholder.
Governance: ai-runtime contract rewritten to a fixed-posture rule; api-contracts /
frontend-primitives / agent-lifecycle / storage-recovery dial references removed.
Tests updated to the floor-only behavior (local-only redacted, Sensitive flows,
secrets stripped). Full internal/ai/..., config, api suites green; frontend
type-check + tests + lint green.
2026-06-09 09:43:21 +01:00
..
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-13 14:04:14 +01:00
2026-05-13 14:04:14 +01:00
2026-05-28 13:44:20 +01:00
2026-04-22 00:05:57 +01:00
2026-04-22 00:05:57 +01:00
2026-04-22 00:05:57 +01:00
2026-02-04 14:24:42 +00:00
2026-05-28 16:31:19 +01:00
2026-05-28 16:31:19 +01:00
2026-05-12 12:06:27 +01:00
2026-05-13 18:36:00 +01:00
2026-06-03 12:29:37 +01:00
2026-05-19 09:47:05 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 08:39:31 +01:00
2026-05-05 14:19:50 +01:00
2026-05-04 00:50:14 +01:00
2026-02-04 13:43:28 +00:00
2026-01-25 21:08:44 +00:00
2026-01-19 19:26:18 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 21:56:36 +01:00
2026-06-04 21:56:36 +01:00
2026-05-28 16:31:19 +01:00
2026-04-22 22:57:08 +01:00
2026-03-24 23:59:52 +00:00
2026-03-27 08:39:59 +00:00
2026-06-07 18:01:55 +01:00
2026-06-04 11:23:05 +01:00
2026-06-07 18:01:55 +01:00
2026-03-18 16:06:30 +00:00
2026-06-07 18:01:55 +01:00
2026-03-18 16:06:30 +00:00
2026-01-25 21:08:44 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-19 04:04:14 +00:00
2026-04-23 15:54:48 +01:00
2026-04-09 20:15:17 +01:00
2026-04-11 16:47:37 +01:00
2026-04-22 00:39:53 +01:00
2026-05-12 12:06:27 +01:00
2026-03-18 16:06:30 +00:00
2026-05-15 22:45:48 +01:00
2026-03-18 16:06:30 +00:00
2026-06-07 00:06:34 +01:00
2026-06-09 09:43:21 +01:00
2026-06-09 09:43:21 +01:00
2026-04-28 15:49:18 +01:00
2026-06-03 12:29:37 +01:00
2026-03-26 17:12:27 +00:00
2026-04-11 16:47:37 +01:00
2026-03-18 16:06:30 +00:00
2026-05-06 16:31:51 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-28 15:10:39 +01:00
2026-05-06 16:31:51 +01:00
2026-01-25 21:08:44 +00:00
2026-05-08 02:21:31 +01:00
2026-05-11 23:10:35 +01:00
2026-03-30 13:22:50 +01:00
2026-03-18 16:06:30 +00:00
2026-05-28 13:15:55 +01:00
2026-06-03 12:29:37 +01:00
2026-03-28 21:14:54 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-28 13:44:20 +01:00
2026-04-22 07:59:12 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-11 16:47:37 +01:00
2026-03-25 00:36:47 +00:00
2026-01-24 22:42:23 +00:00
2026-05-21 16:11:30 +01:00
2026-05-28 14:49:20 +01:00
2026-05-04 00:16:31 +01:00
2026-05-04 00:16:31 +01:00
2026-02-04 09:52:32 +00:00
2026-03-24 23:59:52 +00:00
2026-05-28 14:49:20 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 23:16:15 +01:00
2026-03-18 16:06:30 +00:00
2026-05-06 14:25:36 +01:00
2026-05-06 14:08:03 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-05-03 12:25:56 +01:00
2026-05-03 12:25:56 +01:00
2026-04-01 01:04:06 +01:00
2026-02-02 18:59:44 +00:00
2026-06-05 20:15:55 +01:00
2026-06-04 14:07:14 +01:00
2026-06-02 12:45:48 +01:00
2026-06-02 17:34:10 +01:00
2026-06-01 22:41:10 +01:00
2026-03-26 20:51:29 +00:00
2026-05-04 09:47:54 +01:00
2026-05-04 09:47:54 +01:00
2026-05-04 23:16:15 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-03-18 16:06:30 +00:00
2026-04-22 01:03:10 +01:00
2026-04-09 20:15:17 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2025-12-01 23:50:10 +00:00
2026-05-05 12:59:59 +01:00
2026-06-03 22:40:30 +01:00
2026-03-31 12:53:08 +01:00
2025-12-01 14:46:00 +00:00
2026-03-18 16:06:30 +00:00
2026-04-19 20:42:22 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2025-12-02 17:21:48 +00:00
2026-04-22 20:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-28 20:35:10 +00:00
2026-03-18 16:06:30 +00:00
2026-04-26 17:26:16 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-01-25 21:08:44 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-28 15:51:31 +01:00
2026-04-10 12:33:57 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-05-25 18:20:11 +01:00
2026-06-03 12:29:37 +01:00
2026-05-14 00:22:18 +01:00
2026-05-14 00:22:18 +01:00
2026-05-25 18:20:11 +01:00
2026-05-06 14:25:36 +01:00
2026-05-25 18:20:11 +01:00
2026-06-03 12:29:37 +01:00
2026-04-22 01:18:33 +01:00
2026-05-13 20:16:35 +01:00
2026-06-09 09:43:21 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 15:27:10 +01:00
2026-04-26 15:27:10 +01:00
2026-05-04 09:14:09 +01:00
2026-04-11 17:20:58 +01:00
2026-05-05 12:59:59 +01:00
2026-06-03 12:29:37 +01:00
2026-05-04 09:14:09 +01:00
2026-05-04 09:14:09 +01:00
2026-05-05 12:59:59 +01:00
2026-05-05 12:59:59 +01:00
2026-03-18 16:06:30 +00:00
2026-06-02 23:54:48 +01:00
2026-04-30 09:23:40 +01:00
2026-04-30 09:23:40 +01:00
2026-06-04 10:07:10 +01:00
2026-06-04 11:49:17 +01:00
2026-03-18 16:06:30 +00:00
2026-05-20 14:54:19 +01:00
2026-06-05 09:21:53 +01:00
2026-03-24 16:05:19 +00:00
2026-06-02 23:54:48 +01:00
2026-03-18 16:06:30 +00:00
2026-06-02 23:54:48 +01:00
2025-11-29 17:06:18 +00:00
2026-06-02 23:54:48 +01:00
2026-04-30 09:13:04 +01:00
2026-04-30 09:13:04 +01:00
2026-03-28 20:35:10 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-25 23:40:22 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-04-22 04:23:23 +01:00
2026-05-13 00:28:24 +01:00
2026-05-13 00:28:24 +01:00
2026-03-18 16:06:30 +00:00
2026-02-02 22:01:46 +00:00
2026-03-18 16:06:30 +00:00
2026-01-25 21:08:44 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-02 17:34:10 +01:00
2026-04-05 13:18:30 +01:00
2026-04-28 15:49:18 +01:00
2026-04-28 15:49:18 +01:00
2026-04-28 16:36:09 +01:00
2026-03-18 16:06:30 +00:00
2026-05-04 09:33:19 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-10 12:54:12 +01:00
2026-05-05 09:26:10 +01:00
2026-05-03 12:48:01 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-04-28 19:12:21 +01:00
2026-04-11 16:47:37 +01:00
2026-04-10 12:33:57 +01:00
2026-05-05 12:59:59 +01:00
2026-05-05 12:59:59 +01:00
2026-04-28 19:12:21 +01:00
2026-06-03 12:29:37 +01:00
2026-05-05 12:59:59 +01:00
2026-04-16 10:17:37 +01:00
2026-06-03 12:29:37 +01:00
2026-06-03 18:12:42 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-02 22:02:22 +00:00
2025-12-12 11:05:24 +00:00
2026-04-22 00:39:53 +01:00
2026-05-04 22:43:35 +01:00
2026-05-04 22:43:35 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-15 13:40:24 +01:00
2026-05-12 21:10:58 +01:00
2026-05-12 21:10:58 +01:00
2026-05-12 21:10:58 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-01-19 19:26:18 +00:00
2025-12-10 00:29:07 +00:00
2026-04-10 23:40:13 +01:00
2026-06-02 21:10:13 +01:00
2026-05-10 22:59:23 +01:00
2026-06-03 12:29:37 +01:00
2026-05-21 12:33:10 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-04-22 05:42:45 +01:00
2026-04-22 05:42:45 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 16:47:37 +01:00
2026-04-11 16:47:37 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-06-03 12:29:37 +01:00
2026-06-03 12:29:37 +01:00
2026-06-03 12:29:37 +01:00
2026-04-23 23:04:03 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-01-25 21:08:44 +00:00
2026-02-02 22:02:22 +00:00
2025-12-02 16:47:13 +00:00
2026-02-04 15:10:02 +00:00
2026-06-04 09:29:47 +01:00
2026-06-04 09:29:47 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-29 16:25:09 +01:00
2026-05-04 00:16:31 +01:00
2026-06-03 12:29:37 +01:00
2026-04-22 05:42:45 +01:00
2026-04-01 16:36:44 +01:00
2026-04-22 05:42:45 +01:00
2026-03-18 16:06:30 +00:00
2026-04-18 00:06:50 +01:00
2026-04-18 00:06:50 +01:00
2026-05-25 09:25:03 +01:00
2026-05-25 09:25:03 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-05-25 21:47:12 +01:00
2026-05-25 21:47:12 +01:00
2026-04-22 00:39:53 +01:00
2026-05-25 21:38:43 +01:00
2026-05-21 15:15:23 +01:00
2026-05-21 15:15:23 +01:00
2026-03-18 16:06:30 +00:00
2026-01-19 19:26:18 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-04 14:35:08 +00:00
2026-05-04 09:33:19 +01:00
2026-04-08 20:42:36 +01:00
2026-04-09 08:07:34 +01:00
2026-05-16 13:57:53 +01:00
2026-03-18 16:06:30 +00:00
2026-03-26 20:51:29 +00:00
2026-03-26 20:51:29 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 23:14:25 +01:00
2026-03-27 12:04:44 +00:00
2026-04-22 00:39:53 +01:00
2026-03-18 16:06:30 +00:00
2026-02-02 18:59:44 +00:00
2026-02-02 23:01:29 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-25 23:40:22 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-26 17:26:16 +01:00
2026-01-22 00:30:15 +00:00
2026-03-26 22:43:26 +00:00
2026-03-31 15:42:16 +01:00
2026-02-04 15:01:09 +00:00
2026-04-22 00:39:53 +01:00
2026-05-01 21:36:28 +01:00
2026-04-24 13:13:36 +01:00
2026-03-25 12:14:16 +00:00
2026-06-06 18:32:21 +01:00
2026-06-06 18:32:21 +01:00
2026-04-30 12:53:29 +01:00
2026-04-11 16:47:37 +01:00
2026-04-11 16:47:37 +01:00
2026-05-16 13:57:53 +01:00
2026-03-25 22:27:35 +00:00
2026-06-02 21:10:13 +01:00
2026-03-26 09:15:15 +00:00
2026-03-26 22:58:27 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-04 10:28:41 +00:00
2026-05-24 12:07:10 +01:00
2026-03-18 16:06:30 +00:00
2026-05-13 14:19:59 +01:00
2026-05-13 14:19:59 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 21:56:36 +01:00
2026-06-04 21:56:36 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 15:27:10 +01:00
2026-04-28 16:36:09 +01:00
2026-03-26 17:12:27 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-22 01:18:33 +01:00
2026-04-18 00:06:50 +01:00
2026-04-23 23:04:03 +01:00
2026-04-23 23:04:03 +01:00
2026-05-27 18:36:33 +01:00
2026-05-03 12:25:56 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 15:35:05 +01:00
2026-05-22 08:54:43 +01:00
2026-02-04 10:28:41 +00:00
2026-02-04 10:28:41 +00:00
2026-05-09 23:04:22 +01:00
2026-02-04 10:28:41 +00:00
2026-04-22 00:39:53 +01:00
2026-06-07 18:01:55 +01:00
2026-03-26 21:43:30 +00:00
2026-04-26 17:26:16 +01:00
2026-03-26 21:43:30 +00:00
2026-03-26 21:43:30 +00:00
2026-05-10 14:30:41 +01:00
2026-05-07 21:58:06 +01:00
2026-05-07 21:58:06 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-04-28 16:36:09 +01:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-30 12:24:22 +01:00
2026-05-25 21:47:12 +01:00
2026-05-06 10:35:34 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 14:42:43 +01:00
2026-03-18 16:06:30 +00:00
2026-06-06 19:42:27 +01:00
2026-04-29 16:25:09 +01:00
2026-05-21 16:26:00 +01:00
2026-05-03 13:19:51 +01:00
2026-05-21 16:26:00 +01:00
2026-05-03 12:48:01 +01:00
2026-04-29 16:25:09 +01:00
2026-04-01 12:00:31 +01:00
2026-05-21 16:15:53 +01:00
2026-02-04 10:28:41 +00:00
2026-03-30 09:52:07 +01:00
2026-03-30 09:52:07 +01:00
2026-06-06 18:32:21 +01:00
2026-05-04 00:50:14 +01:00
2026-05-10 22:25:34 +01:00
2026-05-10 22:25:34 +01:00
2026-04-22 07:59:12 +01:00
2026-06-03 12:29:37 +01:00
2026-05-21 12:29:32 +01:00
2026-03-24 23:59:52 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 00:50:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 00:50:14 +01:00
2026-05-21 12:29:32 +01:00
2026-05-28 14:49:20 +01:00
2026-05-28 14:49:20 +01:00
2026-05-28 14:49:20 +01:00
2026-06-04 14:07:14 +01:00
2026-04-12 09:02:56 +01:00
2026-04-11 14:51:10 +01:00
2026-05-03 12:48:01 +01:00
2026-04-01 12:00:31 +01:00
2026-04-01 16:36:44 +01:00
2026-04-01 16:36:44 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-05-05 12:59:59 +01:00
2026-05-05 12:59:59 +01:00
2026-06-03 12:29:37 +01:00
2026-04-07 10:24:53 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-28 23:13:43 +00:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-02 21:10:13 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-04 14:48:03 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 23:16:15 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-28 16:36:09 +01:00
2026-03-29 19:50:31 +01:00
2026-03-29 20:36:43 +01:00
2026-03-29 20:13:39 +01:00
2026-05-05 12:59:59 +01:00
2026-05-05 12:59:59 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 14:42:43 +01:00
2026-06-04 11:49:17 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-05-13 19:00:02 +01:00
2026-06-02 10:15:35 +01:00
2026-06-04 08:39:31 +01:00
2026-05-29 14:51:18 +01:00
2026-05-29 14:19:04 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-03-18 16:06:30 +00:00
2026-06-02 23:54:48 +01:00
2026-06-03 09:18:07 +01:00
2026-06-03 09:18:07 +01:00
2026-06-03 09:18:07 +01:00
2026-05-28 17:22:01 +01:00
2026-03-18 16:06:30 +00:00
2026-04-22 03:06:22 +01:00
2026-05-22 20:26:56 +01:00
2026-05-22 20:26:56 +01:00
2026-06-03 12:29:37 +01:00
2026-04-22 04:46:13 +01:00