Peter Steinberger and GitHub
ea148e728d
fix(ui): restore startup JS budget headroom for sandbox diagnostics ( #111928 )
2026-07-20 10:52:51 -07:00
Shakker and GitHub
49aa383dd7
fix: consume ClickClack v1 setup claim contract ( #111927 )
...
Support ClickClack v1 setup claim URLs for split-origin and path-mounted deployments while preserving legacy setup flows and private transport overrides.
Refs #111919 .
Prepared head SHA: c13ce82e38
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com >
Reviewed-by: @shakkernerd
2026-07-20 18:50:30 +01:00
Peter Steinberger and GitHub
bf6961d33e
fix(ui): actionable diagnostics for missing widget sandbox origin behind proxies ( #111909 )
...
* fix(ui): actionable error and doctor warning for missing widget sandbox origin
* fix(ui): phrase sandbox-origin diagnostics as conditional guidance
* test(ui): satisfy deadcode and mock-factory gates for sandbox diagnostics
2026-07-20 10:35:47 -07:00
Peter Steinberger and GitHub
271e6b7391
fix(ui): tolerate absent chat-event messages in text extractors ( #111918 )
2026-07-20 10:33:20 -07:00
Peter Steinberger and GitHub
febeb6ac12
fix(dashboard): review follow-ups — provider lifecycle, scope-gated controls, pin robustness ( #111907 )
...
* fix(canvas): validate dashboard pins before materializing
* fix(ui): bound dashboard provider lifecycles
* fix(gateway): harden board widget descendant frames
* test(ui): clean up dashboard provider tests
* fix(ui): harden dashboard availability lifecycle
* fix(ui): invalidate stale board availability
* perf(ui): keep dashboard bundle within budget
2026-07-20 10:27:52 -07:00
Peter Steinberger and GitHub
59bc78a5b2
fix(gateway): auto-approve trusted-proxy same-key device scope upgrades ( #111916 )
2026-07-20 10:25:25 -07:00
Peter Steinberger and GitHub
c715d89de8
fix(ui): show newly created PRs in session sidebar ( #111783 )
...
* fix(ui): surface newly created session PRs
* test(ui): split sidebar PR state coverage
2026-07-20 10:04:41 -07:00
Peter Steinberger and GitHub
e0206b4967
fix(dashboard): make the board face scrollable ( #111911 )
2026-07-20 09:53:27 -07:00
Peter Steinberger and GitHub
38df399ed8
fix(macos): show local ClickClack session discussions ( #111883 )
...
* fix(macos): show local ClickClack session discussions
* fix(macos): support loopback aliases in discussion embeds
* fix(macos): allow trusted hosted ClickClack embeds
* fix(macos): trust only dashboard-initiated discussion frames
2026-07-20 09:33:27 -07:00
ec9bc46e80
Wear: animate Talk avatar from playback audio ( #111516 )
...
* Wear: animate Talk avatar from playback audio
* fix(wear): preserve PCM mouth frame continuity
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-20 12:33:09 -04:00
Josh Lehman and GitHub
f0b18c1d74
fix(session): clear orphaned recovery fences ( #111869 )
2026-07-20 09:32:37 -07:00
Peter Steinberger and GitHub
324fd4fe6e
refactor(channels): delete all media-placeholder consumer awareness ( #111891 )
...
Final sweep of the media-placeholder program: with all eleven producers
migrated, the consumer regexes are dead input and are hard-deleted —
media-understanding token un-mixing (bodies are pure user text now),
the persisted-user-turn placeholder drop, the session-memory strip, and
the inbound-event mediaPlaceholder field with its replacement branch
(an intentional removal of shipped SDK surface per the program's
hard-delete decision: plugins still minting placeholder bodies render
them as literal text until updated). formatMediaPlaceholderText remains
the single owner of the <media:kind> vocabulary, used only for
text-only carriers. Legacy tokens in pre-migration history remain
ordinary text.
2026-07-20 09:31:51 -07:00
Peter Steinberger and GitHub
5ca5c5c1e0
fix(ui): render sidebar view-archived icon as outline ( #111867 )
...
The .sidebar-view-archived svg rule set stroke: currentColor but never
fill: none, so the archive icon's lid <rect> rendered with SVG's default
black fill — a solid black bar instead of the outlined Lucide archive
box. Align the rule with sibling sidebar icon styles (fill: none,
1.7px stroke, round caps/joins).
2026-07-20 08:47:35 -07:00
xingzhou and GitHub
ee74d7b8dc
fix(teams-meetings): expose listening probe timeout ( #111486 )
2026-07-20 23:39:27 +08:00
Peter Steinberger and GitHub
336b01a2e3
fix(dashboard): inset board widgets from pane edges ( #111876 )
2026-07-20 08:24:15 -07:00
Peter Steinberger and GitHub
96ffdf15c7
docs(web): user guide for session dashboards ( #111834 )
...
* docs(web): user guide for session dashboards
* docs: format dashboards page
2026-07-20 08:23:14 -07:00
Peter Steinberger and GitHub
f6f484fb1c
fix(ui): auto-show the discussion sidebar when a session has an open discussion ( #111871 )
...
* fix(ui): auto-show the discussion sidebar when a session has an open discussion
* docs(ui): document why probe resolution is the only auto-show hook
2026-07-20 08:22:04 -07:00
Peter Steinberger and GitHub
5197428add
feat(channels): batch 4 Telegram drops media placeholder bodies ( #111855 )
...
Final producer batch of the media-placeholder program: Telegram primary
bodies are caption-only with one aligned structured fact per native
media; the message-cache kind-parsing regex is deleted (native kind
stored directly); reply-chain, debounce/forward, group-history, and
ambient transcript lines render structured facts via the shared
formatter (removing the plugin-local duplicate of the caption-less
literal); audio-transcript and sticker-description replacements gate on
structured facts instead of exact placeholder strings. Also restores
unconditional failed-retryable recording when media resolution is
aborted for live updates, so shutdown cannot silently settle an
undispatched update.
2026-07-20 07:31:10 -07:00
570f8b4d9e
fix(errors): recover from Z.AI token-limit errors ( #111744 )
...
* fix(errors): classify Z.AI token-limit overflow
* fix(zai): own token overflow classification
* fix(zai): classify live prompt overflow errors
---------
Co-authored-by: Altay <altay@hey.com >
2026-07-20 17:11:40 +03:00
Peter Steinberger and GitHub
154a49a78b
feat(dashboard): widget capabilities — net CSP, host tools, hardened shared sandbox ( #111687 )
...
* feat(boards): enforce widget capability grants
* feat(ui): expose dashboard widget capabilities
* test(dashboard): align rebased gateway contracts
* refactor(dashboard): finish capability alignment
* chore: internalize unused board sandbox exports
* test(dashboard): bind grants to widget instances
* fix(dashboard): close widget authority lifetime gaps
* refactor(ui): preserve modular widget frame ownership
* test(ui): preserve explicit MCP App lease refresh
* test(ui): use shared dashboard sandbox server
* fix(ui): settle widget requests on reconnect
* fix(ui): retry transient widget document loads
* refactor(dashboard): document WebRTC egress residual
* fix(dashboard): clear landing checks
2026-07-20 06:54:44 -07:00
Dinesh H Suthar and GitHub
444fd4bbea
test(ci): provide rg in PR wrapper fixture ( #111824 )
...
* test(ci): avoid lock path in wrapper opt-in test
* test(ci): stub rg in PR wrapper fixture
2026-07-20 06:49:32 -07:00
8d4d02a3cf
fix(usage): guard malformed Z.AI usage payloads ( #110741 )
...
* fix(usage): guard malformed Z.ai usage payloads
* fix(usage): normalize Z.ai usage payloads
* fix(usage): preserve empty Z.ai snapshots
---------
Co-authored-by: Leon-SK668 <17695126+Leon-SK668@users.noreply.github.com >
Co-authored-by: Altay <altay@hey.com >
2026-07-20 16:14:42 +03:00
8518603392
fix(tts): contract speech requests hang on stalled endpoints ( #110725 )
...
* fix(tts): time out stalled contract speech requests
* fix(tts): release discarded contract responses
* test(tts): reuse canonical HTTP server helper
* test(tts): mark fixture credential synthetic
---------
Co-authored-by: Mason Huang <masonxhuang@proton.me >
2026-07-20 21:02:39 +08:00
756de70e84
fix(signal): report malformed release metadata cleanly ( #110824 )
...
* fix(signal): validate release metadata before install
* refactor(signal): normalize release metadata once
Co-authored-by: Alix-007 <li.long15@xydigit.com >
* test(signal): prove normalized install version
Co-authored-by: Alix-007 <li.long15@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 05:19:34 -07:00
Colin Johnson and GitHub
2f967bc8f3
test(ios): refresh chat voice and sidebar UI coverage ( #111655 )
2026-07-20 08:02:16 -04:00
Peter Steinberger and GitHub
0ac7b24d56
feat(channels): batch 3 producers drop media placeholder bodies ( #111800 )
...
* feat(channels): batch 3 producers drop media placeholder bodies
Media-placeholder program batch 3: iMessage, Signal, and WhatsApp stop
minting <media:kind> placeholder bodies. Primary bodies carry captions
only with one aligned structured fact per native attachment (type-only
for missing/rejected/oversized). Echo, quote, and pending-history
records gain structured media facts so dedupe and previews work without
rendered text. Signal media-only outbound sends drop the placeholder
body entirely (signal-cli accepts attachment-only sends; recipients now
see just the media). WhatsApp audio preflight de-stringed; qa-lab
sticker recognizer moved to structured facts; WhatsApp gif maps to
video (presentation mode, no behavioral consumer).
* test(whatsapp): keep media classifier private
2026-07-20 04:22:44 -07:00
7bac63889e
fix(nostr): prefixed targets fail to send ( #110881 )
...
* fix(nostr): prefixed targets send successfully
* fix(nostr): address target normalization review
* fix(nostr): preserve invalid prefixed allowlist tokens
* test(nostr): cover prefixed npub outbound targets
Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 04:21:49 -07:00
Pavan Kumar Gondhi and GitHub
8d5ad804a6
fix: require admin for keyed session model changes [AI] ( #111651 )
...
* fix: gate keyed session model creation
* fix: preserve fresh keyed session creation
* fix: cover existing keyed model adoption
* fix: keep keyed session create idempotent
* fix: resolve keyed session model aliases before gating
* fix: tighten keyed session gate comparison
* docs: clarify keyed session gate fail-closed cases
* docs: explain keyed session model error gating
* fix: clarify unscoped keyed session gate
* fix: share session model patch resolution
* fix: preserve existing auth profile no-op creates
* fix: resolve subagent defaults in keyed session gate
2026-07-20 16:33:33 +05:30
Peter Steinberger and GitHub
8bec61bab1
fix(cli): reject unknown models in config set ( #111571 )
...
* fix(cli): validate configured model references
* fix(cli): cover dependent model references
* fix(cli): reject malformed model references
* test(cli): satisfy model validation gates
* fix(cli): harden model validation drafts
* fix(cli): preserve model runtime ownership
* fix(cli): validate expanded model references
* fix(cli): close model validation gaps
* fix(cli): preserve model alias ownership
* fix(cli): secure model validation context
* fix(cli): redact expanded model references
* fix(cli): validate inherited agent catalogs
* fix(cli): align canonical model resolution
* fix(cli): scope inherited catalog validation
* fix(cli): compare resolved model snapshots
* fix(cli): cover model dependency transitions
* fix(cli): isolate model env validation
* fix(cli): redact dependent model checks
* fix(cli): compare agent model identity
* fix(cli): validate expanded model removal
* fix(cli): defer unresolved fallback validation
* fix(cli): preserve authored model changes
2026-07-20 03:31:03 -07:00
fab745b82d
fix(infra): guard malformed Claude usage responses ( #111088 )
...
* fix(infra): guard malformed Claude usage responses
* fix(infra): normalize Claude usage payloads
Co-authored-by: Leon-SK668 <17695126+Leon-SK668@users.noreply.github.com >
---------
Co-authored-by: Leon-SK668 <17695126+Leon-SK668@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 03:26:33 -07:00
Peter Steinberger and GitHub
7fe1d70a50
fix(mcp): prevent custom server config races and parsing errors ( #111761 )
...
* fix(mcp): harden custom server management
* fix(ui): keep config patch types private
2026-07-20 02:34:13 -07:00
Peter Steinberger and GitHub
a1f43b218a
feat(ui): offer page refresh on protocol-mismatch failure ( #111772 )
2026-07-20 02:31:40 -07:00
3ef2d8cf05
fix(sms): trim prefixed phone number spacing ( #111111 )
...
Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 02:29:06 -07:00
Peter Steinberger and GitHub
7defd4a7b4
refactor(android): split offline client databases ( #111710 )
...
* refactor(android): split offline client databases
* chore(android): refresh native i18n inventory
* test(gateway): close databases before transcript cleanup
2026-07-20 02:28:02 -07:00
Peter Steinberger and GitHub
473f2aca33
fix(gateway): honor session title model routing ( #111757 )
...
Route automatic dashboard titles through the effective session model and auth profile while preserving explicit cross-provider utility ownership and the existing generic title fallback.
2026-07-20 02:19:57 -07:00
Peter Steinberger and GitHub
9056c43368
docs(gateway): add client-building and embedding guides ( #111726 )
...
* docs(gateway): add client-building and embedding guides
* docs(gateway): harden package rollout guidance
2026-07-20 02:12:52 -07:00
Peter Steinberger and GitHub
fd081d6521
fix(ui): keep Codex commentary visible after runs ( #111648 )
...
* fix(ui): keep Codex commentary visible
* fix(codex): preserve commentary transcript ordering
* fix(ui): preserve commentary retention opt-out
2026-07-20 02:10:56 -07:00
2c05365fbd
fix(plugins): decode self-hosted discovery JSON with fatal UTF-8 validation ( #111113 )
...
* fix(plugins): decode self-hosted discovery JSON with fatal UTF-8 validation
* ci: retrigger checks
* refactor(plugins): share self-hosted JSON decoding
Co-authored-by: zenglingbiao <zeng.lingbiao@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 02:07:45 -07:00
Peter Steinberger and GitHub
922240568a
fix(doctor): check every configured agent ( #111758 )
2026-07-20 02:05:53 -07:00
Peter Steinberger and GitHub
5d80b62d21
fix(ui): nudge stale tabs after gateway updates ( #111619 )
...
* fix(ui): nudge stale tabs after gateway updates
* fix(ui): resolve external packages in worktrees
2026-07-20 01:51:22 -07:00
Wynne668 and GitHub
72f77364b3
fix(google): keep embedding batch waits within timeout ( #111674 )
2026-07-20 11:46:06 +03:00
Peter Steinberger and GitHub
6f2fa019bd
fix: honor configured default agent in consults ( #111749 )
2026-07-20 01:43:00 -07:00
Jason (Json) and GitHub
779cf40d46
feat(dashboard): harden transcript MCP App pinning ( #111748 )
2026-07-20 02:42:00 -06:00
Pavan Kumar Gondhi and GitHub
391c3bcb17
fix(ui): neutralize Usage CSV text cells [AI] ( #111653 )
...
* fix(ui): neutralize usage csv text cells
* test(ui): align usage csv fixture types
* fix(ui): preserve benign usage csv whitespace
2026-07-20 14:08:33 +05:30
Pavan Kumar Gondhi and GitHub
1de4a099ca
fix: keep exec approval carriers scoped [AI] ( #111652 )
...
* fix: unwrap shell argv carriers for exec approvals
* fix: constrain shell carrier unwraps
* fix: block command path-search carriers
2026-07-20 14:06:03 +05:30
Peter Steinberger and GitHub
0e62293104
fix(ui): keep sidebar session titles aligned ( #111698 )
...
* fix(ui): stabilize sidebar session indicators
* test(ui): update sidebar leading-slot assertion
2026-07-20 01:27:25 -07:00
Peter Steinberger and GitHub
343cfba638
fix(clickclack): private API base for gated hostnames and single discussion-provider registration ( #111724 )
...
* fix(clickclack): split API base and refresh discussion provider
* chore: regenerate bundled channel config metadata and docs map for the apiBaseUrl key
2026-07-20 01:27:13 -07:00
Peter Steinberger and GitHub
629de998f9
feat(system-agent): agentic cached caretaker greeting with quick actions ( #111615 )
...
* feat(system-agent): agentic cached caretaker greeting with quick actions
* test(gateway): pin caretaker greeting in session-ownership tests
* fix(system-agent): offer agent handoff chip only when a model is available
* fix(ci): typecheck narrowing, lint, and knip gates for greeting module
* fix(system-agent): reject structured greeting output on every retained line
* test(gateway): split caretaker welcome tests under the max-lines gate
2026-07-20 01:21:09 -07:00
Peter Steinberger and GitHub
6eee1dccfc
fix(cloud-workers): reclaim sessions after workspace conflicts ( #111714 )
...
* fix(cloud-workers): make reclaim failures retryable
* chore: leave changelog to release flow
* chore: fix cloud reclaim lint
* fix(cloud-workers): preserve committed reclaim recovery
2026-07-20 01:16:07 -07:00
Peter Steinberger and GitHub
83e78d8681
fix(ui): quiet the reconnect-wait queue row and hide its raw transport error ( #111703 )
2026-07-20 01:11:27 -07:00