Peter Steinberger
e261fa60ce
feat(cloud-workers): gateway inference proxy for worker model turns ( #105719 )
...
* refactor: clarify prepared auth value
* feat(cloud-workers): add inference proxy protocol
* feat(cloud-workers): persist inference turns
* feat(cloud-workers): execute gateway inference turns
* fix(cloud-workers): support adaptive inference reasoning
* fix(gateway): constrain worker inference policy options
* test(gateway): cover worker inference SQLite store
2026-07-12 15:35:50 -07:00
Peter Steinberger
4a05a087a1
refactor(config): retire flat streaming keys from the last six channel schemas via doctor migration ( #105709 )
...
* refactor(config): retire flat streaming keys from the last six channel schemas
signal, irc, nextcloud-talk, whatsapp, googlechat, and mattermost now accept
only the nested streaming.{chunkMode,block.enabled,block.coalesce} shape
(mattermost also drops scalar/boolean streaming); flat spellings migrate via
each channel's defineChannelAliasMigration doctor contract with root seeding
for their wholesale-replace account merges.
* feat(channels): warn once per key when the deprecated flat streaming fallback is used
Bundled schemas now reject the flat delivery keys, so the streaming.ts
fallback only serves external SDK plugin configs; emit a once-per-process
per-key subsystem warning and pin the removal plan to the next release train.
* chore(config): regenerate bundled channel config metadata for nested-only streaming
* docs: describe nested-only channel streaming config and the SDK flat-key deprecation window
* fix(whatsapp): seed migrated named-account streaming from the accounts.default layer
WhatsApp resolution layers accounts.default shared config between root and
named accounts, so doctor-materialized account streaming objects now inherit
default-account settings over root ones; mattermost schema test moves to the
nested-only shape with explicit rejection coverage; scope flat-key deprecation
notes to the pending Matrix/Feishu migrations.
* fix(whatsapp): resolve the default account case-insensitively when seeding migrated streaming
* chore(plugin-sdk): repin API baseline for nested-only channel streaming types
2026-07-12 15:27:28 -07:00
Vincent Koc
2f25e9cba3
feat(backup): add verified SQLite snapshots ( #105718 )
...
* feat(backup): expose verified SQLite snapshots
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
* feat(sqlite): add verified snapshot repository (#105525 )
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
* test(sqlite): use canonical snapshot schemas
* fix(backup): restrict SQLite snapshot roles
* fix(sqlite): harden snapshot staging paths
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
* fix(sqlite): pin snapshot repository paths
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
* fix(sqlite): secure Windows snapshot staging
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
* fix(sqlite): validate macOS ACL captures
* test(sqlite): preserve stat uid type
* style(sqlite): satisfy snapshot lint
---------
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
2026-07-13 06:27:14 +08:00
Peter Steinberger
238c7973ad
feat(chat): native session scroll-back with offset paging and import-aware history ( #105688 )
...
* feat(chat): native session scroll-back with import-aware history paging
* fix(chat): page imported session history
* fix(chat): restore terminal import snapshots
* fix(chat): gate cli import resolver on ignore flag to stop history recursion
* fix(chat): correct scroll-back types and drop orphaned recent-messages reader
2026-07-12 13:58:40 -07:00
Vincent Koc
e3163d1e1f
refactor(routing): trim private exports ( #105691 )
2026-07-13 04:50:44 +08:00
Peter Steinberger
d287c9b414
refactor(mac): make app node a CLI capability superset ( #105642 )
...
* refactor(mac): reuse CLI node-host runtime
* fix(mac): prefer checkout CLI in debug builds
* chore: leave release notes to release automation
* chore(mac): sync native string inventory
* chore(mac): refresh native locale artifacts
* fix(node): satisfy native and deadcode gates
2026-07-12 13:16:07 -07:00
Peter Steinberger
1b281de6df
perf(agents): reuse gateway plugin preparation ( #105646 )
...
* perf(agents): reuse gateway plugin preparation
* chore: keep release notes out of PR
2026-07-12 12:59:26 -07:00
AnthonyStainer
e3c338f664
fix(cron): keep memory search available with agent overrides ( #104196 )
...
* fix(cron): preserve memory search defaults
* test(cron): fix resolved agent config fixture
* refactor(cron): clarify agent config ownership
* test(cron): use redacted credential fixture
* test(cron): normalize redacted credential fixture
* chore(changelog): append cron memory fix
* chore(pr): defer release note ownership
---------
Co-authored-by: AnthonyStainer <18058056+AnthonyStainer@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 12:55:07 -07:00
Peter Steinberger
5e45ebe82b
feat(ios): add private HealthKit summaries ( #105616 )
...
* feat(ios): add private HealthKit summaries
* fix(ios): satisfy Health settings lint
* chore(ios): sync Health localization artifacts
* chore(ios): refresh generated localization and docs
* fix(ios): reject partial Health history
* chore(ios): sync Health string catalogs
* fix(ios): bridge Health authorization dates
* fix(ios): scope Health summaries to today
2026-07-12 12:52:38 -07:00
Vincent Koc
6f3caf2020
refactor(sessions): trim SQLite internals ( #105639 )
2026-07-12 21:43:52 +02:00
qingminlong
056e89d887
fix(clawhub): ignore malformed retry-after headers ( #105479 )
...
* fix(clawhub): ignore malformed retry-after headers
* fix(clawhub): keep retry helper source-resolved
* docs(changelog): note ClawHub retry fix
Co-authored-by: qingminlong <0668001063@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 12:42:33 -07:00
Peter Steinberger
6556d1d173
refactor(config): declarative doctor alias-migration DSL with inheritance-aware account seeding ( #105636 )
...
* fix(config): seed inherited root streaming into doctor-materialized account streaming objects
* feat(plugin-sdk): add defineChannelAliasMigration doctor alias-migration DSL
* refactor(plugins): migrate channel doctor contracts onto the alias-migration DSL
* refactor(config): drop the prod-unused offMode legacy notice option
* fix(config): make account streaming seeding opt-in for wholesale-replace channels
* test(imessage): keep account streaming account-local for deep-merge runtime
2026-07-12 12:28:42 -07:00
qingminlong
2db82eb243
fix(sessions): derive list channels from agent keys ( #104274 )
...
* fix(sessions): derive list channels from agent keys
* refactor(sessions): reuse canonical channel parser
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 12:24:06 -07:00
Peter Steinberger
bf44810139
refactor(deadcode): privatize banner and menu internals ( #105628 )
2026-07-12 12:22:32 -07:00
destire-mio
ca90a59370
fix(retry): avoid status code substring matches ( #105258 )
...
* fix(retry): avoid status code substring matches
* fix(retry): parse leading HTTP statuses
* style(retry): format status classifier
* test(retry): cover session retry behavior
* test(retry): emit error stream events
* fix(retry): share rate-limit window classification
Co-authored-by: destire-mio <248462155+destire-mio@users.noreply.github.com >
* docs(changelog): note session retry fix
Co-authored-by: destire-mio <248462155+destire-mio@users.noreply.github.com >
* refactor(retry): keep window type internal
Co-authored-by: destire-mio <248462155+destire-mio@users.noreply.github.com >
---------
Co-authored-by: destire-mio <248462155+destire-mio@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 12:12:32 -07:00
Vincent Koc
e45f2f6ca6
refactor(agents): trim private export surface ( #105631 )
2026-07-12 21:08:56 +02:00
Peter Steinberger
74e42892b6
fix: delay narrated channel progress and remove default title ( #105607 )
...
* fix(channels): delay narrated progress drafts
* chore: keep release changelog unchanged
2026-07-12 12:06:38 -07:00
Peter Steinberger
d37d63c6ff
fix: usage page fails while session cache refreshes ( #105611 )
...
* fix(gateway): preserve pending usage summaries
* chore: keep release notes in PR
2026-07-12 12:06:29 -07:00
Vincent Koc
3e68035de1
refactor(plugins): trim dead export surface ( #105612 )
2026-07-12 20:46:43 +02:00
Peter Steinberger
24a4f0bbbf
feat(cli): animate the claw banner and show it on gateway startup ( #105540 )
...
* feat(cli): animate the claw banner and show it on foreground gateway startup
* fix(cli): restore the terminal when the banner animation is interrupted
2026-07-12 11:39:10 -07:00
Vincent Koc
c0f0107a5c
refactor(infra): trim internal helper surface ( #105606 )
2026-07-12 20:37:50 +02:00
Vincent Koc
26c4187297
refactor(process): trim internal type surface ( #105599 )
2026-07-12 20:28:13 +02:00
Vincent Koc
f230e8a11e
refactor(gateway): privatize module helpers ( #105596 )
2026-07-12 20:21:31 +02:00
Peter Steinberger
bbf79b1934
fix(sessions): sessions_search slows as transcript history grows ( #105585 )
...
* chore(plugin-sdk): refresh API baseline
* perf(sessions): avoid full transcript scans during search
2026-07-12 19:13:40 +01:00
Vincent Koc
da71b48e5a
refactor(auto-reply): privatize module internals ( #105589 )
2026-07-12 20:13:19 +02:00
Vincent Koc
7a06f662bd
refactor(auth): privatize disabled CLI discovery helper ( #105587 )
2026-07-12 20:07:40 +02:00
Vincent Koc
f11b17d937
fix(sqlite): validate maintenance schema completeness ( #105583 )
2026-07-12 20:06:57 +02:00
Vincent Koc
02f88c209c
refactor(agents): remove redundant zero usage helper ( #105577 )
2026-07-12 19:57:51 +02:00
Vincent Koc
19c85de227
refactor(agents): remove stale embedded runner exports ( #105572 )
2026-07-12 19:51:04 +02:00
Peter Steinberger
7ea0af14f4
test(tui): stabilize and speed PTY lifecycle tests ( #105566 )
2026-07-12 18:46:23 +01:00
Vincent Koc
db0924e44c
refactor(agents): remove unused live model provider helper ( #105570 )
2026-07-12 19:46:00 +02:00
Vincent Koc
e8f8738aae
refactor(agents): localize code mode internals ( #105563 )
2026-07-12 19:36:10 +02:00
Peter Steinberger
ec6c4e8e78
perf(agents): reuse current model catalog metadata ( #105552 )
2026-07-12 18:34:53 +01:00
Vincent Koc
e06b42674b
refactor(agents): remove unused auth plan wrapper ( #105554 )
2026-07-12 19:28:14 +02:00
Peter Steinberger
73ca64fca6
feat(ui): add a Create PR branch row with rate-limit staleness to session PR chips ( #105116 )
...
* feat(ui): add a Create PR branch row with rate-limit staleness to session PR chips
* fix(ui): gate the Create PR row on a pushed branch
* improve(ui): gate the Create PR row on comparable pushed commits and count untracked work
* fix(ui): satisfy spread lint and align branch-row test fixtures
* chore(ui): translate Create PR branch row copy
* chore(ui): drop zh-CN retranslation churn from the aborted backfill
* fix(ui): guard branch diff stats against checkout diff drivers and fail closed without a default branch
2026-07-12 18:23:30 +01:00
Vincent Koc
8af1755f68
refactor(outbound): internalize audit helpers ( #105546 )
2026-07-12 19:17:24 +02:00
Glucksberg
02d307e1b8
fix(channels): make nack callbacks idempotent ( #104919 )
...
* fix(channels): make nack callbacks idempotent
* fix(channels): coalesce overlapping nack callbacks
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 18:12:32 +01:00
cxbAsDev
5d34ea774a
fix(hooks): bound HOOK.md reads during hook install validation ( #101469 )
...
* fix(hooks): bound HOOK.md reads during hook install validation
* fix(hooks): remove unused fs import after switching to bounded reader
* test(hooks): cover symlinked install metadata
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 18:11:37 +01:00
Vincent Koc
e93d1934f1
refactor(sessions): internalize private helpers ( #105542 )
2026-07-12 19:10:54 +02:00
Peter Steinberger
3bde3cd017
feat(sessions): let sessions_send register explicit state-change watchers ( #104815 )
...
* feat(sessions): let sessions_send register explicit state-change watchers
* feat(sessions): terse self-contained notices, immediate stale-state wakes, session-state docs page
* chore: regenerate prompt snapshots after rebase
2026-07-12 18:10:51 +01:00
Peter Steinberger
a7b086df71
fix(ci): drop unreferenced snapshot repository module
...
src/snapshot/{local-repository,manifest,snapshot-provider}.ts landed in #105525
with no production caller (only their own test), which fails the
check-dependencies unused-files gate and the runtime topology lane on main and
on every PR, blocking all landings. src/infra/sqlite-snapshot.ts stays: it
predates the PR and is used by backup-create. The module can reland together
with the code that wires it in.
2026-07-12 09:54:00 -07:00
Vincent Koc
06219e46f1
refactor(channels): remove unused bootstrap list ( #105531 )
2026-07-12 18:47:00 +02:00
Peter Steinberger
7681bc791c
feat(cli): draw the pixel lobster mascot beside the wizard banner wordmark ( #105119 )
2026-07-12 17:42:21 +01:00
Gorkem Erdogan
8d0be74c9d
fix: reasoning-only and empty-response retries duplicate the user message in the session ( #103634 )
...
* fix(agents): suppress user-message re-persist on reasoning/empty/missing-assistant retries
* feat(agents): make reasoning/empty-response retry limits env-overridable
* test(agents): cover retry-persist suppression and env-overridable retry limits
* fix(test): reset attempt mock after fresh-harness warmup in env-limit-zero test
* docs(agents): correct stale suppressNextUserMessagePersistence comment scope
* refactor: drop retry-limit environment overrides
* refactor(agents): latch persisted user turns
* fix(agents): preserve user turns after orphan repair
* test(agents): cover delayed retry persistence
* refactor(agents): preserve retry transcript boundaries
* fix(agents): retain continuation retry state
* fix(agents): preserve compound retry prompts
* fix(agents): propagate orphan retry invalidation
* refactor(agents): unify active retry prompt state
* test(agents): align retry fixtures with current contracts
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 17:39:28 +01:00
Vincent Koc
bf3f5dc532
feat(sqlite): add verified snapshot repository ( #105525 )
...
Co-authored-by: Gio Della-Libera <giodl73@gmail.com >
2026-07-12 18:36:08 +02:00
Peter Steinberger
772e5e3718
test(sessions): handle already-exited child processes ( #105516 )
2026-07-12 17:34:44 +01:00
Vincent Koc
46848ee4f6
refactor(infra): remove JSONL socket testing alias ( #105510 )
2026-07-12 18:11:18 +02:00
Vincent Koc
6d2eabc9ea
refactor(cli): remove config guard testing alias ( #105506 )
2026-07-12 18:04:09 +02:00
Vincent Koc
bb7f71c7b3
refactor(logging): remove dead diagnostic testing export ( #105505 )
2026-07-12 17:56:59 +02:00
Jesse Merhi
90008b081b
fix(signal): preserve native quote replies from agent sends ( #105347 )
...
* fix(signal): persist native reply context
* fix(signal): retain implicit native reply context
* fix(signal): inherit current reply in message tool
* fix(signal): preserve implicit reply provenance
* fix(signal): match equivalent reply targets
* test(signal): narrow threading context
* fix(signal): retain effective reply mode
* fix(signal): preserve explicit reply provenance
* fix(signal): carry reply provenance
* fix(signal): retain reply context on no-op merge
* fix(signal): honor disabled implicit replies
* fix(signal): keep reply policy plugin-local
* docs(changelog): note Signal native quote replies
2026-07-13 01:41:20 +10:00