Commit Graph

4143 Commits

Author SHA1 Message Date
rcourtman 4efc428bb8 Keep Patrol objectives mission-scoped 2026-08-15 05:00:09 +01:00
rcourtman d218b012d1 Preserve canonical Patrol objective scopes 2026-08-15 04:30:09 +01:00
rcourtman 88de80022c Require Patrol to submit supported actions 2026-08-15 03:53:03 +01:00
rcourtman 0460797aab Bind runtime version to packaged binary 2026-08-15 03:30:20 +01:00
rcourtman 5cffa54620 Map low reasoning effort to Ollama thinking control 2026-08-15 03:15:41 +01:00
rcourtman 0bacc727da Honor local Patrol preflight deadlines 2026-08-15 02:23:48 +01:00
rcourtman 50cfa11f20 Align scoped Patrol runtime assessments 2026-08-15 01:42:07 +01:00
rcourtman a36e816161 Recover interrupted Patrol investigations 2026-08-15 01:26:36 +01:00
rcourtman 98bf51efa4 Make Patrol readiness reflect model checks 2026-08-15 00:57:51 +01:00
rcourtman 1a17525380 Give truncated Patrol decisions room to finish 2026-08-15 00:16:47 +01:00
rcourtman 8ca6936ab8 Fail closed on truncated Patrol decisions 2026-08-14 23:59:06 +01:00
rcourtman aaacfcc73f Honor topology limits for investigations 2026-08-14 23:35:30 +01:00
rcourtman 34cfc70329 Keep scoped Patrol all-clears coherent 2026-08-14 23:12:16 +01:00
rcourtman f0478c769b Accept tool-free Patrol all-clears 2026-08-14 22:42:08 +01:00
rcourtman 9dac6ed517 Move Patrol finding snapshot into core 2026-08-14 22:06:04 +01:00
rcourtman ff15cd93ac Make Patrol lifecycle decisions idempotent 2026-08-14 21:35:18 +01:00
rcourtman 99ee4433d0 Keep reliability signals in Patrol decision floor 2026-08-14 21:07:35 +01:00
rcourtman 2843ea954b Keep alert-owned states out of Patrol findings 2026-08-14 20:37:28 +01:00
rcourtman a3d7659f2c Make Patrol finding decisions idempotent 2026-08-14 20:09:26 +01:00
rcourtman 9315dc556c Make new Patrol finding assessments idempotent 2026-08-14 19:27:58 +01:00
rcourtman 611e9a0227 Keep new Patrol findings out of reassessment 2026-08-14 19:09:58 +01:00
rcourtman 7f80f29db7 Bound Patrol evaluator finding writes 2026-08-14 18:51:05 +01:00
rcourtman 67bbed4c40 Keep Patrol continuations stateless 2026-08-14 17:58:15 +01:00
rcourtman d435b4c0c6 Bound Patrol follow-up execution 2026-08-14 17:31:06 +01:00
rcourtman 34b77e53b4 Remove overlapping Patrol finding tool 2026-08-14 16:43:25 +01:00
rcourtman f39e7d1d0f Preserve scoped Patrol finding decisions 2026-08-14 16:28:58 +01:00
rcourtman 91281a299e Add second reviewed Patrol model route 2026-08-14 16:10:21 +01:00
rcourtman bb34eec409 Recognize reviewed OpenRouter free route pricing 2026-08-14 16:04:53 +01:00
rcourtman daccf6c4d7 Fold the action ledger into Patrol navigation 2026-08-14 13:08:12 +01:00
rcourtman 48fac73ff0 Rework Patrol around outcome-driven autonomous operations 2026-08-14 12:52:51 +01:00
rcourtman 772ff3087d Rework Patrol around outcomes and quiet autonomy 2026-08-14 09:45:30 +01:00
rcourtman 2373ace026 Complete Patrol retained objective loop 2026-08-14 03:11:10 +01:00
rcourtman 6f09bc4676 Run Patrol against canonical availability signals 2026-08-14 01:56:18 +01:00
rcourtman 00e570b188 Preserve Patrol objective intent through remediation 2026-08-14 01:41:46 +01:00
rcourtman e31fc37983 Gate Patrol actions on agent preflight 2026-08-14 01:12:49 +01:00
rcourtman ff15c91274 Run validated local Patrol observers 2026-08-14 00:45:22 +01:00
rcourtman 71a0fa37a1 Add model-authored Patrol observer proposals 2026-08-14 00:24:52 +01:00
rcourtman ff2bfbb320 Make platform telemetry presentation evidence-aware 2026-08-14 00:18:23 +01:00
rcourtman 903b579f8a Add durable Patrol objectives 2026-08-13 23:59:33 +01:00
rcourtman a7646e5f86 Fix Patrol autonomy and refusal reporting 2026-08-13 23:26:08 +01:00
rcourtman d27abf6fda Fix vSphere backup status presentation 2026-08-13 23:22:30 +01:00
rcourtman 14a3b8b5af Fix thermal history for agent machines 2026-08-13 22:58:29 +01:00
rcourtman 929c03b490 Prepare v6.2.2-rc.2 release 2026-08-13 10:54:36 +01:00
rcourtman 3355f7a671 Read host Docker credentials for private registry update checks
Container update detection only ever negotiated anonymous pull tokens, so
containers from registries that reject anonymous digest HEADs pinned a
permanent "authentication required" badge (#1706). The agent already runs
on the Docker host, so the checker now resolves the same credential store
docker pull uses - config.json auths entries, credsStore/credHelpers
credential helpers (docker-credential-<name> get), and Podman's auth.json -
and presents the stored login: Basic auth on Bearer token negotiation and
on the hardcoded Docker Hub / ghcr.io token endpoints, direct answers to
Basic challenges, and the refresh-token grant for identity-token logins
such as Azure ACR.

Credentials never leave the host: they are only presented to the registry
or its token endpoint, helper output stays out of reported check errors,
and lookups are cached in memory for five minutes. Helper names are
validated before exec, and a stale login falls back to the anonymous path
so checks that used to work keep working. Set
PULSE_DISABLE_REGISTRY_CREDENTIALS=true (--disable-registry-credentials)
to keep detection anonymous-only. The agent-lifecycle and security-privacy
subsystem contracts pin the host-local credential boundary.
2026-08-13 10:06:26 +01:00
rcourtman faf13973c4 Keep release race builds off WSL tmpfs 2026-08-12 17:56:11 +01:00
rcourtman 647f3e6a6c Keep shipped upgrade guide in release sync 2026-08-12 17:43:09 +01:00
rcourtman 2c48696ad7 Prepare v6.2.2-rc.1 release 2026-08-12 17:22:10 +01:00
rcourtman 31b626d73c Fix release worker Go toolchain parity check 2026-08-12 17:11:04 +01:00
rcourtman 1bb9ba4208 Accelerate release qualification with exact-SHA worker 2026-08-12 17:07:12 +01:00
rcourtman 4eb156661e Document the 5.x proxy-auth mitigation and its end-of-life status
The 5.x line is end-of-life and will not be patched for the proxy-auth admin
gating defect, so the docs have to carry its mitigation: a 5.x operator has
nowhere else to look, and the security advisory is a moment in time while this
page is where they actually land.

5.x needs two changes, and either alone leaves admin open. It never applies the
documented "admin" default, so PROXY_AUTH_ADMIN_ROLE must be set explicitly.
It also only evaluates roles when the header carries a value — absent or empty
leaves isAdmin at its true default — so the proxy has to send a placeholder for
users with no groups, which is exactly the case an IdP tends to produce for the
least privileged account. 6.x fixes both: gating activates on the role header
alone, and a blank header resolves to non-admin.

Includes the negative test both ways round, since "it returns 200" is the only
symptom an operator can actually observe.
2026-08-12 10:21:46 +01:00