Peter Steinberger
1c3b0b3a29
docs(commitments): explain dismissal JSON results
2026-08-01 13:21:47 -07:00
Peter Steinberger
d6370a9436
fix(commitments): report atomic dismissals truthfully
2026-08-01 12:10:09 -07:00
Peter Steinberger
f35c34343a
fix(plugins): fail blocked enable commands ( #117536 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 11:48:24 -07:00
Peter Steinberger
c5dd9c3095
test(secrets): dedupe runtime state fixtures ( #117563 )
2026-08-01 11:48:07 -07:00
Vincent Koc
560eda25b0
test(memory): isolate mocked embedding providers ( #117551 )
...
* commit '7795d902f7fbe11c1ef99d8b10d3e1e5e926ab7d':
test(memory): isolate mocked embedding providers
2026-08-02 02:36:12 +08:00
Vincent Koc
f4253da3e4
fix(docker): keep helper test portable on macOS ( #117526 )
...
* commit 'a164d9c477595042f688322e008b206c7e318ac2':
test(docker): make line count assertion portable
2026-08-02 02:33:08 +08:00
Omar Shahine
a624ba7b96
feat(gateway): advertise chat attachment limits on hello-ok ( #116188 )
...
* feat(gateway): advertise chat attachment limits on hello-ok
Clients had no way to learn the gateway attachment ceilings, so external
clients hardcoded guesses that drifted from server enforcement. Publish the
two unconditional decoded-size ceilings on hello-ok policy.attachments from
one shared resolver so advertised values cannot drift from the parser.
MIME acceptance and per-message counts stay server-side: they depend on the
entrypoint, the resolved model, and payload sniffing, so they cannot be stated
once per connection.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 17d6c355-8948-4b48-a936-e08b1c8806ef
* feat(gateway): advertise chat attachment limits on hello-ok
---------
Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Copilot-Session: 17d6c355-8948-4b48-a936-e08b1c8806ef
2026-08-01 11:31:29 -07:00
zengLingbiao
b340e682a2
fix(ui): preserve full graphemes in session owner initials ( #117350 )
2026-08-01 11:22:30 -07:00
Peter Steinberger
d876a83387
refactor(tui): consolidate runtime ownership ( #117368 )
2026-08-01 11:21:48 -07:00
Vincent Koc
7795d902f7
chore: merge main into memory test isolation fix
...
* origin/main: (35 commits)
fix(update): return failure when dirty checkout blocks update (#117452 )
fix(auto-reply): apply mixed chat directives in one session transaction (#117542 )
refactor(ui): unify channel status and setup controls (#117499 )
fix(doctor): preserve surviving lint selections (#117543 )
fix(media): keep an unquoted MEDIA path with spaces as one media item (#112464 )
refactor(channels): consolidate lightweight plugin discovery (#117541 )
fix(imessage): prevent duplicate messages after delayed sends (#110853 )
refactor(memory): unify authoritative dreaming state and presentation (#117538 )
refactor(agents): consolidate main-session recovery ownership (#117383 )
fix(proxy-capture): make path-based session cleanup atomic (#98852 )
refactor(agents): consolidate compaction and context-engine ownership (#117482 )
fix(gateway): preserve Responses usage details (#117533 )
perf(gateway): skip empty session recovery stores (#117498 )
fix(ci): update canonical Kova performance pin (#117508 )
fix(system-agent): emit the wizard cancel hint once per message (#113731 )
refactor: dedupe secrets runtime snapshot fixtures (#117502 )
test(google): cover ready callback close precedence
test(openai): dedupe realtime voice fixtures (#117503 )
fix(google): flush lazy prompts on provider readiness
fix(gateway): keep canonical hooks on pristine startup path (#117493 )
...
2026-08-02 02:21:19 +08:00
Vincent Koc
a164d9c477
chore: merge main into Docker portability fix
...
* origin/main: (26 commits)
fix(update): return failure when dirty checkout blocks update (#117452 )
fix(auto-reply): apply mixed chat directives in one session transaction (#117542 )
refactor(ui): unify channel status and setup controls (#117499 )
fix(doctor): preserve surviving lint selections (#117543 )
fix(media): keep an unquoted MEDIA path with spaces as one media item (#112464 )
refactor(channels): consolidate lightweight plugin discovery (#117541 )
fix(imessage): prevent duplicate messages after delayed sends (#110853 )
refactor(memory): unify authoritative dreaming state and presentation (#117538 )
refactor(agents): consolidate main-session recovery ownership (#117383 )
fix(proxy-capture): make path-based session cleanup atomic (#98852 )
refactor(agents): consolidate compaction and context-engine ownership (#117482 )
fix(gateway): preserve Responses usage details (#117533 )
perf(gateway): skip empty session recovery stores (#117498 )
fix(ci): update canonical Kova performance pin (#117508 )
fix(system-agent): emit the wizard cancel hint once per message (#113731 )
refactor: dedupe secrets runtime snapshot fixtures (#117502 )
test(google): cover ready callback close precedence
test(openai): dedupe realtime voice fixtures (#117503 )
fix(google): flush lazy prompts on provider readiness
fix(gateway): keep canonical hooks on pristine startup path (#117493 )
...
2026-08-02 02:20:18 +08:00
WhatsSkiLL
428a9e9cbc
fix(update): return failure when dirty checkout blocks update ( #117452 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-01 11:11:19 -07:00
Vincent Koc
83e8033ac6
fix(google): preserve realtime prompts during startup ( #117529 )
...
* commit 'd60584ee2d1dc3755477b38234b37f8d11bc1b9c':
test(google): cover ready callback close precedence
fix(google): flush lazy prompts on provider readiness
test(google): prove lazy realtime prompt delivery
fix(google): bound lazy realtime user messages
2026-08-02 02:10:29 +08:00
Peter Steinberger
2e9d4de131
fix(auto-reply): apply mixed chat directives in one session transaction ( #117542 )
2026-08-01 11:10:07 -07:00
Peter Steinberger
fd343ca8cc
refactor(ui): unify channel status and setup controls ( #117499 )
2026-08-01 11:03:07 -07:00
Peter Steinberger
3f9b24237b
fix(doctor): preserve surviving lint selections ( #117543 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 10:55:53 -07:00
MatthewSynthia
8206a0ceb6
fix(media): keep an unquoted MEDIA path with spaces as one media item ( #112464 )
...
Co-authored-by: MatthewSynthia <MatthewSynthia@users.noreply.github.com >
2026-08-01 10:54:01 -07:00
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
Vincent Koc
d60584ee2d
test(google): cover ready callback close precedence
2026-08-02 01:25:41 +08:00
Peter Steinberger
b9bf34a3cd
test(openai): dedupe realtime voice fixtures ( #117503 )
2026-08-01 10:22:51 -07:00
Vincent Koc
814a2ebb61
fix(google): flush lazy prompts on provider readiness
2026-08-02 01:22:33 +08:00
Vincent Koc
6dcb95a947
test(memory): isolate mocked embedding providers
2026-08-02 01:18:43 +08: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
Vincent Koc
3a8afb2a71
Merge origin/main into fix/google-realtime-lazy-queue-bounds-20260801
...
* origin/main: (44 commits)
fix(plugins): compare authoring metadata by canonical JSON semantics (#117486 )
fix(doctor): reject contradictory lint check selectors (#117495 )
fix(anthropic): honor configured model pricing (#117275 )
refactor(plugins): reuse scoped loader for capability discovery (#117373 )
refactor(test): derive changed tooling routes (#117407 )
fix(kova): clarify extension memory attribution (#117500 )
fix(imessage): sanitize private context on every outbound path (#117501 )
fix(ci): align release validation fixtures (#117494 )
fix(talk): preserve owner authorization in realtime consults (#114163 )
fix(ui): surface aborted-run diagnostics (#117497 )
perf(models): skip Ollama row runtime loading (#117465 )
fix(cli): report user profile command outcomes (#117466 )
fix(active-memory): detect Chinese recall intent in escalate mode (#117338 ) (#117419 )
fix(workboard): ignore caller-supplied archivedAt when creating a card (#116412 )
fix(models): avoid waiting on promotions before listing models (#117322 )
refactor(plugins): inherit shared package boundary settings (#117474 )
fix(systemd): parse all inline environment assignments (#117484 )
feat(web-fetch): add tools.web.fetch.headers for operator request headers (#115545 )
fix(qa): Slack progress lane misses successful delivery (#117391 )
refactor: deduplicate Codex prompt snapshot fixtures (#117476 )
...
2026-08-02 01:02:06 +08:00
Vincent Koc
e3c16ac65c
chore: merge main into Docker portability fix
...
* origin/main: (27 commits)
fix(plugins): compare authoring metadata by canonical JSON semantics (#117486 )
fix(doctor): reject contradictory lint check selectors (#117495 )
fix(anthropic): honor configured model pricing (#117275 )
refactor(plugins): reuse scoped loader for capability discovery (#117373 )
refactor(test): derive changed tooling routes (#117407 )
fix(kova): clarify extension memory attribution (#117500 )
fix(imessage): sanitize private context on every outbound path (#117501 )
fix(ci): align release validation fixtures (#117494 )
fix(talk): preserve owner authorization in realtime consults (#114163 )
fix(ui): surface aborted-run diagnostics (#117497 )
perf(models): skip Ollama row runtime loading (#117465 )
fix(cli): report user profile command outcomes (#117466 )
fix(active-memory): detect Chinese recall intent in escalate mode (#117338 ) (#117419 )
fix(workboard): ignore caller-supplied archivedAt when creating a card (#116412 )
fix(models): avoid waiting on promotions before listing models (#117322 )
refactor(plugins): inherit shared package boundary settings (#117474 )
fix(systemd): parse all inline environment assignments (#117484 )
feat(web-fetch): add tools.web.fetch.headers for operator request headers (#115545 )
fix(qa): Slack progress lane misses successful delivery (#117391 )
refactor: deduplicate Codex prompt snapshot fixtures (#117476 )
...
2026-08-02 01:01:00 +08: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