Commit Graph

68058 Commits

Author SHA1 Message Date
Peter Steinberger
48eebe090f fix(testing): make changed-gate bundles self-contained 2026-07-13 19:03:31 -07:00
Leon-SK668
4100d19f2a fix(cli): tolerate removed cwd in plugin authoring output (#106425) 2026-07-13 18:58:54 -07:00
Peter Steinberger
4645a850d5 fix(testing): omit changed-gate history from bundles 2026-07-13 18:50:35 -07:00
Peter Steinberger
9668b668c5 fix(testing): preserve changed-gate diagnostics 2026-07-13 18:50:35 -07:00
Peter Steinberger
c4c72aa086 fix(testing): reset reused changed-gate worktrees 2026-07-13 18:50:35 -07:00
Peter Steinberger
b828692089 refactor(webhooks): use native Zod schemas 2026-07-13 18:50:14 -07:00
joshavant
0c95332ffd chore(ios): prepare 2026.7.2 release notes 2026-07-13 20:43:02 -05:00
Peter Steinberger
56e9d3b05f refactor(browser): scope async route lint exception 2026-07-13 18:37:46 -07:00
Vincent Koc
7df623f528 refactor(agents): inline side-question auth type (#106973) 2026-07-14 09:37:35 +08:00
Vincent Koc
e330e4a17d refactor(agents): privatize system prompt helpers (#106965) 2026-07-14 09:27:10 +08:00
Peter Steinberger
b9c4815403 refactor(config): add canonical group-policy scope-tree resolver and migrate the first six channels (#106846)
* feat(config): add canonical group-policy scope-tree resolver

* chore(plugin-sdk): refresh API baseline hash for scope-tree exports

* refactor(channels): migrate googlechat, imessage, and whatsapp group policy onto the scope tree

* chore(plugin-sdk): refresh API baseline hash for groups scope-tree builder

* refactor(channels): migrate line, qqbot, and mattermost group policy onto the scope tree

* chore(plugin-sdk): refresh API baseline hash for case-insensitive scope key helper

* chore(plugin-sdk): refresh API baseline hash after rebase onto current main

* chore(plugin-sdk): refresh API baseline hash after rebase

* chore(plugin-sdk): refresh API baseline hash after rebase

* chore(plugin-sdk): refresh API baseline hash after rebase
2026-07-13 18:24:52 -07:00
Yufeng He
8ac4a52a4e fix(sandbox): use canonical shortenHomePath for sandbox-root escape error (#106603)
* fix(sandbox): use canonical shortenHomePath for sandbox-root escape error

The local shortPath helper shortened any path with the home directory as a
string prefix, with no separator boundary, so a home-sibling sandbox root was
mangled in the escape error: homedir /Users/al + root /Users/albert/proj
rendered as ~bert/proj. Delete the duplicate helper and reuse the canonical,
boundary-safe shortenHomePath from ../utils (the same fix already applied to the
other home-path shorteners), keeping one canonical path per repo policy.

Signed-off-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com>

* test(sandbox): cover home-sibling diagnostics

* test(sandbox): make path proof portable

---------

Signed-off-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 18:24:42 -07:00
Peter Steinberger
3442825e6b refactor(browser): use Express 5 async routes 2026-07-13 18:21:52 -07:00
Peter Steinberger
b206c50f34 refactor(channels): consolidate the flat streaming fallback into the deprecation module (#106939)
* refactor(channels): consolidate the flat streaming fallback into the deprecation module

* chore(plugin-sdk): refresh API baseline hash for compat module move

* chore: re-attach CI to the rescoped head

* chore(plugin-sdk): refresh API baseline hash after rebase

* chore(plugin-sdk): refresh API baseline hash after rebase
2026-07-13 18:20:07 -07:00
tzy-17
f9e2702324 fix(wizard): make failed Hermes imports safely retryable (#103290)
* fix(wizard): defer config commit until after migration apply succeeds

Onboarding migration import commits the config file to disk before the
migration provider's apply() runs. If apply() legitimately reports an
error on any item, runSetupMigrationImport() throws, but the config is
already committed with wizard metadata stamped on it. On the very next
onboarding attempt, the freshness gate sees that stamped config and
refuses to run the import, telling the user a fresh setup is required.

Move the commitConfigFile call to after assertApplySucceeded(), so a
failed apply never leaves wizard metadata on disk that blocks the next
retry behind the fresh-setup gate.

The in-memory config still has wizard metadata applied before the apply
context is constructed (so the apply function can reference a concrete
target), but the disk write only happens after apply succeeds.

Fixes #103262

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(lint): remove useless assignment in migration config commit

The `targetConfig = await params.commitConfigFile(targetConfig)` line
assigns to `targetConfig` but the value is never read afterwards.
Remove the assignment, keeping the side-effect call.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(wizard): preserve config patches from provider apply after commit

Restore the targetConfig assignment from commitConfigFile so that config
patches written by the provider during apply (e.g. auth profile
selections) are carried forward. Without this, the pre-apply snapshot
silently replaces the post-apply config, losing provider-authored
patches.

Fixes #103262

* fix: remove useless assignment to satisfy lint

commitConfigFile persists the config to disk; the returned config with
patches is already on disk, making the in-memory assignment unnecessary.

* fix(wizard): make Hermes import retries recoverable

* chore: keep release notes release-owned

* fix(wizard): keep retry identity stable across acknowledgement

* fix(wizard): satisfy Hermes retry quality gates

* test(wizard): use managed migration temp dirs

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 18:19:43 -07:00
Vincent Koc
c80920ce09 refactor(agents): privatize provider request helpers (#106955) 2026-07-14 09:14:50 +08:00
Peter Steinberger
c29ad5f02d improve(ui): drop page subtitles from settings and hub headers (#106954)
* improve(ui): drop page subtitles from settings and hub headers

The one-line page subtitles restated the nav label the user just
clicked ('Channels and settings.') while sections and rows already
carry contextual descriptions; every header now reads title-only,
matching the settings design language reference. Subtitle strings stay
in app-navigation for settings-search matching and the sidebar search
blocks. Removes the now-unused .page-sub rule.

* fix(ui): give Skills and Skill Workshop route-specific page titles

* chore(ui): drop unused configPageSubtitle helper
2026-07-13 18:14:41 -07:00
Peter Steinberger
dc61172e51 refactor(agents): remove dead internal test seams (#106956)
* refactor(channels): remove dead action discovery reset

* refactor(agents): remove dead internal test seams
2026-07-13 18:14:30 -07:00
Peter Steinberger
18a452055f feat(control-ui): show compaction savings and run time (#106921)
* feat(control-ui): show compaction savings and run time

* fix(control-ui): satisfy locale and export checks

* fix(control-ui): refresh locale metadata
2026-07-13 18:07:33 -07:00
Peter Steinberger
9b9f44bf7e test(exec): retry transient temp cleanup (#106949) 2026-07-13 18:04:46 -07:00
Vincent Koc
dbf48c0df9 refactor(cron): privatize task history helpers (#106950) 2026-07-14 09:04:16 +08:00
Peter Steinberger
23c19510b1 perf(test): skip irrelevant suppression ASTs (#106928) 2026-07-13 18:03:06 -07:00
sunlit-deng
7aa1aacb8e fix(reef): prevent oversized guard responses from consuming memory (#106439)
* fix(reef): bound guard provider response reads

* test(reef): strengthen guard response bound proof

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 18:02:11 -07:00
Peter Steinberger
b573a3b767 docs(fleet): remove MVP framing 2026-07-13 17:56:18 -07:00
Peter Steinberger
d1ac7eddcd refactor: consolidate ws raw data handling 2026-07-13 17:55:01 -07:00
Vincent Koc
e5722a6726 fix(ci): pin calibrated Kova release budgets 2026-07-13 17:54:41 -07:00
Vincent Koc
c1664a329d fix(ci): refresh agent session API baseline (#106944) 2026-07-14 08:53:36 +08:00
Peter Steinberger
8a66398b2b fix(release): harden validation orchestration (#106873)
* fix(release): harden validation orchestration

* fix(ci): repair release gate regressions

* docs(agents): record PR review guard mode

* test(ci): stabilize release gate coverage

* refactor(agents): remove session factory test export
2026-07-13 17:53:10 -07:00
Peter Steinberger
53d7192c73 fix(fleet): harden logs and restore recovery (#106918)
* fix(fleet): pin logs and repair restore guidance

* style(fleet): satisfy changed LOC gate

* test(fleet): preserve inspect mock union
2026-07-13 17:52:26 -07:00
Peter Steinberger
0934f561b3 test: consolidate cron model override coverage (#106938) 2026-07-13 17:47:08 -07:00
Vincent Koc
1185db56c0 refactor(ios): remove write-only talk provider state (#106881)
* refactor(ios): remove write-only talk provider state

* chore(ios): sync native i18n inventory
2026-07-14 08:46:46 +08:00
Peter Steinberger
8590655190 refactor(ui): use Web Awesome controls throughout Control UI (#106865)
* refactor(ui): add Web Awesome foundation

* refactor(ui): migrate shared menus and chat controls

* refactor(ui): migrate page controls to Web Awesome

* refactor(ui): migrate workboard controls to Web Awesome

* fix(ui): harden Web Awesome interactions

* test(ui): type Web Awesome dropdown state

* fix(ui): preserve menu focus and selection

* fix(ui): restore agent picker focus

* fix(ui): track keyboard menu dismissal

* fix(ui): ignore stale session menu closes

* fix(ui): complete Web Awesome keyboard migration

* fix(ui): repair Web Awesome lockfile graph

* docs(ui): keep release note in PR body

* fix(ui): satisfy Web Awesome migration gates

* perf(ui): keep Web Awesome theme in startup stylesheet

* fix(ui): replace reopened Web Awesome session menus

* fix(ui): keep replacement session menus open
2026-07-13 17:46:28 -07:00
Peter Steinberger
cae29a0792 refactor(agents): share sync storage lock retries 2026-07-13 17:35:29 -07:00
Vincent Koc
8963a89432 fix(ci): restore prompt context dependency checks (#106934)
* fix(ci): privatize prompt context result types

* fix(ci): refresh plugin SDK API baseline
2026-07-14 08:34:14 +08:00
Peter Steinberger
c58660fcf4 docs(changelog): keep release notes release-only 2026-07-13 17:27:33 -07:00
Peter Steinberger
0559bc22e0 refactor(cli): use Commander exit errors 2026-07-13 17:22:31 -07:00
Marcus Castro
0934c445d3 refactor(whatsapp): use retryAsync for outbound delivery retries (#105579)
* refactor(whatsapp): reuse shared outbound retry runtime

* refactor(whatsapp): narrow outbound retry classification

* refactor(whatsapp): remove obsolete sleep export
2026-07-13 21:19:32 -03:00
Vincent Koc
db2be35353 refactor(agents): inline embedded session creation (#106909) 2026-07-14 08:17:28 +08:00
Peter Steinberger
b4c311e51b fix(release): keep frozen package inventory self-contained (#106886)
* fix(release): keep frozen package inventory self-contained

* fix(release): declare frozen inventory helper
2026-07-13 17:15:32 -07:00
Peter Steinberger
1bdb7b8535 refactor(agents): trim internal type exports (#106925) 2026-07-14 01:14:44 +01:00
Peter Steinberger
333281e516 fix(ui): retain settings route across queued patches (#106901)
* fix(ui): retain settings route across queued patches

* test(ui): model queued session patch waits

* test(ui): keep patch queue option internal
2026-07-13 17:13:45 -07:00
Peter Steinberger
3dd7322d22 test: ignore ESRCH during process cleanup (#106880) 2026-07-13 17:13:16 -07:00
joshavant
cac32bb5d1 fix(ios): declare Health update purpose 2026-07-13 19:12:21 -05:00
Peter Steinberger
bab07e990a refactor(agents): extract prompt context and cleanup phases 2026-07-13 17:12:01 -07:00
Wynne668
78305b65b1 fix(commitments): reject calendar-invalid due timestamps (#106236)
* fix(commitments): reject calendar-invalid due timestamps

* test(commitments): fix calendar validation clock

* fix(commitments): preserve timestamp interpretation

* fix(commitments): preserve valid RFC 3339 dates

* chore(commitments): remove contributor changelog edit

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 17:08:53 -07:00
zw-xysk
bdd060a40c fix(slack): add 30s timeout to directory client API calls (#106643)
* fix(slack): add 30s timeout to directory client API calls

* fix(slack): bound directory lookups

* fix(slack): reject delayed lookup retries

* fix(slack): preserve directory timeout contract

* fix(slack): keep lookup policy internal

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 17:07:41 -07:00
Peter Steinberger
f693ac1b65 refactor(config): share canonical deep merge 2026-07-13 17:06:26 -07:00
wuqxuan
04b684c0da fix(cron): drop plain-text format from announce delivery footer (#106596)
* fix(cron): drop plain-text format from announce delivery footer

* test(cron): assert restricted tool policy forwarding

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 17:06:12 -07:00
Peter Steinberger
e5cc956734 fix(ci): satisfy UI LOC ratchet (#106915) 2026-07-13 17:05:09 -07:00
Peter Steinberger
d7f38ab678 refactor(agents): trim CLI and facade exports (#106917)
* refactor(agents): trim CLI and facade exports

* refactor(agents): privatize compaction planning helpers
2026-07-14 01:02:26 +01:00