Commit Graph

78555 Commits

Author SHA1 Message Date
Marvinthebored 778be6f5cc fix(auth): do not admit ambient environment credentials behind declared profiles (#118458)
A provider credential present only in the process environment — named in
neither the provider entry, `auth.profiles`, nor `auth.order` — was appended to
the auth attempt list behind the operator's declared profiles. A run that left
a declared profile could therefore continue on an undeclared credential, which
may bill a different account, with no configuration authorizing the transition
and nothing reporting that it happened.

Add an explicit `authorization: "declared" | "ambient"` fact on direct auth
sources and enforce it during source selection. The field is required rather
than defaulted so every construction site is audited; `evidence` is left as
provenance, since a declared credential can legitimately be environment-sourced
via a `${VAR}` marker or a SecretRef.

An ambient credential may still serve a provider with no declared profiles (the
documented zero-config `PROVIDER_API_KEY` path), but it is no longer admitted
behind declared profiles, nor substituted for declared profiles that turned out
to be unusable. `auth.order` failover is unaffected: profiles are never filtered
by this change. The read-only availability evaluator applies the same rule so
status cannot advertise a credential the runtime refuses.

This restores the invariant that held before 1b1cebfe42 (#104685), where an
environment candidate was reachable only when a provider had no declared
profiles. The regression shipped in 2026.7.2-beta.1 onwards; no GA release is
affected.

Reported in #117956.


Claude-Session: https://claude.ai/code/session_01Nwk2KaB6zL71xa1i3Xwgwi

Co-authored-by: Marvinthebored <262704729+Marvinthebored@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 17:15:35 -07:00
Vincent Koc 67d67b5ca9 test(ui): cover operator administration flows (#118836) 2026-08-04 08:14:58 +08:00
Vincent Koc 2de88241a4 test(qa): prove packaged plugin lifecycle transitions (#118973) 2026-08-04 08:13:58 +08:00
Vincent Koc 0287116594 test(qa): cover startup instruction first action (#119010) 2026-08-04 08:09:11 +08:00
Vincent Koc 85af36dbf6 improve(tui): prove CLI entrypoints under real PTY (#118990)
* test(tui): cover CLI entrypoints under PTY

* test(tui): require built CLI in PTY evidence
2026-08-04 08:07:17 +08:00
Vincent Koc 2039b87d85 test(qa): cover media audio selection fallback (#118859) 2026-08-04 07:53:49 +08:00
Michael Christenson II 7f7a709b1d fix: Ollama missing from onboarding when its service is reachable (#118020) 2026-08-03 17:49:31 -06:00
clawSean 5cd6694349 docs(sms): add Twilio A2P delivery guidance (#88743)
* docs(sms): add A2P delivery guidance

* fix(docs): correct Twilio A2P guidance

---------

Co-authored-by: clawSean <260045960+clawSean@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-04 07:43:21 +08:00
Vincent Koc d38f68065f fix(sms): align MMS retries with network timeouts (#119002) 2026-08-04 07:29:55 +08:00
Vincent Koc d8caec4de5 test(qa): cover composed tool result consumption (#118991) 2026-08-04 07:28:06 +08:00
Vincent Koc abf9e26d96 test(cron): cover delivery outcomes (#118993) 2026-08-04 07:19:17 +08:00
Vincent Koc 31a6d096a1 test(qa): cover guarded media fetch boundaries (#118857) 2026-08-04 07:18:40 +08:00
Vincent Koc 9dfc74e0cb test(qa): cover music generation controls (#118901) 2026-08-04 07:12:05 +08:00
Vincent Koc 482a63337f test(qa): cover core vision routing (#118861) 2026-08-04 07:11:24 +08:00
Vincent Koc e110b56007 test(qa): cover Gateway usage and memory APIs (#118995) 2026-08-04 07:10:56 +08:00
Vincent Koc 15b23cfc2d fix(docker): use authenticated gateway health command (#118996)
* fix(docker): use authenticated gateway health command

* test(docker): prove documented compose health command
2026-08-04 07:10:36 +08:00
Peter Steinberger a78f2c40bf test(plugins): align tool fixtures with owner policy (#118959) 2026-08-03 16:09:05 -07:00
Vincent Koc 3bbc4ad085 test(qa): cover managed gateway service lifecycle (#118855) 2026-08-04 07:07:27 +08:00
Vincent Koc dc11c78927 test(qa): cover audio proxy and limit handling (#118863) 2026-08-04 07:06:03 +08:00
Vincent Koc 1cdfe9ed7d test(qa): cover PDF extraction dispatch (#118860) 2026-08-04 07:02:00 +08:00
Vincent Koc a2ccd6ea61 test(ui): add service-worker update primary QA proof (#118805)
* test(ui): prove service-worker production updates

* test(qa): register control ui service-worker proof

* fix(ui): type production build environment

* fix(ui): avoid service-worker test shadowing

* test(ui): gate service-worker proof capture

* test(ui): isolate production e2e build output

* test(ui): assert claimed service worker version
2026-08-04 06:56:47 +08:00
Vincent Koc 06b5f0b2ff test(qa): cover CLI onboarding and plugin install sources (#118882)
* test(qa): cover CLI onboarding and plugin sources

* test(qa): assert npm file plugin source

* test(qa): redact onboarding password assertion

* test(qa): retain onboarding evidence log
2026-08-04 06:54:42 +08:00
Vincent Koc ba2764a256 test(qa): cover remote logging boundaries (#118951)
* test(qa): cover remote logging boundaries

* test(qa): tolerate gateway log interleaving

* test(qa): satisfy logging type guards

* test(qa): always stop log follow child
2026-08-04 06:53:49 +08:00
Peter Steinberger 6194cfdfb2 fix(sms): retry transient MMS failures before durable adoption (#118994)
* fix(sms): retry transient MMS downloads before durable adoption

* test(sms): align durable ingress harness with typed runtime contracts
2026-08-03 15:50:30 -07:00
Vincent Koc a492eb9068 test(qa): cover video generation invocation (#118864) 2026-08-04 06:46:09 +08:00
Vincent Koc 2e3284abaa test(qa): cover media reference intake (#118858) 2026-08-04 06:44:59 +08:00
Vincent Koc c27fb940cf test(qa): cover image generation task lifecycle (#118915) 2026-08-04 06:43:40 +08:00
Vincent Koc 0758316883 feat(sms): track Twilio delivery status (#118665)
* feat(sms): track Twilio delivery status

* fix(sms): preserve Twilio delivery callbacks under inbound load

* fix(sms): correct delivery status contracts

* fix(sms): retry transient Twilio callback reads

* fix(sms): bound delivery callback admission

* docs(sms): clarify delivery callback recovery
2026-08-04 06:39:17 +08:00
Vincent Koc 1be662aa9d test(tasks): cover TaskFlow registry lifecycle (#118983) 2026-08-04 06:38:41 +08:00
Vincent Koc 2da6cb0f01 test(gateway): verify SSH tunnel fallback (#118818)
* test(gateway): cover SSH tunnel fallback

* test(gateway): expose SSH startup diagnostics

* test(gateway): permit key auth for Testbox user

* test(gateway): remove unused SSH target helper

* test(gateway): serialize shared SSH state

* test(gateway): coordinate overlapping SSH producers

* test(gateway): isolate SSH trust state

* test(gateway): require Testbox for SSH fixture
2026-08-04 06:38:23 +08:00
Peter Steinberger c83dcc2bc0 fix(security): harden network tool output at canonical owner boundaries (#118984)
* fix(security): bound external tool content at its canonical owner boundary

* fix(plugin-sdk): document supported security boundary and restore facade parity
2026-08-03 15:34:33 -07:00
Peter Steinberger 3d65ea2a1b fix(googlechat): align doctor policy ownership with canonical account configuration (#118972)
* fix(googlechat): align doctor policy ownership with canonical account configuration

* test(googlechat): align generated channel metadata and typed doctor fixtures
2026-08-03 15:23:16 -07:00
Vincent Koc 57a1cbbeee test(tui): prove editor input through PTY (#118982) 2026-08-04 06:18:38 +08:00
Peter Steinberger 2c79d1d7fc fix(memory): persist trusted owner provenance at canonical transcript boundary (#118987) 2026-08-03 15:18:01 -07:00
Vincent Koc 51f6b8f5f8 test(qa): cover health monitor and cache boundaries (#118961) 2026-08-04 06:17:16 +08:00
Patrick Erichsen 00b459a172 fix(macos): restore dashboard frame double-click zoom (#118976) 2026-08-03 15:14:46 -07:00
Peter Steinberger 554968fba6 fix(googlechat): recover durable lanes after oversized attachments (#118986) 2026-08-03 15:12:17 -07:00
Vincent Koc 0483ca712b test(qa): cover runtime telemetry evidence (#118950)
* test(qa): add telemetry runtime evidence

* test(qa): fix telemetry evidence typecheck
2026-08-04 06:11:07 +08:00
Vincent Koc d3ea24c669 fix(gateway): resolve SQLite usage details (#118918) 2026-08-04 06:09:21 +08:00
Vincent Koc bc65789e13 test(cron): cover durable scheduler state (#118981) 2026-08-04 06:08:26 +08:00
Vincent Koc a2e0eea58c test(gateway): cover node exec approval relay (#118825)
Adds real Gateway QA coverage for node exec approval get/set forwarding, malformed payload rejection, and paired-node ownership fencing.
2026-08-04 06:06:25 +08:00
Vincent Koc 3a57ad4b2e test(qa): add Active Memory recall coverage (#118963) 2026-08-04 06:05:32 +08:00
Vincent Koc 59982714ee test(qa): promote package-backed Docker artifact proof (#118826) 2026-08-04 06:01:59 +08:00
Vincent Koc aff3909db6 test(qa): cover diagnostic event boundary (#118844) 2026-08-04 06:01:56 +08:00
Vincent Koc 6ab556919e test(gateway): cover WebSocket runtime contracts (#118797) 2026-08-04 06:01:34 +08:00
Peter Steinberger 65fa1f9a7b fix(signal): drain accepted websocket messages before shutdown (#118975)
* fix(signal): drain accepted websocket messages before shutdown

* test(signal): avoid returning timer handles from Promise executors
2026-08-03 14:58:13 -07:00
Vincent Koc 1d446ad2cc fix(plugins): remove stale load paths during uninstall (#118930)
* test(qa): prove marketplace plugin updates

* fix(plugins): clean exact install load paths on uninstall

* fix(ci): register marketplace lifecycle assertions
2026-08-03 21:57:54 +00:00
Vincent Koc 972eb56ffe test(qa): cover bundled runtime discovery (#118922) 2026-08-03 21:57:42 +00:00
Vincent Koc 10b4baceb3 chore(clawhub): cover plugin release policy contracts (#118971)
* test(clawhub): cover plugin release policy contracts

* test(clawhub): route release checks to policy coverage
2026-08-04 05:55:35 +08:00
Vincent Koc 95f7777b42 test(qa): cover support export and stability (#118956) 2026-08-04 05:53:13 +08:00