Peter Steinberger
5da998fe8a
refactor(channels): consolidate lightweight plugin discovery ( #117541 )
2026-08-01 10:53:16 -07:00
Omar Shahine
b67fa6a2c4
fix(imessage): prevent duplicate messages after delayed sends ( #110853 )
...
* fix(imessage): outlive imsg send fallback
* test(imessage): prove delayed fallback resolves once
* fix(imessage): preserve the send timeout floor
---------
Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
2026-08-01 10:51:06 -07:00
Peter Steinberger
926afb66e9
refactor(memory): unify authoritative dreaming state and presentation ( #117538 )
2026-08-01 10:48:37 -07:00
Peter Steinberger
b7f0df0ac2
refactor(agents): consolidate main-session recovery ownership ( #117383 )
...
* refactor(agents): consolidate main-session recovery ownership
* test(agents): cover recovery owner boundaries
2026-08-01 10:40:56 -07:00
zhangLei99586
685a3dbe5d
fix(proxy-capture): make path-based session cleanup atomic ( #98852 )
2026-08-01 10:40:40 -07:00
Peter Steinberger
bde1602e6e
refactor(agents): consolidate compaction and context-engine ownership ( #117482 )
...
* refactor(agents): consolidate compaction and context-engine ownership
* fix(agents): preserve prior summaries during compaction fallback
* chore(ci): refresh merge proof after routing repair
2026-08-01 10:38:43 -07:00
Peter Steinberger
fb6f60a704
fix(gateway): preserve Responses usage details ( #117533 )
...
* fix(gateway): preserve Responses usage details
* fix(gateway): keep Responses usage type internal
2026-08-01 10:37:02 -07:00
Vincent Koc
5118b0b915
perf(gateway): skip empty session recovery stores ( #117498 )
...
* perf(gateway): skip inactive session recovery stores
* chore: leave release notes to release workflow
2026-08-02 01:29:54 +08:00
Vincent Koc
ace5d9ada7
fix(ci): update canonical Kova performance pin ( #117508 )
2026-08-02 01:28:23 +08:00
Jesse Merhi
9aceb1620d
fix(system-agent): emit the wizard cancel hint once per message ( #113731 )
...
* fix(system-agent): emit the wizard cancel hint once per message
* refactor(wizard): own input wait semantics
* refactor(wizard): declare step input requirements
* refactor(wizard): infer input requirement by step type
* docs: note wizard cancel hint fix
* chore: follow release-owned changelog policy
2026-08-01 17:27:46 +00:00
Peter Steinberger
586e1fe10e
refactor: dedupe secrets runtime snapshot fixtures ( #117502 )
...
* test(secrets): dedupe runtime snapshot fixtures
* test(secrets): preserve runtime auth-store fixture type
2026-08-01 10:26:33 -07:00
Peter Steinberger
b9bf34a3cd
test(openai): dedupe realtime voice fixtures ( #117503 )
2026-08-01 10:22:51 -07:00
Vincent Koc
8b994fc9e1
fix(gateway): keep canonical hooks on pristine startup path ( #117493 )
2026-08-02 01:16:30 +08:00
Peter Steinberger
a14ada134f
fix(test): restore oxlint shard routing owner ( #117531 )
2026-08-01 10:15:10 -07:00
Peter Steinberger
17625e5cd2
fix(msteams): preserve thread targets for structured sends ( #117516 )
2026-08-01 10:07:22 -07:00
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
Vincent Koc
877843422e
fix(google): avoid dropping first realtime voice input ( #117450 )
...
* commit '2ccb11ac28daea1939e6666c1a0a3d346159d9fe':
test(google): satisfy realtime live lint
test(google): wait for realtime response drain
test(google): diagnose realtime live readiness
test(google): prove realtime ready owns live session
test(google): cover realtime setup activation ordering
fix(google): gate realtime readiness on session ownership
2026-08-02 00:59:02 +08: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
synth
0df66f6d63
fix(anthropic): honor configured model pricing ( #117275 )
2026-08-01 09:56:23 -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
Peter Steinberger
ea2e7f46a6
refactor(test): derive changed tooling routes ( #117407 )
2026-08-01 09:42:10 -07:00
Vincent Koc
b38bcd93d7
fix(kova): clarify extension memory attribution ( #117500 )
2026-08-02 00:41:35 +08:00
Peter Steinberger
ed5d046a58
fix(imessage): sanitize private context on every outbound path ( #117501 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 09:40:02 -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
2737f2c996
fix(ui): surface aborted-run diagnostics ( #117497 )
2026-08-01 09:36:42 -07:00
Vincent Koc
e07d75dc09
perf(models): skip Ollama row runtime loading ( #117465 )
2026-08-02 00:30:21 +08: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
Qiong
a566ac23a0
fix(active-memory): detect Chinese recall intent in escalate mode ( #117338 ) ( #117419 )
...
* fix(active-memory): detect Chinese recall intent in escalate mode (#117338 )
* fix(active-memory): recognize formatted multilingual recall intent
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 09:21:45 -07:00
Koduri Mahesh Bhushan Chowdary
4cbbccd0a0
fix(workboard): ignore caller-supplied archivedAt when creating a card ( #116412 )
...
Archiving is a lifecycle transition owned by archive(), which routes through
updateCard and appends the matching `archived` event. createDirect had no such
guard: it passed input.metadata straight into normalizeMetadata, which treats
archivedAt as an ordinary caller-supplied field.
A card could therefore be created already archived. Archived cards are excluded
from dispatch at every status, so the card was unstartable from the instant it
existed, while its event log contained only `created` - no archive ever
happened, so no `archived` event was ever recorded. The board reported work that
could never start, and the missing event sent operators looking for a rogue
archiver that did not exist.
normalizeMetadata already carries an options bag for rules that are stricter on
create than on update (allowDependencyLinks). Add allowArchivedAt alongside it
and pass false from createDirect, so archivedAt falls back to the create
fallback (undefined) instead of the caller's value. The update path is
unchanged: patches that set archivedAt still archive the card and still emit the
event.
Fixes #116395
2026-08-01 09:15:07 -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
Dallin Romney
fa8774cc61
fix(qa): Slack progress lane misses successful delivery ( #117391 )
...
* fix(qa): verify Slack live delivery observations
* test(qa): update Slack scenario fixture contract
* fix: guard Slack QA proxy network boundary
* refactor: use shared capture for Slack QA observations
* refactor(qa): split Slack fallback evidence
* fix(qa): verify Slack commentary from native capture
* fix(slack): preserve debug capture with proxies
* fix(qa): narrow Slack commentary fallback
* fix(qa): observe successful Slack progress writes
2026-08-02 00:07:01 +08:00
Peter Steinberger
faaeebe208
refactor: deduplicate Codex prompt snapshot fixtures ( #117476 )
2026-08-01 09:02:43 -07: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
30972edaea
fix(discord): recover zero-valued DAVE transition ( #117381 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 08:57:12 -07: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
Vincent Koc
93d99bbb08
fix(release): allow beta validation child completion ( #117463 )
...
* fix(release): allow beta validation child completion
* test(release): align package timeout contract
2026-08-01 23:43:07 +08: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
Shakker
4cd6f14f6d
fix: allow write-scoped archived session deletion ( #117468 )
2026-08-01 16:34:38 +01:00
weiqinl
ba2827f706
fix(telegram): use Array.from instead of spread for code point length validation ( #111443 )
2026-08-01 08:33:12 -07:00
Omar Shahine
c8e6ee5306
fix(ci): invalidate tsgo incremental state whenever boundary dts inputs go stale ( #116147 )
...
The extension-boundary prep removed .tsbuildinfo only when required outputs
were missing. On sticky-disk runners a reused .tsbuildinfo skips re-emitting
declarations whose own sources did not change, so cached d.ts files that
predate current SDK re-exports survive a stale-input rebuild and fail
downstream extension compiles (observed twice on this PR: matrix, then
slack, each against exports present in a clean build of the same head).
Stale inputs now clear the phase's incremental state before rebuilding.
Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
2026-08-01 08:32:04 -07:00