Commit Graph

38194 Commits

Author SHA1 Message Date
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
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
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
d1ac7eddcd refactor: consolidate ws raw data handling 2026-07-13 17:55:01 -07: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
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
0559bc22e0 refactor(cli): use Commander exit errors 2026-07-13 17:22:31 -07:00
Vincent Koc
db2be35353 refactor(agents): inline embedded session creation (#106909) 2026-07-14 08:17:28 +08:00
Peter Steinberger
1bdb7b8535 refactor(agents): trim internal type exports (#106925) 2026-07-14 01:14:44 +01:00
Peter Steinberger
3dd7322d22 test: ignore ESRCH during process cleanup (#106880) 2026-07-13 17:13:16 -07: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
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
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
Peter Steinberger
b4534a23d1 test: remove restart sleeps and finalization races (#106906) 2026-07-13 17:02:08 -07:00
Peter Steinberger
48817f6cea fix(ci): stop exporting internal session helper (#106904) 2026-07-14 00:53:16 +01:00
Peter Steinberger
9e2a6b1269 test(agents): expose session activation mock 2026-07-13 16:36:05 -07:00
Peter Steinberger
98f603c4c4 refactor(agents): extract agent session preparation 2026-07-13 16:36:05 -07:00
Peter Steinberger
8da737858d fix(clawhub): use semver for plugin API ranges 2026-07-13 16:17:52 -07:00
Peter Steinberger
cf8b57e7d0 feat(skills): scan session history for workshop ideas (#106766)
* feat: scan past sessions for skill proposals

* feat(ui): add progressive skill history scans

* fix(ui): keep skill history scans synchronized

* refactor: split skill history scan ownership

* style: fix mock helper formatting

* style: format skill history scan

* build: refresh skill history schema baselines

* build: refresh plugin SDK baseline after rebase

* perf(ui): keep startup request budget bounded

* fix(skills): satisfy history scan integration gates

* fix(ui): bound control ui startup chunks

* build: refresh plugin SDK API baseline

* build(ui): refresh self-learning translation memory

* refactor(ui): split skill workshop state

* fix(ci): refresh skill workshop gates

* fix(ci): satisfy skill history lint

* build: refresh plugin SDK baseline after main rebase
2026-07-13 16:15:50 -07:00
Vincent Koc
b952394bd0 fix(ci): heal current main blockers 2026-07-13 16:10:55 -07:00
Galin Iliev
93bad8de2a fix: restore GitHub Copilot turns and account context limits (#106198)
* fix: restore GitHub Copilot runtime routing

Refs #106170

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6053811e-f081-436b-8741-54c5cab6c016

* fix: bind Copilot metadata to resolved credentials

Refs #106170

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6053811e-f081-436b-8741-54c5cab6c016

* refactor: split Copilot runtime helpers

* fix: satisfy Copilot runtime static gates

* fix: satisfy Copilot runtime lint

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Galin Iliev <galin.iliev@microsoft.com>
2026-07-13 16:04:34 -07:00
Peter Steinberger
4f60ab2e88 refactor(agents): extract session manager preparation 2026-07-13 15:55:23 -07:00
Peter Steinberger
821c525b62 fix(gateway): satisfy extracted handler lint 2026-07-13 15:43:07 -07:00
Peter Steinberger
26a5d68c9b fix(gateway): release session-id-only admission 2026-07-13 15:43:07 -07:00
Peter Steinberger
ab28dab058 fix(gateway): preserve existing session ownership 2026-07-13 15:43:07 -07:00
Peter Steinberger
d16c43bfb3 refactor(gateway): keep extracted result types private 2026-07-13 15:43:07 -07:00
Peter Steinberger
d1fff1afc6 refactor(gateway): split agent runtime phases 2026-07-13 15:43:07 -07:00
Peter Steinberger
3e5d8cdbf4 refactor(agents): extract before-agent-run gate 2026-07-13 15:40:57 -07:00
Peter Steinberger
0b96300fc6 refactor(shared): privatize internal helpers (#106868) 2026-07-13 15:40:31 -07:00
Peter Steinberger
4e689a219d test: speed async lifecycle and parity coverage (#106605)
* test: speed up async lifecycle suites

* test: stabilize async speedups

* test: remove duplicated provider auth parity suite
2026-07-13 15:40:16 -07:00
Peter Steinberger
334e7f3f21 feat(apps): add native mobile Automations parity (#106355)
* fix(apps): address native Skills review feedback

* feat(apps): add native Automations parity

* fix(ios): preserve automation editor selection

* fix(android): page automation discovery

* chore(apps): refresh native source inventory

* fix(ios): refresh invalid automation diagnostics

* chore(apps): sync native localization

* fix(cron): stabilize paginated snapshots

* refactor(cron): split pagination helpers

* fix(apps): address final native review feedback

* chore(apps): refresh native source inventory

* fix(ios): dedupe automation list actions

* chore: keep release note in PR context

* fix(ci): repair current main architecture gates

* fix(ios): default new skill requirement fields

* fix(ios): retain queued automation reservations
2026-07-13 15:35:32 -07:00
Peter Steinberger
4319ddbe8c feat(control-ui): import Codex and Claude Code memory (#106406)
* feat(control-ui): import coding assistant memory

* test(migrate): clean memory import temp dirs

* chore: move memory import note to PR body

* build: refresh memory import generated artifacts

* fix(control-ui): complete memory import checks

* build(control-ui): localize memory recovery labels

* fix(control-ui): harden memory import recovery

* refactor(migrate): keep memory import surfaces bounded

* fix(control-ui): use canonical agent row type

* fix(codex): drop dead migration type exports

* fix(migrate): restrict imported memory permissions

* fix(control-ui): preserve memory import recovery state

* fix(control-ui): retain memory import results

* build(control-ui): preserve translation memory history

* fix(control-ui): bind memory import state to agent

* fix(control-ui): unlock memory import after refresh

* test(gateway): preserve memory method suffix

* fix(migrate): bind reviewed memory imports

* fix(migrate): make memory imports retry-safe

* perf(ui): keep memory import lazy

* build: refresh generated artifacts after rebase

* chore: keep migration runtime within LOC guard

* build: refresh Swift protocol model
2026-07-13 15:30:06 -07:00
Peter Steinberger
70833dab7f ci: scope PR Node tests to changed targets (#106633)
* ci: scope PR Node tests to changed targets

* ci: bound targeted Node test plans

* test: cover changed path manifest input

* fix(ui): preserve model providers lazy boundary

* ci: cover public SDK re-export consumers

* ci: reject unresolved changed test targets

* ci: cover public SDK wrapper imports

* ci: preserve global checks in targeted plans

* docs(ci): clarify targeted boundary coverage

* test(plugins): declare computed runtime dependencies
2026-07-13 15:26:02 -07:00
Vincent Koc
a8548a1191 refactor(shared): narrow entry status API (#106856) 2026-07-14 06:24:21 +08:00
Peter Steinberger
bc8a44bc41 refactor(agents): extract attempt prompt submission 2026-07-13 15:24:18 -07:00
Peter Steinberger
00b38ebc20 feat(web): show session branch row for local changed files (#106835)
* feat(web): show session branch row for local changed files

The pre-PR branch row above the composer only appeared once the branch
was pushed and ahead of the default branch. Sessions with local work
(committed, uncommitted, or untracked changes) showed nothing.

The gateway now emits the branch payload whenever the working tree has
changed files vs the default-branch merge base; createUrl is withheld
until GitHub's pull/new page has something to compare, and the UI only
renders the Create PR link when it is present.

* refactor(gateway): keep control-ui-session-prs under LOC ratchet

* docs(gateway): note explicit-base diff counts conflict paths
2026-07-13 15:17:37 -07:00
Peter Steinberger
03455c9cd0 refactor(auto-reply): privatize finalization timeout (#106853) 2026-07-13 15:17:11 -07:00