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