Commit Graph

41532 Commits

Author SHA1 Message Date
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
Peter Steinberger 83208eb4a9 fix(doctor): preserve unresolved per-check repair findings (#117448)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 08:47:27 -07:00
Peter Steinberger b83a966c05 fix(tui): show attachment-only assistant replies (#117460) 2026-08-01 08:44:15 -07:00
Jesse Merhi d3f4530ce8 feat(google): allow operator headers on Gemini web search (#115549)
* feat(google): support Gemini web search headers

* fix(google): validate Gemini search headers

* docs(changelog): credit Gemini headers

* test(secrets): route config contracts through collector

* chore: remove release-owned changelog entry

* test(google): cover resolved search headers
2026-08-02 01:41:09 +10:00
Peter Steinberger f0b7256405 fix(plugins): expose manifest tools in cold inventory (#117461)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 08:40:43 -07:00
Peter Steinberger e7950d968b refactor(state): inline canonical database schemas at build (#117433) 2026-08-01 08:39:42 -07:00
Vincent Koc 1130f30445 fix(diagnostics): report provider HTTP status in timelines (#117403)
* fix(diagnostics): record provider response status

* fix(diagnostics): report managed Responses status
2026-08-01 23:36:20 +08:00
Peter Steinberger 7bcbe743bd fix(plugins): keep deferred jiti transforms in a durable user cache (#117355)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 08:24:29 -07:00
Peter Steinberger 71a59512ba fix(sessions): honor file-lock cancellation (#117446) 2026-08-01 08:01:49 -07:00
Peter Steinberger e348182e81 fix(hooks): reject duplicate hook names before installation (#117439)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 08:01:30 -07:00
Vincent Koc 7cc2e6d830 fix(ci): repair full release validation regressions (#117447)
* fix(worktrees): reject repositories without commits

* test(memory-wiki): allow agent isolation runtime

* test(ios): await queued approval retry
2026-08-01 14:55:13 +00:00
nocodet888-arch 5ad7c969b8 fix(gateway): trim audit.list exact-match filter ids (#110847) 2026-08-01 07:50:24 -07:00
Peter Steinberger deabae48d3 fix(ci): keep PTY tests observable and wait for completed turns (#117405)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 07:46:46 -07:00
Peter Steinberger 87be38ea73 fix(plugins): resolve marketplace aliases without recursive cycles (#117440)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 07:46:40 -07:00
Peter Steinberger 40cc08e08d fix(plugins): fail closed on ambiguous uninstall targets (#117406)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 07:38:20 -07:00
Peter Steinberger 3146736f12 fix(gateway): keep service routes out of Control UI fallback (#117436) 2026-08-01 07:22:12 -07:00
Peter Steinberger d86d4439a5 fix(agents): cancel media generation before task admission (#117418)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 07:16:21 -07:00
Peter Steinberger e4d1b7e0d3 refactor(plugins): move plugin contributions into the registry bundle (#117372)
* refactor(plugins): move plugin contributions into the registry bundle

* fix(plugins): guard embedding owner union and drop unused test-util imports

* fix(plugins): break registry facade import cycles

* fix(plugins): remove obsolete registry snapshot seams

* test(gateway): preserve plugin runtime mock exports

* test(auto-reply): install builder registry in diagnostics fixture

* test(plugins): activate registry-backed capability fixtures
2026-08-01 06:57:01 -07:00
Peter Steinberger 339b8270bb fix(tui): keep PTY progress and lifecycle truthful (#117402) 2026-08-01 06:46:25 -07:00
Vincent Koc 355295bfef fix(plugins): relink host runtime dependencies (#117408)
* fix(plugins): relink host runtime dependencies

* fix(plugins): remove stale peer helper

* chore(release): leave changelog ownership unchanged

* fix(plugins): clarify host link recovery
2026-08-01 21:27:06 +08:00
Dallin Romney bba7b939ce fix(agents): settle user turn persistence before reconciliation (#117393) 2026-08-01 21:24:31 +08:00
Peter Steinberger 9214183f45 refactor(sessions): retire runtime transcript sidecars (#117380) 2026-08-01 06:21:54 -07:00
Peter Steinberger 2576d844c4 fix(cli): surface live channel probe results (#117410) 2026-08-01 06:12:46 -07:00
Jacob Tomlinson 20ac22f647 fix(codex): guide recovery from unimported agent auth (#116807)
* fix(codex): diagnose unimported agent auth

Add agent-scoped Codex migration guidance and expose a validated --agent target so non-default credentials cannot be imported into the default agent store.

Fixes #116763

* fix(codex): surface auth migration before route planning

* fix(codex): scope auth migration recovery

* fix(codex): preserve API key auth fallback

* test: repair memory importer routing expectation

* test: drop superseded memory routing repair

* test(tui): report PTY progress verbosely

---------

Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com>
2026-08-01 07:08:02 -06:00
Peter Steinberger 9a29304373 fix(agents): avoid provider discovery when cache pruning is off (#117396) 2026-08-01 05:45:32 -07:00
Peter Steinberger cd4bd7c6c0 fix(tui): cancel buffered submissions on shutdown [AI-assisted] (#117331)
* fix(tui): cancel buffered submissions on shutdown

* refactor(tui): preserve callable submit coalescer

* test(tui): run local PTY smoke against built CLI
2026-08-01 05:00:05 -07:00
Peter Steinberger 3777f009d0 refactor(doctor): unify legacy auth migration ownership (#117361) 2026-08-01 04:51:46 -07:00
Peter Steinberger 7bd7d7d2a1 fix(plugins): surface actionable doctor warnings (#117357)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 04:51:43 -07:00
Vincent Koc 11239da88f fix(ci): stabilize release validation assertions (#117377)
* test(plugins): align auto-enable metadata assertion

* test(memory): isolate agent enablement coverage
2026-08-01 19:40:51 +08:00
Peter Steinberger 597699401a refactor(memory): use sqlite transcript identities (#117334) 2026-08-01 04:38:40 -07:00
Peter Steinberger 7ab05df415 fix(plugins): require tracked owners for targeted updates (#117333)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 04:36:18 -07:00
Peter Steinberger e9e4023e59 fix(cron): deliver spawned child results when scheduled agents emit no text (#117308)
* fix(cron): deliver spawned child results when parents emit no text

* test(cron): cover spawn-only scheduled child delivery end to end
2026-08-01 04:16:10 -07:00
Peter Steinberger 4e47c4cabf refactor(gateway): consolidate archived transcript reads (#117343) 2026-08-01 03:52:35 -07:00
Peter Steinberger b6b440d076 perf(gateway): skip clean transcript workers (#117342) 2026-08-01 03:22:22 -07:00
Peter Steinberger aa2a5c96f6 feat(channels): record account lifecycle facts and retire inferred health vocabularies (#117300)
* fix(channels): record account lifecycle facts

* fix(channels): bound recorded lifecycle grace

* fix(channels): preserve authored health state

* test: dedupe health snapshot type literal and fix spread order
2026-08-01 02:51:47 -07:00
Peter Steinberger 1e34c2d073 refactor(agents): fold cache TTL pruning into prompt projection (#117313) 2026-08-01 02:41:01 -07:00
Jesse Merhi aa743c9f81 fix(system-agent): make exit-and-run-a-terminal guidance surface-correct (#114633)
* fix(system-agent): make exit-and-run-a-terminal guidance surface-correct

* fix(system-agent): drop out-of-scope overview startup copy change

The startup action line in overview.ts is reachable only from the TUI:
the gateway path overwrites defaultModel in chat-engine.ts loadOverview,
and server-methods/system-agent.ts returns UNAVAILABLE before the greeting
is ever computed. Its original text also never said 'exit' or 'in a
terminal', so it was never in scope for browser-safe guidance.

* fix(system-agent): make recovery copy imperative, not descriptive

Four strings described where work happens instead of telling the reader
what to do. Match the imperative shape the other ten already use.

* fix(system-agent): preserve host recovery lifecycle

* fix(system-agent): keep final recovery wording

* test(system-agent): repair rebased suite boundary

* fix(system-agent): restore onboarding host lifecycle

* docs(changelog): note system-agent recovery guidance
2026-08-01 19:32:43 +10:00
Peter Steinberger fde5420dba refactor(agents): canonicalize subagent execution state (#117267) 2026-08-01 02:21:50 -07:00