Peter Steinberger
4b2d78a2ef
fix(gateway): keep streaming roots until delivery and cleanup finish ( #117505 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 13:57:55 -07:00
Peter Steinberger
a3f070472d
refactor(agents): centralize command delivery test fixtures ( #117613 )
2026-08-01 13:57:41 -07:00
Peter Steinberger
d0b362f255
fix(commitments): make dismissal atomic and truthful ( #117591 )
...
* fix(commitments): report atomic dismissals truthfully
* docs(commitments): explain dismissal JSON results
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 13:54:51 -07:00
Vincent Koc
7779659137
test(ci): stabilize plugin prerelease validation ( #117624 )
2026-08-02 04:50:01 +08:00
Peter Steinberger
fb3d473a73
fix(nodes): preserve operator name on reapproval ( #117608 )
2026-08-01 13:28:57 -07:00
Peter Steinberger
e9bd45d38d
test(system-agent): deduplicate setup inference fixtures ( #117598 )
2026-08-01 13:25:29 -07:00
Peter Steinberger
c6bad23f2d
test(gateway): dedupe chat server fixtures ( #117588 )
2026-08-01 13:12:45 -07:00
Peter Steinberger
17eafa7162
fix(tasks): retain blocked flows until they end ( #117606 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 13:10:11 -07:00
Peter Steinberger
81e392b7ff
fix(channels): preserve filters in offline status diagnostics ( #117570 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 12:58:23 -07:00
Vincent Koc
04ac671de6
perf(gateway): separate startup maintenance timing ( #117577 )
2026-08-02 03:56:51 +08:00
zengLingbiao
37e7307b01
fix(cli): align sessions cleanup label summary by visible width ( #117459 )
2026-08-01 12:52:30 -07:00
Vincent Koc
27b1d04178
perf(gateway): skip empty session reconciliation ( #117589 )
...
* perf(gateway): skip empty session reconciliation
* chore(release): remove branch-local changelog entry
2026-08-02 03:47:49 +08:00
Vincent Koc
acf28495b1
fix(ci): repair plugin prerelease validation ( #117562 )
2026-08-02 03:29:21 +08:00
Peter Steinberger
2a5a64b51f
fix(tasks): sanitize every human task and flow detail ( #117568 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 12:26:58 -07:00
Peter Steinberger
c263c273c7
fix(status): honor explicit local RPC fallback timeouts ( #117519 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 12:20:31 -07:00
Peter Steinberger
4d6a63b7ee
fix(tasks): validate notification policy before persistence ( #117554 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 12:18:11 -07:00
Vincent Koc
ebf121af6a
perf(gateway): mark recovery before model preparation ( #117544 )
...
* perf(gateway): keep recovery runtime off startup path
* perf(gateway): mark recovery before model preparation
* test(gateway): lock recovery marking failure order
2026-08-02 03:06:19 +08:00
Peter Steinberger
1e9a140520
fix(skills): preserve profile in ClawHub command hints ( #117555 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 11:57:20 -07:00
Peter Steinberger
b0ec8bbdfa
fix(cli): explain filtered plugin policy without unsafe recovery ( #117556 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 11:55:59 -07:00
Peter Steinberger
063907e970
refactor(plugins): consolidate registry snapshots ( #117561 )
2026-08-01 11:53:50 -07:00
Peter Steinberger
f35c34343a
fix(plugins): fail blocked enable commands ( #117536 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 11:48:24 -07:00
Peter Steinberger
c5dd9c3095
test(secrets): dedupe runtime state fixtures ( #117563 )
2026-08-01 11:48:07 -07:00
Omar Shahine
a624ba7b96
feat(gateway): advertise chat attachment limits on hello-ok ( #116188 )
...
* feat(gateway): advertise chat attachment limits on hello-ok
Clients had no way to learn the gateway attachment ceilings, so external
clients hardcoded guesses that drifted from server enforcement. Publish the
two unconditional decoded-size ceilings on hello-ok policy.attachments from
one shared resolver so advertised values cannot drift from the parser.
MIME acceptance and per-message counts stay server-side: they depend on the
entrypoint, the resolved model, and payload sniffing, so they cannot be stated
once per connection.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 17d6c355-8948-4b48-a936-e08b1c8806ef
* feat(gateway): advertise chat attachment limits on hello-ok
---------
Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Copilot-Session: 17d6c355-8948-4b48-a936-e08b1c8806ef
2026-08-01 11:31:29 -07:00
Peter Steinberger
d876a83387
refactor(tui): consolidate runtime ownership ( #117368 )
2026-08-01 11:21:48 -07:00
WhatsSkiLL
428a9e9cbc
fix(update): return failure when dirty checkout blocks update ( #117452 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-01 11:11:19 -07:00
Peter Steinberger
2e9d4de131
fix(auto-reply): apply mixed chat directives in one session transaction ( #117542 )
2026-08-01 11:10:07 -07:00
Peter Steinberger
3f9b24237b
fix(doctor): preserve surviving lint selections ( #117543 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 10:55:53 -07:00
MatthewSynthia
8206a0ceb6
fix(media): keep an unquoted MEDIA path with spaces as one media item ( #112464 )
...
Co-authored-by: MatthewSynthia <MatthewSynthia@users.noreply.github.com >
2026-08-01 10:54:01 -07:00
Peter Steinberger
5da998fe8a
refactor(channels): consolidate lightweight plugin discovery ( #117541 )
2026-08-01 10:53:16 -07:00
Peter Steinberger
b7f0df0ac2
refactor(agents): consolidate main-session recovery ownership ( #117383 )
...
* refactor(agents): consolidate main-session recovery ownership
* test(agents): cover recovery owner boundaries
2026-08-01 10:40:56 -07:00
zhangLei99586
685a3dbe5d
fix(proxy-capture): make path-based session cleanup atomic ( #98852 )
2026-08-01 10:40:40 -07:00
Peter Steinberger
bde1602e6e
refactor(agents): consolidate compaction and context-engine ownership ( #117482 )
...
* refactor(agents): consolidate compaction and context-engine ownership
* fix(agents): preserve prior summaries during compaction fallback
* chore(ci): refresh merge proof after routing repair
2026-08-01 10:38:43 -07:00
Peter Steinberger
fb6f60a704
fix(gateway): preserve Responses usage details ( #117533 )
...
* fix(gateway): preserve Responses usage details
* fix(gateway): keep Responses usage type internal
2026-08-01 10:37:02 -07:00
Vincent Koc
5118b0b915
perf(gateway): skip empty session recovery stores ( #117498 )
...
* perf(gateway): skip inactive session recovery stores
* chore: leave release notes to release workflow
2026-08-02 01:29:54 +08:00
Jesse Merhi
9aceb1620d
fix(system-agent): emit the wizard cancel hint once per message ( #113731 )
...
* fix(system-agent): emit the wizard cancel hint once per message
* refactor(wizard): own input wait semantics
* refactor(wizard): declare step input requirements
* refactor(wizard): infer input requirement by step type
* docs: note wizard cancel hint fix
* chore: follow release-owned changelog policy
2026-08-01 17:27:46 +00:00
Peter Steinberger
586e1fe10e
refactor: dedupe secrets runtime snapshot fixtures ( #117502 )
...
* test(secrets): dedupe runtime snapshot fixtures
* test(secrets): preserve runtime auth-store fixture type
2026-08-01 10:26:33 -07:00
Vincent Koc
8b994fc9e1
fix(gateway): keep canonical hooks on pristine startup path ( #117493 )
2026-08-02 01:16:30 +08:00
Masato Hoshino
29577fb03b
fix(daemon): keep backslashes and quotes intact in generated systemd units ( #117375 )
...
* fix(daemon): keep backslashes and quotes intact in generated systemd units
systemdEscapeArg escaped only pairs of backslashes and rendered a quote as
two backslashes plus a quote, so any value holding a lone backslash or a
quote did not survive the readers in this module -- or systemd itself. The
installed Linux service received a different value than the operator
configured, with nothing reporting the difference.
parseSystemdEnvAssignment also carried a private copy of the shared
unquoting loop whose escape branch compared one character against a
two-character literal, so it never unescaped anything. Service inspection
reads through that path, so status and doctor reported the escaped form.
Align the writer with serializeSystemdEnvironmentFileValue and route the
reader through the shared splitter its three siblings already use. Adds
round-trip tables mirroring the Windows cmd sibling.
* fix(daemon): align systemd round-trip parser with current main
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-01 12:04:05 -05:00
Peter Steinberger
e9b959aaaa
fix(cli): preserve machine output through fatal terminal restores ( #117487 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 10:03:33 -07:00
Peter Steinberger
94c5b54d96
fix(plugins): compare authoring metadata by canonical JSON semantics ( #117486 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 10:00:39 -07:00
Peter Steinberger
581688143a
fix(doctor): reject contradictory lint check selectors ( #117495 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 09:57:28 -07:00
Peter Steinberger
fdec6fe7d4
refactor(plugins): reuse scoped loader for capability discovery ( #117373 )
...
* refactor(plugins): reuse scoped loader for capabilities
* fix(plugins): retain channel capabilities during discovery
2026-08-01 09:50:34 -07:00
Vincent Koc
263741b1f0
fix(ci): align release validation fixtures ( #117494 )
...
* fix(release): align beta 6 e2e fixtures
* fix(doctor): preserve missing state startup signal
* test(release): align beta e2e contracts
* test(agents): use canonical empty auth store
* test(agents): isolate prompt cooldown scheduling
* test(release): align main validation fixtures
* test(release): accept Code Mode plugin tool evidence
* fix(test): repair release validation checks
* test(cron): assert structured session targets
2026-08-02 00:39:36 +08:00
Omar Shahine
5db7e1c4ec
fix(talk): preserve owner authorization in realtime consults ( #114163 )
...
* feat(talk): forward realtime consult sender auth
* docs(talk): clarify realtime sender auth contract
* ci: constrain oxlint on hosted runners
* ci: split oxlint core on hosted runners
---------
Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
2026-08-01 09:37:17 -07:00
Peter Steinberger
1296ab3b41
fix(cli): report user profile command outcomes ( #117466 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 09:25:25 -07:00
Vincent Koc
22a902c4cd
fix(models): avoid waiting on promotions before listing models ( #117322 )
...
* fix(models): overlap promotions refresh with model listing
* fix(models): require prefetched promotions refresh
2026-08-02 00:13:37 +08:00
Peter Steinberger
568ea29d2e
refactor(plugins): inherit shared package boundary settings ( #117474 )
2026-08-01 09:11:09 -07:00
Peter Steinberger
ae1ab269eb
fix(systemd): parse all inline environment assignments ( #117484 )
2026-08-01 09:09:51 -07:00
Jesse Merhi
8b21c23cc2
feat(web-fetch): add tools.web.fetch.headers for operator request headers ( #115545 )
...
* feat(web-fetch): add tools.web.fetch.headers for operator request headers
* docs(web-fetch): update cache discriminator comment
* fix(web-fetch): reserve runtime and cookie headers
* fix(web-fetch): harden operator header normalization
* fix(web-fetch): align header safety contracts
* fix(web-fetch): close header logging gaps
* fix(web-fetch): report case-colliding headers
* fix(web-fetch): reject stale colliding headers
* fix(web-fetch): refuse credential token aliases
* fix(web-fetch): preserve empty header values
* fix(web-fetch): refuse credential-shaped headers
* chore(config): refresh web fetch header baselines
* test(web-fetch): cover header security contracts
* fix(web-fetch): narrow credential header refusal
* fix(web-fetch): preserve trace metadata headers
* fix(web-fetch): keep header validation internal
* test(web-fetch): satisfy strict test contracts
* fix(web-fetch): refuse vendor credential headers
* fix(web-fetch): refuse authentication signatures
* fix(web-fetch): detect qualified auth signatures
* fix(web-fetch): refuse auth-suffixed headers
* fix(web-fetch): refuse compact credential headers
* fix(secrets): audit authentication signatures
* fix(web-fetch): redact operator headers in captures
* fix(web-fetch): keep capture metadata internal
* fix(web-fetch): allow sensitive operator headers
* test(web-fetch): cover normalized operator headers
* docs: note web fetch request headers
* chore(config): refresh web fetch header baseline
* chore: remove release-owned changelog entry
2026-08-02 02:07:25 +10:00
Vincent Koc
5ae401d908
fix(models): reduce default model-list memory use ( #117323 )
...
* fix(models): scope default catalog discovery
* fix(models): split scoped catalog preparation
* perf(models): narrow model-list imports
* perf(auth): narrow provider id imports
* perf(plugins): narrow provider discovery imports
* perf(models): bypass runtime catalog facade for scoped lists
* perf(models): avoid runtime imports in default list
* fix(models): preserve scoped catalog coverage
* chore(models): remove obsolete auth exports
* perf(models): skip redundant configured-provider discovery
* perf(models): skip canonical row runtime loading
* fix(models): normalize configured fallback rows
* test(models): update registry list fixtures
* fix(models): separate catalog and runtime discovery scopes
* fix(models): break row projection import cycle
* fix(models): satisfy type and export checks
* fix(models): keep row projection bundled-only
* fix(models): preserve partial catalog visibility
* fix(models): avoid live discovery in default lists
* test(models): isolate auth-backed catalog coverage
* fix(models): retain OpenAI runtime normalization
* fix(models): skip canonical OpenAI row runtime loading
* test(models): keep provider policy fixtures typed
* fix(models): preserve configured OpenAI routes
2026-08-02 00:01:37 +08:00